// Code generated by wlbgen; DO NOT EDIT. // Upstream protocol copyright and license: // Copyright © 2014, 2015 Collabora, Ltd. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice (including the next // paragraph) shall be included in all copies or substantial portions of the // Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. package linuxdmabuf import ( "fmt" wayland "github.com/bnema/go-wayland-bindings/server/wayland" "github.com/bnema/purego-libwayland/server" "runtime" ) var ZwpLinuxDmabufV1Interface *server.Interface var ZwpLinuxBufferParamsV1Interface *server.Interface var ZwpLinuxDmabufFeedbackV1Interface *server.Interface func init() { ZwpLinuxDmabufV1Interface = &server.Interface{Name: "zwp_linux_dmabuf_v1", Version: 6} ZwpLinuxBufferParamsV1Interface = &server.Interface{Name: "zwp_linux_buffer_params_v1", Version: 6} ZwpLinuxDmabufFeedbackV1Interface = &server.Interface{Name: "zwp_linux_dmabuf_feedback_v1", Version: 6} ZwpLinuxDmabufV1Interface.Requests = []server.Message{ {Name: "destroy", Signature: "", Types: []*server.Interface{}}, {Name: "create_params", Signature: "n", Types: []*server.Interface{ZwpLinuxBufferParamsV1Interface}}, {Name: "get_default_feedback", Signature: "4n", Types: []*server.Interface{ZwpLinuxDmabufFeedbackV1Interface}}, {Name: "get_surface_feedback", Signature: "4no", Types: []*server.Interface{ZwpLinuxDmabufFeedbackV1Interface, wayland.SurfaceInterface}}, } ZwpLinuxDmabufV1Interface.Events = []server.Message{ {Name: "format", Signature: "u", Types: []*server.Interface{nil}}, {Name: "modifier", Signature: "3uuu", Types: []*server.Interface{nil, nil, nil}}, } ZwpLinuxBufferParamsV1Interface.Requests = []server.Message{ {Name: "destroy", Signature: "", Types: []*server.Interface{}}, {Name: "add", Signature: "huuuuu", Types: []*server.Interface{nil, nil, nil, nil, nil, nil}}, {Name: "create", Signature: "iiuu", Types: []*server.Interface{nil, nil, nil, nil}}, {Name: "create_immed", Signature: "2niiuu", Types: []*server.Interface{wayland.BufferInterface, nil, nil, nil, nil}}, {Name: "set_sampling_device", Signature: "6a", Types: []*server.Interface{nil}}, } ZwpLinuxBufferParamsV1Interface.Events = []server.Message{ {Name: "created", Signature: "n", Types: []*server.Interface{wayland.BufferInterface}}, {Name: "failed", Signature: "", Types: []*server.Interface{}}, } ZwpLinuxDmabufFeedbackV1Interface.Requests = []server.Message{ {Name: "destroy", Signature: "", Types: []*server.Interface{}}, } ZwpLinuxDmabufFeedbackV1Interface.Events = []server.Message{ {Name: "done", Signature: "", Types: []*server.Interface{}}, {Name: "format_table", Signature: "hu", Types: []*server.Interface{nil, nil}}, {Name: "main_device", Signature: "a", Types: []*server.Interface{nil}}, {Name: "tranche_done", Signature: "", Types: []*server.Interface{}}, {Name: "tranche_target_device", Signature: "a", Types: []*server.Interface{nil}}, {Name: "tranche_formats", Signature: "a", Types: []*server.Interface{nil}}, {Name: "tranche_flags", Signature: "u", Types: []*server.Interface{nil}}, } if err := server.NewInterfaces(ZwpLinuxDmabufV1Interface, ZwpLinuxBufferParamsV1Interface, ZwpLinuxDmabufFeedbackV1Interface); err != nil { panic(err) } } // ZwpLinuxDmabufV1 factory for creating dmabuf-based wl_buffers. type ZwpLinuxDmabufV1 struct{ *server.Resource } func WrapZwpLinuxDmabufV1(r *server.Resource) *ZwpLinuxDmabufV1 { if r == nil { return nil } return &ZwpLinuxDmabufV1{r} } const ZwpLinuxDmabufV1RequestDestroy uint32 = 0 const ZwpLinuxDmabufV1RequestCreateParams uint32 = 1 const ZwpLinuxDmabufV1RequestGetDefaultFeedback uint32 = 2 const ZwpLinuxDmabufV1RequestGetSurfaceFeedback uint32 = 3 const ZwpLinuxDmabufV1EventFormat uint32 = 0 const ZwpLinuxDmabufV1EventModifier uint32 = 1 // ZwpLinuxDmabufV1Handler handles zwp_linux_dmabuf_v1 requests. type ZwpLinuxDmabufV1Handler interface { Destroy(self *ZwpLinuxDmabufV1) CreateParams(self *ZwpLinuxDmabufV1, paramsId uint32) GetDefaultFeedback(self *ZwpLinuxDmabufV1, id uint32) GetSurfaceFeedback(self *ZwpLinuxDmabufV1, id uint32, surface *wayland.Surface) } func NewZwpLinuxDmabufV1(c server.Client, version int32, id uint32, h ZwpLinuxDmabufV1Handler) (*ZwpLinuxDmabufV1, error) { if h == nil { return nil, fmt.Errorf("purego-libwayland: nil handler for zwp_linux_dmabuf_v1") } var self *ZwpLinuxDmabufV1 r, err := c.CreateResource(ZwpLinuxDmabufV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) { switch opcode { case 0: h.Destroy(self) self.Destroy() case 1: h.CreateParams(self, args[0].NewID()) case 2: h.GetDefaultFeedback(self, args[0].NewID()) case 3: h.GetSurfaceFeedback(self, args[0].NewID(), wayland.WrapSurface(args[1].Resource())) } }) if err != nil { return nil, err } self = WrapZwpLinuxDmabufV1(r) r.Data = self return self, nil } // SendFormat supported buffer format. func (self *ZwpLinuxDmabufV1) SendFormat(format uint32) { self.PostEvent(ZwpLinuxDmabufV1EventFormat, server.Uint(format)) } // SendModifier supported buffer format modifier (since version 3). func (self *ZwpLinuxDmabufV1) SendModifier(format uint32, modifierHi uint32, modifierLo uint32) { self.PostEvent(ZwpLinuxDmabufV1EventModifier, server.Uint(format), server.Uint(modifierHi), server.Uint(modifierLo)) } func NewZwpLinuxDmabufV1Global(d *server.Display, version int32, bind server.BindFunc) error { return d.CreateGlobal(ZwpLinuxDmabufV1Interface, version, bind) } // ZwpLinuxBufferParamsV1 parameters for creating a dmabuf-based wl_buffer. type ZwpLinuxBufferParamsV1 struct{ *server.Resource } func WrapZwpLinuxBufferParamsV1(r *server.Resource) *ZwpLinuxBufferParamsV1 { if r == nil { return nil } return &ZwpLinuxBufferParamsV1{r} } const ZwpLinuxBufferParamsV1RequestDestroy uint32 = 0 const ZwpLinuxBufferParamsV1RequestAdd uint32 = 1 const ZwpLinuxBufferParamsV1RequestCreate uint32 = 2 const ZwpLinuxBufferParamsV1RequestCreateImmed uint32 = 3 const ZwpLinuxBufferParamsV1RequestSetSamplingDevice uint32 = 4 const ZwpLinuxBufferParamsV1EventCreated uint32 = 0 const ZwpLinuxBufferParamsV1EventFailed uint32 = 1 // ZwpLinuxBufferParamsV1Error . type ZwpLinuxBufferParamsV1Error uint32 const ( ZwpLinuxBufferParamsV1ErrorAlreadyUsed ZwpLinuxBufferParamsV1Error = 0 ZwpLinuxBufferParamsV1ErrorPlaneIdx ZwpLinuxBufferParamsV1Error = 1 ZwpLinuxBufferParamsV1ErrorPlaneSet ZwpLinuxBufferParamsV1Error = 2 ZwpLinuxBufferParamsV1ErrorIncomplete ZwpLinuxBufferParamsV1Error = 3 ZwpLinuxBufferParamsV1ErrorInvalidFormat ZwpLinuxBufferParamsV1Error = 4 ZwpLinuxBufferParamsV1ErrorInvalidDimensions ZwpLinuxBufferParamsV1Error = 5 ZwpLinuxBufferParamsV1ErrorOutOfBounds ZwpLinuxBufferParamsV1Error = 6 ZwpLinuxBufferParamsV1ErrorInvalidWlBuffer ZwpLinuxBufferParamsV1Error = 7 ZwpLinuxBufferParamsV1ErrorInvalidDevTSize ZwpLinuxBufferParamsV1Error = 8 ) // ZwpLinuxBufferParamsV1Flags (bitfield). type ZwpLinuxBufferParamsV1Flags uint32 const ( ZwpLinuxBufferParamsV1FlagsYInvert ZwpLinuxBufferParamsV1Flags = 1 ZwpLinuxBufferParamsV1FlagsInterlaced ZwpLinuxBufferParamsV1Flags = 2 ZwpLinuxBufferParamsV1FlagsBottomFirst ZwpLinuxBufferParamsV1Flags = 4 ) // ZwpLinuxBufferParamsV1Handler handles zwp_linux_buffer_params_v1 requests. type ZwpLinuxBufferParamsV1Handler interface { Destroy(self *ZwpLinuxBufferParamsV1) Add(self *ZwpLinuxBufferParamsV1, fd int, planeIdx uint32, offset uint32, stride uint32, modifierHi uint32, modifierLo uint32) Create(self *ZwpLinuxBufferParamsV1, width int32, height int32, format uint32, flags uint32) CreateImmed(self *ZwpLinuxBufferParamsV1, bufferId uint32, width int32, height int32, format uint32, flags uint32) SetSamplingDevice(self *ZwpLinuxBufferParamsV1, device []byte) } func NewZwpLinuxBufferParamsV1(c server.Client, version int32, id uint32, h ZwpLinuxBufferParamsV1Handler) (*ZwpLinuxBufferParamsV1, error) { if h == nil { return nil, fmt.Errorf("purego-libwayland: nil handler for zwp_linux_buffer_params_v1") } var self *ZwpLinuxBufferParamsV1 r, err := c.CreateResource(ZwpLinuxBufferParamsV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) { switch opcode { case 0: h.Destroy(self) self.Destroy() case 1: h.Add(self, args[0].Fd(), args[1].Uint(), args[2].Uint(), args[3].Uint(), args[4].Uint(), args[5].Uint()) case 2: h.Create(self, args[0].Int(), args[1].Int(), args[2].Uint(), args[3].Uint()) case 3: h.CreateImmed(self, args[0].NewID(), args[1].Int(), args[2].Int(), args[3].Uint(), args[4].Uint()) case 4: h.SetSamplingDevice(self, args[0].Array()) } }) if err != nil { return nil, err } self = WrapZwpLinuxBufferParamsV1(r) r.Data = self return self, nil } // SendCreated buffer creation succeeded. func (self *ZwpLinuxBufferParamsV1) SendCreated(buffer *wayland.Buffer) { self.PostEvent(ZwpLinuxBufferParamsV1EventCreated, server.NewID(resourceOf(buffer))) } // SendFailed buffer creation failed. func (self *ZwpLinuxBufferParamsV1) SendFailed() { self.PostEvent(ZwpLinuxBufferParamsV1EventFailed) } func NewZwpLinuxBufferParamsV1Global(d *server.Display, version int32, bind server.BindFunc) error { return d.CreateGlobal(ZwpLinuxBufferParamsV1Interface, version, bind) } // ZwpLinuxDmabufFeedbackV1 dmabuf feedback. type ZwpLinuxDmabufFeedbackV1 struct{ *server.Resource } func WrapZwpLinuxDmabufFeedbackV1(r *server.Resource) *ZwpLinuxDmabufFeedbackV1 { if r == nil { return nil } return &ZwpLinuxDmabufFeedbackV1{r} } const ZwpLinuxDmabufFeedbackV1RequestDestroy uint32 = 0 const ZwpLinuxDmabufFeedbackV1EventDone uint32 = 0 const ZwpLinuxDmabufFeedbackV1EventFormatTable uint32 = 1 const ZwpLinuxDmabufFeedbackV1EventMainDevice uint32 = 2 const ZwpLinuxDmabufFeedbackV1EventTrancheDone uint32 = 3 const ZwpLinuxDmabufFeedbackV1EventTrancheTargetDevice uint32 = 4 const ZwpLinuxDmabufFeedbackV1EventTrancheFormats uint32 = 5 const ZwpLinuxDmabufFeedbackV1EventTrancheFlags uint32 = 6 // ZwpLinuxDmabufFeedbackV1TrancheFlags (bitfield). type ZwpLinuxDmabufFeedbackV1TrancheFlags uint32 const ( ZwpLinuxDmabufFeedbackV1TrancheFlagsScanout ZwpLinuxDmabufFeedbackV1TrancheFlags = 1 ZwpLinuxDmabufFeedbackV1TrancheFlagsSampling ZwpLinuxDmabufFeedbackV1TrancheFlags = 2 ) // ZwpLinuxDmabufFeedbackV1Handler handles zwp_linux_dmabuf_feedback_v1 requests. type ZwpLinuxDmabufFeedbackV1Handler interface { Destroy(self *ZwpLinuxDmabufFeedbackV1) } func NewZwpLinuxDmabufFeedbackV1(c server.Client, version int32, id uint32, h ZwpLinuxDmabufFeedbackV1Handler) (*ZwpLinuxDmabufFeedbackV1, error) { if h == nil { return nil, fmt.Errorf("purego-libwayland: nil handler for zwp_linux_dmabuf_feedback_v1") } var self *ZwpLinuxDmabufFeedbackV1 r, err := c.CreateResource(ZwpLinuxDmabufFeedbackV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) { switch opcode { case 0: h.Destroy(self) self.Destroy() } }) if err != nil { return nil, err } self = WrapZwpLinuxDmabufFeedbackV1(r) r.Data = self return self, nil } // SendDone all feedback has been sent. func (self *ZwpLinuxDmabufFeedbackV1) SendDone() { self.PostEvent(ZwpLinuxDmabufFeedbackV1EventDone) } // SendFormatTable format and modifier table. func (self *ZwpLinuxDmabufFeedbackV1) SendFormatTable(fd int, size uint32) { self.PostEvent(ZwpLinuxDmabufFeedbackV1EventFormatTable, server.Fd(fd), server.Uint(size)) } // SendMainDevice preferred main device. func (self *ZwpLinuxDmabufFeedbackV1) SendMainDevice(device []byte) { var p runtime.Pinner defer p.Unpin() self.PostEvent(ZwpLinuxDmabufFeedbackV1EventMainDevice, server.Array(&p, device)) } // SendTrancheDone a preference tranche has been sent. func (self *ZwpLinuxDmabufFeedbackV1) SendTrancheDone() { self.PostEvent(ZwpLinuxDmabufFeedbackV1EventTrancheDone) } // SendTrancheTargetDevice target device. func (self *ZwpLinuxDmabufFeedbackV1) SendTrancheTargetDevice(device []byte) { var p runtime.Pinner defer p.Unpin() self.PostEvent(ZwpLinuxDmabufFeedbackV1EventTrancheTargetDevice, server.Array(&p, device)) } // SendTrancheFormats supported buffer format modifiers. func (self *ZwpLinuxDmabufFeedbackV1) SendTrancheFormats(indices []byte) { var p runtime.Pinner defer p.Unpin() self.PostEvent(ZwpLinuxDmabufFeedbackV1EventTrancheFormats, server.Array(&p, indices)) } // SendTrancheFlags tranche flags. func (self *ZwpLinuxDmabufFeedbackV1) SendTrancheFlags(flags uint32) { self.PostEvent(ZwpLinuxDmabufFeedbackV1EventTrancheFlags, server.Uint(flags)) } func NewZwpLinuxDmabufFeedbackV1Global(d *server.Display, version int32, bind server.BindFunc) error { return d.CreateGlobal(ZwpLinuxDmabufFeedbackV1Interface, version, bind) } func resourceOf(v interface{ GetResource() *server.Resource }) *server.Resource { if v == nil { return nil } return v.GetResource() } func (self *ZwpLinuxDmabufV1) GetResource() *server.Resource { if self == nil { return nil } return self.Resource } func (self *ZwpLinuxBufferParamsV1) GetResource() *server.Resource { if self == nil { return nil } return self.Resource } func (self *ZwpLinuxDmabufFeedbackV1) GetResource() *server.Resource { if self == nil { return nil } return self.Resource }