cogl: Remove builtin/texcoord attribute tracking bitmasks from CoglContext
These were only being set from the fixed-function pipeline. https://gitlab.gnome.org/GNOME/mutter/merge_requests/995
This commit is contained in:
parent
abd094d135
commit
3f2ad5a50a
@ -104,15 +104,11 @@ struct _CoglContext
|
|||||||
GArray *attribute_name_index_map;
|
GArray *attribute_name_index_map;
|
||||||
int n_attribute_names;
|
int n_attribute_names;
|
||||||
|
|
||||||
CoglBitmask enabled_builtin_attributes;
|
|
||||||
CoglBitmask enabled_texcoord_attributes;
|
|
||||||
CoglBitmask enabled_custom_attributes;
|
CoglBitmask enabled_custom_attributes;
|
||||||
|
|
||||||
/* These are temporary bitmasks that are used when disabling
|
/* These are temporary bitmasks that are used when disabling
|
||||||
* builtin,texcoord and custom attribute arrays. They are here just
|
* builtin and custom attribute arrays. They are here just
|
||||||
* to avoid allocating new ones each time */
|
* to avoid allocating new ones each time */
|
||||||
CoglBitmask enable_builtin_attributes_tmp;
|
|
||||||
CoglBitmask enable_texcoord_attributes_tmp;
|
|
||||||
CoglBitmask enable_custom_attributes_tmp;
|
CoglBitmask enable_custom_attributes_tmp;
|
||||||
CoglBitmask changed_bits_tmp;
|
CoglBitmask changed_bits_tmp;
|
||||||
|
|
||||||
|
@ -282,10 +282,6 @@ cogl_context_new (CoglDisplay *display,
|
|||||||
context->current_pipeline_changes_since_flush = 0;
|
context->current_pipeline_changes_since_flush = 0;
|
||||||
context->current_pipeline_with_color_attrib = FALSE;
|
context->current_pipeline_with_color_attrib = FALSE;
|
||||||
|
|
||||||
_cogl_bitmask_init (&context->enabled_builtin_attributes);
|
|
||||||
_cogl_bitmask_init (&context->enable_builtin_attributes_tmp);
|
|
||||||
_cogl_bitmask_init (&context->enabled_texcoord_attributes);
|
|
||||||
_cogl_bitmask_init (&context->enable_texcoord_attributes_tmp);
|
|
||||||
_cogl_bitmask_init (&context->enabled_custom_attributes);
|
_cogl_bitmask_init (&context->enabled_custom_attributes);
|
||||||
_cogl_bitmask_init (&context->enable_custom_attributes_tmp);
|
_cogl_bitmask_init (&context->enable_custom_attributes_tmp);
|
||||||
_cogl_bitmask_init (&context->changed_bits_tmp);
|
_cogl_bitmask_init (&context->changed_bits_tmp);
|
||||||
@ -409,10 +405,6 @@ _cogl_context_free (CoglContext *context)
|
|||||||
g_slist_free (context->atlases);
|
g_slist_free (context->atlases);
|
||||||
g_hook_list_clear (&context->atlas_reorganize_callbacks);
|
g_hook_list_clear (&context->atlas_reorganize_callbacks);
|
||||||
|
|
||||||
_cogl_bitmask_destroy (&context->enabled_builtin_attributes);
|
|
||||||
_cogl_bitmask_destroy (&context->enable_builtin_attributes_tmp);
|
|
||||||
_cogl_bitmask_destroy (&context->enabled_texcoord_attributes);
|
|
||||||
_cogl_bitmask_destroy (&context->enable_texcoord_attributes_tmp);
|
|
||||||
_cogl_bitmask_destroy (&context->enabled_custom_attributes);
|
_cogl_bitmask_destroy (&context->enabled_custom_attributes);
|
||||||
_cogl_bitmask_destroy (&context->enable_custom_attributes_tmp);
|
_cogl_bitmask_destroy (&context->enable_custom_attributes_tmp);
|
||||||
_cogl_bitmask_destroy (&context->changed_bits_tmp);
|
_cogl_bitmask_destroy (&context->changed_bits_tmp);
|
||||||
|
@ -53,69 +53,6 @@ typedef struct _ForeachChangedBitState
|
|||||||
CoglPipeline *pipeline;
|
CoglPipeline *pipeline;
|
||||||
} ForeachChangedBitState;
|
} ForeachChangedBitState;
|
||||||
|
|
||||||
static gboolean
|
|
||||||
toggle_builtin_attribute_enabled_cb (int bit_num, void *user_data)
|
|
||||||
{
|
|
||||||
ForeachChangedBitState *state = user_data;
|
|
||||||
CoglContext *context = state->context;
|
|
||||||
|
|
||||||
g_return_val_if_fail (context->driver == COGL_DRIVER_GL,
|
|
||||||
FALSE);
|
|
||||||
|
|
||||||
#ifdef HAVE_COGL_GL
|
|
||||||
{
|
|
||||||
gboolean enabled = _cogl_bitmask_get (state->new_bits, bit_num);
|
|
||||||
GLenum cap;
|
|
||||||
|
|
||||||
switch (bit_num)
|
|
||||||
{
|
|
||||||
case COGL_ATTRIBUTE_NAME_ID_COLOR_ARRAY:
|
|
||||||
cap = GL_COLOR_ARRAY;
|
|
||||||
break;
|
|
||||||
case COGL_ATTRIBUTE_NAME_ID_POSITION_ARRAY:
|
|
||||||
cap = GL_VERTEX_ARRAY;
|
|
||||||
break;
|
|
||||||
case COGL_ATTRIBUTE_NAME_ID_NORMAL_ARRAY:
|
|
||||||
cap = GL_NORMAL_ARRAY;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
g_assert_not_reached ();
|
|
||||||
}
|
|
||||||
if (enabled)
|
|
||||||
GE (context, glEnableClientState (cap));
|
|
||||||
else
|
|
||||||
GE (context, glDisableClientState (cap));
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
toggle_texcood_attribute_enabled_cb (int bit_num, void *user_data)
|
|
||||||
{
|
|
||||||
ForeachChangedBitState *state = user_data;
|
|
||||||
CoglContext *context = state->context;
|
|
||||||
|
|
||||||
g_return_val_if_fail (context->driver == COGL_DRIVER_GL,
|
|
||||||
FALSE);
|
|
||||||
|
|
||||||
#ifdef HAVE_COGL_GL
|
|
||||||
{
|
|
||||||
gboolean enabled = _cogl_bitmask_get (state->new_bits, bit_num);
|
|
||||||
|
|
||||||
GE( context, glClientActiveTexture (GL_TEXTURE0 + bit_num) );
|
|
||||||
|
|
||||||
if (enabled)
|
|
||||||
GE( context, glEnableClientState (GL_TEXTURE_COORD_ARRAY) );
|
|
||||||
else
|
|
||||||
GE( context, glDisableClientState (GL_TEXTURE_COORD_ARRAY) );
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
toggle_custom_attribute_enabled_cb (int bit_num, void *user_data)
|
toggle_custom_attribute_enabled_cb (int bit_num, void *user_data)
|
||||||
{
|
{
|
||||||
@ -232,22 +169,7 @@ apply_attribute_enable_updates (CoglContext *context,
|
|||||||
ForeachChangedBitState changed_bits_state;
|
ForeachChangedBitState changed_bits_state;
|
||||||
|
|
||||||
changed_bits_state.context = context;
|
changed_bits_state.context = context;
|
||||||
changed_bits_state.new_bits = &context->enable_builtin_attributes_tmp;
|
|
||||||
changed_bits_state.pipeline = pipeline;
|
changed_bits_state.pipeline = pipeline;
|
||||||
|
|
||||||
foreach_changed_bit_and_save (context,
|
|
||||||
&context->enabled_builtin_attributes,
|
|
||||||
&context->enable_builtin_attributes_tmp,
|
|
||||||
toggle_builtin_attribute_enabled_cb,
|
|
||||||
&changed_bits_state);
|
|
||||||
|
|
||||||
changed_bits_state.new_bits = &context->enable_texcoord_attributes_tmp;
|
|
||||||
foreach_changed_bit_and_save (context,
|
|
||||||
&context->enabled_texcoord_attributes,
|
|
||||||
&context->enable_texcoord_attributes_tmp,
|
|
||||||
toggle_texcood_attribute_enabled_cb,
|
|
||||||
&changed_bits_state);
|
|
||||||
|
|
||||||
changed_bits_state.new_bits = &context->enable_custom_attributes_tmp;
|
changed_bits_state.new_bits = &context->enable_custom_attributes_tmp;
|
||||||
foreach_changed_bit_and_save (context,
|
foreach_changed_bit_and_save (context,
|
||||||
&context->enabled_custom_attributes,
|
&context->enabled_custom_attributes,
|
||||||
@ -337,8 +259,6 @@ _cogl_gl_flush_attributes_state (CoglFramebuffer *framebuffer,
|
|||||||
with_color_attrib,
|
with_color_attrib,
|
||||||
unknown_color_alpha);
|
unknown_color_alpha);
|
||||||
|
|
||||||
_cogl_bitmask_clear_all (&ctx->enable_builtin_attributes_tmp);
|
|
||||||
_cogl_bitmask_clear_all (&ctx->enable_texcoord_attributes_tmp);
|
|
||||||
_cogl_bitmask_clear_all (&ctx->enable_custom_attributes_tmp);
|
_cogl_bitmask_clear_all (&ctx->enable_custom_attributes_tmp);
|
||||||
|
|
||||||
/* Bind the attribute pointers. We need to do this after the
|
/* Bind the attribute pointers. We need to do this after the
|
||||||
|
Loading…
Reference in New Issue
Block a user