Branch data Line data Source code
1 : : /* 2 : : * Copyright (C) 2021 James Westman <james@jwestman.net> 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 <https://www.gnu.org/licenses/>. 16 : : */ 17 : : 18 : : #pragma once 19 : : 20 : : #include <glib-object.h> 21 : : #include <json-glib/json-glib.h> 22 : : #include <cairo/cairo.h> 23 : : #include "shumate-vector-render-scope-private.h" 24 : : #include "shumate-vector-expression-private.h" 25 : : 26 : : G_BEGIN_DECLS 27 : : 28 : : #define SHUMATE_TYPE_VECTOR_LAYER (shumate_vector_layer_get_type()) 29 : : 30 [ + - + - : 81 : G_DECLARE_DERIVABLE_TYPE (ShumateVectorLayer, shumate_vector_layer, SHUMATE, VECTOR_LAYER, GObject) + - ] 31 : : 32 : : struct _ShumateVectorLayerClass 33 : : { 34 : : GObjectClass parent_class; 35 : : 36 : : void (*render) (ShumateVectorLayer *self, ShumateVectorRenderScope *scope); 37 : : }; 38 : : 39 : : ShumateVectorLayer *shumate_vector_layer_create_from_json (JsonObject *object, GError **error); 40 : : 41 : : void shumate_vector_layer_render (ShumateVectorLayer *self, ShumateVectorRenderScope *scope); 42 : : const char *shumate_vector_layer_get_id (ShumateVectorLayer *self); 43 : : const char *shumate_vector_layer_get_source_layer (ShumateVectorLayer *self); 44 : : ShumateVectorExpression *shumate_vector_layer_get_filter (ShumateVectorLayer *self); 45 : : 46 : : G_END_DECLS