Blame src/st/st-texture-cache.h

Packit d345d1
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
Packit d345d1
/*
Packit d345d1
 * st-texture-cache.h: Object for loading and caching images as textures
Packit d345d1
 *
Packit d345d1
 * Copyright 2009, 2010 Red Hat, Inc.
Packit d345d1
 * Copyright 2010, Maxim Ermilov
Packit d345d1
 *
Packit d345d1
 * This program is free software; you can redistribute it and/or modify
Packit d345d1
 * it under the terms of the GNU Lesser General Public License as
Packit d345d1
 * published by the Free Software Foundation, either version 2.1 of
Packit d345d1
 * the License, or (at your option) any later version.
Packit d345d1
 *
Packit d345d1
 * This program is distributed in the hope it will be useful, but WITHOUT ANY
Packit d345d1
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
Packit d345d1
 * FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
Packit d345d1
 * more details.
Packit d345d1
 *
Packit d345d1
 * You should have received a copy of the GNU Lesser General Public License
Packit d345d1
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
Packit d345d1
 */
Packit d345d1
Packit d345d1
#ifndef __ST_TEXTURE_CACHE_H__
Packit d345d1
#define __ST_TEXTURE_CACHE_H__
Packit d345d1
Packit d345d1
#if !defined(ST_H_INSIDE) && !defined(ST_COMPILATION)
Packit d345d1
#error "Only <st/st.h> can be included directly.h"
Packit d345d1
#endif
Packit d345d1
Packit d345d1
#include <gio/gio.h>
Packit d345d1
#include <gtk/gtk.h>
Packit d345d1
#include <clutter/clutter.h>
Packit d345d1
Packit d345d1
#include <st/st-types.h>
Packit d345d1
#include <st/st-theme-node.h>
Packit d345d1
#include <st/st-widget.h>
Packit d345d1
Packit d345d1
#define ST_TYPE_TEXTURE_CACHE                 (st_texture_cache_get_type ())
Packit d345d1
G_DECLARE_FINAL_TYPE (StTextureCache, st_texture_cache,
Packit d345d1
                      ST, TEXTURE_CACHE, GObject)
Packit d345d1
Packit d345d1
typedef struct _StTextureCachePrivate StTextureCachePrivate;
Packit d345d1
Packit d345d1
struct _StTextureCache
Packit d345d1
{
Packit d345d1
  GObject parent;
Packit d345d1
Packit d345d1
  StTextureCachePrivate *priv;
Packit d345d1
};
Packit d345d1
Packit d345d1
typedef enum {
Packit d345d1
  ST_TEXTURE_CACHE_POLICY_NONE,
Packit d345d1
  ST_TEXTURE_CACHE_POLICY_FOREVER
Packit d345d1
} StTextureCachePolicy;
Packit d345d1
Packit d345d1
StTextureCache* st_texture_cache_get_default (void);
Packit d345d1
Packit d345d1
ClutterActor *
Packit d345d1
st_texture_cache_load_sliced_image (StTextureCache *cache,
Packit d345d1
                                    GFile          *file,
Packit d345d1
                                    gint            grid_width,
Packit d345d1
                                    gint            grid_height,
Packit d345d1
                                    gint            paint_scale,
Packit d345d1
                                    gfloat          resource_scale,
Packit d345d1
                                    GFunc           load_callback,
Packit d345d1
                                    gpointer        user_data);
Packit d345d1
Packit d345d1
StWidget *st_texture_cache_bind_cairo_surface_property (StTextureCache    *cache,
Packit d345d1
                                                        GObject           *object,
Packit d345d1
                                                        const char        *property_name,
Packit d345d1
                                                        gint               size);
Packit d345d1
Packit d345d1
ClutterActor *st_texture_cache_load_gicon (StTextureCache *cache,
Packit d345d1
                                           StThemeNode    *theme_node,
Packit d345d1
                                           GIcon          *icon,
Packit d345d1
                                           gint            size,
Packit d345d1
                                           gint            paint_scale,
Packit d345d1
                                           gfloat          resource_scale);
Packit d345d1
Packit d345d1
ClutterActor *st_texture_cache_load_file_async (StTextureCache    *cache,
Packit d345d1
                                                GFile             *file,
Packit d345d1
                                                int                available_width,
Packit d345d1
                                                int                available_height,
Packit d345d1
                                                int                paint_scale,
Packit d345d1
                                                gfloat             resource_scale);
Packit d345d1
Packit d345d1
CoglTexture     *st_texture_cache_load_file_to_cogl_texture (StTextureCache *cache,
Packit d345d1
                                                             GFile          *file,
Packit d345d1
                                                             gint            paint_scale,
Packit d345d1
                                                             gfloat          resource_scale);
Packit d345d1
Packit d345d1
cairo_surface_t *st_texture_cache_load_file_to_cairo_surface (StTextureCache *cache,
Packit d345d1
                                                              GFile          *file,
Packit d345d1
                                                              gint            paint_scale,
Packit d345d1
                                                              gfloat          resource_scale);
Packit d345d1
Packit d345d1
/**
Packit d345d1
 * StTextureCacheLoader: (skip)
Packit d345d1
 * @cache: a #StTextureCache
Packit d345d1
 * @key: Unique identifier for this texture
Packit d345d1
 * @data: Callback user data
Packit d345d1
 * @error: A #GError
Packit d345d1
 *
Packit d345d1
 * See st_texture_cache_load().  Implementations should return a
Packit d345d1
 * texture handle for the given key, or set @error.
Packit d345d1
 *
Packit d345d1
 */
Packit d345d1
typedef CoglTexture * (*StTextureCacheLoader) (StTextureCache *cache, const char *key, void *data, GError **error);
Packit d345d1
Packit d345d1
CoglTexture * st_texture_cache_load (StTextureCache       *cache,
Packit d345d1
                                     const char           *key,
Packit d345d1
                                     StTextureCachePolicy  policy,
Packit d345d1
                                     StTextureCacheLoader  load,
Packit d345d1
                                     void                 *data,
Packit d345d1
                                     GError              **error);
Packit d345d1
Packit d345d1
#endif /* __ST_TEXTURE_CACHE_H__ */