1package cairo
2
3// #include <stdlib.h>
4// #include <cairo.h>
5// #include <cairo-gobject.h>
6import "C"
7import (
8	"unsafe"
9)
10
11// SurfaceType is a representation of Cairo's cairo_surface_type_t.
12type SurfaceType int
13
14const (
15	SURFACE_TYPE_IMAGE          SurfaceType = C.CAIRO_SURFACE_TYPE_IMAGE
16	SURFACE_TYPE_PDF            SurfaceType = C.CAIRO_SURFACE_TYPE_PDF
17	SURFACE_TYPE_PS             SurfaceType = C.CAIRO_SURFACE_TYPE_PS
18	SURFACE_TYPE_XLIB           SurfaceType = C.CAIRO_SURFACE_TYPE_XLIB
19	SURFACE_TYPE_XCB            SurfaceType = C.CAIRO_SURFACE_TYPE_XCB
20	SURFACE_TYPE_GLITZ          SurfaceType = C.CAIRO_SURFACE_TYPE_GLITZ
21	SURFACE_TYPE_QUARTZ         SurfaceType = C.CAIRO_SURFACE_TYPE_QUARTZ
22	SURFACE_TYPE_WIN32          SurfaceType = C.CAIRO_SURFACE_TYPE_WIN32
23	SURFACE_TYPE_BEOS           SurfaceType = C.CAIRO_SURFACE_TYPE_BEOS
24	SURFACE_TYPE_DIRECTFB       SurfaceType = C.CAIRO_SURFACE_TYPE_DIRECTFB
25	SURFACE_TYPE_SVG            SurfaceType = C.CAIRO_SURFACE_TYPE_SVG
26	SURFACE_TYPE_OS2            SurfaceType = C.CAIRO_SURFACE_TYPE_OS2
27	SURFACE_TYPE_WIN32_PRINTING SurfaceType = C.CAIRO_SURFACE_TYPE_WIN32_PRINTING
28	SURFACE_TYPE_QUARTZ_IMAGE   SurfaceType = C.CAIRO_SURFACE_TYPE_QUARTZ_IMAGE
29	SURFACE_TYPE_SCRIPT         SurfaceType = C.CAIRO_SURFACE_TYPE_SCRIPT
30	SURFACE_TYPE_QT             SurfaceType = C.CAIRO_SURFACE_TYPE_QT
31	SURFACE_TYPE_RECORDING      SurfaceType = C.CAIRO_SURFACE_TYPE_RECORDING
32	SURFACE_TYPE_VG             SurfaceType = C.CAIRO_SURFACE_TYPE_VG
33	SURFACE_TYPE_GL             SurfaceType = C.CAIRO_SURFACE_TYPE_GL
34	SURFACE_TYPE_DRM            SurfaceType = C.CAIRO_SURFACE_TYPE_DRM
35	SURFACE_TYPE_TEE            SurfaceType = C.CAIRO_SURFACE_TYPE_TEE
36	SURFACE_TYPE_XML            SurfaceType = C.CAIRO_SURFACE_TYPE_XML
37	SURFACE_TYPE_SKIA           SurfaceType = C.CAIRO_SURFACE_TYPE_SKIA
38	SURFACE_TYPE_SUBSURFACE     SurfaceType = C.CAIRO_SURFACE_TYPE_SUBSURFACE
39	// SURFACE_TYPE_COGL           SurfaceType = C.CAIRO_SURFACE_TYPE_COGL (since 1.12)
40)
41
42func marshalSurfaceType(p uintptr) (interface{}, error) {
43	c := C.g_value_get_enum((*C.GValue)(unsafe.Pointer(p)))
44	return SurfaceType(c), nil
45}
46