[Mesa-dev] [PATCH 6/6] meta: Make shader template literal strings be parameters to asprintf

Ian Romanick idr at freedesktop.org
Fri Oct 5 15:56:52 PDT 2012


From: Ian Romanick <ian.d.romanick at intel.com>

This enables the C compiler to generate warnings if the formats and the
arguments don't match.

Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
---
 src/mesa/drivers/common/meta.c | 43 ++++++++++++++++++------------------------
 1 file changed, 18 insertions(+), 25 deletions(-)

diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index ba932c7..24d8d48 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -3101,8 +3101,6 @@ setup_glsl_generate_mipmap(struct gl_context *ctx,
    mem_ctx = ralloc_context(NULL);
 
    if (ctx->API == API_OPENGLES2 || ctx->Const.GLSLVersion < 130) {
-      const char *fs_template;
-
       vs_source =
          "attribute vec2 position;\n"
          "attribute vec3 textureCoords;\n"
@@ -3112,22 +3110,19 @@ setup_glsl_generate_mipmap(struct gl_context *ctx,
          "   texCoords = textureCoords;\n"
          "   gl_Position = vec4(position, 0.0, 1.0);\n"
          "}\n";
-      fs_template =
-         "#extension GL_EXT_texture_array : enable\n"
-         "uniform %s texSampler;\n"
-         "varying vec3 texCoords;\n"
-         "void main()\n"
-         "{\n"
-         "   gl_FragColor = %s(texSampler, %s);\n"
-         "}\n";
 
-      fs_source = ralloc_asprintf(mem_ctx, fs_template,
+      fs_source = ralloc_asprintf(mem_ctx,
+                                  "#extension GL_EXT_texture_array : enable\n"
+                                  "uniform %s texSampler;\n"
+                                  "varying vec3 texCoords;\n"
+                                  "void main()\n"
+                                  "{\n"
+                                  "   gl_FragColor = %s(texSampler, %s);\n"
+                                  "}\n",
                                   sampler->type,
                                   sampler->func, sampler->texcoords);
    }
    else {
-      const char *fs_template;
-
       vs_source =
          "#version 130\n"
          "in vec2 position;\n"
@@ -3138,18 +3133,16 @@ setup_glsl_generate_mipmap(struct gl_context *ctx,
          "   texCoords = textureCoords;\n"
          "   gl_Position = vec4(position, 0.0, 1.0);\n"
          "}\n";
-      fs_template =
-         "#version 130\n"
-         "uniform %s texSampler;\n"
-         "in vec3 texCoords;\n"
-         "out vec4 out_color;\n"
-         "\n"
-         "void main()\n"
-         "{\n"
-         "   out_color = texture(texSampler, %s);\n"
-         "}\n";
-
-      fs_source = ralloc_asprintf(mem_ctx, fs_template,
+      fs_source = ralloc_asprintf(mem_ctx,
+                                  "#version 130\n"
+                                  "uniform %s texSampler;\n"
+                                  "in vec3 texCoords;\n"
+                                  "out vec4 out_color;\n"
+                                  "\n"
+                                  "void main()\n"
+                                  "{\n"
+                                  "   out_color = texture(texSampler, %s);\n"
+                                  "}\n",
                                   sampler->type,
                                   sampler->texcoords);
    }
-- 
1.7.11.4



More information about the mesa-dev mailing list