bool _cg_texture_2d_gl_allocate(cg_texture_t *tex, cg_error_t **error) { cg_texture_2d_t *tex_2d = CG_TEXTURE_2D(tex); cg_texture_loader_t *loader = tex->loader; c_return_val_if_fail(loader, false); switch (loader->src_type) { case CG_TEXTURE_SOURCE_TYPE_SIZED: return allocate_with_size(tex_2d, loader, error); case CG_TEXTURE_SOURCE_TYPE_BITMAP: return allocate_from_bitmap(tex_2d, loader, error); case CG_TEXTURE_SOURCE_TYPE_EGL_IMAGE: #if defined(CG_HAS_EGL_SUPPORT) && defined(EGL_KHR_image_base) return allocate_from_egl_image(tex_2d, loader, error); #else c_return_val_if_reached(false); #endif case CG_TEXTURE_SOURCE_TYPE_WEBGL_IMAGE: #ifdef CG_HAS_WEBGL_SUPPORT return allocate_from_webgl_image(tex_2d, loader, error); #else c_return_val_if_reached(false); #endif case CG_TEXTURE_SOURCE_TYPE_GL_FOREIGN: return allocate_from_gl_foreign(tex_2d, loader, error); } c_return_val_if_reached(false); }
gboolean _cogl_texture_2d_gl_allocate (CoglTexture *tex, CoglError **error) { CoglTexture2D *tex_2d = COGL_TEXTURE_2D (tex); CoglTextureLoader *loader = tex->loader; _COGL_RETURN_VAL_IF_FAIL (loader, FALSE); switch (loader->src_type) { case COGL_TEXTURE_SOURCE_TYPE_SIZED: return allocate_with_size (tex_2d, loader, error); case COGL_TEXTURE_SOURCE_TYPE_BITMAP: return allocate_from_bitmap (tex_2d, loader, error); case COGL_TEXTURE_SOURCE_TYPE_EGL_IMAGE: #if defined (COGL_HAS_EGL_SUPPORT) && defined (EGL_KHR_image_base) return allocate_from_egl_image (tex_2d, loader, error); #else g_return_val_if_reached (FALSE); #endif case COGL_TEXTURE_SOURCE_TYPE_GL_FOREIGN: return allocate_from_gl_foreign (tex_2d, loader, error); case COGL_TEXTURE_SOURCE_TYPE_EGL_IMAGE_EXTERNAL: #if defined (COGL_HAS_EGL_SUPPORT) return allocate_custom_egl_image_external (tex_2d, loader, error); #else g_return_val_if_reached (FALSE); #endif } g_return_val_if_reached (FALSE); }
static CoglBool _cogl_texture_3d_allocate (CoglTexture *tex, CoglError **error) { CoglTexture3D *tex_3d = COGL_TEXTURE_3D (tex); CoglTextureLoader *loader = tex->loader; _COGL_RETURN_VAL_IF_FAIL (loader, FALSE); switch (loader->src_type) { case COGL_TEXTURE_SOURCE_TYPE_SIZED: return allocate_with_size (tex_3d, loader, error); case COGL_TEXTURE_SOURCE_TYPE_BITMAP: return allocate_from_bitmap (tex_3d, loader, error); default: break; } g_return_val_if_reached (FALSE); }
static CoglBool _cogl_texture_rectangle_allocate (CoglTexture *tex, CoglError **error) { CoglTextureRectangle *tex_rect = COGL_TEXTURE_RECTANGLE (tex); CoglTextureLoader *loader = tex->loader; _COGL_RETURN_VAL_IF_FAIL (loader, FALSE); switch (loader->src_type) { case COGL_TEXTURE_SOURCE_TYPE_SIZED: return allocate_with_size (tex_rect, loader, error); case COGL_TEXTURE_SOURCE_TYPE_BITMAP: return allocate_from_bitmap (tex_rect, loader, error); case COGL_TEXTURE_SOURCE_TYPE_GL_FOREIGN: return allocate_from_gl_foreign (tex_rect, loader, error); default: break; } g_return_val_if_reached (FALSE); }