From 3a8415c2a1a43cbc1a0ae1b5a9ea30d739ad3135 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 2 Jun 2003 01:48:03 +0000 Subject: [PATCH] render textures in texture.c --- render2/paint.c | 5 ++++- render2/planar.c | 22 ---------------------- render2/texture.c | 26 ++++++++++++++++++++++++++ render2/texture.h | 2 ++ 4 files changed, 32 insertions(+), 23 deletions(-) diff --git a/render2/paint.c b/render2/paint.c index 7b00f59b..7b8730ea 100644 --- a/render2/paint.c +++ b/render2/paint.c @@ -43,7 +43,7 @@ void RrPaint(struct RrSurface *sur) { struct RrInstance *inst; struct RrSurface *p; - int ok; + int ok, i; int surx, sury; GSList *it; @@ -96,5 +96,8 @@ void RrPaint(struct RrSurface *sur) break; } + for (i = 0; i < sur->ntextures; ++i) + RrTexturePaint(sur, &sur->texture[i]); + glXSwapBuffers(RrDisplay(inst), RrSurfaceWindow(sur)); } diff --git a/render2/planar.c b/render2/planar.c index e01b67e8..4afd7140 100644 --- a/render2/planar.c +++ b/render2/planar.c @@ -1,7 +1,6 @@ #include "planar.h" #include "surface.h" #include "texture.h" -#include "glft/glft.h" #include "color.h" #include "debug.h" #include "font.h" @@ -80,7 +79,6 @@ void RrPlanarPaint(struct RrSurface *sur, int absx, int absy) { struct RrColor *pri, *sec, avg; int x, y, w, h; - int i; copy_parent(sur); @@ -298,26 +296,6 @@ void RrPlanarPaint(struct RrSurface *sur, int absx, int absy) glEnd(); break; } - for (i = 0; i < sur->ntextures; i++) { - struct RrTextureText *t; - glEnable(GL_TEXTURE_2D); - switch (sur->texture[i].type) { - case RR_TEXTURE_NONE: - break; - case RR_TEXTURE_TEXT: - t = &sur->texture[i].data.text; - printf("text %s\n", t->string); - glColor3f(1.0, 1.0, 1.0); - if (t->font == NULL) { - glDisable(GL_TEXTURE_2D); - return; - } - GlftRenderString(t->font->font, t->string, - strlen(t->string), 0, 0); - break; - } - } - glDisable(GL_TEXTURE_2D); } void RrPlanarMinSize(struct RrSurface *sur, int *w, int *h) diff --git a/render2/texture.c b/render2/texture.c index 4d6aaa53..0e0cac87 100644 --- a/render2/texture.c +++ b/render2/texture.c @@ -1,7 +1,10 @@ #include "instance.h" #include "texture.h" #include "surface.h" +#include "font.h" +#include "glft/glft.h" #include +#include #include void RrTextureFreeContents(struct RrTexture *tex) @@ -80,3 +83,26 @@ void RrTextureSetNone(struct RrSurface *sur, if (!tex) return; RrTextureFreeContents(tex); } + +void RrTexturePaint(struct RrSurface *sur, struct RrTexture *tex) +{ + struct GlftColor col; + + glEnable(GL_TEXTURE_2D); + + switch (tex->type) { + case RR_TEXTURE_NONE: + break; + case RR_TEXTURE_TEXT: + printf("text %s\n", tex->data.text.string); + assert(tex->data.text.font); + col.r = tex->data.text.color.r; + col.g = tex->data.text.color.g; + col.b = tex->data.text.color.b; + col.a = tex->data.text.color.a; + GlftRenderString(tex->data.text.font->font, tex->data.text.string, + strlen(tex->data.text.string), &col, 0, 0); + break; + } + glDisable(GL_TEXTURE_2D); +} diff --git a/render2/texture.h b/render2/texture.h index 9e1e08bb..5d535e3b 100644 --- a/render2/texture.h +++ b/render2/texture.h @@ -39,4 +39,6 @@ struct RrTexture { union RrTextureData data; }; +void RrTexturePaint(struct RrSurface *sur, struct RrTexture *tex); + #endif -- 2.34.1