X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=render%2Frender.c;h=1fbfef672b09a83ffbc5533875c625d5a2448543;hb=742106511fbaca5ebef385a9c60c427e8dd7a6dd;hp=dea04cf4bdfe94c6921481d0da549f3beaea266c;hpb=768c3cd4a9fba291e49f4706829d2021d0952aa8;p=chaz%2Fopenbox diff --git a/render/render.c b/render/render.c index dea04cf4..1fbfef67 100644 --- a/render/render.c +++ b/render/render.c @@ -15,27 +15,25 @@ # include #endif -static void RrPixel32_to_pixmap(RrAppearance *l, gint x, gint y, gint w, gint h); +static void RrPixel32_to_pixmap(RrAppearance *l, + gint x, gint y, gint w, gint h); void RrPaint(RrAppearance *l, Window win, gint w, gint h) { int i, transferred = 0, sw; RrPixel32 *source, *dest; Pixmap oldp; - Rect tarea; /* area in which to draw textures */ + RrRect tarea; /* area in which to draw textures */ gboolean resized; if (w <= 0 || h <= 0) return; resized = (l->w != w || l->h != h); - if (resized) { - oldp = l->pixmap; /* save to free after changing the visible pixmap */ - l->pixmap = XCreatePixmap(RrDisplay(l->inst), - RrRootWindow(l->inst), - w, h, RrDepth(l->inst)); - } else - oldp = None; + oldp = l->pixmap; /* save to free after changing the visible pixmap */ + l->pixmap = XCreatePixmap(RrDisplay(l->inst), + RrRootWindow(l->inst), + w, h, RrDepth(l->inst)); g_assert(l->pixmap != None); l->w = w; @@ -55,16 +53,14 @@ void RrPaint(RrAppearance *l, Window win, gint w, gint h) g_assert (l->surface.parent->w); sw = l->surface.parent->w; - source = (l->surface.parent->surface.RrPixel_data + l->surface.parentx + - sw * l->surface.parenty); + source = (l->surface.parent->surface.RrPixel_data + + l->surface.parentx + sw * l->surface.parenty); dest = l->surface.RrPixel_data; for (i = 0; i < h; i++, source += sw, dest += w) { memcpy(dest, source, w * sizeof(RrPixel32)); } - } else if (l->surface.grad == RR_SURFACE_SOLID) - gradient_solid(l, 0, 0, w, h); - else - gradient_render(&l->surface, w, h); + } else + RrRender(l, w, h); RECT_SET(tarea, 0, 0, w, h); if (l->surface.grad != RR_SURFACE_PARENTREL) { @@ -192,6 +188,8 @@ RrAppearance *RrAppearanceCopy(RrAppearance *orig) spc->interlaced = spo->interlaced; spc->border = spo->border; + spc->parent = NULL; + spc->parentx = spc->parenty = 0; spc->RrPixel_data = NULL; copy->textures = orig->textures; @@ -236,7 +234,7 @@ static void RrPixel32_to_pixmap(RrAppearance *l, gint x, gint y, gint w, gint h) in = l->surface.RrPixel_data; out = l->pixmap; - im->byte_order = RrEndian; + im->byte_order = LSBFirst; /* this malloc is a complete waste of time on normal 32bpp as reduce_depth just sets im->data = data and returns */ @@ -267,13 +265,9 @@ void RrMinsize(RrAppearance *l, gint *w, gint *h) break; case RR_TEXTURE_TEXT: m = RrFontMeasureString(l->texture[i].data.text.font, - l->texture[i].data.text.string, - l->texture[i].data.text.shadow, - l->texture[i].data.text.offset); + l->texture[i].data.text.string); *w = MAX(*w, m); - m = RrFontHeight(l->texture[i].data.text.font, - l->texture[i].data.text.shadow, - l->texture[i].data.text.offset); + m = RrFontHeight(l->texture[i].data.text.font); *h += MAX(*h, m); break; case RR_TEXTURE_RGBA: