Demos (master): glxinfo: Refactor shader limit printing code to a separate function

Ian Romanick idr at kemper.freedesktop.org
Wed Jan 29 16:33:43 UTC 2014


Module: Demos
Branch: master
Commit: 1a5bf643c864a374da4e013570c5240c1b1821d3
URL:    http://cgit.freedesktop.org/mesa/demos/commit/?id=1a5bf643c864a374da4e013570c5240c1b1821d3

Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Sun Jan 26 21:46:48 2014 -0700

glxinfo: Refactor shader limit printing code to a separate function

More shader targets are coming.

Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Brian Paul <brianp at vmware.com>

---

 src/xdemos/glxinfo.c |   38 ++++++++++++++++++++------------------
 1 file changed, 20 insertions(+), 18 deletions(-)

diff --git a/src/xdemos/glxinfo.c b/src/xdemos/glxinfo.c
index 2333daa..e5b5b5b 100644
--- a/src/xdemos/glxinfo.c
+++ b/src/xdemos/glxinfo.c
@@ -506,6 +506,24 @@ print_program_limits(GLenum target)
 #endif /* GL_ARB_vertex_program / GL_ARB_fragment_program */
 }
 
+struct token_name {
+   GLenum token;
+   const char *name;
+};
+
+static void
+print_shader_limit_list(const struct token_name *lim)
+{
+   GLint max[1];
+   unsigned i;
+
+   for (i = 0; lim[i].token; i++) {
+      glGetIntegerv(lim[i].token, max);
+      if (glGetError() == GL_NO_ERROR) {
+	 printf("        %s = %d\n", lim[i].name, max[0]);
+      }
+   }
+}
 
 /**
  * Print interesting limits for vertex/fragment shaders.
@@ -513,10 +531,6 @@ print_program_limits(GLenum target)
 static void
 print_shader_limits(GLenum target)
 {
-   struct token_name {
-      GLenum token;
-      const char *name;
-   };
    static const struct token_name vertex_limits[] = {
       { GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB, "GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB" },
       { GL_MAX_VARYING_FLOATS_ARB, "GL_MAX_VARYING_FLOATS_ARB" },
@@ -533,28 +547,16 @@ print_shader_limits(GLenum target)
       { GL_MAX_TEXTURE_IMAGE_UNITS_ARB, "GL_MAX_TEXTURE_IMAGE_UNITS_ARB" },
       { (GLenum) 0, NULL }
    };
-   GLint max[1];
-   int i;
 
    switch (target) {
    case GL_VERTEX_SHADER:
       printf("    GL_VERTEX_SHADER_ARB:\n");
-      for (i = 0; vertex_limits[i].token; i++) {
-         glGetIntegerv(vertex_limits[i].token, max);
-         if (glGetError() == GL_NO_ERROR) {
-            printf("        %s = %d\n", vertex_limits[i].name, max[0]);
-         }
-      }
+      print_shader_limit_list(vertex_limits);
       break;
 
    case GL_FRAGMENT_SHADER:
       printf("    GL_FRAGMENT_SHADER_ARB:\n");
-      for (i = 0; fragment_limits[i].token; i++) {
-         glGetIntegerv(fragment_limits[i].token, max);
-         if (glGetError() == GL_NO_ERROR) {
-            printf("        %s = %d\n", fragment_limits[i].name, max[0]);
-         }
-      }
+      print_shader_limit_list(fragment_limits);
       break;
    }
 }




More information about the mesa-commit mailing list