aboutsummaryrefslogtreecommitdiff
path: root/generic/Arc.c
diff options
context:
space:
mode:
authorlecoanet2002-02-18 16:03:54 +0000
committerlecoanet2002-02-18 16:03:54 +0000
commit6b36f92065f054abd810d956169a87180677d4f7 (patch)
treed2d16c8be93c67d15670eccce326dba5276acda1 /generic/Arc.c
parent67dd05047282a179b5fac88564bb3494a69ecd23 (diff)
downloadtkzinc-6b36f92065f054abd810d956169a87180677d4f7.zip
tkzinc-6b36f92065f054abd810d956169a87180677d4f7.tar.gz
tkzinc-6b36f92065f054abd810d956169a87180677d4f7.tar.bz2
tkzinc-6b36f92065f054abd810d956169a87180677d4f7.tar.xz
Passage des couleurs en gradients pour uniformiser
Diffstat (limited to 'generic/Arc.c')
-rw-r--r--generic/Arc.c29
1 files changed, 11 insertions, 18 deletions
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
}