aboutsummaryrefslogtreecommitdiff
path: root/generic/Draw.c
diff options
context:
space:
mode:
authorlecoanet2002-05-31 15:13:39 +0000
committerlecoanet2002-05-31 15:13:39 +0000
commit422cf718b8747edcb08ff5009aa85e1020da5958 (patch)
tree164aed5f1fe8e6a7d63fdacb02bff4d207ad9a3c /generic/Draw.c
parent1d8672618630449e8da722581c727617b2ebd6d6 (diff)
downloadtkzinc-422cf718b8747edcb08ff5009aa85e1020da5958.zip
tkzinc-422cf718b8747edcb08ff5009aa85e1020da5958.tar.gz
tkzinc-422cf718b8747edcb08ff5009aa85e1020da5958.tar.bz2
tkzinc-422cf718b8747edcb08ff5009aa85e1020da5958.tar.xz
Modification de ZnRenderImage et aout de ZnRenderIcon
Diffstat (limited to 'generic/Draw.c')
-rw-r--r--generic/Draw.c38
1 files changed, 28 insertions, 10 deletions
diff --git a/generic/Draw.c b/generic/Draw.c
index ea93823..92b22b5 100644
--- a/generic/Draw.c
+++ b/generic/Draw.c
@@ -1139,24 +1139,42 @@ ZnRenderPolyline(WidgetInfo *wi,
void
+ZnRenderIcon(WidgetInfo *wi,
+ ZnImage image,
+ ZnGradient *gradient,
+ ZnPoint *origin,
+ ZnBool modulate)
+{
+ ZnPoint p[4];
+ int width, height;
+
+ ZnSizeOfImage(image, &width, &height);
+ p[0] = *origin;
+ p[1].x = origin->x;
+ p[1].y = origin->y + height;
+ p[2].x = origin->x + width;
+ p[2].y = p[1].y;
+ p[3].x = p[2].x;
+ p[3].y = origin->y;
+ ZnRenderImage(wi, image, gradient, p, modulate);
+}
+
+
+void
ZnRenderImage(WidgetInfo *wi,
ZnImage image,
ZnGradient *gradient,
- ZnPoint *origin,
+ ZnPoint *quad,
ZnBool modulate)
{
- ZnReal nx, ny;
XColor *color;
- int alpha, width, height;
+ int alpha;
ZnReal t, s;
GLuint texobj;
color = ZnGetGradientColor(gradient, 0, &alpha);
alpha = ZnComposeAlpha(alpha, wi->alpha);
- ZnSizeOfImage(image, &width, &height);
texobj = ZnImageTex(image, &t, &s);
- nx = origin->x + width;
- ny = origin->y + height;
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glEnable(GL_TEXTURE_2D);
@@ -1169,13 +1187,13 @@ ZnRenderImage(WidgetInfo *wi,
}
glBegin(GL_QUADS);
glTexCoord2f(0.0, 0.0);
- glVertex2f(origin->x, origin->y);
+ glVertex2f(quad[0].x, quad[0].y);
glTexCoord2f(0.0, t);
- glVertex2f(origin->x, ny);
+ glVertex2f(quad[1].x, quad[1].y);
glTexCoord2f(s, t);
- glVertex2f(nx, ny);
+ glVertex2f(quad[2].x, quad[2].y);
glTexCoord2f(s, 0.0);
- glVertex2f(nx, origin->y);
+ glVertex2f(quad[3].x, quad[3].y);
glEnd();
glDisable(GL_TEXTURE_2D);
}