cogl-texture: List texture subclass types rather than hardcoding them
Instead of having a hardcoded series of if-statements in cogl_is_texture to determine which types should appear as texture subclasses, they are now stored in a GSList attached to the Cogl context. The list is amended to using a new cogl_texture_register_type function. There is a convenience macro called COGL_TEXTURE_DEFINE which uses COGL_HANDLE_DEFINE_WITH_CODE to register the texture type when the _get_type() function is first called.
This commit is contained in:
@ -142,6 +142,17 @@ typedef enum _CoglTextureChangeFlags
|
||||
void
|
||||
_cogl_texture_free (CoglTexture *texture);
|
||||
|
||||
/* This is used to register a type to the list of handle types that
|
||||
will be considered a texture in cogl_is_texture() */
|
||||
void
|
||||
_cogl_texture_register_texture_type (GQuark type);
|
||||
|
||||
#define COGL_TEXTURE_DEFINE(TypeName, type_name) \
|
||||
COGL_HANDLE_DEFINE_WITH_CODE \
|
||||
(TypeName, type_name, \
|
||||
_cogl_texture_register_texture_type (_cogl_handle_ \
|
||||
## type_name ## _get_type ()))
|
||||
|
||||
void
|
||||
_cogl_texture_foreach_sub_texture_in_region (CoglHandle handle,
|
||||
float virtual_tx_1,
|
||||
|
Reference in New Issue
Block a user