From 258aba3836b64b537219ea9003cfac97d42a32b8 Mon Sep 17 00:00:00 2001 From: Robert Bragg Date: Wed, 26 Sep 2012 22:01:38 +0100 Subject: [PATCH] check the glsl version during init This adds a check for the glsl version during driver init which gets stored in ctx->glsl_major and ctx->glsl_minor. Reviewed-by: Neil Roberts (cherry picked from commit 9bde48bda6d602dd536c3536d56d2ff7545802c3) --- cogl/cogl-context-private.h | 3 +++ cogl/driver/gl/gl/cogl-driver-gl.c | 10 ++++++++++ cogl/driver/gl/gles/cogl-driver-gles.c | 3 +++ 3 files changed, 16 insertions(+) diff --git a/cogl/cogl-context-private.h b/cogl/cogl-context-private.h index 5060abd06..a28fe4f7d 100644 --- a/cogl/cogl-context-private.h +++ b/cogl/cogl-context-private.h @@ -75,6 +75,9 @@ struct _CoglContext const CoglDriverVtable *driver_vtable; const CoglTextureDriver *texture_driver; + int glsl_major; + int glsl_minor; + /* Features cache */ unsigned long features[COGL_FLAGS_N_LONGS_FOR_SIZE (_COGL_N_FEATURE_IDS)]; CoglFeatureFlags feature_flags; /* legacy/deprecated feature flags */ diff --git a/cogl/driver/gl/gl/cogl-driver-gl.c b/cogl/driver/gl/gl/cogl-driver-gl.c index 3bf4de9bc..54da229f8 100644 --- a/cogl/driver/gl/gl/cogl-driver-gl.c +++ b/cogl/driver/gl/gl/cogl-driver-gl.c @@ -375,6 +375,16 @@ _cogl_driver_update_features (CoglContext *ctx, _cogl_gpu_info_init (ctx, &ctx->gpu); + ctx->glsl_major = 1; + ctx->glsl_minor = 1; + + if (COGL_CHECK_GL_VERSION (gl_major, gl_minor, 2, 0)) + { + const char *glsl_version = + (char *)ctx->glGetString (GL_SHADING_LANGUAGE_VERSION); + parse_gl_version (glsl_version, &ctx->glsl_major, &ctx->glsl_minor); + } + flags = (COGL_FEATURE_TEXTURE_READ_PIXELS | COGL_FEATURE_UNSIGNED_INT_INDICES | COGL_FEATURE_DEPTH_RANGE); diff --git a/cogl/driver/gl/gles/cogl-driver-gles.c b/cogl/driver/gl/gles/cogl-driver-gles.c index c6d5f50cc..6268b4d05 100644 --- a/cogl/driver/gl/gles/cogl-driver-gles.c +++ b/cogl/driver/gl/gles/cogl-driver-gles.c @@ -216,6 +216,9 @@ _cogl_driver_update_features (CoglContext *context, _cogl_gpu_info_init (context, &context->gpu); + context->glsl_major = 1; + context->glsl_minor = 0; + gl_extensions = _cogl_context_get_gl_extensions (context); _cogl_feature_check_ext_functions (context,