]> Dogcows Code - chaz/openbox/blobdiff - render/render.h
rectangle and diagonal grads yay
[chaz/openbox] / render / render.h
index 230c7442e87bd8ef8bf94b69051ebef8c9b5512b..16f5c31c6be11a0364c149a7cb1e26e663c58dd5 100644 (file)
@@ -6,7 +6,7 @@
 #include <X11/Xft/Xft.h>
 #include <glib.h>
 #include "color.h"
-#include "../kernel/geom.h"
+#include "kernel/geom.h"
 
 typedef enum {
     Surface_Planar,
@@ -33,16 +33,18 @@ typedef enum {
     Background_CrossDiagonal,
     Background_PipeCross,
     Background_Rectangle,
-    Background_Pyramid,
-    Background_Elliptic
+    Background_Pyramid
 } SurfaceColorType;
 
 typedef enum {
     Bitmask,
     Text,
-    RGBA
+    RGBA,
+    NoTexture
 } TextureType;
 
+struct Appearance;
+
 typedef struct PlanarSurface {
     SurfaceColorType grad;
     ReliefType relief;
@@ -50,8 +52,13 @@ typedef struct PlanarSurface {
     color_rgb *primary;
     color_rgb *secondary;
     color_rgb *border_color;
+    color_rgb *bevel_dark; 
+    color_rgb *bevel_light;
     gboolean interlaced;
     gboolean border;
+    struct Appearance *parent;
+    int parentx;
+    int parenty;
     pixel32 *pixel_data;
 } PlanarSurface;
 
@@ -73,6 +80,7 @@ typedef struct Surface {
 typedef struct {
     XftFont *xftfont;
     int height;
+    int elipses_length;
 } ObFont;
 
 typedef enum {
@@ -85,7 +93,7 @@ typedef struct TextureText {
     ObFont *font;
     Justify justify;
     int shadow;
-    unsigned char tint;
+    char tint;
     unsigned char offset;
     color_rgb *color;
     char *string;
@@ -94,6 +102,7 @@ typedef struct TextureText {
 typedef struct {
     Pixmap mask;
     guint w, h;
+    char *data;
 } pixmap_mask;
 
 typedef struct TextureMask {
@@ -102,7 +111,13 @@ typedef struct TextureMask {
 } TextureMask;
 
 typedef struct TextureRGBA {
-    int poo;
+    guint width;
+    guint height;
+    pixel32 *data;
+/* cached scaled so we don't have to scale often */
+    guint cwidth;
+    guint cheight;
+    pixel32 *cache;
 } TextureRGBA;
 
 typedef union {
@@ -119,6 +134,7 @@ typedef struct Texture {
 
 typedef struct Appearance {
     Surface surface;
+    Rect area;
     int textures;
     Texture *texture;
     Pixmap pixmap;
@@ -126,17 +142,27 @@ typedef struct Appearance {
 } Appearance;
 
 extern Visual *render_visual;
+extern XVisualInfo render_visual_info;
 extern int render_depth;
 extern Colormap render_colormap;
 
-void (*paint)(Window win, Appearance *l, int x, int y, int w, int h);
+void (*paint)(Window win, Appearance *l);
 
 void render_startup(void);
 void init_appearance(Appearance *l);
-void x_paint(Window win, Appearance *l, int x, int y, int w, int h);
+void x_paint(Window win, Appearance *l);
+void gl_paint(Window win, Appearance *l);
 void render_shutdown(void);
 Appearance *appearance_new(SurfaceType type, int numtex);
 Appearance *appearance_copy(Appearance *a);
 void appearance_free(Appearance *a);
 void truecolor_startup(void);
+void pseudocolor_startup(void);
+void pixel32_to_pixmap(pixel32 *in, Pixmap out, int x, int y, int w, int h);
+
+void appearance_minsize(Appearance *l, int *w, int *h);
+
+gboolean render_pixmap_to_rgba(Pixmap pmap, Pixmap mask,
+                               int *w, int *h, pixel32 **data);
+
 #endif /*__render_h*/
This page took 0.024782 seconds and 4 git commands to generate.