cogl: Remove support for GLESv1

We have no need for it in mutters cogl variant.
This commit is contained in:
Jonas Ådahl 2018-05-04 23:14:19 +02:00
parent 00a5523667
commit 7b2eaa76a4
29 changed files with 78 additions and 394 deletions

View File

@ -1,8 +1,5 @@
/* Have GL for rendering */ /* Have GL for rendering */
#undef HAVE_COGL_GL #undef HAVE_COGL_GL
/* Have GLES 1.1 for rendering */
#undef HAVE_COGL_GLES
/* Have GLES 2.0 for rendering */ /* Have GLES 2.0 for rendering */
#undef HAVE_COGL_GLES2 #undef HAVE_COGL_GLES2

View File

@ -358,11 +358,9 @@ cogl_sources_c = \
cogl-poll-private.h \ cogl-poll-private.h \
cogl-poll.c \ cogl-poll.c \
gl-prototypes/cogl-all-functions.h \ gl-prototypes/cogl-all-functions.h \
gl-prototypes/cogl-gles1-functions.h \
gl-prototypes/cogl-gles2-functions.h \ gl-prototypes/cogl-gles2-functions.h \
gl-prototypes/cogl-core-functions.h \ gl-prototypes/cogl-core-functions.h \
gl-prototypes/cogl-in-gles-core-functions.h \ gl-prototypes/cogl-in-gles-core-functions.h \
gl-prototypes/cogl-in-gles1-core-functions.h \
gl-prototypes/cogl-in-gles2-core-functions.h \ gl-prototypes/cogl-in-gles2-core-functions.h \
gl-prototypes/cogl-fixed-functions.h \ gl-prototypes/cogl-fixed-functions.h \
gl-prototypes/cogl-glsl-functions.h \ gl-prototypes/cogl-glsl-functions.h \

View File

