X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=render%2Frender.c;h=97ec7b520e149a784caceacdeaff4e585239723c;hb=8bcd349e4e7078e663d3092a6ad6c7aff8eb05a0;hp=8623455f6c06091e6c55335ca48531eb393b8f5b;hpb=599b63e4713114d7e20cb49bf00788ea02bbcf7c;p=chaz%2Fopenbox diff --git a/render/render.c b/render/render.c index 8623455f..97ec7b52 100644 --- a/render/render.c +++ b/render/render.c @@ -40,8 +40,7 @@ static void pixel_data_to_pixmap(RrAppearance *l, Pixmap RrPaintPixmap(RrAppearance *a, gint w, gint h) { - gint i, transferred = 0, sw, sh, partial_w, partial_h, force_transfer = 0; - RrPixel32 *source, *dest; + gint i, transferred = 0, force_transfer = 0; Pixmap oldp = None; RrRect tarea; /* area in which to draw textures */ gboolean resized; @@ -82,30 +81,7 @@ Pixmap RrPaintPixmap(RrAppearance *a, gint w, gint h) a->surface.pixel_data = g_new(RrPixel32, w * h); } - if (a->surface.grad == RR_SURFACE_PARENTREL) { - g_assert (a->surface.parent); - g_assert (a->surface.parent->w); - - sw = a->surface.parent->w; - sh = a->surface.parent->h; - - source = (a->surface.parent->surface.pixel_data + - a->surface.parentx + sw * a->surface.parenty); - dest = a->surface.pixel_data; - - if (a->surface.parentx + w > sw) { - partial_w = sw - a->surface.parentx; - } else partial_w = w; - - if (a->surface.parenty + h > sh) { - partial_h = sh - a->surface.parenty; - } else partial_h = h; - - for (i = 0; i < partial_h; i++, source += sw, dest += w) { - memcpy(dest, source, partial_w * sizeof(RrPixel32)); - } - } else - RrRender(a, w, h); + RrRender(a, w, h); { gint l, t, r, b; @@ -195,6 +171,8 @@ RrAppearance *RrAppearanceNew(const RrInstance *inst, gint numtex) out = g_new0(RrAppearance, 1); out->inst = inst; out->textures = numtex; + out->surface.bevel_light_adjust = 128; + out->surface.bevel_dark_adjust = 64; if (numtex) out->texture = g_new0(RrTexture, numtex); return out; @@ -263,7 +241,23 @@ RrAppearance *RrAppearanceCopy(RrAppearance *orig) spo->bevel_light->b); else spc->bevel_light = NULL; + if (spo->split_primary != NULL) + spc->split_primary = RrColorNew(copy->inst, + spo->split_primary->r, + spo->split_primary->g, + spo->split_primary->b); + else spc->split_primary = NULL; + + if (spo->split_secondary != NULL) + spc->split_secondary = RrColorNew(copy->inst, + spo->split_secondary->r, + spo->split_secondary->g, + spo->split_secondary->b); + else spc->split_secondary = NULL; + spc->interlaced = spo->interlaced; + spc->bevel_light_adjust = spo->bevel_light_adjust; + spc->bevel_dark_adjust = spo->bevel_dark_adjust; spc->border = spo->border; spc->parent = NULL; spc->parentx = spc->parenty = 0; @@ -304,6 +298,8 @@ void RrAppearanceFree(RrAppearance *a) RrColorFree(p->interlace_color); RrColorFree(p->bevel_dark); RrColorFree(p->bevel_light); + RrColorFree(p->split_primary); + RrColorFree(p->split_secondary); g_free(p->pixel_data); p->pixel_data = NULL; g_free(a);