1 /*
2  * Copyright © 2013 Red Hat Inc.
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
16  *
17  * Authors: Alexander Larsson <alexl@gnome.org>
18  */
19 
20 #ifndef __GTK_PIXEL_CACHE_PRIVATE_H__
21 #define __GTK_PIXEL_CACHE_PRIVATE_H__
22 
23 #include <glib-object.h>
24 #include <gtkwidget.h>
25 
26 G_BEGIN_DECLS
27 
28 typedef struct _GtkPixelCache           GtkPixelCache;
29 
30 typedef void (*GtkPixelCacheDrawFunc) (cairo_t *cr,
31 				       gpointer user_data);
32 
33 GtkPixelCache *_gtk_pixel_cache_new              (void);
34 void           _gtk_pixel_cache_free             (GtkPixelCache         *cache);
35 void           _gtk_pixel_cache_map              (GtkPixelCache         *cache);
36 void           _gtk_pixel_cache_unmap            (GtkPixelCache         *cache);
37 void           _gtk_pixel_cache_invalidate       (GtkPixelCache         *cache,
38                                                   cairo_region_t        *region);
39 void           _gtk_pixel_cache_draw             (GtkPixelCache         *cache,
40                                                   cairo_t               *cr,
41                                                   GdkWindow             *window,
42                                                   cairo_rectangle_int_t *view_rect,
43                                                   cairo_rectangle_int_t *canvas_rect,
44                                                   GtkPixelCacheDrawFunc  draw,
45                                                   gpointer               user_data);
46 void           _gtk_pixel_cache_get_extra_size   (GtkPixelCache         *cache,
47                                                   guint                 *extra_width,
48                                                   guint                 *extra_height);
49 void           _gtk_pixel_cache_set_extra_size   (GtkPixelCache         *cache,
50                                                   guint                  extra_width,
51                                                   guint                  extra_height);
52 void           _gtk_pixel_cache_set_content      (GtkPixelCache         *cache,
53                                                   cairo_content_t        content);
54 gboolean       _gtk_pixel_cache_get_always_cache (GtkPixelCache         *cache);
55 void           _gtk_pixel_cache_set_always_cache (GtkPixelCache         *cache,
56                                                   gboolean               always_cache);
57 void           gtk_pixel_cache_set_is_opaque     (GtkPixelCache         *cache,
58                                                   gboolean               is_opaque);
59 
60 
61 G_END_DECLS
62 
63 #endif /* __GTK_PIXEL_CACHE_PRIVATE_H__ */
64