1
2 package glx
3
4
5
6 import (
7 "github.com/jezek/xgb"
8
9 "github.com/jezek/xgb/xproto"
10 )
11
12
13 func Init(c *xgb.Conn) error {
14 reply, err := xproto.QueryExtension(c, 3, "GLX").Reply()
15 switch {
16 case err != nil:
17 return err
18 case !reply.Present:
19 return xgb.Errorf("No extension named GLX could be found on on the server.")
20 }
21
22 c.ExtLock.Lock()
23 c.Extensions["GLX"] = reply.MajorOpcode
24 c.ExtLock.Unlock()
25 for evNum, fun := range xgb.NewExtEventFuncs["GLX"] {
26 xgb.NewEventFuncs[int(reply.FirstEvent)+evNum] = fun
27 }
28 for errNum, fun := range xgb.NewExtErrorFuncs["GLX"] {
29 xgb.NewErrorFuncs[int(reply.FirstError)+errNum] = fun
30 }
31 return nil
32 }
33
34 func init() {
35 xgb.NewExtEventFuncs["GLX"] = make(map[int]xgb.NewEventFun)
36 xgb.NewExtErrorFuncs["GLX"] = make(map[int]xgb.NewErrorFun)
37 }
38
39
40 const BadBadContext = 0
41
42 type BadContextError GenericError
43
44
45 func BadContextErrorNew(buf []byte) xgb.Error {
46 v := BadContextError(GenericErrorNew(buf).(GenericError))
47 v.NiceName = "BadContext"
48 return v
49 }
50
51
52
53 func (err BadContextError) SequenceId() uint16 {
54 return err.Sequence
55 }
56
57
58 func (err BadContextError) BadId() uint32 {
59 return 0
60 }
61
62
63 func (err BadContextError) Error() string {
64 fieldVals := make([]string, 0, 4)
65 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
66 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
67 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
68 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
69 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
70 return "BadBadContext {" + xgb.StringsJoin(fieldVals, ", ") + "}"
71 }
72
73 func init() {
74 xgb.NewExtErrorFuncs["GLX"][0] = BadContextErrorNew
75 }
76
77
78 const BadBadContextState = 1
79
80 type BadContextStateError GenericError
81
82
83 func BadContextStateErrorNew(buf []byte) xgb.Error {
84 v := BadContextStateError(GenericErrorNew(buf).(GenericError))
85 v.NiceName = "BadContextState"
86 return v
87 }
88
89
90
91 func (err BadContextStateError) SequenceId() uint16 {
92 return err.Sequence
93 }
94
95
96 func (err BadContextStateError) BadId() uint32 {
97 return 0
98 }
99
100
101 func (err BadContextStateError) Error() string {
102 fieldVals := make([]string, 0, 4)
103 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
104 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
105 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
106 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
107 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
108 return "BadBadContextState {" + xgb.StringsJoin(fieldVals, ", ") + "}"
109 }
110
111 func init() {
112 xgb.NewExtErrorFuncs["GLX"][1] = BadContextStateErrorNew
113 }
114
115
116 const BadBadContextTag = 4
117
118 type BadContextTagError GenericError
119
120
121 func BadContextTagErrorNew(buf []byte) xgb.Error {
122 v := BadContextTagError(GenericErrorNew(buf).(GenericError))
123 v.NiceName = "BadContextTag"
124 return v
125 }
126
127
128
129 func (err BadContextTagError) SequenceId() uint16 {
130 return err.Sequence
131 }
132
133
134 func (err BadContextTagError) BadId() uint32 {
135 return 0
136 }
137
138
139 func (err BadContextTagError) Error() string {
140 fieldVals := make([]string, 0, 4)
141 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
142 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
143 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
144 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
145 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
146 return "BadBadContextTag {" + xgb.StringsJoin(fieldVals, ", ") + "}"
147 }
148
149 func init() {
150 xgb.NewExtErrorFuncs["GLX"][4] = BadContextTagErrorNew
151 }
152
153
154 const BadBadCurrentDrawable = 11
155
156 type BadCurrentDrawableError GenericError
157
158
159 func BadCurrentDrawableErrorNew(buf []byte) xgb.Error {
160 v := BadCurrentDrawableError(GenericErrorNew(buf).(GenericError))
161 v.NiceName = "BadCurrentDrawable"
162 return v
163 }
164
165
166
167 func (err BadCurrentDrawableError) SequenceId() uint16 {
168 return err.Sequence
169 }
170
171
172 func (err BadCurrentDrawableError) BadId() uint32 {
173 return 0
174 }
175
176
177 func (err BadCurrentDrawableError) Error() string {
178 fieldVals := make([]string, 0, 4)
179 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
180 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
181 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
182 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
183 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
184 return "BadBadCurrentDrawable {" + xgb.StringsJoin(fieldVals, ", ") + "}"
185 }
186
187 func init() {
188 xgb.NewExtErrorFuncs["GLX"][11] = BadCurrentDrawableErrorNew
189 }
190
191
192 const BadBadCurrentWindow = 5
193
194 type BadCurrentWindowError GenericError
195
196
197 func BadCurrentWindowErrorNew(buf []byte) xgb.Error {
198 v := BadCurrentWindowError(GenericErrorNew(buf).(GenericError))
199 v.NiceName = "BadCurrentWindow"
200 return v
201 }
202
203
204
205 func (err BadCurrentWindowError) SequenceId() uint16 {
206 return err.Sequence
207 }
208
209
210 func (err BadCurrentWindowError) BadId() uint32 {
211 return 0
212 }
213
214
215 func (err BadCurrentWindowError) Error() string {
216 fieldVals := make([]string, 0, 4)
217 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
218 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
219 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
220 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
221 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
222 return "BadBadCurrentWindow {" + xgb.StringsJoin(fieldVals, ", ") + "}"
223 }
224
225 func init() {
226 xgb.NewExtErrorFuncs["GLX"][5] = BadCurrentWindowErrorNew
227 }
228
229
230 const BadBadDrawable = 2
231
232 type BadDrawableError GenericError
233
234
235 func BadDrawableErrorNew(buf []byte) xgb.Error {
236 v := BadDrawableError(GenericErrorNew(buf).(GenericError))
237 v.NiceName = "BadDrawable"
238 return v
239 }
240
241
242
243 func (err BadDrawableError) SequenceId() uint16 {
244 return err.Sequence
245 }
246
247
248 func (err BadDrawableError) BadId() uint32 {
249 return 0
250 }
251
252
253 func (err BadDrawableError) Error() string {
254 fieldVals := make([]string, 0, 4)
255 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
256 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
257 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
258 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
259 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
260 return "BadBadDrawable {" + xgb.StringsJoin(fieldVals, ", ") + "}"
261 }
262
263 func init() {
264 xgb.NewExtErrorFuncs["GLX"][2] = BadDrawableErrorNew
265 }
266
267
268 const BadBadFBConfig = 9
269
270 type BadFBConfigError GenericError
271
272
273 func BadFBConfigErrorNew(buf []byte) xgb.Error {
274 v := BadFBConfigError(GenericErrorNew(buf).(GenericError))
275 v.NiceName = "BadFBConfig"
276 return v
277 }
278
279
280
281 func (err BadFBConfigError) SequenceId() uint16 {
282 return err.Sequence
283 }
284
285
286 func (err BadFBConfigError) BadId() uint32 {
287 return 0
288 }
289
290
291 func (err BadFBConfigError) Error() string {
292 fieldVals := make([]string, 0, 4)
293 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
294 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
295 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
296 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
297 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
298 return "BadBadFBConfig {" + xgb.StringsJoin(fieldVals, ", ") + "}"
299 }
300
301 func init() {
302 xgb.NewExtErrorFuncs["GLX"][9] = BadFBConfigErrorNew
303 }
304
305
306 const BadBadLargeRequest = 7
307
308 type BadLargeRequestError GenericError
309
310
311 func BadLargeRequestErrorNew(buf []byte) xgb.Error {
312 v := BadLargeRequestError(GenericErrorNew(buf).(GenericError))
313 v.NiceName = "BadLargeRequest"
314 return v
315 }
316
317
318
319 func (err BadLargeRequestError) SequenceId() uint16 {
320 return err.Sequence
321 }
322
323
324 func (err BadLargeRequestError) BadId() uint32 {
325 return 0
326 }
327
328
329 func (err BadLargeRequestError) Error() string {
330 fieldVals := make([]string, 0, 4)
331 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
332 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
333 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
334 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
335 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
336 return "BadBadLargeRequest {" + xgb.StringsJoin(fieldVals, ", ") + "}"
337 }
338
339 func init() {
340 xgb.NewExtErrorFuncs["GLX"][7] = BadLargeRequestErrorNew
341 }
342
343
344 const BadBadPbuffer = 10
345
346 type BadPbufferError GenericError
347
348
349 func BadPbufferErrorNew(buf []byte) xgb.Error {
350 v := BadPbufferError(GenericErrorNew(buf).(GenericError))
351 v.NiceName = "BadPbuffer"
352 return v
353 }
354
355
356
357 func (err BadPbufferError) SequenceId() uint16 {
358 return err.Sequence
359 }
360
361
362 func (err BadPbufferError) BadId() uint32 {
363 return 0
364 }
365
366
367 func (err BadPbufferError) Error() string {
368 fieldVals := make([]string, 0, 4)
369 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
370 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
371 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
372 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
373 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
374 return "BadBadPbuffer {" + xgb.StringsJoin(fieldVals, ", ") + "}"
375 }
376
377 func init() {
378 xgb.NewExtErrorFuncs["GLX"][10] = BadPbufferErrorNew
379 }
380
381
382 const BadBadPixmap = 3
383
384 type BadPixmapError GenericError
385
386
387 func BadPixmapErrorNew(buf []byte) xgb.Error {
388 v := BadPixmapError(GenericErrorNew(buf).(GenericError))
389 v.NiceName = "BadPixmap"
390 return v
391 }
392
393
394
395 func (err BadPixmapError) SequenceId() uint16 {
396 return err.Sequence
397 }
398
399
400 func (err BadPixmapError) BadId() uint32 {
401 return 0
402 }
403
404
405 func (err BadPixmapError) Error() string {
406 fieldVals := make([]string, 0, 4)
407 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
408 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
409 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
410 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
411 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
412 return "BadBadPixmap {" + xgb.StringsJoin(fieldVals, ", ") + "}"
413 }
414
415 func init() {
416 xgb.NewExtErrorFuncs["GLX"][3] = BadPixmapErrorNew
417 }
418
419
420 const BadBadRenderRequest = 6
421
422 type BadRenderRequestError GenericError
423
424
425 func BadRenderRequestErrorNew(buf []byte) xgb.Error {
426 v := BadRenderRequestError(GenericErrorNew(buf).(GenericError))
427 v.NiceName = "BadRenderRequest"
428 return v
429 }
430
431
432
433 func (err BadRenderRequestError) SequenceId() uint16 {
434 return err.Sequence
435 }
436
437
438 func (err BadRenderRequestError) BadId() uint32 {
439 return 0
440 }
441
442
443 func (err BadRenderRequestError) Error() string {
444 fieldVals := make([]string, 0, 4)
445 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
446 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
447 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
448 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
449 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
450 return "BadBadRenderRequest {" + xgb.StringsJoin(fieldVals, ", ") + "}"
451 }
452
453 func init() {
454 xgb.NewExtErrorFuncs["GLX"][6] = BadRenderRequestErrorNew
455 }
456
457
458 const BadBadWindow = 12
459
460 type BadWindowError GenericError
461
462
463 func BadWindowErrorNew(buf []byte) xgb.Error {
464 v := BadWindowError(GenericErrorNew(buf).(GenericError))
465 v.NiceName = "BadWindow"
466 return v
467 }
468
469
470
471 func (err BadWindowError) SequenceId() uint16 {
472 return err.Sequence
473 }
474
475
476 func (err BadWindowError) BadId() uint32 {
477 return 0
478 }
479
480
481 func (err BadWindowError) Error() string {
482 fieldVals := make([]string, 0, 4)
483 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
484 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
485 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
486 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
487 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
488 return "BadBadWindow {" + xgb.StringsJoin(fieldVals, ", ") + "}"
489 }
490
491 func init() {
492 xgb.NewExtErrorFuncs["GLX"][12] = BadWindowErrorNew
493 }
494
495 type Bool32 uint32
496
497
498 const BufferSwapComplete = 1
499
500 type BufferSwapCompleteEvent struct {
501 Sequence uint16
502
503 EventType uint16
504
505 Drawable Drawable
506 UstHi uint32
507 UstLo uint32
508 MscHi uint32
509 MscLo uint32
510 Sbc uint32
511 }
512
513
514 func BufferSwapCompleteEventNew(buf []byte) xgb.Event {
515 v := BufferSwapCompleteEvent{}
516 b := 1
517
518 b += 1
519
520 v.Sequence = xgb.Get16(buf[b:])
521 b += 2
522
523 v.EventType = xgb.Get16(buf[b:])
524 b += 2
525
526 b += 2
527
528 v.Drawable = Drawable(xgb.Get32(buf[b:]))
529 b += 4
530
531 v.UstHi = xgb.Get32(buf[b:])
532 b += 4
533
534 v.UstLo = xgb.Get32(buf[b:])
535 b += 4
536
537 v.MscHi = xgb.Get32(buf[b:])
538 b += 4
539
540 v.MscLo = xgb.Get32(buf[b:])
541 b += 4
542
543 v.Sbc = xgb.Get32(buf[b:])
544 b += 4
545
546 return v
547 }
548
549
550 func (v BufferSwapCompleteEvent) Bytes() []byte {
551 buf := make([]byte, 32)
552 b := 0
553
554
555 buf[b] = 1
556 b += 1
557
558 b += 1
559
560 b += 2
561
562 xgb.Put16(buf[b:], v.EventType)
563 b += 2
564
565 b += 2
566
567 xgb.Put32(buf[b:], uint32(v.Drawable))
568 b += 4
569
570 xgb.Put32(buf[b:], v.UstHi)
571 b += 4
572
573 xgb.Put32(buf[b:], v.UstLo)
574 b += 4
575
576 xgb.Put32(buf[b:], v.MscHi)
577 b += 4
578
579 xgb.Put32(buf[b:], v.MscLo)
580 b += 4
581
582 xgb.Put32(buf[b:], v.Sbc)
583 b += 4
584
585 return buf
586 }
587
588
589
590
591 func (v BufferSwapCompleteEvent) SequenceId() uint16 {
592 return v.Sequence
593 }
594
595
596 func (v BufferSwapCompleteEvent) String() string {
597 fieldVals := make([]string, 0, 9)
598 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
599 fieldVals = append(fieldVals, xgb.Sprintf("EventType: %d", v.EventType))
600 fieldVals = append(fieldVals, xgb.Sprintf("Drawable: %d", v.Drawable))
601 fieldVals = append(fieldVals, xgb.Sprintf("UstHi: %d", v.UstHi))
602 fieldVals = append(fieldVals, xgb.Sprintf("UstLo: %d", v.UstLo))
603 fieldVals = append(fieldVals, xgb.Sprintf("MscHi: %d", v.MscHi))
604 fieldVals = append(fieldVals, xgb.Sprintf("MscLo: %d", v.MscLo))
605 fieldVals = append(fieldVals, xgb.Sprintf("Sbc: %d", v.Sbc))
606 return "BufferSwapComplete {" + xgb.StringsJoin(fieldVals, ", ") + "}"
607 }
608
609 func init() {
610 xgb.NewExtEventFuncs["GLX"][1] = BufferSwapCompleteEventNew
611 }
612
613 type Context uint32
614
615 func NewContextId(c *xgb.Conn) (Context, error) {
616 id, err := c.NewId()
617 if err != nil {
618 return 0, err
619 }
620 return Context(id), nil
621 }
622
623 type ContextTag uint32
624
625 type Drawable uint32
626
627 func NewDrawableId(c *xgb.Conn) (Drawable, error) {
628 id, err := c.NewId()
629 if err != nil {
630 return 0, err
631 }
632 return Drawable(id), nil
633 }
634
635 type Fbconfig uint32
636
637 func NewFbconfigId(c *xgb.Conn) (Fbconfig, error) {
638 id, err := c.NewId()
639 if err != nil {
640 return 0, err
641 }
642 return Fbconfig(id), nil
643 }
644
645 type Float32 float64
646
647 type Float64 float64
648
649
650 const BadGLXBadProfileARB = 13
651
652 type GLXBadProfileARBError GenericError
653
654
655 func GLXBadProfileARBErrorNew(buf []byte) xgb.Error {
656 v := GLXBadProfileARBError(GenericErrorNew(buf).(GenericError))
657 v.NiceName = "GLXBadProfileARB"
658 return v
659 }
660
661
662
663 func (err GLXBadProfileARBError) SequenceId() uint16 {
664 return err.Sequence
665 }
666
667
668 func (err GLXBadProfileARBError) BadId() uint32 {
669 return 0
670 }
671
672
673 func (err GLXBadProfileARBError) Error() string {
674 fieldVals := make([]string, 0, 4)
675 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
676 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
677 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
678 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
679 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
680 return "BadGLXBadProfileARB {" + xgb.StringsJoin(fieldVals, ", ") + "}"
681 }
682
683 func init() {
684 xgb.NewExtErrorFuncs["GLX"][13] = GLXBadProfileARBErrorNew
685 }
686
687 const (
688 GcGlCurrentBit = 1
689 GcGlPointBit = 2
690 GcGlLineBit = 4
691 GcGlPolygonBit = 8
692 GcGlPolygonStippleBit = 16
693 GcGlPixelModeBit = 32
694 GcGlLightingBit = 64
695 GcGlFogBit = 128
696 GcGlDepthBufferBit = 256
697 GcGlAccumBufferBit = 512
698 GcGlStencilBufferBit = 1024
699 GcGlViewportBit = 2048
700 GcGlTransformBit = 4096
701 GcGlEnableBit = 8192
702 GcGlColorBufferBit = 16384
703 GcGlHintBit = 32768
704 GcGlEvalBit = 65536
705 GcGlListBit = 131072
706 GcGlTextureBit = 262144
707 GcGlScissorBit = 524288
708 GcGlAllAttribBits = 16777215
709 )
710
711
712 const BadGeneric = -1
713
714 type GenericError struct {
715 Sequence uint16
716 NiceName string
717 BadValue uint32
718 MinorOpcode uint16
719 MajorOpcode byte
720
721 }
722
723
724 func GenericErrorNew(buf []byte) xgb.Error {
725 v := GenericError{}
726 v.NiceName = "Generic"
727
728 b := 1
729 b += 1
730
731 v.Sequence = xgb.Get16(buf[b:])
732 b += 2
733
734 v.BadValue = xgb.Get32(buf[b:])
735 b += 4
736
737 v.MinorOpcode = xgb.Get16(buf[b:])
738 b += 2
739
740 v.MajorOpcode = buf[b]
741 b += 1
742
743 b += 21
744
745 return v
746 }
747
748
749
750 func (err GenericError) SequenceId() uint16 {
751 return err.Sequence
752 }
753
754
755 func (err GenericError) BadId() uint32 {
756 return 0
757 }
758
759
760
761 func (err GenericError) Error() string {
762 fieldVals := make([]string, 0, 4)
763 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
764 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
765 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
766 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
767 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
768 return "BadGeneric {" + xgb.StringsJoin(fieldVals, ", ") + "}"
769 }
770
771 func init() {
772 xgb.NewExtErrorFuncs["GLX"][-1] = GenericErrorNew
773 }
774
775 const (
776 PbcdtWindow = 32793
777 PbcdtPbuffer = 32794
778 )
779
780 const (
781 PbcetDamaged = 32791
782 PbcetSaved = 32792
783 )
784
785 type Pbuffer uint32
786
787 func NewPbufferId(c *xgb.Conn) (Pbuffer, error) {
788 id, err := c.NewId()
789 if err != nil {
790 return 0, err
791 }
792 return Pbuffer(id), nil
793 }
794
795
796 const PbufferClobber = 0
797
798 type PbufferClobberEvent struct {
799 Sequence uint16
800
801 EventType uint16
802 DrawType uint16
803 Drawable Drawable
804 BMask uint32
805 AuxBuffer uint16
806 X uint16
807 Y uint16
808 Width uint16
809 Height uint16
810 Count uint16
811
812 }
813
814
815 func PbufferClobberEventNew(buf []byte) xgb.Event {
816 v := PbufferClobberEvent{}
817 b := 1
818
819 b += 1
820
821 v.Sequence = xgb.Get16(buf[b:])
822 b += 2
823
824 v.EventType = xgb.Get16(buf[b:])
825 b += 2
826
827 v.DrawType = xgb.Get16(buf[b:])
828 b += 2
829
830 v.Drawable = Drawable(xgb.Get32(buf[b:]))
831 b += 4
832
833 v.BMask = xgb.Get32(buf[b:])
834 b += 4
835
836 v.AuxBuffer = xgb.Get16(buf[b:])
837 b += 2
838
839 v.X = xgb.Get16(buf[b:])
840 b += 2
841
842 v.Y = xgb.Get16(buf[b:])
843 b += 2
844
845 v.Width = xgb.Get16(buf[b:])
846 b += 2
847
848 v.Height = xgb.Get16(buf[b:])
849 b += 2
850
851 v.Count = xgb.Get16(buf[b:])
852 b += 2
853
854 b += 4
855
856 return v
857 }
858
859
860 func (v PbufferClobberEvent) Bytes() []byte {
861 buf := make([]byte, 32)
862 b := 0
863
864
865 buf[b] = 0
866 b += 1
867
868 b += 1
869
870 b += 2
871
872 xgb.Put16(buf[b:], v.EventType)
873 b += 2
874
875 xgb.Put16(buf[b:], v.DrawType)
876 b += 2
877
878 xgb.Put32(buf[b:], uint32(v.Drawable))
879 b += 4
880
881 xgb.Put32(buf[b:], v.BMask)
882 b += 4
883
884 xgb.Put16(buf[b:], v.AuxBuffer)
885 b += 2
886
887 xgb.Put16(buf[b:], v.X)
888 b += 2
889
890 xgb.Put16(buf[b:], v.Y)
891 b += 2
892
893 xgb.Put16(buf[b:], v.Width)
894 b += 2
895
896 xgb.Put16(buf[b:], v.Height)
897 b += 2
898
899 xgb.Put16(buf[b:], v.Count)
900 b += 2
901
902 b += 4
903
904 return buf
905 }
906
907
908
909
910 func (v PbufferClobberEvent) SequenceId() uint16 {
911 return v.Sequence
912 }
913
914
915 func (v PbufferClobberEvent) String() string {
916 fieldVals := make([]string, 0, 12)
917 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", v.Sequence))
918 fieldVals = append(fieldVals, xgb.Sprintf("EventType: %d", v.EventType))
919 fieldVals = append(fieldVals, xgb.Sprintf("DrawType: %d", v.DrawType))
920 fieldVals = append(fieldVals, xgb.Sprintf("Drawable: %d", v.Drawable))
921 fieldVals = append(fieldVals, xgb.Sprintf("BMask: %d", v.BMask))
922 fieldVals = append(fieldVals, xgb.Sprintf("AuxBuffer: %d", v.AuxBuffer))
923 fieldVals = append(fieldVals, xgb.Sprintf("X: %d", v.X))
924 fieldVals = append(fieldVals, xgb.Sprintf("Y: %d", v.Y))
925 fieldVals = append(fieldVals, xgb.Sprintf("Width: %d", v.Width))
926 fieldVals = append(fieldVals, xgb.Sprintf("Height: %d", v.Height))
927 fieldVals = append(fieldVals, xgb.Sprintf("Count: %d", v.Count))
928 return "PbufferClobber {" + xgb.StringsJoin(fieldVals, ", ") + "}"
929 }
930
931 func init() {
932 xgb.NewExtEventFuncs["GLX"][0] = PbufferClobberEventNew
933 }
934
935 type Pixmap uint32
936
937 func NewPixmapId(c *xgb.Conn) (Pixmap, error) {
938 id, err := c.NewId()
939 if err != nil {
940 return 0, err
941 }
942 return Pixmap(id), nil
943 }
944
945 const (
946 RmGlRender = 7168
947 RmGlFeedback = 7169
948 RmGlSelect = 7170
949 )
950
951
952 const BadUnsupportedPrivateRequest = 8
953
954 type UnsupportedPrivateRequestError GenericError
955
956
957 func UnsupportedPrivateRequestErrorNew(buf []byte) xgb.Error {
958 v := UnsupportedPrivateRequestError(GenericErrorNew(buf).(GenericError))
959 v.NiceName = "UnsupportedPrivateRequest"
960 return v
961 }
962
963
964
965 func (err UnsupportedPrivateRequestError) SequenceId() uint16 {
966 return err.Sequence
967 }
968
969
970 func (err UnsupportedPrivateRequestError) BadId() uint32 {
971 return 0
972 }
973
974
975 func (err UnsupportedPrivateRequestError) Error() string {
976 fieldVals := make([]string, 0, 4)
977 fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
978 fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
979 fieldVals = append(fieldVals, xgb.Sprintf("BadValue: %d", err.BadValue))
980 fieldVals = append(fieldVals, xgb.Sprintf("MinorOpcode: %d", err.MinorOpcode))
981 fieldVals = append(fieldVals, xgb.Sprintf("MajorOpcode: %d", err.MajorOpcode))
982 return "BadUnsupportedPrivateRequest {" + xgb.StringsJoin(fieldVals, ", ") + "}"
983 }
984
985 func init() {
986 xgb.NewExtErrorFuncs["GLX"][8] = UnsupportedPrivateRequestErrorNew
987 }
988
989 type Window uint32
990
991 func NewWindowId(c *xgb.Conn) (Window, error) {
992 id, err := c.NewId()
993 if err != nil {
994 return 0, err
995 }
996 return Window(id), nil
997 }
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024 type AreTexturesResidentCookie struct {
1025 *xgb.Cookie
1026 }
1027
1028
1029
1030 func AreTexturesResident(c *xgb.Conn, ContextTag ContextTag, N int32, Textures []uint32) AreTexturesResidentCookie {
1031 c.ExtLock.RLock()
1032 defer c.ExtLock.RUnlock()
1033 if _, ok := c.Extensions["GLX"]; !ok {
1034 panic("Cannot issue request 'AreTexturesResident' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1035 }
1036 cookie := c.NewCookie(true, true)
1037 c.NewRequest(areTexturesResidentRequest(c, ContextTag, N, Textures), cookie)
1038 return AreTexturesResidentCookie{cookie}
1039 }
1040
1041
1042
1043 func AreTexturesResidentUnchecked(c *xgb.Conn, ContextTag ContextTag, N int32, Textures []uint32) AreTexturesResidentCookie {
1044 c.ExtLock.RLock()
1045 defer c.ExtLock.RUnlock()
1046 if _, ok := c.Extensions["GLX"]; !ok {
1047 panic("Cannot issue request 'AreTexturesResident' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1048 }
1049 cookie := c.NewCookie(false, true)
1050 c.NewRequest(areTexturesResidentRequest(c, ContextTag, N, Textures), cookie)
1051 return AreTexturesResidentCookie{cookie}
1052 }
1053
1054
1055 type AreTexturesResidentReply struct {
1056 Sequence uint16
1057 Length uint32
1058
1059 RetVal Bool32
1060
1061 Data []bool
1062 }
1063
1064
1065 func (cook AreTexturesResidentCookie) Reply() (*AreTexturesResidentReply, error) {
1066 buf, err := cook.Cookie.Reply()
1067 if err != nil {
1068 return nil, err
1069 }
1070 if buf == nil {
1071 return nil, nil
1072 }
1073 return areTexturesResidentReply(buf), nil
1074 }
1075
1076
1077 func areTexturesResidentReply(buf []byte) *AreTexturesResidentReply {
1078 v := new(AreTexturesResidentReply)
1079 b := 1
1080
1081 b += 1
1082
1083 v.Sequence = xgb.Get16(buf[b:])
1084 b += 2
1085
1086 v.Length = xgb.Get32(buf[b:])
1087 b += 4
1088
1089 v.RetVal = Bool32(xgb.Get32(buf[b:]))
1090 b += 4
1091
1092 b += 20
1093
1094 v.Data = make([]bool, (int(v.Length) * 4))
1095 for i := 0; i < int((int(v.Length) * 4)); i++ {
1096 if buf[b] == 1 {
1097 v.Data[i] = true
1098 } else {
1099 v.Data[i] = false
1100 }
1101 b += 1
1102 }
1103
1104 return v
1105 }
1106
1107
1108
1109 func areTexturesResidentRequest(c *xgb.Conn, ContextTag ContextTag, N int32, Textures []uint32) []byte {
1110 size := xgb.Pad((12 + xgb.Pad((int(N) * 4))))
1111 b := 0
1112 buf := make([]byte, size)
1113
1114 c.ExtLock.RLock()
1115 buf[b] = c.Extensions["GLX"]
1116 c.ExtLock.RUnlock()
1117 b += 1
1118
1119 buf[b] = 143
1120 b += 1
1121
1122 xgb.Put16(buf[b:], uint16(size/4))
1123 b += 2
1124
1125 xgb.Put32(buf[b:], uint32(ContextTag))
1126 b += 4
1127
1128 xgb.Put32(buf[b:], uint32(N))
1129 b += 4
1130
1131 for i := 0; i < int(N); i++ {
1132 xgb.Put32(buf[b:], Textures[i])
1133 b += 4
1134 }
1135
1136 return buf
1137 }
1138
1139
1140 type ChangeDrawableAttributesCookie struct {
1141 *xgb.Cookie
1142 }
1143
1144
1145
1146 func ChangeDrawableAttributes(c *xgb.Conn, Drawable Drawable, NumAttribs uint32, Attribs []uint32) ChangeDrawableAttributesCookie {
1147 c.ExtLock.RLock()
1148 defer c.ExtLock.RUnlock()
1149 if _, ok := c.Extensions["GLX"]; !ok {
1150 panic("Cannot issue request 'ChangeDrawableAttributes' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1151 }
1152 cookie := c.NewCookie(false, false)
1153 c.NewRequest(changeDrawableAttributesRequest(c, Drawable, NumAttribs, Attribs), cookie)
1154 return ChangeDrawableAttributesCookie{cookie}
1155 }
1156
1157
1158
1159 func ChangeDrawableAttributesChecked(c *xgb.Conn, Drawable Drawable, NumAttribs uint32, Attribs []uint32) ChangeDrawableAttributesCookie {
1160 c.ExtLock.RLock()
1161 defer c.ExtLock.RUnlock()
1162 if _, ok := c.Extensions["GLX"]; !ok {
1163 panic("Cannot issue request 'ChangeDrawableAttributes' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1164 }
1165 cookie := c.NewCookie(true, false)
1166 c.NewRequest(changeDrawableAttributesRequest(c, Drawable, NumAttribs, Attribs), cookie)
1167 return ChangeDrawableAttributesCookie{cookie}
1168 }
1169
1170
1171
1172 func (cook ChangeDrawableAttributesCookie) Check() error {
1173 return cook.Cookie.Check()
1174 }
1175
1176
1177
1178 func changeDrawableAttributesRequest(c *xgb.Conn, Drawable Drawable, NumAttribs uint32, Attribs []uint32) []byte {
1179 size := xgb.Pad((12 + xgb.Pad(((int(NumAttribs) * 2) * 4))))
1180 b := 0
1181 buf := make([]byte, size)
1182
1183 c.ExtLock.RLock()
1184 buf[b] = c.Extensions["GLX"]
1185 c.ExtLock.RUnlock()
1186 b += 1
1187
1188 buf[b] = 30
1189 b += 1
1190
1191 xgb.Put16(buf[b:], uint16(size/4))
1192 b += 2
1193
1194 xgb.Put32(buf[b:], uint32(Drawable))
1195 b += 4
1196
1197 xgb.Put32(buf[b:], NumAttribs)
1198 b += 4
1199
1200 for i := 0; i < int((int(NumAttribs) * 2)); i++ {
1201 xgb.Put32(buf[b:], Attribs[i])
1202 b += 4
1203 }
1204
1205 return buf
1206 }
1207
1208
1209 type ClientInfoCookie struct {
1210 *xgb.Cookie
1211 }
1212
1213
1214
1215 func ClientInfo(c *xgb.Conn, MajorVersion uint32, MinorVersion uint32, StrLen uint32, String string) ClientInfoCookie {
1216 c.ExtLock.RLock()
1217 defer c.ExtLock.RUnlock()
1218 if _, ok := c.Extensions["GLX"]; !ok {
1219 panic("Cannot issue request 'ClientInfo' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1220 }
1221 cookie := c.NewCookie(false, false)
1222 c.NewRequest(clientInfoRequest(c, MajorVersion, MinorVersion, StrLen, String), cookie)
1223 return ClientInfoCookie{cookie}
1224 }
1225
1226
1227
1228 func ClientInfoChecked(c *xgb.Conn, MajorVersion uint32, MinorVersion uint32, StrLen uint32, String string) ClientInfoCookie {
1229 c.ExtLock.RLock()
1230 defer c.ExtLock.RUnlock()
1231 if _, ok := c.Extensions["GLX"]; !ok {
1232 panic("Cannot issue request 'ClientInfo' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1233 }
1234 cookie := c.NewCookie(true, false)
1235 c.NewRequest(clientInfoRequest(c, MajorVersion, MinorVersion, StrLen, String), cookie)
1236 return ClientInfoCookie{cookie}
1237 }
1238
1239
1240
1241 func (cook ClientInfoCookie) Check() error {
1242 return cook.Cookie.Check()
1243 }
1244
1245
1246
1247 func clientInfoRequest(c *xgb.Conn, MajorVersion uint32, MinorVersion uint32, StrLen uint32, String string) []byte {
1248 size := xgb.Pad((16 + xgb.Pad((int(StrLen) * 1))))
1249 b := 0
1250 buf := make([]byte, size)
1251
1252 c.ExtLock.RLock()
1253 buf[b] = c.Extensions["GLX"]
1254 c.ExtLock.RUnlock()
1255 b += 1
1256
1257 buf[b] = 20
1258 b += 1
1259
1260 xgb.Put16(buf[b:], uint16(size/4))
1261 b += 2
1262
1263 xgb.Put32(buf[b:], MajorVersion)
1264 b += 4
1265
1266 xgb.Put32(buf[b:], MinorVersion)
1267 b += 4
1268
1269 xgb.Put32(buf[b:], StrLen)
1270 b += 4
1271
1272 copy(buf[b:], String[:StrLen])
1273 b += int(StrLen)
1274
1275 return buf
1276 }
1277
1278
1279 type CopyContextCookie struct {
1280 *xgb.Cookie
1281 }
1282
1283
1284
1285 func CopyContext(c *xgb.Conn, Src Context, Dest Context, Mask uint32, SrcContextTag ContextTag) CopyContextCookie {
1286 c.ExtLock.RLock()
1287 defer c.ExtLock.RUnlock()
1288 if _, ok := c.Extensions["GLX"]; !ok {
1289 panic("Cannot issue request 'CopyContext' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1290 }
1291 cookie := c.NewCookie(false, false)
1292 c.NewRequest(copyContextRequest(c, Src, Dest, Mask, SrcContextTag), cookie)
1293 return CopyContextCookie{cookie}
1294 }
1295
1296
1297
1298 func CopyContextChecked(c *xgb.Conn, Src Context, Dest Context, Mask uint32, SrcContextTag ContextTag) CopyContextCookie {
1299 c.ExtLock.RLock()
1300 defer c.ExtLock.RUnlock()
1301 if _, ok := c.Extensions["GLX"]; !ok {
1302 panic("Cannot issue request 'CopyContext' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1303 }
1304 cookie := c.NewCookie(true, false)
1305 c.NewRequest(copyContextRequest(c, Src, Dest, Mask, SrcContextTag), cookie)
1306 return CopyContextCookie{cookie}
1307 }
1308
1309
1310
1311 func (cook CopyContextCookie) Check() error {
1312 return cook.Cookie.Check()
1313 }
1314
1315
1316
1317 func copyContextRequest(c *xgb.Conn, Src Context, Dest Context, Mask uint32, SrcContextTag ContextTag) []byte {
1318 size := 20
1319 b := 0
1320 buf := make([]byte, size)
1321
1322 c.ExtLock.RLock()
1323 buf[b] = c.Extensions["GLX"]
1324 c.ExtLock.RUnlock()
1325 b += 1
1326
1327 buf[b] = 10
1328 b += 1
1329
1330 xgb.Put16(buf[b:], uint16(size/4))
1331 b += 2
1332
1333 xgb.Put32(buf[b:], uint32(Src))
1334 b += 4
1335
1336 xgb.Put32(buf[b:], uint32(Dest))
1337 b += 4
1338
1339 xgb.Put32(buf[b:], Mask)
1340 b += 4
1341
1342 xgb.Put32(buf[b:], uint32(SrcContextTag))
1343 b += 4
1344
1345 return buf
1346 }
1347
1348
1349 type CreateContextCookie struct {
1350 *xgb.Cookie
1351 }
1352
1353
1354
1355 func CreateContext(c *xgb.Conn, Context Context, Visual xproto.Visualid, Screen uint32, ShareList Context, IsDirect bool) CreateContextCookie {
1356 c.ExtLock.RLock()
1357 defer c.ExtLock.RUnlock()
1358 if _, ok := c.Extensions["GLX"]; !ok {
1359 panic("Cannot issue request 'CreateContext' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1360 }
1361 cookie := c.NewCookie(false, false)
1362 c.NewRequest(createContextRequest(c, Context, Visual, Screen, ShareList, IsDirect), cookie)
1363 return CreateContextCookie{cookie}
1364 }
1365
1366
1367
1368 func CreateContextChecked(c *xgb.Conn, Context Context, Visual xproto.Visualid, Screen uint32, ShareList Context, IsDirect bool) CreateContextCookie {
1369 c.ExtLock.RLock()
1370 defer c.ExtLock.RUnlock()
1371 if _, ok := c.Extensions["GLX"]; !ok {
1372 panic("Cannot issue request 'CreateContext' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1373 }
1374 cookie := c.NewCookie(true, false)
1375 c.NewRequest(createContextRequest(c, Context, Visual, Screen, ShareList, IsDirect), cookie)
1376 return CreateContextCookie{cookie}
1377 }
1378
1379
1380
1381 func (cook CreateContextCookie) Check() error {
1382 return cook.Cookie.Check()
1383 }
1384
1385
1386
1387 func createContextRequest(c *xgb.Conn, Context Context, Visual xproto.Visualid, Screen uint32, ShareList Context, IsDirect bool) []byte {
1388 size := 24
1389 b := 0
1390 buf := make([]byte, size)
1391
1392 c.ExtLock.RLock()
1393 buf[b] = c.Extensions["GLX"]
1394 c.ExtLock.RUnlock()
1395 b += 1
1396
1397 buf[b] = 3
1398 b += 1
1399
1400 xgb.Put16(buf[b:], uint16(size/4))
1401 b += 2
1402
1403 xgb.Put32(buf[b:], uint32(Context))
1404 b += 4
1405
1406 xgb.Put32(buf[b:], uint32(Visual))
1407 b += 4
1408
1409 xgb.Put32(buf[b:], Screen)
1410 b += 4
1411
1412 xgb.Put32(buf[b:], uint32(ShareList))
1413 b += 4
1414
1415 if IsDirect {
1416 buf[b] = 1
1417 } else {
1418 buf[b] = 0
1419 }
1420 b += 1
1421
1422 b += 3
1423
1424 return buf
1425 }
1426
1427
1428 type CreateContextAttribsARBCookie struct {
1429 *xgb.Cookie
1430 }
1431
1432
1433
1434 func CreateContextAttribsARB(c *xgb.Conn, Context Context, Fbconfig Fbconfig, Screen uint32, ShareList Context, IsDirect bool, NumAttribs uint32, Attribs []uint32) CreateContextAttribsARBCookie {
1435 c.ExtLock.RLock()
1436 defer c.ExtLock.RUnlock()
1437 if _, ok := c.Extensions["GLX"]; !ok {
1438 panic("Cannot issue request 'CreateContextAttribsARB' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1439 }
1440 cookie := c.NewCookie(false, false)
1441 c.NewRequest(createContextAttribsARBRequest(c, Context, Fbconfig, Screen, ShareList, IsDirect, NumAttribs, Attribs), cookie)
1442 return CreateContextAttribsARBCookie{cookie}
1443 }
1444
1445
1446
1447 func CreateContextAttribsARBChecked(c *xgb.Conn, Context Context, Fbconfig Fbconfig, Screen uint32, ShareList Context, IsDirect bool, NumAttribs uint32, Attribs []uint32) CreateContextAttribsARBCookie {
1448 c.ExtLock.RLock()
1449 defer c.ExtLock.RUnlock()
1450 if _, ok := c.Extensions["GLX"]; !ok {
1451 panic("Cannot issue request 'CreateContextAttribsARB' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1452 }
1453 cookie := c.NewCookie(true, false)
1454 c.NewRequest(createContextAttribsARBRequest(c, Context, Fbconfig, Screen, ShareList, IsDirect, NumAttribs, Attribs), cookie)
1455 return CreateContextAttribsARBCookie{cookie}
1456 }
1457
1458
1459
1460 func (cook CreateContextAttribsARBCookie) Check() error {
1461 return cook.Cookie.Check()
1462 }
1463
1464
1465
1466 func createContextAttribsARBRequest(c *xgb.Conn, Context Context, Fbconfig Fbconfig, Screen uint32, ShareList Context, IsDirect bool, NumAttribs uint32, Attribs []uint32) []byte {
1467 size := xgb.Pad((28 + xgb.Pad(((int(NumAttribs) * 2) * 4))))
1468 b := 0
1469 buf := make([]byte, size)
1470
1471 c.ExtLock.RLock()
1472 buf[b] = c.Extensions["GLX"]
1473 c.ExtLock.RUnlock()
1474 b += 1
1475
1476 buf[b] = 34
1477 b += 1
1478
1479 xgb.Put16(buf[b:], uint16(size/4))
1480 b += 2
1481
1482 xgb.Put32(buf[b:], uint32(Context))
1483 b += 4
1484
1485 xgb.Put32(buf[b:], uint32(Fbconfig))
1486 b += 4
1487
1488 xgb.Put32(buf[b:], Screen)
1489 b += 4
1490
1491 xgb.Put32(buf[b:], uint32(ShareList))
1492 b += 4
1493
1494 if IsDirect {
1495 buf[b] = 1
1496 } else {
1497 buf[b] = 0
1498 }
1499 b += 1
1500
1501 b += 3
1502
1503 xgb.Put32(buf[b:], NumAttribs)
1504 b += 4
1505
1506 for i := 0; i < int((int(NumAttribs) * 2)); i++ {
1507 xgb.Put32(buf[b:], Attribs[i])
1508 b += 4
1509 }
1510
1511 return buf
1512 }
1513
1514
1515 type CreateGLXPixmapCookie struct {
1516 *xgb.Cookie
1517 }
1518
1519
1520
1521 func CreateGLXPixmap(c *xgb.Conn, Screen uint32, Visual xproto.Visualid, Pixmap xproto.Pixmap, GlxPixmap Pixmap) CreateGLXPixmapCookie {
1522 c.ExtLock.RLock()
1523 defer c.ExtLock.RUnlock()
1524 if _, ok := c.Extensions["GLX"]; !ok {
1525 panic("Cannot issue request 'CreateGLXPixmap' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1526 }
1527 cookie := c.NewCookie(false, false)
1528 c.NewRequest(createGLXPixmapRequest(c, Screen, Visual, Pixmap, GlxPixmap), cookie)
1529 return CreateGLXPixmapCookie{cookie}
1530 }
1531
1532
1533
1534 func CreateGLXPixmapChecked(c *xgb.Conn, Screen uint32, Visual xproto.Visualid, Pixmap xproto.Pixmap, GlxPixmap Pixmap) CreateGLXPixmapCookie {
1535 c.ExtLock.RLock()
1536 defer c.ExtLock.RUnlock()
1537 if _, ok := c.Extensions["GLX"]; !ok {
1538 panic("Cannot issue request 'CreateGLXPixmap' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1539 }
1540 cookie := c.NewCookie(true, false)
1541 c.NewRequest(createGLXPixmapRequest(c, Screen, Visual, Pixmap, GlxPixmap), cookie)
1542 return CreateGLXPixmapCookie{cookie}
1543 }
1544
1545
1546
1547 func (cook CreateGLXPixmapCookie) Check() error {
1548 return cook.Cookie.Check()
1549 }
1550
1551
1552
1553 func createGLXPixmapRequest(c *xgb.Conn, Screen uint32, Visual xproto.Visualid, Pixmap xproto.Pixmap, GlxPixmap Pixmap) []byte {
1554 size := 20
1555 b := 0
1556 buf := make([]byte, size)
1557
1558 c.ExtLock.RLock()
1559 buf[b] = c.Extensions["GLX"]
1560 c.ExtLock.RUnlock()
1561 b += 1
1562
1563 buf[b] = 13
1564 b += 1
1565
1566 xgb.Put16(buf[b:], uint16(size/4))
1567 b += 2
1568
1569 xgb.Put32(buf[b:], Screen)
1570 b += 4
1571
1572 xgb.Put32(buf[b:], uint32(Visual))
1573 b += 4
1574
1575 xgb.Put32(buf[b:], uint32(Pixmap))
1576 b += 4
1577
1578 xgb.Put32(buf[b:], uint32(GlxPixmap))
1579 b += 4
1580
1581 return buf
1582 }
1583
1584
1585 type CreateNewContextCookie struct {
1586 *xgb.Cookie
1587 }
1588
1589
1590
1591 func CreateNewContext(c *xgb.Conn, Context Context, Fbconfig Fbconfig, Screen uint32, RenderType uint32, ShareList Context, IsDirect bool) CreateNewContextCookie {
1592 c.ExtLock.RLock()
1593 defer c.ExtLock.RUnlock()
1594 if _, ok := c.Extensions["GLX"]; !ok {
1595 panic("Cannot issue request 'CreateNewContext' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1596 }
1597 cookie := c.NewCookie(false, false)
1598 c.NewRequest(createNewContextRequest(c, Context, Fbconfig, Screen, RenderType, ShareList, IsDirect), cookie)
1599 return CreateNewContextCookie{cookie}
1600 }
1601
1602
1603
1604 func CreateNewContextChecked(c *xgb.Conn, Context Context, Fbconfig Fbconfig, Screen uint32, RenderType uint32, ShareList Context, IsDirect bool) CreateNewContextCookie {
1605 c.ExtLock.RLock()
1606 defer c.ExtLock.RUnlock()
1607 if _, ok := c.Extensions["GLX"]; !ok {
1608 panic("Cannot issue request 'CreateNewContext' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1609 }
1610 cookie := c.NewCookie(true, false)
1611 c.NewRequest(createNewContextRequest(c, Context, Fbconfig, Screen, RenderType, ShareList, IsDirect), cookie)
1612 return CreateNewContextCookie{cookie}
1613 }
1614
1615
1616
1617 func (cook CreateNewContextCookie) Check() error {
1618 return cook.Cookie.Check()
1619 }
1620
1621
1622
1623 func createNewContextRequest(c *xgb.Conn, Context Context, Fbconfig Fbconfig, Screen uint32, RenderType uint32, ShareList Context, IsDirect bool) []byte {
1624 size := 28
1625 b := 0
1626 buf := make([]byte, size)
1627
1628 c.ExtLock.RLock()
1629 buf[b] = c.Extensions["GLX"]
1630 c.ExtLock.RUnlock()
1631 b += 1
1632
1633 buf[b] = 24
1634 b += 1
1635
1636 xgb.Put16(buf[b:], uint16(size/4))
1637 b += 2
1638
1639 xgb.Put32(buf[b:], uint32(Context))
1640 b += 4
1641
1642 xgb.Put32(buf[b:], uint32(Fbconfig))
1643 b += 4
1644
1645 xgb.Put32(buf[b:], Screen)
1646 b += 4
1647
1648 xgb.Put32(buf[b:], RenderType)
1649 b += 4
1650
1651 xgb.Put32(buf[b:], uint32(ShareList))
1652 b += 4
1653
1654 if IsDirect {
1655 buf[b] = 1
1656 } else {
1657 buf[b] = 0
1658 }
1659 b += 1
1660
1661 b += 3
1662
1663 return buf
1664 }
1665
1666
1667 type CreatePbufferCookie struct {
1668 *xgb.Cookie
1669 }
1670
1671
1672
1673 func CreatePbuffer(c *xgb.Conn, Screen uint32, Fbconfig Fbconfig, Pbuffer Pbuffer, NumAttribs uint32, Attribs []uint32) CreatePbufferCookie {
1674 c.ExtLock.RLock()
1675 defer c.ExtLock.RUnlock()
1676 if _, ok := c.Extensions["GLX"]; !ok {
1677 panic("Cannot issue request 'CreatePbuffer' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1678 }
1679 cookie := c.NewCookie(false, false)
1680 c.NewRequest(createPbufferRequest(c, Screen, Fbconfig, Pbuffer, NumAttribs, Attribs), cookie)
1681 return CreatePbufferCookie{cookie}
1682 }
1683
1684
1685
1686 func CreatePbufferChecked(c *xgb.Conn, Screen uint32, Fbconfig Fbconfig, Pbuffer Pbuffer, NumAttribs uint32, Attribs []uint32) CreatePbufferCookie {
1687 c.ExtLock.RLock()
1688 defer c.ExtLock.RUnlock()
1689 if _, ok := c.Extensions["GLX"]; !ok {
1690 panic("Cannot issue request 'CreatePbuffer' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1691 }
1692 cookie := c.NewCookie(true, false)
1693 c.NewRequest(createPbufferRequest(c, Screen, Fbconfig, Pbuffer, NumAttribs, Attribs), cookie)
1694 return CreatePbufferCookie{cookie}
1695 }
1696
1697
1698
1699 func (cook CreatePbufferCookie) Check() error {
1700 return cook.Cookie.Check()
1701 }
1702
1703
1704
1705 func createPbufferRequest(c *xgb.Conn, Screen uint32, Fbconfig Fbconfig, Pbuffer Pbuffer, NumAttribs uint32, Attribs []uint32) []byte {
1706 size := xgb.Pad((20 + xgb.Pad(((int(NumAttribs) * 2) * 4))))
1707 b := 0
1708 buf := make([]byte, size)
1709
1710 c.ExtLock.RLock()
1711 buf[b] = c.Extensions["GLX"]
1712 c.ExtLock.RUnlock()
1713 b += 1
1714
1715 buf[b] = 27
1716 b += 1
1717
1718 xgb.Put16(buf[b:], uint16(size/4))
1719 b += 2
1720
1721 xgb.Put32(buf[b:], Screen)
1722 b += 4
1723
1724 xgb.Put32(buf[b:], uint32(Fbconfig))
1725 b += 4
1726
1727 xgb.Put32(buf[b:], uint32(Pbuffer))
1728 b += 4
1729
1730 xgb.Put32(buf[b:], NumAttribs)
1731 b += 4
1732
1733 for i := 0; i < int((int(NumAttribs) * 2)); i++ {
1734 xgb.Put32(buf[b:], Attribs[i])
1735 b += 4
1736 }
1737
1738 return buf
1739 }
1740
1741
1742 type CreatePixmapCookie struct {
1743 *xgb.Cookie
1744 }
1745
1746
1747
1748 func CreatePixmap(c *xgb.Conn, Screen uint32, Fbconfig Fbconfig, Pixmap xproto.Pixmap, GlxPixmap Pixmap, NumAttribs uint32, Attribs []uint32) CreatePixmapCookie {
1749 c.ExtLock.RLock()
1750 defer c.ExtLock.RUnlock()
1751 if _, ok := c.Extensions["GLX"]; !ok {
1752 panic("Cannot issue request 'CreatePixmap' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1753 }
1754 cookie := c.NewCookie(false, false)
1755 c.NewRequest(createPixmapRequest(c, Screen, Fbconfig, Pixmap, GlxPixmap, NumAttribs, Attribs), cookie)
1756 return CreatePixmapCookie{cookie}
1757 }
1758
1759
1760
1761 func CreatePixmapChecked(c *xgb.Conn, Screen uint32, Fbconfig Fbconfig, Pixmap xproto.Pixmap, GlxPixmap Pixmap, NumAttribs uint32, Attribs []uint32) CreatePixmapCookie {
1762 c.ExtLock.RLock()
1763 defer c.ExtLock.RUnlock()
1764 if _, ok := c.Extensions["GLX"]; !ok {
1765 panic("Cannot issue request 'CreatePixmap' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1766 }
1767 cookie := c.NewCookie(true, false)
1768 c.NewRequest(createPixmapRequest(c, Screen, Fbconfig, Pixmap, GlxPixmap, NumAttribs, Attribs), cookie)
1769 return CreatePixmapCookie{cookie}
1770 }
1771
1772
1773
1774 func (cook CreatePixmapCookie) Check() error {
1775 return cook.Cookie.Check()
1776 }
1777
1778
1779
1780 func createPixmapRequest(c *xgb.Conn, Screen uint32, Fbconfig Fbconfig, Pixmap xproto.Pixmap, GlxPixmap Pixmap, NumAttribs uint32, Attribs []uint32) []byte {
1781 size := xgb.Pad((24 + xgb.Pad(((int(NumAttribs) * 2) * 4))))
1782 b := 0
1783 buf := make([]byte, size)
1784
1785 c.ExtLock.RLock()
1786 buf[b] = c.Extensions["GLX"]
1787 c.ExtLock.RUnlock()
1788 b += 1
1789
1790 buf[b] = 22
1791 b += 1
1792
1793 xgb.Put16(buf[b:], uint16(size/4))
1794 b += 2
1795
1796 xgb.Put32(buf[b:], Screen)
1797 b += 4
1798
1799 xgb.Put32(buf[b:], uint32(Fbconfig))
1800 b += 4
1801
1802 xgb.Put32(buf[b:], uint32(Pixmap))
1803 b += 4
1804
1805 xgb.Put32(buf[b:], uint32(GlxPixmap))
1806 b += 4
1807
1808 xgb.Put32(buf[b:], NumAttribs)
1809 b += 4
1810
1811 for i := 0; i < int((int(NumAttribs) * 2)); i++ {
1812 xgb.Put32(buf[b:], Attribs[i])
1813 b += 4
1814 }
1815
1816 return buf
1817 }
1818
1819
1820 type CreateWindowCookie struct {
1821 *xgb.Cookie
1822 }
1823
1824
1825
1826 func CreateWindow(c *xgb.Conn, Screen uint32, Fbconfig Fbconfig, Window xproto.Window, GlxWindow Window, NumAttribs uint32, Attribs []uint32) CreateWindowCookie {
1827 c.ExtLock.RLock()
1828 defer c.ExtLock.RUnlock()
1829 if _, ok := c.Extensions["GLX"]; !ok {
1830 panic("Cannot issue request 'CreateWindow' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1831 }
1832 cookie := c.NewCookie(false, false)
1833 c.NewRequest(createWindowRequest(c, Screen, Fbconfig, Window, GlxWindow, NumAttribs, Attribs), cookie)
1834 return CreateWindowCookie{cookie}
1835 }
1836
1837
1838
1839 func CreateWindowChecked(c *xgb.Conn, Screen uint32, Fbconfig Fbconfig, Window xproto.Window, GlxWindow Window, NumAttribs uint32, Attribs []uint32) CreateWindowCookie {
1840 c.ExtLock.RLock()
1841 defer c.ExtLock.RUnlock()
1842 if _, ok := c.Extensions["GLX"]; !ok {
1843 panic("Cannot issue request 'CreateWindow' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1844 }
1845 cookie := c.NewCookie(true, false)
1846 c.NewRequest(createWindowRequest(c, Screen, Fbconfig, Window, GlxWindow, NumAttribs, Attribs), cookie)
1847 return CreateWindowCookie{cookie}
1848 }
1849
1850
1851
1852 func (cook CreateWindowCookie) Check() error {
1853 return cook.Cookie.Check()
1854 }
1855
1856
1857
1858 func createWindowRequest(c *xgb.Conn, Screen uint32, Fbconfig Fbconfig, Window xproto.Window, GlxWindow Window, NumAttribs uint32, Attribs []uint32) []byte {
1859 size := xgb.Pad((24 + xgb.Pad(((int(NumAttribs) * 2) * 4))))
1860 b := 0
1861 buf := make([]byte, size)
1862
1863 c.ExtLock.RLock()
1864 buf[b] = c.Extensions["GLX"]
1865 c.ExtLock.RUnlock()
1866 b += 1
1867
1868 buf[b] = 31
1869 b += 1
1870
1871 xgb.Put16(buf[b:], uint16(size/4))
1872 b += 2
1873
1874 xgb.Put32(buf[b:], Screen)
1875 b += 4
1876
1877 xgb.Put32(buf[b:], uint32(Fbconfig))
1878 b += 4
1879
1880 xgb.Put32(buf[b:], uint32(Window))
1881 b += 4
1882
1883 xgb.Put32(buf[b:], uint32(GlxWindow))
1884 b += 4
1885
1886 xgb.Put32(buf[b:], NumAttribs)
1887 b += 4
1888
1889 for i := 0; i < int((int(NumAttribs) * 2)); i++ {
1890 xgb.Put32(buf[b:], Attribs[i])
1891 b += 4
1892 }
1893
1894 return buf
1895 }
1896
1897
1898 type DeleteListsCookie struct {
1899 *xgb.Cookie
1900 }
1901
1902
1903
1904 func DeleteLists(c *xgb.Conn, ContextTag ContextTag, List uint32, Range int32) DeleteListsCookie {
1905 c.ExtLock.RLock()
1906 defer c.ExtLock.RUnlock()
1907 if _, ok := c.Extensions["GLX"]; !ok {
1908 panic("Cannot issue request 'DeleteLists' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1909 }
1910 cookie := c.NewCookie(false, false)
1911 c.NewRequest(deleteListsRequest(c, ContextTag, List, Range), cookie)
1912 return DeleteListsCookie{cookie}
1913 }
1914
1915
1916
1917 func DeleteListsChecked(c *xgb.Conn, ContextTag ContextTag, List uint32, Range int32) DeleteListsCookie {
1918 c.ExtLock.RLock()
1919 defer c.ExtLock.RUnlock()
1920 if _, ok := c.Extensions["GLX"]; !ok {
1921 panic("Cannot issue request 'DeleteLists' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1922 }
1923 cookie := c.NewCookie(true, false)
1924 c.NewRequest(deleteListsRequest(c, ContextTag, List, Range), cookie)
1925 return DeleteListsCookie{cookie}
1926 }
1927
1928
1929
1930 func (cook DeleteListsCookie) Check() error {
1931 return cook.Cookie.Check()
1932 }
1933
1934
1935
1936 func deleteListsRequest(c *xgb.Conn, ContextTag ContextTag, List uint32, Range int32) []byte {
1937 size := 16
1938 b := 0
1939 buf := make([]byte, size)
1940
1941 c.ExtLock.RLock()
1942 buf[b] = c.Extensions["GLX"]
1943 c.ExtLock.RUnlock()
1944 b += 1
1945
1946 buf[b] = 103
1947 b += 1
1948
1949 xgb.Put16(buf[b:], uint16(size/4))
1950 b += 2
1951
1952 xgb.Put32(buf[b:], uint32(ContextTag))
1953 b += 4
1954
1955 xgb.Put32(buf[b:], List)
1956 b += 4
1957
1958 xgb.Put32(buf[b:], uint32(Range))
1959 b += 4
1960
1961 return buf
1962 }
1963
1964
1965 type DeleteQueriesARBCookie struct {
1966 *xgb.Cookie
1967 }
1968
1969
1970
1971 func DeleteQueriesARB(c *xgb.Conn, ContextTag ContextTag, N int32, Ids []uint32) DeleteQueriesARBCookie {
1972 c.ExtLock.RLock()
1973 defer c.ExtLock.RUnlock()
1974 if _, ok := c.Extensions["GLX"]; !ok {
1975 panic("Cannot issue request 'DeleteQueriesARB' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1976 }
1977 cookie := c.NewCookie(false, false)
1978 c.NewRequest(deleteQueriesARBRequest(c, ContextTag, N, Ids), cookie)
1979 return DeleteQueriesARBCookie{cookie}
1980 }
1981
1982
1983
1984 func DeleteQueriesARBChecked(c *xgb.Conn, ContextTag ContextTag, N int32, Ids []uint32) DeleteQueriesARBCookie {
1985 c.ExtLock.RLock()
1986 defer c.ExtLock.RUnlock()
1987 if _, ok := c.Extensions["GLX"]; !ok {
1988 panic("Cannot issue request 'DeleteQueriesARB' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
1989 }
1990 cookie := c.NewCookie(true, false)
1991 c.NewRequest(deleteQueriesARBRequest(c, ContextTag, N, Ids), cookie)
1992 return DeleteQueriesARBCookie{cookie}
1993 }
1994
1995
1996
1997 func (cook DeleteQueriesARBCookie) Check() error {
1998 return cook.Cookie.Check()
1999 }
2000
2001
2002
2003 func deleteQueriesARBRequest(c *xgb.Conn, ContextTag ContextTag, N int32, Ids []uint32) []byte {
2004 size := xgb.Pad((12 + xgb.Pad((int(N) * 4))))
2005 b := 0
2006 buf := make([]byte, size)
2007
2008 c.ExtLock.RLock()
2009 buf[b] = c.Extensions["GLX"]
2010 c.ExtLock.RUnlock()
2011 b += 1
2012
2013 buf[b] = 161
2014 b += 1
2015
2016 xgb.Put16(buf[b:], uint16(size/4))
2017 b += 2
2018
2019 xgb.Put32(buf[b:], uint32(ContextTag))
2020 b += 4
2021
2022 xgb.Put32(buf[b:], uint32(N))
2023 b += 4
2024
2025 for i := 0; i < int(N); i++ {
2026 xgb.Put32(buf[b:], Ids[i])
2027 b += 4
2028 }
2029
2030 return buf
2031 }
2032
2033
2034 type DeleteTexturesCookie struct {
2035 *xgb.Cookie
2036 }
2037
2038
2039
2040 func DeleteTextures(c *xgb.Conn, ContextTag ContextTag, N int32, Textures []uint32) DeleteTexturesCookie {
2041 c.ExtLock.RLock()
2042 defer c.ExtLock.RUnlock()
2043 if _, ok := c.Extensions["GLX"]; !ok {
2044 panic("Cannot issue request 'DeleteTextures' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2045 }
2046 cookie := c.NewCookie(false, false)
2047 c.NewRequest(deleteTexturesRequest(c, ContextTag, N, Textures), cookie)
2048 return DeleteTexturesCookie{cookie}
2049 }
2050
2051
2052
2053 func DeleteTexturesChecked(c *xgb.Conn, ContextTag ContextTag, N int32, Textures []uint32) DeleteTexturesCookie {
2054 c.ExtLock.RLock()
2055 defer c.ExtLock.RUnlock()
2056 if _, ok := c.Extensions["GLX"]; !ok {
2057 panic("Cannot issue request 'DeleteTextures' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2058 }
2059 cookie := c.NewCookie(true, false)
2060 c.NewRequest(deleteTexturesRequest(c, ContextTag, N, Textures), cookie)
2061 return DeleteTexturesCookie{cookie}
2062 }
2063
2064
2065
2066 func (cook DeleteTexturesCookie) Check() error {
2067 return cook.Cookie.Check()
2068 }
2069
2070
2071
2072 func deleteTexturesRequest(c *xgb.Conn, ContextTag ContextTag, N int32, Textures []uint32) []byte {
2073 size := xgb.Pad((12 + xgb.Pad((int(N) * 4))))
2074 b := 0
2075 buf := make([]byte, size)
2076
2077 c.ExtLock.RLock()
2078 buf[b] = c.Extensions["GLX"]
2079 c.ExtLock.RUnlock()
2080 b += 1
2081
2082 buf[b] = 144
2083 b += 1
2084
2085 xgb.Put16(buf[b:], uint16(size/4))
2086 b += 2
2087
2088 xgb.Put32(buf[b:], uint32(ContextTag))
2089 b += 4
2090
2091 xgb.Put32(buf[b:], uint32(N))
2092 b += 4
2093
2094 for i := 0; i < int(N); i++ {
2095 xgb.Put32(buf[b:], Textures[i])
2096 b += 4
2097 }
2098
2099 return buf
2100 }
2101
2102
2103 type DeleteWindowCookie struct {
2104 *xgb.Cookie
2105 }
2106
2107
2108
2109 func DeleteWindow(c *xgb.Conn, Glxwindow Window) DeleteWindowCookie {
2110 c.ExtLock.RLock()
2111 defer c.ExtLock.RUnlock()
2112 if _, ok := c.Extensions["GLX"]; !ok {
2113 panic("Cannot issue request 'DeleteWindow' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2114 }
2115 cookie := c.NewCookie(false, false)
2116 c.NewRequest(deleteWindowRequest(c, Glxwindow), cookie)
2117 return DeleteWindowCookie{cookie}
2118 }
2119
2120
2121
2122 func DeleteWindowChecked(c *xgb.Conn, Glxwindow Window) DeleteWindowCookie {
2123 c.ExtLock.RLock()
2124 defer c.ExtLock.RUnlock()
2125 if _, ok := c.Extensions["GLX"]; !ok {
2126 panic("Cannot issue request 'DeleteWindow' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2127 }
2128 cookie := c.NewCookie(true, false)
2129 c.NewRequest(deleteWindowRequest(c, Glxwindow), cookie)
2130 return DeleteWindowCookie{cookie}
2131 }
2132
2133
2134
2135 func (cook DeleteWindowCookie) Check() error {
2136 return cook.Cookie.Check()
2137 }
2138
2139
2140
2141 func deleteWindowRequest(c *xgb.Conn, Glxwindow Window) []byte {
2142 size := 8
2143 b := 0
2144 buf := make([]byte, size)
2145
2146 c.ExtLock.RLock()
2147 buf[b] = c.Extensions["GLX"]
2148 c.ExtLock.RUnlock()
2149 b += 1
2150
2151 buf[b] = 32
2152 b += 1
2153
2154 xgb.Put16(buf[b:], uint16(size/4))
2155 b += 2
2156
2157 xgb.Put32(buf[b:], uint32(Glxwindow))
2158 b += 4
2159
2160 return buf
2161 }
2162
2163
2164 type DestroyContextCookie struct {
2165 *xgb.Cookie
2166 }
2167
2168
2169
2170 func DestroyContext(c *xgb.Conn, Context Context) DestroyContextCookie {
2171 c.ExtLock.RLock()
2172 defer c.ExtLock.RUnlock()
2173 if _, ok := c.Extensions["GLX"]; !ok {
2174 panic("Cannot issue request 'DestroyContext' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2175 }
2176 cookie := c.NewCookie(false, false)
2177 c.NewRequest(destroyContextRequest(c, Context), cookie)
2178 return DestroyContextCookie{cookie}
2179 }
2180
2181
2182
2183 func DestroyContextChecked(c *xgb.Conn, Context Context) DestroyContextCookie {
2184 c.ExtLock.RLock()
2185 defer c.ExtLock.RUnlock()
2186 if _, ok := c.Extensions["GLX"]; !ok {
2187 panic("Cannot issue request 'DestroyContext' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2188 }
2189 cookie := c.NewCookie(true, false)
2190 c.NewRequest(destroyContextRequest(c, Context), cookie)
2191 return DestroyContextCookie{cookie}
2192 }
2193
2194
2195
2196 func (cook DestroyContextCookie) Check() error {
2197 return cook.Cookie.Check()
2198 }
2199
2200
2201
2202 func destroyContextRequest(c *xgb.Conn, Context Context) []byte {
2203 size := 8
2204 b := 0
2205 buf := make([]byte, size)
2206
2207 c.ExtLock.RLock()
2208 buf[b] = c.Extensions["GLX"]
2209 c.ExtLock.RUnlock()
2210 b += 1
2211
2212 buf[b] = 4
2213 b += 1
2214
2215 xgb.Put16(buf[b:], uint16(size/4))
2216 b += 2
2217
2218 xgb.Put32(buf[b:], uint32(Context))
2219 b += 4
2220
2221 return buf
2222 }
2223
2224
2225 type DestroyGLXPixmapCookie struct {
2226 *xgb.Cookie
2227 }
2228
2229
2230
2231 func DestroyGLXPixmap(c *xgb.Conn, GlxPixmap Pixmap) DestroyGLXPixmapCookie {
2232 c.ExtLock.RLock()
2233 defer c.ExtLock.RUnlock()
2234 if _, ok := c.Extensions["GLX"]; !ok {
2235 panic("Cannot issue request 'DestroyGLXPixmap' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2236 }
2237 cookie := c.NewCookie(false, false)
2238 c.NewRequest(destroyGLXPixmapRequest(c, GlxPixmap), cookie)
2239 return DestroyGLXPixmapCookie{cookie}
2240 }
2241
2242
2243
2244 func DestroyGLXPixmapChecked(c *xgb.Conn, GlxPixmap Pixmap) DestroyGLXPixmapCookie {
2245 c.ExtLock.RLock()
2246 defer c.ExtLock.RUnlock()
2247 if _, ok := c.Extensions["GLX"]; !ok {
2248 panic("Cannot issue request 'DestroyGLXPixmap' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2249 }
2250 cookie := c.NewCookie(true, false)
2251 c.NewRequest(destroyGLXPixmapRequest(c, GlxPixmap), cookie)
2252 return DestroyGLXPixmapCookie{cookie}
2253 }
2254
2255
2256
2257 func (cook DestroyGLXPixmapCookie) Check() error {
2258 return cook.Cookie.Check()
2259 }
2260
2261
2262
2263 func destroyGLXPixmapRequest(c *xgb.Conn, GlxPixmap Pixmap) []byte {
2264 size := 8
2265 b := 0
2266 buf := make([]byte, size)
2267
2268 c.ExtLock.RLock()
2269 buf[b] = c.Extensions["GLX"]
2270 c.ExtLock.RUnlock()
2271 b += 1
2272
2273 buf[b] = 15
2274 b += 1
2275
2276 xgb.Put16(buf[b:], uint16(size/4))
2277 b += 2
2278
2279 xgb.Put32(buf[b:], uint32(GlxPixmap))
2280 b += 4
2281
2282 return buf
2283 }
2284
2285
2286 type DestroyPbufferCookie struct {
2287 *xgb.Cookie
2288 }
2289
2290
2291
2292 func DestroyPbuffer(c *xgb.Conn, Pbuffer Pbuffer) DestroyPbufferCookie {
2293 c.ExtLock.RLock()
2294 defer c.ExtLock.RUnlock()
2295 if _, ok := c.Extensions["GLX"]; !ok {
2296 panic("Cannot issue request 'DestroyPbuffer' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2297 }
2298 cookie := c.NewCookie(false, false)
2299 c.NewRequest(destroyPbufferRequest(c, Pbuffer), cookie)
2300 return DestroyPbufferCookie{cookie}
2301 }
2302
2303
2304
2305 func DestroyPbufferChecked(c *xgb.Conn, Pbuffer Pbuffer) DestroyPbufferCookie {
2306 c.ExtLock.RLock()
2307 defer c.ExtLock.RUnlock()
2308 if _, ok := c.Extensions["GLX"]; !ok {
2309 panic("Cannot issue request 'DestroyPbuffer' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2310 }
2311 cookie := c.NewCookie(true, false)
2312 c.NewRequest(destroyPbufferRequest(c, Pbuffer), cookie)
2313 return DestroyPbufferCookie{cookie}
2314 }
2315
2316
2317
2318 func (cook DestroyPbufferCookie) Check() error {
2319 return cook.Cookie.Check()
2320 }
2321
2322
2323
2324 func destroyPbufferRequest(c *xgb.Conn, Pbuffer Pbuffer) []byte {
2325 size := 8
2326 b := 0
2327 buf := make([]byte, size)
2328
2329 c.ExtLock.RLock()
2330 buf[b] = c.Extensions["GLX"]
2331 c.ExtLock.RUnlock()
2332 b += 1
2333
2334 buf[b] = 28
2335 b += 1
2336
2337 xgb.Put16(buf[b:], uint16(size/4))
2338 b += 2
2339
2340 xgb.Put32(buf[b:], uint32(Pbuffer))
2341 b += 4
2342
2343 return buf
2344 }
2345
2346
2347 type DestroyPixmapCookie struct {
2348 *xgb.Cookie
2349 }
2350
2351
2352
2353 func DestroyPixmap(c *xgb.Conn, GlxPixmap Pixmap) DestroyPixmapCookie {
2354 c.ExtLock.RLock()
2355 defer c.ExtLock.RUnlock()
2356 if _, ok := c.Extensions["GLX"]; !ok {
2357 panic("Cannot issue request 'DestroyPixmap' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2358 }
2359 cookie := c.NewCookie(false, false)
2360 c.NewRequest(destroyPixmapRequest(c, GlxPixmap), cookie)
2361 return DestroyPixmapCookie{cookie}
2362 }
2363
2364
2365
2366 func DestroyPixmapChecked(c *xgb.Conn, GlxPixmap Pixmap) DestroyPixmapCookie {
2367 c.ExtLock.RLock()
2368 defer c.ExtLock.RUnlock()
2369 if _, ok := c.Extensions["GLX"]; !ok {
2370 panic("Cannot issue request 'DestroyPixmap' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2371 }
2372 cookie := c.NewCookie(true, false)
2373 c.NewRequest(destroyPixmapRequest(c, GlxPixmap), cookie)
2374 return DestroyPixmapCookie{cookie}
2375 }
2376
2377
2378
2379 func (cook DestroyPixmapCookie) Check() error {
2380 return cook.Cookie.Check()
2381 }
2382
2383
2384
2385 func destroyPixmapRequest(c *xgb.Conn, GlxPixmap Pixmap) []byte {
2386 size := 8
2387 b := 0
2388 buf := make([]byte, size)
2389
2390 c.ExtLock.RLock()
2391 buf[b] = c.Extensions["GLX"]
2392 c.ExtLock.RUnlock()
2393 b += 1
2394
2395 buf[b] = 23
2396 b += 1
2397
2398 xgb.Put16(buf[b:], uint16(size/4))
2399 b += 2
2400
2401 xgb.Put32(buf[b:], uint32(GlxPixmap))
2402 b += 4
2403
2404 return buf
2405 }
2406
2407
2408 type EndListCookie struct {
2409 *xgb.Cookie
2410 }
2411
2412
2413
2414 func EndList(c *xgb.Conn, ContextTag ContextTag) EndListCookie {
2415 c.ExtLock.RLock()
2416 defer c.ExtLock.RUnlock()
2417 if _, ok := c.Extensions["GLX"]; !ok {
2418 panic("Cannot issue request 'EndList' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2419 }
2420 cookie := c.NewCookie(false, false)
2421 c.NewRequest(endListRequest(c, ContextTag), cookie)
2422 return EndListCookie{cookie}
2423 }
2424
2425
2426
2427 func EndListChecked(c *xgb.Conn, ContextTag ContextTag) EndListCookie {
2428 c.ExtLock.RLock()
2429 defer c.ExtLock.RUnlock()
2430 if _, ok := c.Extensions["GLX"]; !ok {
2431 panic("Cannot issue request 'EndList' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2432 }
2433 cookie := c.NewCookie(true, false)
2434 c.NewRequest(endListRequest(c, ContextTag), cookie)
2435 return EndListCookie{cookie}
2436 }
2437
2438
2439
2440 func (cook EndListCookie) Check() error {
2441 return cook.Cookie.Check()
2442 }
2443
2444
2445
2446 func endListRequest(c *xgb.Conn, ContextTag ContextTag) []byte {
2447 size := 8
2448 b := 0
2449 buf := make([]byte, size)
2450
2451 c.ExtLock.RLock()
2452 buf[b] = c.Extensions["GLX"]
2453 c.ExtLock.RUnlock()
2454 b += 1
2455
2456 buf[b] = 102
2457 b += 1
2458
2459 xgb.Put16(buf[b:], uint16(size/4))
2460 b += 2
2461
2462 xgb.Put32(buf[b:], uint32(ContextTag))
2463 b += 4
2464
2465 return buf
2466 }
2467
2468
2469 type FeedbackBufferCookie struct {
2470 *xgb.Cookie
2471 }
2472
2473
2474
2475 func FeedbackBuffer(c *xgb.Conn, ContextTag ContextTag, Size int32, Type int32) FeedbackBufferCookie {
2476 c.ExtLock.RLock()
2477 defer c.ExtLock.RUnlock()
2478 if _, ok := c.Extensions["GLX"]; !ok {
2479 panic("Cannot issue request 'FeedbackBuffer' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2480 }
2481 cookie := c.NewCookie(false, false)
2482 c.NewRequest(feedbackBufferRequest(c, ContextTag, Size, Type), cookie)
2483 return FeedbackBufferCookie{cookie}
2484 }
2485
2486
2487
2488 func FeedbackBufferChecked(c *xgb.Conn, ContextTag ContextTag, Size int32, Type int32) FeedbackBufferCookie {
2489 c.ExtLock.RLock()
2490 defer c.ExtLock.RUnlock()
2491 if _, ok := c.Extensions["GLX"]; !ok {
2492 panic("Cannot issue request 'FeedbackBuffer' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2493 }
2494 cookie := c.NewCookie(true, false)
2495 c.NewRequest(feedbackBufferRequest(c, ContextTag, Size, Type), cookie)
2496 return FeedbackBufferCookie{cookie}
2497 }
2498
2499
2500
2501 func (cook FeedbackBufferCookie) Check() error {
2502 return cook.Cookie.Check()
2503 }
2504
2505
2506
2507 func feedbackBufferRequest(c *xgb.Conn, ContextTag ContextTag, Size int32, Type int32) []byte {
2508 size := 16
2509 b := 0
2510 buf := make([]byte, size)
2511
2512 c.ExtLock.RLock()
2513 buf[b] = c.Extensions["GLX"]
2514 c.ExtLock.RUnlock()
2515 b += 1
2516
2517 buf[b] = 105
2518 b += 1
2519
2520 xgb.Put16(buf[b:], uint16(size/4))
2521 b += 2
2522
2523 xgb.Put32(buf[b:], uint32(ContextTag))
2524 b += 4
2525
2526 xgb.Put32(buf[b:], uint32(Size))
2527 b += 4
2528
2529 xgb.Put32(buf[b:], uint32(Type))
2530 b += 4
2531
2532 return buf
2533 }
2534
2535
2536 type FinishCookie struct {
2537 *xgb.Cookie
2538 }
2539
2540
2541
2542 func Finish(c *xgb.Conn, ContextTag ContextTag) FinishCookie {
2543 c.ExtLock.RLock()
2544 defer c.ExtLock.RUnlock()
2545 if _, ok := c.Extensions["GLX"]; !ok {
2546 panic("Cannot issue request 'Finish' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2547 }
2548 cookie := c.NewCookie(true, true)
2549 c.NewRequest(finishRequest(c, ContextTag), cookie)
2550 return FinishCookie{cookie}
2551 }
2552
2553
2554
2555 func FinishUnchecked(c *xgb.Conn, ContextTag ContextTag) FinishCookie {
2556 c.ExtLock.RLock()
2557 defer c.ExtLock.RUnlock()
2558 if _, ok := c.Extensions["GLX"]; !ok {
2559 panic("Cannot issue request 'Finish' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2560 }
2561 cookie := c.NewCookie(false, true)
2562 c.NewRequest(finishRequest(c, ContextTag), cookie)
2563 return FinishCookie{cookie}
2564 }
2565
2566
2567 type FinishReply struct {
2568 Sequence uint16
2569 Length uint32
2570
2571 }
2572
2573
2574 func (cook FinishCookie) Reply() (*FinishReply, error) {
2575 buf, err := cook.Cookie.Reply()
2576 if err != nil {
2577 return nil, err
2578 }
2579 if buf == nil {
2580 return nil, nil
2581 }
2582 return finishReply(buf), nil
2583 }
2584
2585
2586 func finishReply(buf []byte) *FinishReply {
2587 v := new(FinishReply)
2588 b := 1
2589
2590 b += 1
2591
2592 v.Sequence = xgb.Get16(buf[b:])
2593 b += 2
2594
2595 v.Length = xgb.Get32(buf[b:])
2596 b += 4
2597
2598 return v
2599 }
2600
2601
2602
2603 func finishRequest(c *xgb.Conn, ContextTag ContextTag) []byte {
2604 size := 8
2605 b := 0
2606 buf := make([]byte, size)
2607
2608 c.ExtLock.RLock()
2609 buf[b] = c.Extensions["GLX"]
2610 c.ExtLock.RUnlock()
2611 b += 1
2612
2613 buf[b] = 108
2614 b += 1
2615
2616 xgb.Put16(buf[b:], uint16(size/4))
2617 b += 2
2618
2619 xgb.Put32(buf[b:], uint32(ContextTag))
2620 b += 4
2621
2622 return buf
2623 }
2624
2625
2626 type FlushCookie struct {
2627 *xgb.Cookie
2628 }
2629
2630
2631
2632 func Flush(c *xgb.Conn, ContextTag ContextTag) FlushCookie {
2633 c.ExtLock.RLock()
2634 defer c.ExtLock.RUnlock()
2635 if _, ok := c.Extensions["GLX"]; !ok {
2636 panic("Cannot issue request 'Flush' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2637 }
2638 cookie := c.NewCookie(false, false)
2639 c.NewRequest(flushRequest(c, ContextTag), cookie)
2640 return FlushCookie{cookie}
2641 }
2642
2643
2644
2645 func FlushChecked(c *xgb.Conn, ContextTag ContextTag) FlushCookie {
2646 c.ExtLock.RLock()
2647 defer c.ExtLock.RUnlock()
2648 if _, ok := c.Extensions["GLX"]; !ok {
2649 panic("Cannot issue request 'Flush' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2650 }
2651 cookie := c.NewCookie(true, false)
2652 c.NewRequest(flushRequest(c, ContextTag), cookie)
2653 return FlushCookie{cookie}
2654 }
2655
2656
2657
2658 func (cook FlushCookie) Check() error {
2659 return cook.Cookie.Check()
2660 }
2661
2662
2663
2664 func flushRequest(c *xgb.Conn, ContextTag ContextTag) []byte {
2665 size := 8
2666 b := 0
2667 buf := make([]byte, size)
2668
2669 c.ExtLock.RLock()
2670 buf[b] = c.Extensions["GLX"]
2671 c.ExtLock.RUnlock()
2672 b += 1
2673
2674 buf[b] = 142
2675 b += 1
2676
2677 xgb.Put16(buf[b:], uint16(size/4))
2678 b += 2
2679
2680 xgb.Put32(buf[b:], uint32(ContextTag))
2681 b += 4
2682
2683 return buf
2684 }
2685
2686
2687 type GenListsCookie struct {
2688 *xgb.Cookie
2689 }
2690
2691
2692
2693 func GenLists(c *xgb.Conn, ContextTag ContextTag, Range int32) GenListsCookie {
2694 c.ExtLock.RLock()
2695 defer c.ExtLock.RUnlock()
2696 if _, ok := c.Extensions["GLX"]; !ok {
2697 panic("Cannot issue request 'GenLists' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2698 }
2699 cookie := c.NewCookie(true, true)
2700 c.NewRequest(genListsRequest(c, ContextTag, Range), cookie)
2701 return GenListsCookie{cookie}
2702 }
2703
2704
2705
2706 func GenListsUnchecked(c *xgb.Conn, ContextTag ContextTag, Range int32) GenListsCookie {
2707 c.ExtLock.RLock()
2708 defer c.ExtLock.RUnlock()
2709 if _, ok := c.Extensions["GLX"]; !ok {
2710 panic("Cannot issue request 'GenLists' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2711 }
2712 cookie := c.NewCookie(false, true)
2713 c.NewRequest(genListsRequest(c, ContextTag, Range), cookie)
2714 return GenListsCookie{cookie}
2715 }
2716
2717
2718 type GenListsReply struct {
2719 Sequence uint16
2720 Length uint32
2721
2722 RetVal uint32
2723 }
2724
2725
2726 func (cook GenListsCookie) Reply() (*GenListsReply, error) {
2727 buf, err := cook.Cookie.Reply()
2728 if err != nil {
2729 return nil, err
2730 }
2731 if buf == nil {
2732 return nil, nil
2733 }
2734 return genListsReply(buf), nil
2735 }
2736
2737
2738 func genListsReply(buf []byte) *GenListsReply {
2739 v := new(GenListsReply)
2740 b := 1
2741
2742 b += 1
2743
2744 v.Sequence = xgb.Get16(buf[b:])
2745 b += 2
2746
2747 v.Length = xgb.Get32(buf[b:])
2748 b += 4
2749
2750 v.RetVal = xgb.Get32(buf[b:])
2751 b += 4
2752
2753 return v
2754 }
2755
2756
2757
2758 func genListsRequest(c *xgb.Conn, ContextTag ContextTag, Range int32) []byte {
2759 size := 12
2760 b := 0
2761 buf := make([]byte, size)
2762
2763 c.ExtLock.RLock()
2764 buf[b] = c.Extensions["GLX"]
2765 c.ExtLock.RUnlock()
2766 b += 1
2767
2768 buf[b] = 104
2769 b += 1
2770
2771 xgb.Put16(buf[b:], uint16(size/4))
2772 b += 2
2773
2774 xgb.Put32(buf[b:], uint32(ContextTag))
2775 b += 4
2776
2777 xgb.Put32(buf[b:], uint32(Range))
2778 b += 4
2779
2780 return buf
2781 }
2782
2783
2784 type GenQueriesARBCookie struct {
2785 *xgb.Cookie
2786 }
2787
2788
2789
2790 func GenQueriesARB(c *xgb.Conn, ContextTag ContextTag, N int32) GenQueriesARBCookie {
2791 c.ExtLock.RLock()
2792 defer c.ExtLock.RUnlock()
2793 if _, ok := c.Extensions["GLX"]; !ok {
2794 panic("Cannot issue request 'GenQueriesARB' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2795 }
2796 cookie := c.NewCookie(true, true)
2797 c.NewRequest(genQueriesARBRequest(c, ContextTag, N), cookie)
2798 return GenQueriesARBCookie{cookie}
2799 }
2800
2801
2802
2803 func GenQueriesARBUnchecked(c *xgb.Conn, ContextTag ContextTag, N int32) GenQueriesARBCookie {
2804 c.ExtLock.RLock()
2805 defer c.ExtLock.RUnlock()
2806 if _, ok := c.Extensions["GLX"]; !ok {
2807 panic("Cannot issue request 'GenQueriesARB' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2808 }
2809 cookie := c.NewCookie(false, true)
2810 c.NewRequest(genQueriesARBRequest(c, ContextTag, N), cookie)
2811 return GenQueriesARBCookie{cookie}
2812 }
2813
2814
2815 type GenQueriesARBReply struct {
2816 Sequence uint16
2817 Length uint32
2818
2819
2820 Data []uint32
2821 }
2822
2823
2824 func (cook GenQueriesARBCookie) Reply() (*GenQueriesARBReply, error) {
2825 buf, err := cook.Cookie.Reply()
2826 if err != nil {
2827 return nil, err
2828 }
2829 if buf == nil {
2830 return nil, nil
2831 }
2832 return genQueriesARBReply(buf), nil
2833 }
2834
2835
2836 func genQueriesARBReply(buf []byte) *GenQueriesARBReply {
2837 v := new(GenQueriesARBReply)
2838 b := 1
2839
2840 b += 1
2841
2842 v.Sequence = xgb.Get16(buf[b:])
2843 b += 2
2844
2845 v.Length = xgb.Get32(buf[b:])
2846 b += 4
2847
2848 b += 24
2849
2850 v.Data = make([]uint32, v.Length)
2851 for i := 0; i < int(v.Length); i++ {
2852 v.Data[i] = xgb.Get32(buf[b:])
2853 b += 4
2854 }
2855
2856 return v
2857 }
2858
2859
2860
2861 func genQueriesARBRequest(c *xgb.Conn, ContextTag ContextTag, N int32) []byte {
2862 size := 12
2863 b := 0
2864 buf := make([]byte, size)
2865
2866 c.ExtLock.RLock()
2867 buf[b] = c.Extensions["GLX"]
2868 c.ExtLock.RUnlock()
2869 b += 1
2870
2871 buf[b] = 162
2872 b += 1
2873
2874 xgb.Put16(buf[b:], uint16(size/4))
2875 b += 2
2876
2877 xgb.Put32(buf[b:], uint32(ContextTag))
2878 b += 4
2879
2880 xgb.Put32(buf[b:], uint32(N))
2881 b += 4
2882
2883 return buf
2884 }
2885
2886
2887 type GenTexturesCookie struct {
2888 *xgb.Cookie
2889 }
2890
2891
2892
2893 func GenTextures(c *xgb.Conn, ContextTag ContextTag, N int32) GenTexturesCookie {
2894 c.ExtLock.RLock()
2895 defer c.ExtLock.RUnlock()
2896 if _, ok := c.Extensions["GLX"]; !ok {
2897 panic("Cannot issue request 'GenTextures' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2898 }
2899 cookie := c.NewCookie(true, true)
2900 c.NewRequest(genTexturesRequest(c, ContextTag, N), cookie)
2901 return GenTexturesCookie{cookie}
2902 }
2903
2904
2905
2906 func GenTexturesUnchecked(c *xgb.Conn, ContextTag ContextTag, N int32) GenTexturesCookie {
2907 c.ExtLock.RLock()
2908 defer c.ExtLock.RUnlock()
2909 if _, ok := c.Extensions["GLX"]; !ok {
2910 panic("Cannot issue request 'GenTextures' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
2911 }
2912 cookie := c.NewCookie(false, true)
2913 c.NewRequest(genTexturesRequest(c, ContextTag, N), cookie)
2914 return GenTexturesCookie{cookie}
2915 }
2916
2917
2918 type GenTexturesReply struct {
2919 Sequence uint16
2920 Length uint32
2921
2922
2923 Data []uint32
2924 }
2925
2926
2927 func (cook GenTexturesCookie) Reply() (*GenTexturesReply, error) {
2928 buf, err := cook.Cookie.Reply()
2929 if err != nil {
2930 return nil, err
2931 }
2932 if buf == nil {
2933 return nil, nil
2934 }
2935 return genTexturesReply(buf), nil
2936 }
2937
2938
2939 func genTexturesReply(buf []byte) *GenTexturesReply {
2940 v := new(GenTexturesReply)
2941 b := 1
2942
2943 b += 1
2944
2945 v.Sequence = xgb.Get16(buf[b:])
2946 b += 2
2947
2948 v.Length = xgb.Get32(buf[b:])
2949 b += 4
2950
2951 b += 24
2952
2953 v.Data = make([]uint32, v.Length)
2954 for i := 0; i < int(v.Length); i++ {
2955 v.Data[i] = xgb.Get32(buf[b:])
2956 b += 4
2957 }
2958
2959 return v
2960 }
2961
2962
2963
2964 func genTexturesRequest(c *xgb.Conn, ContextTag ContextTag, N int32) []byte {
2965 size := 12
2966 b := 0
2967 buf := make([]byte, size)
2968
2969 c.ExtLock.RLock()
2970 buf[b] = c.Extensions["GLX"]
2971 c.ExtLock.RUnlock()
2972 b += 1
2973
2974 buf[b] = 145
2975 b += 1
2976
2977 xgb.Put16(buf[b:], uint16(size/4))
2978 b += 2
2979
2980 xgb.Put32(buf[b:], uint32(ContextTag))
2981 b += 4
2982
2983 xgb.Put32(buf[b:], uint32(N))
2984 b += 4
2985
2986 return buf
2987 }
2988
2989
2990 type GetBooleanvCookie struct {
2991 *xgb.Cookie
2992 }
2993
2994
2995
2996 func GetBooleanv(c *xgb.Conn, ContextTag ContextTag, Pname int32) GetBooleanvCookie {
2997 c.ExtLock.RLock()
2998 defer c.ExtLock.RUnlock()
2999 if _, ok := c.Extensions["GLX"]; !ok {
3000 panic("Cannot issue request 'GetBooleanv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
3001 }
3002 cookie := c.NewCookie(true, true)
3003 c.NewRequest(getBooleanvRequest(c, ContextTag, Pname), cookie)
3004 return GetBooleanvCookie{cookie}
3005 }
3006
3007
3008
3009 func GetBooleanvUnchecked(c *xgb.Conn, ContextTag ContextTag, Pname int32) GetBooleanvCookie {
3010 c.ExtLock.RLock()
3011 defer c.ExtLock.RUnlock()
3012 if _, ok := c.Extensions["GLX"]; !ok {
3013 panic("Cannot issue request 'GetBooleanv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
3014 }
3015 cookie := c.NewCookie(false, true)
3016 c.NewRequest(getBooleanvRequest(c, ContextTag, Pname), cookie)
3017 return GetBooleanvCookie{cookie}
3018 }
3019
3020
3021 type GetBooleanvReply struct {
3022 Sequence uint16
3023 Length uint32
3024
3025
3026 N uint32
3027 Datum bool
3028
3029 Data []bool
3030 }
3031
3032
3033 func (cook GetBooleanvCookie) Reply() (*GetBooleanvReply, error) {
3034 buf, err := cook.Cookie.Reply()
3035 if err != nil {
3036 return nil, err
3037 }
3038 if buf == nil {
3039 return nil, nil
3040 }
3041 return getBooleanvReply(buf), nil
3042 }
3043
3044
3045 func getBooleanvReply(buf []byte) *GetBooleanvReply {
3046 v := new(GetBooleanvReply)
3047 b := 1
3048
3049 b += 1
3050
3051 v.Sequence = xgb.Get16(buf[b:])
3052 b += 2
3053
3054 v.Length = xgb.Get32(buf[b:])
3055 b += 4
3056
3057 b += 4
3058
3059 v.N = xgb.Get32(buf[b:])
3060 b += 4
3061
3062 if buf[b] == 1 {
3063 v.Datum = true
3064 } else {
3065 v.Datum = false
3066 }
3067 b += 1
3068
3069 b += 15
3070
3071 v.Data = make([]bool, v.N)
3072 for i := 0; i < int(v.N); i++ {
3073 if buf[b] == 1 {
3074 v.Data[i] = true
3075 } else {
3076 v.Data[i] = false
3077 }
3078 b += 1
3079 }
3080
3081 return v
3082 }
3083
3084
3085
3086 func getBooleanvRequest(c *xgb.Conn, ContextTag ContextTag, Pname int32) []byte {
3087 size := 12
3088 b := 0
3089 buf := make([]byte, size)
3090
3091 c.ExtLock.RLock()
3092 buf[b] = c.Extensions["GLX"]
3093 c.ExtLock.RUnlock()
3094 b += 1
3095
3096 buf[b] = 112
3097 b += 1
3098
3099 xgb.Put16(buf[b:], uint16(size/4))
3100 b += 2
3101
3102 xgb.Put32(buf[b:], uint32(ContextTag))
3103 b += 4
3104
3105 xgb.Put32(buf[b:], uint32(Pname))
3106 b += 4
3107
3108 return buf
3109 }
3110
3111
3112 type GetClipPlaneCookie struct {
3113 *xgb.Cookie
3114 }
3115
3116
3117
3118 func GetClipPlane(c *xgb.Conn, ContextTag ContextTag, Plane int32) GetClipPlaneCookie {
3119 c.ExtLock.RLock()
3120 defer c.ExtLock.RUnlock()
3121 if _, ok := c.Extensions["GLX"]; !ok {
3122 panic("Cannot issue request 'GetClipPlane' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
3123 }
3124 cookie := c.NewCookie(true, true)
3125 c.NewRequest(getClipPlaneRequest(c, ContextTag, Plane), cookie)
3126 return GetClipPlaneCookie{cookie}
3127 }
3128
3129
3130
3131 func GetClipPlaneUnchecked(c *xgb.Conn, ContextTag ContextTag, Plane int32) GetClipPlaneCookie {
3132 c.ExtLock.RLock()
3133 defer c.ExtLock.RUnlock()
3134 if _, ok := c.Extensions["GLX"]; !ok {
3135 panic("Cannot issue request 'GetClipPlane' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
3136 }
3137 cookie := c.NewCookie(false, true)
3138 c.NewRequest(getClipPlaneRequest(c, ContextTag, Plane), cookie)
3139 return GetClipPlaneCookie{cookie}
3140 }
3141
3142
3143 type GetClipPlaneReply struct {
3144 Sequence uint16
3145 Length uint32
3146
3147
3148 Data []Float64
3149 }
3150
3151
3152 func (cook GetClipPlaneCookie) Reply() (*GetClipPlaneReply, error) {
3153 buf, err := cook.Cookie.Reply()
3154 if err != nil {
3155 return nil, err
3156 }
3157 if buf == nil {
3158 return nil, nil
3159 }
3160 return getClipPlaneReply(buf), nil
3161 }
3162
3163
3164 func getClipPlaneReply(buf []byte) *GetClipPlaneReply {
3165 v := new(GetClipPlaneReply)
3166 b := 1
3167
3168 b += 1
3169
3170 v.Sequence = xgb.Get16(buf[b:])
3171 b += 2
3172
3173 v.Length = xgb.Get32(buf[b:])
3174 b += 4
3175
3176 b += 24
3177
3178 v.Data = make([]Float64, (int(v.Length) / 2))
3179 for i := 0; i < int((int(v.Length) / 2)); i++ {
3180 v.Data[i] = Float64(xgb.Get64(buf[b:]))
3181 b += 8
3182 }
3183
3184 return v
3185 }
3186
3187
3188
3189 func getClipPlaneRequest(c *xgb.Conn, ContextTag ContextTag, Plane int32) []byte {
3190 size := 12
3191 b := 0
3192 buf := make([]byte, size)
3193
3194 c.ExtLock.RLock()
3195 buf[b] = c.Extensions["GLX"]
3196 c.ExtLock.RUnlock()
3197 b += 1
3198
3199 buf[b] = 113
3200 b += 1
3201
3202 xgb.Put16(buf[b:], uint16(size/4))
3203 b += 2
3204
3205 xgb.Put32(buf[b:], uint32(ContextTag))
3206 b += 4
3207
3208 xgb.Put32(buf[b:], uint32(Plane))
3209 b += 4
3210
3211 return buf
3212 }
3213
3214
3215 type GetColorTableCookie struct {
3216 *xgb.Cookie
3217 }
3218
3219
3220
3221 func GetColorTable(c *xgb.Conn, ContextTag ContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool) GetColorTableCookie {
3222 c.ExtLock.RLock()
3223 defer c.ExtLock.RUnlock()
3224 if _, ok := c.Extensions["GLX"]; !ok {
3225 panic("Cannot issue request 'GetColorTable' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
3226 }
3227 cookie := c.NewCookie(true, true)
3228 c.NewRequest(getColorTableRequest(c, ContextTag, Target, Format, Type, SwapBytes), cookie)
3229 return GetColorTableCookie{cookie}
3230 }
3231
3232
3233
3234 func GetColorTableUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool) GetColorTableCookie {
3235 c.ExtLock.RLock()
3236 defer c.ExtLock.RUnlock()
3237 if _, ok := c.Extensions["GLX"]; !ok {
3238 panic("Cannot issue request 'GetColorTable' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
3239 }
3240 cookie := c.NewCookie(false, true)
3241 c.NewRequest(getColorTableRequest(c, ContextTag, Target, Format, Type, SwapBytes), cookie)
3242 return GetColorTableCookie{cookie}
3243 }
3244
3245
3246 type GetColorTableReply struct {
3247 Sequence uint16
3248 Length uint32
3249
3250
3251 Width int32
3252
3253 Data []byte
3254 }
3255
3256
3257 func (cook GetColorTableCookie) Reply() (*GetColorTableReply, error) {
3258 buf, err := cook.Cookie.Reply()
3259 if err != nil {
3260 return nil, err
3261 }
3262 if buf == nil {
3263 return nil, nil
3264 }
3265 return getColorTableReply(buf), nil
3266 }
3267
3268
3269 func getColorTableReply(buf []byte) *GetColorTableReply {
3270 v := new(GetColorTableReply)
3271 b := 1
3272
3273 b += 1
3274
3275 v.Sequence = xgb.Get16(buf[b:])
3276 b += 2
3277
3278 v.Length = xgb.Get32(buf[b:])
3279 b += 4
3280
3281 b += 8
3282
3283 v.Width = int32(xgb.Get32(buf[b:]))
3284 b += 4
3285
3286 b += 12
3287
3288 v.Data = make([]byte, (int(v.Length) * 4))
3289 copy(v.Data[:(int(v.Length)*4)], buf[b:])
3290 b += int((int(v.Length) * 4))
3291
3292 return v
3293 }
3294
3295
3296
3297 func getColorTableRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool) []byte {
3298 size := 24
3299 b := 0
3300 buf := make([]byte, size)
3301
3302 c.ExtLock.RLock()
3303 buf[b] = c.Extensions["GLX"]
3304 c.ExtLock.RUnlock()
3305 b += 1
3306
3307 buf[b] = 147
3308 b += 1
3309
3310 xgb.Put16(buf[b:], uint16(size/4))
3311 b += 2
3312
3313 xgb.Put32(buf[b:], uint32(ContextTag))
3314 b += 4
3315
3316 xgb.Put32(buf[b:], Target)
3317 b += 4
3318
3319 xgb.Put32(buf[b:], Format)
3320 b += 4
3321
3322 xgb.Put32(buf[b:], Type)
3323 b += 4
3324
3325 if SwapBytes {
3326 buf[b] = 1
3327 } else {
3328 buf[b] = 0
3329 }
3330 b += 1
3331
3332 return buf
3333 }
3334
3335
3336 type GetColorTableParameterfvCookie struct {
3337 *xgb.Cookie
3338 }
3339
3340
3341
3342 func GetColorTableParameterfv(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetColorTableParameterfvCookie {
3343 c.ExtLock.RLock()
3344 defer c.ExtLock.RUnlock()
3345 if _, ok := c.Extensions["GLX"]; !ok {
3346 panic("Cannot issue request 'GetColorTableParameterfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
3347 }
3348 cookie := c.NewCookie(true, true)
3349 c.NewRequest(getColorTableParameterfvRequest(c, ContextTag, Target, Pname), cookie)
3350 return GetColorTableParameterfvCookie{cookie}
3351 }
3352
3353
3354
3355 func GetColorTableParameterfvUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetColorTableParameterfvCookie {
3356 c.ExtLock.RLock()
3357 defer c.ExtLock.RUnlock()
3358 if _, ok := c.Extensions["GLX"]; !ok {
3359 panic("Cannot issue request 'GetColorTableParameterfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
3360 }
3361 cookie := c.NewCookie(false, true)
3362 c.NewRequest(getColorTableParameterfvRequest(c, ContextTag, Target, Pname), cookie)
3363 return GetColorTableParameterfvCookie{cookie}
3364 }
3365
3366
3367 type GetColorTableParameterfvReply struct {
3368 Sequence uint16
3369 Length uint32
3370
3371
3372 N uint32
3373 Datum Float32
3374
3375 Data []Float32
3376 }
3377
3378
3379 func (cook GetColorTableParameterfvCookie) Reply() (*GetColorTableParameterfvReply, error) {
3380 buf, err := cook.Cookie.Reply()
3381 if err != nil {
3382 return nil, err
3383 }
3384 if buf == nil {
3385 return nil, nil
3386 }
3387 return getColorTableParameterfvReply(buf), nil
3388 }
3389
3390
3391 func getColorTableParameterfvReply(buf []byte) *GetColorTableParameterfvReply {
3392 v := new(GetColorTableParameterfvReply)
3393 b := 1
3394
3395 b += 1
3396
3397 v.Sequence = xgb.Get16(buf[b:])
3398 b += 2
3399
3400 v.Length = xgb.Get32(buf[b:])
3401 b += 4
3402
3403 b += 4
3404
3405 v.N = xgb.Get32(buf[b:])
3406 b += 4
3407
3408 v.Datum = Float32(xgb.Get32(buf[b:]))
3409 b += 4
3410
3411 b += 12
3412
3413 v.Data = make([]Float32, v.N)
3414 for i := 0; i < int(v.N); i++ {
3415 v.Data[i] = Float32(xgb.Get32(buf[b:]))
3416 b += 4
3417 }
3418
3419 return v
3420 }
3421
3422
3423
3424 func getColorTableParameterfvRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) []byte {
3425 size := 16
3426 b := 0
3427 buf := make([]byte, size)
3428
3429 c.ExtLock.RLock()
3430 buf[b] = c.Extensions["GLX"]
3431 c.ExtLock.RUnlock()
3432 b += 1
3433
3434 buf[b] = 148
3435 b += 1
3436
3437 xgb.Put16(buf[b:], uint16(size/4))
3438 b += 2
3439
3440 xgb.Put32(buf[b:], uint32(ContextTag))
3441 b += 4
3442
3443 xgb.Put32(buf[b:], Target)
3444 b += 4
3445
3446 xgb.Put32(buf[b:], Pname)
3447 b += 4
3448
3449 return buf
3450 }
3451
3452
3453 type GetColorTableParameterivCookie struct {
3454 *xgb.Cookie
3455 }
3456
3457
3458
3459 func GetColorTableParameteriv(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetColorTableParameterivCookie {
3460 c.ExtLock.RLock()
3461 defer c.ExtLock.RUnlock()
3462 if _, ok := c.Extensions["GLX"]; !ok {
3463 panic("Cannot issue request 'GetColorTableParameteriv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
3464 }
3465 cookie := c.NewCookie(true, true)
3466 c.NewRequest(getColorTableParameterivRequest(c, ContextTag, Target, Pname), cookie)
3467 return GetColorTableParameterivCookie{cookie}
3468 }
3469
3470
3471
3472 func GetColorTableParameterivUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetColorTableParameterivCookie {
3473 c.ExtLock.RLock()
3474 defer c.ExtLock.RUnlock()
3475 if _, ok := c.Extensions["GLX"]; !ok {
3476 panic("Cannot issue request 'GetColorTableParameteriv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
3477 }
3478 cookie := c.NewCookie(false, true)
3479 c.NewRequest(getColorTableParameterivRequest(c, ContextTag, Target, Pname), cookie)
3480 return GetColorTableParameterivCookie{cookie}
3481 }
3482
3483
3484 type GetColorTableParameterivReply struct {
3485 Sequence uint16
3486 Length uint32
3487
3488
3489 N uint32
3490 Datum int32
3491
3492 Data []int32
3493 }
3494
3495
3496 func (cook GetColorTableParameterivCookie) Reply() (*GetColorTableParameterivReply, error) {
3497 buf, err := cook.Cookie.Reply()
3498 if err != nil {
3499 return nil, err
3500 }
3501 if buf == nil {
3502 return nil, nil
3503 }
3504 return getColorTableParameterivReply(buf), nil
3505 }
3506
3507
3508 func getColorTableParameterivReply(buf []byte) *GetColorTableParameterivReply {
3509 v := new(GetColorTableParameterivReply)
3510 b := 1
3511
3512 b += 1
3513
3514 v.Sequence = xgb.Get16(buf[b:])
3515 b += 2
3516
3517 v.Length = xgb.Get32(buf[b:])
3518 b += 4
3519
3520 b += 4
3521
3522 v.N = xgb.Get32(buf[b:])
3523 b += 4
3524
3525 v.Datum = int32(xgb.Get32(buf[b:]))
3526 b += 4
3527
3528 b += 12
3529
3530 v.Data = make([]int32, v.N)
3531 for i := 0; i < int(v.N); i++ {
3532 v.Data[i] = int32(xgb.Get32(buf[b:]))
3533 b += 4
3534 }
3535
3536 return v
3537 }
3538
3539
3540
3541 func getColorTableParameterivRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) []byte {
3542 size := 16
3543 b := 0
3544 buf := make([]byte, size)
3545
3546 c.ExtLock.RLock()
3547 buf[b] = c.Extensions["GLX"]
3548 c.ExtLock.RUnlock()
3549 b += 1
3550
3551 buf[b] = 149
3552 b += 1
3553
3554 xgb.Put16(buf[b:], uint16(size/4))
3555 b += 2
3556
3557 xgb.Put32(buf[b:], uint32(ContextTag))
3558 b += 4
3559
3560 xgb.Put32(buf[b:], Target)
3561 b += 4
3562
3563 xgb.Put32(buf[b:], Pname)
3564 b += 4
3565
3566 return buf
3567 }
3568
3569
3570 type GetCompressedTexImageARBCookie struct {
3571 *xgb.Cookie
3572 }
3573
3574
3575
3576 func GetCompressedTexImageARB(c *xgb.Conn, ContextTag ContextTag, Target uint32, Level int32) GetCompressedTexImageARBCookie {
3577 c.ExtLock.RLock()
3578 defer c.ExtLock.RUnlock()
3579 if _, ok := c.Extensions["GLX"]; !ok {
3580 panic("Cannot issue request 'GetCompressedTexImageARB' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
3581 }
3582 cookie := c.NewCookie(true, true)
3583 c.NewRequest(getCompressedTexImageARBRequest(c, ContextTag, Target, Level), cookie)
3584 return GetCompressedTexImageARBCookie{cookie}
3585 }
3586
3587
3588
3589 func GetCompressedTexImageARBUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Level int32) GetCompressedTexImageARBCookie {
3590 c.ExtLock.RLock()
3591 defer c.ExtLock.RUnlock()
3592 if _, ok := c.Extensions["GLX"]; !ok {
3593 panic("Cannot issue request 'GetCompressedTexImageARB' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
3594 }
3595 cookie := c.NewCookie(false, true)
3596 c.NewRequest(getCompressedTexImageARBRequest(c, ContextTag, Target, Level), cookie)
3597 return GetCompressedTexImageARBCookie{cookie}
3598 }
3599
3600
3601 type GetCompressedTexImageARBReply struct {
3602 Sequence uint16
3603 Length uint32
3604
3605
3606 Size int32
3607
3608 Data []byte
3609 }
3610
3611
3612 func (cook GetCompressedTexImageARBCookie) Reply() (*GetCompressedTexImageARBReply, error) {
3613 buf, err := cook.Cookie.Reply()
3614 if err != nil {
3615 return nil, err
3616 }
3617 if buf == nil {
3618 return nil, nil
3619 }
3620 return getCompressedTexImageARBReply(buf), nil
3621 }
3622
3623
3624 func getCompressedTexImageARBReply(buf []byte) *GetCompressedTexImageARBReply {
3625 v := new(GetCompressedTexImageARBReply)
3626 b := 1
3627
3628 b += 1
3629
3630 v.Sequence = xgb.Get16(buf[b:])
3631 b += 2
3632
3633 v.Length = xgb.Get32(buf[b:])
3634 b += 4
3635
3636 b += 8
3637
3638 v.Size = int32(xgb.Get32(buf[b:]))
3639 b += 4
3640
3641 b += 12
3642
3643 v.Data = make([]byte, (int(v.Length) * 4))
3644 copy(v.Data[:(int(v.Length)*4)], buf[b:])
3645 b += int((int(v.Length) * 4))
3646
3647 return v
3648 }
3649
3650
3651
3652 func getCompressedTexImageARBRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Level int32) []byte {
3653 size := 16
3654 b := 0
3655 buf := make([]byte, size)
3656
3657 c.ExtLock.RLock()
3658 buf[b] = c.Extensions["GLX"]
3659 c.ExtLock.RUnlock()
3660 b += 1
3661
3662 buf[b] = 160
3663 b += 1
3664
3665 xgb.Put16(buf[b:], uint16(size/4))
3666 b += 2
3667
3668 xgb.Put32(buf[b:], uint32(ContextTag))
3669 b += 4
3670
3671 xgb.Put32(buf[b:], Target)
3672 b += 4
3673
3674 xgb.Put32(buf[b:], uint32(Level))
3675 b += 4
3676
3677 return buf
3678 }
3679
3680
3681 type GetConvolutionFilterCookie struct {
3682 *xgb.Cookie
3683 }
3684
3685
3686
3687 func GetConvolutionFilter(c *xgb.Conn, ContextTag ContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool) GetConvolutionFilterCookie {
3688 c.ExtLock.RLock()
3689 defer c.ExtLock.RUnlock()
3690 if _, ok := c.Extensions["GLX"]; !ok {
3691 panic("Cannot issue request 'GetConvolutionFilter' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
3692 }
3693 cookie := c.NewCookie(true, true)
3694 c.NewRequest(getConvolutionFilterRequest(c, ContextTag, Target, Format, Type, SwapBytes), cookie)
3695 return GetConvolutionFilterCookie{cookie}
3696 }
3697
3698
3699
3700 func GetConvolutionFilterUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool) GetConvolutionFilterCookie {
3701 c.ExtLock.RLock()
3702 defer c.ExtLock.RUnlock()
3703 if _, ok := c.Extensions["GLX"]; !ok {
3704 panic("Cannot issue request 'GetConvolutionFilter' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
3705 }
3706 cookie := c.NewCookie(false, true)
3707 c.NewRequest(getConvolutionFilterRequest(c, ContextTag, Target, Format, Type, SwapBytes), cookie)
3708 return GetConvolutionFilterCookie{cookie}
3709 }
3710
3711
3712 type GetConvolutionFilterReply struct {
3713 Sequence uint16
3714 Length uint32
3715
3716
3717 Width int32
3718 Height int32
3719
3720 Data []byte
3721 }
3722
3723
3724 func (cook GetConvolutionFilterCookie) Reply() (*GetConvolutionFilterReply, error) {
3725 buf, err := cook.Cookie.Reply()
3726 if err != nil {
3727 return nil, err
3728 }
3729 if buf == nil {
3730 return nil, nil
3731 }
3732 return getConvolutionFilterReply(buf), nil
3733 }
3734
3735
3736 func getConvolutionFilterReply(buf []byte) *GetConvolutionFilterReply {
3737 v := new(GetConvolutionFilterReply)
3738 b := 1
3739
3740 b += 1
3741
3742 v.Sequence = xgb.Get16(buf[b:])
3743 b += 2
3744
3745 v.Length = xgb.Get32(buf[b:])
3746 b += 4
3747
3748 b += 8
3749
3750 v.Width = int32(xgb.Get32(buf[b:]))
3751 b += 4
3752
3753 v.Height = int32(xgb.Get32(buf[b:]))
3754 b += 4
3755
3756 b += 8
3757
3758 v.Data = make([]byte, (int(v.Length) * 4))
3759 copy(v.Data[:(int(v.Length)*4)], buf[b:])
3760 b += int((int(v.Length) * 4))
3761
3762 return v
3763 }
3764
3765
3766
3767 func getConvolutionFilterRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool) []byte {
3768 size := 24
3769 b := 0
3770 buf := make([]byte, size)
3771
3772 c.ExtLock.RLock()
3773 buf[b] = c.Extensions["GLX"]
3774 c.ExtLock.RUnlock()
3775 b += 1
3776
3777 buf[b] = 150
3778 b += 1
3779
3780 xgb.Put16(buf[b:], uint16(size/4))
3781 b += 2
3782
3783 xgb.Put32(buf[b:], uint32(ContextTag))
3784 b += 4
3785
3786 xgb.Put32(buf[b:], Target)
3787 b += 4
3788
3789 xgb.Put32(buf[b:], Format)
3790 b += 4
3791
3792 xgb.Put32(buf[b:], Type)
3793 b += 4
3794
3795 if SwapBytes {
3796 buf[b] = 1
3797 } else {
3798 buf[b] = 0
3799 }
3800 b += 1
3801
3802 return buf
3803 }
3804
3805
3806 type GetConvolutionParameterfvCookie struct {
3807 *xgb.Cookie
3808 }
3809
3810
3811
3812 func GetConvolutionParameterfv(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetConvolutionParameterfvCookie {
3813 c.ExtLock.RLock()
3814 defer c.ExtLock.RUnlock()
3815 if _, ok := c.Extensions["GLX"]; !ok {
3816 panic("Cannot issue request 'GetConvolutionParameterfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
3817 }
3818 cookie := c.NewCookie(true, true)
3819 c.NewRequest(getConvolutionParameterfvRequest(c, ContextTag, Target, Pname), cookie)
3820 return GetConvolutionParameterfvCookie{cookie}
3821 }
3822
3823
3824
3825 func GetConvolutionParameterfvUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetConvolutionParameterfvCookie {
3826 c.ExtLock.RLock()
3827 defer c.ExtLock.RUnlock()
3828 if _, ok := c.Extensions["GLX"]; !ok {
3829 panic("Cannot issue request 'GetConvolutionParameterfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
3830 }
3831 cookie := c.NewCookie(false, true)
3832 c.NewRequest(getConvolutionParameterfvRequest(c, ContextTag, Target, Pname), cookie)
3833 return GetConvolutionParameterfvCookie{cookie}
3834 }
3835
3836
3837 type GetConvolutionParameterfvReply struct {
3838 Sequence uint16
3839 Length uint32
3840
3841
3842 N uint32
3843 Datum Float32
3844
3845 Data []Float32
3846 }
3847
3848
3849 func (cook GetConvolutionParameterfvCookie) Reply() (*GetConvolutionParameterfvReply, error) {
3850 buf, err := cook.Cookie.Reply()
3851 if err != nil {
3852 return nil, err
3853 }
3854 if buf == nil {
3855 return nil, nil
3856 }
3857 return getConvolutionParameterfvReply(buf), nil
3858 }
3859
3860
3861 func getConvolutionParameterfvReply(buf []byte) *GetConvolutionParameterfvReply {
3862 v := new(GetConvolutionParameterfvReply)
3863 b := 1
3864
3865 b += 1
3866
3867 v.Sequence = xgb.Get16(buf[b:])
3868 b += 2
3869
3870 v.Length = xgb.Get32(buf[b:])
3871 b += 4
3872
3873 b += 4
3874
3875 v.N = xgb.Get32(buf[b:])
3876 b += 4
3877
3878 v.Datum = Float32(xgb.Get32(buf[b:]))
3879 b += 4
3880
3881 b += 12
3882
3883 v.Data = make([]Float32, v.N)
3884 for i := 0; i < int(v.N); i++ {
3885 v.Data[i] = Float32(xgb.Get32(buf[b:]))
3886 b += 4
3887 }
3888
3889 return v
3890 }
3891
3892
3893
3894 func getConvolutionParameterfvRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) []byte {
3895 size := 16
3896 b := 0
3897 buf := make([]byte, size)
3898
3899 c.ExtLock.RLock()
3900 buf[b] = c.Extensions["GLX"]
3901 c.ExtLock.RUnlock()
3902 b += 1
3903
3904 buf[b] = 151
3905 b += 1
3906
3907 xgb.Put16(buf[b:], uint16(size/4))
3908 b += 2
3909
3910 xgb.Put32(buf[b:], uint32(ContextTag))
3911 b += 4
3912
3913 xgb.Put32(buf[b:], Target)
3914 b += 4
3915
3916 xgb.Put32(buf[b:], Pname)
3917 b += 4
3918
3919 return buf
3920 }
3921
3922
3923 type GetConvolutionParameterivCookie struct {
3924 *xgb.Cookie
3925 }
3926
3927
3928
3929 func GetConvolutionParameteriv(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetConvolutionParameterivCookie {
3930 c.ExtLock.RLock()
3931 defer c.ExtLock.RUnlock()
3932 if _, ok := c.Extensions["GLX"]; !ok {
3933 panic("Cannot issue request 'GetConvolutionParameteriv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
3934 }
3935 cookie := c.NewCookie(true, true)
3936 c.NewRequest(getConvolutionParameterivRequest(c, ContextTag, Target, Pname), cookie)
3937 return GetConvolutionParameterivCookie{cookie}
3938 }
3939
3940
3941
3942 func GetConvolutionParameterivUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetConvolutionParameterivCookie {
3943 c.ExtLock.RLock()
3944 defer c.ExtLock.RUnlock()
3945 if _, ok := c.Extensions["GLX"]; !ok {
3946 panic("Cannot issue request 'GetConvolutionParameteriv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
3947 }
3948 cookie := c.NewCookie(false, true)
3949 c.NewRequest(getConvolutionParameterivRequest(c, ContextTag, Target, Pname), cookie)
3950 return GetConvolutionParameterivCookie{cookie}
3951 }
3952
3953
3954 type GetConvolutionParameterivReply struct {
3955 Sequence uint16
3956 Length uint32
3957
3958
3959 N uint32
3960 Datum int32
3961
3962 Data []int32
3963 }
3964
3965
3966 func (cook GetConvolutionParameterivCookie) Reply() (*GetConvolutionParameterivReply, error) {
3967 buf, err := cook.Cookie.Reply()
3968 if err != nil {
3969 return nil, err
3970 }
3971 if buf == nil {
3972 return nil, nil
3973 }
3974 return getConvolutionParameterivReply(buf), nil
3975 }
3976
3977
3978 func getConvolutionParameterivReply(buf []byte) *GetConvolutionParameterivReply {
3979 v := new(GetConvolutionParameterivReply)
3980 b := 1
3981
3982 b += 1
3983
3984 v.Sequence = xgb.Get16(buf[b:])
3985 b += 2
3986
3987 v.Length = xgb.Get32(buf[b:])
3988 b += 4
3989
3990 b += 4
3991
3992 v.N = xgb.Get32(buf[b:])
3993 b += 4
3994
3995 v.Datum = int32(xgb.Get32(buf[b:]))
3996 b += 4
3997
3998 b += 12
3999
4000 v.Data = make([]int32, v.N)
4001 for i := 0; i < int(v.N); i++ {
4002 v.Data[i] = int32(xgb.Get32(buf[b:]))
4003 b += 4
4004 }
4005
4006 return v
4007 }
4008
4009
4010
4011 func getConvolutionParameterivRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) []byte {
4012 size := 16
4013 b := 0
4014 buf := make([]byte, size)
4015
4016 c.ExtLock.RLock()
4017 buf[b] = c.Extensions["GLX"]
4018 c.ExtLock.RUnlock()
4019 b += 1
4020
4021 buf[b] = 152
4022 b += 1
4023
4024 xgb.Put16(buf[b:], uint16(size/4))
4025 b += 2
4026
4027 xgb.Put32(buf[b:], uint32(ContextTag))
4028 b += 4
4029
4030 xgb.Put32(buf[b:], Target)
4031 b += 4
4032
4033 xgb.Put32(buf[b:], Pname)
4034 b += 4
4035
4036 return buf
4037 }
4038
4039
4040 type GetDoublevCookie struct {
4041 *xgb.Cookie
4042 }
4043
4044
4045
4046 func GetDoublev(c *xgb.Conn, ContextTag ContextTag, Pname uint32) GetDoublevCookie {
4047 c.ExtLock.RLock()
4048 defer c.ExtLock.RUnlock()
4049 if _, ok := c.Extensions["GLX"]; !ok {
4050 panic("Cannot issue request 'GetDoublev' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
4051 }
4052 cookie := c.NewCookie(true, true)
4053 c.NewRequest(getDoublevRequest(c, ContextTag, Pname), cookie)
4054 return GetDoublevCookie{cookie}
4055 }
4056
4057
4058
4059 func GetDoublevUnchecked(c *xgb.Conn, ContextTag ContextTag, Pname uint32) GetDoublevCookie {
4060 c.ExtLock.RLock()
4061 defer c.ExtLock.RUnlock()
4062 if _, ok := c.Extensions["GLX"]; !ok {
4063 panic("Cannot issue request 'GetDoublev' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
4064 }
4065 cookie := c.NewCookie(false, true)
4066 c.NewRequest(getDoublevRequest(c, ContextTag, Pname), cookie)
4067 return GetDoublevCookie{cookie}
4068 }
4069
4070
4071 type GetDoublevReply struct {
4072 Sequence uint16
4073 Length uint32
4074
4075
4076 N uint32
4077 Datum Float64
4078
4079 Data []Float64
4080 }
4081
4082
4083 func (cook GetDoublevCookie) Reply() (*GetDoublevReply, error) {
4084 buf, err := cook.Cookie.Reply()
4085 if err != nil {
4086 return nil, err
4087 }
4088 if buf == nil {
4089 return nil, nil
4090 }
4091 return getDoublevReply(buf), nil
4092 }
4093
4094
4095 func getDoublevReply(buf []byte) *GetDoublevReply {
4096 v := new(GetDoublevReply)
4097 b := 1
4098
4099 b += 1
4100
4101 v.Sequence = xgb.Get16(buf[b:])
4102 b += 2
4103
4104 v.Length = xgb.Get32(buf[b:])
4105 b += 4
4106
4107 b += 4
4108
4109 v.N = xgb.Get32(buf[b:])
4110 b += 4
4111
4112 v.Datum = Float64(xgb.Get64(buf[b:]))
4113 b += 8
4114
4115 b += 8
4116
4117 v.Data = make([]Float64, v.N)
4118 for i := 0; i < int(v.N); i++ {
4119 v.Data[i] = Float64(xgb.Get64(buf[b:]))
4120 b += 8
4121 }
4122
4123 return v
4124 }
4125
4126
4127
4128 func getDoublevRequest(c *xgb.Conn, ContextTag ContextTag, Pname uint32) []byte {
4129 size := 12
4130 b := 0
4131 buf := make([]byte, size)
4132
4133 c.ExtLock.RLock()
4134 buf[b] = c.Extensions["GLX"]
4135 c.ExtLock.RUnlock()
4136 b += 1
4137
4138 buf[b] = 114
4139 b += 1
4140
4141 xgb.Put16(buf[b:], uint16(size/4))
4142 b += 2
4143
4144 xgb.Put32(buf[b:], uint32(ContextTag))
4145 b += 4
4146
4147 xgb.Put32(buf[b:], Pname)
4148 b += 4
4149
4150 return buf
4151 }
4152
4153
4154 type GetDrawableAttributesCookie struct {
4155 *xgb.Cookie
4156 }
4157
4158
4159
4160 func GetDrawableAttributes(c *xgb.Conn, Drawable Drawable) GetDrawableAttributesCookie {
4161 c.ExtLock.RLock()
4162 defer c.ExtLock.RUnlock()
4163 if _, ok := c.Extensions["GLX"]; !ok {
4164 panic("Cannot issue request 'GetDrawableAttributes' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
4165 }
4166 cookie := c.NewCookie(true, true)
4167 c.NewRequest(getDrawableAttributesRequest(c, Drawable), cookie)
4168 return GetDrawableAttributesCookie{cookie}
4169 }
4170
4171
4172
4173 func GetDrawableAttributesUnchecked(c *xgb.Conn, Drawable Drawable) GetDrawableAttributesCookie {
4174 c.ExtLock.RLock()
4175 defer c.ExtLock.RUnlock()
4176 if _, ok := c.Extensions["GLX"]; !ok {
4177 panic("Cannot issue request 'GetDrawableAttributes' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
4178 }
4179 cookie := c.NewCookie(false, true)
4180 c.NewRequest(getDrawableAttributesRequest(c, Drawable), cookie)
4181 return GetDrawableAttributesCookie{cookie}
4182 }
4183
4184
4185 type GetDrawableAttributesReply struct {
4186 Sequence uint16
4187 Length uint32
4188
4189 NumAttribs uint32
4190
4191 Attribs []uint32
4192 }
4193
4194
4195 func (cook GetDrawableAttributesCookie) Reply() (*GetDrawableAttributesReply, error) {
4196 buf, err := cook.Cookie.Reply()
4197 if err != nil {
4198 return nil, err
4199 }
4200 if buf == nil {
4201 return nil, nil
4202 }
4203 return getDrawableAttributesReply(buf), nil
4204 }
4205
4206
4207 func getDrawableAttributesReply(buf []byte) *GetDrawableAttributesReply {
4208 v := new(GetDrawableAttributesReply)
4209 b := 1
4210
4211 b += 1
4212
4213 v.Sequence = xgb.Get16(buf[b:])
4214 b += 2
4215
4216 v.Length = xgb.Get32(buf[b:])
4217 b += 4
4218
4219 v.NumAttribs = xgb.Get32(buf[b:])
4220 b += 4
4221
4222 b += 20
4223
4224 v.Attribs = make([]uint32, (int(v.NumAttribs) * 2))
4225 for i := 0; i < int((int(v.NumAttribs) * 2)); i++ {
4226 v.Attribs[i] = xgb.Get32(buf[b:])
4227 b += 4
4228 }
4229
4230 return v
4231 }
4232
4233
4234
4235 func getDrawableAttributesRequest(c *xgb.Conn, Drawable Drawable) []byte {
4236 size := 8
4237 b := 0
4238 buf := make([]byte, size)
4239
4240 c.ExtLock.RLock()
4241 buf[b] = c.Extensions["GLX"]
4242 c.ExtLock.RUnlock()
4243 b += 1
4244
4245 buf[b] = 29
4246 b += 1
4247
4248 xgb.Put16(buf[b:], uint16(size/4))
4249 b += 2
4250
4251 xgb.Put32(buf[b:], uint32(Drawable))
4252 b += 4
4253
4254 return buf
4255 }
4256
4257
4258 type GetErrorCookie struct {
4259 *xgb.Cookie
4260 }
4261
4262
4263
4264 func GetError(c *xgb.Conn, ContextTag ContextTag) GetErrorCookie {
4265 c.ExtLock.RLock()
4266 defer c.ExtLock.RUnlock()
4267 if _, ok := c.Extensions["GLX"]; !ok {
4268 panic("Cannot issue request 'GetError' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
4269 }
4270 cookie := c.NewCookie(true, true)
4271 c.NewRequest(getErrorRequest(c, ContextTag), cookie)
4272 return GetErrorCookie{cookie}
4273 }
4274
4275
4276
4277 func GetErrorUnchecked(c *xgb.Conn, ContextTag ContextTag) GetErrorCookie {
4278 c.ExtLock.RLock()
4279 defer c.ExtLock.RUnlock()
4280 if _, ok := c.Extensions["GLX"]; !ok {
4281 panic("Cannot issue request 'GetError' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
4282 }
4283 cookie := c.NewCookie(false, true)
4284 c.NewRequest(getErrorRequest(c, ContextTag), cookie)
4285 return GetErrorCookie{cookie}
4286 }
4287
4288
4289 type GetErrorReply struct {
4290 Sequence uint16
4291 Length uint32
4292
4293 Error int32
4294 }
4295
4296
4297 func (cook GetErrorCookie) Reply() (*GetErrorReply, error) {
4298 buf, err := cook.Cookie.Reply()
4299 if err != nil {
4300 return nil, err
4301 }
4302 if buf == nil {
4303 return nil, nil
4304 }
4305 return getErrorReply(buf), nil
4306 }
4307
4308
4309 func getErrorReply(buf []byte) *GetErrorReply {
4310 v := new(GetErrorReply)
4311 b := 1
4312
4313 b += 1
4314
4315 v.Sequence = xgb.Get16(buf[b:])
4316 b += 2
4317
4318 v.Length = xgb.Get32(buf[b:])
4319 b += 4
4320
4321 v.Error = int32(xgb.Get32(buf[b:]))
4322 b += 4
4323
4324 return v
4325 }
4326
4327
4328
4329 func getErrorRequest(c *xgb.Conn, ContextTag ContextTag) []byte {
4330 size := 8
4331 b := 0
4332 buf := make([]byte, size)
4333
4334 c.ExtLock.RLock()
4335 buf[b] = c.Extensions["GLX"]
4336 c.ExtLock.RUnlock()
4337 b += 1
4338
4339 buf[b] = 115
4340 b += 1
4341
4342 xgb.Put16(buf[b:], uint16(size/4))
4343 b += 2
4344
4345 xgb.Put32(buf[b:], uint32(ContextTag))
4346 b += 4
4347
4348 return buf
4349 }
4350
4351
4352 type GetFBConfigsCookie struct {
4353 *xgb.Cookie
4354 }
4355
4356
4357
4358 func GetFBConfigs(c *xgb.Conn, Screen uint32) GetFBConfigsCookie {
4359 c.ExtLock.RLock()
4360 defer c.ExtLock.RUnlock()
4361 if _, ok := c.Extensions["GLX"]; !ok {
4362 panic("Cannot issue request 'GetFBConfigs' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
4363 }
4364 cookie := c.NewCookie(true, true)
4365 c.NewRequest(getFBConfigsRequest(c, Screen), cookie)
4366 return GetFBConfigsCookie{cookie}
4367 }
4368
4369
4370
4371 func GetFBConfigsUnchecked(c *xgb.Conn, Screen uint32) GetFBConfigsCookie {
4372 c.ExtLock.RLock()
4373 defer c.ExtLock.RUnlock()
4374 if _, ok := c.Extensions["GLX"]; !ok {
4375 panic("Cannot issue request 'GetFBConfigs' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
4376 }
4377 cookie := c.NewCookie(false, true)
4378 c.NewRequest(getFBConfigsRequest(c, Screen), cookie)
4379 return GetFBConfigsCookie{cookie}
4380 }
4381
4382
4383 type GetFBConfigsReply struct {
4384 Sequence uint16
4385 Length uint32
4386
4387 NumFbConfigs uint32
4388 NumProperties uint32
4389
4390 PropertyList []uint32
4391 }
4392
4393
4394 func (cook GetFBConfigsCookie) Reply() (*GetFBConfigsReply, error) {
4395 buf, err := cook.Cookie.Reply()
4396 if err != nil {
4397 return nil, err
4398 }
4399 if buf == nil {
4400 return nil, nil
4401 }
4402 return getFBConfigsReply(buf), nil
4403 }
4404
4405
4406 func getFBConfigsReply(buf []byte) *GetFBConfigsReply {
4407 v := new(GetFBConfigsReply)
4408 b := 1
4409
4410 b += 1
4411
4412 v.Sequence = xgb.Get16(buf[b:])
4413 b += 2
4414
4415 v.Length = xgb.Get32(buf[b:])
4416 b += 4
4417
4418 v.NumFbConfigs = xgb.Get32(buf[b:])
4419 b += 4
4420
4421 v.NumProperties = xgb.Get32(buf[b:])
4422 b += 4
4423
4424 b += 16
4425
4426 v.PropertyList = make([]uint32, v.Length)
4427 for i := 0; i < int(v.Length); i++ {
4428 v.PropertyList[i] = xgb.Get32(buf[b:])
4429 b += 4
4430 }
4431
4432 return v
4433 }
4434
4435
4436
4437 func getFBConfigsRequest(c *xgb.Conn, Screen uint32) []byte {
4438 size := 8
4439 b := 0
4440 buf := make([]byte, size)
4441
4442 c.ExtLock.RLock()
4443 buf[b] = c.Extensions["GLX"]
4444 c.ExtLock.RUnlock()
4445 b += 1
4446
4447 buf[b] = 21
4448 b += 1
4449
4450 xgb.Put16(buf[b:], uint16(size/4))
4451 b += 2
4452
4453 xgb.Put32(buf[b:], Screen)
4454 b += 4
4455
4456 return buf
4457 }
4458
4459
4460 type GetFloatvCookie struct {
4461 *xgb.Cookie
4462 }
4463
4464
4465
4466 func GetFloatv(c *xgb.Conn, ContextTag ContextTag, Pname uint32) GetFloatvCookie {
4467 c.ExtLock.RLock()
4468 defer c.ExtLock.RUnlock()
4469 if _, ok := c.Extensions["GLX"]; !ok {
4470 panic("Cannot issue request 'GetFloatv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
4471 }
4472 cookie := c.NewCookie(true, true)
4473 c.NewRequest(getFloatvRequest(c, ContextTag, Pname), cookie)
4474 return GetFloatvCookie{cookie}
4475 }
4476
4477
4478
4479 func GetFloatvUnchecked(c *xgb.Conn, ContextTag ContextTag, Pname uint32) GetFloatvCookie {
4480 c.ExtLock.RLock()
4481 defer c.ExtLock.RUnlock()
4482 if _, ok := c.Extensions["GLX"]; !ok {
4483 panic("Cannot issue request 'GetFloatv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
4484 }
4485 cookie := c.NewCookie(false, true)
4486 c.NewRequest(getFloatvRequest(c, ContextTag, Pname), cookie)
4487 return GetFloatvCookie{cookie}
4488 }
4489
4490
4491 type GetFloatvReply struct {
4492 Sequence uint16
4493 Length uint32
4494
4495
4496 N uint32
4497 Datum Float32
4498
4499 Data []Float32
4500 }
4501
4502
4503 func (cook GetFloatvCookie) Reply() (*GetFloatvReply, error) {
4504 buf, err := cook.Cookie.Reply()
4505 if err != nil {
4506 return nil, err
4507 }
4508 if buf == nil {
4509 return nil, nil
4510 }
4511 return getFloatvReply(buf), nil
4512 }
4513
4514
4515 func getFloatvReply(buf []byte) *GetFloatvReply {
4516 v := new(GetFloatvReply)
4517 b := 1
4518
4519 b += 1
4520
4521 v.Sequence = xgb.Get16(buf[b:])
4522 b += 2
4523
4524 v.Length = xgb.Get32(buf[b:])
4525 b += 4
4526
4527 b += 4
4528
4529 v.N = xgb.Get32(buf[b:])
4530 b += 4
4531
4532 v.Datum = Float32(xgb.Get32(buf[b:]))
4533 b += 4
4534
4535 b += 12
4536
4537 v.Data = make([]Float32, v.N)
4538 for i := 0; i < int(v.N); i++ {
4539 v.Data[i] = Float32(xgb.Get32(buf[b:]))
4540 b += 4
4541 }
4542
4543 return v
4544 }
4545
4546
4547
4548 func getFloatvRequest(c *xgb.Conn, ContextTag ContextTag, Pname uint32) []byte {
4549 size := 12
4550 b := 0
4551 buf := make([]byte, size)
4552
4553 c.ExtLock.RLock()
4554 buf[b] = c.Extensions["GLX"]
4555 c.ExtLock.RUnlock()
4556 b += 1
4557
4558 buf[b] = 116
4559 b += 1
4560
4561 xgb.Put16(buf[b:], uint16(size/4))
4562 b += 2
4563
4564 xgb.Put32(buf[b:], uint32(ContextTag))
4565 b += 4
4566
4567 xgb.Put32(buf[b:], Pname)
4568 b += 4
4569
4570 return buf
4571 }
4572
4573
4574 type GetHistogramCookie struct {
4575 *xgb.Cookie
4576 }
4577
4578
4579
4580 func GetHistogram(c *xgb.Conn, ContextTag ContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool, Reset bool) GetHistogramCookie {
4581 c.ExtLock.RLock()
4582 defer c.ExtLock.RUnlock()
4583 if _, ok := c.Extensions["GLX"]; !ok {
4584 panic("Cannot issue request 'GetHistogram' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
4585 }
4586 cookie := c.NewCookie(true, true)
4587 c.NewRequest(getHistogramRequest(c, ContextTag, Target, Format, Type, SwapBytes, Reset), cookie)
4588 return GetHistogramCookie{cookie}
4589 }
4590
4591
4592
4593 func GetHistogramUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool, Reset bool) GetHistogramCookie {
4594 c.ExtLock.RLock()
4595 defer c.ExtLock.RUnlock()
4596 if _, ok := c.Extensions["GLX"]; !ok {
4597 panic("Cannot issue request 'GetHistogram' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
4598 }
4599 cookie := c.NewCookie(false, true)
4600 c.NewRequest(getHistogramRequest(c, ContextTag, Target, Format, Type, SwapBytes, Reset), cookie)
4601 return GetHistogramCookie{cookie}
4602 }
4603
4604
4605 type GetHistogramReply struct {
4606 Sequence uint16
4607 Length uint32
4608
4609
4610 Width int32
4611
4612 Data []byte
4613 }
4614
4615
4616 func (cook GetHistogramCookie) Reply() (*GetHistogramReply, error) {
4617 buf, err := cook.Cookie.Reply()
4618 if err != nil {
4619 return nil, err
4620 }
4621 if buf == nil {
4622 return nil, nil
4623 }
4624 return getHistogramReply(buf), nil
4625 }
4626
4627
4628 func getHistogramReply(buf []byte) *GetHistogramReply {
4629 v := new(GetHistogramReply)
4630 b := 1
4631
4632 b += 1
4633
4634 v.Sequence = xgb.Get16(buf[b:])
4635 b += 2
4636
4637 v.Length = xgb.Get32(buf[b:])
4638 b += 4
4639
4640 b += 8
4641
4642 v.Width = int32(xgb.Get32(buf[b:]))
4643 b += 4
4644
4645 b += 12
4646
4647 v.Data = make([]byte, (int(v.Length) * 4))
4648 copy(v.Data[:(int(v.Length)*4)], buf[b:])
4649 b += int((int(v.Length) * 4))
4650
4651 return v
4652 }
4653
4654
4655
4656 func getHistogramRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool, Reset bool) []byte {
4657 size := 24
4658 b := 0
4659 buf := make([]byte, size)
4660
4661 c.ExtLock.RLock()
4662 buf[b] = c.Extensions["GLX"]
4663 c.ExtLock.RUnlock()
4664 b += 1
4665
4666 buf[b] = 154
4667 b += 1
4668
4669 xgb.Put16(buf[b:], uint16(size/4))
4670 b += 2
4671
4672 xgb.Put32(buf[b:], uint32(ContextTag))
4673 b += 4
4674
4675 xgb.Put32(buf[b:], Target)
4676 b += 4
4677
4678 xgb.Put32(buf[b:], Format)
4679 b += 4
4680
4681 xgb.Put32(buf[b:], Type)
4682 b += 4
4683
4684 if SwapBytes {
4685 buf[b] = 1
4686 } else {
4687 buf[b] = 0
4688 }
4689 b += 1
4690
4691 if Reset {
4692 buf[b] = 1
4693 } else {
4694 buf[b] = 0
4695 }
4696 b += 1
4697
4698 return buf
4699 }
4700
4701
4702 type GetHistogramParameterfvCookie struct {
4703 *xgb.Cookie
4704 }
4705
4706
4707
4708 func GetHistogramParameterfv(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetHistogramParameterfvCookie {
4709 c.ExtLock.RLock()
4710 defer c.ExtLock.RUnlock()
4711 if _, ok := c.Extensions["GLX"]; !ok {
4712 panic("Cannot issue request 'GetHistogramParameterfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
4713 }
4714 cookie := c.NewCookie(true, true)
4715 c.NewRequest(getHistogramParameterfvRequest(c, ContextTag, Target, Pname), cookie)
4716 return GetHistogramParameterfvCookie{cookie}
4717 }
4718
4719
4720
4721 func GetHistogramParameterfvUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetHistogramParameterfvCookie {
4722 c.ExtLock.RLock()
4723 defer c.ExtLock.RUnlock()
4724 if _, ok := c.Extensions["GLX"]; !ok {
4725 panic("Cannot issue request 'GetHistogramParameterfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
4726 }
4727 cookie := c.NewCookie(false, true)
4728 c.NewRequest(getHistogramParameterfvRequest(c, ContextTag, Target, Pname), cookie)
4729 return GetHistogramParameterfvCookie{cookie}
4730 }
4731
4732
4733 type GetHistogramParameterfvReply struct {
4734 Sequence uint16
4735 Length uint32
4736
4737
4738 N uint32
4739 Datum Float32
4740
4741 Data []Float32
4742 }
4743
4744
4745 func (cook GetHistogramParameterfvCookie) Reply() (*GetHistogramParameterfvReply, error) {
4746 buf, err := cook.Cookie.Reply()
4747 if err != nil {
4748 return nil, err
4749 }
4750 if buf == nil {
4751 return nil, nil
4752 }
4753 return getHistogramParameterfvReply(buf), nil
4754 }
4755
4756
4757 func getHistogramParameterfvReply(buf []byte) *GetHistogramParameterfvReply {
4758 v := new(GetHistogramParameterfvReply)
4759 b := 1
4760
4761 b += 1
4762
4763 v.Sequence = xgb.Get16(buf[b:])
4764 b += 2
4765
4766 v.Length = xgb.Get32(buf[b:])
4767 b += 4
4768
4769 b += 4
4770
4771 v.N = xgb.Get32(buf[b:])
4772 b += 4
4773
4774 v.Datum = Float32(xgb.Get32(buf[b:]))
4775 b += 4
4776
4777 b += 12
4778
4779 v.Data = make([]Float32, v.N)
4780 for i := 0; i < int(v.N); i++ {
4781 v.Data[i] = Float32(xgb.Get32(buf[b:]))
4782 b += 4
4783 }
4784
4785 return v
4786 }
4787
4788
4789
4790 func getHistogramParameterfvRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) []byte {
4791 size := 16
4792 b := 0
4793 buf := make([]byte, size)
4794
4795 c.ExtLock.RLock()
4796 buf[b] = c.Extensions["GLX"]
4797 c.ExtLock.RUnlock()
4798 b += 1
4799
4800 buf[b] = 155
4801 b += 1
4802
4803 xgb.Put16(buf[b:], uint16(size/4))
4804 b += 2
4805
4806 xgb.Put32(buf[b:], uint32(ContextTag))
4807 b += 4
4808
4809 xgb.Put32(buf[b:], Target)
4810 b += 4
4811
4812 xgb.Put32(buf[b:], Pname)
4813 b += 4
4814
4815 return buf
4816 }
4817
4818
4819 type GetHistogramParameterivCookie struct {
4820 *xgb.Cookie
4821 }
4822
4823
4824
4825 func GetHistogramParameteriv(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetHistogramParameterivCookie {
4826 c.ExtLock.RLock()
4827 defer c.ExtLock.RUnlock()
4828 if _, ok := c.Extensions["GLX"]; !ok {
4829 panic("Cannot issue request 'GetHistogramParameteriv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
4830 }
4831 cookie := c.NewCookie(true, true)
4832 c.NewRequest(getHistogramParameterivRequest(c, ContextTag, Target, Pname), cookie)
4833 return GetHistogramParameterivCookie{cookie}
4834 }
4835
4836
4837
4838 func GetHistogramParameterivUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetHistogramParameterivCookie {
4839 c.ExtLock.RLock()
4840 defer c.ExtLock.RUnlock()
4841 if _, ok := c.Extensions["GLX"]; !ok {
4842 panic("Cannot issue request 'GetHistogramParameteriv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
4843 }
4844 cookie := c.NewCookie(false, true)
4845 c.NewRequest(getHistogramParameterivRequest(c, ContextTag, Target, Pname), cookie)
4846 return GetHistogramParameterivCookie{cookie}
4847 }
4848
4849
4850 type GetHistogramParameterivReply struct {
4851 Sequence uint16
4852 Length uint32
4853
4854
4855 N uint32
4856 Datum int32
4857
4858 Data []int32
4859 }
4860
4861
4862 func (cook GetHistogramParameterivCookie) Reply() (*GetHistogramParameterivReply, error) {
4863 buf, err := cook.Cookie.Reply()
4864 if err != nil {
4865 return nil, err
4866 }
4867 if buf == nil {
4868 return nil, nil
4869 }
4870 return getHistogramParameterivReply(buf), nil
4871 }
4872
4873
4874 func getHistogramParameterivReply(buf []byte) *GetHistogramParameterivReply {
4875 v := new(GetHistogramParameterivReply)
4876 b := 1
4877
4878 b += 1
4879
4880 v.Sequence = xgb.Get16(buf[b:])
4881 b += 2
4882
4883 v.Length = xgb.Get32(buf[b:])
4884 b += 4
4885
4886 b += 4
4887
4888 v.N = xgb.Get32(buf[b:])
4889 b += 4
4890
4891 v.Datum = int32(xgb.Get32(buf[b:]))
4892 b += 4
4893
4894 b += 12
4895
4896 v.Data = make([]int32, v.N)
4897 for i := 0; i < int(v.N); i++ {
4898 v.Data[i] = int32(xgb.Get32(buf[b:]))
4899 b += 4
4900 }
4901
4902 return v
4903 }
4904
4905
4906
4907 func getHistogramParameterivRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) []byte {
4908 size := 16
4909 b := 0
4910 buf := make([]byte, size)
4911
4912 c.ExtLock.RLock()
4913 buf[b] = c.Extensions["GLX"]
4914 c.ExtLock.RUnlock()
4915 b += 1
4916
4917 buf[b] = 156
4918 b += 1
4919
4920 xgb.Put16(buf[b:], uint16(size/4))
4921 b += 2
4922
4923 xgb.Put32(buf[b:], uint32(ContextTag))
4924 b += 4
4925
4926 xgb.Put32(buf[b:], Target)
4927 b += 4
4928
4929 xgb.Put32(buf[b:], Pname)
4930 b += 4
4931
4932 return buf
4933 }
4934
4935
4936 type GetIntegervCookie struct {
4937 *xgb.Cookie
4938 }
4939
4940
4941
4942 func GetIntegerv(c *xgb.Conn, ContextTag ContextTag, Pname uint32) GetIntegervCookie {
4943 c.ExtLock.RLock()
4944 defer c.ExtLock.RUnlock()
4945 if _, ok := c.Extensions["GLX"]; !ok {
4946 panic("Cannot issue request 'GetIntegerv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
4947 }
4948 cookie := c.NewCookie(true, true)
4949 c.NewRequest(getIntegervRequest(c, ContextTag, Pname), cookie)
4950 return GetIntegervCookie{cookie}
4951 }
4952
4953
4954
4955 func GetIntegervUnchecked(c *xgb.Conn, ContextTag ContextTag, Pname uint32) GetIntegervCookie {
4956 c.ExtLock.RLock()
4957 defer c.ExtLock.RUnlock()
4958 if _, ok := c.Extensions["GLX"]; !ok {
4959 panic("Cannot issue request 'GetIntegerv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
4960 }
4961 cookie := c.NewCookie(false, true)
4962 c.NewRequest(getIntegervRequest(c, ContextTag, Pname), cookie)
4963 return GetIntegervCookie{cookie}
4964 }
4965
4966
4967 type GetIntegervReply struct {
4968 Sequence uint16
4969 Length uint32
4970
4971
4972 N uint32
4973 Datum int32
4974
4975 Data []int32
4976 }
4977
4978
4979 func (cook GetIntegervCookie) Reply() (*GetIntegervReply, error) {
4980 buf, err := cook.Cookie.Reply()
4981 if err != nil {
4982 return nil, err
4983 }
4984 if buf == nil {
4985 return nil, nil
4986 }
4987 return getIntegervReply(buf), nil
4988 }
4989
4990
4991 func getIntegervReply(buf []byte) *GetIntegervReply {
4992 v := new(GetIntegervReply)
4993 b := 1
4994
4995 b += 1
4996
4997 v.Sequence = xgb.Get16(buf[b:])
4998 b += 2
4999
5000 v.Length = xgb.Get32(buf[b:])
5001 b += 4
5002
5003 b += 4
5004
5005 v.N = xgb.Get32(buf[b:])
5006 b += 4
5007
5008 v.Datum = int32(xgb.Get32(buf[b:]))
5009 b += 4
5010
5011 b += 12
5012
5013 v.Data = make([]int32, v.N)
5014 for i := 0; i < int(v.N); i++ {
5015 v.Data[i] = int32(xgb.Get32(buf[b:]))
5016 b += 4
5017 }
5018
5019 return v
5020 }
5021
5022
5023
5024 func getIntegervRequest(c *xgb.Conn, ContextTag ContextTag, Pname uint32) []byte {
5025 size := 12
5026 b := 0
5027 buf := make([]byte, size)
5028
5029 c.ExtLock.RLock()
5030 buf[b] = c.Extensions["GLX"]
5031 c.ExtLock.RUnlock()
5032 b += 1
5033
5034 buf[b] = 117
5035 b += 1
5036
5037 xgb.Put16(buf[b:], uint16(size/4))
5038 b += 2
5039
5040 xgb.Put32(buf[b:], uint32(ContextTag))
5041 b += 4
5042
5043 xgb.Put32(buf[b:], Pname)
5044 b += 4
5045
5046 return buf
5047 }
5048
5049
5050 type GetLightfvCookie struct {
5051 *xgb.Cookie
5052 }
5053
5054
5055
5056 func GetLightfv(c *xgb.Conn, ContextTag ContextTag, Light uint32, Pname uint32) GetLightfvCookie {
5057 c.ExtLock.RLock()
5058 defer c.ExtLock.RUnlock()
5059 if _, ok := c.Extensions["GLX"]; !ok {
5060 panic("Cannot issue request 'GetLightfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
5061 }
5062 cookie := c.NewCookie(true, true)
5063 c.NewRequest(getLightfvRequest(c, ContextTag, Light, Pname), cookie)
5064 return GetLightfvCookie{cookie}
5065 }
5066
5067
5068
5069 func GetLightfvUnchecked(c *xgb.Conn, ContextTag ContextTag, Light uint32, Pname uint32) GetLightfvCookie {
5070 c.ExtLock.RLock()
5071 defer c.ExtLock.RUnlock()
5072 if _, ok := c.Extensions["GLX"]; !ok {
5073 panic("Cannot issue request 'GetLightfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
5074 }
5075 cookie := c.NewCookie(false, true)
5076 c.NewRequest(getLightfvRequest(c, ContextTag, Light, Pname), cookie)
5077 return GetLightfvCookie{cookie}
5078 }
5079
5080
5081 type GetLightfvReply struct {
5082 Sequence uint16
5083 Length uint32
5084
5085
5086 N uint32
5087 Datum Float32
5088
5089 Data []Float32
5090 }
5091
5092
5093 func (cook GetLightfvCookie) Reply() (*GetLightfvReply, error) {
5094 buf, err := cook.Cookie.Reply()
5095 if err != nil {
5096 return nil, err
5097 }
5098 if buf == nil {
5099 return nil, nil
5100 }
5101 return getLightfvReply(buf), nil
5102 }
5103
5104
5105 func getLightfvReply(buf []byte) *GetLightfvReply {
5106 v := new(GetLightfvReply)
5107 b := 1
5108
5109 b += 1
5110
5111 v.Sequence = xgb.Get16(buf[b:])
5112 b += 2
5113
5114 v.Length = xgb.Get32(buf[b:])
5115 b += 4
5116
5117 b += 4
5118
5119 v.N = xgb.Get32(buf[b:])
5120 b += 4
5121
5122 v.Datum = Float32(xgb.Get32(buf[b:]))
5123 b += 4
5124
5125 b += 12
5126
5127 v.Data = make([]Float32, v.N)
5128 for i := 0; i < int(v.N); i++ {
5129 v.Data[i] = Float32(xgb.Get32(buf[b:]))
5130 b += 4
5131 }
5132
5133 return v
5134 }
5135
5136
5137
5138 func getLightfvRequest(c *xgb.Conn, ContextTag ContextTag, Light uint32, Pname uint32) []byte {
5139 size := 16
5140 b := 0
5141 buf := make([]byte, size)
5142
5143 c.ExtLock.RLock()
5144 buf[b] = c.Extensions["GLX"]
5145 c.ExtLock.RUnlock()
5146 b += 1
5147
5148 buf[b] = 118
5149 b += 1
5150
5151 xgb.Put16(buf[b:], uint16(size/4))
5152 b += 2
5153
5154 xgb.Put32(buf[b:], uint32(ContextTag))
5155 b += 4
5156
5157 xgb.Put32(buf[b:], Light)
5158 b += 4
5159
5160 xgb.Put32(buf[b:], Pname)
5161 b += 4
5162
5163 return buf
5164 }
5165
5166
5167 type GetLightivCookie struct {
5168 *xgb.Cookie
5169 }
5170
5171
5172
5173 func GetLightiv(c *xgb.Conn, ContextTag ContextTag, Light uint32, Pname uint32) GetLightivCookie {
5174 c.ExtLock.RLock()
5175 defer c.ExtLock.RUnlock()
5176 if _, ok := c.Extensions["GLX"]; !ok {
5177 panic("Cannot issue request 'GetLightiv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
5178 }
5179 cookie := c.NewCookie(true, true)
5180 c.NewRequest(getLightivRequest(c, ContextTag, Light, Pname), cookie)
5181 return GetLightivCookie{cookie}
5182 }
5183
5184
5185
5186 func GetLightivUnchecked(c *xgb.Conn, ContextTag ContextTag, Light uint32, Pname uint32) GetLightivCookie {
5187 c.ExtLock.RLock()
5188 defer c.ExtLock.RUnlock()
5189 if _, ok := c.Extensions["GLX"]; !ok {
5190 panic("Cannot issue request 'GetLightiv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
5191 }
5192 cookie := c.NewCookie(false, true)
5193 c.NewRequest(getLightivRequest(c, ContextTag, Light, Pname), cookie)
5194 return GetLightivCookie{cookie}
5195 }
5196
5197
5198 type GetLightivReply struct {
5199 Sequence uint16
5200 Length uint32
5201
5202
5203 N uint32
5204 Datum int32
5205
5206 Data []int32
5207 }
5208
5209
5210 func (cook GetLightivCookie) Reply() (*GetLightivReply, error) {
5211 buf, err := cook.Cookie.Reply()
5212 if err != nil {
5213 return nil, err
5214 }
5215 if buf == nil {
5216 return nil, nil
5217 }
5218 return getLightivReply(buf), nil
5219 }
5220
5221
5222 func getLightivReply(buf []byte) *GetLightivReply {
5223 v := new(GetLightivReply)
5224 b := 1
5225
5226 b += 1
5227
5228 v.Sequence = xgb.Get16(buf[b:])
5229 b += 2
5230
5231 v.Length = xgb.Get32(buf[b:])
5232 b += 4
5233
5234 b += 4
5235
5236 v.N = xgb.Get32(buf[b:])
5237 b += 4
5238
5239 v.Datum = int32(xgb.Get32(buf[b:]))
5240 b += 4
5241
5242 b += 12
5243
5244 v.Data = make([]int32, v.N)
5245 for i := 0; i < int(v.N); i++ {
5246 v.Data[i] = int32(xgb.Get32(buf[b:]))
5247 b += 4
5248 }
5249
5250 return v
5251 }
5252
5253
5254
5255 func getLightivRequest(c *xgb.Conn, ContextTag ContextTag, Light uint32, Pname uint32) []byte {
5256 size := 16
5257 b := 0
5258 buf := make([]byte, size)
5259
5260 c.ExtLock.RLock()
5261 buf[b] = c.Extensions["GLX"]
5262 c.ExtLock.RUnlock()
5263 b += 1
5264
5265 buf[b] = 119
5266 b += 1
5267
5268 xgb.Put16(buf[b:], uint16(size/4))
5269 b += 2
5270
5271 xgb.Put32(buf[b:], uint32(ContextTag))
5272 b += 4
5273
5274 xgb.Put32(buf[b:], Light)
5275 b += 4
5276
5277 xgb.Put32(buf[b:], Pname)
5278 b += 4
5279
5280 return buf
5281 }
5282
5283
5284 type GetMapdvCookie struct {
5285 *xgb.Cookie
5286 }
5287
5288
5289
5290 func GetMapdv(c *xgb.Conn, ContextTag ContextTag, Target uint32, Query uint32) GetMapdvCookie {
5291 c.ExtLock.RLock()
5292 defer c.ExtLock.RUnlock()
5293 if _, ok := c.Extensions["GLX"]; !ok {
5294 panic("Cannot issue request 'GetMapdv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
5295 }
5296 cookie := c.NewCookie(true, true)
5297 c.NewRequest(getMapdvRequest(c, ContextTag, Target, Query), cookie)
5298 return GetMapdvCookie{cookie}
5299 }
5300
5301
5302
5303 func GetMapdvUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Query uint32) GetMapdvCookie {
5304 c.ExtLock.RLock()
5305 defer c.ExtLock.RUnlock()
5306 if _, ok := c.Extensions["GLX"]; !ok {
5307 panic("Cannot issue request 'GetMapdv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
5308 }
5309 cookie := c.NewCookie(false, true)
5310 c.NewRequest(getMapdvRequest(c, ContextTag, Target, Query), cookie)
5311 return GetMapdvCookie{cookie}
5312 }
5313
5314
5315 type GetMapdvReply struct {
5316 Sequence uint16
5317 Length uint32
5318
5319
5320 N uint32
5321 Datum Float64
5322
5323 Data []Float64
5324 }
5325
5326
5327 func (cook GetMapdvCookie) Reply() (*GetMapdvReply, error) {
5328 buf, err := cook.Cookie.Reply()
5329 if err != nil {
5330 return nil, err
5331 }
5332 if buf == nil {
5333 return nil, nil
5334 }
5335 return getMapdvReply(buf), nil
5336 }
5337
5338
5339 func getMapdvReply(buf []byte) *GetMapdvReply {
5340 v := new(GetMapdvReply)
5341 b := 1
5342
5343 b += 1
5344
5345 v.Sequence = xgb.Get16(buf[b:])
5346 b += 2
5347
5348 v.Length = xgb.Get32(buf[b:])
5349 b += 4
5350
5351 b += 4
5352
5353 v.N = xgb.Get32(buf[b:])
5354 b += 4
5355
5356 v.Datum = Float64(xgb.Get64(buf[b:]))
5357 b += 8
5358
5359 b += 8
5360
5361 v.Data = make([]Float64, v.N)
5362 for i := 0; i < int(v.N); i++ {
5363 v.Data[i] = Float64(xgb.Get64(buf[b:]))
5364 b += 8
5365 }
5366
5367 return v
5368 }
5369
5370
5371
5372 func getMapdvRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Query uint32) []byte {
5373 size := 16
5374 b := 0
5375 buf := make([]byte, size)
5376
5377 c.ExtLock.RLock()
5378 buf[b] = c.Extensions["GLX"]
5379 c.ExtLock.RUnlock()
5380 b += 1
5381
5382 buf[b] = 120
5383 b += 1
5384
5385 xgb.Put16(buf[b:], uint16(size/4))
5386 b += 2
5387
5388 xgb.Put32(buf[b:], uint32(ContextTag))
5389 b += 4
5390
5391 xgb.Put32(buf[b:], Target)
5392 b += 4
5393
5394 xgb.Put32(buf[b:], Query)
5395 b += 4
5396
5397 return buf
5398 }
5399
5400
5401 type GetMapfvCookie struct {
5402 *xgb.Cookie
5403 }
5404
5405
5406
5407 func GetMapfv(c *xgb.Conn, ContextTag ContextTag, Target uint32, Query uint32) GetMapfvCookie {
5408 c.ExtLock.RLock()
5409 defer c.ExtLock.RUnlock()
5410 if _, ok := c.Extensions["GLX"]; !ok {
5411 panic("Cannot issue request 'GetMapfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
5412 }
5413 cookie := c.NewCookie(true, true)
5414 c.NewRequest(getMapfvRequest(c, ContextTag, Target, Query), cookie)
5415 return GetMapfvCookie{cookie}
5416 }
5417
5418
5419
5420 func GetMapfvUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Query uint32) GetMapfvCookie {
5421 c.ExtLock.RLock()
5422 defer c.ExtLock.RUnlock()
5423 if _, ok := c.Extensions["GLX"]; !ok {
5424 panic("Cannot issue request 'GetMapfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
5425 }
5426 cookie := c.NewCookie(false, true)
5427 c.NewRequest(getMapfvRequest(c, ContextTag, Target, Query), cookie)
5428 return GetMapfvCookie{cookie}
5429 }
5430
5431
5432 type GetMapfvReply struct {
5433 Sequence uint16
5434 Length uint32
5435
5436
5437 N uint32
5438 Datum Float32
5439
5440 Data []Float32
5441 }
5442
5443
5444 func (cook GetMapfvCookie) Reply() (*GetMapfvReply, error) {
5445 buf, err := cook.Cookie.Reply()
5446 if err != nil {
5447 return nil, err
5448 }
5449 if buf == nil {
5450 return nil, nil
5451 }
5452 return getMapfvReply(buf), nil
5453 }
5454
5455
5456 func getMapfvReply(buf []byte) *GetMapfvReply {
5457 v := new(GetMapfvReply)
5458 b := 1
5459
5460 b += 1
5461
5462 v.Sequence = xgb.Get16(buf[b:])
5463 b += 2
5464
5465 v.Length = xgb.Get32(buf[b:])
5466 b += 4
5467
5468 b += 4
5469
5470 v.N = xgb.Get32(buf[b:])
5471 b += 4
5472
5473 v.Datum = Float32(xgb.Get32(buf[b:]))
5474 b += 4
5475
5476 b += 12
5477
5478 v.Data = make([]Float32, v.N)
5479 for i := 0; i < int(v.N); i++ {
5480 v.Data[i] = Float32(xgb.Get32(buf[b:]))
5481 b += 4
5482 }
5483
5484 return v
5485 }
5486
5487
5488
5489 func getMapfvRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Query uint32) []byte {
5490 size := 16
5491 b := 0
5492 buf := make([]byte, size)
5493
5494 c.ExtLock.RLock()
5495 buf[b] = c.Extensions["GLX"]
5496 c.ExtLock.RUnlock()
5497 b += 1
5498
5499 buf[b] = 121
5500 b += 1
5501
5502 xgb.Put16(buf[b:], uint16(size/4))
5503 b += 2
5504
5505 xgb.Put32(buf[b:], uint32(ContextTag))
5506 b += 4
5507
5508 xgb.Put32(buf[b:], Target)
5509 b += 4
5510
5511 xgb.Put32(buf[b:], Query)
5512 b += 4
5513
5514 return buf
5515 }
5516
5517
5518 type GetMapivCookie struct {
5519 *xgb.Cookie
5520 }
5521
5522
5523
5524 func GetMapiv(c *xgb.Conn, ContextTag ContextTag, Target uint32, Query uint32) GetMapivCookie {
5525 c.ExtLock.RLock()
5526 defer c.ExtLock.RUnlock()
5527 if _, ok := c.Extensions["GLX"]; !ok {
5528 panic("Cannot issue request 'GetMapiv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
5529 }
5530 cookie := c.NewCookie(true, true)
5531 c.NewRequest(getMapivRequest(c, ContextTag, Target, Query), cookie)
5532 return GetMapivCookie{cookie}
5533 }
5534
5535
5536
5537 func GetMapivUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Query uint32) GetMapivCookie {
5538 c.ExtLock.RLock()
5539 defer c.ExtLock.RUnlock()
5540 if _, ok := c.Extensions["GLX"]; !ok {
5541 panic("Cannot issue request 'GetMapiv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
5542 }
5543 cookie := c.NewCookie(false, true)
5544 c.NewRequest(getMapivRequest(c, ContextTag, Target, Query), cookie)
5545 return GetMapivCookie{cookie}
5546 }
5547
5548
5549 type GetMapivReply struct {
5550 Sequence uint16
5551 Length uint32
5552
5553
5554 N uint32
5555 Datum int32
5556
5557 Data []int32
5558 }
5559
5560
5561 func (cook GetMapivCookie) Reply() (*GetMapivReply, error) {
5562 buf, err := cook.Cookie.Reply()
5563 if err != nil {
5564 return nil, err
5565 }
5566 if buf == nil {
5567 return nil, nil
5568 }
5569 return getMapivReply(buf), nil
5570 }
5571
5572
5573 func getMapivReply(buf []byte) *GetMapivReply {
5574 v := new(GetMapivReply)
5575 b := 1
5576
5577 b += 1
5578
5579 v.Sequence = xgb.Get16(buf[b:])
5580 b += 2
5581
5582 v.Length = xgb.Get32(buf[b:])
5583 b += 4
5584
5585 b += 4
5586
5587 v.N = xgb.Get32(buf[b:])
5588 b += 4
5589
5590 v.Datum = int32(xgb.Get32(buf[b:]))
5591 b += 4
5592
5593 b += 12
5594
5595 v.Data = make([]int32, v.N)
5596 for i := 0; i < int(v.N); i++ {
5597 v.Data[i] = int32(xgb.Get32(buf[b:]))
5598 b += 4
5599 }
5600
5601 return v
5602 }
5603
5604
5605
5606 func getMapivRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Query uint32) []byte {
5607 size := 16
5608 b := 0
5609 buf := make([]byte, size)
5610
5611 c.ExtLock.RLock()
5612 buf[b] = c.Extensions["GLX"]
5613 c.ExtLock.RUnlock()
5614 b += 1
5615
5616 buf[b] = 122
5617 b += 1
5618
5619 xgb.Put16(buf[b:], uint16(size/4))
5620 b += 2
5621
5622 xgb.Put32(buf[b:], uint32(ContextTag))
5623 b += 4
5624
5625 xgb.Put32(buf[b:], Target)
5626 b += 4
5627
5628 xgb.Put32(buf[b:], Query)
5629 b += 4
5630
5631 return buf
5632 }
5633
5634
5635 type GetMaterialfvCookie struct {
5636 *xgb.Cookie
5637 }
5638
5639
5640
5641 func GetMaterialfv(c *xgb.Conn, ContextTag ContextTag, Face uint32, Pname uint32) GetMaterialfvCookie {
5642 c.ExtLock.RLock()
5643 defer c.ExtLock.RUnlock()
5644 if _, ok := c.Extensions["GLX"]; !ok {
5645 panic("Cannot issue request 'GetMaterialfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
5646 }
5647 cookie := c.NewCookie(true, true)
5648 c.NewRequest(getMaterialfvRequest(c, ContextTag, Face, Pname), cookie)
5649 return GetMaterialfvCookie{cookie}
5650 }
5651
5652
5653
5654 func GetMaterialfvUnchecked(c *xgb.Conn, ContextTag ContextTag, Face uint32, Pname uint32) GetMaterialfvCookie {
5655 c.ExtLock.RLock()
5656 defer c.ExtLock.RUnlock()
5657 if _, ok := c.Extensions["GLX"]; !ok {
5658 panic("Cannot issue request 'GetMaterialfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
5659 }
5660 cookie := c.NewCookie(false, true)
5661 c.NewRequest(getMaterialfvRequest(c, ContextTag, Face, Pname), cookie)
5662 return GetMaterialfvCookie{cookie}
5663 }
5664
5665
5666 type GetMaterialfvReply struct {
5667 Sequence uint16
5668 Length uint32
5669
5670
5671 N uint32
5672 Datum Float32
5673
5674 Data []Float32
5675 }
5676
5677
5678 func (cook GetMaterialfvCookie) Reply() (*GetMaterialfvReply, error) {
5679 buf, err := cook.Cookie.Reply()
5680 if err != nil {
5681 return nil, err
5682 }
5683 if buf == nil {
5684 return nil, nil
5685 }
5686 return getMaterialfvReply(buf), nil
5687 }
5688
5689
5690 func getMaterialfvReply(buf []byte) *GetMaterialfvReply {
5691 v := new(GetMaterialfvReply)
5692 b := 1
5693
5694 b += 1
5695
5696 v.Sequence = xgb.Get16(buf[b:])
5697 b += 2
5698
5699 v.Length = xgb.Get32(buf[b:])
5700 b += 4
5701
5702 b += 4
5703
5704 v.N = xgb.Get32(buf[b:])
5705 b += 4
5706
5707 v.Datum = Float32(xgb.Get32(buf[b:]))
5708 b += 4
5709
5710 b += 12
5711
5712 v.Data = make([]Float32, v.N)
5713 for i := 0; i < int(v.N); i++ {
5714 v.Data[i] = Float32(xgb.Get32(buf[b:]))
5715 b += 4
5716 }
5717
5718 return v
5719 }
5720
5721
5722
5723 func getMaterialfvRequest(c *xgb.Conn, ContextTag ContextTag, Face uint32, Pname uint32) []byte {
5724 size := 16
5725 b := 0
5726 buf := make([]byte, size)
5727
5728 c.ExtLock.RLock()
5729 buf[b] = c.Extensions["GLX"]
5730 c.ExtLock.RUnlock()
5731 b += 1
5732
5733 buf[b] = 123
5734 b += 1
5735
5736 xgb.Put16(buf[b:], uint16(size/4))
5737 b += 2
5738
5739 xgb.Put32(buf[b:], uint32(ContextTag))
5740 b += 4
5741
5742 xgb.Put32(buf[b:], Face)
5743 b += 4
5744
5745 xgb.Put32(buf[b:], Pname)
5746 b += 4
5747
5748 return buf
5749 }
5750
5751
5752 type GetMaterialivCookie struct {
5753 *xgb.Cookie
5754 }
5755
5756
5757
5758 func GetMaterialiv(c *xgb.Conn, ContextTag ContextTag, Face uint32, Pname uint32) GetMaterialivCookie {
5759 c.ExtLock.RLock()
5760 defer c.ExtLock.RUnlock()
5761 if _, ok := c.Extensions["GLX"]; !ok {
5762 panic("Cannot issue request 'GetMaterialiv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
5763 }
5764 cookie := c.NewCookie(true, true)
5765 c.NewRequest(getMaterialivRequest(c, ContextTag, Face, Pname), cookie)
5766 return GetMaterialivCookie{cookie}
5767 }
5768
5769
5770
5771 func GetMaterialivUnchecked(c *xgb.Conn, ContextTag ContextTag, Face uint32, Pname uint32) GetMaterialivCookie {
5772 c.ExtLock.RLock()
5773 defer c.ExtLock.RUnlock()
5774 if _, ok := c.Extensions["GLX"]; !ok {
5775 panic("Cannot issue request 'GetMaterialiv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
5776 }
5777 cookie := c.NewCookie(false, true)
5778 c.NewRequest(getMaterialivRequest(c, ContextTag, Face, Pname), cookie)
5779 return GetMaterialivCookie{cookie}
5780 }
5781
5782
5783 type GetMaterialivReply struct {
5784 Sequence uint16
5785 Length uint32
5786
5787
5788 N uint32
5789 Datum int32
5790
5791 Data []int32
5792 }
5793
5794
5795 func (cook GetMaterialivCookie) Reply() (*GetMaterialivReply, error) {
5796 buf, err := cook.Cookie.Reply()
5797 if err != nil {
5798 return nil, err
5799 }
5800 if buf == nil {
5801 return nil, nil
5802 }
5803 return getMaterialivReply(buf), nil
5804 }
5805
5806
5807 func getMaterialivReply(buf []byte) *GetMaterialivReply {
5808 v := new(GetMaterialivReply)
5809 b := 1
5810
5811 b += 1
5812
5813 v.Sequence = xgb.Get16(buf[b:])
5814 b += 2
5815
5816 v.Length = xgb.Get32(buf[b:])
5817 b += 4
5818
5819 b += 4
5820
5821 v.N = xgb.Get32(buf[b:])
5822 b += 4
5823
5824 v.Datum = int32(xgb.Get32(buf[b:]))
5825 b += 4
5826
5827 b += 12
5828
5829 v.Data = make([]int32, v.N)
5830 for i := 0; i < int(v.N); i++ {
5831 v.Data[i] = int32(xgb.Get32(buf[b:]))
5832 b += 4
5833 }
5834
5835 return v
5836 }
5837
5838
5839
5840 func getMaterialivRequest(c *xgb.Conn, ContextTag ContextTag, Face uint32, Pname uint32) []byte {
5841 size := 16
5842 b := 0
5843 buf := make([]byte, size)
5844
5845 c.ExtLock.RLock()
5846 buf[b] = c.Extensions["GLX"]
5847 c.ExtLock.RUnlock()
5848 b += 1
5849
5850 buf[b] = 124
5851 b += 1
5852
5853 xgb.Put16(buf[b:], uint16(size/4))
5854 b += 2
5855
5856 xgb.Put32(buf[b:], uint32(ContextTag))
5857 b += 4
5858
5859 xgb.Put32(buf[b:], Face)
5860 b += 4
5861
5862 xgb.Put32(buf[b:], Pname)
5863 b += 4
5864
5865 return buf
5866 }
5867
5868
5869 type GetMinmaxCookie struct {
5870 *xgb.Cookie
5871 }
5872
5873
5874
5875 func GetMinmax(c *xgb.Conn, ContextTag ContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool, Reset bool) GetMinmaxCookie {
5876 c.ExtLock.RLock()
5877 defer c.ExtLock.RUnlock()
5878 if _, ok := c.Extensions["GLX"]; !ok {
5879 panic("Cannot issue request 'GetMinmax' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
5880 }
5881 cookie := c.NewCookie(true, true)
5882 c.NewRequest(getMinmaxRequest(c, ContextTag, Target, Format, Type, SwapBytes, Reset), cookie)
5883 return GetMinmaxCookie{cookie}
5884 }
5885
5886
5887
5888 func GetMinmaxUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool, Reset bool) GetMinmaxCookie {
5889 c.ExtLock.RLock()
5890 defer c.ExtLock.RUnlock()
5891 if _, ok := c.Extensions["GLX"]; !ok {
5892 panic("Cannot issue request 'GetMinmax' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
5893 }
5894 cookie := c.NewCookie(false, true)
5895 c.NewRequest(getMinmaxRequest(c, ContextTag, Target, Format, Type, SwapBytes, Reset), cookie)
5896 return GetMinmaxCookie{cookie}
5897 }
5898
5899
5900 type GetMinmaxReply struct {
5901 Sequence uint16
5902 Length uint32
5903
5904
5905 Data []byte
5906 }
5907
5908
5909 func (cook GetMinmaxCookie) Reply() (*GetMinmaxReply, error) {
5910 buf, err := cook.Cookie.Reply()
5911 if err != nil {
5912 return nil, err
5913 }
5914 if buf == nil {
5915 return nil, nil
5916 }
5917 return getMinmaxReply(buf), nil
5918 }
5919
5920
5921 func getMinmaxReply(buf []byte) *GetMinmaxReply {
5922 v := new(GetMinmaxReply)
5923 b := 1
5924
5925 b += 1
5926
5927 v.Sequence = xgb.Get16(buf[b:])
5928 b += 2
5929
5930 v.Length = xgb.Get32(buf[b:])
5931 b += 4
5932
5933 b += 24
5934
5935 v.Data = make([]byte, (int(v.Length) * 4))
5936 copy(v.Data[:(int(v.Length)*4)], buf[b:])
5937 b += int((int(v.Length) * 4))
5938
5939 return v
5940 }
5941
5942
5943
5944 func getMinmaxRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool, Reset bool) []byte {
5945 size := 24
5946 b := 0
5947 buf := make([]byte, size)
5948
5949 c.ExtLock.RLock()
5950 buf[b] = c.Extensions["GLX"]
5951 c.ExtLock.RUnlock()
5952 b += 1
5953
5954 buf[b] = 157
5955 b += 1
5956
5957 xgb.Put16(buf[b:], uint16(size/4))
5958 b += 2
5959
5960 xgb.Put32(buf[b:], uint32(ContextTag))
5961 b += 4
5962
5963 xgb.Put32(buf[b:], Target)
5964 b += 4
5965
5966 xgb.Put32(buf[b:], Format)
5967 b += 4
5968
5969 xgb.Put32(buf[b:], Type)
5970 b += 4
5971
5972 if SwapBytes {
5973 buf[b] = 1
5974 } else {
5975 buf[b] = 0
5976 }
5977 b += 1
5978
5979 if Reset {
5980 buf[b] = 1
5981 } else {
5982 buf[b] = 0
5983 }
5984 b += 1
5985
5986 return buf
5987 }
5988
5989
5990 type GetMinmaxParameterfvCookie struct {
5991 *xgb.Cookie
5992 }
5993
5994
5995
5996 func GetMinmaxParameterfv(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetMinmaxParameterfvCookie {
5997 c.ExtLock.RLock()
5998 defer c.ExtLock.RUnlock()
5999 if _, ok := c.Extensions["GLX"]; !ok {
6000 panic("Cannot issue request 'GetMinmaxParameterfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
6001 }
6002 cookie := c.NewCookie(true, true)
6003 c.NewRequest(getMinmaxParameterfvRequest(c, ContextTag, Target, Pname), cookie)
6004 return GetMinmaxParameterfvCookie{cookie}
6005 }
6006
6007
6008
6009 func GetMinmaxParameterfvUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetMinmaxParameterfvCookie {
6010 c.ExtLock.RLock()
6011 defer c.ExtLock.RUnlock()
6012 if _, ok := c.Extensions["GLX"]; !ok {
6013 panic("Cannot issue request 'GetMinmaxParameterfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
6014 }
6015 cookie := c.NewCookie(false, true)
6016 c.NewRequest(getMinmaxParameterfvRequest(c, ContextTag, Target, Pname), cookie)
6017 return GetMinmaxParameterfvCookie{cookie}
6018 }
6019
6020
6021 type GetMinmaxParameterfvReply struct {
6022 Sequence uint16
6023 Length uint32
6024
6025
6026 N uint32
6027 Datum Float32
6028
6029 Data []Float32
6030 }
6031
6032
6033 func (cook GetMinmaxParameterfvCookie) Reply() (*GetMinmaxParameterfvReply, error) {
6034 buf, err := cook.Cookie.Reply()
6035 if err != nil {
6036 return nil, err
6037 }
6038 if buf == nil {
6039 return nil, nil
6040 }
6041 return getMinmaxParameterfvReply(buf), nil
6042 }
6043
6044
6045 func getMinmaxParameterfvReply(buf []byte) *GetMinmaxParameterfvReply {
6046 v := new(GetMinmaxParameterfvReply)
6047 b := 1
6048
6049 b += 1
6050
6051 v.Sequence = xgb.Get16(buf[b:])
6052 b += 2
6053
6054 v.Length = xgb.Get32(buf[b:])
6055 b += 4
6056
6057 b += 4
6058
6059 v.N = xgb.Get32(buf[b:])
6060 b += 4
6061
6062 v.Datum = Float32(xgb.Get32(buf[b:]))
6063 b += 4
6064
6065 b += 12
6066
6067 v.Data = make([]Float32, v.N)
6068 for i := 0; i < int(v.N); i++ {
6069 v.Data[i] = Float32(xgb.Get32(buf[b:]))
6070 b += 4
6071 }
6072
6073 return v
6074 }
6075
6076
6077
6078 func getMinmaxParameterfvRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) []byte {
6079 size := 16
6080 b := 0
6081 buf := make([]byte, size)
6082
6083 c.ExtLock.RLock()
6084 buf[b] = c.Extensions["GLX"]
6085 c.ExtLock.RUnlock()
6086 b += 1
6087
6088 buf[b] = 158
6089 b += 1
6090
6091 xgb.Put16(buf[b:], uint16(size/4))
6092 b += 2
6093
6094 xgb.Put32(buf[b:], uint32(ContextTag))
6095 b += 4
6096
6097 xgb.Put32(buf[b:], Target)
6098 b += 4
6099
6100 xgb.Put32(buf[b:], Pname)
6101 b += 4
6102
6103 return buf
6104 }
6105
6106
6107 type GetMinmaxParameterivCookie struct {
6108 *xgb.Cookie
6109 }
6110
6111
6112
6113 func GetMinmaxParameteriv(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetMinmaxParameterivCookie {
6114 c.ExtLock.RLock()
6115 defer c.ExtLock.RUnlock()
6116 if _, ok := c.Extensions["GLX"]; !ok {
6117 panic("Cannot issue request 'GetMinmaxParameteriv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
6118 }
6119 cookie := c.NewCookie(true, true)
6120 c.NewRequest(getMinmaxParameterivRequest(c, ContextTag, Target, Pname), cookie)
6121 return GetMinmaxParameterivCookie{cookie}
6122 }
6123
6124
6125
6126 func GetMinmaxParameterivUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetMinmaxParameterivCookie {
6127 c.ExtLock.RLock()
6128 defer c.ExtLock.RUnlock()
6129 if _, ok := c.Extensions["GLX"]; !ok {
6130 panic("Cannot issue request 'GetMinmaxParameteriv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
6131 }
6132 cookie := c.NewCookie(false, true)
6133 c.NewRequest(getMinmaxParameterivRequest(c, ContextTag, Target, Pname), cookie)
6134 return GetMinmaxParameterivCookie{cookie}
6135 }
6136
6137
6138 type GetMinmaxParameterivReply struct {
6139 Sequence uint16
6140 Length uint32
6141
6142
6143 N uint32
6144 Datum int32
6145
6146 Data []int32
6147 }
6148
6149
6150 func (cook GetMinmaxParameterivCookie) Reply() (*GetMinmaxParameterivReply, error) {
6151 buf, err := cook.Cookie.Reply()
6152 if err != nil {
6153 return nil, err
6154 }
6155 if buf == nil {
6156 return nil, nil
6157 }
6158 return getMinmaxParameterivReply(buf), nil
6159 }
6160
6161
6162 func getMinmaxParameterivReply(buf []byte) *GetMinmaxParameterivReply {
6163 v := new(GetMinmaxParameterivReply)
6164 b := 1
6165
6166 b += 1
6167
6168 v.Sequence = xgb.Get16(buf[b:])
6169 b += 2
6170
6171 v.Length = xgb.Get32(buf[b:])
6172 b += 4
6173
6174 b += 4
6175
6176 v.N = xgb.Get32(buf[b:])
6177 b += 4
6178
6179 v.Datum = int32(xgb.Get32(buf[b:]))
6180 b += 4
6181
6182 b += 12
6183
6184 v.Data = make([]int32, v.N)
6185 for i := 0; i < int(v.N); i++ {
6186 v.Data[i] = int32(xgb.Get32(buf[b:]))
6187 b += 4
6188 }
6189
6190 return v
6191 }
6192
6193
6194
6195 func getMinmaxParameterivRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) []byte {
6196 size := 16
6197 b := 0
6198 buf := make([]byte, size)
6199
6200 c.ExtLock.RLock()
6201 buf[b] = c.Extensions["GLX"]
6202 c.ExtLock.RUnlock()
6203 b += 1
6204
6205 buf[b] = 159
6206 b += 1
6207
6208 xgb.Put16(buf[b:], uint16(size/4))
6209 b += 2
6210
6211 xgb.Put32(buf[b:], uint32(ContextTag))
6212 b += 4
6213
6214 xgb.Put32(buf[b:], Target)
6215 b += 4
6216
6217 xgb.Put32(buf[b:], Pname)
6218 b += 4
6219
6220 return buf
6221 }
6222
6223
6224 type GetPixelMapfvCookie struct {
6225 *xgb.Cookie
6226 }
6227
6228
6229
6230 func GetPixelMapfv(c *xgb.Conn, ContextTag ContextTag, Map uint32) GetPixelMapfvCookie {
6231 c.ExtLock.RLock()
6232 defer c.ExtLock.RUnlock()
6233 if _, ok := c.Extensions["GLX"]; !ok {
6234 panic("Cannot issue request 'GetPixelMapfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
6235 }
6236 cookie := c.NewCookie(true, true)
6237 c.NewRequest(getPixelMapfvRequest(c, ContextTag, Map), cookie)
6238 return GetPixelMapfvCookie{cookie}
6239 }
6240
6241
6242
6243 func GetPixelMapfvUnchecked(c *xgb.Conn, ContextTag ContextTag, Map uint32) GetPixelMapfvCookie {
6244 c.ExtLock.RLock()
6245 defer c.ExtLock.RUnlock()
6246 if _, ok := c.Extensions["GLX"]; !ok {
6247 panic("Cannot issue request 'GetPixelMapfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
6248 }
6249 cookie := c.NewCookie(false, true)
6250 c.NewRequest(getPixelMapfvRequest(c, ContextTag, Map), cookie)
6251 return GetPixelMapfvCookie{cookie}
6252 }
6253
6254
6255 type GetPixelMapfvReply struct {
6256 Sequence uint16
6257 Length uint32
6258
6259
6260 N uint32
6261 Datum Float32
6262
6263 Data []Float32
6264 }
6265
6266
6267 func (cook GetPixelMapfvCookie) Reply() (*GetPixelMapfvReply, error) {
6268 buf, err := cook.Cookie.Reply()
6269 if err != nil {
6270 return nil, err
6271 }
6272 if buf == nil {
6273 return nil, nil
6274 }
6275 return getPixelMapfvReply(buf), nil
6276 }
6277
6278
6279 func getPixelMapfvReply(buf []byte) *GetPixelMapfvReply {
6280 v := new(GetPixelMapfvReply)
6281 b := 1
6282
6283 b += 1
6284
6285 v.Sequence = xgb.Get16(buf[b:])
6286 b += 2
6287
6288 v.Length = xgb.Get32(buf[b:])
6289 b += 4
6290
6291 b += 4
6292
6293 v.N = xgb.Get32(buf[b:])
6294 b += 4
6295
6296 v.Datum = Float32(xgb.Get32(buf[b:]))
6297 b += 4
6298
6299 b += 12
6300
6301 v.Data = make([]Float32, v.N)
6302 for i := 0; i < int(v.N); i++ {
6303 v.Data[i] = Float32(xgb.Get32(buf[b:]))
6304 b += 4
6305 }
6306
6307 return v
6308 }
6309
6310
6311
6312 func getPixelMapfvRequest(c *xgb.Conn, ContextTag ContextTag, Map uint32) []byte {
6313 size := 12
6314 b := 0
6315 buf := make([]byte, size)
6316
6317 c.ExtLock.RLock()
6318 buf[b] = c.Extensions["GLX"]
6319 c.ExtLock.RUnlock()
6320 b += 1
6321
6322 buf[b] = 125
6323 b += 1
6324
6325 xgb.Put16(buf[b:], uint16(size/4))
6326 b += 2
6327
6328 xgb.Put32(buf[b:], uint32(ContextTag))
6329 b += 4
6330
6331 xgb.Put32(buf[b:], Map)
6332 b += 4
6333
6334 return buf
6335 }
6336
6337
6338 type GetPixelMapuivCookie struct {
6339 *xgb.Cookie
6340 }
6341
6342
6343
6344 func GetPixelMapuiv(c *xgb.Conn, ContextTag ContextTag, Map uint32) GetPixelMapuivCookie {
6345 c.ExtLock.RLock()
6346 defer c.ExtLock.RUnlock()
6347 if _, ok := c.Extensions["GLX"]; !ok {
6348 panic("Cannot issue request 'GetPixelMapuiv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
6349 }
6350 cookie := c.NewCookie(true, true)
6351 c.NewRequest(getPixelMapuivRequest(c, ContextTag, Map), cookie)
6352 return GetPixelMapuivCookie{cookie}
6353 }
6354
6355
6356
6357 func GetPixelMapuivUnchecked(c *xgb.Conn, ContextTag ContextTag, Map uint32) GetPixelMapuivCookie {
6358 c.ExtLock.RLock()
6359 defer c.ExtLock.RUnlock()
6360 if _, ok := c.Extensions["GLX"]; !ok {
6361 panic("Cannot issue request 'GetPixelMapuiv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
6362 }
6363 cookie := c.NewCookie(false, true)
6364 c.NewRequest(getPixelMapuivRequest(c, ContextTag, Map), cookie)
6365 return GetPixelMapuivCookie{cookie}
6366 }
6367
6368
6369 type GetPixelMapuivReply struct {
6370 Sequence uint16
6371 Length uint32
6372
6373
6374 N uint32
6375 Datum uint32
6376
6377 Data []uint32
6378 }
6379
6380
6381 func (cook GetPixelMapuivCookie) Reply() (*GetPixelMapuivReply, error) {
6382 buf, err := cook.Cookie.Reply()
6383 if err != nil {
6384 return nil, err
6385 }
6386 if buf == nil {
6387 return nil, nil
6388 }
6389 return getPixelMapuivReply(buf), nil
6390 }
6391
6392
6393 func getPixelMapuivReply(buf []byte) *GetPixelMapuivReply {
6394 v := new(GetPixelMapuivReply)
6395 b := 1
6396
6397 b += 1
6398
6399 v.Sequence = xgb.Get16(buf[b:])
6400 b += 2
6401
6402 v.Length = xgb.Get32(buf[b:])
6403 b += 4
6404
6405 b += 4
6406
6407 v.N = xgb.Get32(buf[b:])
6408 b += 4
6409
6410 v.Datum = xgb.Get32(buf[b:])
6411 b += 4
6412
6413 b += 12
6414
6415 v.Data = make([]uint32, v.N)
6416 for i := 0; i < int(v.N); i++ {
6417 v.Data[i] = xgb.Get32(buf[b:])
6418 b += 4
6419 }
6420
6421 return v
6422 }
6423
6424
6425
6426 func getPixelMapuivRequest(c *xgb.Conn, ContextTag ContextTag, Map uint32) []byte {
6427 size := 12
6428 b := 0
6429 buf := make([]byte, size)
6430
6431 c.ExtLock.RLock()
6432 buf[b] = c.Extensions["GLX"]
6433 c.ExtLock.RUnlock()
6434 b += 1
6435
6436 buf[b] = 126
6437 b += 1
6438
6439 xgb.Put16(buf[b:], uint16(size/4))
6440 b += 2
6441
6442 xgb.Put32(buf[b:], uint32(ContextTag))
6443 b += 4
6444
6445 xgb.Put32(buf[b:], Map)
6446 b += 4
6447
6448 return buf
6449 }
6450
6451
6452 type GetPixelMapusvCookie struct {
6453 *xgb.Cookie
6454 }
6455
6456
6457
6458 func GetPixelMapusv(c *xgb.Conn, ContextTag ContextTag, Map uint32) GetPixelMapusvCookie {
6459 c.ExtLock.RLock()
6460 defer c.ExtLock.RUnlock()
6461 if _, ok := c.Extensions["GLX"]; !ok {
6462 panic("Cannot issue request 'GetPixelMapusv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
6463 }
6464 cookie := c.NewCookie(true, true)
6465 c.NewRequest(getPixelMapusvRequest(c, ContextTag, Map), cookie)
6466 return GetPixelMapusvCookie{cookie}
6467 }
6468
6469
6470
6471 func GetPixelMapusvUnchecked(c *xgb.Conn, ContextTag ContextTag, Map uint32) GetPixelMapusvCookie {
6472 c.ExtLock.RLock()
6473 defer c.ExtLock.RUnlock()
6474 if _, ok := c.Extensions["GLX"]; !ok {
6475 panic("Cannot issue request 'GetPixelMapusv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
6476 }
6477 cookie := c.NewCookie(false, true)
6478 c.NewRequest(getPixelMapusvRequest(c, ContextTag, Map), cookie)
6479 return GetPixelMapusvCookie{cookie}
6480 }
6481
6482
6483 type GetPixelMapusvReply struct {
6484 Sequence uint16
6485 Length uint32
6486
6487
6488 N uint32
6489 Datum uint16
6490
6491 Data []uint16
6492 }
6493
6494
6495 func (cook GetPixelMapusvCookie) Reply() (*GetPixelMapusvReply, error) {
6496 buf, err := cook.Cookie.Reply()
6497 if err != nil {
6498 return nil, err
6499 }
6500 if buf == nil {
6501 return nil, nil
6502 }
6503 return getPixelMapusvReply(buf), nil
6504 }
6505
6506
6507 func getPixelMapusvReply(buf []byte) *GetPixelMapusvReply {
6508 v := new(GetPixelMapusvReply)
6509 b := 1
6510
6511 b += 1
6512
6513 v.Sequence = xgb.Get16(buf[b:])
6514 b += 2
6515
6516 v.Length = xgb.Get32(buf[b:])
6517 b += 4
6518
6519 b += 4
6520
6521 v.N = xgb.Get32(buf[b:])
6522 b += 4
6523
6524 v.Datum = xgb.Get16(buf[b:])
6525 b += 2
6526
6527 b += 16
6528
6529 v.Data = make([]uint16, v.N)
6530 for i := 0; i < int(v.N); i++ {
6531 v.Data[i] = xgb.Get16(buf[b:])
6532 b += 2
6533 }
6534
6535 return v
6536 }
6537
6538
6539
6540 func getPixelMapusvRequest(c *xgb.Conn, ContextTag ContextTag, Map uint32) []byte {
6541 size := 12
6542 b := 0
6543 buf := make([]byte, size)
6544
6545 c.ExtLock.RLock()
6546 buf[b] = c.Extensions["GLX"]
6547 c.ExtLock.RUnlock()
6548 b += 1
6549
6550 buf[b] = 127
6551 b += 1
6552
6553 xgb.Put16(buf[b:], uint16(size/4))
6554 b += 2
6555
6556 xgb.Put32(buf[b:], uint32(ContextTag))
6557 b += 4
6558
6559 xgb.Put32(buf[b:], Map)
6560 b += 4
6561
6562 return buf
6563 }
6564
6565
6566 type GetPolygonStippleCookie struct {
6567 *xgb.Cookie
6568 }
6569
6570
6571
6572 func GetPolygonStipple(c *xgb.Conn, ContextTag ContextTag, LsbFirst bool) GetPolygonStippleCookie {
6573 c.ExtLock.RLock()
6574 defer c.ExtLock.RUnlock()
6575 if _, ok := c.Extensions["GLX"]; !ok {
6576 panic("Cannot issue request 'GetPolygonStipple' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
6577 }
6578 cookie := c.NewCookie(true, true)
6579 c.NewRequest(getPolygonStippleRequest(c, ContextTag, LsbFirst), cookie)
6580 return GetPolygonStippleCookie{cookie}
6581 }
6582
6583
6584
6585 func GetPolygonStippleUnchecked(c *xgb.Conn, ContextTag ContextTag, LsbFirst bool) GetPolygonStippleCookie {
6586 c.ExtLock.RLock()
6587 defer c.ExtLock.RUnlock()
6588 if _, ok := c.Extensions["GLX"]; !ok {
6589 panic("Cannot issue request 'GetPolygonStipple' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
6590 }
6591 cookie := c.NewCookie(false, true)
6592 c.NewRequest(getPolygonStippleRequest(c, ContextTag, LsbFirst), cookie)
6593 return GetPolygonStippleCookie{cookie}
6594 }
6595
6596
6597 type GetPolygonStippleReply struct {
6598 Sequence uint16
6599 Length uint32
6600
6601
6602 Data []byte
6603 }
6604
6605
6606 func (cook GetPolygonStippleCookie) Reply() (*GetPolygonStippleReply, error) {
6607 buf, err := cook.Cookie.Reply()
6608 if err != nil {
6609 return nil, err
6610 }
6611 if buf == nil {
6612 return nil, nil
6613 }
6614 return getPolygonStippleReply(buf), nil
6615 }
6616
6617
6618 func getPolygonStippleReply(buf []byte) *GetPolygonStippleReply {
6619 v := new(GetPolygonStippleReply)
6620 b := 1
6621
6622 b += 1
6623
6624 v.Sequence = xgb.Get16(buf[b:])
6625 b += 2
6626
6627 v.Length = xgb.Get32(buf[b:])
6628 b += 4
6629
6630 b += 24
6631
6632 v.Data = make([]byte, (int(v.Length) * 4))
6633 copy(v.Data[:(int(v.Length)*4)], buf[b:])
6634 b += int((int(v.Length) * 4))
6635
6636 return v
6637 }
6638
6639
6640
6641 func getPolygonStippleRequest(c *xgb.Conn, ContextTag ContextTag, LsbFirst bool) []byte {
6642 size := 12
6643 b := 0
6644 buf := make([]byte, size)
6645
6646 c.ExtLock.RLock()
6647 buf[b] = c.Extensions["GLX"]
6648 c.ExtLock.RUnlock()
6649 b += 1
6650
6651 buf[b] = 128
6652 b += 1
6653
6654 xgb.Put16(buf[b:], uint16(size/4))
6655 b += 2
6656
6657 xgb.Put32(buf[b:], uint32(ContextTag))
6658 b += 4
6659
6660 if LsbFirst {
6661 buf[b] = 1
6662 } else {
6663 buf[b] = 0
6664 }
6665 b += 1
6666
6667 return buf
6668 }
6669
6670
6671 type GetQueryObjectivARBCookie struct {
6672 *xgb.Cookie
6673 }
6674
6675
6676
6677 func GetQueryObjectivARB(c *xgb.Conn, ContextTag ContextTag, Id uint32, Pname uint32) GetQueryObjectivARBCookie {
6678 c.ExtLock.RLock()
6679 defer c.ExtLock.RUnlock()
6680 if _, ok := c.Extensions["GLX"]; !ok {
6681 panic("Cannot issue request 'GetQueryObjectivARB' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
6682 }
6683 cookie := c.NewCookie(true, true)
6684 c.NewRequest(getQueryObjectivARBRequest(c, ContextTag, Id, Pname), cookie)
6685 return GetQueryObjectivARBCookie{cookie}
6686 }
6687
6688
6689
6690 func GetQueryObjectivARBUnchecked(c *xgb.Conn, ContextTag ContextTag, Id uint32, Pname uint32) GetQueryObjectivARBCookie {
6691 c.ExtLock.RLock()
6692 defer c.ExtLock.RUnlock()
6693 if _, ok := c.Extensions["GLX"]; !ok {
6694 panic("Cannot issue request 'GetQueryObjectivARB' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
6695 }
6696 cookie := c.NewCookie(false, true)
6697 c.NewRequest(getQueryObjectivARBRequest(c, ContextTag, Id, Pname), cookie)
6698 return GetQueryObjectivARBCookie{cookie}
6699 }
6700
6701
6702 type GetQueryObjectivARBReply struct {
6703 Sequence uint16
6704 Length uint32
6705
6706
6707 N uint32
6708 Datum int32
6709
6710 Data []int32
6711 }
6712
6713
6714 func (cook GetQueryObjectivARBCookie) Reply() (*GetQueryObjectivARBReply, error) {
6715 buf, err := cook.Cookie.Reply()
6716 if err != nil {
6717 return nil, err
6718 }
6719 if buf == nil {
6720 return nil, nil
6721 }
6722 return getQueryObjectivARBReply(buf), nil
6723 }
6724
6725
6726 func getQueryObjectivARBReply(buf []byte) *GetQueryObjectivARBReply {
6727 v := new(GetQueryObjectivARBReply)
6728 b := 1
6729
6730 b += 1
6731
6732 v.Sequence = xgb.Get16(buf[b:])
6733 b += 2
6734
6735 v.Length = xgb.Get32(buf[b:])
6736 b += 4
6737
6738 b += 4
6739
6740 v.N = xgb.Get32(buf[b:])
6741 b += 4
6742
6743 v.Datum = int32(xgb.Get32(buf[b:]))
6744 b += 4
6745
6746 b += 12
6747
6748 v.Data = make([]int32, v.N)
6749 for i := 0; i < int(v.N); i++ {
6750 v.Data[i] = int32(xgb.Get32(buf[b:]))
6751 b += 4
6752 }
6753
6754 return v
6755 }
6756
6757
6758
6759 func getQueryObjectivARBRequest(c *xgb.Conn, ContextTag ContextTag, Id uint32, Pname uint32) []byte {
6760 size := 16
6761 b := 0
6762 buf := make([]byte, size)
6763
6764 c.ExtLock.RLock()
6765 buf[b] = c.Extensions["GLX"]
6766 c.ExtLock.RUnlock()
6767 b += 1
6768
6769 buf[b] = 165
6770 b += 1
6771
6772 xgb.Put16(buf[b:], uint16(size/4))
6773 b += 2
6774
6775 xgb.Put32(buf[b:], uint32(ContextTag))
6776 b += 4
6777
6778 xgb.Put32(buf[b:], Id)
6779 b += 4
6780
6781 xgb.Put32(buf[b:], Pname)
6782 b += 4
6783
6784 return buf
6785 }
6786
6787
6788 type GetQueryObjectuivARBCookie struct {
6789 *xgb.Cookie
6790 }
6791
6792
6793
6794 func GetQueryObjectuivARB(c *xgb.Conn, ContextTag ContextTag, Id uint32, Pname uint32) GetQueryObjectuivARBCookie {
6795 c.ExtLock.RLock()
6796 defer c.ExtLock.RUnlock()
6797 if _, ok := c.Extensions["GLX"]; !ok {
6798 panic("Cannot issue request 'GetQueryObjectuivARB' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
6799 }
6800 cookie := c.NewCookie(true, true)
6801 c.NewRequest(getQueryObjectuivARBRequest(c, ContextTag, Id, Pname), cookie)
6802 return GetQueryObjectuivARBCookie{cookie}
6803 }
6804
6805
6806
6807 func GetQueryObjectuivARBUnchecked(c *xgb.Conn, ContextTag ContextTag, Id uint32, Pname uint32) GetQueryObjectuivARBCookie {
6808 c.ExtLock.RLock()
6809 defer c.ExtLock.RUnlock()
6810 if _, ok := c.Extensions["GLX"]; !ok {
6811 panic("Cannot issue request 'GetQueryObjectuivARB' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
6812 }
6813 cookie := c.NewCookie(false, true)
6814 c.NewRequest(getQueryObjectuivARBRequest(c, ContextTag, Id, Pname), cookie)
6815 return GetQueryObjectuivARBCookie{cookie}
6816 }
6817
6818
6819 type GetQueryObjectuivARBReply struct {
6820 Sequence uint16
6821 Length uint32
6822
6823
6824 N uint32
6825 Datum uint32
6826
6827 Data []uint32
6828 }
6829
6830
6831 func (cook GetQueryObjectuivARBCookie) Reply() (*GetQueryObjectuivARBReply, error) {
6832 buf, err := cook.Cookie.Reply()
6833 if err != nil {
6834 return nil, err
6835 }
6836 if buf == nil {
6837 return nil, nil
6838 }
6839 return getQueryObjectuivARBReply(buf), nil
6840 }
6841
6842
6843 func getQueryObjectuivARBReply(buf []byte) *GetQueryObjectuivARBReply {
6844 v := new(GetQueryObjectuivARBReply)
6845 b := 1
6846
6847 b += 1
6848
6849 v.Sequence = xgb.Get16(buf[b:])
6850 b += 2
6851
6852 v.Length = xgb.Get32(buf[b:])
6853 b += 4
6854
6855 b += 4
6856
6857 v.N = xgb.Get32(buf[b:])
6858 b += 4
6859
6860 v.Datum = xgb.Get32(buf[b:])
6861 b += 4
6862
6863 b += 12
6864
6865 v.Data = make([]uint32, v.N)
6866 for i := 0; i < int(v.N); i++ {
6867 v.Data[i] = xgb.Get32(buf[b:])
6868 b += 4
6869 }
6870
6871 return v
6872 }
6873
6874
6875
6876 func getQueryObjectuivARBRequest(c *xgb.Conn, ContextTag ContextTag, Id uint32, Pname uint32) []byte {
6877 size := 16
6878 b := 0
6879 buf := make([]byte, size)
6880
6881 c.ExtLock.RLock()
6882 buf[b] = c.Extensions["GLX"]
6883 c.ExtLock.RUnlock()
6884 b += 1
6885
6886 buf[b] = 166
6887 b += 1
6888
6889 xgb.Put16(buf[b:], uint16(size/4))
6890 b += 2
6891
6892 xgb.Put32(buf[b:], uint32(ContextTag))
6893 b += 4
6894
6895 xgb.Put32(buf[b:], Id)
6896 b += 4
6897
6898 xgb.Put32(buf[b:], Pname)
6899 b += 4
6900
6901 return buf
6902 }
6903
6904
6905 type GetQueryivARBCookie struct {
6906 *xgb.Cookie
6907 }
6908
6909
6910
6911 func GetQueryivARB(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetQueryivARBCookie {
6912 c.ExtLock.RLock()
6913 defer c.ExtLock.RUnlock()
6914 if _, ok := c.Extensions["GLX"]; !ok {
6915 panic("Cannot issue request 'GetQueryivARB' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
6916 }
6917 cookie := c.NewCookie(true, true)
6918 c.NewRequest(getQueryivARBRequest(c, ContextTag, Target, Pname), cookie)
6919 return GetQueryivARBCookie{cookie}
6920 }
6921
6922
6923
6924 func GetQueryivARBUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetQueryivARBCookie {
6925 c.ExtLock.RLock()
6926 defer c.ExtLock.RUnlock()
6927 if _, ok := c.Extensions["GLX"]; !ok {
6928 panic("Cannot issue request 'GetQueryivARB' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
6929 }
6930 cookie := c.NewCookie(false, true)
6931 c.NewRequest(getQueryivARBRequest(c, ContextTag, Target, Pname), cookie)
6932 return GetQueryivARBCookie{cookie}
6933 }
6934
6935
6936 type GetQueryivARBReply struct {
6937 Sequence uint16
6938 Length uint32
6939
6940
6941 N uint32
6942 Datum int32
6943
6944 Data []int32
6945 }
6946
6947
6948 func (cook GetQueryivARBCookie) Reply() (*GetQueryivARBReply, error) {
6949 buf, err := cook.Cookie.Reply()
6950 if err != nil {
6951 return nil, err
6952 }
6953 if buf == nil {
6954 return nil, nil
6955 }
6956 return getQueryivARBReply(buf), nil
6957 }
6958
6959
6960 func getQueryivARBReply(buf []byte) *GetQueryivARBReply {
6961 v := new(GetQueryivARBReply)
6962 b := 1
6963
6964 b += 1
6965
6966 v.Sequence = xgb.Get16(buf[b:])
6967 b += 2
6968
6969 v.Length = xgb.Get32(buf[b:])
6970 b += 4
6971
6972 b += 4
6973
6974 v.N = xgb.Get32(buf[b:])
6975 b += 4
6976
6977 v.Datum = int32(xgb.Get32(buf[b:]))
6978 b += 4
6979
6980 b += 12
6981
6982 v.Data = make([]int32, v.N)
6983 for i := 0; i < int(v.N); i++ {
6984 v.Data[i] = int32(xgb.Get32(buf[b:]))
6985 b += 4
6986 }
6987
6988 return v
6989 }
6990
6991
6992
6993 func getQueryivARBRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) []byte {
6994 size := 16
6995 b := 0
6996 buf := make([]byte, size)
6997
6998 c.ExtLock.RLock()
6999 buf[b] = c.Extensions["GLX"]
7000 c.ExtLock.RUnlock()
7001 b += 1
7002
7003 buf[b] = 164
7004 b += 1
7005
7006 xgb.Put16(buf[b:], uint16(size/4))
7007 b += 2
7008
7009 xgb.Put32(buf[b:], uint32(ContextTag))
7010 b += 4
7011
7012 xgb.Put32(buf[b:], Target)
7013 b += 4
7014
7015 xgb.Put32(buf[b:], Pname)
7016 b += 4
7017
7018 return buf
7019 }
7020
7021
7022 type GetSeparableFilterCookie struct {
7023 *xgb.Cookie
7024 }
7025
7026
7027
7028 func GetSeparableFilter(c *xgb.Conn, ContextTag ContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool) GetSeparableFilterCookie {
7029 c.ExtLock.RLock()
7030 defer c.ExtLock.RUnlock()
7031 if _, ok := c.Extensions["GLX"]; !ok {
7032 panic("Cannot issue request 'GetSeparableFilter' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
7033 }
7034 cookie := c.NewCookie(true, true)
7035 c.NewRequest(getSeparableFilterRequest(c, ContextTag, Target, Format, Type, SwapBytes), cookie)
7036 return GetSeparableFilterCookie{cookie}
7037 }
7038
7039
7040
7041 func GetSeparableFilterUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool) GetSeparableFilterCookie {
7042 c.ExtLock.RLock()
7043 defer c.ExtLock.RUnlock()
7044 if _, ok := c.Extensions["GLX"]; !ok {
7045 panic("Cannot issue request 'GetSeparableFilter' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
7046 }
7047 cookie := c.NewCookie(false, true)
7048 c.NewRequest(getSeparableFilterRequest(c, ContextTag, Target, Format, Type, SwapBytes), cookie)
7049 return GetSeparableFilterCookie{cookie}
7050 }
7051
7052
7053 type GetSeparableFilterReply struct {
7054 Sequence uint16
7055 Length uint32
7056
7057
7058 RowW int32
7059 ColH int32
7060
7061 RowsAndCols []byte
7062 }
7063
7064
7065 func (cook GetSeparableFilterCookie) Reply() (*GetSeparableFilterReply, error) {
7066 buf, err := cook.Cookie.Reply()
7067 if err != nil {
7068 return nil, err
7069 }
7070 if buf == nil {
7071 return nil, nil
7072 }
7073 return getSeparableFilterReply(buf), nil
7074 }
7075
7076
7077 func getSeparableFilterReply(buf []byte) *GetSeparableFilterReply {
7078 v := new(GetSeparableFilterReply)
7079 b := 1
7080
7081 b += 1
7082
7083 v.Sequence = xgb.Get16(buf[b:])
7084 b += 2
7085
7086 v.Length = xgb.Get32(buf[b:])
7087 b += 4
7088
7089 b += 8
7090
7091 v.RowW = int32(xgb.Get32(buf[b:]))
7092 b += 4
7093
7094 v.ColH = int32(xgb.Get32(buf[b:]))
7095 b += 4
7096
7097 b += 8
7098
7099 v.RowsAndCols = make([]byte, (int(v.Length) * 4))
7100 copy(v.RowsAndCols[:(int(v.Length)*4)], buf[b:])
7101 b += int((int(v.Length) * 4))
7102
7103 return v
7104 }
7105
7106
7107
7108 func getSeparableFilterRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool) []byte {
7109 size := 24
7110 b := 0
7111 buf := make([]byte, size)
7112
7113 c.ExtLock.RLock()
7114 buf[b] = c.Extensions["GLX"]
7115 c.ExtLock.RUnlock()
7116 b += 1
7117
7118 buf[b] = 153
7119 b += 1
7120
7121 xgb.Put16(buf[b:], uint16(size/4))
7122 b += 2
7123
7124 xgb.Put32(buf[b:], uint32(ContextTag))
7125 b += 4
7126
7127 xgb.Put32(buf[b:], Target)
7128 b += 4
7129
7130 xgb.Put32(buf[b:], Format)
7131 b += 4
7132
7133 xgb.Put32(buf[b:], Type)
7134 b += 4
7135
7136 if SwapBytes {
7137 buf[b] = 1
7138 } else {
7139 buf[b] = 0
7140 }
7141 b += 1
7142
7143 return buf
7144 }
7145
7146
7147 type GetStringCookie struct {
7148 *xgb.Cookie
7149 }
7150
7151
7152
7153 func GetString(c *xgb.Conn, ContextTag ContextTag, Name uint32) GetStringCookie {
7154 c.ExtLock.RLock()
7155 defer c.ExtLock.RUnlock()
7156 if _, ok := c.Extensions["GLX"]; !ok {
7157 panic("Cannot issue request 'GetString' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
7158 }
7159 cookie := c.NewCookie(true, true)
7160 c.NewRequest(getStringRequest(c, ContextTag, Name), cookie)
7161 return GetStringCookie{cookie}
7162 }
7163
7164
7165
7166 func GetStringUnchecked(c *xgb.Conn, ContextTag ContextTag, Name uint32) GetStringCookie {
7167 c.ExtLock.RLock()
7168 defer c.ExtLock.RUnlock()
7169 if _, ok := c.Extensions["GLX"]; !ok {
7170 panic("Cannot issue request 'GetString' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
7171 }
7172 cookie := c.NewCookie(false, true)
7173 c.NewRequest(getStringRequest(c, ContextTag, Name), cookie)
7174 return GetStringCookie{cookie}
7175 }
7176
7177
7178 type GetStringReply struct {
7179 Sequence uint16
7180 Length uint32
7181
7182
7183 N uint32
7184
7185 String string
7186 }
7187
7188
7189 func (cook GetStringCookie) Reply() (*GetStringReply, error) {
7190 buf, err := cook.Cookie.Reply()
7191 if err != nil {
7192 return nil, err
7193 }
7194 if buf == nil {
7195 return nil, nil
7196 }
7197 return getStringReply(buf), nil
7198 }
7199
7200
7201 func getStringReply(buf []byte) *GetStringReply {
7202 v := new(GetStringReply)
7203 b := 1
7204
7205 b += 1
7206
7207 v.Sequence = xgb.Get16(buf[b:])
7208 b += 2
7209
7210 v.Length = xgb.Get32(buf[b:])
7211 b += 4
7212
7213 b += 4
7214
7215 v.N = xgb.Get32(buf[b:])
7216 b += 4
7217
7218 b += 16
7219
7220 {
7221 byteString := make([]byte, v.N)
7222 copy(byteString[:v.N], buf[b:])
7223 v.String = string(byteString)
7224 b += int(v.N)
7225 }
7226
7227 return v
7228 }
7229
7230
7231
7232 func getStringRequest(c *xgb.Conn, ContextTag ContextTag, Name uint32) []byte {
7233 size := 12
7234 b := 0
7235 buf := make([]byte, size)
7236
7237 c.ExtLock.RLock()
7238 buf[b] = c.Extensions["GLX"]
7239 c.ExtLock.RUnlock()
7240 b += 1
7241
7242 buf[b] = 129
7243 b += 1
7244
7245 xgb.Put16(buf[b:], uint16(size/4))
7246 b += 2
7247
7248 xgb.Put32(buf[b:], uint32(ContextTag))
7249 b += 4
7250
7251 xgb.Put32(buf[b:], Name)
7252 b += 4
7253
7254 return buf
7255 }
7256
7257
7258 type GetTexEnvfvCookie struct {
7259 *xgb.Cookie
7260 }
7261
7262
7263
7264 func GetTexEnvfv(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetTexEnvfvCookie {
7265 c.ExtLock.RLock()
7266 defer c.ExtLock.RUnlock()
7267 if _, ok := c.Extensions["GLX"]; !ok {
7268 panic("Cannot issue request 'GetTexEnvfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
7269 }
7270 cookie := c.NewCookie(true, true)
7271 c.NewRequest(getTexEnvfvRequest(c, ContextTag, Target, Pname), cookie)
7272 return GetTexEnvfvCookie{cookie}
7273 }
7274
7275
7276
7277 func GetTexEnvfvUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetTexEnvfvCookie {
7278 c.ExtLock.RLock()
7279 defer c.ExtLock.RUnlock()
7280 if _, ok := c.Extensions["GLX"]; !ok {
7281 panic("Cannot issue request 'GetTexEnvfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
7282 }
7283 cookie := c.NewCookie(false, true)
7284 c.NewRequest(getTexEnvfvRequest(c, ContextTag, Target, Pname), cookie)
7285 return GetTexEnvfvCookie{cookie}
7286 }
7287
7288
7289 type GetTexEnvfvReply struct {
7290 Sequence uint16
7291 Length uint32
7292
7293
7294 N uint32
7295 Datum Float32
7296
7297 Data []Float32
7298 }
7299
7300
7301 func (cook GetTexEnvfvCookie) Reply() (*GetTexEnvfvReply, error) {
7302 buf, err := cook.Cookie.Reply()
7303 if err != nil {
7304 return nil, err
7305 }
7306 if buf == nil {
7307 return nil, nil
7308 }
7309 return getTexEnvfvReply(buf), nil
7310 }
7311
7312
7313 func getTexEnvfvReply(buf []byte) *GetTexEnvfvReply {
7314 v := new(GetTexEnvfvReply)
7315 b := 1
7316
7317 b += 1
7318
7319 v.Sequence = xgb.Get16(buf[b:])
7320 b += 2
7321
7322 v.Length = xgb.Get32(buf[b:])
7323 b += 4
7324
7325 b += 4
7326
7327 v.N = xgb.Get32(buf[b:])
7328 b += 4
7329
7330 v.Datum = Float32(xgb.Get32(buf[b:]))
7331 b += 4
7332
7333 b += 12
7334
7335 v.Data = make([]Float32, v.N)
7336 for i := 0; i < int(v.N); i++ {
7337 v.Data[i] = Float32(xgb.Get32(buf[b:]))
7338 b += 4
7339 }
7340
7341 return v
7342 }
7343
7344
7345
7346 func getTexEnvfvRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) []byte {
7347 size := 16
7348 b := 0
7349 buf := make([]byte, size)
7350
7351 c.ExtLock.RLock()
7352 buf[b] = c.Extensions["GLX"]
7353 c.ExtLock.RUnlock()
7354 b += 1
7355
7356 buf[b] = 130
7357 b += 1
7358
7359 xgb.Put16(buf[b:], uint16(size/4))
7360 b += 2
7361
7362 xgb.Put32(buf[b:], uint32(ContextTag))
7363 b += 4
7364
7365 xgb.Put32(buf[b:], Target)
7366 b += 4
7367
7368 xgb.Put32(buf[b:], Pname)
7369 b += 4
7370
7371 return buf
7372 }
7373
7374
7375 type GetTexEnvivCookie struct {
7376 *xgb.Cookie
7377 }
7378
7379
7380
7381 func GetTexEnviv(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetTexEnvivCookie {
7382 c.ExtLock.RLock()
7383 defer c.ExtLock.RUnlock()
7384 if _, ok := c.Extensions["GLX"]; !ok {
7385 panic("Cannot issue request 'GetTexEnviv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
7386 }
7387 cookie := c.NewCookie(true, true)
7388 c.NewRequest(getTexEnvivRequest(c, ContextTag, Target, Pname), cookie)
7389 return GetTexEnvivCookie{cookie}
7390 }
7391
7392
7393
7394 func GetTexEnvivUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetTexEnvivCookie {
7395 c.ExtLock.RLock()
7396 defer c.ExtLock.RUnlock()
7397 if _, ok := c.Extensions["GLX"]; !ok {
7398 panic("Cannot issue request 'GetTexEnviv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
7399 }
7400 cookie := c.NewCookie(false, true)
7401 c.NewRequest(getTexEnvivRequest(c, ContextTag, Target, Pname), cookie)
7402 return GetTexEnvivCookie{cookie}
7403 }
7404
7405
7406 type GetTexEnvivReply struct {
7407 Sequence uint16
7408 Length uint32
7409
7410
7411 N uint32
7412 Datum int32
7413
7414 Data []int32
7415 }
7416
7417
7418 func (cook GetTexEnvivCookie) Reply() (*GetTexEnvivReply, error) {
7419 buf, err := cook.Cookie.Reply()
7420 if err != nil {
7421 return nil, err
7422 }
7423 if buf == nil {
7424 return nil, nil
7425 }
7426 return getTexEnvivReply(buf), nil
7427 }
7428
7429
7430 func getTexEnvivReply(buf []byte) *GetTexEnvivReply {
7431 v := new(GetTexEnvivReply)
7432 b := 1
7433
7434 b += 1
7435
7436 v.Sequence = xgb.Get16(buf[b:])
7437 b += 2
7438
7439 v.Length = xgb.Get32(buf[b:])
7440 b += 4
7441
7442 b += 4
7443
7444 v.N = xgb.Get32(buf[b:])
7445 b += 4
7446
7447 v.Datum = int32(xgb.Get32(buf[b:]))
7448 b += 4
7449
7450 b += 12
7451
7452 v.Data = make([]int32, v.N)
7453 for i := 0; i < int(v.N); i++ {
7454 v.Data[i] = int32(xgb.Get32(buf[b:]))
7455 b += 4
7456 }
7457
7458 return v
7459 }
7460
7461
7462
7463 func getTexEnvivRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) []byte {
7464 size := 16
7465 b := 0
7466 buf := make([]byte, size)
7467
7468 c.ExtLock.RLock()
7469 buf[b] = c.Extensions["GLX"]
7470 c.ExtLock.RUnlock()
7471 b += 1
7472
7473 buf[b] = 131
7474 b += 1
7475
7476 xgb.Put16(buf[b:], uint16(size/4))
7477 b += 2
7478
7479 xgb.Put32(buf[b:], uint32(ContextTag))
7480 b += 4
7481
7482 xgb.Put32(buf[b:], Target)
7483 b += 4
7484
7485 xgb.Put32(buf[b:], Pname)
7486 b += 4
7487
7488 return buf
7489 }
7490
7491
7492 type GetTexGendvCookie struct {
7493 *xgb.Cookie
7494 }
7495
7496
7497
7498 func GetTexGendv(c *xgb.Conn, ContextTag ContextTag, Coord uint32, Pname uint32) GetTexGendvCookie {
7499 c.ExtLock.RLock()
7500 defer c.ExtLock.RUnlock()
7501 if _, ok := c.Extensions["GLX"]; !ok {
7502 panic("Cannot issue request 'GetTexGendv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
7503 }
7504 cookie := c.NewCookie(true, true)
7505 c.NewRequest(getTexGendvRequest(c, ContextTag, Coord, Pname), cookie)
7506 return GetTexGendvCookie{cookie}
7507 }
7508
7509
7510
7511 func GetTexGendvUnchecked(c *xgb.Conn, ContextTag ContextTag, Coord uint32, Pname uint32) GetTexGendvCookie {
7512 c.ExtLock.RLock()
7513 defer c.ExtLock.RUnlock()
7514 if _, ok := c.Extensions["GLX"]; !ok {
7515 panic("Cannot issue request 'GetTexGendv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
7516 }
7517 cookie := c.NewCookie(false, true)
7518 c.NewRequest(getTexGendvRequest(c, ContextTag, Coord, Pname), cookie)
7519 return GetTexGendvCookie{cookie}
7520 }
7521
7522
7523 type GetTexGendvReply struct {
7524 Sequence uint16
7525 Length uint32
7526
7527
7528 N uint32
7529 Datum Float64
7530
7531 Data []Float64
7532 }
7533
7534
7535 func (cook GetTexGendvCookie) Reply() (*GetTexGendvReply, error) {
7536 buf, err := cook.Cookie.Reply()
7537 if err != nil {
7538 return nil, err
7539 }
7540 if buf == nil {
7541 return nil, nil
7542 }
7543 return getTexGendvReply(buf), nil
7544 }
7545
7546
7547 func getTexGendvReply(buf []byte) *GetTexGendvReply {
7548 v := new(GetTexGendvReply)
7549 b := 1
7550
7551 b += 1
7552
7553 v.Sequence = xgb.Get16(buf[b:])
7554 b += 2
7555
7556 v.Length = xgb.Get32(buf[b:])
7557 b += 4
7558
7559 b += 4
7560
7561 v.N = xgb.Get32(buf[b:])
7562 b += 4
7563
7564 v.Datum = Float64(xgb.Get64(buf[b:]))
7565 b += 8
7566
7567 b += 8
7568
7569 v.Data = make([]Float64, v.N)
7570 for i := 0; i < int(v.N); i++ {
7571 v.Data[i] = Float64(xgb.Get64(buf[b:]))
7572 b += 8
7573 }
7574
7575 return v
7576 }
7577
7578
7579
7580 func getTexGendvRequest(c *xgb.Conn, ContextTag ContextTag, Coord uint32, Pname uint32) []byte {
7581 size := 16
7582 b := 0
7583 buf := make([]byte, size)
7584
7585 c.ExtLock.RLock()
7586 buf[b] = c.Extensions["GLX"]
7587 c.ExtLock.RUnlock()
7588 b += 1
7589
7590 buf[b] = 132
7591 b += 1
7592
7593 xgb.Put16(buf[b:], uint16(size/4))
7594 b += 2
7595
7596 xgb.Put32(buf[b:], uint32(ContextTag))
7597 b += 4
7598
7599 xgb.Put32(buf[b:], Coord)
7600 b += 4
7601
7602 xgb.Put32(buf[b:], Pname)
7603 b += 4
7604
7605 return buf
7606 }
7607
7608
7609 type GetTexGenfvCookie struct {
7610 *xgb.Cookie
7611 }
7612
7613
7614
7615 func GetTexGenfv(c *xgb.Conn, ContextTag ContextTag, Coord uint32, Pname uint32) GetTexGenfvCookie {
7616 c.ExtLock.RLock()
7617 defer c.ExtLock.RUnlock()
7618 if _, ok := c.Extensions["GLX"]; !ok {
7619 panic("Cannot issue request 'GetTexGenfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
7620 }
7621 cookie := c.NewCookie(true, true)
7622 c.NewRequest(getTexGenfvRequest(c, ContextTag, Coord, Pname), cookie)
7623 return GetTexGenfvCookie{cookie}
7624 }
7625
7626
7627
7628 func GetTexGenfvUnchecked(c *xgb.Conn, ContextTag ContextTag, Coord uint32, Pname uint32) GetTexGenfvCookie {
7629 c.ExtLock.RLock()
7630 defer c.ExtLock.RUnlock()
7631 if _, ok := c.Extensions["GLX"]; !ok {
7632 panic("Cannot issue request 'GetTexGenfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
7633 }
7634 cookie := c.NewCookie(false, true)
7635 c.NewRequest(getTexGenfvRequest(c, ContextTag, Coord, Pname), cookie)
7636 return GetTexGenfvCookie{cookie}
7637 }
7638
7639
7640 type GetTexGenfvReply struct {
7641 Sequence uint16
7642 Length uint32
7643
7644
7645 N uint32
7646 Datum Float32
7647
7648 Data []Float32
7649 }
7650
7651
7652 func (cook GetTexGenfvCookie) Reply() (*GetTexGenfvReply, error) {
7653 buf, err := cook.Cookie.Reply()
7654 if err != nil {
7655 return nil, err
7656 }
7657 if buf == nil {
7658 return nil, nil
7659 }
7660 return getTexGenfvReply(buf), nil
7661 }
7662
7663
7664 func getTexGenfvReply(buf []byte) *GetTexGenfvReply {
7665 v := new(GetTexGenfvReply)
7666 b := 1
7667
7668 b += 1
7669
7670 v.Sequence = xgb.Get16(buf[b:])
7671 b += 2
7672
7673 v.Length = xgb.Get32(buf[b:])
7674 b += 4
7675
7676 b += 4
7677
7678 v.N = xgb.Get32(buf[b:])
7679 b += 4
7680
7681 v.Datum = Float32(xgb.Get32(buf[b:]))
7682 b += 4
7683
7684 b += 12
7685
7686 v.Data = make([]Float32, v.N)
7687 for i := 0; i < int(v.N); i++ {
7688 v.Data[i] = Float32(xgb.Get32(buf[b:]))
7689 b += 4
7690 }
7691
7692 return v
7693 }
7694
7695
7696
7697 func getTexGenfvRequest(c *xgb.Conn, ContextTag ContextTag, Coord uint32, Pname uint32) []byte {
7698 size := 16
7699 b := 0
7700 buf := make([]byte, size)
7701
7702 c.ExtLock.RLock()
7703 buf[b] = c.Extensions["GLX"]
7704 c.ExtLock.RUnlock()
7705 b += 1
7706
7707 buf[b] = 133
7708 b += 1
7709
7710 xgb.Put16(buf[b:], uint16(size/4))
7711 b += 2
7712
7713 xgb.Put32(buf[b:], uint32(ContextTag))
7714 b += 4
7715
7716 xgb.Put32(buf[b:], Coord)
7717 b += 4
7718
7719 xgb.Put32(buf[b:], Pname)
7720 b += 4
7721
7722 return buf
7723 }
7724
7725
7726 type GetTexGenivCookie struct {
7727 *xgb.Cookie
7728 }
7729
7730
7731
7732 func GetTexGeniv(c *xgb.Conn, ContextTag ContextTag, Coord uint32, Pname uint32) GetTexGenivCookie {
7733 c.ExtLock.RLock()
7734 defer c.ExtLock.RUnlock()
7735 if _, ok := c.Extensions["GLX"]; !ok {
7736 panic("Cannot issue request 'GetTexGeniv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
7737 }
7738 cookie := c.NewCookie(true, true)
7739 c.NewRequest(getTexGenivRequest(c, ContextTag, Coord, Pname), cookie)
7740 return GetTexGenivCookie{cookie}
7741 }
7742
7743
7744
7745 func GetTexGenivUnchecked(c *xgb.Conn, ContextTag ContextTag, Coord uint32, Pname uint32) GetTexGenivCookie {
7746 c.ExtLock.RLock()
7747 defer c.ExtLock.RUnlock()
7748 if _, ok := c.Extensions["GLX"]; !ok {
7749 panic("Cannot issue request 'GetTexGeniv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
7750 }
7751 cookie := c.NewCookie(false, true)
7752 c.NewRequest(getTexGenivRequest(c, ContextTag, Coord, Pname), cookie)
7753 return GetTexGenivCookie{cookie}
7754 }
7755
7756
7757 type GetTexGenivReply struct {
7758 Sequence uint16
7759 Length uint32
7760
7761
7762 N uint32
7763 Datum int32
7764
7765 Data []int32
7766 }
7767
7768
7769 func (cook GetTexGenivCookie) Reply() (*GetTexGenivReply, error) {
7770 buf, err := cook.Cookie.Reply()
7771 if err != nil {
7772 return nil, err
7773 }
7774 if buf == nil {
7775 return nil, nil
7776 }
7777 return getTexGenivReply(buf), nil
7778 }
7779
7780
7781 func getTexGenivReply(buf []byte) *GetTexGenivReply {
7782 v := new(GetTexGenivReply)
7783 b := 1
7784
7785 b += 1
7786
7787 v.Sequence = xgb.Get16(buf[b:])
7788 b += 2
7789
7790 v.Length = xgb.Get32(buf[b:])
7791 b += 4
7792
7793 b += 4
7794
7795 v.N = xgb.Get32(buf[b:])
7796 b += 4
7797
7798 v.Datum = int32(xgb.Get32(buf[b:]))
7799 b += 4
7800
7801 b += 12
7802
7803 v.Data = make([]int32, v.N)
7804 for i := 0; i < int(v.N); i++ {
7805 v.Data[i] = int32(xgb.Get32(buf[b:]))
7806 b += 4
7807 }
7808
7809 return v
7810 }
7811
7812
7813
7814 func getTexGenivRequest(c *xgb.Conn, ContextTag ContextTag, Coord uint32, Pname uint32) []byte {
7815 size := 16
7816 b := 0
7817 buf := make([]byte, size)
7818
7819 c.ExtLock.RLock()
7820 buf[b] = c.Extensions["GLX"]
7821 c.ExtLock.RUnlock()
7822 b += 1
7823
7824 buf[b] = 134
7825 b += 1
7826
7827 xgb.Put16(buf[b:], uint16(size/4))
7828 b += 2
7829
7830 xgb.Put32(buf[b:], uint32(ContextTag))
7831 b += 4
7832
7833 xgb.Put32(buf[b:], Coord)
7834 b += 4
7835
7836 xgb.Put32(buf[b:], Pname)
7837 b += 4
7838
7839 return buf
7840 }
7841
7842
7843 type GetTexImageCookie struct {
7844 *xgb.Cookie
7845 }
7846
7847
7848
7849 func GetTexImage(c *xgb.Conn, ContextTag ContextTag, Target uint32, Level int32, Format uint32, Type uint32, SwapBytes bool) GetTexImageCookie {
7850 c.ExtLock.RLock()
7851 defer c.ExtLock.RUnlock()
7852 if _, ok := c.Extensions["GLX"]; !ok {
7853 panic("Cannot issue request 'GetTexImage' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
7854 }
7855 cookie := c.NewCookie(true, true)
7856 c.NewRequest(getTexImageRequest(c, ContextTag, Target, Level, Format, Type, SwapBytes), cookie)
7857 return GetTexImageCookie{cookie}
7858 }
7859
7860
7861
7862 func GetTexImageUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Level int32, Format uint32, Type uint32, SwapBytes bool) GetTexImageCookie {
7863 c.ExtLock.RLock()
7864 defer c.ExtLock.RUnlock()
7865 if _, ok := c.Extensions["GLX"]; !ok {
7866 panic("Cannot issue request 'GetTexImage' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
7867 }
7868 cookie := c.NewCookie(false, true)
7869 c.NewRequest(getTexImageRequest(c, ContextTag, Target, Level, Format, Type, SwapBytes), cookie)
7870 return GetTexImageCookie{cookie}
7871 }
7872
7873
7874 type GetTexImageReply struct {
7875 Sequence uint16
7876 Length uint32
7877
7878
7879 Width int32
7880 Height int32
7881 Depth int32
7882
7883 Data []byte
7884 }
7885
7886
7887 func (cook GetTexImageCookie) Reply() (*GetTexImageReply, error) {
7888 buf, err := cook.Cookie.Reply()
7889 if err != nil {
7890 return nil, err
7891 }
7892 if buf == nil {
7893 return nil, nil
7894 }
7895 return getTexImageReply(buf), nil
7896 }
7897
7898
7899 func getTexImageReply(buf []byte) *GetTexImageReply {
7900 v := new(GetTexImageReply)
7901 b := 1
7902
7903 b += 1
7904
7905 v.Sequence = xgb.Get16(buf[b:])
7906 b += 2
7907
7908 v.Length = xgb.Get32(buf[b:])
7909 b += 4
7910
7911 b += 8
7912
7913 v.Width = int32(xgb.Get32(buf[b:]))
7914 b += 4
7915
7916 v.Height = int32(xgb.Get32(buf[b:]))
7917 b += 4
7918
7919 v.Depth = int32(xgb.Get32(buf[b:]))
7920 b += 4
7921
7922 b += 4
7923
7924 v.Data = make([]byte, (int(v.Length) * 4))
7925 copy(v.Data[:(int(v.Length)*4)], buf[b:])
7926 b += int((int(v.Length) * 4))
7927
7928 return v
7929 }
7930
7931
7932
7933 func getTexImageRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Level int32, Format uint32, Type uint32, SwapBytes bool) []byte {
7934 size := 28
7935 b := 0
7936 buf := make([]byte, size)
7937
7938 c.ExtLock.RLock()
7939 buf[b] = c.Extensions["GLX"]
7940 c.ExtLock.RUnlock()
7941 b += 1
7942
7943 buf[b] = 135
7944 b += 1
7945
7946 xgb.Put16(buf[b:], uint16(size/4))
7947 b += 2
7948
7949 xgb.Put32(buf[b:], uint32(ContextTag))
7950 b += 4
7951
7952 xgb.Put32(buf[b:], Target)
7953 b += 4
7954
7955 xgb.Put32(buf[b:], uint32(Level))
7956 b += 4
7957
7958 xgb.Put32(buf[b:], Format)
7959 b += 4
7960
7961 xgb.Put32(buf[b:], Type)
7962 b += 4
7963
7964 if SwapBytes {
7965 buf[b] = 1
7966 } else {
7967 buf[b] = 0
7968 }
7969 b += 1
7970
7971 return buf
7972 }
7973
7974
7975 type GetTexLevelParameterfvCookie struct {
7976 *xgb.Cookie
7977 }
7978
7979
7980
7981 func GetTexLevelParameterfv(c *xgb.Conn, ContextTag ContextTag, Target uint32, Level int32, Pname uint32) GetTexLevelParameterfvCookie {
7982 c.ExtLock.RLock()
7983 defer c.ExtLock.RUnlock()
7984 if _, ok := c.Extensions["GLX"]; !ok {
7985 panic("Cannot issue request 'GetTexLevelParameterfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
7986 }
7987 cookie := c.NewCookie(true, true)
7988 c.NewRequest(getTexLevelParameterfvRequest(c, ContextTag, Target, Level, Pname), cookie)
7989 return GetTexLevelParameterfvCookie{cookie}
7990 }
7991
7992
7993
7994 func GetTexLevelParameterfvUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Level int32, Pname uint32) GetTexLevelParameterfvCookie {
7995 c.ExtLock.RLock()
7996 defer c.ExtLock.RUnlock()
7997 if _, ok := c.Extensions["GLX"]; !ok {
7998 panic("Cannot issue request 'GetTexLevelParameterfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
7999 }
8000 cookie := c.NewCookie(false, true)
8001 c.NewRequest(getTexLevelParameterfvRequest(c, ContextTag, Target, Level, Pname), cookie)
8002 return GetTexLevelParameterfvCookie{cookie}
8003 }
8004
8005
8006 type GetTexLevelParameterfvReply struct {
8007 Sequence uint16
8008 Length uint32
8009
8010
8011 N uint32
8012 Datum Float32
8013
8014 Data []Float32
8015 }
8016
8017
8018 func (cook GetTexLevelParameterfvCookie) Reply() (*GetTexLevelParameterfvReply, error) {
8019 buf, err := cook.Cookie.Reply()
8020 if err != nil {
8021 return nil, err
8022 }
8023 if buf == nil {
8024 return nil, nil
8025 }
8026 return getTexLevelParameterfvReply(buf), nil
8027 }
8028
8029
8030 func getTexLevelParameterfvReply(buf []byte) *GetTexLevelParameterfvReply {
8031 v := new(GetTexLevelParameterfvReply)
8032 b := 1
8033
8034 b += 1
8035
8036 v.Sequence = xgb.Get16(buf[b:])
8037 b += 2
8038
8039 v.Length = xgb.Get32(buf[b:])
8040 b += 4
8041
8042 b += 4
8043
8044 v.N = xgb.Get32(buf[b:])
8045 b += 4
8046
8047 v.Datum = Float32(xgb.Get32(buf[b:]))
8048 b += 4
8049
8050 b += 12
8051
8052 v.Data = make([]Float32, v.N)
8053 for i := 0; i < int(v.N); i++ {
8054 v.Data[i] = Float32(xgb.Get32(buf[b:]))
8055 b += 4
8056 }
8057
8058 return v
8059 }
8060
8061
8062
8063 func getTexLevelParameterfvRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Level int32, Pname uint32) []byte {
8064 size := 20
8065 b := 0
8066 buf := make([]byte, size)
8067
8068 c.ExtLock.RLock()
8069 buf[b] = c.Extensions["GLX"]
8070 c.ExtLock.RUnlock()
8071 b += 1
8072
8073 buf[b] = 138
8074 b += 1
8075
8076 xgb.Put16(buf[b:], uint16(size/4))
8077 b += 2
8078
8079 xgb.Put32(buf[b:], uint32(ContextTag))
8080 b += 4
8081
8082 xgb.Put32(buf[b:], Target)
8083 b += 4
8084
8085 xgb.Put32(buf[b:], uint32(Level))
8086 b += 4
8087
8088 xgb.Put32(buf[b:], Pname)
8089 b += 4
8090
8091 return buf
8092 }
8093
8094
8095 type GetTexLevelParameterivCookie struct {
8096 *xgb.Cookie
8097 }
8098
8099
8100
8101 func GetTexLevelParameteriv(c *xgb.Conn, ContextTag ContextTag, Target uint32, Level int32, Pname uint32) GetTexLevelParameterivCookie {
8102 c.ExtLock.RLock()
8103 defer c.ExtLock.RUnlock()
8104 if _, ok := c.Extensions["GLX"]; !ok {
8105 panic("Cannot issue request 'GetTexLevelParameteriv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
8106 }
8107 cookie := c.NewCookie(true, true)
8108 c.NewRequest(getTexLevelParameterivRequest(c, ContextTag, Target, Level, Pname), cookie)
8109 return GetTexLevelParameterivCookie{cookie}
8110 }
8111
8112
8113
8114 func GetTexLevelParameterivUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Level int32, Pname uint32) GetTexLevelParameterivCookie {
8115 c.ExtLock.RLock()
8116 defer c.ExtLock.RUnlock()
8117 if _, ok := c.Extensions["GLX"]; !ok {
8118 panic("Cannot issue request 'GetTexLevelParameteriv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
8119 }
8120 cookie := c.NewCookie(false, true)
8121 c.NewRequest(getTexLevelParameterivRequest(c, ContextTag, Target, Level, Pname), cookie)
8122 return GetTexLevelParameterivCookie{cookie}
8123 }
8124
8125
8126 type GetTexLevelParameterivReply struct {
8127 Sequence uint16
8128 Length uint32
8129
8130
8131 N uint32
8132 Datum int32
8133
8134 Data []int32
8135 }
8136
8137
8138 func (cook GetTexLevelParameterivCookie) Reply() (*GetTexLevelParameterivReply, error) {
8139 buf, err := cook.Cookie.Reply()
8140 if err != nil {
8141 return nil, err
8142 }
8143 if buf == nil {
8144 return nil, nil
8145 }
8146 return getTexLevelParameterivReply(buf), nil
8147 }
8148
8149
8150 func getTexLevelParameterivReply(buf []byte) *GetTexLevelParameterivReply {
8151 v := new(GetTexLevelParameterivReply)
8152 b := 1
8153
8154 b += 1
8155
8156 v.Sequence = xgb.Get16(buf[b:])
8157 b += 2
8158
8159 v.Length = xgb.Get32(buf[b:])
8160 b += 4
8161
8162 b += 4
8163
8164 v.N = xgb.Get32(buf[b:])
8165 b += 4
8166
8167 v.Datum = int32(xgb.Get32(buf[b:]))
8168 b += 4
8169
8170 b += 12
8171
8172 v.Data = make([]int32, v.N)
8173 for i := 0; i < int(v.N); i++ {
8174 v.Data[i] = int32(xgb.Get32(buf[b:]))
8175 b += 4
8176 }
8177
8178 return v
8179 }
8180
8181
8182
8183 func getTexLevelParameterivRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Level int32, Pname uint32) []byte {
8184 size := 20
8185 b := 0
8186 buf := make([]byte, size)
8187
8188 c.ExtLock.RLock()
8189 buf[b] = c.Extensions["GLX"]
8190 c.ExtLock.RUnlock()
8191 b += 1
8192
8193 buf[b] = 139
8194 b += 1
8195
8196 xgb.Put16(buf[b:], uint16(size/4))
8197 b += 2
8198
8199 xgb.Put32(buf[b:], uint32(ContextTag))
8200 b += 4
8201
8202 xgb.Put32(buf[b:], Target)
8203 b += 4
8204
8205 xgb.Put32(buf[b:], uint32(Level))
8206 b += 4
8207
8208 xgb.Put32(buf[b:], Pname)
8209 b += 4
8210
8211 return buf
8212 }
8213
8214
8215 type GetTexParameterfvCookie struct {
8216 *xgb.Cookie
8217 }
8218
8219
8220
8221 func GetTexParameterfv(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetTexParameterfvCookie {
8222 c.ExtLock.RLock()
8223 defer c.ExtLock.RUnlock()
8224 if _, ok := c.Extensions["GLX"]; !ok {
8225 panic("Cannot issue request 'GetTexParameterfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
8226 }
8227 cookie := c.NewCookie(true, true)
8228 c.NewRequest(getTexParameterfvRequest(c, ContextTag, Target, Pname), cookie)
8229 return GetTexParameterfvCookie{cookie}
8230 }
8231
8232
8233
8234 func GetTexParameterfvUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetTexParameterfvCookie {
8235 c.ExtLock.RLock()
8236 defer c.ExtLock.RUnlock()
8237 if _, ok := c.Extensions["GLX"]; !ok {
8238 panic("Cannot issue request 'GetTexParameterfv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
8239 }
8240 cookie := c.NewCookie(false, true)
8241 c.NewRequest(getTexParameterfvRequest(c, ContextTag, Target, Pname), cookie)
8242 return GetTexParameterfvCookie{cookie}
8243 }
8244
8245
8246 type GetTexParameterfvReply struct {
8247 Sequence uint16
8248 Length uint32
8249
8250
8251 N uint32
8252 Datum Float32
8253
8254 Data []Float32
8255 }
8256
8257
8258 func (cook GetTexParameterfvCookie) Reply() (*GetTexParameterfvReply, error) {
8259 buf, err := cook.Cookie.Reply()
8260 if err != nil {
8261 return nil, err
8262 }
8263 if buf == nil {
8264 return nil, nil
8265 }
8266 return getTexParameterfvReply(buf), nil
8267 }
8268
8269
8270 func getTexParameterfvReply(buf []byte) *GetTexParameterfvReply {
8271 v := new(GetTexParameterfvReply)
8272 b := 1
8273
8274 b += 1
8275
8276 v.Sequence = xgb.Get16(buf[b:])
8277 b += 2
8278
8279 v.Length = xgb.Get32(buf[b:])
8280 b += 4
8281
8282 b += 4
8283
8284 v.N = xgb.Get32(buf[b:])
8285 b += 4
8286
8287 v.Datum = Float32(xgb.Get32(buf[b:]))
8288 b += 4
8289
8290 b += 12
8291
8292 v.Data = make([]Float32, v.N)
8293 for i := 0; i < int(v.N); i++ {
8294 v.Data[i] = Float32(xgb.Get32(buf[b:]))
8295 b += 4
8296 }
8297
8298 return v
8299 }
8300
8301
8302
8303 func getTexParameterfvRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) []byte {
8304 size := 16
8305 b := 0
8306 buf := make([]byte, size)
8307
8308 c.ExtLock.RLock()
8309 buf[b] = c.Extensions["GLX"]
8310 c.ExtLock.RUnlock()
8311 b += 1
8312
8313 buf[b] = 136
8314 b += 1
8315
8316 xgb.Put16(buf[b:], uint16(size/4))
8317 b += 2
8318
8319 xgb.Put32(buf[b:], uint32(ContextTag))
8320 b += 4
8321
8322 xgb.Put32(buf[b:], Target)
8323 b += 4
8324
8325 xgb.Put32(buf[b:], Pname)
8326 b += 4
8327
8328 return buf
8329 }
8330
8331
8332 type GetTexParameterivCookie struct {
8333 *xgb.Cookie
8334 }
8335
8336
8337
8338 func GetTexParameteriv(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetTexParameterivCookie {
8339 c.ExtLock.RLock()
8340 defer c.ExtLock.RUnlock()
8341 if _, ok := c.Extensions["GLX"]; !ok {
8342 panic("Cannot issue request 'GetTexParameteriv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
8343 }
8344 cookie := c.NewCookie(true, true)
8345 c.NewRequest(getTexParameterivRequest(c, ContextTag, Target, Pname), cookie)
8346 return GetTexParameterivCookie{cookie}
8347 }
8348
8349
8350
8351 func GetTexParameterivUnchecked(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) GetTexParameterivCookie {
8352 c.ExtLock.RLock()
8353 defer c.ExtLock.RUnlock()
8354 if _, ok := c.Extensions["GLX"]; !ok {
8355 panic("Cannot issue request 'GetTexParameteriv' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
8356 }
8357 cookie := c.NewCookie(false, true)
8358 c.NewRequest(getTexParameterivRequest(c, ContextTag, Target, Pname), cookie)
8359 return GetTexParameterivCookie{cookie}
8360 }
8361
8362
8363 type GetTexParameterivReply struct {
8364 Sequence uint16
8365 Length uint32
8366
8367
8368 N uint32
8369 Datum int32
8370
8371 Data []int32
8372 }
8373
8374
8375 func (cook GetTexParameterivCookie) Reply() (*GetTexParameterivReply, error) {
8376 buf, err := cook.Cookie.Reply()
8377 if err != nil {
8378 return nil, err
8379 }
8380 if buf == nil {
8381 return nil, nil
8382 }
8383 return getTexParameterivReply(buf), nil
8384 }
8385
8386
8387 func getTexParameterivReply(buf []byte) *GetTexParameterivReply {
8388 v := new(GetTexParameterivReply)
8389 b := 1
8390
8391 b += 1
8392
8393 v.Sequence = xgb.Get16(buf[b:])
8394 b += 2
8395
8396 v.Length = xgb.Get32(buf[b:])
8397 b += 4
8398
8399 b += 4
8400
8401 v.N = xgb.Get32(buf[b:])
8402 b += 4
8403
8404 v.Datum = int32(xgb.Get32(buf[b:]))
8405 b += 4
8406
8407 b += 12
8408
8409 v.Data = make([]int32, v.N)
8410 for i := 0; i < int(v.N); i++ {
8411 v.Data[i] = int32(xgb.Get32(buf[b:]))
8412 b += 4
8413 }
8414
8415 return v
8416 }
8417
8418
8419
8420 func getTexParameterivRequest(c *xgb.Conn, ContextTag ContextTag, Target uint32, Pname uint32) []byte {
8421 size := 16
8422 b := 0
8423 buf := make([]byte, size)
8424
8425 c.ExtLock.RLock()
8426 buf[b] = c.Extensions["GLX"]
8427 c.ExtLock.RUnlock()
8428 b += 1
8429
8430 buf[b] = 137
8431 b += 1
8432
8433 xgb.Put16(buf[b:], uint16(size/4))
8434 b += 2
8435
8436 xgb.Put32(buf[b:], uint32(ContextTag))
8437 b += 4
8438
8439 xgb.Put32(buf[b:], Target)
8440 b += 4
8441
8442 xgb.Put32(buf[b:], Pname)
8443 b += 4
8444
8445 return buf
8446 }
8447
8448
8449 type GetVisualConfigsCookie struct {
8450 *xgb.Cookie
8451 }
8452
8453
8454
8455 func GetVisualConfigs(c *xgb.Conn, Screen uint32) GetVisualConfigsCookie {
8456 c.ExtLock.RLock()
8457 defer c.ExtLock.RUnlock()
8458 if _, ok := c.Extensions["GLX"]; !ok {
8459 panic("Cannot issue request 'GetVisualConfigs' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
8460 }
8461 cookie := c.NewCookie(true, true)
8462 c.NewRequest(getVisualConfigsRequest(c, Screen), cookie)
8463 return GetVisualConfigsCookie{cookie}
8464 }
8465
8466
8467
8468 func GetVisualConfigsUnchecked(c *xgb.Conn, Screen uint32) GetVisualConfigsCookie {
8469 c.ExtLock.RLock()
8470 defer c.ExtLock.RUnlock()
8471 if _, ok := c.Extensions["GLX"]; !ok {
8472 panic("Cannot issue request 'GetVisualConfigs' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
8473 }
8474 cookie := c.NewCookie(false, true)
8475 c.NewRequest(getVisualConfigsRequest(c, Screen), cookie)
8476 return GetVisualConfigsCookie{cookie}
8477 }
8478
8479
8480 type GetVisualConfigsReply struct {
8481 Sequence uint16
8482 Length uint32
8483
8484 NumVisuals uint32
8485 NumProperties uint32
8486
8487 PropertyList []uint32
8488 }
8489
8490
8491 func (cook GetVisualConfigsCookie) Reply() (*GetVisualConfigsReply, error) {
8492 buf, err := cook.Cookie.Reply()
8493 if err != nil {
8494 return nil, err
8495 }
8496 if buf == nil {
8497 return nil, nil
8498 }
8499 return getVisualConfigsReply(buf), nil
8500 }
8501
8502
8503 func getVisualConfigsReply(buf []byte) *GetVisualConfigsReply {
8504 v := new(GetVisualConfigsReply)
8505 b := 1
8506
8507 b += 1
8508
8509 v.Sequence = xgb.Get16(buf[b:])
8510 b += 2
8511
8512 v.Length = xgb.Get32(buf[b:])
8513 b += 4
8514
8515 v.NumVisuals = xgb.Get32(buf[b:])
8516 b += 4
8517
8518 v.NumProperties = xgb.Get32(buf[b:])
8519 b += 4
8520
8521 b += 16
8522
8523 v.PropertyList = make([]uint32, v.Length)
8524 for i := 0; i < int(v.Length); i++ {
8525 v.PropertyList[i] = xgb.Get32(buf[b:])
8526 b += 4
8527 }
8528
8529 return v
8530 }
8531
8532
8533
8534 func getVisualConfigsRequest(c *xgb.Conn, Screen uint32) []byte {
8535 size := 8
8536 b := 0
8537 buf := make([]byte, size)
8538
8539 c.ExtLock.RLock()
8540 buf[b] = c.Extensions["GLX"]
8541 c.ExtLock.RUnlock()
8542 b += 1
8543
8544 buf[b] = 14
8545 b += 1
8546
8547 xgb.Put16(buf[b:], uint16(size/4))
8548 b += 2
8549
8550 xgb.Put32(buf[b:], Screen)
8551 b += 4
8552
8553 return buf
8554 }
8555
8556
8557 type IsDirectCookie struct {
8558 *xgb.Cookie
8559 }
8560
8561
8562
8563 func IsDirect(c *xgb.Conn, Context Context) IsDirectCookie {
8564 c.ExtLock.RLock()
8565 defer c.ExtLock.RUnlock()
8566 if _, ok := c.Extensions["GLX"]; !ok {
8567 panic("Cannot issue request 'IsDirect' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
8568 }
8569 cookie := c.NewCookie(true, true)
8570 c.NewRequest(isDirectRequest(c, Context), cookie)
8571 return IsDirectCookie{cookie}
8572 }
8573
8574
8575
8576 func IsDirectUnchecked(c *xgb.Conn, Context Context) IsDirectCookie {
8577 c.ExtLock.RLock()
8578 defer c.ExtLock.RUnlock()
8579 if _, ok := c.Extensions["GLX"]; !ok {
8580 panic("Cannot issue request 'IsDirect' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
8581 }
8582 cookie := c.NewCookie(false, true)
8583 c.NewRequest(isDirectRequest(c, Context), cookie)
8584 return IsDirectCookie{cookie}
8585 }
8586
8587
8588 type IsDirectReply struct {
8589 Sequence uint16
8590 Length uint32
8591
8592 IsDirect bool
8593
8594 }
8595
8596
8597 func (cook IsDirectCookie) Reply() (*IsDirectReply, error) {
8598 buf, err := cook.Cookie.Reply()
8599 if err != nil {
8600 return nil, err
8601 }
8602 if buf == nil {
8603 return nil, nil
8604 }
8605 return isDirectReply(buf), nil
8606 }
8607
8608
8609 func isDirectReply(buf []byte) *IsDirectReply {
8610 v := new(IsDirectReply)
8611 b := 1
8612
8613 b += 1
8614
8615 v.Sequence = xgb.Get16(buf[b:])
8616 b += 2
8617
8618 v.Length = xgb.Get32(buf[b:])
8619 b += 4
8620
8621 if buf[b] == 1 {
8622 v.IsDirect = true
8623 } else {
8624 v.IsDirect = false
8625 }
8626 b += 1
8627
8628 b += 23
8629
8630 return v
8631 }
8632
8633
8634
8635 func isDirectRequest(c *xgb.Conn, Context Context) []byte {
8636 size := 8
8637 b := 0
8638 buf := make([]byte, size)
8639
8640 c.ExtLock.RLock()
8641 buf[b] = c.Extensions["GLX"]
8642 c.ExtLock.RUnlock()
8643 b += 1
8644
8645 buf[b] = 6
8646 b += 1
8647
8648 xgb.Put16(buf[b:], uint16(size/4))
8649 b += 2
8650
8651 xgb.Put32(buf[b:], uint32(Context))
8652 b += 4
8653
8654 return buf
8655 }
8656
8657
8658 type IsListCookie struct {
8659 *xgb.Cookie
8660 }
8661
8662
8663
8664 func IsList(c *xgb.Conn, ContextTag ContextTag, List uint32) IsListCookie {
8665 c.ExtLock.RLock()
8666 defer c.ExtLock.RUnlock()
8667 if _, ok := c.Extensions["GLX"]; !ok {
8668 panic("Cannot issue request 'IsList' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
8669 }
8670 cookie := c.NewCookie(true, true)
8671 c.NewRequest(isListRequest(c, ContextTag, List), cookie)
8672 return IsListCookie{cookie}
8673 }
8674
8675
8676
8677 func IsListUnchecked(c *xgb.Conn, ContextTag ContextTag, List uint32) IsListCookie {
8678 c.ExtLock.RLock()
8679 defer c.ExtLock.RUnlock()
8680 if _, ok := c.Extensions["GLX"]; !ok {
8681 panic("Cannot issue request 'IsList' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
8682 }
8683 cookie := c.NewCookie(false, true)
8684 c.NewRequest(isListRequest(c, ContextTag, List), cookie)
8685 return IsListCookie{cookie}
8686 }
8687
8688
8689 type IsListReply struct {
8690 Sequence uint16
8691 Length uint32
8692
8693 RetVal Bool32
8694 }
8695
8696
8697 func (cook IsListCookie) Reply() (*IsListReply, error) {
8698 buf, err := cook.Cookie.Reply()
8699 if err != nil {
8700 return nil, err
8701 }
8702 if buf == nil {
8703 return nil, nil
8704 }
8705 return isListReply(buf), nil
8706 }
8707
8708
8709 func isListReply(buf []byte) *IsListReply {
8710 v := new(IsListReply)
8711 b := 1
8712
8713 b += 1
8714
8715 v.Sequence = xgb.Get16(buf[b:])
8716 b += 2
8717
8718 v.Length = xgb.Get32(buf[b:])
8719 b += 4
8720
8721 v.RetVal = Bool32(xgb.Get32(buf[b:]))
8722 b += 4
8723
8724 return v
8725 }
8726
8727
8728
8729 func isListRequest(c *xgb.Conn, ContextTag ContextTag, List uint32) []byte {
8730 size := 12
8731 b := 0
8732 buf := make([]byte, size)
8733
8734 c.ExtLock.RLock()
8735 buf[b] = c.Extensions["GLX"]
8736 c.ExtLock.RUnlock()
8737 b += 1
8738
8739 buf[b] = 141
8740 b += 1
8741
8742 xgb.Put16(buf[b:], uint16(size/4))
8743 b += 2
8744
8745 xgb.Put32(buf[b:], uint32(ContextTag))
8746 b += 4
8747
8748 xgb.Put32(buf[b:], List)
8749 b += 4
8750
8751 return buf
8752 }
8753
8754
8755 type IsQueryARBCookie struct {
8756 *xgb.Cookie
8757 }
8758
8759
8760
8761 func IsQueryARB(c *xgb.Conn, ContextTag ContextTag, Id uint32) IsQueryARBCookie {
8762 c.ExtLock.RLock()
8763 defer c.ExtLock.RUnlock()
8764 if _, ok := c.Extensions["GLX"]; !ok {
8765 panic("Cannot issue request 'IsQueryARB' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
8766 }
8767 cookie := c.NewCookie(true, true)
8768 c.NewRequest(isQueryARBRequest(c, ContextTag, Id), cookie)
8769 return IsQueryARBCookie{cookie}
8770 }
8771
8772
8773
8774 func IsQueryARBUnchecked(c *xgb.Conn, ContextTag ContextTag, Id uint32) IsQueryARBCookie {
8775 c.ExtLock.RLock()
8776 defer c.ExtLock.RUnlock()
8777 if _, ok := c.Extensions["GLX"]; !ok {
8778 panic("Cannot issue request 'IsQueryARB' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
8779 }
8780 cookie := c.NewCookie(false, true)
8781 c.NewRequest(isQueryARBRequest(c, ContextTag, Id), cookie)
8782 return IsQueryARBCookie{cookie}
8783 }
8784
8785
8786 type IsQueryARBReply struct {
8787 Sequence uint16
8788 Length uint32
8789
8790 RetVal Bool32
8791 }
8792
8793
8794 func (cook IsQueryARBCookie) Reply() (*IsQueryARBReply, error) {
8795 buf, err := cook.Cookie.Reply()
8796 if err != nil {
8797 return nil, err
8798 }
8799 if buf == nil {
8800 return nil, nil
8801 }
8802 return isQueryARBReply(buf), nil
8803 }
8804
8805
8806 func isQueryARBReply(buf []byte) *IsQueryARBReply {
8807 v := new(IsQueryARBReply)
8808 b := 1
8809
8810 b += 1
8811
8812 v.Sequence = xgb.Get16(buf[b:])
8813 b += 2
8814
8815 v.Length = xgb.Get32(buf[b:])
8816 b += 4
8817
8818 v.RetVal = Bool32(xgb.Get32(buf[b:]))
8819 b += 4
8820
8821 return v
8822 }
8823
8824
8825
8826 func isQueryARBRequest(c *xgb.Conn, ContextTag ContextTag, Id uint32) []byte {
8827 size := 12
8828 b := 0
8829 buf := make([]byte, size)
8830
8831 c.ExtLock.RLock()
8832 buf[b] = c.Extensions["GLX"]
8833 c.ExtLock.RUnlock()
8834 b += 1
8835
8836 buf[b] = 163
8837 b += 1
8838
8839 xgb.Put16(buf[b:], uint16(size/4))
8840 b += 2
8841
8842 xgb.Put32(buf[b:], uint32(ContextTag))
8843 b += 4
8844
8845 xgb.Put32(buf[b:], Id)
8846 b += 4
8847
8848 return buf
8849 }
8850
8851
8852 type IsTextureCookie struct {
8853 *xgb.Cookie
8854 }
8855
8856
8857
8858 func IsTexture(c *xgb.Conn, ContextTag ContextTag, Texture uint32) IsTextureCookie {
8859 c.ExtLock.RLock()
8860 defer c.ExtLock.RUnlock()
8861 if _, ok := c.Extensions["GLX"]; !ok {
8862 panic("Cannot issue request 'IsTexture' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
8863 }
8864 cookie := c.NewCookie(true, true)
8865 c.NewRequest(isTextureRequest(c, ContextTag, Texture), cookie)
8866 return IsTextureCookie{cookie}
8867 }
8868
8869
8870
8871 func IsTextureUnchecked(c *xgb.Conn, ContextTag ContextTag, Texture uint32) IsTextureCookie {
8872 c.ExtLock.RLock()
8873 defer c.ExtLock.RUnlock()
8874 if _, ok := c.Extensions["GLX"]; !ok {
8875 panic("Cannot issue request 'IsTexture' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
8876 }
8877 cookie := c.NewCookie(false, true)
8878 c.NewRequest(isTextureRequest(c, ContextTag, Texture), cookie)
8879 return IsTextureCookie{cookie}
8880 }
8881
8882
8883 type IsTextureReply struct {
8884 Sequence uint16
8885 Length uint32
8886
8887 RetVal Bool32
8888 }
8889
8890
8891 func (cook IsTextureCookie) Reply() (*IsTextureReply, error) {
8892 buf, err := cook.Cookie.Reply()
8893 if err != nil {
8894 return nil, err
8895 }
8896 if buf == nil {
8897 return nil, nil
8898 }
8899 return isTextureReply(buf), nil
8900 }
8901
8902
8903 func isTextureReply(buf []byte) *IsTextureReply {
8904 v := new(IsTextureReply)
8905 b := 1
8906
8907 b += 1
8908
8909 v.Sequence = xgb.Get16(buf[b:])
8910 b += 2
8911
8912 v.Length = xgb.Get32(buf[b:])
8913 b += 4
8914
8915 v.RetVal = Bool32(xgb.Get32(buf[b:]))
8916 b += 4
8917
8918 return v
8919 }
8920
8921
8922
8923 func isTextureRequest(c *xgb.Conn, ContextTag ContextTag, Texture uint32) []byte {
8924 size := 12
8925 b := 0
8926 buf := make([]byte, size)
8927
8928 c.ExtLock.RLock()
8929 buf[b] = c.Extensions["GLX"]
8930 c.ExtLock.RUnlock()
8931 b += 1
8932
8933 buf[b] = 146
8934 b += 1
8935
8936 xgb.Put16(buf[b:], uint16(size/4))
8937 b += 2
8938
8939 xgb.Put32(buf[b:], uint32(ContextTag))
8940 b += 4
8941
8942 xgb.Put32(buf[b:], Texture)
8943 b += 4
8944
8945 return buf
8946 }
8947
8948
8949 type MakeContextCurrentCookie struct {
8950 *xgb.Cookie
8951 }
8952
8953
8954
8955 func MakeContextCurrent(c *xgb.Conn, OldContextTag ContextTag, Drawable Drawable, ReadDrawable Drawable, Context Context) MakeContextCurrentCookie {
8956 c.ExtLock.RLock()
8957 defer c.ExtLock.RUnlock()
8958 if _, ok := c.Extensions["GLX"]; !ok {
8959 panic("Cannot issue request 'MakeContextCurrent' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
8960 }
8961 cookie := c.NewCookie(true, true)
8962 c.NewRequest(makeContextCurrentRequest(c, OldContextTag, Drawable, ReadDrawable, Context), cookie)
8963 return MakeContextCurrentCookie{cookie}
8964 }
8965
8966
8967
8968 func MakeContextCurrentUnchecked(c *xgb.Conn, OldContextTag ContextTag, Drawable Drawable, ReadDrawable Drawable, Context Context) MakeContextCurrentCookie {
8969 c.ExtLock.RLock()
8970 defer c.ExtLock.RUnlock()
8971 if _, ok := c.Extensions["GLX"]; !ok {
8972 panic("Cannot issue request 'MakeContextCurrent' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
8973 }
8974 cookie := c.NewCookie(false, true)
8975 c.NewRequest(makeContextCurrentRequest(c, OldContextTag, Drawable, ReadDrawable, Context), cookie)
8976 return MakeContextCurrentCookie{cookie}
8977 }
8978
8979
8980 type MakeContextCurrentReply struct {
8981 Sequence uint16
8982 Length uint32
8983
8984 ContextTag ContextTag
8985
8986 }
8987
8988
8989 func (cook MakeContextCurrentCookie) Reply() (*MakeContextCurrentReply, error) {
8990 buf, err := cook.Cookie.Reply()
8991 if err != nil {
8992 return nil, err
8993 }
8994 if buf == nil {
8995 return nil, nil
8996 }
8997 return makeContextCurrentReply(buf), nil
8998 }
8999
9000
9001 func makeContextCurrentReply(buf []byte) *MakeContextCurrentReply {
9002 v := new(MakeContextCurrentReply)
9003 b := 1
9004
9005 b += 1
9006
9007 v.Sequence = xgb.Get16(buf[b:])
9008 b += 2
9009
9010 v.Length = xgb.Get32(buf[b:])
9011 b += 4
9012
9013 v.ContextTag = ContextTag(xgb.Get32(buf[b:]))
9014 b += 4
9015
9016 b += 20
9017
9018 return v
9019 }
9020
9021
9022
9023 func makeContextCurrentRequest(c *xgb.Conn, OldContextTag ContextTag, Drawable Drawable, ReadDrawable Drawable, Context Context) []byte {
9024 size := 20
9025 b := 0
9026 buf := make([]byte, size)
9027
9028 c.ExtLock.RLock()
9029 buf[b] = c.Extensions["GLX"]
9030 c.ExtLock.RUnlock()
9031 b += 1
9032
9033 buf[b] = 26
9034 b += 1
9035
9036 xgb.Put16(buf[b:], uint16(size/4))
9037 b += 2
9038
9039 xgb.Put32(buf[b:], uint32(OldContextTag))
9040 b += 4
9041
9042 xgb.Put32(buf[b:], uint32(Drawable))
9043 b += 4
9044
9045 xgb.Put32(buf[b:], uint32(ReadDrawable))
9046 b += 4
9047
9048 xgb.Put32(buf[b:], uint32(Context))
9049 b += 4
9050
9051 return buf
9052 }
9053
9054
9055 type MakeCurrentCookie struct {
9056 *xgb.Cookie
9057 }
9058
9059
9060
9061 func MakeCurrent(c *xgb.Conn, Drawable Drawable, Context Context, OldContextTag ContextTag) MakeCurrentCookie {
9062 c.ExtLock.RLock()
9063 defer c.ExtLock.RUnlock()
9064 if _, ok := c.Extensions["GLX"]; !ok {
9065 panic("Cannot issue request 'MakeCurrent' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
9066 }
9067 cookie := c.NewCookie(true, true)
9068 c.NewRequest(makeCurrentRequest(c, Drawable, Context, OldContextTag), cookie)
9069 return MakeCurrentCookie{cookie}
9070 }
9071
9072
9073
9074 func MakeCurrentUnchecked(c *xgb.Conn, Drawable Drawable, Context Context, OldContextTag ContextTag) MakeCurrentCookie {
9075 c.ExtLock.RLock()
9076 defer c.ExtLock.RUnlock()
9077 if _, ok := c.Extensions["GLX"]; !ok {
9078 panic("Cannot issue request 'MakeCurrent' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
9079 }
9080 cookie := c.NewCookie(false, true)
9081 c.NewRequest(makeCurrentRequest(c, Drawable, Context, OldContextTag), cookie)
9082 return MakeCurrentCookie{cookie}
9083 }
9084
9085
9086 type MakeCurrentReply struct {
9087 Sequence uint16
9088 Length uint32
9089
9090 ContextTag ContextTag
9091
9092 }
9093
9094
9095 func (cook MakeCurrentCookie) Reply() (*MakeCurrentReply, error) {
9096 buf, err := cook.Cookie.Reply()
9097 if err != nil {
9098 return nil, err
9099 }
9100 if buf == nil {
9101 return nil, nil
9102 }
9103 return makeCurrentReply(buf), nil
9104 }
9105
9106
9107 func makeCurrentReply(buf []byte) *MakeCurrentReply {
9108 v := new(MakeCurrentReply)
9109 b := 1
9110
9111 b += 1
9112
9113 v.Sequence = xgb.Get16(buf[b:])
9114 b += 2
9115
9116 v.Length = xgb.Get32(buf[b:])
9117 b += 4
9118
9119 v.ContextTag = ContextTag(xgb.Get32(buf[b:]))
9120 b += 4
9121
9122 b += 20
9123
9124 return v
9125 }
9126
9127
9128
9129 func makeCurrentRequest(c *xgb.Conn, Drawable Drawable, Context Context, OldContextTag ContextTag) []byte {
9130 size := 16
9131 b := 0
9132 buf := make([]byte, size)
9133
9134 c.ExtLock.RLock()
9135 buf[b] = c.Extensions["GLX"]
9136 c.ExtLock.RUnlock()
9137 b += 1
9138
9139 buf[b] = 5
9140 b += 1
9141
9142 xgb.Put16(buf[b:], uint16(size/4))
9143 b += 2
9144
9145 xgb.Put32(buf[b:], uint32(Drawable))
9146 b += 4
9147
9148 xgb.Put32(buf[b:], uint32(Context))
9149 b += 4
9150
9151 xgb.Put32(buf[b:], uint32(OldContextTag))
9152 b += 4
9153
9154 return buf
9155 }
9156
9157
9158 type NewListCookie struct {
9159 *xgb.Cookie
9160 }
9161
9162
9163
9164 func NewList(c *xgb.Conn, ContextTag ContextTag, List uint32, Mode uint32) NewListCookie {
9165 c.ExtLock.RLock()
9166 defer c.ExtLock.RUnlock()
9167 if _, ok := c.Extensions["GLX"]; !ok {
9168 panic("Cannot issue request 'NewList' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
9169 }
9170 cookie := c.NewCookie(false, false)
9171 c.NewRequest(newListRequest(c, ContextTag, List, Mode), cookie)
9172 return NewListCookie{cookie}
9173 }
9174
9175
9176
9177 func NewListChecked(c *xgb.Conn, ContextTag ContextTag, List uint32, Mode uint32) NewListCookie {
9178 c.ExtLock.RLock()
9179 defer c.ExtLock.RUnlock()
9180 if _, ok := c.Extensions["GLX"]; !ok {
9181 panic("Cannot issue request 'NewList' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
9182 }
9183 cookie := c.NewCookie(true, false)
9184 c.NewRequest(newListRequest(c, ContextTag, List, Mode), cookie)
9185 return NewListCookie{cookie}
9186 }
9187
9188
9189
9190 func (cook NewListCookie) Check() error {
9191 return cook.Cookie.Check()
9192 }
9193
9194
9195
9196 func newListRequest(c *xgb.Conn, ContextTag ContextTag, List uint32, Mode uint32) []byte {
9197 size := 16
9198 b := 0
9199 buf := make([]byte, size)
9200
9201 c.ExtLock.RLock()
9202 buf[b] = c.Extensions["GLX"]
9203 c.ExtLock.RUnlock()
9204 b += 1
9205
9206 buf[b] = 101
9207 b += 1
9208
9209 xgb.Put16(buf[b:], uint16(size/4))
9210 b += 2
9211
9212 xgb.Put32(buf[b:], uint32(ContextTag))
9213 b += 4
9214
9215 xgb.Put32(buf[b:], List)
9216 b += 4
9217
9218 xgb.Put32(buf[b:], Mode)
9219 b += 4
9220
9221 return buf
9222 }
9223
9224
9225 type PixelStorefCookie struct {
9226 *xgb.Cookie
9227 }
9228
9229
9230
9231 func PixelStoref(c *xgb.Conn, ContextTag ContextTag, Pname uint32, Datum Float32) PixelStorefCookie {
9232 c.ExtLock.RLock()
9233 defer c.ExtLock.RUnlock()
9234 if _, ok := c.Extensions["GLX"]; !ok {
9235 panic("Cannot issue request 'PixelStoref' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
9236 }
9237 cookie := c.NewCookie(false, false)
9238 c.NewRequest(pixelStorefRequest(c, ContextTag, Pname, Datum), cookie)
9239 return PixelStorefCookie{cookie}
9240 }
9241
9242
9243
9244 func PixelStorefChecked(c *xgb.Conn, ContextTag ContextTag, Pname uint32, Datum Float32) PixelStorefCookie {
9245 c.ExtLock.RLock()
9246 defer c.ExtLock.RUnlock()
9247 if _, ok := c.Extensions["GLX"]; !ok {
9248 panic("Cannot issue request 'PixelStoref' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
9249 }
9250 cookie := c.NewCookie(true, false)
9251 c.NewRequest(pixelStorefRequest(c, ContextTag, Pname, Datum), cookie)
9252 return PixelStorefCookie{cookie}
9253 }
9254
9255
9256
9257 func (cook PixelStorefCookie) Check() error {
9258 return cook.Cookie.Check()
9259 }
9260
9261
9262
9263 func pixelStorefRequest(c *xgb.Conn, ContextTag ContextTag, Pname uint32, Datum Float32) []byte {
9264 size := 16
9265 b := 0
9266 buf := make([]byte, size)
9267
9268 c.ExtLock.RLock()
9269 buf[b] = c.Extensions["GLX"]
9270 c.ExtLock.RUnlock()
9271 b += 1
9272
9273 buf[b] = 109
9274 b += 1
9275
9276 xgb.Put16(buf[b:], uint16(size/4))
9277 b += 2
9278
9279 xgb.Put32(buf[b:], uint32(ContextTag))
9280 b += 4
9281
9282 xgb.Put32(buf[b:], Pname)
9283 b += 4
9284
9285 xgb.Put32(buf[b:], uint32(Datum))
9286 b += 4
9287
9288 return buf
9289 }
9290
9291
9292 type PixelStoreiCookie struct {
9293 *xgb.Cookie
9294 }
9295
9296
9297
9298 func PixelStorei(c *xgb.Conn, ContextTag ContextTag, Pname uint32, Datum int32) PixelStoreiCookie {
9299 c.ExtLock.RLock()
9300 defer c.ExtLock.RUnlock()
9301 if _, ok := c.Extensions["GLX"]; !ok {
9302 panic("Cannot issue request 'PixelStorei' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
9303 }
9304 cookie := c.NewCookie(false, false)
9305 c.NewRequest(pixelStoreiRequest(c, ContextTag, Pname, Datum), cookie)
9306 return PixelStoreiCookie{cookie}
9307 }
9308
9309
9310
9311 func PixelStoreiChecked(c *xgb.Conn, ContextTag ContextTag, Pname uint32, Datum int32) PixelStoreiCookie {
9312 c.ExtLock.RLock()
9313 defer c.ExtLock.RUnlock()
9314 if _, ok := c.Extensions["GLX"]; !ok {
9315 panic("Cannot issue request 'PixelStorei' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
9316 }
9317 cookie := c.NewCookie(true, false)
9318 c.NewRequest(pixelStoreiRequest(c, ContextTag, Pname, Datum), cookie)
9319 return PixelStoreiCookie{cookie}
9320 }
9321
9322
9323
9324 func (cook PixelStoreiCookie) Check() error {
9325 return cook.Cookie.Check()
9326 }
9327
9328
9329
9330 func pixelStoreiRequest(c *xgb.Conn, ContextTag ContextTag, Pname uint32, Datum int32) []byte {
9331 size := 16
9332 b := 0
9333 buf := make([]byte, size)
9334
9335 c.ExtLock.RLock()
9336 buf[b] = c.Extensions["GLX"]
9337 c.ExtLock.RUnlock()
9338 b += 1
9339
9340 buf[b] = 110
9341 b += 1
9342
9343 xgb.Put16(buf[b:], uint16(size/4))
9344 b += 2
9345
9346 xgb.Put32(buf[b:], uint32(ContextTag))
9347 b += 4
9348
9349 xgb.Put32(buf[b:], Pname)
9350 b += 4
9351
9352 xgb.Put32(buf[b:], uint32(Datum))
9353 b += 4
9354
9355 return buf
9356 }
9357
9358
9359 type QueryContextCookie struct {
9360 *xgb.Cookie
9361 }
9362
9363
9364
9365 func QueryContext(c *xgb.Conn, Context Context) QueryContextCookie {
9366 c.ExtLock.RLock()
9367 defer c.ExtLock.RUnlock()
9368 if _, ok := c.Extensions["GLX"]; !ok {
9369 panic("Cannot issue request 'QueryContext' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
9370 }
9371 cookie := c.NewCookie(true, true)
9372 c.NewRequest(queryContextRequest(c, Context), cookie)
9373 return QueryContextCookie{cookie}
9374 }
9375
9376
9377
9378 func QueryContextUnchecked(c *xgb.Conn, Context Context) QueryContextCookie {
9379 c.ExtLock.RLock()
9380 defer c.ExtLock.RUnlock()
9381 if _, ok := c.Extensions["GLX"]; !ok {
9382 panic("Cannot issue request 'QueryContext' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
9383 }
9384 cookie := c.NewCookie(false, true)
9385 c.NewRequest(queryContextRequest(c, Context), cookie)
9386 return QueryContextCookie{cookie}
9387 }
9388
9389
9390 type QueryContextReply struct {
9391 Sequence uint16
9392 Length uint32
9393
9394 NumAttribs uint32
9395
9396 Attribs []uint32
9397 }
9398
9399
9400 func (cook QueryContextCookie) Reply() (*QueryContextReply, error) {
9401 buf, err := cook.Cookie.Reply()
9402 if err != nil {
9403 return nil, err
9404 }
9405 if buf == nil {
9406 return nil, nil
9407 }
9408 return queryContextReply(buf), nil
9409 }
9410
9411
9412 func queryContextReply(buf []byte) *QueryContextReply {
9413 v := new(QueryContextReply)
9414 b := 1
9415
9416 b += 1
9417
9418 v.Sequence = xgb.Get16(buf[b:])
9419 b += 2
9420
9421 v.Length = xgb.Get32(buf[b:])
9422 b += 4
9423
9424 v.NumAttribs = xgb.Get32(buf[b:])
9425 b += 4
9426
9427 b += 20
9428
9429 v.Attribs = make([]uint32, (int(v.NumAttribs) * 2))
9430 for i := 0; i < int((int(v.NumAttribs) * 2)); i++ {
9431 v.Attribs[i] = xgb.Get32(buf[b:])
9432 b += 4
9433 }
9434
9435 return v
9436 }
9437
9438
9439
9440 func queryContextRequest(c *xgb.Conn, Context Context) []byte {
9441 size := 8
9442 b := 0
9443 buf := make([]byte, size)
9444
9445 c.ExtLock.RLock()
9446 buf[b] = c.Extensions["GLX"]
9447 c.ExtLock.RUnlock()
9448 b += 1
9449
9450 buf[b] = 25
9451 b += 1
9452
9453 xgb.Put16(buf[b:], uint16(size/4))
9454 b += 2
9455
9456 xgb.Put32(buf[b:], uint32(Context))
9457 b += 4
9458
9459 return buf
9460 }
9461
9462
9463 type QueryExtensionsStringCookie struct {
9464 *xgb.Cookie
9465 }
9466
9467
9468
9469 func QueryExtensionsString(c *xgb.Conn, Screen uint32) QueryExtensionsStringCookie {
9470 c.ExtLock.RLock()
9471 defer c.ExtLock.RUnlock()
9472 if _, ok := c.Extensions["GLX"]; !ok {
9473 panic("Cannot issue request 'QueryExtensionsString' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
9474 }
9475 cookie := c.NewCookie(true, true)
9476 c.NewRequest(queryExtensionsStringRequest(c, Screen), cookie)
9477 return QueryExtensionsStringCookie{cookie}
9478 }
9479
9480
9481
9482 func QueryExtensionsStringUnchecked(c *xgb.Conn, Screen uint32) QueryExtensionsStringCookie {
9483 c.ExtLock.RLock()
9484 defer c.ExtLock.RUnlock()
9485 if _, ok := c.Extensions["GLX"]; !ok {
9486 panic("Cannot issue request 'QueryExtensionsString' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
9487 }
9488 cookie := c.NewCookie(false, true)
9489 c.NewRequest(queryExtensionsStringRequest(c, Screen), cookie)
9490 return QueryExtensionsStringCookie{cookie}
9491 }
9492
9493
9494 type QueryExtensionsStringReply struct {
9495 Sequence uint16
9496 Length uint32
9497
9498
9499 N uint32
9500
9501 }
9502
9503
9504 func (cook QueryExtensionsStringCookie) Reply() (*QueryExtensionsStringReply, error) {
9505 buf, err := cook.Cookie.Reply()
9506 if err != nil {
9507 return nil, err
9508 }
9509 if buf == nil {
9510 return nil, nil
9511 }
9512 return queryExtensionsStringReply(buf), nil
9513 }
9514
9515
9516 func queryExtensionsStringReply(buf []byte) *QueryExtensionsStringReply {
9517 v := new(QueryExtensionsStringReply)
9518 b := 1
9519
9520 b += 1
9521
9522 v.Sequence = xgb.Get16(buf[b:])
9523 b += 2
9524
9525 v.Length = xgb.Get32(buf[b:])
9526 b += 4
9527
9528 b += 4
9529
9530 v.N = xgb.Get32(buf[b:])
9531 b += 4
9532
9533 b += 16
9534
9535 return v
9536 }
9537
9538
9539
9540 func queryExtensionsStringRequest(c *xgb.Conn, Screen uint32) []byte {
9541 size := 8
9542 b := 0
9543 buf := make([]byte, size)
9544
9545 c.ExtLock.RLock()
9546 buf[b] = c.Extensions["GLX"]
9547 c.ExtLock.RUnlock()
9548 b += 1
9549
9550 buf[b] = 18
9551 b += 1
9552
9553 xgb.Put16(buf[b:], uint16(size/4))
9554 b += 2
9555
9556 xgb.Put32(buf[b:], Screen)
9557 b += 4
9558
9559 return buf
9560 }
9561
9562
9563 type QueryServerStringCookie struct {
9564 *xgb.Cookie
9565 }
9566
9567
9568
9569 func QueryServerString(c *xgb.Conn, Screen uint32, Name uint32) QueryServerStringCookie {
9570 c.ExtLock.RLock()
9571 defer c.ExtLock.RUnlock()
9572 if _, ok := c.Extensions["GLX"]; !ok {
9573 panic("Cannot issue request 'QueryServerString' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
9574 }
9575 cookie := c.NewCookie(true, true)
9576 c.NewRequest(queryServerStringRequest(c, Screen, Name), cookie)
9577 return QueryServerStringCookie{cookie}
9578 }
9579
9580
9581
9582 func QueryServerStringUnchecked(c *xgb.Conn, Screen uint32, Name uint32) QueryServerStringCookie {
9583 c.ExtLock.RLock()
9584 defer c.ExtLock.RUnlock()
9585 if _, ok := c.Extensions["GLX"]; !ok {
9586 panic("Cannot issue request 'QueryServerString' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
9587 }
9588 cookie := c.NewCookie(false, true)
9589 c.NewRequest(queryServerStringRequest(c, Screen, Name), cookie)
9590 return QueryServerStringCookie{cookie}
9591 }
9592
9593
9594 type QueryServerStringReply struct {
9595 Sequence uint16
9596 Length uint32
9597
9598
9599 StrLen uint32
9600
9601 String string
9602 }
9603
9604
9605 func (cook QueryServerStringCookie) Reply() (*QueryServerStringReply, error) {
9606 buf, err := cook.Cookie.Reply()
9607 if err != nil {
9608 return nil, err
9609 }
9610 if buf == nil {
9611 return nil, nil
9612 }
9613 return queryServerStringReply(buf), nil
9614 }
9615
9616
9617 func queryServerStringReply(buf []byte) *QueryServerStringReply {
9618 v := new(QueryServerStringReply)
9619 b := 1
9620
9621 b += 1
9622
9623 v.Sequence = xgb.Get16(buf[b:])
9624 b += 2
9625
9626 v.Length = xgb.Get32(buf[b:])
9627 b += 4
9628
9629 b += 4
9630
9631 v.StrLen = xgb.Get32(buf[b:])
9632 b += 4
9633
9634 b += 16
9635
9636 {
9637 byteString := make([]byte, v.StrLen)
9638 copy(byteString[:v.StrLen], buf[b:])
9639 v.String = string(byteString)
9640 b += int(v.StrLen)
9641 }
9642
9643 return v
9644 }
9645
9646
9647
9648 func queryServerStringRequest(c *xgb.Conn, Screen uint32, Name uint32) []byte {
9649 size := 12
9650 b := 0
9651 buf := make([]byte, size)
9652
9653 c.ExtLock.RLock()
9654 buf[b] = c.Extensions["GLX"]
9655 c.ExtLock.RUnlock()
9656 b += 1
9657
9658 buf[b] = 19
9659 b += 1
9660
9661 xgb.Put16(buf[b:], uint16(size/4))
9662 b += 2
9663
9664 xgb.Put32(buf[b:], Screen)
9665 b += 4
9666
9667 xgb.Put32(buf[b:], Name)
9668 b += 4
9669
9670 return buf
9671 }
9672
9673
9674 type QueryVersionCookie struct {
9675 *xgb.Cookie
9676 }
9677
9678
9679
9680 func QueryVersion(c *xgb.Conn, MajorVersion uint32, MinorVersion uint32) QueryVersionCookie {
9681 c.ExtLock.RLock()
9682 defer c.ExtLock.RUnlock()
9683 if _, ok := c.Extensions["GLX"]; !ok {
9684 panic("Cannot issue request 'QueryVersion' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
9685 }
9686 cookie := c.NewCookie(true, true)
9687 c.NewRequest(queryVersionRequest(c, MajorVersion, MinorVersion), cookie)
9688 return QueryVersionCookie{cookie}
9689 }
9690
9691
9692
9693 func QueryVersionUnchecked(c *xgb.Conn, MajorVersion uint32, MinorVersion uint32) QueryVersionCookie {
9694 c.ExtLock.RLock()
9695 defer c.ExtLock.RUnlock()
9696 if _, ok := c.Extensions["GLX"]; !ok {
9697 panic("Cannot issue request 'QueryVersion' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
9698 }
9699 cookie := c.NewCookie(false, true)
9700 c.NewRequest(queryVersionRequest(c, MajorVersion, MinorVersion), cookie)
9701 return QueryVersionCookie{cookie}
9702 }
9703
9704
9705 type QueryVersionReply struct {
9706 Sequence uint16
9707 Length uint32
9708
9709 MajorVersion uint32
9710 MinorVersion uint32
9711
9712 }
9713
9714
9715 func (cook QueryVersionCookie) Reply() (*QueryVersionReply, error) {
9716 buf, err := cook.Cookie.Reply()
9717 if err != nil {
9718 return nil, err
9719 }
9720 if buf == nil {
9721 return nil, nil
9722 }
9723 return queryVersionReply(buf), nil
9724 }
9725
9726
9727 func queryVersionReply(buf []byte) *QueryVersionReply {
9728 v := new(QueryVersionReply)
9729 b := 1
9730
9731 b += 1
9732
9733 v.Sequence = xgb.Get16(buf[b:])
9734 b += 2
9735
9736 v.Length = xgb.Get32(buf[b:])
9737 b += 4
9738
9739 v.MajorVersion = xgb.Get32(buf[b:])
9740 b += 4
9741
9742 v.MinorVersion = xgb.Get32(buf[b:])
9743 b += 4
9744
9745 b += 16
9746
9747 return v
9748 }
9749
9750
9751
9752 func queryVersionRequest(c *xgb.Conn, MajorVersion uint32, MinorVersion uint32) []byte {
9753 size := 12
9754 b := 0
9755 buf := make([]byte, size)
9756
9757 c.ExtLock.RLock()
9758 buf[b] = c.Extensions["GLX"]
9759 c.ExtLock.RUnlock()
9760 b += 1
9761
9762 buf[b] = 7
9763 b += 1
9764
9765 xgb.Put16(buf[b:], uint16(size/4))
9766 b += 2
9767
9768 xgb.Put32(buf[b:], MajorVersion)
9769 b += 4
9770
9771 xgb.Put32(buf[b:], MinorVersion)
9772 b += 4
9773
9774 return buf
9775 }
9776
9777
9778 type ReadPixelsCookie struct {
9779 *xgb.Cookie
9780 }
9781
9782
9783
9784 func ReadPixels(c *xgb.Conn, ContextTag ContextTag, X int32, Y int32, Width int32, Height int32, Format uint32, Type uint32, SwapBytes bool, LsbFirst bool) ReadPixelsCookie {
9785 c.ExtLock.RLock()
9786 defer c.ExtLock.RUnlock()
9787 if _, ok := c.Extensions["GLX"]; !ok {
9788 panic("Cannot issue request 'ReadPixels' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
9789 }
9790 cookie := c.NewCookie(true, true)
9791 c.NewRequest(readPixelsRequest(c, ContextTag, X, Y, Width, Height, Format, Type, SwapBytes, LsbFirst), cookie)
9792 return ReadPixelsCookie{cookie}
9793 }
9794
9795
9796
9797 func ReadPixelsUnchecked(c *xgb.Conn, ContextTag ContextTag, X int32, Y int32, Width int32, Height int32, Format uint32, Type uint32, SwapBytes bool, LsbFirst bool) ReadPixelsCookie {
9798 c.ExtLock.RLock()
9799 defer c.ExtLock.RUnlock()
9800 if _, ok := c.Extensions["GLX"]; !ok {
9801 panic("Cannot issue request 'ReadPixels' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
9802 }
9803 cookie := c.NewCookie(false, true)
9804 c.NewRequest(readPixelsRequest(c, ContextTag, X, Y, Width, Height, Format, Type, SwapBytes, LsbFirst), cookie)
9805 return ReadPixelsCookie{cookie}
9806 }
9807
9808
9809 type ReadPixelsReply struct {
9810 Sequence uint16
9811 Length uint32
9812
9813
9814 Data []byte
9815 }
9816
9817
9818 func (cook ReadPixelsCookie) Reply() (*ReadPixelsReply, error) {
9819 buf, err := cook.Cookie.Reply()
9820 if err != nil {
9821 return nil, err
9822 }
9823 if buf == nil {
9824 return nil, nil
9825 }
9826 return readPixelsReply(buf), nil
9827 }
9828
9829
9830 func readPixelsReply(buf []byte) *ReadPixelsReply {
9831 v := new(ReadPixelsReply)
9832 b := 1
9833
9834 b += 1
9835
9836 v.Sequence = xgb.Get16(buf[b:])
9837 b += 2
9838
9839 v.Length = xgb.Get32(buf[b:])
9840 b += 4
9841
9842 b += 24
9843
9844 v.Data = make([]byte, (int(v.Length) * 4))
9845 copy(v.Data[:(int(v.Length)*4)], buf[b:])
9846 b += int((int(v.Length) * 4))
9847
9848 return v
9849 }
9850
9851
9852
9853 func readPixelsRequest(c *xgb.Conn, ContextTag ContextTag, X int32, Y int32, Width int32, Height int32, Format uint32, Type uint32, SwapBytes bool, LsbFirst bool) []byte {
9854 size := 36
9855 b := 0
9856 buf := make([]byte, size)
9857
9858 c.ExtLock.RLock()
9859 buf[b] = c.Extensions["GLX"]
9860 c.ExtLock.RUnlock()
9861 b += 1
9862
9863 buf[b] = 111
9864 b += 1
9865
9866 xgb.Put16(buf[b:], uint16(size/4))
9867 b += 2
9868
9869 xgb.Put32(buf[b:], uint32(ContextTag))
9870 b += 4
9871
9872 xgb.Put32(buf[b:], uint32(X))
9873 b += 4
9874
9875 xgb.Put32(buf[b:], uint32(Y))
9876 b += 4
9877
9878 xgb.Put32(buf[b:], uint32(Width))
9879 b += 4
9880
9881 xgb.Put32(buf[b:], uint32(Height))
9882 b += 4
9883
9884 xgb.Put32(buf[b:], Format)
9885 b += 4
9886
9887 xgb.Put32(buf[b:], Type)
9888 b += 4
9889
9890 if SwapBytes {
9891 buf[b] = 1
9892 } else {
9893 buf[b] = 0
9894 }
9895 b += 1
9896
9897 if LsbFirst {
9898 buf[b] = 1
9899 } else {
9900 buf[b] = 0
9901 }
9902 b += 1
9903
9904 return buf
9905 }
9906
9907
9908 type RenderCookie struct {
9909 *xgb.Cookie
9910 }
9911
9912
9913
9914 func Render(c *xgb.Conn, ContextTag ContextTag, Data []byte) RenderCookie {
9915 c.ExtLock.RLock()
9916 defer c.ExtLock.RUnlock()
9917 if _, ok := c.Extensions["GLX"]; !ok {
9918 panic("Cannot issue request 'Render' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
9919 }
9920 cookie := c.NewCookie(false, false)
9921 c.NewRequest(renderRequest(c, ContextTag, Data), cookie)
9922 return RenderCookie{cookie}
9923 }
9924
9925
9926
9927 func RenderChecked(c *xgb.Conn, ContextTag ContextTag, Data []byte) RenderCookie {
9928 c.ExtLock.RLock()
9929 defer c.ExtLock.RUnlock()
9930 if _, ok := c.Extensions["GLX"]; !ok {
9931 panic("Cannot issue request 'Render' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
9932 }
9933 cookie := c.NewCookie(true, false)
9934 c.NewRequest(renderRequest(c, ContextTag, Data), cookie)
9935 return RenderCookie{cookie}
9936 }
9937
9938
9939
9940 func (cook RenderCookie) Check() error {
9941 return cook.Cookie.Check()
9942 }
9943
9944
9945
9946 func renderRequest(c *xgb.Conn, ContextTag ContextTag, Data []byte) []byte {
9947 size := xgb.Pad((8 + xgb.Pad((len(Data) * 1))))
9948 b := 0
9949 buf := make([]byte, size)
9950
9951 c.ExtLock.RLock()
9952 buf[b] = c.Extensions["GLX"]
9953 c.ExtLock.RUnlock()
9954 b += 1
9955
9956 buf[b] = 1
9957 b += 1
9958
9959 xgb.Put16(buf[b:], uint16(size/4))
9960 b += 2
9961
9962 xgb.Put32(buf[b:], uint32(ContextTag))
9963 b += 4
9964
9965 copy(buf[b:], Data[:len(Data)])
9966 b += int(len(Data))
9967
9968 return buf
9969 }
9970
9971
9972 type RenderLargeCookie struct {
9973 *xgb.Cookie
9974 }
9975
9976
9977
9978 func RenderLarge(c *xgb.Conn, ContextTag ContextTag, RequestNum uint16, RequestTotal uint16, DataLen uint32, Data []byte) RenderLargeCookie {
9979 c.ExtLock.RLock()
9980 defer c.ExtLock.RUnlock()
9981 if _, ok := c.Extensions["GLX"]; !ok {
9982 panic("Cannot issue request 'RenderLarge' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
9983 }
9984 cookie := c.NewCookie(false, false)
9985 c.NewRequest(renderLargeRequest(c, ContextTag, RequestNum, RequestTotal, DataLen, Data), cookie)
9986 return RenderLargeCookie{cookie}
9987 }
9988
9989
9990
9991 func RenderLargeChecked(c *xgb.Conn, ContextTag ContextTag, RequestNum uint16, RequestTotal uint16, DataLen uint32, Data []byte) RenderLargeCookie {
9992 c.ExtLock.RLock()
9993 defer c.ExtLock.RUnlock()
9994 if _, ok := c.Extensions["GLX"]; !ok {
9995 panic("Cannot issue request 'RenderLarge' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
9996 }
9997 cookie := c.NewCookie(true, false)
9998 c.NewRequest(renderLargeRequest(c, ContextTag, RequestNum, RequestTotal, DataLen, Data), cookie)
9999 return RenderLargeCookie{cookie}
10000 }
10001
10002
10003
10004 func (cook RenderLargeCookie) Check() error {
10005 return cook.Cookie.Check()
10006 }
10007
10008
10009
10010 func renderLargeRequest(c *xgb.Conn, ContextTag ContextTag, RequestNum uint16, RequestTotal uint16, DataLen uint32, Data []byte) []byte {
10011 size := xgb.Pad((16 + xgb.Pad((int(DataLen) * 1))))
10012 b := 0
10013 buf := make([]byte, size)
10014
10015 c.ExtLock.RLock()
10016 buf[b] = c.Extensions["GLX"]
10017 c.ExtLock.RUnlock()
10018 b += 1
10019
10020 buf[b] = 2
10021 b += 1
10022
10023 xgb.Put16(buf[b:], uint16(size/4))
10024 b += 2
10025
10026 xgb.Put32(buf[b:], uint32(ContextTag))
10027 b += 4
10028
10029 xgb.Put16(buf[b:], RequestNum)
10030 b += 2
10031
10032 xgb.Put16(buf[b:], RequestTotal)
10033 b += 2
10034
10035 xgb.Put32(buf[b:], DataLen)
10036 b += 4
10037
10038 copy(buf[b:], Data[:DataLen])
10039 b += int(DataLen)
10040
10041 return buf
10042 }
10043
10044
10045 type RenderModeCookie struct {
10046 *xgb.Cookie
10047 }
10048
10049
10050
10051 func RenderMode(c *xgb.Conn, ContextTag ContextTag, Mode uint32) RenderModeCookie {
10052 c.ExtLock.RLock()
10053 defer c.ExtLock.RUnlock()
10054 if _, ok := c.Extensions["GLX"]; !ok {
10055 panic("Cannot issue request 'RenderMode' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
10056 }
10057 cookie := c.NewCookie(true, true)
10058 c.NewRequest(renderModeRequest(c, ContextTag, Mode), cookie)
10059 return RenderModeCookie{cookie}
10060 }
10061
10062
10063
10064 func RenderModeUnchecked(c *xgb.Conn, ContextTag ContextTag, Mode uint32) RenderModeCookie {
10065 c.ExtLock.RLock()
10066 defer c.ExtLock.RUnlock()
10067 if _, ok := c.Extensions["GLX"]; !ok {
10068 panic("Cannot issue request 'RenderMode' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
10069 }
10070 cookie := c.NewCookie(false, true)
10071 c.NewRequest(renderModeRequest(c, ContextTag, Mode), cookie)
10072 return RenderModeCookie{cookie}
10073 }
10074
10075
10076 type RenderModeReply struct {
10077 Sequence uint16
10078 Length uint32
10079
10080 RetVal uint32
10081 N uint32
10082 NewMode uint32
10083
10084 Data []uint32
10085 }
10086
10087
10088 func (cook RenderModeCookie) Reply() (*RenderModeReply, error) {
10089 buf, err := cook.Cookie.Reply()
10090 if err != nil {
10091 return nil, err
10092 }
10093 if buf == nil {
10094 return nil, nil
10095 }
10096 return renderModeReply(buf), nil
10097 }
10098
10099
10100 func renderModeReply(buf []byte) *RenderModeReply {
10101 v := new(RenderModeReply)
10102 b := 1
10103
10104 b += 1
10105
10106 v.Sequence = xgb.Get16(buf[b:])
10107 b += 2
10108
10109 v.Length = xgb.Get32(buf[b:])
10110 b += 4
10111
10112 v.RetVal = xgb.Get32(buf[b:])
10113 b += 4
10114
10115 v.N = xgb.Get32(buf[b:])
10116 b += 4
10117
10118 v.NewMode = xgb.Get32(buf[b:])
10119 b += 4
10120
10121 b += 12
10122
10123 v.Data = make([]uint32, v.N)
10124 for i := 0; i < int(v.N); i++ {
10125 v.Data[i] = xgb.Get32(buf[b:])
10126 b += 4
10127 }
10128
10129 return v
10130 }
10131
10132
10133
10134 func renderModeRequest(c *xgb.Conn, ContextTag ContextTag, Mode uint32) []byte {
10135 size := 12
10136 b := 0
10137 buf := make([]byte, size)
10138
10139 c.ExtLock.RLock()
10140 buf[b] = c.Extensions["GLX"]
10141 c.ExtLock.RUnlock()
10142 b += 1
10143
10144 buf[b] = 107
10145 b += 1
10146
10147 xgb.Put16(buf[b:], uint16(size/4))
10148 b += 2
10149
10150 xgb.Put32(buf[b:], uint32(ContextTag))
10151 b += 4
10152
10153 xgb.Put32(buf[b:], Mode)
10154 b += 4
10155
10156 return buf
10157 }
10158
10159
10160 type SelectBufferCookie struct {
10161 *xgb.Cookie
10162 }
10163
10164
10165
10166 func SelectBuffer(c *xgb.Conn, ContextTag ContextTag, Size int32) SelectBufferCookie {
10167 c.ExtLock.RLock()
10168 defer c.ExtLock.RUnlock()
10169 if _, ok := c.Extensions["GLX"]; !ok {
10170 panic("Cannot issue request 'SelectBuffer' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
10171 }
10172 cookie := c.NewCookie(false, false)
10173 c.NewRequest(selectBufferRequest(c, ContextTag, Size), cookie)
10174 return SelectBufferCookie{cookie}
10175 }
10176
10177
10178
10179 func SelectBufferChecked(c *xgb.Conn, ContextTag ContextTag, Size int32) SelectBufferCookie {
10180 c.ExtLock.RLock()
10181 defer c.ExtLock.RUnlock()
10182 if _, ok := c.Extensions["GLX"]; !ok {
10183 panic("Cannot issue request 'SelectBuffer' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
10184 }
10185 cookie := c.NewCookie(true, false)
10186 c.NewRequest(selectBufferRequest(c, ContextTag, Size), cookie)
10187 return SelectBufferCookie{cookie}
10188 }
10189
10190
10191
10192 func (cook SelectBufferCookie) Check() error {
10193 return cook.Cookie.Check()
10194 }
10195
10196
10197
10198 func selectBufferRequest(c *xgb.Conn, ContextTag ContextTag, Size int32) []byte {
10199 size := 12
10200 b := 0
10201 buf := make([]byte, size)
10202
10203 c.ExtLock.RLock()
10204 buf[b] = c.Extensions["GLX"]
10205 c.ExtLock.RUnlock()
10206 b += 1
10207
10208 buf[b] = 106
10209 b += 1
10210
10211 xgb.Put16(buf[b:], uint16(size/4))
10212 b += 2
10213
10214 xgb.Put32(buf[b:], uint32(ContextTag))
10215 b += 4
10216
10217 xgb.Put32(buf[b:], uint32(Size))
10218 b += 4
10219
10220 return buf
10221 }
10222
10223
10224 type SetClientInfo2ARBCookie struct {
10225 *xgb.Cookie
10226 }
10227
10228
10229
10230 func SetClientInfo2ARB(c *xgb.Conn, MajorVersion uint32, MinorVersion uint32, NumVersions uint32, GlStrLen uint32, GlxStrLen uint32, GlVersions []uint32, GlExtensionString string, GlxExtensionString string) SetClientInfo2ARBCookie {
10231 c.ExtLock.RLock()
10232 defer c.ExtLock.RUnlock()
10233 if _, ok := c.Extensions["GLX"]; !ok {
10234 panic("Cannot issue request 'SetClientInfo2ARB' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
10235 }
10236 cookie := c.NewCookie(false, false)
10237 c.NewRequest(setClientInfo2ARBRequest(c, MajorVersion, MinorVersion, NumVersions, GlStrLen, GlxStrLen, GlVersions, GlExtensionString, GlxExtensionString), cookie)
10238 return SetClientInfo2ARBCookie{cookie}
10239 }
10240
10241
10242
10243 func SetClientInfo2ARBChecked(c *xgb.Conn, MajorVersion uint32, MinorVersion uint32, NumVersions uint32, GlStrLen uint32, GlxStrLen uint32, GlVersions []uint32, GlExtensionString string, GlxExtensionString string) SetClientInfo2ARBCookie {
10244 c.ExtLock.RLock()
10245 defer c.ExtLock.RUnlock()
10246 if _, ok := c.Extensions["GLX"]; !ok {
10247 panic("Cannot issue request 'SetClientInfo2ARB' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
10248 }
10249 cookie := c.NewCookie(true, false)
10250 c.NewRequest(setClientInfo2ARBRequest(c, MajorVersion, MinorVersion, NumVersions, GlStrLen, GlxStrLen, GlVersions, GlExtensionString, GlxExtensionString), cookie)
10251 return SetClientInfo2ARBCookie{cookie}
10252 }
10253
10254
10255
10256 func (cook SetClientInfo2ARBCookie) Check() error {
10257 return cook.Cookie.Check()
10258 }
10259
10260
10261
10262 func setClientInfo2ARBRequest(c *xgb.Conn, MajorVersion uint32, MinorVersion uint32, NumVersions uint32, GlStrLen uint32, GlxStrLen uint32, GlVersions []uint32, GlExtensionString string, GlxExtensionString string) []byte {
10263 size := xgb.Pad((((24 + xgb.Pad(((int(NumVersions) * 3) * 4))) + xgb.Pad((int(GlStrLen) * 1))) + xgb.Pad((int(GlxStrLen) * 1))))
10264 b := 0
10265 buf := make([]byte, size)
10266
10267 c.ExtLock.RLock()
10268 buf[b] = c.Extensions["GLX"]
10269 c.ExtLock.RUnlock()
10270 b += 1
10271
10272 buf[b] = 35
10273 b += 1
10274
10275 xgb.Put16(buf[b:], uint16(size/4))
10276 b += 2
10277
10278 xgb.Put32(buf[b:], MajorVersion)
10279 b += 4
10280
10281 xgb.Put32(buf[b:], MinorVersion)
10282 b += 4
10283
10284 xgb.Put32(buf[b:], NumVersions)
10285 b += 4
10286
10287 xgb.Put32(buf[b:], GlStrLen)
10288 b += 4
10289
10290 xgb.Put32(buf[b:], GlxStrLen)
10291 b += 4
10292
10293 for i := 0; i < int((int(NumVersions) * 3)); i++ {
10294 xgb.Put32(buf[b:], GlVersions[i])
10295 b += 4
10296 }
10297
10298 copy(buf[b:], GlExtensionString[:GlStrLen])
10299 b += int(GlStrLen)
10300
10301 copy(buf[b:], GlxExtensionString[:GlxStrLen])
10302 b += int(GlxStrLen)
10303
10304 return buf
10305 }
10306
10307
10308 type SetClientInfoARBCookie struct {
10309 *xgb.Cookie
10310 }
10311
10312
10313
10314 func SetClientInfoARB(c *xgb.Conn, MajorVersion uint32, MinorVersion uint32, NumVersions uint32, GlStrLen uint32, GlxStrLen uint32, GlVersions []uint32, GlExtensionString string, GlxExtensionString string) SetClientInfoARBCookie {
10315 c.ExtLock.RLock()
10316 defer c.ExtLock.RUnlock()
10317 if _, ok := c.Extensions["GLX"]; !ok {
10318 panic("Cannot issue request 'SetClientInfoARB' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
10319 }
10320 cookie := c.NewCookie(false, false)
10321 c.NewRequest(setClientInfoARBRequest(c, MajorVersion, MinorVersion, NumVersions, GlStrLen, GlxStrLen, GlVersions, GlExtensionString, GlxExtensionString), cookie)
10322 return SetClientInfoARBCookie{cookie}
10323 }
10324
10325
10326
10327 func SetClientInfoARBChecked(c *xgb.Conn, MajorVersion uint32, MinorVersion uint32, NumVersions uint32, GlStrLen uint32, GlxStrLen uint32, GlVersions []uint32, GlExtensionString string, GlxExtensionString string) SetClientInfoARBCookie {
10328 c.ExtLock.RLock()
10329 defer c.ExtLock.RUnlock()
10330 if _, ok := c.Extensions["GLX"]; !ok {
10331 panic("Cannot issue request 'SetClientInfoARB' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
10332 }
10333 cookie := c.NewCookie(true, false)
10334 c.NewRequest(setClientInfoARBRequest(c, MajorVersion, MinorVersion, NumVersions, GlStrLen, GlxStrLen, GlVersions, GlExtensionString, GlxExtensionString), cookie)
10335 return SetClientInfoARBCookie{cookie}
10336 }
10337
10338
10339
10340 func (cook SetClientInfoARBCookie) Check() error {
10341 return cook.Cookie.Check()
10342 }
10343
10344
10345
10346 func setClientInfoARBRequest(c *xgb.Conn, MajorVersion uint32, MinorVersion uint32, NumVersions uint32, GlStrLen uint32, GlxStrLen uint32, GlVersions []uint32, GlExtensionString string, GlxExtensionString string) []byte {
10347 size := xgb.Pad((((24 + xgb.Pad(((int(NumVersions) * 2) * 4))) + xgb.Pad((int(GlStrLen) * 1))) + xgb.Pad((int(GlxStrLen) * 1))))
10348 b := 0
10349 buf := make([]byte, size)
10350
10351 c.ExtLock.RLock()
10352 buf[b] = c.Extensions["GLX"]
10353 c.ExtLock.RUnlock()
10354 b += 1
10355
10356 buf[b] = 33
10357 b += 1
10358
10359 xgb.Put16(buf[b:], uint16(size/4))
10360 b += 2
10361
10362 xgb.Put32(buf[b:], MajorVersion)
10363 b += 4
10364
10365 xgb.Put32(buf[b:], MinorVersion)
10366 b += 4
10367
10368 xgb.Put32(buf[b:], NumVersions)
10369 b += 4
10370
10371 xgb.Put32(buf[b:], GlStrLen)
10372 b += 4
10373
10374 xgb.Put32(buf[b:], GlxStrLen)
10375 b += 4
10376
10377 for i := 0; i < int((int(NumVersions) * 2)); i++ {
10378 xgb.Put32(buf[b:], GlVersions[i])
10379 b += 4
10380 }
10381
10382 copy(buf[b:], GlExtensionString[:GlStrLen])
10383 b += int(GlStrLen)
10384
10385 copy(buf[b:], GlxExtensionString[:GlxStrLen])
10386 b += int(GlxStrLen)
10387
10388 return buf
10389 }
10390
10391
10392 type SwapBuffersCookie struct {
10393 *xgb.Cookie
10394 }
10395
10396
10397
10398 func SwapBuffers(c *xgb.Conn, ContextTag ContextTag, Drawable Drawable) SwapBuffersCookie {
10399 c.ExtLock.RLock()
10400 defer c.ExtLock.RUnlock()
10401 if _, ok := c.Extensions["GLX"]; !ok {
10402 panic("Cannot issue request 'SwapBuffers' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
10403 }
10404 cookie := c.NewCookie(false, false)
10405 c.NewRequest(swapBuffersRequest(c, ContextTag, Drawable), cookie)
10406 return SwapBuffersCookie{cookie}
10407 }
10408
10409
10410
10411 func SwapBuffersChecked(c *xgb.Conn, ContextTag ContextTag, Drawable Drawable) SwapBuffersCookie {
10412 c.ExtLock.RLock()
10413 defer c.ExtLock.RUnlock()
10414 if _, ok := c.Extensions["GLX"]; !ok {
10415 panic("Cannot issue request 'SwapBuffers' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
10416 }
10417 cookie := c.NewCookie(true, false)
10418 c.NewRequest(swapBuffersRequest(c, ContextTag, Drawable), cookie)
10419 return SwapBuffersCookie{cookie}
10420 }
10421
10422
10423
10424 func (cook SwapBuffersCookie) Check() error {
10425 return cook.Cookie.Check()
10426 }
10427
10428
10429
10430 func swapBuffersRequest(c *xgb.Conn, ContextTag ContextTag, Drawable Drawable) []byte {
10431 size := 12
10432 b := 0
10433 buf := make([]byte, size)
10434
10435 c.ExtLock.RLock()
10436 buf[b] = c.Extensions["GLX"]
10437 c.ExtLock.RUnlock()
10438 b += 1
10439
10440 buf[b] = 11
10441 b += 1
10442
10443 xgb.Put16(buf[b:], uint16(size/4))
10444 b += 2
10445
10446 xgb.Put32(buf[b:], uint32(ContextTag))
10447 b += 4
10448
10449 xgb.Put32(buf[b:], uint32(Drawable))
10450 b += 4
10451
10452 return buf
10453 }
10454
10455
10456 type UseXFontCookie struct {
10457 *xgb.Cookie
10458 }
10459
10460
10461
10462 func UseXFont(c *xgb.Conn, ContextTag ContextTag, Font xproto.Font, First uint32, Count uint32, ListBase uint32) UseXFontCookie {
10463 c.ExtLock.RLock()
10464 defer c.ExtLock.RUnlock()
10465 if _, ok := c.Extensions["GLX"]; !ok {
10466 panic("Cannot issue request 'UseXFont' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
10467 }
10468 cookie := c.NewCookie(false, false)
10469 c.NewRequest(useXFontRequest(c, ContextTag, Font, First, Count, ListBase), cookie)
10470 return UseXFontCookie{cookie}
10471 }
10472
10473
10474
10475 func UseXFontChecked(c *xgb.Conn, ContextTag ContextTag, Font xproto.Font, First uint32, Count uint32, ListBase uint32) UseXFontCookie {
10476 c.ExtLock.RLock()
10477 defer c.ExtLock.RUnlock()
10478 if _, ok := c.Extensions["GLX"]; !ok {
10479 panic("Cannot issue request 'UseXFont' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
10480 }
10481 cookie := c.NewCookie(true, false)
10482 c.NewRequest(useXFontRequest(c, ContextTag, Font, First, Count, ListBase), cookie)
10483 return UseXFontCookie{cookie}
10484 }
10485
10486
10487
10488 func (cook UseXFontCookie) Check() error {
10489 return cook.Cookie.Check()
10490 }
10491
10492
10493
10494 func useXFontRequest(c *xgb.Conn, ContextTag ContextTag, Font xproto.Font, First uint32, Count uint32, ListBase uint32) []byte {
10495 size := 24
10496 b := 0
10497 buf := make([]byte, size)
10498
10499 c.ExtLock.RLock()
10500 buf[b] = c.Extensions["GLX"]
10501 c.ExtLock.RUnlock()
10502 b += 1
10503
10504 buf[b] = 12
10505 b += 1
10506
10507 xgb.Put16(buf[b:], uint16(size/4))
10508 b += 2
10509
10510 xgb.Put32(buf[b:], uint32(ContextTag))
10511 b += 4
10512
10513 xgb.Put32(buf[b:], uint32(Font))
10514 b += 4
10515
10516 xgb.Put32(buf[b:], First)
10517 b += 4
10518
10519 xgb.Put32(buf[b:], Count)
10520 b += 4
10521
10522 xgb.Put32(buf[b:], ListBase)
10523 b += 4
10524
10525 return buf
10526 }
10527
10528
10529 type VendorPrivateCookie struct {
10530 *xgb.Cookie
10531 }
10532
10533
10534
10535 func VendorPrivate(c *xgb.Conn, VendorCode uint32, ContextTag ContextTag, Data []byte) VendorPrivateCookie {
10536 c.ExtLock.RLock()
10537 defer c.ExtLock.RUnlock()
10538 if _, ok := c.Extensions["GLX"]; !ok {
10539 panic("Cannot issue request 'VendorPrivate' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
10540 }
10541 cookie := c.NewCookie(false, false)
10542 c.NewRequest(vendorPrivateRequest(c, VendorCode, ContextTag, Data), cookie)
10543 return VendorPrivateCookie{cookie}
10544 }
10545
10546
10547
10548 func VendorPrivateChecked(c *xgb.Conn, VendorCode uint32, ContextTag ContextTag, Data []byte) VendorPrivateCookie {
10549 c.ExtLock.RLock()
10550 defer c.ExtLock.RUnlock()
10551 if _, ok := c.Extensions["GLX"]; !ok {
10552 panic("Cannot issue request 'VendorPrivate' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
10553 }
10554 cookie := c.NewCookie(true, false)
10555 c.NewRequest(vendorPrivateRequest(c, VendorCode, ContextTag, Data), cookie)
10556 return VendorPrivateCookie{cookie}
10557 }
10558
10559
10560
10561 func (cook VendorPrivateCookie) Check() error {
10562 return cook.Cookie.Check()
10563 }
10564
10565
10566
10567 func vendorPrivateRequest(c *xgb.Conn, VendorCode uint32, ContextTag ContextTag, Data []byte) []byte {
10568 size := xgb.Pad((12 + xgb.Pad((len(Data) * 1))))
10569 b := 0
10570 buf := make([]byte, size)
10571
10572 c.ExtLock.RLock()
10573 buf[b] = c.Extensions["GLX"]
10574 c.ExtLock.RUnlock()
10575 b += 1
10576
10577 buf[b] = 16
10578 b += 1
10579
10580 xgb.Put16(buf[b:], uint16(size/4))
10581 b += 2
10582
10583 xgb.Put32(buf[b:], VendorCode)
10584 b += 4
10585
10586 xgb.Put32(buf[b:], uint32(ContextTag))
10587 b += 4
10588
10589 copy(buf[b:], Data[:len(Data)])
10590 b += int(len(Data))
10591
10592 return buf
10593 }
10594
10595
10596 type VendorPrivateWithReplyCookie struct {
10597 *xgb.Cookie
10598 }
10599
10600
10601
10602 func VendorPrivateWithReply(c *xgb.Conn, VendorCode uint32, ContextTag ContextTag, Data []byte) VendorPrivateWithReplyCookie {
10603 c.ExtLock.RLock()
10604 defer c.ExtLock.RUnlock()
10605 if _, ok := c.Extensions["GLX"]; !ok {
10606 panic("Cannot issue request 'VendorPrivateWithReply' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
10607 }
10608 cookie := c.NewCookie(true, true)
10609 c.NewRequest(vendorPrivateWithReplyRequest(c, VendorCode, ContextTag, Data), cookie)
10610 return VendorPrivateWithReplyCookie{cookie}
10611 }
10612
10613
10614
10615 func VendorPrivateWithReplyUnchecked(c *xgb.Conn, VendorCode uint32, ContextTag ContextTag, Data []byte) VendorPrivateWithReplyCookie {
10616 c.ExtLock.RLock()
10617 defer c.ExtLock.RUnlock()
10618 if _, ok := c.Extensions["GLX"]; !ok {
10619 panic("Cannot issue request 'VendorPrivateWithReply' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
10620 }
10621 cookie := c.NewCookie(false, true)
10622 c.NewRequest(vendorPrivateWithReplyRequest(c, VendorCode, ContextTag, Data), cookie)
10623 return VendorPrivateWithReplyCookie{cookie}
10624 }
10625
10626
10627 type VendorPrivateWithReplyReply struct {
10628 Sequence uint16
10629 Length uint32
10630
10631 Retval uint32
10632 Data1 []byte
10633 Data2 []byte
10634 }
10635
10636
10637 func (cook VendorPrivateWithReplyCookie) Reply() (*VendorPrivateWithReplyReply, error) {
10638 buf, err := cook.Cookie.Reply()
10639 if err != nil {
10640 return nil, err
10641 }
10642 if buf == nil {
10643 return nil, nil
10644 }
10645 return vendorPrivateWithReplyReply(buf), nil
10646 }
10647
10648
10649 func vendorPrivateWithReplyReply(buf []byte) *VendorPrivateWithReplyReply {
10650 v := new(VendorPrivateWithReplyReply)
10651 b := 1
10652
10653 b += 1
10654
10655 v.Sequence = xgb.Get16(buf[b:])
10656 b += 2
10657
10658 v.Length = xgb.Get32(buf[b:])
10659 b += 4
10660
10661 v.Retval = xgb.Get32(buf[b:])
10662 b += 4
10663
10664 v.Data1 = make([]byte, 24)
10665 copy(v.Data1[:24], buf[b:])
10666 b += int(24)
10667
10668 v.Data2 = make([]byte, (int(v.Length) * 4))
10669 copy(v.Data2[:(int(v.Length)*4)], buf[b:])
10670 b += int((int(v.Length) * 4))
10671
10672 return v
10673 }
10674
10675
10676
10677 func vendorPrivateWithReplyRequest(c *xgb.Conn, VendorCode uint32, ContextTag ContextTag, Data []byte) []byte {
10678 size := xgb.Pad((12 + xgb.Pad((len(Data) * 1))))
10679 b := 0
10680 buf := make([]byte, size)
10681
10682 c.ExtLock.RLock()
10683 buf[b] = c.Extensions["GLX"]
10684 c.ExtLock.RUnlock()
10685 b += 1
10686
10687 buf[b] = 17
10688 b += 1
10689
10690 xgb.Put16(buf[b:], uint16(size/4))
10691 b += 2
10692
10693 xgb.Put32(buf[b:], VendorCode)
10694 b += 4
10695
10696 xgb.Put32(buf[b:], uint32(ContextTag))
10697 b += 4
10698
10699 copy(buf[b:], Data[:len(Data)])
10700 b += int(len(Data))
10701
10702 return buf
10703 }
10704
10705
10706 type WaitGLCookie struct {
10707 *xgb.Cookie
10708 }
10709
10710
10711
10712 func WaitGL(c *xgb.Conn, ContextTag ContextTag) WaitGLCookie {
10713 c.ExtLock.RLock()
10714 defer c.ExtLock.RUnlock()
10715 if _, ok := c.Extensions["GLX"]; !ok {
10716 panic("Cannot issue request 'WaitGL' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
10717 }
10718 cookie := c.NewCookie(false, false)
10719 c.NewRequest(waitGLRequest(c, ContextTag), cookie)
10720 return WaitGLCookie{cookie}
10721 }
10722
10723
10724
10725 func WaitGLChecked(c *xgb.Conn, ContextTag ContextTag) WaitGLCookie {
10726 c.ExtLock.RLock()
10727 defer c.ExtLock.RUnlock()
10728 if _, ok := c.Extensions["GLX"]; !ok {
10729 panic("Cannot issue request 'WaitGL' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
10730 }
10731 cookie := c.NewCookie(true, false)
10732 c.NewRequest(waitGLRequest(c, ContextTag), cookie)
10733 return WaitGLCookie{cookie}
10734 }
10735
10736
10737
10738 func (cook WaitGLCookie) Check() error {
10739 return cook.Cookie.Check()
10740 }
10741
10742
10743
10744 func waitGLRequest(c *xgb.Conn, ContextTag ContextTag) []byte {
10745 size := 8
10746 b := 0
10747 buf := make([]byte, size)
10748
10749 c.ExtLock.RLock()
10750 buf[b] = c.Extensions["GLX"]
10751 c.ExtLock.RUnlock()
10752 b += 1
10753
10754 buf[b] = 8
10755 b += 1
10756
10757 xgb.Put16(buf[b:], uint16(size/4))
10758 b += 2
10759
10760 xgb.Put32(buf[b:], uint32(ContextTag))
10761 b += 4
10762
10763 return buf
10764 }
10765
10766
10767 type WaitXCookie struct {
10768 *xgb.Cookie
10769 }
10770
10771
10772
10773 func WaitX(c *xgb.Conn, ContextTag ContextTag) WaitXCookie {
10774 c.ExtLock.RLock()
10775 defer c.ExtLock.RUnlock()
10776 if _, ok := c.Extensions["GLX"]; !ok {
10777 panic("Cannot issue request 'WaitX' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
10778 }
10779 cookie := c.NewCookie(false, false)
10780 c.NewRequest(waitXRequest(c, ContextTag), cookie)
10781 return WaitXCookie{cookie}
10782 }
10783
10784
10785
10786 func WaitXChecked(c *xgb.Conn, ContextTag ContextTag) WaitXCookie {
10787 c.ExtLock.RLock()
10788 defer c.ExtLock.RUnlock()
10789 if _, ok := c.Extensions["GLX"]; !ok {
10790 panic("Cannot issue request 'WaitX' using the uninitialized extension 'GLX'. glx.Init(connObj) must be called first.")
10791 }
10792 cookie := c.NewCookie(true, false)
10793 c.NewRequest(waitXRequest(c, ContextTag), cookie)
10794 return WaitXCookie{cookie}
10795 }
10796
10797
10798
10799 func (cook WaitXCookie) Check() error {
10800 return cook.Cookie.Check()
10801 }
10802
10803
10804
10805 func waitXRequest(c *xgb.Conn, ContextTag ContextTag) []byte {
10806 size := 8
10807 b := 0
10808 buf := make([]byte, size)
10809
10810 c.ExtLock.RLock()
10811 buf[b] = c.Extensions["GLX"]
10812 c.ExtLock.RUnlock()
10813 b += 1
10814
10815 buf[b] = 9
10816 b += 1
10817
10818 xgb.Put16(buf[b:], uint16(size/4))
10819 b += 2
10820
10821 xgb.Put32(buf[b:], uint32(ContextTag))
10822 b += 4
10823
10824 return buf
10825 }
10826
View as plain text