X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=render%2Frender.h;h=19f0989eff4c8b9463ddbbf6d333252d66366337;hb=b543af60b3b625f978bec0eacc7da31cd9d347f6;hp=0e34c1973b7d69bea8536f3aee8a06f776890e89;hpb=dbe2851b910dcdb02afbb744dbb2926286ab8f65;p=chaz%2Fopenbox diff --git a/render/render.h b/render/render.h index 0e34c197..19f0989e 100644 --- a/render/render.h +++ b/render/render.h @@ -1,9 +1,9 @@ #ifndef __render_h #define __render_h +#include /* some platforms dont include this as needed for Xft */ #define _XFT_NO_COMPAT_ /* no Xft 1 API */ #include -#include #include 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);