X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=render%2Frender.h;h=006eaf4cdf44db2f410c7db6f537877b00b93a95;hb=78a8680cd7379cc0d75af810dabe62c7a6c4a8b2;hp=e77a3dccfffeff92e19f92dee90de6b474f8e0f9;hpb=e9a7fc91bc4485a7fc3f9542dbba86b8d3823c7d;p=chaz%2Fopenbox diff --git a/render/render.h b/render/render.h index e77a3dcc..006eaf4c 100644 --- a/render/render.h +++ b/render/render.h @@ -6,34 +6,7 @@ #include #include #include "color.h" - -#ifdef HAVE_STDINT_H -# include -#else -# ifdef HAVE_SYS_TYPES_H -# include -# endif -#endif - -#ifdef HAVE_STDINT_H -typedef uint32_t pixel32; -typedef uint16_t pixel16; -#else -typedef u_int32_t pixel32; -typedef u_int16_t pixel16; -#endif /* HAVE_STDINT_H */ - -#if (G_ENDIAN == G_BIG_ENDIAN) -#define default_red_shift 0 -#define default_green_shift 8 -#define default_blue_shift 16 -#define endian MSBFirst -#else -#define default_red_shift 16 -#define default_green_shift 8 -#define default_blue_shift 0 -#define endian LSBFirst -#endif /* G_ENDIAN == G_BIG_ENDIAN */ +#include "kernel/geom.h" typedef enum { Surface_Planar, @@ -67,14 +40,13 @@ typedef enum { typedef enum { Bitmask, Text, - RGBA + RGBA, + NoTexture } TextureType; +struct Appearance; + typedef struct PlanarSurface { - int x; - int y; - int width; - int height; SurfaceColorType grad; ReliefType relief; BevelType bevel; @@ -83,6 +55,9 @@ typedef struct PlanarSurface { color_rgb *border_color; gboolean interlaced; gboolean border; + struct Appearance *parent; + int parentx; + int parenty; pixel32 *pixel_data; } PlanarSurface; @@ -103,6 +78,8 @@ typedef struct Surface { typedef struct { XftFont *xftfont; + int height; + int elipses_length; } ObFont; typedef enum { @@ -115,7 +92,7 @@ typedef struct TextureText { ObFont *font; Justify justify; int shadow; - unsigned char tint; + char tint; unsigned char offset; color_rgb *color; char *string; @@ -124,6 +101,7 @@ typedef struct TextureText { typedef struct { Pixmap mask; guint w, h; + char *data; } pixmap_mask; typedef struct TextureMask { @@ -132,7 +110,13 @@ typedef struct TextureMask { } TextureMask; typedef struct TextureRGBA { - int poo; + guint width; + guint height; + unsigned long *data; +/* cached scaled so we don't have to scale often */ + guint cwidth; + guint cheight; + unsigned long *cache; } TextureRGBA; typedef union { @@ -142,12 +126,14 @@ typedef union { } TextureData; typedef struct Texture { + Rect position; TextureType type; TextureData data; } Texture; typedef struct Appearance { Surface surface; + Rect area; int textures; Texture *texture; Pixmap pixmap; @@ -158,13 +144,19 @@ extern Visual *render_visual; extern int render_depth; extern Colormap render_colormap; -void (*paint)(Window win, Appearance *l, 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 w, int h); +void x_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); + #endif /*__render_h*/