#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;