]> Dogcows Code - chaz/openbox/blobdiff - render/render.h
add version info the library headers
[chaz/openbox] / render / render.h
index c6bd35569930b23172edb3a0e7dfb277bf815a9c..ab481b40dd6de5f2a6b89b4f2bb7e7d8a55261d2 100644 (file)
@@ -1,11 +1,34 @@
+/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
+
+   render.h for the Openbox window manager
+   Copyright (c) 2003        Ben Jansens
+   Copyright (c) 2003        Derek Foreman
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   See the COPYING file for a copy of the GNU General Public License.
+*/
+
 #ifndef __render_h
 #define __render_h
 
+#include "version.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>
 
+G_BEGIN_DECLS
+
 typedef union  _RrTextureData      RrTextureData;
 typedef struct _RrAppearance       RrAppearance;
 typedef struct _RrSurface          RrSurface;
@@ -14,12 +37,13 @@ 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            color_rgb; /* XXX ugly */
+typedef struct _RrColor            RrColor;
 
-typedef guint32 pixel32; /* XXX prefix */
-typedef guint16 pixel16;
+typedef guint32 RrPixel32;
+typedef guint16 RrPixel16;
 
 typedef enum {
     RR_RELIEF_FLAT,
@@ -40,8 +64,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 +71,7 @@ typedef enum {
     RR_TEXTURE_NONE,
     RR_TEXTURE_MASK,
     RR_TEXTURE_TEXT,
+    RR_TEXTURE_LINE_ART,
     RR_TEXTURE_RGBA
 } RrTextureType;
 
@@ -62,26 +85,24 @@ struct _RrSurface {
     RrSurfaceColorType grad;
     RrReliefType relief;
     RrBevelType bevel;
-    color_rgb *primary;
-    color_rgb *secondary;
-    color_rgb *border_color;
-    color_rgb *bevel_dark; 
-    color_rgb *bevel_light;
+    RrColor *primary;
+    RrColor *secondary;
+    RrColor *border_color;
+    RrColor *bevel_dark; 
+    RrColor *bevel_light;
+    RrColor *interlace_color;
     gboolean interlaced;
     gboolean border;
     RrAppearance *parent;
     gint parentx;
     gint parenty;
-    pixel32 *pixel_data;
+    RrPixel32 *pixel_data;
 };
 
 struct _RrTextureText {
     RrFont *font;
     RrJustify justify;
-    gint shadow;
-    gchar tint;
-    guchar offset;
-    color_rgb *color;
+    RrColor *color;
     gchar *string;
 };
 
@@ -94,24 +115,33 @@ struct _RrPixmapMask {
 };
 
 struct _RrTextureMask {
-    color_rgb *color;
+    RrColor *color;
     RrPixmapMask *mask;
 };
 
 struct _RrTextureRGBA {
     gint width;
     gint height;
-    pixel32 *data;
+    RrPixel32 *data;
 /* cached scaled so we don't have to scale often */
     gint cwidth;
     gint cheight;
-    pixel32 *cache;
+    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 +162,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);
 
@@ -150,22 +187,33 @@ gint     RrBlueShift    (const RrInstance *inst);
 gint     RrRedMask      (const RrInstance *inst);
 gint     RrGreenMask    (const RrInstance *inst);
 gint     RrBlueMask     (const RrInstance *inst);
-guint    RrPseudoBPC    (const RrInstance *inst);
-XColor*  RrPseudoColors (const RrInstance *inst);
 
-color_rgb *RrColorNew   (const RrInstance *inst, gint r, gint g, gint b);
-color_rgb *RrColorParse (const RrInstance *inst, gchar *colorname);
-void       RrColorFree  (color_rgb *in);
+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);
 
-void RrPaint   (RrAppearance *l, Window win, gint w, gint h);
-void RrMinsize (RrAppearance *l, gint *w, gint *h);
+gint RrFontMeasureString (const RrFont *f, const gchar *str);
+gint RrFontHeight        (const RrFont *f);
+gint RrFontMaxCharWidth  (const RrFont *f);
+
+void RrPaint   (RrAppearance *a, Window win, gint w, gint h);
+void RrMinsize (RrAppearance *a, gint *w, gint *h);
+void RrMargins (RrAppearance *a, gint *l, gint *t, gint *r, gint *b);
 
 gboolean RrPixmapToRGBA(const RrInstance *inst,
                         Pixmap pmap, Pixmap mask,
-                        gint *w, gint *h, pixel32 **data);
+                        gint *w, gint *h, RrPixel32 **data);
+
+G_END_DECLS
 
 #endif /*__render_h*/
This page took 0.024359 seconds and 4 git commands to generate.