1package cairo
2
3// #include <stdlib.h>
4// #include <cairo.h>
5// #include <cairo-gobject.h>
6import "C"
7import (
8	"unsafe"
9)
10
11// Operator is a representation of Cairo's cairo_operator_t.
12type Operator int
13
14const (
15	OPERATOR_CLEAR          Operator = C.CAIRO_OPERATOR_CLEAR
16	OPERATOR_SOURCE         Operator = C.CAIRO_OPERATOR_SOURCE
17	OPERATOR_OVER           Operator = C.CAIRO_OPERATOR_OVER
18	OPERATOR_IN             Operator = C.CAIRO_OPERATOR_IN
19	OPERATOR_OUT            Operator = C.CAIRO_OPERATOR_OUT
20	OPERATOR_ATOP           Operator = C.CAIRO_OPERATOR_ATOP
21	OPERATOR_DEST           Operator = C.CAIRO_OPERATOR_DEST
22	OPERATOR_DEST_OVER      Operator = C.CAIRO_OPERATOR_DEST_OVER
23	OPERATOR_DEST_IN        Operator = C.CAIRO_OPERATOR_DEST_IN
24	OPERATOR_DEST_OUT       Operator = C.CAIRO_OPERATOR_DEST_OUT
25	OPERATOR_DEST_ATOP      Operator = C.CAIRO_OPERATOR_DEST_ATOP
26	OPERATOR_XOR            Operator = C.CAIRO_OPERATOR_XOR
27	OPERATOR_ADD            Operator = C.CAIRO_OPERATOR_ADD
28	OPERATOR_SATURATE       Operator = C.CAIRO_OPERATOR_SATURATE
29	OPERATOR_MULTIPLY       Operator = C.CAIRO_OPERATOR_MULTIPLY
30	OPERATOR_SCREEN         Operator = C.CAIRO_OPERATOR_SCREEN
31	OPERATOR_OVERLAY        Operator = C.CAIRO_OPERATOR_OVERLAY
32	OPERATOR_DARKEN         Operator = C.CAIRO_OPERATOR_DARKEN
33	OPERATOR_LIGHTEN        Operator = C.CAIRO_OPERATOR_LIGHTEN
34	OPERATOR_COLOR_DODGE    Operator = C.CAIRO_OPERATOR_COLOR_DODGE
35	OPERATOR_COLOR_BURN     Operator = C.CAIRO_OPERATOR_COLOR_BURN
36	OPERATOR_HARD_LIGHT     Operator = C.CAIRO_OPERATOR_HARD_LIGHT
37	OPERATOR_SOFT_LIGHT     Operator = C.CAIRO_OPERATOR_SOFT_LIGHT
38	OPERATOR_DIFFERENCE     Operator = C.CAIRO_OPERATOR_DIFFERENCE
39	OPERATOR_EXCLUSION      Operator = C.CAIRO_OPERATOR_EXCLUSION
40	OPERATOR_HSL_HUE        Operator = C.CAIRO_OPERATOR_HSL_HUE
41	OPERATOR_HSL_SATURATION Operator = C.CAIRO_OPERATOR_HSL_SATURATION
42	OPERATOR_HSL_COLOR      Operator = C.CAIRO_OPERATOR_HSL_COLOR
43	OPERATOR_HSL_LUMINOSITY Operator = C.CAIRO_OPERATOR_HSL_LUMINOSITY
44)
45
46func marshalOperator(p uintptr) (interface{}, error) {
47	c := C.g_value_get_enum((*C.GValue)(unsafe.Pointer(p)))
48	return Operator(c), nil
49}
50