Code

Filters. Custom predefined filters update and new ABC filters.
[inkscape.git] / src / sp-filter-primitive.h
1 #ifndef __SP_FILTER_PRIMITIVE_H__
2 #define __SP_FILTER_PRIMITIVE_H__
4 /** \file
5  * Document level base class for all SVG filter primitives.
6  */
7 /*
8  * Authors:
9  *   Hugo Rodrigues <haa.rodrigues@gmail.com>
10  *   Niko Kiirala <niko@kiirala.com>
11  *
12  * Copyright (C) 2006,2007 Authors
13  *
14  * Released under GNU GPL, read the file 'COPYING' for more information
15  */
17 #include "sp-object.h"
18 #include "display/nr-filter.h"
19 #include "display/nr-filter-primitive.h"
20 #include "display/nr-filter-types.h"
22 #define SP_TYPE_FILTER_PRIMITIVE (sp_filter_primitive_get_type ())
23 #define SP_FILTER_PRIMITIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_FILTER_PRIMITIVE, SPFilterPrimitive))
24 #define SP_FILTER_PRIMITIVE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_FILTER_PRIMITIVE, SPFilterPrimitiveClass))
25 #define SP_IS_FILTER_PRIMITIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_FILTER_PRIMITIVE))
26 #define SP_IS_FILTER_PRIMITIVE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_FILTER_PRIMITIVE))
28 class SPFilterPrimitive;
29 class SPFilterPrimitiveClass;
31 struct SPFilterPrimitive : public SPObject {
32     int image_in, image_out;
33 };
35 struct SPFilterPrimitiveClass {
36     SPObjectClass sp_object_class;
37     void (* build_renderer)(SPFilterPrimitive*, Inkscape::Filters::Filter*);
38 };
40 GType sp_filter_primitive_get_type (void);
42 /* Common initialization for filter primitives */
43 void sp_filter_primitive_renderer_common(SPFilterPrimitive *sp_prim, Inkscape::Filters::FilterPrimitive *nr_prim);
45 int sp_filter_primitive_name_previous_out(SPFilterPrimitive *prim);
46 int sp_filter_primitive_read_in(SPFilterPrimitive *prim, gchar const *name);
47 int sp_filter_primitive_read_result(SPFilterPrimitive *prim, gchar const *name);
49 #endif
50 /*
51   Local Variables:
52   mode:c++
53   c-file-style:"stroustrup"
54   c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
55   indent-tabs-mode:nil
56   fill-column:99
57   End:
58 */
59 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :