[cogl] check the glsl version during init
- From: Robert Bragg <rbragg src gnome org>
- To: commits-list gnome org
- Cc: 
- Subject: [cogl] check the glsl version during init
- Date: Fri, 28 Sep 2012 16:10:00 +0000 (UTC)
commit 9bde48bda6d602dd536c3536d56d2ff7545802c3
Author: Robert Bragg <robert linux intel com>
Date:   Wed Sep 26 22:01:38 2012 +0100
    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 <neil linux intel com>
 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(+), 0 deletions(-)
---
diff --git a/cogl/cogl-context-private.h b/cogl/cogl-context-private.h
index b457bb0..53239f4 100644
--- a/cogl/cogl-context-private.h
+++ b/cogl/cogl-context-private.h
@@ -74,6 +74,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)];
   CoglPrivateFeatureFlags private_feature_flags;
diff --git a/cogl/driver/gl/gl/cogl-driver-gl.c b/cogl/driver/gl/gl/cogl-driver-gl.c
index 7a2384a..1b11603 100644
--- a/cogl/driver/gl/gl/cogl-driver-gl.c
+++ b/cogl/driver/gl/gl/cogl-driver-gl.c
@@ -373,6 +373,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);
+    }
+
   COGL_FLAGS_SET (ctx->features,
                   COGL_FEATURE_ID_UNSIGNED_INT_INDICES, TRUE);
   COGL_FLAGS_SET (ctx->features, COGL_FEATURE_ID_DEPTH_RANGE, TRUE);
diff --git a/cogl/driver/gl/gles/cogl-driver-gles.c b/cogl/driver/gl/gles/cogl-driver-gles.c
index 7f4b752..08d1a79 100644
--- a/cogl/driver/gl/gles/cogl-driver-gles.c
+++ b/cogl/driver/gl/gles/cogl-driver-gles.c
@@ -214,6 +214,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,
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]