]> Dogcows Code - chaz/openbox/blobdiff - render/render.h
add RrColorGC
[chaz/openbox] / render / render.h
index 0e34c1973b7d69bea8536f3aee8a06f776890e89..19f0989eff4c8b9463ddbbf6d333252d66366337 100644 (file)
@@ -1,9 +1,9 @@
 #ifndef __render_h
 #define __render_h
 
+#include <X11/Xlib.h> /* some platforms dont include this as needed for Xft */
 #define _XFT_NO_COMPAT_ /* no Xft 1 API */
 #include <X11/Xft/Xft.h>
-#include <X11/Xlib.h>
 #include <glib.h>
 
 typedef union  _RrTextureData      RrTextureData;
@@ -14,6 +14,7 @@ typedef struct _RrTexture          RrTexture;
 typedef struct _RrTextureMask      RrTextureMask;
 typedef struct _RrTextureRGBA      RrTextureRGBA;
 typedef struct _RrTextureText      RrTextureText;
+typedef struct _RrTextureLineArt   RrTextureLineArt;
 typedef struct _RrPixmapMask       RrPixmapMask;
 typedef struct _RrInstance         RrInstance;
 typedef struct _RrColor            RrColor;
@@ -40,8 +41,6 @@ typedef enum {
     RR_SURFACE_VERTICAL,
     RR_SURFACE_DIAGONAL,
     RR_SURFACE_CROSS_DIAGONAL,
-    RR_SURFACE_PIPECROSS,
-    RR_SURFACE_RECTANGLE,
     RR_SURFACE_PYRAMID
 } RrSurfaceColorType;
 
@@ -49,6 +48,7 @@ typedef enum {
     RR_TEXTURE_NONE,
     RR_TEXTURE_MASK,
     RR_TEXTURE_TEXT,
+    RR_TEXTURE_LINE_ART,
     RR_TEXTURE_RGBA
 } RrTextureType;
 
@@ -72,15 +72,12 @@ struct _RrSurface {
     RrAppearance *parent;
     gint parentx;
     gint parenty;
-    RrPixel32 *RrPixel_data;
+    RrPixel32 *pixel_data;
 };
 
 struct _RrTextureText {
     RrFont *font;
     RrJustify justify;
-    gint shadow;
-    gchar tint;
-    guchar offset;
     RrColor *color;
     gchar *string;
 };
@@ -108,10 +105,19 @@ struct _RrTextureRGBA {
     RrPixel32 *cache;
 };
 
+struct _RrTextureLineArt {
+    RrColor *color;
+    gint x1;
+    gint y1;
+    gint x2;
+    gint y2;
+};
+
 union _RrTextureData {
     RrTextureRGBA rgba;
     RrTextureText text;
     RrTextureMask mask;
+    RrTextureLineArt lineart;
 };
 
 struct _RrTexture {
@@ -132,6 +138,13 @@ struct _RrAppearance {
     gint w, h;
 };
 
+/* these are the same on all endian machines because it seems to be dependant
+   on the endianness of the gfx card, not the cpu. */
+#define RrDefaultAlphaOffset 24
+#define RrDefaultRedOffset 16
+#define RrDefaultGreenOffset 8
+#define RrDefaultBlueOffset 0
+
 RrInstance* RrInstanceNew (Display *display, gint screen);
 void        RrInstanceFree (RrInstance *inst);
 
@@ -157,13 +170,18 @@ RrColor *RrColorNew   (const RrInstance *inst, gint r, gint g, gint b);
 RrColor *RrColorParse (const RrInstance *inst, gchar *colorname);
 void     RrColorFree  (RrColor *in);
 
+gint     RrColorRed   (const RrColor *c);
+gint     RrColorGreen (const RrColor *c);
+gint     RrColorBlue  (const RrColor *c);
+gulong   RrColorPixel (const RrColor *c);
+GC       RrColorGC    (RrColor *c);
+
 RrAppearance *RrAppearanceNew  (const RrInstance *inst, gint numtex);
 RrAppearance *RrAppearanceCopy (RrAppearance *a);
 void          RrAppearanceFree (RrAppearance *a);
 
-int RrFontMeasureString (const RrFont *f, const gchar *str,
-                         gint shadow, gint offset);
-int RrFontHeight        (const RrFont *f, gint shadow, gint offset);
+int RrFontMeasureString (const RrFont *f, const gchar *str);
+int RrFontHeight        (const RrFont *f);
 int RrFontMaxCharWidth  (const RrFont *f);
 
 void RrPaint   (RrAppearance *l, Window win, gint w, gint h);
This page took 0.026393 seconds and 4 git commands to generate.