1 /* GSK - The GTK Scene Kit 2 * 3 * Copyright 2016 Endless 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Lesser General Public 7 * License as published by the Free Software Foundation; either 8 * version 2 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public 16 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 17 */ 18 19 #ifndef __GSK_RENDERER_H__ 20 #define __GSK_RENDERER_H__ 21 22 #if !defined (__GSK_H_INSIDE__) && !defined (GTK_COMPILATION) 23 #error "Only <gsk/gsk.h> can be included directly." 24 #endif 25 26 #include <gsk/gsktypes.h> 27 #include <gsk/gskrendernode.h> 28 29 G_BEGIN_DECLS 30 31 #define GSK_TYPE_RENDERER (gsk_renderer_get_type ()) 32 33 #define GSK_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSK_TYPE_RENDERER, GskRenderer)) 34 #define GSK_IS_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSK_TYPE_RENDERER)) 35 36 typedef struct _GskRendererClass GskRendererClass; 37 38 GDK_AVAILABLE_IN_ALL 39 GType gsk_renderer_get_type (void) G_GNUC_CONST; 40 41 GDK_AVAILABLE_IN_ALL 42 GskRenderer * gsk_renderer_new_for_surface (GdkSurface *surface); 43 44 GDK_AVAILABLE_IN_ALL 45 GdkSurface * gsk_renderer_get_surface (GskRenderer *renderer); 46 47 GDK_AVAILABLE_IN_ALL 48 gboolean gsk_renderer_realize (GskRenderer *renderer, 49 GdkSurface *surface, 50 GError **error); 51 GDK_AVAILABLE_IN_ALL 52 void gsk_renderer_unrealize (GskRenderer *renderer); 53 GDK_AVAILABLE_IN_ALL 54 gboolean gsk_renderer_is_realized (GskRenderer *renderer); 55 56 GDK_AVAILABLE_IN_ALL 57 GdkTexture * gsk_renderer_render_texture (GskRenderer *renderer, 58 GskRenderNode *root, 59 const graphene_rect_t *viewport); 60 61 GDK_AVAILABLE_IN_ALL 62 void gsk_renderer_render (GskRenderer *renderer, 63 GskRenderNode *root, 64 const cairo_region_t *region); 65 66 G_END_DECLS 67 68 #endif /* __GSK_RENDERER_H__ */ 69