summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cogl/cogl-context-private.h3
-rw-r--r--cogl/driver/gl/gl/cogl-driver-gl.c10
-rw-r--r--cogl/driver/gl/gles/cogl-driver-gles.c3
3 files changed, 16 insertions, 0 deletions
diff --git a/cogl/cogl-context-private.h b/cogl/cogl-context-private.h
index 5060abd0..a28fe4f7 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 3bf4de9b..54da229f 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 c6d5f50c..6268b4d0 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,