// 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/gdk/pixbuf_since_2_4.go:1:1 // Same copyright and license as the rest of the files in this project // +build !gdk_pixbuf_2_2 package gdk // #cgo pkg-config: gdk-3.0 glib-2.0 gobject-2.0 gmodule-2.0 // #include // #include // #include // #include "gdk.go.h" // #include "pixbuf.go.h" // #include "pixbuf_since_2_4.go.h" import _ "unsafe" import ( "errors" "io" "reflect" "runtime" "strconv" "unsafe" "github.com/gotk3/gotk3/glib" "github.com/gotk3/gotk3/internal/callback" ) // File saving //export goPixbufSaveCallback func goPixbufSaveCallback(buf * /*line :30:32*/_Ctype_gchar /*line :30:39*/, count /*line :30:47*/_Ctype_gsize /*line :30:54*/, gerr ** /*line :30:63*/_Ctype_GError /*line :30:71*/, id /*line :30:76*/_Ctype_gpointer /*line :30:86*/) /*line :30:88*/_Ctype_gboolean /*line :30:98*/ { v := callback.Get(uintptr(id)) if v == nil { func() { _cgo0 := /*line :34:42*/gerr; _cgoCheckPointer(_cgo0, nil); /*line :34:47*/_Cfunc__pixbuf_error_set_callback_not_found(_cgo0); }() return ( /*line :35:10*/_Ciconst_FALSE /*line :35:16*/) } var bytes []byte header := (*reflect.SliceHeader)((unsafe.Pointer(&bytes))) header.Cap = int(count) header.Len = int(count) header.Data = uintptr(unsafe.Pointer(buf)) _, err := v.(io.Writer).Write(bytes) if err != nil { cerr := ( /*line :46:11*/_Cfunc_CString /*line :46:19*/)(err.Error()) defer func() func() { _cgo0 := /*line :47:16*/unsafe.Pointer(cerr); return func() { _cgoCheckPointer(_cgo0, nil); /*line :47:37*/_Cfunc_free(_cgo0); }}()() func() { _cgo0 := /*line :49:23*/gerr; var _cgo1 *_Ctype_char = /*line :49:29*/cerr; _cgoCheckPointer(_cgo0, nil); /*line :49:34*/_Cfunc__pixbuf_error_set(_cgo0, _cgo1); }() return ( /*line :50:10*/_Ciconst_FALSE /*line :50:16*/) } return ( /*line :53:9*/_Ciconst_TRUE /*line :53:14*/) } // WritePNG is a convenience wrapper around gdk_pixbuf_save_to_callback() for // saving images using a streaming callback API. Compression is a number from 0 // to 9. func (v *Pixbuf) WritePNG(w io.Writer, compression int) error { ccompression := ( /*line :60:18*/_Cfunc_CString /*line :60:26*/)(strconv.Itoa(compression)) defer func() func() { _cgo0 := /*line :61:15*/unsafe.Pointer(ccompression); return func() { _cgoCheckPointer(_cgo0, nil); /*line :61:44*/_Cfunc_free(_cgo0); }}()() id := callback.Assign(w) var err * /*line :65:11*/_Ctype_GError /*line :65:19*/ c := func() _Ctype_gboolean{ _cgo0 := /*line :66:37*/v.native(); _cgo1 := _Ctype_gpointer /*line :66:59*/(id); _cgoBase2 := /*line :66:65*/&err; _cgo2 := _cgoBase2; var _cgo3 *_Ctype_char = /*line :66:71*/ccompression; _cgoCheckPointer(_cgo0, nil); _cgoCheckPointer(_cgo1, nil); _cgoCheckPointer(_cgoBase2, 0 == 0); return /*line :66:84*/_Cfunc__gdk_pixbuf_save_png_writer(_cgo0, _cgo1, _cgo2, _cgo3); }() callback.Delete(id) if !gobool(c) { defer func() func() { _cgo0 := /*line :71:24*/err; return func() { _cgoCheckPointer(_cgo0, nil); /*line :71:28*/_Cfunc_g_error_free(_cgo0); }}()() return errors.New(( /*line :72:21*/_Cfunc_GoString /*line :72:30*/)((* /*line :72:34*/_Ctype_char /*line :72:40*/)(err.message))) } return nil } // WriteJPEG is a convenience wrapper around gdk_pixbuf_save_to_callback() for // saving images using a streaming callback API. Quality is a number from 0 to // 100. func (v *Pixbuf) WriteJPEG(w io.Writer, quality int) error { cquality := ( /*line :82:14*/_Cfunc_CString /*line :82:22*/)(strconv.Itoa(quality)) defer func() func() { _cgo0 := /*line :83:15*/unsafe.Pointer(cquality); return func() { _cgoCheckPointer(_cgo0, nil); /*line :83:40*/_Cfunc_free(_cgo0); }}()() id := callback.Assign(w) var err * /*line :87:11*/_Ctype_GError /*line :87:19*/ c := func() _Ctype_gboolean{ _cgo0 := /*line :88:38*/v.native(); _cgo1 := _Ctype_gpointer /*line :88:60*/(id); _cgoBase2 := /*line :88:66*/&err; _cgo2 := _cgoBase2; var _cgo3 *_Ctype_char = /*line :88:72*/cquality; _cgoCheckPointer(_cgo0, nil); _cgoCheckPointer(_cgo1, nil); _cgoCheckPointer(_cgoBase2, 0 == 0); return /*line :88:81*/_Cfunc__gdk_pixbuf_save_jpeg_writer(_cgo0, _cgo1, _cgo2, _cgo3); }() callback.Delete(id) if !gobool(c) { defer func() func() { _cgo0 := /*line :93:24*/err; return func() { _cgoCheckPointer(_cgo0, nil); /*line :93:28*/_Cfunc_g_error_free(_cgo0); }}()() return errors.New(( /*line :94:21*/_Cfunc_GoString /*line :94:30*/)((* /*line :94:34*/_Ctype_char /*line :94:40*/)(err.message))) } return nil } // TODO: // GdkPixbufSaveFunc // gdk_pixbuf_save_to_callback(). // gdk_pixbuf_save_to_callbackv(). // gdk_pixbuf_save_to_buffer(). // gdk_pixbuf_save_to_bufferv(). // File Loading // PixbufNewFromFileAtSize is a wrapper around gdk_pixbuf_new_from_file_at_size(). func PixbufNewFromFileAtSize(filename string, width, height int) (*Pixbuf, error) { cstr := ( /*line :111:10*/_Cfunc_CString /*line :111:18*/)(filename) defer func() func() { _cgo0 := /*line :112:15*/unsafe.Pointer(cstr); return func() { _cgoCheckPointer(_cgo0, nil); /*line :112:36*/_Cfunc_free(_cgo0); }}()() var err * /*line :114:11*/_Ctype_GError /*line :114:19*/ = nil c := func() *_Ctype_struct__GdkPixbuf{ var _cgo0 *_Ctype_char = /*line :115:42*/cstr; var _cgo1 _Ctype_int = _Ctype_int /*line :115:53*/(width); var _cgo2 _Ctype_int = _Ctype_int /*line :115:67*/(height); _cgoBase3 := /*line :115:77*/&err; _cgo3 := _cgoBase3; _cgoCheckPointer(_cgoBase3, 0 == 0); return /*line :115:82*/_Cfunc_gdk_pixbuf_new_from_file_at_size(_cgo0, _cgo1, _cgo2, _cgo3); }() if err != nil { defer func() func() { _cgo0 := /*line :117:24*/err; return func() { _cgoCheckPointer(_cgo0, nil); /*line :117:28*/_Cfunc_g_error_free(_cgo0); }}()() return nil, errors.New(( /*line :118:26*/_Cfunc_GoString /*line :118:35*/)((* /*line :118:39*/_Ctype_char /*line :118:45*/)(err.message))) } if c == nil { return nil, nilPtrErr } obj := &glib.Object{glib.ToGObject(unsafe.Pointer(c))} p := &Pixbuf{obj} //obj.Ref() runtime.SetFinalizer(p, func(_ interface{}) { glib.FinalizerStrategy(obj.Unref) }) return p, nil } // PixbufGetFileInfo is a wrapper around gdk_pixbuf_get_file_info(). func PixbufGetFileInfo(filename string) (*PixbufFormat, int, int, error) { cstr := ( /*line :134:10*/_Cfunc_CString /*line :134:18*/)(filename) defer func() func() { _cgo0 := /*line :135:15*/unsafe.Pointer(cstr); return func() { _cgoCheckPointer(_cgo0, nil); /*line :135:36*/_Cfunc_free(_cgo0); }}()() var cw, ch /*line :136:13*/_Ctype_gint /*line :136:19*/ format := ( /*line :137:12*/_Cfunc_gdk_pixbuf_get_file_info /*line :137:37*/)((* /*line :137:41*/_Ctype_gchar /*line :137:48*/)(cstr), &cw, &ch) if format == nil { return nil, -1, -1, nilPtrErr } // The returned PixbufFormat value is owned by Pixbuf and should not be freed. return wrapPixbufFormat(format), int(cw), int(ch), nil }