From 422cf718b8747edcb08ff5009aa85e1020da5958 Mon Sep 17 00:00:00 2001 From: lecoanet Date: Fri, 31 May 2002 15:13:39 +0000 Subject: Modification de ZnRenderImage et aout de ZnRenderIcon --- generic/Draw.c | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) (limited to 'generic/Draw.c') 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); } -- cgit v1.1