linuxexplicitsynchronization_generated.go RawHistoryFolder
1// Code generated by wlbgen; DO NOT EDIT.
2
3// Upstream protocol copyright and license:
4// Copyright 2016 The Chromium Authors.
5// Copyright 2017 Intel Corporation
6// Copyright 2018 Collabora, Ltd
7//
8// Permission is hereby granted, free of charge, to any person obtaining a
9// copy of this software and associated documentation files (the "Software"),
10// to deal in the Software without restriction, including without limitation
11// the rights to use, copy, modify, merge, publish, distribute, sublicense,
12// and/or sell copies of the Software, and to permit persons to whom the
13// Software is furnished to do so, subject to the following conditions:
14//
15// The above copyright notice and this permission notice (including the next
16// paragraph) shall be included in all copies or substantial portions of the
17// Software.
18//
19// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
22// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
24// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25// DEALINGS IN THE SOFTWARE.
26
27package linuxexplicitsynchronization
28
29import (
30 "fmt"
31 wayland "github.com/bnema/go-wayland-bindings/server/wayland"
32 "github.com/bnema/purego-libwayland/server"
33)
34
35var ZwpLinuxExplicitSynchronizationV1Interface *server.Interface
36var ZwpLinuxSurfaceSynchronizationV1Interface *server.Interface
37var ZwpLinuxBufferReleaseV1Interface *server.Interface
38
39func init() {
40 ZwpLinuxExplicitSynchronizationV1Interface = &server.Interface{Name: "zwp_linux_explicit_synchronization_v1", Version: 2}
41 ZwpLinuxSurfaceSynchronizationV1Interface = &server.Interface{Name: "zwp_linux_surface_synchronization_v1", Version: 2}
42 ZwpLinuxBufferReleaseV1Interface = &server.Interface{Name: "zwp_linux_buffer_release_v1", Version: 1}
43 ZwpLinuxExplicitSynchronizationV1Interface.Requests = []server.Message{
44 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
45 {Name: "get_synchronization", Signature: "no", Types: []*server.Interface{ZwpLinuxSurfaceSynchronizationV1Interface, wayland.SurfaceInterface}},
46 }
47 ZwpLinuxExplicitSynchronizationV1Interface.Events = []server.Message{}
48 ZwpLinuxSurfaceSynchronizationV1Interface.Requests = []server.Message{
49 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
50 {Name: "set_acquire_fence", Signature: "h", Types: []*server.Interface{nil}},
51 {Name: "get_release", Signature: "n", Types: []*server.Interface{ZwpLinuxBufferReleaseV1Interface}},
52 }
53 ZwpLinuxSurfaceSynchronizationV1Interface.Events = []server.Message{}
54 ZwpLinuxBufferReleaseV1Interface.Requests = []server.Message{}
55 ZwpLinuxBufferReleaseV1Interface.Events = []server.Message{
56 {Name: "fenced_release", Signature: "h", Types: []*server.Interface{nil}},
57 {Name: "immediate_release", Signature: "", Types: []*server.Interface{}},
58 }
59 if err := server.NewInterfaces(ZwpLinuxExplicitSynchronizationV1Interface, ZwpLinuxSurfaceSynchronizationV1Interface, ZwpLinuxBufferReleaseV1Interface); err != nil {
60 panic(err)
61 }
62}
63
64// ZwpLinuxExplicitSynchronizationV1 protocol for providing explicit synchronization.
65type ZwpLinuxExplicitSynchronizationV1 struct{ *server.Resource }
66
67func WrapZwpLinuxExplicitSynchronizationV1(r *server.Resource) *ZwpLinuxExplicitSynchronizationV1 {
68 if r == nil {
69 return nil
70 }
71 return &ZwpLinuxExplicitSynchronizationV1{r}
72}
73
74const ZwpLinuxExplicitSynchronizationV1RequestDestroy uint32 = 0
75const ZwpLinuxExplicitSynchronizationV1RequestGetSynchronization uint32 = 1
76
77// ZwpLinuxExplicitSynchronizationV1Error .
78type ZwpLinuxExplicitSynchronizationV1Error uint32
79
80const (
81 ZwpLinuxExplicitSynchronizationV1ErrorSynchronizationExists ZwpLinuxExplicitSynchronizationV1Error = 0
82)
83
84// ZwpLinuxExplicitSynchronizationV1Handler handles zwp_linux_explicit_synchronization_v1 requests.
85type ZwpLinuxExplicitSynchronizationV1Handler interface {
86 Destroy(self *ZwpLinuxExplicitSynchronizationV1)
87 GetSynchronization(self *ZwpLinuxExplicitSynchronizationV1, id uint32, surface *wayland.Surface)
88}
89
90func NewZwpLinuxExplicitSynchronizationV1(c server.Client, version int32, id uint32, h ZwpLinuxExplicitSynchronizationV1Handler) (*ZwpLinuxExplicitSynchronizationV1, error) {
91 if h == nil {
92 return nil, fmt.Errorf("purego-libwayland: nil handler for zwp_linux_explicit_synchronization_v1")
93 }
94 var self *ZwpLinuxExplicitSynchronizationV1
95 r, err := c.CreateResource(ZwpLinuxExplicitSynchronizationV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
96 switch opcode {
97 case 0:
98 h.Destroy(self)
99 self.Destroy()
100 case 1:
101 h.GetSynchronization(self, args[0].NewID(), wayland.WrapSurface(args[1].Resource()))
102 }
103 })
104 if err != nil {
105 return nil, err
106 }
107 self = WrapZwpLinuxExplicitSynchronizationV1(r)
108 r.Data = self
109 return self, nil
110}
111func NewZwpLinuxExplicitSynchronizationV1Global(d *server.Display, version int32, bind server.BindFunc) error {
112 return d.CreateGlobal(ZwpLinuxExplicitSynchronizationV1Interface, version, bind)
113}
114
115// ZwpLinuxSurfaceSynchronizationV1 per-surface explicit synchronization support.
116type ZwpLinuxSurfaceSynchronizationV1 struct{ *server.Resource }
117
118func WrapZwpLinuxSurfaceSynchronizationV1(r *server.Resource) *ZwpLinuxSurfaceSynchronizationV1 {
119 if r == nil {
120 return nil
121 }
122 return &ZwpLinuxSurfaceSynchronizationV1{r}
123}
124
125const ZwpLinuxSurfaceSynchronizationV1RequestDestroy uint32 = 0
126const ZwpLinuxSurfaceSynchronizationV1RequestSetAcquireFence uint32 = 1
127const ZwpLinuxSurfaceSynchronizationV1RequestGetRelease uint32 = 2
128
129// ZwpLinuxSurfaceSynchronizationV1Error .
130type ZwpLinuxSurfaceSynchronizationV1Error uint32
131
132const (
133 ZwpLinuxSurfaceSynchronizationV1ErrorInvalidFence ZwpLinuxSurfaceSynchronizationV1Error = 0
134 ZwpLinuxSurfaceSynchronizationV1ErrorDuplicateFence ZwpLinuxSurfaceSynchronizationV1Error = 1
135 ZwpLinuxSurfaceSynchronizationV1ErrorDuplicateRelease ZwpLinuxSurfaceSynchronizationV1Error = 2
136 ZwpLinuxSurfaceSynchronizationV1ErrorNoSurface ZwpLinuxSurfaceSynchronizationV1Error = 3
137 ZwpLinuxSurfaceSynchronizationV1ErrorUnsupportedBuffer ZwpLinuxSurfaceSynchronizationV1Error = 4
138 ZwpLinuxSurfaceSynchronizationV1ErrorNoBuffer ZwpLinuxSurfaceSynchronizationV1Error = 5
139)
140
141// ZwpLinuxSurfaceSynchronizationV1Handler handles zwp_linux_surface_synchronization_v1 requests.
142type ZwpLinuxSurfaceSynchronizationV1Handler interface {
143 Destroy(self *ZwpLinuxSurfaceSynchronizationV1)
144 SetAcquireFence(self *ZwpLinuxSurfaceSynchronizationV1, fd int)
145 GetRelease(self *ZwpLinuxSurfaceSynchronizationV1, release uint32)
146}
147
148func NewZwpLinuxSurfaceSynchronizationV1(c server.Client, version int32, id uint32, h ZwpLinuxSurfaceSynchronizationV1Handler) (*ZwpLinuxSurfaceSynchronizationV1, error) {
149 if h == nil {
150 return nil, fmt.Errorf("purego-libwayland: nil handler for zwp_linux_surface_synchronization_v1")
151 }
152 var self *ZwpLinuxSurfaceSynchronizationV1
153 r, err := c.CreateResource(ZwpLinuxSurfaceSynchronizationV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
154 switch opcode {
155 case 0:
156 h.Destroy(self)
157 self.Destroy()
158 case 1:
159 h.SetAcquireFence(self, args[0].Fd())
160 case 2:
161 h.GetRelease(self, args[0].NewID())
162 }
163 })
164 if err != nil {
165 return nil, err
166 }
167 self = WrapZwpLinuxSurfaceSynchronizationV1(r)
168 r.Data = self
169 return self, nil
170}
171func NewZwpLinuxSurfaceSynchronizationV1Global(d *server.Display, version int32, bind server.BindFunc) error {
172 return d.CreateGlobal(ZwpLinuxSurfaceSynchronizationV1Interface, version, bind)
173}
174
175// ZwpLinuxBufferReleaseV1 buffer release explicit synchronization.
176type ZwpLinuxBufferReleaseV1 struct{ *server.Resource }
177
178func WrapZwpLinuxBufferReleaseV1(r *server.Resource) *ZwpLinuxBufferReleaseV1 {
179 if r == nil {
180 return nil
181 }
182 return &ZwpLinuxBufferReleaseV1{r}
183}
184
185const ZwpLinuxBufferReleaseV1EventFencedRelease uint32 = 0
186const ZwpLinuxBufferReleaseV1EventImmediateRelease uint32 = 1
187
188// ZwpLinuxBufferReleaseV1Handler handles zwp_linux_buffer_release_v1 requests.
189type ZwpLinuxBufferReleaseV1Handler interface {
190}
191
192func NewZwpLinuxBufferReleaseV1(c server.Client, version int32, id uint32, h ZwpLinuxBufferReleaseV1Handler) (*ZwpLinuxBufferReleaseV1, error) {
193 var self *ZwpLinuxBufferReleaseV1
194 r, err := c.CreateResource(ZwpLinuxBufferReleaseV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
195 switch opcode {
196 }
197 })
198 if err != nil {
199 return nil, err
200 }
201 self = WrapZwpLinuxBufferReleaseV1(r)
202 r.Data = self
203 return self, nil
204}
205
206// SendFencedRelease release buffer with fence.
207func (self *ZwpLinuxBufferReleaseV1) SendFencedRelease(fence int) {
208 self.PostEvent(ZwpLinuxBufferReleaseV1EventFencedRelease, server.Fd(fence))
209}
210
211// SendImmediateRelease release buffer immediately.
212func (self *ZwpLinuxBufferReleaseV1) SendImmediateRelease() {
213 self.PostEvent(ZwpLinuxBufferReleaseV1EventImmediateRelease)
214}
215func NewZwpLinuxBufferReleaseV1Global(d *server.Display, version int32, bind server.BindFunc) error {
216 return d.CreateGlobal(ZwpLinuxBufferReleaseV1Interface, version, bind)
217}
218func resourceOf(v interface{ GetResource() *server.Resource }) *server.Resource {
219 if v == nil {
220 return nil
221 }
222 return v.GetResource()
223}
224func (self *ZwpLinuxExplicitSynchronizationV1) GetResource() *server.Resource {
225 if self == nil {
226 return nil
227 }
228 return self.Resource
229}
230func (self *ZwpLinuxSurfaceSynchronizationV1) GetResource() *server.Resource {
231 if self == nil {
232 return nil
233 }
234 return self.Resource
235}
236func (self *ZwpLinuxBufferReleaseV1) GetResource() *server.Resource {
237 if self == nil {
238 return nil
239 }
240 return self.Resource
241}