From 6b36f92065f054abd810d956169a87180677d4f7 Mon Sep 17 00:00:00 2001 From: lecoanet Date: Mon, 18 Feb 2002 16:03:54 +0000 Subject: Passage des couleurs en gradients pour uniformiser --- generic/Arc.c | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) (limited to 'generic/Arc.c') diff --git a/generic/Arc.c b/generic/Arc.c index f370057..c65a4f1 100644 --- a/generic/Arc.c +++ b/generic/Arc.c @@ -74,12 +74,11 @@ typedef struct _ArcItemStruct { Pixmap line_pattern; Pixmap fill_pattern; ZnGradient *fill_color; - ZnColor line_color; + ZnGradient *line_color; ZnDim line_width; LineStyle line_style; ZnLineEnd first_end; ZnLineEnd last_end; - int line_alpha; char *tile_name; unsigned char flags; @@ -115,9 +114,7 @@ static ZnAttrConfig arc_attrs[] = { Tk_Offset(ArcItemStruct, first_end), 0, ZN_COORDS_FLAG, False }, { ZN_CONFIG_LINE_END, "-lastend", NULL, Tk_Offset(ArcItemStruct, last_end), 0, ZN_COORDS_FLAG, False }, - { ZN_CONFIG_ALPHA, "-linealpha", NULL, - Tk_Offset(ArcItemStruct, line_alpha), 0, ZN_DRAW_FLAG, False }, - { ZN_CONFIG_COLOR, "-linecolor", NULL, + { ZN_CONFIG_GRADIENT, "-linecolor", NULL, Tk_Offset(ArcItemStruct, line_color), 0, ZN_DRAW_FLAG|ZN_BORDER_FLAG, False }, { ZN_CONFIG_PATTERN, "-linepattern", NULL, @@ -228,10 +225,8 @@ Init(Item item, (*args)++; (*argc)--; - arc->fill_color = ZnGetGradient(wi->interp, wi->win, - ZnNameOfColor(wi->fore_color)); - arc->line_alpha = 100; - arc->line_color = ZnGetColorByValue(wi->win, wi->fore_color); + arc->fill_color = ZnGetGradientByValue(wi->fore_gradient); + arc->line_color = ZnGetGradientByValue(wi->fore_gradient); return ZN_OK; } @@ -273,7 +268,7 @@ Clone(Item item) arc->fill_pattern = Tk_GetBitmap(wi->interp, wi->win, Tk_NameOfBitmap(wi->dpy, arc->fill_pattern)); } - arc->line_color = ZnGetColorByValue(wi->win, arc->line_color); + arc->line_color = ZnGetGradientByValue(arc->line_color); arc->fill_color = ZnGetGradientByValue(arc->fill_color); arc->render_shape = NULL; } @@ -318,7 +313,7 @@ Destroy(Item item) ZnFree(arc->grad_geo); } ZnFreeGradient(arc->fill_color); - ZnFreeColor(arc->line_color); + ZnFreeGradient(arc->line_color); } @@ -1073,9 +1068,7 @@ Draw(Item item) /* Fill if requested */ if (ISSET(arc->flags, FILLED_BIT)) { - values.foreground = ZnPixel(ZnGetGradientColor(wi->win, - arc->fill_color, - 0.0, NULL)); + values.foreground = ZnPixel(ZnGetGradientColor(arc->fill_color, 0.0, NULL)); values.arc_mode = ISSET(arc->flags, PIE_SLICE_BIT) ? ArcPieSlice : ArcChord; if (arc->tile != ZnUnspecifiedImage) { /* Fill Tiled */ Pixmap pmap = GetImagePixmap(wi->win, arc->tile_name, arc->tile, NULL); @@ -1120,7 +1113,7 @@ Draw(Item item) ZnPoint tang; SetLineStyle(wi, arc->line_style); - values.foreground = ZnPixel(arc->line_color); + values.foreground = ZnPixel(ZnGetGradientColor(arc->line_color, 0, NULL)); values.line_width = (arc->line_width == 1) ? 0 : arc->line_width; values.cap_style = CapRound; values.join_style = JoinRound; @@ -1286,8 +1279,8 @@ Render(Item item) glEnable(GL_POLYGON_STIPPLE); glPolygonStipple(GetBitmapMask(wi->dpy, arc->fill_pattern)->pixels); } - color = ZnGetGradientColor(wi->win, arc->fill_color, 0.0, &alpha); - alpha = alpha*wi->alpha/100*65535/100; + color = ZnGetGradientColor(arc->fill_color, 0.0, &alpha); + alpha = ZnComposeAlpha(alpha, wi->alpha); glColor4us(color->red, color->green, color->blue, alpha); ArcRenderCB(arc); glDisable(GL_POLYGON_STIPPLE); @@ -1314,7 +1307,7 @@ Render(Item item) } RenderPolyline(wi, p, num_points, arc->line_width, False, arc->line_style, CapRound, JoinRound, first, last, - arc->line_color, arc->line_alpha*wi->alpha/100*65535/100); + arc->line_color); } #endif } -- cgit v1.1