Merge branch 'gallium-index-bias'
[mesa.git] / src / mesa / state_tracker / st_cb_strings.c
index ac1a8b1422487627f2fb8263f32afa73af06aa72..0fcb427f30aede4378e1ec677fff24a27811eed0 100644 (file)
 
 #include "main/glheader.h"
 #include "main/macros.h"
-#include "main/version.h"
 #include "pipe/p_context.h"
-#include "pipe/p_winsys.h"
+#include "pipe/p_screen.h"
+#include "util/u_string.h"
 #include "st_context.h"
 #include "st_cb_strings.h"
 
-#define ST_VERSION_STRING "0.1"
+#define ST_VERSION_STRING "0.4"
 
 static const GLubyte *
 st_get_string(GLcontext * ctx, GLenum name)
 {
    struct st_context *st = st_context(ctx);
-   struct pipe_context *pipe = st->pipe;
-   static char buffer[128];
-
+   struct pipe_screen *screen = st->pipe->screen;
 
    switch (name) {
    case GL_VENDOR: {
-      const char *vendor = pipe->get_vendor( pipe );
-      const char *tungsten = "Tungsten Graphics, Inc.";
-
-      /* Tungsten developed the state_tracker module (and much of
-       * Mesa), but the driver itself may come from elsewhere.  The
-       * additional string allows "and XyzCorp" to reflect this.
-       */
-      if (vendor && strcmp(vendor, tungsten) != 0)
-        snprintf(buffer, sizeof(buffer), "%s and %s",  tungsten, vendor);
-      else
-        snprintf(buffer, sizeof(buffer), "%s", tungsten);
-
-      return (GLubyte *) buffer;
-      break;
+      const char *vendor = screen->get_vendor( screen );
+      util_snprintf(st->vendor, sizeof(st->vendor), "%s", vendor);
+      return (GLubyte *) st->vendor;
    }
 
    case GL_RENDERER:
-      snprintf(buffer, sizeof(buffer), "TG3D, %s on %s", 
-              pipe->get_name( pipe ),
-              pipe->winsys->get_name( pipe->winsys ));
+      util_snprintf(st->renderer, sizeof(st->renderer), "Gallium %s on %s", 
+               ST_VERSION_STRING,
+              screen->get_name( screen ));
 
-      return (GLubyte *) buffer;
+      return (GLubyte *) st->renderer;
 
    default:
       return NULL;