[Cogl] [PATCH 6/6] Don't try to use clip planes on GL3
Robert Bragg
robert at sixbynine.org
Wed Jan 16 06:09:40 PST 2013
This looks good to land to me:
Reviewed-by: Robert Bragg <robert at linux.intel.com>
thanks,
- Robert
On Fri, Dec 14, 2012 at 11:43 AM, Neil Roberts <neil at linux.intel.com> wrote:
> GL3 has support for clip planes but they are used differently and
> involve writing to a builtin output variable in the vertex shader. The
> current clip plane code assumes it is only used with a fixed function
> driver and tries to directly push to the matrix builtins. This
> obviously won't work on GL3 so for now let's just disable clip planes.
> ---
> cogl/driver/gl/gl/cogl-driver-gl.c | 23 +++++++++++++----------
> 1 file changed, 13 insertions(+), 10 deletions(-)
>
> diff --git a/cogl/driver/gl/gl/cogl-driver-gl.c b/cogl/driver/gl/gl/cogl-driver-gl.c
> index 845e2fa..2b71ec2 100644
> --- a/cogl/driver/gl/gl/cogl-driver-gl.c
> +++ b/cogl/driver/gl/gl/cogl-driver-gl.c
> @@ -357,7 +357,6 @@ _cogl_driver_update_features (CoglContext *ctx,
> {
> CoglPrivateFeatureFlags private_flags = 0;
> char **gl_extensions;
> - int max_clip_planes = 0;
> int gl_major = 0, gl_minor = 0;
>
> /* We have to special case getting the pointer to the glGetString*
> @@ -440,10 +439,6 @@ _cogl_driver_update_features (CoglContext *ctx,
> if (_cogl_check_extension ("GL_MESA_pack_invert", gl_extensions))
> private_flags |= COGL_PRIVATE_FEATURE_MESA_PACK_INVERT;
>
> - GE( ctx, glGetIntegerv (GL_MAX_CLIP_PLANES, &max_clip_planes) );
> - if (max_clip_planes >= 4)
> - private_flags |= COGL_PRIVATE_FEATURE_FOUR_CLIP_PLANES;
> -
> if (ctx->glGenRenderbuffers)
> {
> COGL_FLAGS_SET (ctx->features, COGL_FEATURE_ID_OFFSCREEN, TRUE);
> @@ -548,11 +543,19 @@ _cogl_driver_update_features (CoglContext *ctx,
> private_flags |= COGL_PRIVATE_FEATURE_TEXTURE_SWIZZLE;
>
> if (ctx->driver == COGL_DRIVER_GL)
> - /* Features which are not available in GL 3 */
> - private_flags |= (COGL_PRIVATE_FEATURE_FIXED_FUNCTION |
> - COGL_PRIVATE_FEATURE_ALPHA_TEST |
> - COGL_PRIVATE_FEATURE_QUADS |
> - COGL_PRIVATE_FEATURE_ALPHA_TEXTURES);
> + {
> + int max_clip_planes = 0;
> +
> + /* Features which are not available in GL 3 */
> + private_flags |= (COGL_PRIVATE_FEATURE_FIXED_FUNCTION |
> + COGL_PRIVATE_FEATURE_ALPHA_TEST |
> + COGL_PRIVATE_FEATURE_QUADS |
> + COGL_PRIVATE_FEATURE_ALPHA_TEXTURES);
> +
> + GE( ctx, glGetIntegerv (GL_MAX_CLIP_PLANES, &max_clip_planes) );
> + if (max_clip_planes >= 4)
> + private_flags |= COGL_PRIVATE_FEATURE_FOUR_CLIP_PLANES;
> + }
>
> private_flags |= (COGL_PRIVATE_FEATURE_READ_PIXELS_ANY_FORMAT |
> COGL_PRIVATE_FEATURE_ANY_GL |
> --
> 1.7.11.3.g3c3efa5
>
> _______________________________________________
> Cogl mailing list
> Cogl at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/cogl
More information about the Cogl
mailing list