@ -425,7 +425,7 @@ cogl_context_new (CoglDisplay *display,
context->texture_download_pipeline = NULL; context->texture_download_pipeline = NULL;
context->blit_texture_pipeline = NULL; context->blit_texture_pipeline = NULL;
#if defined (HAVE_COGL_GL) || defined (HAVE_COGL_GLES) #ifdef HAVE_COGL_GL
if (_cogl_has_private_feature (context, COGL_PRIVATE_FEATURE_ALPHA_TEST)) if (_cogl_has_private_feature (context, COGL_PRIVATE_FEATURE_ALPHA_TEST))
/* The default for GL_ALPHA_TEST is to always pass which is equivalent to /* The default for GL_ALPHA_TEST is to always pass which is equivalent to
* the test being disabled therefore we assume that for all drivers there * the test being disabled therefore we assume that for all drivers there
@ -434,9 +434,7 @@ cogl_context_new (CoglDisplay *display,
* implemented in the fragment shader so there is no enable for it * implemented in the fragment shader so there is no enable for it
*/ */
GE (context, glEnable (GL_ALPHA_TEST)); GE (context, glEnable (GL_ALPHA_TEST));
#endif
#if defined (HAVE_COGL_GL)
if ((context->driver == COGL_DRIVER_GL3)) if ((context->driver == COGL_DRIVER_GL3))
{ {
GLuint vertex_array; GLuint vertex_array;

View File

@ -58,9 +58,6 @@ _cogl_feature_check (CoglRenderer *renderer,
switch (driver) switch (driver)
{ {
case COGL_DRIVER_GLES1:
gles_availability = COGL_EXT_IN_GLES;
break;
case COGL_DRIVER_GLES2: case COGL_DRIVER_GLES2:
gles_availability = COGL_EXT_IN_GLES2; gles_availability = COGL_EXT_IN_GLES2;

View File

@ -41,7 +41,7 @@
typedef enum typedef enum
{ {
COGL_EXT_IN_GLES = (1 << 0), COGL_EXT_IN_GL = (1 << 0),
COGL_EXT_IN_GLES2 = (1 << 1), COGL_EXT_IN_GLES2 = (1 << 1),
COGL_EXT_IN_GLES3 = (1 << 2) COGL_EXT_IN_GLES3 = (1 << 2)
} CoglExtGlesAvailability; } CoglExtGlesAvailability;

View File

@ -829,7 +829,7 @@ _cogl_matrix_flush_to_gl_builtin (CoglContext *ctx,
{ {
g_assert (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_GL_FIXED)); g_assert (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_GL_FIXED));
#if defined (HAVE_COGL_GL) || defined (HAVE_COGL_GLES) #ifdef HAVE_COGL_GL
if (ctx->flushed_matrix_mode != mode) if (ctx->flushed_matrix_mode != mode)
{ {
GLenum gl_mode = 0; GLenum gl_mode = 0;
@ -869,7 +869,7 @@ _cogl_matrix_entry_flush_to_gl_builtins (CoglContext *ctx,
{ {
g_assert (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_GL_FIXED)); g_assert (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_GL_FIXED));
#if defined (HAVE_COGL_GL) || defined (HAVE_COGL_GLES) #ifdef HAVE_COGL_GL
{ {
CoglBool needs_flip; CoglBool needs_flip;
CoglMatrixEntryCache *cache; CoglMatrixEntryCache *cache;

View File

@ -73,32 +73,13 @@
#define COGL_PIPELINE_VERTEND_GLSL 0 #define COGL_PIPELINE_VERTEND_GLSL 0
#define COGL_PIPELINE_FRAGEND_GLSL 0 #define COGL_PIPELINE_FRAGEND_GLSL 0
#ifdef HAVE_COGL_GLES
#define COGL_PIPELINE_PROGEND_FIXED 1
#define COGL_PIPELINE_VERTEND_FIXED 1
#define COGL_PIPELINE_FRAGEND_FIXED 1
#define COGL_PIPELINE_N_PROGENDS 2
#define COGL_PIPELINE_N_VERTENDS 2
#define COGL_PIPELINE_N_FRAGENDS 2
#else
#define COGL_PIPELINE_N_PROGENDS 1 #define COGL_PIPELINE_N_PROGENDS 1
#define COGL_PIPELINE_N_VERTENDS 1 #define COGL_PIPELINE_N_VERTENDS 1
#define COGL_PIPELINE_N_FRAGENDS 1 #define COGL_PIPELINE_N_FRAGENDS 1
#endif
#else /* HAVE_COGL_GLES2 */ #else /* HAVE_COGL_GLES2 */
#ifdef HAVE_COGL_GLES
#define COGL_PIPELINE_PROGEND_FIXED 0
#define COGL_PIPELINE_VERTEND_FIXED 0
#define COGL_PIPELINE_FRAGEND_FIXED 0
#define COGL_PIPELINE_N_PROGENDS 1
#define COGL_PIPELINE_N_VERTENDS 1
#define COGL_PIPELINE_N_FRAGENDS 1
#else
#error No drivers defined #error No drivers defined
#endif
#endif /* HAVE_COGL_GLES2 */ #endif /* HAVE_COGL_GLES2 */

View File

@ -1177,17 +1177,6 @@ cogl_pipeline_set_depth_state (CoglPipeline *pipeline,
orig_state->range_far == depth_state->range_far) orig_state->range_far == depth_state->range_far)
return TRUE; return TRUE;
if (ctx->driver == COGL_DRIVER_GLES1 &&
(depth_state->range_near != 0 ||
depth_state->range_far != 1))
{
_cogl_set_error (error,
COGL_SYSTEM_ERROR,
COGL_SYSTEM_ERROR_UNSUPPORTED,
"glDepthRange not available on GLES 1");
return FALSE;
}
/* - Flush journal primitives referencing the current state. /* - Flush journal primitives referencing the current state.
* - Make sure the pipeline has no dependants so it may be modified. * - Make sure the pipeline has no dependants so it may be modified.
* - If the pipeline isn't currently an authority for the state being * - If the pipeline isn't currently an authority for the state being

View File

@ -67,7 +67,7 @@
extern const CoglTextureDriver _cogl_texture_driver_gl; extern const CoglTextureDriver _cogl_texture_driver_gl;
extern const CoglDriverVtable _cogl_driver_gl; extern const CoglDriverVtable _cogl_driver_gl;
#endif #endif
#if defined (HAVE_COGL_GLES) || defined (HAVE_COGL_GLES2) #if defined (HAVE_COGL_GLES2)
extern const CoglTextureDriver _cogl_texture_driver_gles; extern const CoglTextureDriver _cogl_texture_driver_gles;
extern const CoglDriverVtable _cogl_driver_gles; extern const CoglDriverVtable _cogl_driver_gles;
#endif #endif
@ -130,20 +130,6 @@ static CoglDriverDescription _cogl_drivers[] =
&_cogl_texture_driver_gles, &_cogl_texture_driver_gles,
COGL_GLES2_LIBNAME, COGL_GLES2_LIBNAME,
}, },
#endif
#ifdef HAVE_COGL_GLES
{
COGL_DRIVER_GLES1,
"gles1",
0,
{ COGL_PRIVATE_FEATURE_ANY_GL,
COGL_PRIVATE_FEATURE_GL_EMBEDDED,
COGL_PRIVATE_FEATURE_GL_FIXED,
-1 },
&_cogl_driver_gles,
&_cogl_texture_driver_gles,
COGL_GLES1_LIBNAME,
},
#endif #endif
{ {
COGL_DRIVER_NOP, COGL_DRIVER_NOP,
@ -401,8 +387,6 @@ driver_id_to_name (CoglDriver id)
return "gl"; return "gl";
case COGL_DRIVER_GL3: case COGL_DRIVER_GL3:
return "gl3"; return "gl3";
case COGL_DRIVER_GLES1:
return "gles1";
case COGL_DRIVER_GLES2: case COGL_DRIVER_GLES2:
return "gles2"; return "gles2";
case COGL_DRIVER_WEBGL: case COGL_DRIVER_WEBGL:

View File

@ -347,7 +347,6 @@ typedef enum
COGL_DRIVER_NOP, COGL_DRIVER_NOP,
COGL_DRIVER_GL, COGL_DRIVER_GL,
COGL_DRIVER_GL3, COGL_DRIVER_GL3,
COGL_DRIVER_GLES1,
COGL_DRIVER_GLES2, COGL_DRIVER_GLES2,
COGL_DRIVER_WEBGL COGL_DRIVER_WEBGL
} CoglDriver; } CoglDriver;

View File

@ -641,7 +641,7 @@ _cogl_texture_3d_pre_paint (CoglTexture *tex, CoglTexturePrePaintFlags flags)
GL_GENERATE_MIPMAP and reuploading the first pixel */ GL_GENERATE_MIPMAP and reuploading the first pixel */
if (cogl_has_feature (ctx, COGL_FEATURE_ID_OFFSCREEN)) if (cogl_has_feature (ctx, COGL_FEATURE_ID_OFFSCREEN))
_cogl_texture_gl_generate_mipmaps (tex); _cogl_texture_gl_generate_mipmaps (tex);
#if defined (HAVE_COGL_GL) || defined (HAVE_COGL_GLES) #ifdef HAVE_COGL_GL
else if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_GL_FIXED)) else if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_GL_FIXED))
{ {
_cogl_bind_gl_texture_transient (GL_TEXTURE_3D, _cogl_bind_gl_texture_transient (GL_TEXTURE_3D,

View File

@ -409,8 +409,6 @@ _cogl_program_flush_uniforms (CoglProgram *program,
_COGL_GET_CONTEXT (ctx, NO_RETVAL); _COGL_GET_CONTEXT (ctx, NO_RETVAL);
_COGL_RETURN_IF_FAIL (ctx->driver != COGL_DRIVER_GLES1);
for (i = 0; i < program->custom_uniforms->len; i++) for (i = 0; i < program->custom_uniforms->len; i++)
{ {
uniform = &g_array_index (program->custom_uniforms, uniform = &g_array_index (program->custom_uniforms,

View File

@ -66,7 +66,7 @@ toggle_builtin_attribute_enabled_cb (int bit_num, void *user_data)
(context, COGL_PRIVATE_FEATURE_GL_FIXED), (context, COGL_PRIVATE_FEATURE_GL_FIXED),
FALSE); FALSE);
#if defined (HAVE_COGL_GL) || defined (HAVE_COGL_GLES) #ifdef HAVE_COGL_GL
{ {
CoglBool enabled = _cogl_bitmask_get (state->new_bits, bit_num); CoglBool enabled = _cogl_bitmask_get (state->new_bits, bit_num);
GLenum cap; GLenum cap;
@ -105,7 +105,7 @@ toggle_texcood_attribute_enabled_cb (int bit_num, void *user_data)
(context, COGL_PRIVATE_FEATURE_GL_FIXED), (context, COGL_PRIVATE_FEATURE_GL_FIXED),
FALSE); FALSE);
#if defined (HAVE_COGL_GL) || defined (HAVE_COGL_GLES) #ifdef HAVE_COGL_GL
{ {
CoglBool enabled = _cogl_bitmask_get (state->new_bits, bit_num); CoglBool enabled = _cogl_bitmask_get (state->new_bits, bit_num);

View File

@ -107,8 +107,7 @@ update_hints_to_gl_enum (CoglBuffer *buffer)
case COGL_BUFFER_UPDATE_HINT_STREAM: case COGL_BUFFER_UPDATE_HINT_STREAM:
/* OpenGL ES 1.1 only knows about STATIC_DRAW and DYNAMIC_DRAW */ /* OpenGL ES 1.1 only knows about STATIC_DRAW and DYNAMIC_DRAW */
#if defined(HAVE_COGL_GL) || defined(HAVE_COGL_GLES2) #if defined(HAVE_COGL_GL) || defined(HAVE_COGL_GLES2)
if (buffer->context->driver != COGL_DRIVER_GLES1) return GL_STREAM_DRAW;
return GL_STREAM_DRAW;
#else #else
return GL_DYNAMIC_DRAW; return GL_DYNAMIC_DRAW;
#endif #endif

View File

@ -125,10 +125,6 @@ set_clip_plane (CoglFramebuffer *framebuffer,
g_assert_not_reached (); g_assert_not_reached ();
break; break;
case COGL_DRIVER_GLES1:
GE( ctx, glClipPlanef (plane_num, planef) );
break;
case COGL_DRIVER_GL: case COGL_DRIVER_GL:
case COGL_DRIVER_GL3: case COGL_DRIVER_GL3:
planed[0] = planef[0]; planed[0] = planef[0];

View File

@ -390,19 +390,6 @@ _cogl_pipeline_fragend_fixed_end (CoglPipeline *pipeline,
GE (ctx, glFogfv (GL_FOG_COLOR, fogColor)); GE (ctx, glFogfv (GL_FOG_COLOR, fogColor));
if (ctx->driver == COGL_DRIVER_GLES1)
switch (fog_state->mode)
{
case COGL_FOG_MODE_LINEAR:
gl_mode = GL_LINEAR;
break;
case COGL_FOG_MODE_EXPONENTIAL:
gl_mode = GL_EXP;
break;
case COGL_FOG_MODE_EXPONENTIAL_SQUARED:
gl_mode = GL_EXP2;
break;
}
/* TODO: support other modes for GLES2 */ /* TODO: support other modes for GLES2 */
/* NB: GLES doesn't have glFogi */ /* NB: GLES doesn't have glFogi */

View File

@ -438,8 +438,7 @@ flush_depth_state (CoglContext *ctx,
ctx->depth_writing_enabled_cache = depth_writing_enabled; ctx->depth_writing_enabled_cache = depth_writing_enabled;
} }
if (ctx->driver != COGL_DRIVER_GLES1 && if ((ctx->depth_range_near_cache != depth_state->range_near ||
(ctx->depth_range_near_cache != depth_state->range_near ||
ctx->depth_range_far_cache != depth_state->range_far)) ctx->depth_range_far_cache != depth_state->range_far))
{ {
if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_GL_EMBEDDED)) if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_GL_EMBEDDED))
@ -520,59 +519,51 @@ _cogl_pipeline_flush_color_blend_alpha_depth_state (
&authority->big_state->blend_state; &authority->big_state->blend_state;
/* GLES 1 only has glBlendFunc */ /* GLES 1 only has glBlendFunc */
if (ctx->driver == COGL_DRIVER_GLES1)
{
GE (ctx, glBlendFunc (blend_state->blend_src_factor_rgb,
blend_state->blend_dst_factor_rgb));
}
#if defined(HAVE_COGL_GLES2) || defined(HAVE_COGL_GL) #if defined(HAVE_COGL_GLES2) || defined(HAVE_COGL_GL)
else if (blend_factor_uses_constant (blend_state->blend_src_factor_rgb) ||
blend_factor_uses_constant (blend_state
->blend_src_factor_alpha) ||
blend_factor_uses_constant (blend_state->blend_dst_factor_rgb) ||
blend_factor_uses_constant (blend_state->blend_dst_factor_alpha))
{ {
if (blend_factor_uses_constant (blend_state->blend_src_factor_rgb) || float red =
blend_factor_uses_constant (blend_state cogl_color_get_red_float (&blend_state->blend_constant);
->blend_src_factor_alpha) || float green =
blend_factor_uses_constant (blend_state->blend_dst_factor_rgb) || cogl_color_get_green_float (&blend_state->blend_constant);
blend_factor_uses_constant (blend_state->blend_dst_factor_alpha)) float blue =
{ cogl_color_get_blue_float (&blend_state->blend_constant);
float red = float alpha =
cogl_color_get_red_float (&blend_state->blend_constant); cogl_color_get_alpha_float (&blend_state->blend_constant);
float green =
cogl_color_get_green_float (&blend_state->blend_constant);
float blue =
cogl_color_get_blue_float (&blend_state->blend_constant);
float alpha =
cogl_color_get_alpha_float (&blend_state->blend_constant);
GE (ctx, glBlendColor (red, green, blue, alpha)); GE (ctx, glBlendColor (red, green, blue, alpha));
}
if (ctx->glBlendEquationSeparate &&
blend_state->blend_equation_rgb !=
blend_state->blend_equation_alpha)
GE (ctx,
glBlendEquationSeparate (blend_state->blend_equation_rgb,
blend_state->blend_equation_alpha));
else
GE (ctx, glBlendEquation (blend_state->blend_equation_rgb));
if (ctx->glBlendFuncSeparate &&
(blend_state->blend_src_factor_rgb !=
blend_state->blend_src_factor_alpha ||
(blend_state->blend_dst_factor_rgb !=
blend_state->blend_dst_factor_alpha)))
GE (ctx, glBlendFuncSeparate (blend_state->blend_src_factor_rgb,
blend_state->blend_dst_factor_rgb,
blend_state->blend_src_factor_alpha,
blend_state->blend_dst_factor_alpha));
else
GE (ctx, glBlendFunc (blend_state->blend_src_factor_rgb,
blend_state->blend_dst_factor_rgb));
} }
#endif
}
#if defined (HAVE_COGL_GL) || defined (HAVE_COGL_GLES) if (ctx->glBlendEquationSeparate &&
blend_state->blend_equation_rgb !=
blend_state->blend_equation_alpha)
GE (ctx,
glBlendEquationSeparate (blend_state->blend_equation_rgb,
blend_state->blend_equation_alpha));
else
GE (ctx, glBlendEquation (blend_state->blend_equation_rgb));
if (ctx->glBlendFuncSeparate &&
(blend_state->blend_src_factor_rgb !=
blend_state->blend_src_factor_alpha ||
(blend_state->blend_dst_factor_rgb !=
blend_state->blend_dst_factor_alpha)))
GE (ctx, glBlendFuncSeparate (blend_state->blend_src_factor_rgb,
blend_state->blend_dst_factor_rgb,
blend_state->blend_src_factor_alpha,
blend_state->blend_dst_factor_alpha));
else
GE (ctx, glBlendFunc (blend_state->blend_src_factor_rgb,
blend_state->blend_dst_factor_rgb));
}
#endif
#ifdef HAVE_COGL_GL
if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_ALPHA_TEST)) if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_ALPHA_TEST))
{ {
@ -769,7 +760,7 @@ get_max_activateable_texture_units (void)
} }
#endif #endif
#if defined (HAVE_COGL_GL) || defined (HAVE_COGL_GLES) #ifdef HAVE_COGL_GL
if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_GL_FIXED)) if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_GL_FIXED))
{ {
/* GL_MAX_TEXTURE_UNITS defines the number of units that are /* GL_MAX_TEXTURE_UNITS defines the number of units that are
@ -914,7 +905,7 @@ flush_layers_common_gl_state_cb (CoglPipelineLayer *layer, void *user_data)
* this point we can't currently tell if we are using the fixed or * this point we can't currently tell if we are using the fixed or
* glsl progend. * glsl progend.
*/ */
#if defined (HAVE_COGL_GLES) || defined (HAVE_COGL_GL) #ifdef HAVE_COGL_GL
if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_GL_FIXED) && if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_GL_FIXED) &&
(layers_difference & COGL_PIPELINE_LAYER_STATE_POINT_SPRITE_COORDS)) (layers_difference & COGL_PIPELINE_LAYER_STATE_POINT_SPRITE_COORDS))
{ {

View File

@ -721,7 +721,7 @@ _cogl_texture_2d_gl_generate_mipmap (CoglTexture2D *tex_2d)
GL_GENERATE_MIPMAP and reuploading the first pixel */ GL_GENERATE_MIPMAP and reuploading the first pixel */
if (cogl_has_feature (ctx, COGL_FEATURE_ID_OFFSCREEN)) if (cogl_has_feature (ctx, COGL_FEATURE_ID_OFFSCREEN))
_cogl_texture_gl_generate_mipmaps (COGL_TEXTURE (tex_2d)); _cogl_texture_gl_generate_mipmaps (COGL_TEXTURE (tex_2d));
#if defined(HAVE_COGL_GLES) || defined(HAVE_COGL_GL) #ifdef HAVE_COGL_GL
else else
{ {
_cogl_bind_gl_texture_transient (GL_TEXTURE_2D, _cogl_bind_gl_texture_transient (GL_TEXTURE_2D,

View File

@ -309,44 +309,23 @@ _cogl_driver_update_features (CoglContext *context,
gl_minor, gl_minor,
gl_extensions); gl_extensions);
#ifdef HAVE_COGL_GLES flags |= COGL_FEATURE_SHADERS_GLSL | COGL_FEATURE_OFFSCREEN;
if (context->driver == COGL_DRIVER_GLES1) /* Note GLES 2 core doesn't support mipmaps for npot textures or
{ * repeat modes other than CLAMP_TO_EDGE. */
int max_clip_planes; flags |= COGL_FEATURE_TEXTURE_NPOT_BASIC;
GE( context, glGetIntegerv (GL_MAX_CLIP_PLANES, &max_clip_planes) ); flags |= COGL_FEATURE_DEPTH_RANGE;
if (max_clip_planes >= 4) COGL_FLAGS_SET (context->features, COGL_FEATURE_ID_GLSL, TRUE);
COGL_FLAGS_SET (private_features, COGL_FLAGS_SET (context->features, COGL_FEATURE_ID_OFFSCREEN, TRUE);
COGL_PRIVATE_FEATURE_FOUR_CLIP_PLANES, TRUE); COGL_FLAGS_SET (context->features,
} COGL_FEATURE_ID_TEXTURE_NPOT_BASIC, TRUE);
#endif COGL_FLAGS_SET (context->features, COGL_FEATURE_ID_DEPTH_RANGE, TRUE);
COGL_FLAGS_SET (context->features,
COGL_FEATURE_ID_MIRRORED_REPEAT, TRUE);
COGL_FLAGS_SET (context->features,
COGL_FEATURE_ID_PER_VERTEX_POINT_SIZE, TRUE);
if (context->driver == COGL_DRIVER_GLES2) COGL_FLAGS_SET (private_features,
{ COGL_PRIVATE_FEATURE_BLEND_CONSTANT, TRUE);
flags |= COGL_FEATURE_SHADERS_GLSL | COGL_FEATURE_OFFSCREEN;
/* Note GLES 2 core doesn't support mipmaps for npot textures or
* repeat modes other than CLAMP_TO_EDGE. */
flags |= COGL_FEATURE_TEXTURE_NPOT_BASIC;
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_TEXTURE_NPOT_BASIC, TRUE);
COGL_FLAGS_SET (context->features, COGL_FEATURE_ID_DEPTH_RANGE, TRUE);
COGL_FLAGS_SET (context->features,
COGL_FEATURE_ID_MIRRORED_REPEAT, TRUE);
COGL_FLAGS_SET (context->features,
COGL_FEATURE_ID_PER_VERTEX_POINT_SIZE, TRUE);
COGL_FLAGS_SET (private_features,
COGL_PRIVATE_FEATURE_BLEND_CONSTANT, TRUE);
}
else if (context->driver == COGL_DRIVER_GLES1)
{
COGL_FLAGS_SET (private_features, COGL_PRIVATE_FEATURE_GL_FIXED, TRUE);
COGL_FLAGS_SET (private_features, COGL_PRIVATE_FEATURE_ALPHA_TEST, TRUE);
COGL_FLAGS_SET (private_features,
COGL_PRIVATE_FEATURE_BUILTIN_POINT_SIZE_UNIFORM, TRUE);
}
COGL_FLAGS_SET (private_features, COGL_PRIVATE_FEATURE_VBOS, TRUE); COGL_FLAGS_SET (private_features, COGL_PRIVATE_FEATURE_VBOS, TRUE);
COGL_FLAGS_SET (private_features, COGL_PRIVATE_FEATURE_ANY_GL, TRUE); COGL_FLAGS_SET (private_features, COGL_PRIVATE_FEATURE_ANY_GL, TRUE);

View File

@ -59,10 +59,6 @@
/* The functions in this file are part of the core GL,GLES1 and GLES2 apis */ /* The functions in this file are part of the core GL,GLES1 and GLES2 apis */
#include "cogl-core-functions.h" #include "cogl-core-functions.h"
/* The functions in this file are core to GLES1 only but may also be
* extensions available for GLES2 and GL */
#include "cogl-in-gles1-core-functions.h"
/* The functions in this file are core to GLES2 only but /* The functions in this file are core to GLES2 only but
* may be extensions for GLES1 and GL */ * may be extensions for GLES1 and GL */
#include "cogl-in-gles2-core-functions.h" #include "cogl-in-gles2-core-functions.h"
@ -334,3 +330,11 @@ COGL_EXT_BEGIN (robustness, 255, 255,
COGL_EXT_FUNCTION (GLenum, glGetGraphicsResetStatus, COGL_EXT_FUNCTION (GLenum, glGetGraphicsResetStatus,
(void)) (void))
COGL_EXT_END () COGL_EXT_END ()
COGL_EXT_BEGIN (multitexture_part1, 1, 3,
0,
"ARB\0",
"multitexture\0")
COGL_EXT_FUNCTION (void, glClientActiveTexture,
(GLenum texture))
COGL_EXT_END ()

View File

@ -60,7 +60,7 @@
available */ available */
COGL_EXT_BEGIN (core, COGL_EXT_BEGIN (core,
0, 0, 0, 0,
COGL_EXT_IN_GLES | COGL_EXT_IN_GLES2, COGL_EXT_IN_GLES2,
"\0", "\0",
"\0") "\0")
COGL_EXT_FUNCTION (void, glBindTexture, COGL_EXT_FUNCTION (void, glBindTexture,

View File

@ -60,7 +60,7 @@
supports fixed-function (ie, GL and GLES1.1) */ supports fixed-function (ie, GL and GLES1.1) */
COGL_EXT_BEGIN (fixed_function_core, COGL_EXT_BEGIN (fixed_function_core,
0, 0, 0, 0,
COGL_EXT_IN_GLES, 0,
"\0", "\0",
"\0") "\0")
COGL_EXT_FUNCTION (void, glAlphaFunc, COGL_EXT_FUNCTION (void, glAlphaFunc,

View File

@ -1,43 +0,0 @@
/*
* Cogl
*
* A Low Level GPU Graphics and Utilities API
*
* Copyright (C) 2009, 2011 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use, copy,
* modify, merge, publish, distribute, sublicense, and/or sell copies
* of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
*
*/
/* The functions in this file are part of the core GL,GLES1 and GLES2 apis */
#include "cogl-core-functions.h"
/* The functions in this file are core to GLES1 and GLES2 but not core
* to GL but they may be extensions available for GL */
#include "cogl-in-gles-core-functions.h"
/* The functions in this file are core to GLES1 only but
* may be extensions for GLES2 and GL */
#include "cogl-in-gles1-core-functions.h"
/* These are fixed-function APIs core to GL and GLES1 */
#include "cogl-fixed-functions.h"

View File

@ -58,7 +58,6 @@
COGL_EXT_BEGIN (only_in_both_gles, COGL_EXT_BEGIN (only_in_both_gles,
4, 1, 4, 1,
COGL_EXT_IN_GLES |
COGL_EXT_IN_GLES2, COGL_EXT_IN_GLES2,
"ARB\0", "ARB\0",
"ES2_compatibility\0") "ES2_compatibility\0")
@ -70,7 +69,6 @@ COGL_EXT_END ()
COGL_EXT_BEGIN (only_in_both_gles_and_gl_1_3, COGL_EXT_BEGIN (only_in_both_gles_and_gl_1_3,
1, 3, 1, 3,
COGL_EXT_IN_GLES |
COGL_EXT_IN_GLES2, COGL_EXT_IN_GLES2,
"\0", "\0",
"\0") "\0")
@ -99,7 +97,6 @@ COGL_EXT_END ()
COGL_EXT_BEGIN (only_in_both_gles_and_gl_1_5, COGL_EXT_BEGIN (only_in_both_gles_and_gl_1_5,
1, 5, 1, 5,
COGL_EXT_IN_GLES |
COGL_EXT_IN_GLES2, COGL_EXT_IN_GLES2,
"\0", "\0",
"\0") "\0")
@ -108,7 +105,6 @@ COGL_EXT_FUNCTION (void, glGetBufferParameteriv,
COGL_EXT_END () COGL_EXT_END ()
COGL_EXT_BEGIN (vbos, 1, 5, COGL_EXT_BEGIN (vbos, 1, 5,
COGL_EXT_IN_GLES |
COGL_EXT_IN_GLES2, COGL_EXT_IN_GLES2,
"ARB\0", "ARB\0",
"vertex_buffer_object\0") "vertex_buffer_object\0")
@ -138,7 +134,6 @@ COGL_EXT_END ()
/* Available in GL 1.3, the multitexture extension or GLES. These are /* Available in GL 1.3, the multitexture extension or GLES. These are
required */ required */
COGL_EXT_BEGIN (multitexture_part0, 1, 3, COGL_EXT_BEGIN (multitexture_part0, 1, 3,
COGL_EXT_IN_GLES |
COGL_EXT_IN_GLES2, COGL_EXT_IN_GLES2,
"ARB\0", "ARB\0",
"multitexture\0") "multitexture\0")

View File

@ -1,78 +0,0 @@
/*
* Cogl
*
* A Low Level GPU Graphics and Utilities API
*
* Copyright (C) 2009, 2011 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use, copy,
* modify, merge, publish, distribute, sublicense, and/or sell copies
* of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
*
*/
/* This is included multiple times with different definitions for
* these macros. The macros are given the following arguments:
*
* COGL_EXT_BEGIN:
*
* @name: a unique symbol name for this feature
*
* @min_gl_major: the major part of the minimum GL version where these
* functions are available in core, or 255 if it isn't available in
* any version.
* @min_gl_minor: the minor part of the minimum GL version where these
* functions are available in core, or 255 if it isn't available in
* any version.
*
* @gles_availability: flags to specify which versions of GLES the
* functions are available in. Should be a combination of
* COGL_EXT_IN_GLES and COGL_EXT_IN_GLES2.
*
* @extension_suffixes: A zero-separated list of suffixes in a
* string. These are appended to the extension name to get a complete
* extension name to try. The suffix is also appended to all of the
* function names. The suffix can optionally include a ':' to specify
* an alternate suffix for the function names.
*
* @extension_names: A list of extension names to try. If any of these
* extensions match then it will be used.
*/
/* These functions are only available in GLES and are used as
replacements for some GL equivalents that only accept double
arguments */
COGL_EXT_BEGIN (only_in_gles1,
255, 255,
COGL_EXT_IN_GLES,
"\0",
"\0")
COGL_EXT_FUNCTION (void, glClipPlanef,
(GLenum plane, const GLfloat *equation))
COGL_EXT_END ()
COGL_EXT_BEGIN (multitexture_part1, 1, 3,
COGL_EXT_IN_GLES,
"ARB\0",
"multitexture\0")
COGL_EXT_FUNCTION (void, glClientActiveTexture,
(GLenum texture))
COGL_EXT_END ()

View File

@ -265,8 +265,6 @@ egl_attributes_from_framebuffer_config (CoglDisplay *display,
attributes[i++] = ((renderer->driver == COGL_DRIVER_GL || attributes[i++] = ((renderer->driver == COGL_DRIVER_GL ||
renderer->driver == COGL_DRIVER_GL3) ? renderer->driver == COGL_DRIVER_GL3) ?
EGL_OPENGL_BIT : EGL_OPENGL_BIT :
renderer->driver == COGL_DRIVER_GLES1 ?
EGL_OPENGL_ES_BIT :
EGL_OPENGL_ES2_BIT); EGL_OPENGL_ES2_BIT);
if (config->samples_per_pixel) if (config->samples_per_pixel)

View File

@ -405,83 +405,6 @@ EGL_CHECKED=no
enabled_drivers="" enabled_drivers=""
HAVE_GLES1=0
AC_ARG_ENABLE(
[gles1],
[AC_HELP_STRING([--enable-gles1=@<:@no/yes@:>@], [Enable support for OpenGL-ES 1.1 @<:@default=no@:>@])],
[],
enable_gles1=no
)
AS_IF([test "x$enable_gles1" = "xyes"],
[
enabled_drivers="$enabled_drivers gles1"
cogl_gl_headers="GLES/gl.h GLES/glext.h"
AC_DEFINE([HAVE_COGL_GLES], 1, [Have GLES 1.1 for rendering])
COGL_DEFINES_SYMBOLS="$COGL_DEFINES_SYMBOLS COGL_HAS_GLES CLUTTER_COGL_HAS_GLES"
COGL_DEFINES_SYMBOLS="$COGL_DEFINES_SYMBOLS COGL_HAS_GLES1"
HAVE_GLES1=1
PKG_CHECK_EXISTS([glesv1_cm],
[COGL_PKG_REQUIRES_GL="$COGL_PKG_REQUIRES_GL glesv1_cm"
COGL_GLES1_LIBNAME="libGLESv1_CM.so"
],
[
# We have to check the two headers independently as GLES/glext.h
# needs to include GLES/gl.h to have the GL types defined (eg.
# GLenum).
AC_CHECK_HEADER([GLES/gl.h],
[],
[AC_MSG_ERROR([Unable to locate GLES/gl.h])])
AC_CHECK_HEADER([GLES/glext.h],
[],
[AC_MSG_ERROR([Unable to locate GLES/glext.h])],
[#include <GLES/gl.h>])
# Early implementations provided only a GLES/egl.h while Khronos's
# implementer guide now states EGL/egl.h is the One. Some
# implementations keep a GLES/egl.h wrapper around EGL/egl.h for
# backward compatibility while others provide EGL/egl.h only.
AC_CHECK_HEADERS([GLES/egl.h EGL/egl.h])
AS_IF([test "x$ac_cv_header_GLES_egl_h" = "xyes"],
[COGL_EGL_INCLUDES="#include <GLES/egl.h>"],
[test "x$ac_cv_header_EGL_egl_h" = "xyes"],
[
COGL_EGL_INCLUDES="#include <EGL/egl.h>"
],
[AC_MSG_ERROR([Unable to locate EGL header])])
AC_SUBST([COGL_EGL_INCLUDES])
AC_CHECK_HEADERS([EGL/eglext.h],
[COGL_EGL_INCLUDES="$COGL_EGL_INCLUDE
#include <EGL/eglext.h>"],
[],
[$COGL_EGL_INCLUDES])
# Check for a GLES 1.x Common Profile library with/without EGL.
#
# Note: historically GLES 1 libraries shipped with the
# EGL and GLES symbols all bundled in one library. Now
# the Khronos Implementers Guide defines two naming
# schemes: -lGLES_CM should be used for a library that
# bundles the GLES and EGL API together and -lGLESv1_CM
# would be used for a standalone GLES API.
AC_CHECK_LIB(GLES_CM, [eglInitialize],
[COGL_GLES1_LIBNAME="libGLES_CM.so"],
[
AC_CHECK_LIB(GLESv1_CM, [glFlush],
[COGL_GLES1_LIBNAME="libGLESv1_CM.so"
NEED_SEPARATE_EGL=yes
],
[AC_MSG_ERROR([Unable to locate required GLES 1.x Common Profile library])])
])
EGL_CHECKED=yes
])
])
HAVE_GLES2=0 HAVE_GLES2=0
AC_ARG_ENABLE( AC_ARG_ENABLE(
[gles2], [gles2],
@ -560,10 +483,6 @@ AC_ARG_WITH([gl-libname],
[AS_HELP_STRING([--with-gl-libname], [AS_HELP_STRING([--with-gl-libname],
override the name of the GL library to dlopen)], override the name of the GL library to dlopen)],
[COGL_GL_LIBNAME="$withval"]) [COGL_GL_LIBNAME="$withval"])
AC_ARG_WITH([gles1-libname],
[AS_HELP_STRING([--with-gles1-libname],
override the name of the GLESv1 library to dlopen)],
[COGL_GLES1_LIBNAME="$withval"])
AC_ARG_WITH([gles2-libname], AC_ARG_WITH([gles2-libname],
[AS_HELP_STRING([--with-gles2-libname], [AS_HELP_STRING([--with-gles2-libname],
override the name of the GLESv2 library to dlopen)], override the name of the GLESv2 library to dlopen)],
@ -580,8 +499,6 @@ AM_CONDITIONAL(HAVE_COGL_DEFAULT_DRIVER,
AC_SUBST([COGL_GL_LIBNAME]) AC_SUBST([COGL_GL_LIBNAME])
AC_SUBST([HAVE_GL]) AC_SUBST([HAVE_GL])
AC_SUBST([COGL_GLES1_LIBNAME])
AC_SUBST([HAVE_GLES1])
AC_SUBST([COGL_GLES2_LIBNAME]) AC_SUBST([COGL_GLES2_LIBNAME])
AC_SUBST([HAVE_GLES2]) AC_SUBST([HAVE_GLES2])
AC_SUBST([COGL_DEFAULT_DRIVER]) AC_SUBST([COGL_DEFAULT_DRIVER])

View File

@ -1,3 +1,2 @@
HAVE_GL=@HAVE_GL@ HAVE_GL=@HAVE_GL@
HAVE_GLES1=@HAVE_GLES1@
HAVE_GLES2=@HAVE_GLES2@ HAVE_GLES2=@HAVE_GLES2@

View File

@ -50,7 +50,6 @@ get_x11_cogl_winsys_vtable (CoglRenderer *renderer)
switch (renderer->driver) switch (renderer->driver)
{ {
case COGL_DRIVER_GLES1:
case COGL_DRIVER_GLES2: case COGL_DRIVER_GLES2:
return _cogl_winsys_egl_xlib_get_vtable (); return _cogl_winsys_egl_xlib_get_vtable ();
case COGL_DRIVER_GL: case COGL_DRIVER_GL: