summaryrefslogtreecommitdiff
path: root/render
diff options
context:
space:
mode:
authorDerek Foreman <manmower@gmail.com>2003-03-28 03:25:51 +0000
committerDerek Foreman <manmower@gmail.com>2003-03-28 03:25:51 +0000
commit3d6b970a4b25627e00fb4a4de6706fe067d58186 (patch)
treea086ef889e4a058d742ddfeb888d0010b21ad1ca /render
parent69abb86cb0876a26d5d34da9d9c1de7d968cafc2 (diff)
moved paint's arguments into the appearance struct
Diffstat (limited to 'render')
-rw-r--r--render/render.c13
-rw-r--r--render/render.h5
-rw-r--r--render/test.c12
3 files changed, 21 insertions, 9 deletions
diff --git a/render/render.c b/render/render.c
index f446a75d..9d4a2c67 100644
--- a/render/render.c
+++ b/render/render.c
@@ -87,10 +87,15 @@ void truecolor_startup(void)
XFree(timage);
}
-void x_paint(Window win, Appearance *l, int x, int y, int w, int h)
+void x_paint(Window win, Appearance *l)
{
- int i, transferred = 0;
+ int i, transferred = 0, sw, sh;
+ pixel32 *source;
Pixmap oldp;
+ int x = l->area.x;
+ int y = l->area.y;
+ int w = l->area.width;
+ int h = l->area.height;
if (w <= 0 || h <= 0 || x+w <= 0 || y+h <= 0) return;
@@ -111,7 +116,9 @@ void x_paint(Window win, Appearance *l, int x, int y, int w, int h)
if (l->surface.data.planar.grad == Background_ParentRelative) {
- memset(l->surface.data.planar.pixel_data, 0, w*h*4);
+ sw = l->surface.data.planar.parent->area.width;
+ source = l->surface.data.planar.pixel_data;
+/* for (i = */
}
else if (l->surface.data.planar.grad == Background_Solid)
gradient_solid(l, x, y, w, h);
diff --git a/render/render.h b/render/render.h
index d3752e65..d5f5f8bc 100644
--- a/render/render.h
+++ b/render/render.h
@@ -131,6 +131,7 @@ typedef struct Texture {
typedef struct Appearance {
Surface surface;
+ Rect area;
int textures;
Texture *texture;
Pixmap pixmap;
@@ -141,11 +142,11 @@ extern Visual *render_visual;
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 render_shutdown(void);
Appearance *appearance_new(SurfaceType type, int numtex);
Appearance *appearance_copy(Appearance *a);
diff --git a/render/test.c b/render/test.c
index f1992de9..4bcedb2c 100644
--- a/render/test.c
+++ b/render/test.c
@@ -56,21 +56,25 @@ int main()
look->surface.data.planar.secondary = color_new(0xFF, 0xFF, 0xFF);
look->surface.data.planar.primary = color_parse("Red");
look->surface.data.planar.interlaced = FALSE;
+ look->area.x = 0;
+ look->area.x = 0;
+ look->area.width = 500;
+ look->area.height = 500;
if (ob_display == NULL) {
fprintf(stderr, "couldn't connect to X server :0\n");
return 0;
}
- paint(win, look, 0, 0, 500, 500);
+ paint(win, look);
while (1) {
XNextEvent(ob_display, &report);
switch (report.type) {
case Expose:
break;
case ConfigureNotify:
- w = report.xconfigure.width;
- h = report.xconfigure.height;
- paint(win, look, 0, 0, w, h);
+ look->area.width = report.xconfigure.width;
+ look->area.height = report.xconfigure.height;
+ paint(win, look);
printf("confignotify %i:%i\n", w, h);
break;
}