mirror of
https://github.com/brl/mutter.git
synced 2024-11-28 19:10:43 -05:00
cogl: Remove always-true COGL_FEATURE_SHADERS_GLSL
https://gitlab.gnome.org/GNOME/mutter/merge_requests/546
This commit is contained in:
parent
2aaed7bdfc
commit
893e894fff
@ -73,8 +73,7 @@ clutter_features_from_cogl (guint cogl_flags)
|
|||||||
if (cogl_flags & COGL_FEATURE_TEXTURE_READ_PIXELS)
|
if (cogl_flags & COGL_FEATURE_TEXTURE_READ_PIXELS)
|
||||||
clutter_flags |= CLUTTER_FEATURE_TEXTURE_READ_PIXELS;
|
clutter_flags |= CLUTTER_FEATURE_TEXTURE_READ_PIXELS;
|
||||||
|
|
||||||
if (cogl_flags & COGL_FEATURE_SHADERS_GLSL)
|
clutter_flags |= CLUTTER_FEATURE_SHADERS_GLSL;
|
||||||
clutter_flags |= CLUTTER_FEATURE_SHADERS_GLSL;
|
|
||||||
|
|
||||||
if (cogl_flags & COGL_FEATURE_OFFSCREEN)
|
if (cogl_flags & COGL_FEATURE_OFFSCREEN)
|
||||||
clutter_flags |= CLUTTER_FEATURE_OFFSCREEN;
|
clutter_flags |= CLUTTER_FEATURE_OFFSCREEN;
|
||||||
|
@ -199,7 +199,6 @@ cogl_is_context (void *object);
|
|||||||
* offscreen framebuffers
|
* offscreen framebuffers
|
||||||
* @COGL_FEATURE_ID_ONSCREEN_MULTIPLE: Multiple onscreen framebuffers
|
* @COGL_FEATURE_ID_ONSCREEN_MULTIPLE: Multiple onscreen framebuffers
|
||||||
* supported.
|
* supported.
|
||||||
* @COGL_FEATURE_ID_GLSL: GLSL support
|
|
||||||
* @COGL_FEATURE_ID_UNSIGNED_INT_INDICES: Set if
|
* @COGL_FEATURE_ID_UNSIGNED_INT_INDICES: Set if
|
||||||
* %COGL_INDICES_TYPE_UNSIGNED_INT is supported in
|
* %COGL_INDICES_TYPE_UNSIGNED_INT is supported in
|
||||||
* cogl_indices_new().
|
* cogl_indices_new().
|
||||||
@ -240,7 +239,6 @@ typedef enum _CoglFeatureID
|
|||||||
COGL_FEATURE_ID_TEXTURE_NPOT_REPEAT,
|
COGL_FEATURE_ID_TEXTURE_NPOT_REPEAT,
|
||||||
COGL_FEATURE_ID_TEXTURE_NPOT,
|
COGL_FEATURE_ID_TEXTURE_NPOT,
|
||||||
COGL_FEATURE_ID_TEXTURE_RECTANGLE,
|
COGL_FEATURE_ID_TEXTURE_RECTANGLE,
|
||||||
COGL_FEATURE_ID_GLSL,
|
|
||||||
COGL_FEATURE_ID_OFFSCREEN,
|
COGL_FEATURE_ID_OFFSCREEN,
|
||||||
COGL_FEATURE_ID_OFFSCREEN_MULTISAMPLE,
|
COGL_FEATURE_ID_OFFSCREEN_MULTISAMPLE,
|
||||||
COGL_FEATURE_ID_ONSCREEN_MULTIPLE,
|
COGL_FEATURE_ID_ONSCREEN_MULTIPLE,
|
||||||
|
@ -1992,15 +1992,6 @@ get_wire_line_indices (CoglContext *ctx,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
|
||||||
remove_layer_cb (CoglPipeline *pipeline,
|
|
||||||
int layer_index,
|
|
||||||
void *user_data)
|
|
||||||
{
|
|
||||||
cogl_pipeline_remove_layer (pipeline, layer_index);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
pipeline_destroyed_cb (CoglPipeline *weak_pipeline, void *user_data)
|
pipeline_destroyed_cb (CoglPipeline *weak_pipeline, void *user_data)
|
||||||
{
|
{
|
||||||
@ -2052,6 +2043,8 @@ draw_wireframe (CoglContext *ctx,
|
|||||||
|
|
||||||
if (!wire_pipeline)
|
if (!wire_pipeline)
|
||||||
{
|
{
|
||||||
|
static CoglSnippet *snippet = NULL;
|
||||||
|
|
||||||
wire_pipeline =
|
wire_pipeline =
|
||||||
_cogl_pipeline_weak_copy (pipeline, pipeline_destroyed_cb, NULL);
|
_cogl_pipeline_weak_copy (pipeline, pipeline_destroyed_cb, NULL);
|
||||||
|
|
||||||
@ -2063,29 +2056,20 @@ draw_wireframe (CoglContext *ctx,
|
|||||||
* vertex program and since we'd like to see the results of the
|
* vertex program and since we'd like to see the results of the
|
||||||
* vertex program in the wireframe we just add a final clobber
|
* vertex program in the wireframe we just add a final clobber
|
||||||
* of the wire color leaving the rest of the state untouched. */
|
* of the wire color leaving the rest of the state untouched. */
|
||||||
if (cogl_has_feature (framebuffer->context, COGL_FEATURE_ID_GLSL))
|
|
||||||
{
|
|
||||||
static CoglSnippet *snippet = NULL;
|
|
||||||
|
|
||||||
/* The snippet is cached so that it will reuse the program
|
/* The snippet is cached so that it will reuse the program
|
||||||
* from the pipeline cache if possible */
|
* from the pipeline cache if possible */
|
||||||
if (snippet == NULL)
|
if (snippet == NULL)
|
||||||
{
|
|
||||||
snippet = cogl_snippet_new (COGL_SNIPPET_HOOK_FRAGMENT,
|
|
||||||
NULL,
|
|
||||||
NULL);
|
|
||||||
cogl_snippet_set_replace (snippet,
|
|
||||||
"cogl_color_out = "
|
|
||||||
"vec4 (0.0, 1.0, 0.0, 1.0);\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
cogl_pipeline_add_snippet (wire_pipeline, snippet);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
cogl_pipeline_foreach_layer (wire_pipeline, remove_layer_cb, NULL);
|
snippet = cogl_snippet_new (COGL_SNIPPET_HOOK_FRAGMENT,
|
||||||
cogl_pipeline_set_color4f (wire_pipeline, 0, 1, 0, 1);
|
NULL,
|
||||||
|
NULL);
|
||||||
|
cogl_snippet_set_replace (snippet,
|
||||||
|
"cogl_color_out = "
|
||||||
|
"vec4 (0.0, 1.0, 0.0, 1.0);\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cogl_pipeline_add_snippet (wire_pipeline, snippet);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* temporarily disable the wireframe to avoid recursion! */
|
/* temporarily disable the wireframe to avoid recursion! */
|
||||||
|
@ -626,10 +626,6 @@ cogl_pipeline_get_user_program (CoglPipeline *pipeline);
|
|||||||
* meantime we hope this will handle most practical GLSL and ARBfp
|
* meantime we hope this will handle most practical GLSL and ARBfp
|
||||||
* requirements.
|
* requirements.
|
||||||
*
|
*
|
||||||
* Also remember you need to check for either the
|
|
||||||
* %COGL_FEATURE_SHADERS_GLSL or %COGL_FEATURE_SHADERS_ARBFP before
|
|
||||||
* using the cogl_program or cogl_shader API.
|
|
||||||
*
|
|
||||||
* Since: 2.0
|
* Since: 2.0
|
||||||
* Stability: Unstable
|
* Stability: Unstable
|
||||||
*/
|
*/
|
||||||
|
@ -3054,11 +3054,10 @@ _cogl_pipeline_get_layer_state_for_fragment_codegen (CoglContext *context)
|
|||||||
COGL_PIPELINE_LAYER_STATE_UNIT |
|
COGL_PIPELINE_LAYER_STATE_UNIT |
|
||||||
COGL_PIPELINE_LAYER_STATE_FRAGMENT_SNIPPETS);
|
COGL_PIPELINE_LAYER_STATE_FRAGMENT_SNIPPETS);
|
||||||
|
|
||||||
/* If the driver supports GLSL then we might be using gl_PointCoord
|
/* Since the driver supports GLSL then we might be using gl_PointCoord
|
||||||
* to implement the sprite coords. In that case the generated code
|
* to implement the sprite coords. In that case the generated code
|
||||||
* depends on the point sprite state */
|
* depends on the point sprite state */
|
||||||
if (cogl_has_feature (context, COGL_FEATURE_ID_GLSL))
|
state |= COGL_PIPELINE_LAYER_STATE_POINT_SPRITE_COORDS;
|
||||||
state |= COGL_PIPELINE_LAYER_STATE_POINT_SPRITE_COORDS;
|
|
||||||
|
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
@ -784,8 +784,7 @@ cogl_renderer_get_n_fragment_texture_units (CoglRenderer *renderer)
|
|||||||
_COGL_GET_CONTEXT (ctx, 0);
|
_COGL_GET_CONTEXT (ctx, 0);
|
||||||
|
|
||||||
#if defined (HAVE_COGL_GL) || defined (HAVE_COGL_GLES2)
|
#if defined (HAVE_COGL_GL) || defined (HAVE_COGL_GLES2)
|
||||||
if (cogl_has_feature (ctx, COGL_FEATURE_ID_GLSL))
|
GE (ctx, glGetIntegerv (GL_MAX_TEXTURE_IMAGE_UNITS, &n));
|
||||||
GE (ctx, glGetIntegerv (GL_MAX_TEXTURE_IMAGE_UNITS, &n));
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return n;
|
return n;
|
||||||
|
@ -322,7 +322,6 @@ typedef enum /*< prefix=COGL_PIXEL_FORMAT >*/
|
|||||||
* and %COGL_FEATURE_TEXTURE_NPOT_REPEAT features combined.
|
* and %COGL_FEATURE_TEXTURE_NPOT_REPEAT features combined.
|
||||||
* @COGL_FEATURE_TEXTURE_YUV: ycbcr conversion support
|
* @COGL_FEATURE_TEXTURE_YUV: ycbcr conversion support
|
||||||
* @COGL_FEATURE_TEXTURE_READ_PIXELS: glReadPixels() support
|
* @COGL_FEATURE_TEXTURE_READ_PIXELS: glReadPixels() support
|
||||||
* @COGL_FEATURE_SHADERS_GLSL: GLSL support
|
|
||||||
* @COGL_FEATURE_OFFSCREEN: FBO support
|
* @COGL_FEATURE_OFFSCREEN: FBO support
|
||||||
* @COGL_FEATURE_OFFSCREEN_MULTISAMPLE: Multisample support on FBOs
|
* @COGL_FEATURE_OFFSCREEN_MULTISAMPLE: Multisample support on FBOs
|
||||||
* @COGL_FEATURE_OFFSCREEN_BLIT: Blit support on FBOs
|
* @COGL_FEATURE_OFFSCREEN_BLIT: Blit support on FBOs
|
||||||
@ -364,7 +363,6 @@ typedef enum
|
|||||||
COGL_FEATURE_TEXTURE_NPOT = (1 << 2),
|
COGL_FEATURE_TEXTURE_NPOT = (1 << 2),
|
||||||
COGL_FEATURE_TEXTURE_YUV = (1 << 3),
|
COGL_FEATURE_TEXTURE_YUV = (1 << 3),
|
||||||
COGL_FEATURE_TEXTURE_READ_PIXELS = (1 << 4),
|
COGL_FEATURE_TEXTURE_READ_PIXELS = (1 << 4),
|
||||||
COGL_FEATURE_SHADERS_GLSL = (1 << 5),
|
|
||||||
COGL_FEATURE_OFFSCREEN = (1 << 6),
|
COGL_FEATURE_OFFSCREEN = (1 << 6),
|
||||||
COGL_FEATURE_OFFSCREEN_MULTISAMPLE = (1 << 7),
|
COGL_FEATURE_OFFSCREEN_MULTISAMPLE = (1 << 7),
|
||||||
COGL_FEATURE_OFFSCREEN_BLIT = (1 << 8),
|
COGL_FEATURE_OFFSCREEN_BLIT = (1 << 8),
|
||||||
|
@ -756,10 +756,6 @@ cogl_material_get_user_program (CoglMaterial *material);
|
|||||||
* meantime we hope this will handle most practical GLSL and ARBfp
|
* meantime we hope this will handle most practical GLSL and ARBfp
|
||||||
* requirements.
|
* requirements.
|
||||||
*
|
*
|
||||||
* Also remember you need to check for either the
|
|
||||||
* %COGL_FEATURE_SHADERS_GLSL or %COGL_FEATURE_SHADERS_ARBFP before
|
|
||||||
* using the cogl_program or cogl_shader API.
|
|
||||||
*
|
|
||||||
* Since: 1.4
|
* Since: 1.4
|
||||||
* Deprecated: 1.16: Use #CoglSnippet api instead instead
|
* Deprecated: 1.16: Use #CoglSnippet api instead instead
|
||||||
*/
|
*/
|
||||||
|
@ -48,11 +48,6 @@ G_BEGIN_DECLS
|
|||||||
* Cogl allows accessing the GL programmable pipeline in order to create
|
* Cogl allows accessing the GL programmable pipeline in order to create
|
||||||
* vertex and fragment shaders.
|
* vertex and fragment shaders.
|
||||||
*
|
*
|
||||||
* The shader source code can either be GLSL or ARBfp. If the source
|
|
||||||
* code is ARBfp, it must begin with the string “!!ARBfp1.0”. The
|
|
||||||
* application should check for the %COGL_FEATURE_SHADERS_GLSL or
|
|
||||||
* %COGL_FEATURE_SHADERS_ARBFP features before using shaders.
|
|
||||||
*
|
|
||||||
* When using GLSL Cogl provides replacement names for most of the
|
* When using GLSL Cogl provides replacement names for most of the
|
||||||
* builtin varyings and uniforms. It is recommended to use these names
|
* builtin varyings and uniforms. It is recommended to use these names
|
||||||
* wherever possible to increase portability between OpenGL 2.0 and
|
* wherever possible to increase portability between OpenGL 2.0 and
|
||||||
|
@ -673,22 +673,13 @@ get_max_activateable_texture_units (void)
|
|||||||
#ifdef HAVE_COGL_GL
|
#ifdef HAVE_COGL_GL
|
||||||
if (!_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_GL_EMBEDDED))
|
if (!_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_GL_EMBEDDED))
|
||||||
{
|
{
|
||||||
/* GL_MAX_TEXTURE_COORDS is provided for both GLSL and ARBfp. It
|
/* GL_MAX_TEXTURE_COORDS defines the number of texture coordinates
|
||||||
defines the number of texture coordinates that can be
|
* that can be uploaded (but doesn't necessarily relate to how many
|
||||||
uploaded (but doesn't necessarily relate to how many texture
|
* texture images can be sampled) */
|
||||||
images can be sampled) */
|
GE (ctx, glGetIntegerv (GL_MAX_TEXTURE_COORDS, values + n_values++));
|
||||||
if (cogl_has_feature (ctx, COGL_FEATURE_ID_GLSL))
|
|
||||||
/* Previously this code subtracted the value by one but there
|
|
||||||
was no explanation for why it did this and it doesn't seem
|
|
||||||
to make sense so it has been removed */
|
|
||||||
GE (ctx, glGetIntegerv (GL_MAX_TEXTURE_COORDS,
|
|
||||||
values + n_values++));
|
|
||||||
|
|
||||||
/* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS is defined for GLSL but
|
GE (ctx, glGetIntegerv (GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
|
||||||
not ARBfp */
|
values + n_values++));
|
||||||
if (cogl_has_feature (ctx, COGL_FEATURE_ID_GLSL))
|
|
||||||
GE (ctx, glGetIntegerv (GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
|
|
||||||
values + n_values++));
|
|
||||||
}
|
}
|
||||||
#endif /* HAVE_COGL_GL */
|
#endif /* HAVE_COGL_GL */
|
||||||
|
|
||||||
|
@ -644,9 +644,6 @@ _cogl_pipeline_progend_glsl_start (CoglPipeline *pipeline)
|
|||||||
|
|
||||||
_COGL_GET_CONTEXT (ctx, FALSE);
|
_COGL_GET_CONTEXT (ctx, FALSE);
|
||||||
|
|
||||||
if (!cogl_has_feature (ctx, COGL_FEATURE_ID_GLSL))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
user_program = cogl_pipeline_get_user_program (pipeline);
|
user_program = cogl_pipeline_get_user_program (pipeline);
|
||||||
if (user_program &&
|
if (user_program &&
|
||||||
_cogl_program_get_language (user_program) != COGL_SHADER_LANGUAGE_GLSL)
|
_cogl_program_get_language (user_program) != COGL_SHADER_LANGUAGE_GLSL)
|
||||||
|
@ -451,9 +451,6 @@ _cogl_driver_update_features (CoglContext *ctx,
|
|||||||
COGL_FLAGS_SET (private_features,
|
COGL_FLAGS_SET (private_features,
|
||||||
COGL_PRIVATE_FEATURE_BLEND_CONSTANT, TRUE);
|
COGL_PRIVATE_FEATURE_BLEND_CONSTANT, TRUE);
|
||||||
|
|
||||||
flags |= COGL_FEATURE_SHADERS_GLSL;
|
|
||||||
COGL_FLAGS_SET (ctx->features, COGL_FEATURE_ID_GLSL, TRUE);
|
|
||||||
|
|
||||||
flags |= COGL_FEATURE_POINT_SPRITE;
|
flags |= COGL_FEATURE_POINT_SPRITE;
|
||||||
COGL_FLAGS_SET (ctx->features, COGL_FEATURE_ID_POINT_SPRITE, TRUE);
|
COGL_FLAGS_SET (ctx->features, COGL_FEATURE_ID_POINT_SPRITE, TRUE);
|
||||||
|
|
||||||
|
@ -302,12 +302,11 @@ _cogl_driver_update_features (CoglContext *context,
|
|||||||
gl_minor,
|
gl_minor,
|
||||||
gl_extensions);
|
gl_extensions);
|
||||||
|
|
||||||
flags |= COGL_FEATURE_SHADERS_GLSL | COGL_FEATURE_OFFSCREEN;
|
flags |= COGL_FEATURE_OFFSCREEN;
|
||||||
/* Note GLES 2 core doesn't support mipmaps for npot textures or
|
/* Note GLES 2 core doesn't support mipmaps for npot textures or
|
||||||
* repeat modes other than CLAMP_TO_EDGE. */
|
* repeat modes other than CLAMP_TO_EDGE. */
|
||||||
flags |= COGL_FEATURE_TEXTURE_NPOT_BASIC;
|
flags |= COGL_FEATURE_TEXTURE_NPOT_BASIC;
|
||||||
flags |= COGL_FEATURE_DEPTH_RANGE;
|
flags |= COGL_FEATURE_DEPTH_RANGE;
|
||||||
COGL_FLAGS_SET (context->features, COGL_FEATURE_ID_GLSL, TRUE);
|
|
||||||
COGL_FLAGS_SET (context->features, COGL_FEATURE_ID_OFFSCREEN, TRUE);
|
COGL_FLAGS_SET (context->features, COGL_FEATURE_ID_OFFSCREEN, TRUE);
|
||||||
COGL_FLAGS_SET (context->features,
|
COGL_FLAGS_SET (context->features,
|
||||||
COGL_FEATURE_ID_TEXTURE_NPOT_BASIC, TRUE);
|
COGL_FEATURE_ID_TEXTURE_NPOT_BASIC, TRUE);
|
||||||
|
@ -66,12 +66,6 @@ check_flags (TestFlags flags,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & TEST_REQUIREMENT_GLSL &&
|
|
||||||
!cogl_has_feature (test_ctx, COGL_FEATURE_ID_GLSL))
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (flags & TEST_REQUIREMENT_OFFSCREEN &&
|
if (flags & TEST_REQUIREMENT_OFFSCREEN &&
|
||||||
!cogl_has_feature (test_ctx, COGL_FEATURE_ID_OFFSCREEN))
|
!cogl_has_feature (test_ctx, COGL_FEATURE_ID_OFFSCREEN))
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user