/** * st_texture_cache_load_file_to_cogl_texture: * @cache: A #StTextureCache * @file_path: Path to a file in supported image format * * This function synchronously loads the given file path * into a COGL texture. On error, a warning is emitted * and %COGL_INVALID_HANDLE is returned. * * Returns: (transfer full): a new #CoglHandle */ CoglHandle st_texture_cache_load_file_to_cogl_texture (StTextureCache *cache, const gchar *file_path) { CoglHandle texture; GFile *file; char *uri; GError *error = NULL; file = g_file_new_for_path (file_path); uri = g_file_get_uri (file); texture = st_texture_cache_load_uri_sync_to_cogl_texture (cache, ST_TEXTURE_CACHE_POLICY_FOREVER, uri, -1, -1, &error); g_object_unref (file); g_free (uri); if (texture == NULL) { g_warning ("Failed to load %s: %s", file_path, error->message); g_clear_error (&error); return COGL_INVALID_HANDLE; } return texture; }
/** * st_texture_cache_load_uri_sync: * * @cache: The texture cache instance * @policy: Requested lifecycle of cached data * @uri: uri of the image file from which to create a pixbuf * @available_width: available width for the image, can be -1 if not limited * @available_height: available height for the image, can be -1 if not limited * @error: Return location for error * * Synchronously load an image from a uri. The image is scaled down to fit the * available width and height imensions, but the image is never scaled up beyond * its actual size. The pixbuf is rotated according to the associated orientation * setting. * * Return value: (transfer none): A new #ClutterActor with the image file loaded if it was * generated succesfully, %NULL otherwise */ ClutterActor * st_texture_cache_load_uri_sync (StTextureCache *cache, StTextureCachePolicy policy, const gchar *uri, int available_width, int available_height, GError **error) { CoglHandle texdata; ClutterTexture *texture; texdata = st_texture_cache_load_uri_sync_to_cogl_texture (cache, policy, uri, available_width, available_height, error); if (texdata == COGL_INVALID_HANDLE) return NULL; texture = create_default_texture (cache); set_texture_cogl_texture (texture, texdata); cogl_handle_unref (texdata); return CLUTTER_ACTOR (texture); }