// Code generated by cmd/cgo; DO NOT EDIT.

//line /home/josie/.cache/paru/clone/wiiudownloader/src/pkg/mod/github.com/gotk3/gotk3@v0.6.5-0.20240618185848-ff349ae13f56/cairo/format.go:1:1
package cairo

// #include <stdlib.h>
// #include <cairo.h>
// #include <cairo-gobject.h>
import _ "unsafe"
import (
	"unsafe"
)

// Format is a representation of Cairo's cairo_format_t.
type Format int

const (
	FORMAT_INVALID   Format = ( /*line :15:28*/_Ciconst_CAIRO_FORMAT_INVALID /*line :15:49*/)
	FORMAT_ARGB32    Format = ( /*line :16:28*/_Ciconst_CAIRO_FORMAT_ARGB32 /*line :16:48*/)
	FORMAT_RGB24     Format = ( /*line :17:28*/_Ciconst_CAIRO_FORMAT_RGB24 /*line :17:47*/)
	FORMAT_A8        Format = ( /*line :18:28*/_Ciconst_CAIRO_FORMAT_A8 /*line :18:44*/)
	FORMAT_A1        Format = ( /*line :19:28*/_Ciconst_CAIRO_FORMAT_A1 /*line :19:44*/)
	FORMAT_RGB16_565 Format = ( /*line :20:28*/_Ciconst_CAIRO_FORMAT_RGB16_565 /*line :20:51*/)
	FORMAT_RGB30     Format = ( /*line :21:28*/_Ciconst_CAIRO_FORMAT_RGB30 /*line :21:47*/)
)

func marshalFormat(p uintptr) (interface{}, error) {
	c := ( /*line :25:7*/_Cfunc_g_value_get_enum /*line :25:24*/)((* /*line :25:28*/_Ctype_GValue /*line :25:36*/)(unsafe.Pointer(p)))
	return Format(c), nil
}

// FormatStrideForWidth is a wrapper for cairo_format_stride_for_width().
func FormatStrideForWidth(format Format, width int) int {
	c := ( /*line :31:7*/_Cfunc_cairo_format_stride_for_width /*line :31:37*/)( /*line :31:39*/_Ctype_cairo_format_t /*line :31:55*/(format),  /*line :31:65*/_Ctype_int /*line :31:70*/(width))
	return int(c)
}
