moved paint's arguments into the appearance struct
This commit is contained in:
parent
69abb86cb0
commit
3d6b970a4b
3 changed files with 21 additions and 9 deletions
|
@ -87,10 +87,15 @@ void truecolor_startup(void)
|
||||||
XFree(timage);
|
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;
|
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;
|
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) {
|
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)
|
else if (l->surface.data.planar.grad == Background_Solid)
|
||||||
gradient_solid(l, x, y, w, h);
|
gradient_solid(l, x, y, w, h);
|
||||||
|
|
|
@ -131,6 +131,7 @@ typedef struct Texture {
|
||||||
|
|
||||||
typedef struct Appearance {
|
typedef struct Appearance {
|
||||||
Surface surface;
|
Surface surface;
|
||||||
|
Rect area;
|
||||||
int textures;
|
int textures;
|
||||||
Texture *texture;
|
Texture *texture;
|
||||||
Pixmap pixmap;
|
Pixmap pixmap;
|
||||||
|
@ -141,11 +142,11 @@ extern Visual *render_visual;
|
||||||
extern int render_depth;
|
extern int render_depth;
|
||||||
extern Colormap render_colormap;
|
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 render_startup(void);
|
||||||
void init_appearance(Appearance *l);
|
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);
|
void render_shutdown(void);
|
||||||
Appearance *appearance_new(SurfaceType type, int numtex);
|
Appearance *appearance_new(SurfaceType type, int numtex);
|
||||||
Appearance *appearance_copy(Appearance *a);
|
Appearance *appearance_copy(Appearance *a);
|
||||||
|
|
|
@ -56,21 +56,25 @@ int main()
|
||||||
look->surface.data.planar.secondary = color_new(0xFF, 0xFF, 0xFF);
|
look->surface.data.planar.secondary = color_new(0xFF, 0xFF, 0xFF);
|
||||||
look->surface.data.planar.primary = color_parse("Red");
|
look->surface.data.planar.primary = color_parse("Red");
|
||||||
look->surface.data.planar.interlaced = FALSE;
|
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) {
|
if (ob_display == NULL) {
|
||||||
fprintf(stderr, "couldn't connect to X server :0\n");
|
fprintf(stderr, "couldn't connect to X server :0\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
paint(win, look, 0, 0, 500, 500);
|
paint(win, look);
|
||||||
while (1) {
|
while (1) {
|
||||||
XNextEvent(ob_display, &report);
|
XNextEvent(ob_display, &report);
|
||||||
switch (report.type) {
|
switch (report.type) {
|
||||||
case Expose:
|
case Expose:
|
||||||
break;
|
break;
|
||||||
case ConfigureNotify:
|
case ConfigureNotify:
|
||||||
w = report.xconfigure.width;
|
look->area.width = report.xconfigure.width;
|
||||||
h = report.xconfigure.height;
|
look->area.height = report.xconfigure.height;
|
||||||
paint(win, look, 0, 0, w, h);
|
paint(win, look);
|
||||||
printf("confignotify %i:%i\n", w, h);
|
printf("confignotify %i:%i\n", w, h);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue