9385 lines
212 KiB
Go
9385 lines
212 KiB
Go
package xgb
|
|
|
|
/*
|
|
This file was generated by glx.xml on May 7 2012 9:17:56pm EDT.
|
|
This file is automatically generated. Edit at your peril!
|
|
*/
|
|
|
|
// Imports are not necessary for XGB because everything is
|
|
// in one package. They are still listed here for reference.
|
|
// import "xproto"
|
|
|
|
// GlxInit must be called before using the GLX extension.
|
|
func (c *Conn) GlxInit() error {
|
|
reply, err := c.QueryExtension(3, "GLX").Reply()
|
|
switch {
|
|
case err != nil:
|
|
return err
|
|
case !reply.Present:
|
|
return errorf("No extension named GLX could be found on on the server.")
|
|
}
|
|
|
|
c.extLock.Lock()
|
|
c.extensions["GLX"] = reply.MajorOpcode
|
|
for evNum, fun := range newExtEventFuncs["GLX"] {
|
|
newEventFuncs[int(reply.FirstEvent)+evNum] = fun
|
|
}
|
|
for errNum, fun := range newExtErrorFuncs["GLX"] {
|
|
newErrorFuncs[int(reply.FirstError)+errNum] = fun
|
|
}
|
|
c.extLock.Unlock()
|
|
|
|
return nil
|
|
}
|
|
|
|
func init() {
|
|
newExtEventFuncs["GLX"] = make(map[int]newEventFun)
|
|
newExtErrorFuncs["GLX"] = make(map[int]newErrorFun)
|
|
}
|
|
|
|
// Skipping definition for base type 'Card16'
|
|
|
|
// Skipping definition for base type 'Char'
|
|
|
|
// Skipping definition for base type 'Card32'
|
|
|
|
// Skipping definition for base type 'Double'
|
|
|
|
// Skipping definition for base type 'Bool'
|
|
|
|
// Skipping definition for base type 'Float'
|
|
|
|
// Skipping definition for base type 'Id'
|
|
|
|
// Skipping definition for base type 'Card8'
|
|
|
|
// Skipping definition for base type 'Int16'
|
|
|
|
// Skipping definition for base type 'Int32'
|
|
|
|
// Skipping definition for base type 'Void'
|
|
|
|
// Skipping definition for base type 'Byte'
|
|
|
|
// Skipping definition for base type 'Int8'
|
|
|
|
const (
|
|
GlxPbcetDamaged = 32791
|
|
GlxPbcetSaved = 32792
|
|
)
|
|
|
|
const (
|
|
GlxPbcdtWindow = 32793
|
|
GlxPbcdtPbuffer = 32794
|
|
)
|
|
|
|
const (
|
|
GlxGcGlCurrentBit = 1
|
|
GlxGcGlPointBit = 2
|
|
GlxGcGlLineBit = 4
|
|
GlxGcGlPolygonBit = 8
|
|
GlxGcGlPolygonStippleBit = 16
|
|
GlxGcGlPixelModeBit = 32
|
|
GlxGcGlLightingBit = 64
|
|
GlxGcGlFogBit = 128
|
|
GlxGcGlDepthBufferBit = 256
|
|
GlxGcGlAccumBufferBit = 512
|
|
GlxGcGlStencilBufferBit = 1024
|
|
GlxGcGlViewportBit = 2048
|
|
GlxGcGlTransformBit = 4096
|
|
GlxGcGlEnableBit = 8192
|
|
GlxGcGlColorBufferBit = 16384
|
|
GlxGcGlHintBit = 32768
|
|
GlxGcGlEvalBit = 65536
|
|
GlxGcGlListBit = 131072
|
|
GlxGcGlTextureBit = 262144
|
|
GlxGcGlScissorBit = 524288
|
|
GlxGcGlAllAttribBits = 16777215
|
|
)
|
|
|
|
const (
|
|
GlxRmGlRender = 7168
|
|
GlxRmGlFeedback = 7169
|
|
GlxRmGlSelect = 7170
|
|
)
|
|
|
|
// Skipping resource definition of 'Pixmap'
|
|
|
|
// Skipping resource definition of 'Context'
|
|
|
|
// Skipping resource definition of 'Pbuffer'
|
|
|
|
// Skipping resource definition of 'Window'
|
|
|
|
// Skipping resource definition of 'Fbconfig'
|
|
|
|
// Skipping resource definition of 'Drawable'
|
|
|
|
type GlxFloat32 float64
|
|
|
|
type GlxFloat64 float64
|
|
|
|
type GlxBool32 uint32
|
|
|
|
type GlxContextTag uint32
|
|
|
|
// Event definition GlxPbufferClobber (0)
|
|
// Size: 32
|
|
|
|
const GlxPbufferClobber = 0
|
|
|
|
type GlxPbufferClobberEvent struct {
|
|
Sequence uint16
|
|
// padding: 1 bytes
|
|
EventType uint16
|
|
DrawType uint16
|
|
Drawable Id
|
|
BMask uint32
|
|
AuxBuffer uint16
|
|
X uint16
|
|
Y uint16
|
|
Width uint16
|
|
Height uint16
|
|
Count uint16
|
|
// padding: 4 bytes
|
|
}
|
|
|
|
// Event read GlxPbufferClobber
|
|
func NewGlxPbufferClobberEvent(buf []byte) Event {
|
|
v := GlxPbufferClobberEvent{}
|
|
b := 1 // don't read event number
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.EventType = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.DrawType = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Drawable = Id(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
v.BMask = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.AuxBuffer = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.X = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Y = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Width = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Height = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Count = Get16(buf[b:])
|
|
b += 2
|
|
|
|
b += 4 // padding
|
|
|
|
return v
|
|
}
|
|
|
|
// Event write GlxPbufferClobber
|
|
func (v GlxPbufferClobberEvent) Bytes() []byte {
|
|
buf := make([]byte, 32)
|
|
b := 0
|
|
|
|
// write event number
|
|
buf[b] = 0
|
|
b += 1
|
|
|
|
b += 1 // padding
|
|
|
|
b += 2 // skip sequence number
|
|
|
|
Put16(buf[b:], v.EventType)
|
|
b += 2
|
|
|
|
Put16(buf[b:], v.DrawType)
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(v.Drawable))
|
|
b += 4
|
|
|
|
Put32(buf[b:], v.BMask)
|
|
b += 4
|
|
|
|
Put16(buf[b:], v.AuxBuffer)
|
|
b += 2
|
|
|
|
Put16(buf[b:], v.X)
|
|
b += 2
|
|
|
|
Put16(buf[b:], v.Y)
|
|
b += 2
|
|
|
|
Put16(buf[b:], v.Width)
|
|
b += 2
|
|
|
|
Put16(buf[b:], v.Height)
|
|
b += 2
|
|
|
|
Put16(buf[b:], v.Count)
|
|
b += 2
|
|
|
|
b += 4 // padding
|
|
|
|
return buf
|
|
}
|
|
|
|
func (v GlxPbufferClobberEvent) ImplementsEvent() {}
|
|
|
|
func (v GlxPbufferClobberEvent) SequenceId() uint16 {
|
|
return v.Sequence
|
|
}
|
|
|
|
func (v GlxPbufferClobberEvent) String() string {
|
|
fieldVals := make([]string, 0, 12)
|
|
fieldVals = append(fieldVals, sprintf("Sequence: %d", v.Sequence))
|
|
fieldVals = append(fieldVals, sprintf("EventType: %d", v.EventType))
|
|
fieldVals = append(fieldVals, sprintf("DrawType: %d", v.DrawType))
|
|
fieldVals = append(fieldVals, sprintf("Drawable: %d", v.Drawable))
|
|
fieldVals = append(fieldVals, sprintf("BMask: %d", v.BMask))
|
|
fieldVals = append(fieldVals, sprintf("AuxBuffer: %d", v.AuxBuffer))
|
|
fieldVals = append(fieldVals, sprintf("X: %d", v.X))
|
|
fieldVals = append(fieldVals, sprintf("Y: %d", v.Y))
|
|
fieldVals = append(fieldVals, sprintf("Width: %d", v.Width))
|
|
fieldVals = append(fieldVals, sprintf("Height: %d", v.Height))
|
|
fieldVals = append(fieldVals, sprintf("Count: %d", v.Count))
|
|
return "GlxPbufferClobber {" + stringsJoin(fieldVals, ", ") + "}"
|
|
}
|
|
|
|
func init() {
|
|
newExtEventFuncs["GLX"][0] = NewGlxPbufferClobberEvent
|
|
}
|
|
|
|
// Error definition GlxGeneric (-1)
|
|
// Size: 32
|
|
|
|
const BadGlxGeneric = -1
|
|
|
|
type GlxGenericError struct {
|
|
Sequence uint16
|
|
NiceName string
|
|
BadValue uint32
|
|
MinorOpcode uint16
|
|
MajorOpcode byte
|
|
// padding: 21 bytes
|
|
}
|
|
|
|
// Error read GlxGeneric
|
|
func NewGlxGenericError(buf []byte) Error {
|
|
v := GlxGenericError{}
|
|
v.NiceName = "GlxGeneric"
|
|
|
|
b := 1 // skip error determinant
|
|
b += 1 // don't read error number
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.BadValue = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.MinorOpcode = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.MajorOpcode = buf[b]
|
|
b += 1
|
|
|
|
b += 21 // padding
|
|
|
|
return v
|
|
}
|
|
|
|
func (err GlxGenericError) ImplementsError() {}
|
|
|
|
func (err GlxGenericError) SequenceId() uint16 {
|
|
return err.Sequence
|
|
}
|
|
|
|
func (err GlxGenericError) BadId() Id {
|
|
return 0
|
|
}
|
|
|
|
func (err GlxGenericError) Error() string {
|
|
fieldVals := make([]string, 0, 4)
|
|
fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
|
|
fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence))
|
|
fieldVals = append(fieldVals, sprintf("BadValue: %d", err.BadValue))
|
|
fieldVals = append(fieldVals, sprintf("MinorOpcode: %d", err.MinorOpcode))
|
|
fieldVals = append(fieldVals, sprintf("MajorOpcode: %d", err.MajorOpcode))
|
|
return "BadGlxGeneric {" + stringsJoin(fieldVals, ", ") + "}"
|
|
}
|
|
|
|
func init() {
|
|
newExtErrorFuncs["GLX"][-1] = NewGlxGenericError
|
|
}
|
|
|
|
// ErrorCopy definition GlxBadContext (0)
|
|
|
|
const BadGlxBadContext = 0
|
|
|
|
type GlxBadContextError GlxGenericError
|
|
|
|
func NewGlxBadContextError(buf []byte) Error {
|
|
v := GlxBadContextError(NewGlxGenericError(buf).(GlxGenericError))
|
|
v.NiceName = "GlxBadContext"
|
|
return v
|
|
}
|
|
|
|
func (err GlxBadContextError) ImplementsError() {}
|
|
|
|
func (err GlxBadContextError) SequenceId() uint16 {
|
|
return err.Sequence
|
|
}
|
|
|
|
func (err GlxBadContextError) BadId() Id {
|
|
return Id(err.BadValue)
|
|
}
|
|
|
|
func (err GlxBadContextError) Error() string {
|
|
fieldVals := make([]string, 0, 4)
|
|
fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
|
|
fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence))
|
|
fieldVals = append(fieldVals, sprintf("BadValue: %d", err.BadValue))
|
|
fieldVals = append(fieldVals, sprintf("MinorOpcode: %d", err.MinorOpcode))
|
|
fieldVals = append(fieldVals, sprintf("MajorOpcode: %d", err.MajorOpcode))
|
|
return "BadGlxBadContext {" + stringsJoin(fieldVals, ", ") + "}"
|
|
}
|
|
|
|
func init() {
|
|
newExtErrorFuncs["GLX"][0] = NewGlxBadContextError
|
|
}
|
|
|
|
// ErrorCopy definition GlxBadContextState (1)
|
|
|
|
const BadGlxBadContextState = 1
|
|
|
|
type GlxBadContextStateError GlxGenericError
|
|
|
|
func NewGlxBadContextStateError(buf []byte) Error {
|
|
v := GlxBadContextStateError(NewGlxGenericError(buf).(GlxGenericError))
|
|
v.NiceName = "GlxBadContextState"
|
|
return v
|
|
}
|
|
|
|
func (err GlxBadContextStateError) ImplementsError() {}
|
|
|
|
func (err GlxBadContextStateError) SequenceId() uint16 {
|
|
return err.Sequence
|
|
}
|
|
|
|
func (err GlxBadContextStateError) BadId() Id {
|
|
return Id(err.BadValue)
|
|
}
|
|
|
|
func (err GlxBadContextStateError) Error() string {
|
|
fieldVals := make([]string, 0, 4)
|
|
fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
|
|
fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence))
|
|
fieldVals = append(fieldVals, sprintf("BadValue: %d", err.BadValue))
|
|
fieldVals = append(fieldVals, sprintf("MinorOpcode: %d", err.MinorOpcode))
|
|
fieldVals = append(fieldVals, sprintf("MajorOpcode: %d", err.MajorOpcode))
|
|
return "BadGlxBadContextState {" + stringsJoin(fieldVals, ", ") + "}"
|
|
}
|
|
|
|
func init() {
|
|
newExtErrorFuncs["GLX"][1] = NewGlxBadContextStateError
|
|
}
|
|
|
|
// ErrorCopy definition GlxBadDrawable (2)
|
|
|
|
const BadGlxBadDrawable = 2
|
|
|
|
type GlxBadDrawableError GlxGenericError
|
|
|
|
func NewGlxBadDrawableError(buf []byte) Error {
|
|
v := GlxBadDrawableError(NewGlxGenericError(buf).(GlxGenericError))
|
|
v.NiceName = "GlxBadDrawable"
|
|
return v
|
|
}
|
|
|
|
func (err GlxBadDrawableError) ImplementsError() {}
|
|
|
|
func (err GlxBadDrawableError) SequenceId() uint16 {
|
|
return err.Sequence
|
|
}
|
|
|
|
func (err GlxBadDrawableError) BadId() Id {
|
|
return Id(err.BadValue)
|
|
}
|
|
|
|
func (err GlxBadDrawableError) Error() string {
|
|
fieldVals := make([]string, 0, 4)
|
|
fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
|
|
fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence))
|
|
fieldVals = append(fieldVals, sprintf("BadValue: %d", err.BadValue))
|
|
fieldVals = append(fieldVals, sprintf("MinorOpcode: %d", err.MinorOpcode))
|
|
fieldVals = append(fieldVals, sprintf("MajorOpcode: %d", err.MajorOpcode))
|
|
return "BadGlxBadDrawable {" + stringsJoin(fieldVals, ", ") + "}"
|
|
}
|
|
|
|
func init() {
|
|
newExtErrorFuncs["GLX"][2] = NewGlxBadDrawableError
|
|
}
|
|
|
|
// ErrorCopy definition GlxBadPixmap (3)
|
|
|
|
const BadGlxBadPixmap = 3
|
|
|
|
type GlxBadPixmapError GlxGenericError
|
|
|
|
func NewGlxBadPixmapError(buf []byte) Error {
|
|
v := GlxBadPixmapError(NewGlxGenericError(buf).(GlxGenericError))
|
|
v.NiceName = "GlxBadPixmap"
|
|
return v
|
|
}
|
|
|
|
func (err GlxBadPixmapError) ImplementsError() {}
|
|
|
|
func (err GlxBadPixmapError) SequenceId() uint16 {
|
|
return err.Sequence
|
|
}
|
|
|
|
func (err GlxBadPixmapError) BadId() Id {
|
|
return Id(err.BadValue)
|
|
}
|
|
|
|
func (err GlxBadPixmapError) Error() string {
|
|
fieldVals := make([]string, 0, 4)
|
|
fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
|
|
fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence))
|
|
fieldVals = append(fieldVals, sprintf("BadValue: %d", err.BadValue))
|
|
fieldVals = append(fieldVals, sprintf("MinorOpcode: %d", err.MinorOpcode))
|
|
fieldVals = append(fieldVals, sprintf("MajorOpcode: %d", err.MajorOpcode))
|
|
return "BadGlxBadPixmap {" + stringsJoin(fieldVals, ", ") + "}"
|
|
}
|
|
|
|
func init() {
|
|
newExtErrorFuncs["GLX"][3] = NewGlxBadPixmapError
|
|
}
|
|
|
|
// ErrorCopy definition GlxBadContextTag (4)
|
|
|
|
const BadGlxBadContextTag = 4
|
|
|
|
type GlxBadContextTagError GlxGenericError
|
|
|
|
func NewGlxBadContextTagError(buf []byte) Error {
|
|
v := GlxBadContextTagError(NewGlxGenericError(buf).(GlxGenericError))
|
|
v.NiceName = "GlxBadContextTag"
|
|
return v
|
|
}
|
|
|
|
func (err GlxBadContextTagError) ImplementsError() {}
|
|
|
|
func (err GlxBadContextTagError) SequenceId() uint16 {
|
|
return err.Sequence
|
|
}
|
|
|
|
func (err GlxBadContextTagError) BadId() Id {
|
|
return Id(err.BadValue)
|
|
}
|
|
|
|
func (err GlxBadContextTagError) Error() string {
|
|
fieldVals := make([]string, 0, 4)
|
|
fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
|
|
fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence))
|
|
fieldVals = append(fieldVals, sprintf("BadValue: %d", err.BadValue))
|
|
fieldVals = append(fieldVals, sprintf("MinorOpcode: %d", err.MinorOpcode))
|
|
fieldVals = append(fieldVals, sprintf("MajorOpcode: %d", err.MajorOpcode))
|
|
return "BadGlxBadContextTag {" + stringsJoin(fieldVals, ", ") + "}"
|
|
}
|
|
|
|
func init() {
|
|
newExtErrorFuncs["GLX"][4] = NewGlxBadContextTagError
|
|
}
|
|
|
|
// ErrorCopy definition GlxBadCurrentWindow (5)
|
|
|
|
const BadGlxBadCurrentWindow = 5
|
|
|
|
type GlxBadCurrentWindowError GlxGenericError
|
|
|
|
func NewGlxBadCurrentWindowError(buf []byte) Error {
|
|
v := GlxBadCurrentWindowError(NewGlxGenericError(buf).(GlxGenericError))
|
|
v.NiceName = "GlxBadCurrentWindow"
|
|
return v
|
|
}
|
|
|
|
func (err GlxBadCurrentWindowError) ImplementsError() {}
|
|
|
|
func (err GlxBadCurrentWindowError) SequenceId() uint16 {
|
|
return err.Sequence
|
|
}
|
|
|
|
func (err GlxBadCurrentWindowError) BadId() Id {
|
|
return Id(err.BadValue)
|
|
}
|
|
|
|
func (err GlxBadCurrentWindowError) Error() string {
|
|
fieldVals := make([]string, 0, 4)
|
|
fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
|
|
fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence))
|
|
fieldVals = append(fieldVals, sprintf("BadValue: %d", err.BadValue))
|
|
fieldVals = append(fieldVals, sprintf("MinorOpcode: %d", err.MinorOpcode))
|
|
fieldVals = append(fieldVals, sprintf("MajorOpcode: %d", err.MajorOpcode))
|
|
return "BadGlxBadCurrentWindow {" + stringsJoin(fieldVals, ", ") + "}"
|
|
}
|
|
|
|
func init() {
|
|
newExtErrorFuncs["GLX"][5] = NewGlxBadCurrentWindowError
|
|
}
|
|
|
|
// ErrorCopy definition GlxBadRenderRequest (6)
|
|
|
|
const BadGlxBadRenderRequest = 6
|
|
|
|
type GlxBadRenderRequestError GlxGenericError
|
|
|
|
func NewGlxBadRenderRequestError(buf []byte) Error {
|
|
v := GlxBadRenderRequestError(NewGlxGenericError(buf).(GlxGenericError))
|
|
v.NiceName = "GlxBadRenderRequest"
|
|
return v
|
|
}
|
|
|
|
func (err GlxBadRenderRequestError) ImplementsError() {}
|
|
|
|
func (err GlxBadRenderRequestError) SequenceId() uint16 {
|
|
return err.Sequence
|
|
}
|
|
|
|
func (err GlxBadRenderRequestError) BadId() Id {
|
|
return Id(err.BadValue)
|
|
}
|
|
|
|
func (err GlxBadRenderRequestError) Error() string {
|
|
fieldVals := make([]string, 0, 4)
|
|
fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
|
|
fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence))
|
|
fieldVals = append(fieldVals, sprintf("BadValue: %d", err.BadValue))
|
|
fieldVals = append(fieldVals, sprintf("MinorOpcode: %d", err.MinorOpcode))
|
|
fieldVals = append(fieldVals, sprintf("MajorOpcode: %d", err.MajorOpcode))
|
|
return "BadGlxBadRenderRequest {" + stringsJoin(fieldVals, ", ") + "}"
|
|
}
|
|
|
|
func init() {
|
|
newExtErrorFuncs["GLX"][6] = NewGlxBadRenderRequestError
|
|
}
|
|
|
|
// ErrorCopy definition GlxBadLargeRequest (7)
|
|
|
|
const BadGlxBadLargeRequest = 7
|
|
|
|
type GlxBadLargeRequestError GlxGenericError
|
|
|
|
func NewGlxBadLargeRequestError(buf []byte) Error {
|
|
v := GlxBadLargeRequestError(NewGlxGenericError(buf).(GlxGenericError))
|
|
v.NiceName = "GlxBadLargeRequest"
|
|
return v
|
|
}
|
|
|
|
func (err GlxBadLargeRequestError) ImplementsError() {}
|
|
|
|
func (err GlxBadLargeRequestError) SequenceId() uint16 {
|
|
return err.Sequence
|
|
}
|
|
|
|
func (err GlxBadLargeRequestError) BadId() Id {
|
|
return Id(err.BadValue)
|
|
}
|
|
|
|
func (err GlxBadLargeRequestError) Error() string {
|
|
fieldVals := make([]string, 0, 4)
|
|
fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
|
|
fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence))
|
|
fieldVals = append(fieldVals, sprintf("BadValue: %d", err.BadValue))
|
|
fieldVals = append(fieldVals, sprintf("MinorOpcode: %d", err.MinorOpcode))
|
|
fieldVals = append(fieldVals, sprintf("MajorOpcode: %d", err.MajorOpcode))
|
|
return "BadGlxBadLargeRequest {" + stringsJoin(fieldVals, ", ") + "}"
|
|
}
|
|
|
|
func init() {
|
|
newExtErrorFuncs["GLX"][7] = NewGlxBadLargeRequestError
|
|
}
|
|
|
|
// ErrorCopy definition GlxUnsupportedPrivateRequest (8)
|
|
|
|
const BadGlxUnsupportedPrivateRequest = 8
|
|
|
|
type GlxUnsupportedPrivateRequestError GlxGenericError
|
|
|
|
func NewGlxUnsupportedPrivateRequestError(buf []byte) Error {
|
|
v := GlxUnsupportedPrivateRequestError(NewGlxGenericError(buf).(GlxGenericError))
|
|
v.NiceName = "GlxUnsupportedPrivateRequest"
|
|
return v
|
|
}
|
|
|
|
func (err GlxUnsupportedPrivateRequestError) ImplementsError() {}
|
|
|
|
func (err GlxUnsupportedPrivateRequestError) SequenceId() uint16 {
|
|
return err.Sequence
|
|
}
|
|
|
|
func (err GlxUnsupportedPrivateRequestError) BadId() Id {
|
|
return Id(err.BadValue)
|
|
}
|
|
|
|
func (err GlxUnsupportedPrivateRequestError) Error() string {
|
|
fieldVals := make([]string, 0, 4)
|
|
fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
|
|
fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence))
|
|
fieldVals = append(fieldVals, sprintf("BadValue: %d", err.BadValue))
|
|
fieldVals = append(fieldVals, sprintf("MinorOpcode: %d", err.MinorOpcode))
|
|
fieldVals = append(fieldVals, sprintf("MajorOpcode: %d", err.MajorOpcode))
|
|
return "BadGlxUnsupportedPrivateRequest {" + stringsJoin(fieldVals, ", ") + "}"
|
|
}
|
|
|
|
func init() {
|
|
newExtErrorFuncs["GLX"][8] = NewGlxUnsupportedPrivateRequestError
|
|
}
|
|
|
|
// ErrorCopy definition GlxBadFBConfig (9)
|
|
|
|
const BadGlxBadFBConfig = 9
|
|
|
|
type GlxBadFBConfigError GlxGenericError
|
|
|
|
func NewGlxBadFBConfigError(buf []byte) Error {
|
|
v := GlxBadFBConfigError(NewGlxGenericError(buf).(GlxGenericError))
|
|
v.NiceName = "GlxBadFBConfig"
|
|
return v
|
|
}
|
|
|
|
func (err GlxBadFBConfigError) ImplementsError() {}
|
|
|
|
func (err GlxBadFBConfigError) SequenceId() uint16 {
|
|
return err.Sequence
|
|
}
|
|
|
|
func (err GlxBadFBConfigError) BadId() Id {
|
|
return Id(err.BadValue)
|
|
}
|
|
|
|
func (err GlxBadFBConfigError) Error() string {
|
|
fieldVals := make([]string, 0, 4)
|
|
fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
|
|
fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence))
|
|
fieldVals = append(fieldVals, sprintf("BadValue: %d", err.BadValue))
|
|
fieldVals = append(fieldVals, sprintf("MinorOpcode: %d", err.MinorOpcode))
|
|
fieldVals = append(fieldVals, sprintf("MajorOpcode: %d", err.MajorOpcode))
|
|
return "BadGlxBadFBConfig {" + stringsJoin(fieldVals, ", ") + "}"
|
|
}
|
|
|
|
func init() {
|
|
newExtErrorFuncs["GLX"][9] = NewGlxBadFBConfigError
|
|
}
|
|
|
|
// ErrorCopy definition GlxBadPbuffer (10)
|
|
|
|
const BadGlxBadPbuffer = 10
|
|
|
|
type GlxBadPbufferError GlxGenericError
|
|
|
|
func NewGlxBadPbufferError(buf []byte) Error {
|
|
v := GlxBadPbufferError(NewGlxGenericError(buf).(GlxGenericError))
|
|
v.NiceName = "GlxBadPbuffer"
|
|
return v
|
|
}
|
|
|
|
func (err GlxBadPbufferError) ImplementsError() {}
|
|
|
|
func (err GlxBadPbufferError) SequenceId() uint16 {
|
|
return err.Sequence
|
|
}
|
|
|
|
func (err GlxBadPbufferError) BadId() Id {
|
|
return Id(err.BadValue)
|
|
}
|
|
|
|
func (err GlxBadPbufferError) Error() string {
|
|
fieldVals := make([]string, 0, 4)
|
|
fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
|
|
fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence))
|
|
fieldVals = append(fieldVals, sprintf("BadValue: %d", err.BadValue))
|
|
fieldVals = append(fieldVals, sprintf("MinorOpcode: %d", err.MinorOpcode))
|
|
fieldVals = append(fieldVals, sprintf("MajorOpcode: %d", err.MajorOpcode))
|
|
return "BadGlxBadPbuffer {" + stringsJoin(fieldVals, ", ") + "}"
|
|
}
|
|
|
|
func init() {
|
|
newExtErrorFuncs["GLX"][10] = NewGlxBadPbufferError
|
|
}
|
|
|
|
// ErrorCopy definition GlxBadCurrentDrawable (11)
|
|
|
|
const BadGlxBadCurrentDrawable = 11
|
|
|
|
type GlxBadCurrentDrawableError GlxGenericError
|
|
|
|
func NewGlxBadCurrentDrawableError(buf []byte) Error {
|
|
v := GlxBadCurrentDrawableError(NewGlxGenericError(buf).(GlxGenericError))
|
|
v.NiceName = "GlxBadCurrentDrawable"
|
|
return v
|
|
}
|
|
|
|
func (err GlxBadCurrentDrawableError) ImplementsError() {}
|
|
|
|
func (err GlxBadCurrentDrawableError) SequenceId() uint16 {
|
|
return err.Sequence
|
|
}
|
|
|
|
func (err GlxBadCurrentDrawableError) BadId() Id {
|
|
return Id(err.BadValue)
|
|
}
|
|
|
|
func (err GlxBadCurrentDrawableError) Error() string {
|
|
fieldVals := make([]string, 0, 4)
|
|
fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
|
|
fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence))
|
|
fieldVals = append(fieldVals, sprintf("BadValue: %d", err.BadValue))
|
|
fieldVals = append(fieldVals, sprintf("MinorOpcode: %d", err.MinorOpcode))
|
|
fieldVals = append(fieldVals, sprintf("MajorOpcode: %d", err.MajorOpcode))
|
|
return "BadGlxBadCurrentDrawable {" + stringsJoin(fieldVals, ", ") + "}"
|
|
}
|
|
|
|
func init() {
|
|
newExtErrorFuncs["GLX"][11] = NewGlxBadCurrentDrawableError
|
|
}
|
|
|
|
// ErrorCopy definition GlxBadWindow (12)
|
|
|
|
const BadGlxBadWindow = 12
|
|
|
|
type GlxBadWindowError GlxGenericError
|
|
|
|
func NewGlxBadWindowError(buf []byte) Error {
|
|
v := GlxBadWindowError(NewGlxGenericError(buf).(GlxGenericError))
|
|
v.NiceName = "GlxBadWindow"
|
|
return v
|
|
}
|
|
|
|
func (err GlxBadWindowError) ImplementsError() {}
|
|
|
|
func (err GlxBadWindowError) SequenceId() uint16 {
|
|
return err.Sequence
|
|
}
|
|
|
|
func (err GlxBadWindowError) BadId() Id {
|
|
return Id(err.BadValue)
|
|
}
|
|
|
|
func (err GlxBadWindowError) Error() string {
|
|
fieldVals := make([]string, 0, 4)
|
|
fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
|
|
fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence))
|
|
fieldVals = append(fieldVals, sprintf("BadValue: %d", err.BadValue))
|
|
fieldVals = append(fieldVals, sprintf("MinorOpcode: %d", err.MinorOpcode))
|
|
fieldVals = append(fieldVals, sprintf("MajorOpcode: %d", err.MajorOpcode))
|
|
return "BadGlxBadWindow {" + stringsJoin(fieldVals, ", ") + "}"
|
|
}
|
|
|
|
func init() {
|
|
newExtErrorFuncs["GLX"][12] = NewGlxBadWindowError
|
|
}
|
|
|
|
// ErrorCopy definition GlxGLXBadProfileARB (13)
|
|
|
|
const BadGlxGLXBadProfileARB = 13
|
|
|
|
type GlxGLXBadProfileARBError GlxGenericError
|
|
|
|
func NewGlxGLXBadProfileARBError(buf []byte) Error {
|
|
v := GlxGLXBadProfileARBError(NewGlxGenericError(buf).(GlxGenericError))
|
|
v.NiceName = "GlxGLXBadProfileARB"
|
|
return v
|
|
}
|
|
|
|
func (err GlxGLXBadProfileARBError) ImplementsError() {}
|
|
|
|
func (err GlxGLXBadProfileARBError) SequenceId() uint16 {
|
|
return err.Sequence
|
|
}
|
|
|
|
func (err GlxGLXBadProfileARBError) BadId() Id {
|
|
return Id(err.BadValue)
|
|
}
|
|
|
|
func (err GlxGLXBadProfileARBError) Error() string {
|
|
fieldVals := make([]string, 0, 4)
|
|
fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
|
|
fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence))
|
|
fieldVals = append(fieldVals, sprintf("BadValue: %d", err.BadValue))
|
|
fieldVals = append(fieldVals, sprintf("MinorOpcode: %d", err.MinorOpcode))
|
|
fieldVals = append(fieldVals, sprintf("MajorOpcode: %d", err.MajorOpcode))
|
|
return "BadGlxGLXBadProfileARB {" + stringsJoin(fieldVals, ", ") + "}"
|
|
}
|
|
|
|
func init() {
|
|
newExtErrorFuncs["GLX"][13] = NewGlxGLXBadProfileARBError
|
|
}
|
|
|
|
// Request GlxRender
|
|
// size: pad((8 + pad((len(Data) * 1))))
|
|
type GlxRenderCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxRender
|
|
func (c *Conn) GlxRender(ContextTag GlxContextTag, Data []byte) GlxRenderCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxRenderRequest(ContextTag, Data), cookie)
|
|
return GlxRenderCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxRenderChecked(ContextTag GlxContextTag, Data []byte) GlxRenderCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxRenderRequest(ContextTag, Data), cookie)
|
|
return GlxRenderCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxRenderCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxRender
|
|
func (c *Conn) glxRenderRequest(ContextTag GlxContextTag, Data []byte) []byte {
|
|
size := pad((8 + pad((len(Data) * 1))))
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 1 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
copy(buf[b:], Data[:len(Data)])
|
|
b += pad(int(len(Data)))
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxRenderLarge
|
|
// size: pad((16 + pad((int(DataLen) * 1))))
|
|
type GlxRenderLargeCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxRenderLarge
|
|
func (c *Conn) GlxRenderLarge(ContextTag GlxContextTag, RequestNum uint16, RequestTotal uint16, DataLen uint32, Data []byte) GlxRenderLargeCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxRenderLargeRequest(ContextTag, RequestNum, RequestTotal, DataLen, Data), cookie)
|
|
return GlxRenderLargeCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxRenderLargeChecked(ContextTag GlxContextTag, RequestNum uint16, RequestTotal uint16, DataLen uint32, Data []byte) GlxRenderLargeCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxRenderLargeRequest(ContextTag, RequestNum, RequestTotal, DataLen, Data), cookie)
|
|
return GlxRenderLargeCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxRenderLargeCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxRenderLarge
|
|
func (c *Conn) glxRenderLargeRequest(ContextTag GlxContextTag, RequestNum uint16, RequestTotal uint16, DataLen uint32, Data []byte) []byte {
|
|
size := pad((16 + pad((int(DataLen) * 1))))
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 2 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put16(buf[b:], RequestNum)
|
|
b += 2
|
|
|
|
Put16(buf[b:], RequestTotal)
|
|
b += 2
|
|
|
|
Put32(buf[b:], DataLen)
|
|
b += 4
|
|
|
|
copy(buf[b:], Data[:DataLen])
|
|
b += pad(int(DataLen))
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxCreateContext
|
|
// size: 24
|
|
type GlxCreateContextCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxCreateContext
|
|
func (c *Conn) GlxCreateContext(Context Id, Visual Visualid, Screen uint32, ShareList Id, IsDirect bool) GlxCreateContextCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxCreateContextRequest(Context, Visual, Screen, ShareList, IsDirect), cookie)
|
|
return GlxCreateContextCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxCreateContextChecked(Context Id, Visual Visualid, Screen uint32, ShareList Id, IsDirect bool) GlxCreateContextCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxCreateContextRequest(Context, Visual, Screen, ShareList, IsDirect), cookie)
|
|
return GlxCreateContextCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxCreateContextCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxCreateContext
|
|
func (c *Conn) glxCreateContextRequest(Context Id, Visual Visualid, Screen uint32, ShareList Id, IsDirect bool) []byte {
|
|
size := 24
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 3 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(Context))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Visual))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Screen)
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(ShareList))
|
|
b += 4
|
|
|
|
if IsDirect {
|
|
buf[b] = 1
|
|
} else {
|
|
buf[b] = 0
|
|
}
|
|
b += 1
|
|
|
|
b += 3 // padding
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxDestroyContext
|
|
// size: 8
|
|
type GlxDestroyContextCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxDestroyContext
|
|
func (c *Conn) GlxDestroyContext(Context Id) GlxDestroyContextCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxDestroyContextRequest(Context), cookie)
|
|
return GlxDestroyContextCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxDestroyContextChecked(Context Id) GlxDestroyContextCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxDestroyContextRequest(Context), cookie)
|
|
return GlxDestroyContextCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxDestroyContextCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxDestroyContext
|
|
func (c *Conn) glxDestroyContextRequest(Context Id) []byte {
|
|
size := 8
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 4 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(Context))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxMakeCurrent
|
|
// size: 16
|
|
type GlxMakeCurrentCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxMakeCurrent(Drawable Id, Context Id, OldContextTag GlxContextTag) GlxMakeCurrentCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxMakeCurrentRequest(Drawable, Context, OldContextTag), cookie)
|
|
return GlxMakeCurrentCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxMakeCurrentUnchecked(Drawable Id, Context Id, OldContextTag GlxContextTag) GlxMakeCurrentCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxMakeCurrentRequest(Drawable, Context, OldContextTag), cookie)
|
|
return GlxMakeCurrentCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxMakeCurrent
|
|
// size: 32
|
|
type GlxMakeCurrentReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
ContextTag GlxContextTag
|
|
// padding: 20 bytes
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxMakeCurrent
|
|
func (cook GlxMakeCurrentCookie) Reply() (*GlxMakeCurrentReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxMakeCurrentReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxMakeCurrent
|
|
func glxMakeCurrentReply(buf []byte) *GlxMakeCurrentReply {
|
|
v := new(GlxMakeCurrentReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
v.ContextTag = GlxContextTag(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 20 // padding
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxMakeCurrentCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxMakeCurrent
|
|
func (c *Conn) glxMakeCurrentRequest(Drawable Id, Context Id, OldContextTag GlxContextTag) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 5 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(Drawable))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Context))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(OldContextTag))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxIsDirect
|
|
// size: 8
|
|
type GlxIsDirectCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxIsDirect(Context Id) GlxIsDirectCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxIsDirectRequest(Context), cookie)
|
|
return GlxIsDirectCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxIsDirectUnchecked(Context Id) GlxIsDirectCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxIsDirectRequest(Context), cookie)
|
|
return GlxIsDirectCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxIsDirect
|
|
// size: 32
|
|
type GlxIsDirectReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
IsDirect bool
|
|
// padding: 23 bytes
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxIsDirect
|
|
func (cook GlxIsDirectCookie) Reply() (*GlxIsDirectReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxIsDirectReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxIsDirect
|
|
func glxIsDirectReply(buf []byte) *GlxIsDirectReply {
|
|
v := new(GlxIsDirectReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
if buf[b] == 1 {
|
|
v.IsDirect = true
|
|
} else {
|
|
v.IsDirect = false
|
|
}
|
|
b += 1
|
|
|
|
b += 23 // padding
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxIsDirectCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxIsDirect
|
|
func (c *Conn) glxIsDirectRequest(Context Id) []byte {
|
|
size := 8
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 6 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(Context))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxQueryVersion
|
|
// size: 12
|
|
type GlxQueryVersionCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxQueryVersion(MajorVersion uint32, MinorVersion uint32) GlxQueryVersionCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxQueryVersionRequest(MajorVersion, MinorVersion), cookie)
|
|
return GlxQueryVersionCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxQueryVersionUnchecked(MajorVersion uint32, MinorVersion uint32) GlxQueryVersionCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxQueryVersionRequest(MajorVersion, MinorVersion), cookie)
|
|
return GlxQueryVersionCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxQueryVersion
|
|
// size: 32
|
|
type GlxQueryVersionReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
MajorVersion uint32
|
|
MinorVersion uint32
|
|
// padding: 16 bytes
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxQueryVersion
|
|
func (cook GlxQueryVersionCookie) Reply() (*GlxQueryVersionReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxQueryVersionReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxQueryVersion
|
|
func glxQueryVersionReply(buf []byte) *GlxQueryVersionReply {
|
|
v := new(GlxQueryVersionReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
v.MajorVersion = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.MinorVersion = Get32(buf[b:])
|
|
b += 4
|
|
|
|
b += 16 // padding
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxQueryVersionCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxQueryVersion
|
|
func (c *Conn) glxQueryVersionRequest(MajorVersion uint32, MinorVersion uint32) []byte {
|
|
size := 12
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 7 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], MajorVersion)
|
|
b += 4
|
|
|
|
Put32(buf[b:], MinorVersion)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxWaitGL
|
|
// size: 8
|
|
type GlxWaitGLCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxWaitGL
|
|
func (c *Conn) GlxWaitGL(ContextTag GlxContextTag) GlxWaitGLCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxWaitGLRequest(ContextTag), cookie)
|
|
return GlxWaitGLCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxWaitGLChecked(ContextTag GlxContextTag) GlxWaitGLCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxWaitGLRequest(ContextTag), cookie)
|
|
return GlxWaitGLCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxWaitGLCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxWaitGL
|
|
func (c *Conn) glxWaitGLRequest(ContextTag GlxContextTag) []byte {
|
|
size := 8
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 8 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxWaitX
|
|
// size: 8
|
|
type GlxWaitXCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxWaitX
|
|
func (c *Conn) GlxWaitX(ContextTag GlxContextTag) GlxWaitXCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxWaitXRequest(ContextTag), cookie)
|
|
return GlxWaitXCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxWaitXChecked(ContextTag GlxContextTag) GlxWaitXCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxWaitXRequest(ContextTag), cookie)
|
|
return GlxWaitXCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxWaitXCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxWaitX
|
|
func (c *Conn) glxWaitXRequest(ContextTag GlxContextTag) []byte {
|
|
size := 8
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 9 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxCopyContext
|
|
// size: 20
|
|
type GlxCopyContextCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxCopyContext
|
|
func (c *Conn) GlxCopyContext(Src Id, Dest Id, Mask uint32, SrcContextTag GlxContextTag) GlxCopyContextCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxCopyContextRequest(Src, Dest, Mask, SrcContextTag), cookie)
|
|
return GlxCopyContextCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxCopyContextChecked(Src Id, Dest Id, Mask uint32, SrcContextTag GlxContextTag) GlxCopyContextCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxCopyContextRequest(Src, Dest, Mask, SrcContextTag), cookie)
|
|
return GlxCopyContextCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxCopyContextCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxCopyContext
|
|
func (c *Conn) glxCopyContextRequest(Src Id, Dest Id, Mask uint32, SrcContextTag GlxContextTag) []byte {
|
|
size := 20
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 10 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(Src))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Dest))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Mask)
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(SrcContextTag))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxSwapBuffers
|
|
// size: 12
|
|
type GlxSwapBuffersCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxSwapBuffers
|
|
func (c *Conn) GlxSwapBuffers(ContextTag GlxContextTag, Drawable Id) GlxSwapBuffersCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxSwapBuffersRequest(ContextTag, Drawable), cookie)
|
|
return GlxSwapBuffersCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxSwapBuffersChecked(ContextTag GlxContextTag, Drawable Id) GlxSwapBuffersCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxSwapBuffersRequest(ContextTag, Drawable), cookie)
|
|
return GlxSwapBuffersCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxSwapBuffersCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxSwapBuffers
|
|
func (c *Conn) glxSwapBuffersRequest(ContextTag GlxContextTag, Drawable Id) []byte {
|
|
size := 12
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 11 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Drawable))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxUseXFont
|
|
// size: 24
|
|
type GlxUseXFontCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxUseXFont
|
|
func (c *Conn) GlxUseXFont(ContextTag GlxContextTag, Font Id, First uint32, Count uint32, ListBase uint32) GlxUseXFontCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxUseXFontRequest(ContextTag, Font, First, Count, ListBase), cookie)
|
|
return GlxUseXFontCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxUseXFontChecked(ContextTag GlxContextTag, Font Id, First uint32, Count uint32, ListBase uint32) GlxUseXFontCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxUseXFontRequest(ContextTag, Font, First, Count, ListBase), cookie)
|
|
return GlxUseXFontCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxUseXFontCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxUseXFont
|
|
func (c *Conn) glxUseXFontRequest(ContextTag GlxContextTag, Font Id, First uint32, Count uint32, ListBase uint32) []byte {
|
|
size := 24
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 12 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Font))
|
|
b += 4
|
|
|
|
Put32(buf[b:], First)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Count)
|
|
b += 4
|
|
|
|
Put32(buf[b:], ListBase)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxCreateGLXPixmap
|
|
// size: 20
|
|
type GlxCreateGLXPixmapCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxCreateGLXPixmap
|
|
func (c *Conn) GlxCreateGLXPixmap(Screen uint32, Visual Visualid, Pixmap Id, GlxPixmap Id) GlxCreateGLXPixmapCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxCreateGLXPixmapRequest(Screen, Visual, Pixmap, GlxPixmap), cookie)
|
|
return GlxCreateGLXPixmapCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxCreateGLXPixmapChecked(Screen uint32, Visual Visualid, Pixmap Id, GlxPixmap Id) GlxCreateGLXPixmapCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxCreateGLXPixmapRequest(Screen, Visual, Pixmap, GlxPixmap), cookie)
|
|
return GlxCreateGLXPixmapCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxCreateGLXPixmapCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxCreateGLXPixmap
|
|
func (c *Conn) glxCreateGLXPixmapRequest(Screen uint32, Visual Visualid, Pixmap Id, GlxPixmap Id) []byte {
|
|
size := 20
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 13 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], Screen)
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Visual))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Pixmap))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(GlxPixmap))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetVisualConfigs
|
|
// size: 8
|
|
type GlxGetVisualConfigsCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetVisualConfigs(Screen uint32) GlxGetVisualConfigsCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetVisualConfigsRequest(Screen), cookie)
|
|
return GlxGetVisualConfigsCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetVisualConfigsUnchecked(Screen uint32) GlxGetVisualConfigsCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetVisualConfigsRequest(Screen), cookie)
|
|
return GlxGetVisualConfigsCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetVisualConfigs
|
|
// size: (32 + pad((int(Length) * 4)))
|
|
type GlxGetVisualConfigsReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
NumVisuals uint32
|
|
NumProperties uint32
|
|
// padding: 16 bytes
|
|
PropertyList []uint32 // size: pad((int(Length) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetVisualConfigs
|
|
func (cook GlxGetVisualConfigsCookie) Reply() (*GlxGetVisualConfigsReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetVisualConfigsReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetVisualConfigs
|
|
func glxGetVisualConfigsReply(buf []byte) *GlxGetVisualConfigsReply {
|
|
v := new(GlxGetVisualConfigsReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
v.NumVisuals = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.NumProperties = Get32(buf[b:])
|
|
b += 4
|
|
|
|
b += 16 // padding
|
|
|
|
v.PropertyList = make([]uint32, v.Length)
|
|
for i := 0; i < int(v.Length); i++ {
|
|
v.PropertyList[i] = Get32(buf[b:])
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetVisualConfigsCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetVisualConfigs
|
|
func (c *Conn) glxGetVisualConfigsRequest(Screen uint32) []byte {
|
|
size := 8
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 14 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], Screen)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxDestroyGLXPixmap
|
|
// size: 8
|
|
type GlxDestroyGLXPixmapCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxDestroyGLXPixmap
|
|
func (c *Conn) GlxDestroyGLXPixmap(GlxPixmap Id) GlxDestroyGLXPixmapCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxDestroyGLXPixmapRequest(GlxPixmap), cookie)
|
|
return GlxDestroyGLXPixmapCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxDestroyGLXPixmapChecked(GlxPixmap Id) GlxDestroyGLXPixmapCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxDestroyGLXPixmapRequest(GlxPixmap), cookie)
|
|
return GlxDestroyGLXPixmapCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxDestroyGLXPixmapCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxDestroyGLXPixmap
|
|
func (c *Conn) glxDestroyGLXPixmapRequest(GlxPixmap Id) []byte {
|
|
size := 8
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 15 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(GlxPixmap))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxVendorPrivate
|
|
// size: pad((12 + pad((len(Data) * 1))))
|
|
type GlxVendorPrivateCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxVendorPrivate
|
|
func (c *Conn) GlxVendorPrivate(VendorCode uint32, ContextTag GlxContextTag, Data []byte) GlxVendorPrivateCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxVendorPrivateRequest(VendorCode, ContextTag, Data), cookie)
|
|
return GlxVendorPrivateCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxVendorPrivateChecked(VendorCode uint32, ContextTag GlxContextTag, Data []byte) GlxVendorPrivateCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxVendorPrivateRequest(VendorCode, ContextTag, Data), cookie)
|
|
return GlxVendorPrivateCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxVendorPrivateCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxVendorPrivate
|
|
func (c *Conn) glxVendorPrivateRequest(VendorCode uint32, ContextTag GlxContextTag, Data []byte) []byte {
|
|
size := pad((12 + pad((len(Data) * 1))))
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 16 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], VendorCode)
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
copy(buf[b:], Data[:len(Data)])
|
|
b += pad(int(len(Data)))
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxVendorPrivateWithReply
|
|
// size: pad((12 + pad((len(Data) * 1))))
|
|
type GlxVendorPrivateWithReplyCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxVendorPrivateWithReply(VendorCode uint32, ContextTag GlxContextTag, Data []byte) GlxVendorPrivateWithReplyCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxVendorPrivateWithReplyRequest(VendorCode, ContextTag, Data), cookie)
|
|
return GlxVendorPrivateWithReplyCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxVendorPrivateWithReplyUnchecked(VendorCode uint32, ContextTag GlxContextTag, Data []byte) GlxVendorPrivateWithReplyCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxVendorPrivateWithReplyRequest(VendorCode, ContextTag, Data), cookie)
|
|
return GlxVendorPrivateWithReplyCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxVendorPrivateWithReply
|
|
// size: (36 + pad(((int(Length) * 4) * 1)))
|
|
type GlxVendorPrivateWithReplyReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
Retval uint32
|
|
Data1 []byte // size: 24
|
|
Data2 []byte // size: pad(((int(Length) * 4) * 1))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxVendorPrivateWithReply
|
|
func (cook GlxVendorPrivateWithReplyCookie) Reply() (*GlxVendorPrivateWithReplyReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxVendorPrivateWithReplyReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxVendorPrivateWithReply
|
|
func glxVendorPrivateWithReplyReply(buf []byte) *GlxVendorPrivateWithReplyReply {
|
|
v := new(GlxVendorPrivateWithReplyReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
v.Retval = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Data1 = make([]byte, 24)
|
|
copy(v.Data1[:24], buf[b:])
|
|
b += pad(int(24))
|
|
|
|
v.Data2 = make([]byte, (int(v.Length) * 4))
|
|
copy(v.Data2[:(int(v.Length)*4)], buf[b:])
|
|
b += pad(int((int(v.Length) * 4)))
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxVendorPrivateWithReplyCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxVendorPrivateWithReply
|
|
func (c *Conn) glxVendorPrivateWithReplyRequest(VendorCode uint32, ContextTag GlxContextTag, Data []byte) []byte {
|
|
size := pad((12 + pad((len(Data) * 1))))
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 17 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], VendorCode)
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
copy(buf[b:], Data[:len(Data)])
|
|
b += pad(int(len(Data)))
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxQueryExtensionsString
|
|
// size: 8
|
|
type GlxQueryExtensionsStringCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxQueryExtensionsString(Screen uint32) GlxQueryExtensionsStringCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxQueryExtensionsStringRequest(Screen), cookie)
|
|
return GlxQueryExtensionsStringCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxQueryExtensionsStringUnchecked(Screen uint32) GlxQueryExtensionsStringCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxQueryExtensionsStringRequest(Screen), cookie)
|
|
return GlxQueryExtensionsStringCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxQueryExtensionsString
|
|
// size: 32
|
|
type GlxQueryExtensionsStringReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
// padding: 16 bytes
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxQueryExtensionsString
|
|
func (cook GlxQueryExtensionsStringCookie) Reply() (*GlxQueryExtensionsStringReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxQueryExtensionsStringReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxQueryExtensionsString
|
|
func glxQueryExtensionsStringReply(buf []byte) *GlxQueryExtensionsStringReply {
|
|
v := new(GlxQueryExtensionsStringReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
b += 16 // padding
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxQueryExtensionsStringCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxQueryExtensionsString
|
|
func (c *Conn) glxQueryExtensionsStringRequest(Screen uint32) []byte {
|
|
size := 8
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 18 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], Screen)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxQueryServerString
|
|
// size: 12
|
|
type GlxQueryServerStringCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxQueryServerString(Screen uint32, Name uint32) GlxQueryServerStringCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxQueryServerStringRequest(Screen, Name), cookie)
|
|
return GlxQueryServerStringCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxQueryServerStringUnchecked(Screen uint32, Name uint32) GlxQueryServerStringCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxQueryServerStringRequest(Screen, Name), cookie)
|
|
return GlxQueryServerStringCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxQueryServerString
|
|
// size: (32 + pad((int(StrLen) * 1)))
|
|
type GlxQueryServerStringReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
StrLen uint32
|
|
// padding: 16 bytes
|
|
String string // size: pad((int(StrLen) * 1))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxQueryServerString
|
|
func (cook GlxQueryServerStringCookie) Reply() (*GlxQueryServerStringReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxQueryServerStringReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxQueryServerString
|
|
func glxQueryServerStringReply(buf []byte) *GlxQueryServerStringReply {
|
|
v := new(GlxQueryServerStringReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.StrLen = Get32(buf[b:])
|
|
b += 4
|
|
|
|
b += 16 // padding
|
|
|
|
{
|
|
byteString := make([]byte, v.StrLen)
|
|
copy(byteString[:v.StrLen], buf[b:])
|
|
v.String = string(byteString)
|
|
b += pad(int(v.StrLen))
|
|
}
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxQueryServerStringCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxQueryServerString
|
|
func (c *Conn) glxQueryServerStringRequest(Screen uint32, Name uint32) []byte {
|
|
size := 12
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 19 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], Screen)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Name)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxClientInfo
|
|
// size: pad((16 + pad((int(StrLen) * 1))))
|
|
type GlxClientInfoCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxClientInfo
|
|
func (c *Conn) GlxClientInfo(MajorVersion uint32, MinorVersion uint32, StrLen uint32, String string) GlxClientInfoCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxClientInfoRequest(MajorVersion, MinorVersion, StrLen, String), cookie)
|
|
return GlxClientInfoCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxClientInfoChecked(MajorVersion uint32, MinorVersion uint32, StrLen uint32, String string) GlxClientInfoCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxClientInfoRequest(MajorVersion, MinorVersion, StrLen, String), cookie)
|
|
return GlxClientInfoCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxClientInfoCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxClientInfo
|
|
func (c *Conn) glxClientInfoRequest(MajorVersion uint32, MinorVersion uint32, StrLen uint32, String string) []byte {
|
|
size := pad((16 + pad((int(StrLen) * 1))))
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 20 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], MajorVersion)
|
|
b += 4
|
|
|
|
Put32(buf[b:], MinorVersion)
|
|
b += 4
|
|
|
|
Put32(buf[b:], StrLen)
|
|
b += 4
|
|
|
|
copy(buf[b:], String[:StrLen])
|
|
b += pad(int(StrLen))
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetFBConfigs
|
|
// size: 8
|
|
type GlxGetFBConfigsCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetFBConfigs(Screen uint32) GlxGetFBConfigsCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetFBConfigsRequest(Screen), cookie)
|
|
return GlxGetFBConfigsCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetFBConfigsUnchecked(Screen uint32) GlxGetFBConfigsCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetFBConfigsRequest(Screen), cookie)
|
|
return GlxGetFBConfigsCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetFBConfigs
|
|
// size: (32 + pad((int(Length) * 4)))
|
|
type GlxGetFBConfigsReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
NumFbConfigs uint32
|
|
NumProperties uint32
|
|
// padding: 16 bytes
|
|
PropertyList []uint32 // size: pad((int(Length) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetFBConfigs
|
|
func (cook GlxGetFBConfigsCookie) Reply() (*GlxGetFBConfigsReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetFBConfigsReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetFBConfigs
|
|
func glxGetFBConfigsReply(buf []byte) *GlxGetFBConfigsReply {
|
|
v := new(GlxGetFBConfigsReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
v.NumFbConfigs = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.NumProperties = Get32(buf[b:])
|
|
b += 4
|
|
|
|
b += 16 // padding
|
|
|
|
v.PropertyList = make([]uint32, v.Length)
|
|
for i := 0; i < int(v.Length); i++ {
|
|
v.PropertyList[i] = Get32(buf[b:])
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetFBConfigsCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetFBConfigs
|
|
func (c *Conn) glxGetFBConfigsRequest(Screen uint32) []byte {
|
|
size := 8
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 21 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], Screen)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxCreatePixmap
|
|
// size: pad((24 + pad(((int(NumAttribs) * 2) * 4))))
|
|
type GlxCreatePixmapCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxCreatePixmap
|
|
func (c *Conn) GlxCreatePixmap(Screen uint32, Fbconfig Id, Pixmap Id, GlxPixmap Id, NumAttribs uint32, Attribs []uint32) GlxCreatePixmapCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxCreatePixmapRequest(Screen, Fbconfig, Pixmap, GlxPixmap, NumAttribs, Attribs), cookie)
|
|
return GlxCreatePixmapCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxCreatePixmapChecked(Screen uint32, Fbconfig Id, Pixmap Id, GlxPixmap Id, NumAttribs uint32, Attribs []uint32) GlxCreatePixmapCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxCreatePixmapRequest(Screen, Fbconfig, Pixmap, GlxPixmap, NumAttribs, Attribs), cookie)
|
|
return GlxCreatePixmapCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxCreatePixmapCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxCreatePixmap
|
|
func (c *Conn) glxCreatePixmapRequest(Screen uint32, Fbconfig Id, Pixmap Id, GlxPixmap Id, NumAttribs uint32, Attribs []uint32) []byte {
|
|
size := pad((24 + pad(((int(NumAttribs) * 2) * 4))))
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 22 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], Screen)
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Fbconfig))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Pixmap))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(GlxPixmap))
|
|
b += 4
|
|
|
|
Put32(buf[b:], NumAttribs)
|
|
b += 4
|
|
|
|
for i := 0; i < int((int(NumAttribs) * 2)); i++ {
|
|
Put32(buf[b:], Attribs[i])
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxDestroyPixmap
|
|
// size: 8
|
|
type GlxDestroyPixmapCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxDestroyPixmap
|
|
func (c *Conn) GlxDestroyPixmap(GlxPixmap Id) GlxDestroyPixmapCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxDestroyPixmapRequest(GlxPixmap), cookie)
|
|
return GlxDestroyPixmapCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxDestroyPixmapChecked(GlxPixmap Id) GlxDestroyPixmapCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxDestroyPixmapRequest(GlxPixmap), cookie)
|
|
return GlxDestroyPixmapCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxDestroyPixmapCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxDestroyPixmap
|
|
func (c *Conn) glxDestroyPixmapRequest(GlxPixmap Id) []byte {
|
|
size := 8
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 23 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(GlxPixmap))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxCreateNewContext
|
|
// size: 28
|
|
type GlxCreateNewContextCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxCreateNewContext
|
|
func (c *Conn) GlxCreateNewContext(Context Id, Fbconfig Id, Screen uint32, RenderType uint32, ShareList Id, IsDirect bool) GlxCreateNewContextCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxCreateNewContextRequest(Context, Fbconfig, Screen, RenderType, ShareList, IsDirect), cookie)
|
|
return GlxCreateNewContextCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxCreateNewContextChecked(Context Id, Fbconfig Id, Screen uint32, RenderType uint32, ShareList Id, IsDirect bool) GlxCreateNewContextCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxCreateNewContextRequest(Context, Fbconfig, Screen, RenderType, ShareList, IsDirect), cookie)
|
|
return GlxCreateNewContextCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxCreateNewContextCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxCreateNewContext
|
|
func (c *Conn) glxCreateNewContextRequest(Context Id, Fbconfig Id, Screen uint32, RenderType uint32, ShareList Id, IsDirect bool) []byte {
|
|
size := 28
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 24 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(Context))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Fbconfig))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Screen)
|
|
b += 4
|
|
|
|
Put32(buf[b:], RenderType)
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(ShareList))
|
|
b += 4
|
|
|
|
if IsDirect {
|
|
buf[b] = 1
|
|
} else {
|
|
buf[b] = 0
|
|
}
|
|
b += 1
|
|
|
|
b += 3 // padding
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxQueryContext
|
|
// size: 8
|
|
type GlxQueryContextCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxQueryContext(Context Id) GlxQueryContextCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxQueryContextRequest(Context), cookie)
|
|
return GlxQueryContextCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxQueryContextUnchecked(Context Id) GlxQueryContextCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxQueryContextRequest(Context), cookie)
|
|
return GlxQueryContextCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxQueryContext
|
|
// size: (32 + pad(((int(NumAttribs) * 2) * 4)))
|
|
type GlxQueryContextReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
NumAttribs uint32
|
|
// padding: 20 bytes
|
|
Attribs []uint32 // size: pad(((int(NumAttribs) * 2) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxQueryContext
|
|
func (cook GlxQueryContextCookie) Reply() (*GlxQueryContextReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxQueryContextReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxQueryContext
|
|
func glxQueryContextReply(buf []byte) *GlxQueryContextReply {
|
|
v := new(GlxQueryContextReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
v.NumAttribs = Get32(buf[b:])
|
|
b += 4
|
|
|
|
b += 20 // padding
|
|
|
|
v.Attribs = make([]uint32, (int(v.NumAttribs) * 2))
|
|
for i := 0; i < int((int(v.NumAttribs) * 2)); i++ {
|
|
v.Attribs[i] = Get32(buf[b:])
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxQueryContextCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxQueryContext
|
|
func (c *Conn) glxQueryContextRequest(Context Id) []byte {
|
|
size := 8
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 25 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(Context))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxMakeContextCurrent
|
|
// size: 20
|
|
type GlxMakeContextCurrentCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxMakeContextCurrent(OldContextTag GlxContextTag, Drawable Id, ReadDrawable Id, Context Id) GlxMakeContextCurrentCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxMakeContextCurrentRequest(OldContextTag, Drawable, ReadDrawable, Context), cookie)
|
|
return GlxMakeContextCurrentCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxMakeContextCurrentUnchecked(OldContextTag GlxContextTag, Drawable Id, ReadDrawable Id, Context Id) GlxMakeContextCurrentCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxMakeContextCurrentRequest(OldContextTag, Drawable, ReadDrawable, Context), cookie)
|
|
return GlxMakeContextCurrentCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxMakeContextCurrent
|
|
// size: 32
|
|
type GlxMakeContextCurrentReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
ContextTag GlxContextTag
|
|
// padding: 20 bytes
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxMakeContextCurrent
|
|
func (cook GlxMakeContextCurrentCookie) Reply() (*GlxMakeContextCurrentReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxMakeContextCurrentReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxMakeContextCurrent
|
|
func glxMakeContextCurrentReply(buf []byte) *GlxMakeContextCurrentReply {
|
|
v := new(GlxMakeContextCurrentReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
v.ContextTag = GlxContextTag(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 20 // padding
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxMakeContextCurrentCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxMakeContextCurrent
|
|
func (c *Conn) glxMakeContextCurrentRequest(OldContextTag GlxContextTag, Drawable Id, ReadDrawable Id, Context Id) []byte {
|
|
size := 20
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 26 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(OldContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Drawable))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(ReadDrawable))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Context))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxCreatePbuffer
|
|
// size: pad((20 + pad(((int(NumAttribs) * 2) * 4))))
|
|
type GlxCreatePbufferCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxCreatePbuffer
|
|
func (c *Conn) GlxCreatePbuffer(Screen uint32, Fbconfig Id, Pbuffer Id, NumAttribs uint32, Attribs []uint32) GlxCreatePbufferCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxCreatePbufferRequest(Screen, Fbconfig, Pbuffer, NumAttribs, Attribs), cookie)
|
|
return GlxCreatePbufferCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxCreatePbufferChecked(Screen uint32, Fbconfig Id, Pbuffer Id, NumAttribs uint32, Attribs []uint32) GlxCreatePbufferCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxCreatePbufferRequest(Screen, Fbconfig, Pbuffer, NumAttribs, Attribs), cookie)
|
|
return GlxCreatePbufferCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxCreatePbufferCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxCreatePbuffer
|
|
func (c *Conn) glxCreatePbufferRequest(Screen uint32, Fbconfig Id, Pbuffer Id, NumAttribs uint32, Attribs []uint32) []byte {
|
|
size := pad((20 + pad(((int(NumAttribs) * 2) * 4))))
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 27 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], Screen)
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Fbconfig))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Pbuffer))
|
|
b += 4
|
|
|
|
Put32(buf[b:], NumAttribs)
|
|
b += 4
|
|
|
|
for i := 0; i < int((int(NumAttribs) * 2)); i++ {
|
|
Put32(buf[b:], Attribs[i])
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxDestroyPbuffer
|
|
// size: 8
|
|
type GlxDestroyPbufferCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxDestroyPbuffer
|
|
func (c *Conn) GlxDestroyPbuffer(Pbuffer Id) GlxDestroyPbufferCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxDestroyPbufferRequest(Pbuffer), cookie)
|
|
return GlxDestroyPbufferCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxDestroyPbufferChecked(Pbuffer Id) GlxDestroyPbufferCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxDestroyPbufferRequest(Pbuffer), cookie)
|
|
return GlxDestroyPbufferCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxDestroyPbufferCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxDestroyPbuffer
|
|
func (c *Conn) glxDestroyPbufferRequest(Pbuffer Id) []byte {
|
|
size := 8
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 28 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(Pbuffer))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetDrawableAttributes
|
|
// size: 8
|
|
type GlxGetDrawableAttributesCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetDrawableAttributes(Drawable Id) GlxGetDrawableAttributesCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetDrawableAttributesRequest(Drawable), cookie)
|
|
return GlxGetDrawableAttributesCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetDrawableAttributesUnchecked(Drawable Id) GlxGetDrawableAttributesCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetDrawableAttributesRequest(Drawable), cookie)
|
|
return GlxGetDrawableAttributesCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetDrawableAttributes
|
|
// size: (32 + pad(((int(NumAttribs) * 2) * 4)))
|
|
type GlxGetDrawableAttributesReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
NumAttribs uint32
|
|
// padding: 20 bytes
|
|
Attribs []uint32 // size: pad(((int(NumAttribs) * 2) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetDrawableAttributes
|
|
func (cook GlxGetDrawableAttributesCookie) Reply() (*GlxGetDrawableAttributesReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetDrawableAttributesReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetDrawableAttributes
|
|
func glxGetDrawableAttributesReply(buf []byte) *GlxGetDrawableAttributesReply {
|
|
v := new(GlxGetDrawableAttributesReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
v.NumAttribs = Get32(buf[b:])
|
|
b += 4
|
|
|
|
b += 20 // padding
|
|
|
|
v.Attribs = make([]uint32, (int(v.NumAttribs) * 2))
|
|
for i := 0; i < int((int(v.NumAttribs) * 2)); i++ {
|
|
v.Attribs[i] = Get32(buf[b:])
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetDrawableAttributesCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetDrawableAttributes
|
|
func (c *Conn) glxGetDrawableAttributesRequest(Drawable Id) []byte {
|
|
size := 8
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 29 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(Drawable))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxChangeDrawableAttributes
|
|
// size: pad((12 + pad(((int(NumAttribs) * 2) * 4))))
|
|
type GlxChangeDrawableAttributesCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxChangeDrawableAttributes
|
|
func (c *Conn) GlxChangeDrawableAttributes(Drawable Id, NumAttribs uint32, Attribs []uint32) GlxChangeDrawableAttributesCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxChangeDrawableAttributesRequest(Drawable, NumAttribs, Attribs), cookie)
|
|
return GlxChangeDrawableAttributesCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxChangeDrawableAttributesChecked(Drawable Id, NumAttribs uint32, Attribs []uint32) GlxChangeDrawableAttributesCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxChangeDrawableAttributesRequest(Drawable, NumAttribs, Attribs), cookie)
|
|
return GlxChangeDrawableAttributesCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxChangeDrawableAttributesCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxChangeDrawableAttributes
|
|
func (c *Conn) glxChangeDrawableAttributesRequest(Drawable Id, NumAttribs uint32, Attribs []uint32) []byte {
|
|
size := pad((12 + pad(((int(NumAttribs) * 2) * 4))))
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 30 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(Drawable))
|
|
b += 4
|
|
|
|
Put32(buf[b:], NumAttribs)
|
|
b += 4
|
|
|
|
for i := 0; i < int((int(NumAttribs) * 2)); i++ {
|
|
Put32(buf[b:], Attribs[i])
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxCreateWindow
|
|
// size: pad((24 + pad(((int(NumAttribs) * 2) * 4))))
|
|
type GlxCreateWindowCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxCreateWindow
|
|
func (c *Conn) GlxCreateWindow(Screen uint32, Fbconfig Id, Window Id, GlxWindow Id, NumAttribs uint32, Attribs []uint32) GlxCreateWindowCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxCreateWindowRequest(Screen, Fbconfig, Window, GlxWindow, NumAttribs, Attribs), cookie)
|
|
return GlxCreateWindowCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxCreateWindowChecked(Screen uint32, Fbconfig Id, Window Id, GlxWindow Id, NumAttribs uint32, Attribs []uint32) GlxCreateWindowCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxCreateWindowRequest(Screen, Fbconfig, Window, GlxWindow, NumAttribs, Attribs), cookie)
|
|
return GlxCreateWindowCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxCreateWindowCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxCreateWindow
|
|
func (c *Conn) glxCreateWindowRequest(Screen uint32, Fbconfig Id, Window Id, GlxWindow Id, NumAttribs uint32, Attribs []uint32) []byte {
|
|
size := pad((24 + pad(((int(NumAttribs) * 2) * 4))))
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 31 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], Screen)
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Fbconfig))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Window))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(GlxWindow))
|
|
b += 4
|
|
|
|
Put32(buf[b:], NumAttribs)
|
|
b += 4
|
|
|
|
for i := 0; i < int((int(NumAttribs) * 2)); i++ {
|
|
Put32(buf[b:], Attribs[i])
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxDeleteWindow
|
|
// size: 8
|
|
type GlxDeleteWindowCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxDeleteWindow
|
|
func (c *Conn) GlxDeleteWindow(Glxwindow Id) GlxDeleteWindowCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxDeleteWindowRequest(Glxwindow), cookie)
|
|
return GlxDeleteWindowCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxDeleteWindowChecked(Glxwindow Id) GlxDeleteWindowCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxDeleteWindowRequest(Glxwindow), cookie)
|
|
return GlxDeleteWindowCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxDeleteWindowCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxDeleteWindow
|
|
func (c *Conn) glxDeleteWindowRequest(Glxwindow Id) []byte {
|
|
size := 8
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 32 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(Glxwindow))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxSetClientInfoARB
|
|
// size: pad((((24 + pad(((int(NumVersions) * 2) * 4))) + pad((int(GlStrLen) * 1))) + pad((int(GlxStrLen) * 1))))
|
|
type GlxSetClientInfoARBCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxSetClientInfoARB
|
|
func (c *Conn) GlxSetClientInfoARB(MajorVersion uint32, MinorVersion uint32, NumVersions uint32, GlStrLen uint32, GlxStrLen uint32, GlVersions []uint32, GlExtensionString string, GlxExtensionString string) GlxSetClientInfoARBCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxSetClientInfoARBRequest(MajorVersion, MinorVersion, NumVersions, GlStrLen, GlxStrLen, GlVersions, GlExtensionString, GlxExtensionString), cookie)
|
|
return GlxSetClientInfoARBCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxSetClientInfoARBChecked(MajorVersion uint32, MinorVersion uint32, NumVersions uint32, GlStrLen uint32, GlxStrLen uint32, GlVersions []uint32, GlExtensionString string, GlxExtensionString string) GlxSetClientInfoARBCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxSetClientInfoARBRequest(MajorVersion, MinorVersion, NumVersions, GlStrLen, GlxStrLen, GlVersions, GlExtensionString, GlxExtensionString), cookie)
|
|
return GlxSetClientInfoARBCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxSetClientInfoARBCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxSetClientInfoARB
|
|
func (c *Conn) glxSetClientInfoARBRequest(MajorVersion uint32, MinorVersion uint32, NumVersions uint32, GlStrLen uint32, GlxStrLen uint32, GlVersions []uint32, GlExtensionString string, GlxExtensionString string) []byte {
|
|
size := pad((((24 + pad(((int(NumVersions) * 2) * 4))) + pad((int(GlStrLen) * 1))) + pad((int(GlxStrLen) * 1))))
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 33 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], MajorVersion)
|
|
b += 4
|
|
|
|
Put32(buf[b:], MinorVersion)
|
|
b += 4
|
|
|
|
Put32(buf[b:], NumVersions)
|
|
b += 4
|
|
|
|
Put32(buf[b:], GlStrLen)
|
|
b += 4
|
|
|
|
Put32(buf[b:], GlxStrLen)
|
|
b += 4
|
|
|
|
for i := 0; i < int((int(NumVersions) * 2)); i++ {
|
|
Put32(buf[b:], GlVersions[i])
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
copy(buf[b:], GlExtensionString[:GlStrLen])
|
|
b += pad(int(GlStrLen))
|
|
|
|
copy(buf[b:], GlxExtensionString[:GlxStrLen])
|
|
b += pad(int(GlxStrLen))
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxCreateContextAttribsARB
|
|
// size: pad((28 + pad(((int(NumAttribs) * 2) * 4))))
|
|
type GlxCreateContextAttribsARBCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxCreateContextAttribsARB
|
|
func (c *Conn) GlxCreateContextAttribsARB(Context Id, Fbconfig Id, Screen uint32, ShareList Id, IsDirect bool, NumAttribs uint32, Attribs []uint32) GlxCreateContextAttribsARBCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxCreateContextAttribsARBRequest(Context, Fbconfig, Screen, ShareList, IsDirect, NumAttribs, Attribs), cookie)
|
|
return GlxCreateContextAttribsARBCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxCreateContextAttribsARBChecked(Context Id, Fbconfig Id, Screen uint32, ShareList Id, IsDirect bool, NumAttribs uint32, Attribs []uint32) GlxCreateContextAttribsARBCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxCreateContextAttribsARBRequest(Context, Fbconfig, Screen, ShareList, IsDirect, NumAttribs, Attribs), cookie)
|
|
return GlxCreateContextAttribsARBCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxCreateContextAttribsARBCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxCreateContextAttribsARB
|
|
func (c *Conn) glxCreateContextAttribsARBRequest(Context Id, Fbconfig Id, Screen uint32, ShareList Id, IsDirect bool, NumAttribs uint32, Attribs []uint32) []byte {
|
|
size := pad((28 + pad(((int(NumAttribs) * 2) * 4))))
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 34 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(Context))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Fbconfig))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Screen)
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(ShareList))
|
|
b += 4
|
|
|
|
if IsDirect {
|
|
buf[b] = 1
|
|
} else {
|
|
buf[b] = 0
|
|
}
|
|
b += 1
|
|
|
|
b += 3 // padding
|
|
|
|
Put32(buf[b:], NumAttribs)
|
|
b += 4
|
|
|
|
for i := 0; i < int((int(NumAttribs) * 2)); i++ {
|
|
Put32(buf[b:], Attribs[i])
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxSetClientInfo2ARB
|
|
// size: pad((((24 + pad(((int(NumVersions) * 3) * 4))) + pad((int(GlStrLen) * 1))) + pad((int(GlxStrLen) * 1))))
|
|
type GlxSetClientInfo2ARBCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxSetClientInfo2ARB
|
|
func (c *Conn) GlxSetClientInfo2ARB(MajorVersion uint32, MinorVersion uint32, NumVersions uint32, GlStrLen uint32, GlxStrLen uint32, GlVersions []uint32, GlExtensionString string, GlxExtensionString string) GlxSetClientInfo2ARBCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxSetClientInfo2ARBRequest(MajorVersion, MinorVersion, NumVersions, GlStrLen, GlxStrLen, GlVersions, GlExtensionString, GlxExtensionString), cookie)
|
|
return GlxSetClientInfo2ARBCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxSetClientInfo2ARBChecked(MajorVersion uint32, MinorVersion uint32, NumVersions uint32, GlStrLen uint32, GlxStrLen uint32, GlVersions []uint32, GlExtensionString string, GlxExtensionString string) GlxSetClientInfo2ARBCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxSetClientInfo2ARBRequest(MajorVersion, MinorVersion, NumVersions, GlStrLen, GlxStrLen, GlVersions, GlExtensionString, GlxExtensionString), cookie)
|
|
return GlxSetClientInfo2ARBCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxSetClientInfo2ARBCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxSetClientInfo2ARB
|
|
func (c *Conn) glxSetClientInfo2ARBRequest(MajorVersion uint32, MinorVersion uint32, NumVersions uint32, GlStrLen uint32, GlxStrLen uint32, GlVersions []uint32, GlExtensionString string, GlxExtensionString string) []byte {
|
|
size := pad((((24 + pad(((int(NumVersions) * 3) * 4))) + pad((int(GlStrLen) * 1))) + pad((int(GlxStrLen) * 1))))
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 35 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], MajorVersion)
|
|
b += 4
|
|
|
|
Put32(buf[b:], MinorVersion)
|
|
b += 4
|
|
|
|
Put32(buf[b:], NumVersions)
|
|
b += 4
|
|
|
|
Put32(buf[b:], GlStrLen)
|
|
b += 4
|
|
|
|
Put32(buf[b:], GlxStrLen)
|
|
b += 4
|
|
|
|
for i := 0; i < int((int(NumVersions) * 3)); i++ {
|
|
Put32(buf[b:], GlVersions[i])
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
copy(buf[b:], GlExtensionString[:GlStrLen])
|
|
b += pad(int(GlStrLen))
|
|
|
|
copy(buf[b:], GlxExtensionString[:GlxStrLen])
|
|
b += pad(int(GlxStrLen))
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxNewList
|
|
// size: 16
|
|
type GlxNewListCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxNewList
|
|
func (c *Conn) GlxNewList(ContextTag GlxContextTag, List uint32, Mode uint32) GlxNewListCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxNewListRequest(ContextTag, List, Mode), cookie)
|
|
return GlxNewListCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxNewListChecked(ContextTag GlxContextTag, List uint32, Mode uint32) GlxNewListCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxNewListRequest(ContextTag, List, Mode), cookie)
|
|
return GlxNewListCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxNewListCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxNewList
|
|
func (c *Conn) glxNewListRequest(ContextTag GlxContextTag, List uint32, Mode uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 101 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], List)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Mode)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxEndList
|
|
// size: 8
|
|
type GlxEndListCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxEndList
|
|
func (c *Conn) GlxEndList(ContextTag GlxContextTag) GlxEndListCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxEndListRequest(ContextTag), cookie)
|
|
return GlxEndListCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxEndListChecked(ContextTag GlxContextTag) GlxEndListCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxEndListRequest(ContextTag), cookie)
|
|
return GlxEndListCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxEndListCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxEndList
|
|
func (c *Conn) glxEndListRequest(ContextTag GlxContextTag) []byte {
|
|
size := 8
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 102 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxDeleteLists
|
|
// size: 16
|
|
type GlxDeleteListsCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxDeleteLists
|
|
func (c *Conn) GlxDeleteLists(ContextTag GlxContextTag, List uint32, Range int32) GlxDeleteListsCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxDeleteListsRequest(ContextTag, List, Range), cookie)
|
|
return GlxDeleteListsCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxDeleteListsChecked(ContextTag GlxContextTag, List uint32, Range int32) GlxDeleteListsCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxDeleteListsRequest(ContextTag, List, Range), cookie)
|
|
return GlxDeleteListsCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxDeleteListsCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxDeleteLists
|
|
func (c *Conn) glxDeleteListsRequest(ContextTag GlxContextTag, List uint32, Range int32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 103 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], List)
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Range))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGenLists
|
|
// size: 12
|
|
type GlxGenListsCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGenLists(ContextTag GlxContextTag, Range int32) GlxGenListsCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGenListsRequest(ContextTag, Range), cookie)
|
|
return GlxGenListsCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGenListsUnchecked(ContextTag GlxContextTag, Range int32) GlxGenListsCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGenListsRequest(ContextTag, Range), cookie)
|
|
return GlxGenListsCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGenLists
|
|
// size: 12
|
|
type GlxGenListsReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
RetVal uint32
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGenLists
|
|
func (cook GlxGenListsCookie) Reply() (*GlxGenListsReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGenListsReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGenLists
|
|
func glxGenListsReply(buf []byte) *GlxGenListsReply {
|
|
v := new(GlxGenListsReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
v.RetVal = Get32(buf[b:])
|
|
b += 4
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGenListsCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGenLists
|
|
func (c *Conn) glxGenListsRequest(ContextTag GlxContextTag, Range int32) []byte {
|
|
size := 12
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 104 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Range))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxFeedbackBuffer
|
|
// size: 16
|
|
type GlxFeedbackBufferCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxFeedbackBuffer
|
|
func (c *Conn) GlxFeedbackBuffer(ContextTag GlxContextTag, Size int32, Type int32) GlxFeedbackBufferCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxFeedbackBufferRequest(ContextTag, Size, Type), cookie)
|
|
return GlxFeedbackBufferCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxFeedbackBufferChecked(ContextTag GlxContextTag, Size int32, Type int32) GlxFeedbackBufferCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxFeedbackBufferRequest(ContextTag, Size, Type), cookie)
|
|
return GlxFeedbackBufferCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxFeedbackBufferCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxFeedbackBuffer
|
|
func (c *Conn) glxFeedbackBufferRequest(ContextTag GlxContextTag, Size int32, Type int32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 105 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Size))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Type))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxSelectBuffer
|
|
// size: 12
|
|
type GlxSelectBufferCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxSelectBuffer
|
|
func (c *Conn) GlxSelectBuffer(ContextTag GlxContextTag, Size int32) GlxSelectBufferCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxSelectBufferRequest(ContextTag, Size), cookie)
|
|
return GlxSelectBufferCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxSelectBufferChecked(ContextTag GlxContextTag, Size int32) GlxSelectBufferCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxSelectBufferRequest(ContextTag, Size), cookie)
|
|
return GlxSelectBufferCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxSelectBufferCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxSelectBuffer
|
|
func (c *Conn) glxSelectBufferRequest(ContextTag GlxContextTag, Size int32) []byte {
|
|
size := 12
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 106 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Size))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxRenderMode
|
|
// size: 12
|
|
type GlxRenderModeCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxRenderMode(ContextTag GlxContextTag, Mode uint32) GlxRenderModeCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxRenderModeRequest(ContextTag, Mode), cookie)
|
|
return GlxRenderModeCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxRenderModeUnchecked(ContextTag GlxContextTag, Mode uint32) GlxRenderModeCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxRenderModeRequest(ContextTag, Mode), cookie)
|
|
return GlxRenderModeCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxRenderMode
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxRenderModeReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
RetVal uint32
|
|
N uint32
|
|
NewMode uint32
|
|
// padding: 12 bytes
|
|
Data []uint32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxRenderMode
|
|
func (cook GlxRenderModeCookie) Reply() (*GlxRenderModeReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxRenderModeReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxRenderMode
|
|
func glxRenderModeReply(buf []byte) *GlxRenderModeReply {
|
|
v := new(GlxRenderModeReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
v.RetVal = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.NewMode = Get32(buf[b:])
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]uint32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = Get32(buf[b:])
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxRenderModeCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxRenderMode
|
|
func (c *Conn) glxRenderModeRequest(ContextTag GlxContextTag, Mode uint32) []byte {
|
|
size := 12
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 107 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Mode)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxFinish
|
|
// size: 8
|
|
type GlxFinishCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxFinish(ContextTag GlxContextTag) GlxFinishCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxFinishRequest(ContextTag), cookie)
|
|
return GlxFinishCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxFinishUnchecked(ContextTag GlxContextTag) GlxFinishCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxFinishRequest(ContextTag), cookie)
|
|
return GlxFinishCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxFinish
|
|
// size: 8
|
|
type GlxFinishReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxFinish
|
|
func (cook GlxFinishCookie) Reply() (*GlxFinishReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxFinishReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxFinish
|
|
func glxFinishReply(buf []byte) *GlxFinishReply {
|
|
v := new(GlxFinishReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxFinishCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxFinish
|
|
func (c *Conn) glxFinishRequest(ContextTag GlxContextTag) []byte {
|
|
size := 8
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 108 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxPixelStoref
|
|
// size: 16
|
|
type GlxPixelStorefCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxPixelStoref
|
|
func (c *Conn) GlxPixelStoref(ContextTag GlxContextTag, Pname uint32, Datum GlxFloat32) GlxPixelStorefCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxPixelStorefRequest(ContextTag, Pname, Datum), cookie)
|
|
return GlxPixelStorefCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxPixelStorefChecked(ContextTag GlxContextTag, Pname uint32, Datum GlxFloat32) GlxPixelStorefCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxPixelStorefRequest(ContextTag, Pname, Datum), cookie)
|
|
return GlxPixelStorefCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxPixelStorefCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxPixelStoref
|
|
func (c *Conn) glxPixelStorefRequest(ContextTag GlxContextTag, Pname uint32, Datum GlxFloat32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 109 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Datum))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxPixelStorei
|
|
// size: 16
|
|
type GlxPixelStoreiCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxPixelStorei
|
|
func (c *Conn) GlxPixelStorei(ContextTag GlxContextTag, Pname uint32, Datum int32) GlxPixelStoreiCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxPixelStoreiRequest(ContextTag, Pname, Datum), cookie)
|
|
return GlxPixelStoreiCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxPixelStoreiChecked(ContextTag GlxContextTag, Pname uint32, Datum int32) GlxPixelStoreiCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxPixelStoreiRequest(ContextTag, Pname, Datum), cookie)
|
|
return GlxPixelStoreiCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxPixelStoreiCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxPixelStorei
|
|
func (c *Conn) glxPixelStoreiRequest(ContextTag GlxContextTag, Pname uint32, Datum int32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 110 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Datum))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxReadPixels
|
|
// size: 36
|
|
type GlxReadPixelsCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxReadPixels(ContextTag GlxContextTag, X int32, Y int32, Width int32, Height int32, Format uint32, Type uint32, SwapBytes bool, LsbFirst bool) GlxReadPixelsCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxReadPixelsRequest(ContextTag, X, Y, Width, Height, Format, Type, SwapBytes, LsbFirst), cookie)
|
|
return GlxReadPixelsCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxReadPixelsUnchecked(ContextTag GlxContextTag, X int32, Y int32, Width int32, Height int32, Format uint32, Type uint32, SwapBytes bool, LsbFirst bool) GlxReadPixelsCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxReadPixelsRequest(ContextTag, X, Y, Width, Height, Format, Type, SwapBytes, LsbFirst), cookie)
|
|
return GlxReadPixelsCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxReadPixels
|
|
// size: (32 + pad(((int(Length) * 4) * 1)))
|
|
type GlxReadPixelsReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 24 bytes
|
|
Data []byte // size: pad(((int(Length) * 4) * 1))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxReadPixels
|
|
func (cook GlxReadPixelsCookie) Reply() (*GlxReadPixelsReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxReadPixelsReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxReadPixels
|
|
func glxReadPixelsReply(buf []byte) *GlxReadPixelsReply {
|
|
v := new(GlxReadPixelsReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 24 // padding
|
|
|
|
v.Data = make([]byte, (int(v.Length) * 4))
|
|
copy(v.Data[:(int(v.Length)*4)], buf[b:])
|
|
b += pad(int((int(v.Length) * 4)))
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxReadPixelsCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxReadPixels
|
|
func (c *Conn) glxReadPixelsRequest(ContextTag GlxContextTag, X int32, Y int32, Width int32, Height int32, Format uint32, Type uint32, SwapBytes bool, LsbFirst bool) []byte {
|
|
size := 36
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 111 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(X))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Y))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Width))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Height))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Format)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Type)
|
|
b += 4
|
|
|
|
if SwapBytes {
|
|
buf[b] = 1
|
|
} else {
|
|
buf[b] = 0
|
|
}
|
|
b += 1
|
|
|
|
if LsbFirst {
|
|
buf[b] = 1
|
|
} else {
|
|
buf[b] = 0
|
|
}
|
|
b += 1
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetBooleanv
|
|
// size: 12
|
|
type GlxGetBooleanvCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetBooleanv(ContextTag GlxContextTag, Pname int32) GlxGetBooleanvCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetBooleanvRequest(ContextTag, Pname), cookie)
|
|
return GlxGetBooleanvCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetBooleanvUnchecked(ContextTag GlxContextTag, Pname int32) GlxGetBooleanvCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetBooleanvRequest(ContextTag, Pname), cookie)
|
|
return GlxGetBooleanvCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetBooleanv
|
|
// size: (32 + pad((int(N) * 1)))
|
|
type GlxGetBooleanvReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum bool
|
|
// padding: 15 bytes
|
|
Data []bool // size: pad((int(N) * 1))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetBooleanv
|
|
func (cook GlxGetBooleanvCookie) Reply() (*GlxGetBooleanvReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetBooleanvReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetBooleanv
|
|
func glxGetBooleanvReply(buf []byte) *GlxGetBooleanvReply {
|
|
v := new(GlxGetBooleanvReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
if buf[b] == 1 {
|
|
v.Datum = true
|
|
} else {
|
|
v.Datum = false
|
|
}
|
|
b += 1
|
|
|
|
b += 15 // padding
|
|
|
|
v.Data = make([]bool, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
if buf[b] == 1 {
|
|
v.Data[i] = true
|
|
} else {
|
|
v.Data[i] = false
|
|
}
|
|
b += 1
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetBooleanvCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetBooleanv
|
|
func (c *Conn) glxGetBooleanvRequest(ContextTag GlxContextTag, Pname int32) []byte {
|
|
size := 12
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 112 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Pname))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetClipPlane
|
|
// size: 12
|
|
type GlxGetClipPlaneCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetClipPlane(ContextTag GlxContextTag, Plane int32) GlxGetClipPlaneCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetClipPlaneRequest(ContextTag, Plane), cookie)
|
|
return GlxGetClipPlaneCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetClipPlaneUnchecked(ContextTag GlxContextTag, Plane int32) GlxGetClipPlaneCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetClipPlaneRequest(ContextTag, Plane), cookie)
|
|
return GlxGetClipPlaneCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetClipPlane
|
|
// size: (32 + pad(((int(Length) / 2) * 8)))
|
|
type GlxGetClipPlaneReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 24 bytes
|
|
Data []GlxFloat64 // size: pad(((int(Length) / 2) * 8))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetClipPlane
|
|
func (cook GlxGetClipPlaneCookie) Reply() (*GlxGetClipPlaneReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetClipPlaneReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetClipPlane
|
|
func glxGetClipPlaneReply(buf []byte) *GlxGetClipPlaneReply {
|
|
v := new(GlxGetClipPlaneReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 24 // padding
|
|
|
|
v.Data = make([]GlxFloat64, (int(v.Length) / 2))
|
|
for i := 0; i < int((int(v.Length) / 2)); i++ {
|
|
v.Data[i] = GlxFloat64(Get64(buf[b:]))
|
|
b += 8
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetClipPlaneCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetClipPlane
|
|
func (c *Conn) glxGetClipPlaneRequest(ContextTag GlxContextTag, Plane int32) []byte {
|
|
size := 12
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 113 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Plane))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetDoublev
|
|
// size: 12
|
|
type GlxGetDoublevCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetDoublev(ContextTag GlxContextTag, Pname uint32) GlxGetDoublevCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetDoublevRequest(ContextTag, Pname), cookie)
|
|
return GlxGetDoublevCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetDoublevUnchecked(ContextTag GlxContextTag, Pname uint32) GlxGetDoublevCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetDoublevRequest(ContextTag, Pname), cookie)
|
|
return GlxGetDoublevCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetDoublev
|
|
// size: (32 + pad((int(N) * 8)))
|
|
type GlxGetDoublevReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum GlxFloat64
|
|
// padding: 8 bytes
|
|
Data []GlxFloat64 // size: pad((int(N) * 8))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetDoublev
|
|
func (cook GlxGetDoublevCookie) Reply() (*GlxGetDoublevReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetDoublevReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetDoublev
|
|
func glxGetDoublevReply(buf []byte) *GlxGetDoublevReply {
|
|
v := new(GlxGetDoublevReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = GlxFloat64(Get64(buf[b:]))
|
|
b += 8
|
|
|
|
b += 8 // padding
|
|
|
|
v.Data = make([]GlxFloat64, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = GlxFloat64(Get64(buf[b:]))
|
|
b += 8
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetDoublevCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetDoublev
|
|
func (c *Conn) glxGetDoublevRequest(ContextTag GlxContextTag, Pname uint32) []byte {
|
|
size := 12
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 114 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetError
|
|
// size: 8
|
|
type GlxGetErrorCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetError(ContextTag GlxContextTag) GlxGetErrorCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetErrorRequest(ContextTag), cookie)
|
|
return GlxGetErrorCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetErrorUnchecked(ContextTag GlxContextTag) GlxGetErrorCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetErrorRequest(ContextTag), cookie)
|
|
return GlxGetErrorCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetError
|
|
// size: 12
|
|
type GlxGetErrorReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
Error int32
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetError
|
|
func (cook GlxGetErrorCookie) Reply() (*GlxGetErrorReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetErrorReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetError
|
|
func glxGetErrorReply(buf []byte) *GlxGetErrorReply {
|
|
v := new(GlxGetErrorReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
v.Error = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetErrorCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetError
|
|
func (c *Conn) glxGetErrorRequest(ContextTag GlxContextTag) []byte {
|
|
size := 8
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 115 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetFloatv
|
|
// size: 12
|
|
type GlxGetFloatvCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetFloatv(ContextTag GlxContextTag, Pname uint32) GlxGetFloatvCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetFloatvRequest(ContextTag, Pname), cookie)
|
|
return GlxGetFloatvCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetFloatvUnchecked(ContextTag GlxContextTag, Pname uint32) GlxGetFloatvCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetFloatvRequest(ContextTag, Pname), cookie)
|
|
return GlxGetFloatvCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetFloatv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetFloatvReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum GlxFloat32
|
|
// padding: 12 bytes
|
|
Data []GlxFloat32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetFloatv
|
|
func (cook GlxGetFloatvCookie) Reply() (*GlxGetFloatvReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetFloatvReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetFloatv
|
|
func glxGetFloatvReply(buf []byte) *GlxGetFloatvReply {
|
|
v := new(GlxGetFloatvReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]GlxFloat32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetFloatvCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetFloatv
|
|
func (c *Conn) glxGetFloatvRequest(ContextTag GlxContextTag, Pname uint32) []byte {
|
|
size := 12
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 116 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetIntegerv
|
|
// size: 12
|
|
type GlxGetIntegervCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetIntegerv(ContextTag GlxContextTag, Pname uint32) GlxGetIntegervCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetIntegervRequest(ContextTag, Pname), cookie)
|
|
return GlxGetIntegervCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetIntegervUnchecked(ContextTag GlxContextTag, Pname uint32) GlxGetIntegervCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetIntegervRequest(ContextTag, Pname), cookie)
|
|
return GlxGetIntegervCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetIntegerv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetIntegervReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum int32
|
|
// padding: 12 bytes
|
|
Data []int32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetIntegerv
|
|
func (cook GlxGetIntegervCookie) Reply() (*GlxGetIntegervReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetIntegervReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetIntegerv
|
|
func glxGetIntegervReply(buf []byte) *GlxGetIntegervReply {
|
|
v := new(GlxGetIntegervReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]int32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = int32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetIntegervCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetIntegerv
|
|
func (c *Conn) glxGetIntegervRequest(ContextTag GlxContextTag, Pname uint32) []byte {
|
|
size := 12
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 117 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetLightfv
|
|
// size: 16
|
|
type GlxGetLightfvCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetLightfv(ContextTag GlxContextTag, Light uint32, Pname uint32) GlxGetLightfvCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetLightfvRequest(ContextTag, Light, Pname), cookie)
|
|
return GlxGetLightfvCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetLightfvUnchecked(ContextTag GlxContextTag, Light uint32, Pname uint32) GlxGetLightfvCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetLightfvRequest(ContextTag, Light, Pname), cookie)
|
|
return GlxGetLightfvCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetLightfv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetLightfvReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum GlxFloat32
|
|
// padding: 12 bytes
|
|
Data []GlxFloat32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetLightfv
|
|
func (cook GlxGetLightfvCookie) Reply() (*GlxGetLightfvReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetLightfvReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetLightfv
|
|
func glxGetLightfvReply(buf []byte) *GlxGetLightfvReply {
|
|
v := new(GlxGetLightfvReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]GlxFloat32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetLightfvCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetLightfv
|
|
func (c *Conn) glxGetLightfvRequest(ContextTag GlxContextTag, Light uint32, Pname uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 118 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Light)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetLightiv
|
|
// size: 16
|
|
type GlxGetLightivCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetLightiv(ContextTag GlxContextTag, Light uint32, Pname uint32) GlxGetLightivCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetLightivRequest(ContextTag, Light, Pname), cookie)
|
|
return GlxGetLightivCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetLightivUnchecked(ContextTag GlxContextTag, Light uint32, Pname uint32) GlxGetLightivCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetLightivRequest(ContextTag, Light, Pname), cookie)
|
|
return GlxGetLightivCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetLightiv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetLightivReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum int32
|
|
// padding: 12 bytes
|
|
Data []int32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetLightiv
|
|
func (cook GlxGetLightivCookie) Reply() (*GlxGetLightivReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetLightivReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetLightiv
|
|
func glxGetLightivReply(buf []byte) *GlxGetLightivReply {
|
|
v := new(GlxGetLightivReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]int32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = int32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetLightivCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetLightiv
|
|
func (c *Conn) glxGetLightivRequest(ContextTag GlxContextTag, Light uint32, Pname uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 119 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Light)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetMapdv
|
|
// size: 16
|
|
type GlxGetMapdvCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetMapdv(ContextTag GlxContextTag, Target uint32, Query uint32) GlxGetMapdvCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetMapdvRequest(ContextTag, Target, Query), cookie)
|
|
return GlxGetMapdvCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetMapdvUnchecked(ContextTag GlxContextTag, Target uint32, Query uint32) GlxGetMapdvCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetMapdvRequest(ContextTag, Target, Query), cookie)
|
|
return GlxGetMapdvCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetMapdv
|
|
// size: (32 + pad((int(N) * 8)))
|
|
type GlxGetMapdvReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum GlxFloat64
|
|
// padding: 8 bytes
|
|
Data []GlxFloat64 // size: pad((int(N) * 8))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetMapdv
|
|
func (cook GlxGetMapdvCookie) Reply() (*GlxGetMapdvReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetMapdvReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetMapdv
|
|
func glxGetMapdvReply(buf []byte) *GlxGetMapdvReply {
|
|
v := new(GlxGetMapdvReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = GlxFloat64(Get64(buf[b:]))
|
|
b += 8
|
|
|
|
b += 8 // padding
|
|
|
|
v.Data = make([]GlxFloat64, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = GlxFloat64(Get64(buf[b:]))
|
|
b += 8
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetMapdvCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetMapdv
|
|
func (c *Conn) glxGetMapdvRequest(ContextTag GlxContextTag, Target uint32, Query uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 120 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Query)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetMapfv
|
|
// size: 16
|
|
type GlxGetMapfvCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetMapfv(ContextTag GlxContextTag, Target uint32, Query uint32) GlxGetMapfvCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetMapfvRequest(ContextTag, Target, Query), cookie)
|
|
return GlxGetMapfvCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetMapfvUnchecked(ContextTag GlxContextTag, Target uint32, Query uint32) GlxGetMapfvCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetMapfvRequest(ContextTag, Target, Query), cookie)
|
|
return GlxGetMapfvCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetMapfv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetMapfvReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum GlxFloat32
|
|
// padding: 12 bytes
|
|
Data []GlxFloat32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetMapfv
|
|
func (cook GlxGetMapfvCookie) Reply() (*GlxGetMapfvReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetMapfvReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetMapfv
|
|
func glxGetMapfvReply(buf []byte) *GlxGetMapfvReply {
|
|
v := new(GlxGetMapfvReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]GlxFloat32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetMapfvCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetMapfv
|
|
func (c *Conn) glxGetMapfvRequest(ContextTag GlxContextTag, Target uint32, Query uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 121 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Query)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetMapiv
|
|
// size: 16
|
|
type GlxGetMapivCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetMapiv(ContextTag GlxContextTag, Target uint32, Query uint32) GlxGetMapivCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetMapivRequest(ContextTag, Target, Query), cookie)
|
|
return GlxGetMapivCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetMapivUnchecked(ContextTag GlxContextTag, Target uint32, Query uint32) GlxGetMapivCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetMapivRequest(ContextTag, Target, Query), cookie)
|
|
return GlxGetMapivCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetMapiv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetMapivReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum int32
|
|
// padding: 12 bytes
|
|
Data []int32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetMapiv
|
|
func (cook GlxGetMapivCookie) Reply() (*GlxGetMapivReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetMapivReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetMapiv
|
|
func glxGetMapivReply(buf []byte) *GlxGetMapivReply {
|
|
v := new(GlxGetMapivReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]int32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = int32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetMapivCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetMapiv
|
|
func (c *Conn) glxGetMapivRequest(ContextTag GlxContextTag, Target uint32, Query uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 122 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Query)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetMaterialfv
|
|
// size: 16
|
|
type GlxGetMaterialfvCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetMaterialfv(ContextTag GlxContextTag, Face uint32, Pname uint32) GlxGetMaterialfvCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetMaterialfvRequest(ContextTag, Face, Pname), cookie)
|
|
return GlxGetMaterialfvCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetMaterialfvUnchecked(ContextTag GlxContextTag, Face uint32, Pname uint32) GlxGetMaterialfvCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetMaterialfvRequest(ContextTag, Face, Pname), cookie)
|
|
return GlxGetMaterialfvCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetMaterialfv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetMaterialfvReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum GlxFloat32
|
|
// padding: 12 bytes
|
|
Data []GlxFloat32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetMaterialfv
|
|
func (cook GlxGetMaterialfvCookie) Reply() (*GlxGetMaterialfvReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetMaterialfvReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetMaterialfv
|
|
func glxGetMaterialfvReply(buf []byte) *GlxGetMaterialfvReply {
|
|
v := new(GlxGetMaterialfvReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]GlxFloat32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetMaterialfvCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetMaterialfv
|
|
func (c *Conn) glxGetMaterialfvRequest(ContextTag GlxContextTag, Face uint32, Pname uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 123 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Face)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetMaterialiv
|
|
// size: 16
|
|
type GlxGetMaterialivCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetMaterialiv(ContextTag GlxContextTag, Face uint32, Pname uint32) GlxGetMaterialivCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetMaterialivRequest(ContextTag, Face, Pname), cookie)
|
|
return GlxGetMaterialivCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetMaterialivUnchecked(ContextTag GlxContextTag, Face uint32, Pname uint32) GlxGetMaterialivCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetMaterialivRequest(ContextTag, Face, Pname), cookie)
|
|
return GlxGetMaterialivCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetMaterialiv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetMaterialivReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum int32
|
|
// padding: 12 bytes
|
|
Data []int32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetMaterialiv
|
|
func (cook GlxGetMaterialivCookie) Reply() (*GlxGetMaterialivReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetMaterialivReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetMaterialiv
|
|
func glxGetMaterialivReply(buf []byte) *GlxGetMaterialivReply {
|
|
v := new(GlxGetMaterialivReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]int32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = int32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetMaterialivCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetMaterialiv
|
|
func (c *Conn) glxGetMaterialivRequest(ContextTag GlxContextTag, Face uint32, Pname uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 124 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Face)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetPixelMapfv
|
|
// size: 12
|
|
type GlxGetPixelMapfvCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetPixelMapfv(ContextTag GlxContextTag, Map uint32) GlxGetPixelMapfvCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetPixelMapfvRequest(ContextTag, Map), cookie)
|
|
return GlxGetPixelMapfvCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetPixelMapfvUnchecked(ContextTag GlxContextTag, Map uint32) GlxGetPixelMapfvCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetPixelMapfvRequest(ContextTag, Map), cookie)
|
|
return GlxGetPixelMapfvCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetPixelMapfv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetPixelMapfvReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum GlxFloat32
|
|
// padding: 12 bytes
|
|
Data []GlxFloat32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetPixelMapfv
|
|
func (cook GlxGetPixelMapfvCookie) Reply() (*GlxGetPixelMapfvReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetPixelMapfvReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetPixelMapfv
|
|
func glxGetPixelMapfvReply(buf []byte) *GlxGetPixelMapfvReply {
|
|
v := new(GlxGetPixelMapfvReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]GlxFloat32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetPixelMapfvCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetPixelMapfv
|
|
func (c *Conn) glxGetPixelMapfvRequest(ContextTag GlxContextTag, Map uint32) []byte {
|
|
size := 12
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 125 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Map)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetPixelMapuiv
|
|
// size: 12
|
|
type GlxGetPixelMapuivCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetPixelMapuiv(ContextTag GlxContextTag, Map uint32) GlxGetPixelMapuivCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetPixelMapuivRequest(ContextTag, Map), cookie)
|
|
return GlxGetPixelMapuivCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetPixelMapuivUnchecked(ContextTag GlxContextTag, Map uint32) GlxGetPixelMapuivCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetPixelMapuivRequest(ContextTag, Map), cookie)
|
|
return GlxGetPixelMapuivCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetPixelMapuiv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetPixelMapuivReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum uint32
|
|
// padding: 12 bytes
|
|
Data []uint32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetPixelMapuiv
|
|
func (cook GlxGetPixelMapuivCookie) Reply() (*GlxGetPixelMapuivReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetPixelMapuivReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetPixelMapuiv
|
|
func glxGetPixelMapuivReply(buf []byte) *GlxGetPixelMapuivReply {
|
|
v := new(GlxGetPixelMapuivReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = Get32(buf[b:])
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]uint32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = Get32(buf[b:])
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetPixelMapuivCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetPixelMapuiv
|
|
func (c *Conn) glxGetPixelMapuivRequest(ContextTag GlxContextTag, Map uint32) []byte {
|
|
size := 12
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 126 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Map)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetPixelMapusv
|
|
// size: 12
|
|
type GlxGetPixelMapusvCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetPixelMapusv(ContextTag GlxContextTag, Map uint32) GlxGetPixelMapusvCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetPixelMapusvRequest(ContextTag, Map), cookie)
|
|
return GlxGetPixelMapusvCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetPixelMapusvUnchecked(ContextTag GlxContextTag, Map uint32) GlxGetPixelMapusvCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetPixelMapusvRequest(ContextTag, Map), cookie)
|
|
return GlxGetPixelMapusvCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetPixelMapusv
|
|
// size: (34 + pad((int(N) * 2)))
|
|
type GlxGetPixelMapusvReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum uint16
|
|
// padding: 16 bytes
|
|
Data []uint16 // size: pad((int(N) * 2))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetPixelMapusv
|
|
func (cook GlxGetPixelMapusvCookie) Reply() (*GlxGetPixelMapusvReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetPixelMapusvReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetPixelMapusv
|
|
func glxGetPixelMapusvReply(buf []byte) *GlxGetPixelMapusvReply {
|
|
v := new(GlxGetPixelMapusvReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = Get16(buf[b:])
|
|
b += 2
|
|
|
|
b += 16 // padding
|
|
|
|
v.Data = make([]uint16, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = Get16(buf[b:])
|
|
b += 2
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetPixelMapusvCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetPixelMapusv
|
|
func (c *Conn) glxGetPixelMapusvRequest(ContextTag GlxContextTag, Map uint32) []byte {
|
|
size := 12
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 127 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Map)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetPolygonStipple
|
|
// size: 12
|
|
type GlxGetPolygonStippleCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetPolygonStipple(ContextTag GlxContextTag, LsbFirst bool) GlxGetPolygonStippleCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetPolygonStippleRequest(ContextTag, LsbFirst), cookie)
|
|
return GlxGetPolygonStippleCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetPolygonStippleUnchecked(ContextTag GlxContextTag, LsbFirst bool) GlxGetPolygonStippleCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetPolygonStippleRequest(ContextTag, LsbFirst), cookie)
|
|
return GlxGetPolygonStippleCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetPolygonStipple
|
|
// size: (32 + pad(((int(Length) * 4) * 1)))
|
|
type GlxGetPolygonStippleReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 24 bytes
|
|
Data []byte // size: pad(((int(Length) * 4) * 1))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetPolygonStipple
|
|
func (cook GlxGetPolygonStippleCookie) Reply() (*GlxGetPolygonStippleReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetPolygonStippleReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetPolygonStipple
|
|
func glxGetPolygonStippleReply(buf []byte) *GlxGetPolygonStippleReply {
|
|
v := new(GlxGetPolygonStippleReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 24 // padding
|
|
|
|
v.Data = make([]byte, (int(v.Length) * 4))
|
|
copy(v.Data[:(int(v.Length)*4)], buf[b:])
|
|
b += pad(int((int(v.Length) * 4)))
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetPolygonStippleCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetPolygonStipple
|
|
func (c *Conn) glxGetPolygonStippleRequest(ContextTag GlxContextTag, LsbFirst bool) []byte {
|
|
size := 12
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 128 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
if LsbFirst {
|
|
buf[b] = 1
|
|
} else {
|
|
buf[b] = 0
|
|
}
|
|
b += 1
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetString
|
|
// size: 12
|
|
type GlxGetStringCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetString(ContextTag GlxContextTag, Name uint32) GlxGetStringCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetStringRequest(ContextTag, Name), cookie)
|
|
return GlxGetStringCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetStringUnchecked(ContextTag GlxContextTag, Name uint32) GlxGetStringCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetStringRequest(ContextTag, Name), cookie)
|
|
return GlxGetStringCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetString
|
|
// size: (32 + pad((int(N) * 1)))
|
|
type GlxGetStringReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
// padding: 16 bytes
|
|
String string // size: pad((int(N) * 1))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetString
|
|
func (cook GlxGetStringCookie) Reply() (*GlxGetStringReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetStringReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetString
|
|
func glxGetStringReply(buf []byte) *GlxGetStringReply {
|
|
v := new(GlxGetStringReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
b += 16 // padding
|
|
|
|
{
|
|
byteString := make([]byte, v.N)
|
|
copy(byteString[:v.N], buf[b:])
|
|
v.String = string(byteString)
|
|
b += pad(int(v.N))
|
|
}
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetStringCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetString
|
|
func (c *Conn) glxGetStringRequest(ContextTag GlxContextTag, Name uint32) []byte {
|
|
size := 12
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 129 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Name)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetTexEnvfv
|
|
// size: 16
|
|
type GlxGetTexEnvfvCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetTexEnvfv(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetTexEnvfvCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetTexEnvfvRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetTexEnvfvCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetTexEnvfvUnchecked(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetTexEnvfvCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetTexEnvfvRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetTexEnvfvCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetTexEnvfv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetTexEnvfvReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum GlxFloat32
|
|
// padding: 12 bytes
|
|
Data []GlxFloat32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetTexEnvfv
|
|
func (cook GlxGetTexEnvfvCookie) Reply() (*GlxGetTexEnvfvReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetTexEnvfvReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetTexEnvfv
|
|
func glxGetTexEnvfvReply(buf []byte) *GlxGetTexEnvfvReply {
|
|
v := new(GlxGetTexEnvfvReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]GlxFloat32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetTexEnvfvCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetTexEnvfv
|
|
func (c *Conn) glxGetTexEnvfvRequest(ContextTag GlxContextTag, Target uint32, Pname uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 130 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetTexEnviv
|
|
// size: 16
|
|
type GlxGetTexEnvivCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetTexEnviv(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetTexEnvivCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetTexEnvivRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetTexEnvivCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetTexEnvivUnchecked(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetTexEnvivCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetTexEnvivRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetTexEnvivCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetTexEnviv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetTexEnvivReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum int32
|
|
// padding: 12 bytes
|
|
Data []int32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetTexEnviv
|
|
func (cook GlxGetTexEnvivCookie) Reply() (*GlxGetTexEnvivReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetTexEnvivReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetTexEnviv
|
|
func glxGetTexEnvivReply(buf []byte) *GlxGetTexEnvivReply {
|
|
v := new(GlxGetTexEnvivReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]int32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = int32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetTexEnvivCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetTexEnviv
|
|
func (c *Conn) glxGetTexEnvivRequest(ContextTag GlxContextTag, Target uint32, Pname uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 131 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetTexGendv
|
|
// size: 16
|
|
type GlxGetTexGendvCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetTexGendv(ContextTag GlxContextTag, Coord uint32, Pname uint32) GlxGetTexGendvCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetTexGendvRequest(ContextTag, Coord, Pname), cookie)
|
|
return GlxGetTexGendvCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetTexGendvUnchecked(ContextTag GlxContextTag, Coord uint32, Pname uint32) GlxGetTexGendvCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetTexGendvRequest(ContextTag, Coord, Pname), cookie)
|
|
return GlxGetTexGendvCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetTexGendv
|
|
// size: (32 + pad((int(N) * 8)))
|
|
type GlxGetTexGendvReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum GlxFloat64
|
|
// padding: 8 bytes
|
|
Data []GlxFloat64 // size: pad((int(N) * 8))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetTexGendv
|
|
func (cook GlxGetTexGendvCookie) Reply() (*GlxGetTexGendvReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetTexGendvReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetTexGendv
|
|
func glxGetTexGendvReply(buf []byte) *GlxGetTexGendvReply {
|
|
v := new(GlxGetTexGendvReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = GlxFloat64(Get64(buf[b:]))
|
|
b += 8
|
|
|
|
b += 8 // padding
|
|
|
|
v.Data = make([]GlxFloat64, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = GlxFloat64(Get64(buf[b:]))
|
|
b += 8
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetTexGendvCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetTexGendv
|
|
func (c *Conn) glxGetTexGendvRequest(ContextTag GlxContextTag, Coord uint32, Pname uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 132 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Coord)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetTexGenfv
|
|
// size: 16
|
|
type GlxGetTexGenfvCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetTexGenfv(ContextTag GlxContextTag, Coord uint32, Pname uint32) GlxGetTexGenfvCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetTexGenfvRequest(ContextTag, Coord, Pname), cookie)
|
|
return GlxGetTexGenfvCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetTexGenfvUnchecked(ContextTag GlxContextTag, Coord uint32, Pname uint32) GlxGetTexGenfvCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetTexGenfvRequest(ContextTag, Coord, Pname), cookie)
|
|
return GlxGetTexGenfvCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetTexGenfv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetTexGenfvReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum GlxFloat32
|
|
// padding: 12 bytes
|
|
Data []GlxFloat32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetTexGenfv
|
|
func (cook GlxGetTexGenfvCookie) Reply() (*GlxGetTexGenfvReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetTexGenfvReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetTexGenfv
|
|
func glxGetTexGenfvReply(buf []byte) *GlxGetTexGenfvReply {
|
|
v := new(GlxGetTexGenfvReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]GlxFloat32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetTexGenfvCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetTexGenfv
|
|
func (c *Conn) glxGetTexGenfvRequest(ContextTag GlxContextTag, Coord uint32, Pname uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 133 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Coord)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetTexGeniv
|
|
// size: 16
|
|
type GlxGetTexGenivCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetTexGeniv(ContextTag GlxContextTag, Coord uint32, Pname uint32) GlxGetTexGenivCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetTexGenivRequest(ContextTag, Coord, Pname), cookie)
|
|
return GlxGetTexGenivCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetTexGenivUnchecked(ContextTag GlxContextTag, Coord uint32, Pname uint32) GlxGetTexGenivCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetTexGenivRequest(ContextTag, Coord, Pname), cookie)
|
|
return GlxGetTexGenivCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetTexGeniv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetTexGenivReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum int32
|
|
// padding: 12 bytes
|
|
Data []int32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetTexGeniv
|
|
func (cook GlxGetTexGenivCookie) Reply() (*GlxGetTexGenivReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetTexGenivReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetTexGeniv
|
|
func glxGetTexGenivReply(buf []byte) *GlxGetTexGenivReply {
|
|
v := new(GlxGetTexGenivReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]int32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = int32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetTexGenivCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetTexGeniv
|
|
func (c *Conn) glxGetTexGenivRequest(ContextTag GlxContextTag, Coord uint32, Pname uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 134 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Coord)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetTexImage
|
|
// size: 28
|
|
type GlxGetTexImageCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetTexImage(ContextTag GlxContextTag, Target uint32, Level int32, Format uint32, Type uint32, SwapBytes bool) GlxGetTexImageCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetTexImageRequest(ContextTag, Target, Level, Format, Type, SwapBytes), cookie)
|
|
return GlxGetTexImageCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetTexImageUnchecked(ContextTag GlxContextTag, Target uint32, Level int32, Format uint32, Type uint32, SwapBytes bool) GlxGetTexImageCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetTexImageRequest(ContextTag, Target, Level, Format, Type, SwapBytes), cookie)
|
|
return GlxGetTexImageCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetTexImage
|
|
// size: (32 + pad(((int(Length) * 4) * 1)))
|
|
type GlxGetTexImageReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 8 bytes
|
|
Width int32
|
|
Height int32
|
|
Depth int32
|
|
// padding: 4 bytes
|
|
Data []byte // size: pad(((int(Length) * 4) * 1))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetTexImage
|
|
func (cook GlxGetTexImageCookie) Reply() (*GlxGetTexImageReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetTexImageReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetTexImage
|
|
func glxGetTexImageReply(buf []byte) *GlxGetTexImageReply {
|
|
v := new(GlxGetTexImageReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 8 // padding
|
|
|
|
v.Width = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
v.Height = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
v.Depth = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.Data = make([]byte, (int(v.Length) * 4))
|
|
copy(v.Data[:(int(v.Length)*4)], buf[b:])
|
|
b += pad(int((int(v.Length) * 4)))
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetTexImageCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetTexImage
|
|
func (c *Conn) glxGetTexImageRequest(ContextTag GlxContextTag, Target uint32, Level int32, Format uint32, Type uint32, SwapBytes bool) []byte {
|
|
size := 28
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 135 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Level))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Format)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Type)
|
|
b += 4
|
|
|
|
if SwapBytes {
|
|
buf[b] = 1
|
|
} else {
|
|
buf[b] = 0
|
|
}
|
|
b += 1
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetTexParameterfv
|
|
// size: 16
|
|
type GlxGetTexParameterfvCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetTexParameterfv(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetTexParameterfvCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetTexParameterfvRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetTexParameterfvCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetTexParameterfvUnchecked(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetTexParameterfvCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetTexParameterfvRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetTexParameterfvCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetTexParameterfv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetTexParameterfvReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum GlxFloat32
|
|
// padding: 12 bytes
|
|
Data []GlxFloat32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetTexParameterfv
|
|
func (cook GlxGetTexParameterfvCookie) Reply() (*GlxGetTexParameterfvReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetTexParameterfvReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetTexParameterfv
|
|
func glxGetTexParameterfvReply(buf []byte) *GlxGetTexParameterfvReply {
|
|
v := new(GlxGetTexParameterfvReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]GlxFloat32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetTexParameterfvCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetTexParameterfv
|
|
func (c *Conn) glxGetTexParameterfvRequest(ContextTag GlxContextTag, Target uint32, Pname uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 136 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetTexParameteriv
|
|
// size: 16
|
|
type GlxGetTexParameterivCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetTexParameteriv(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetTexParameterivCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetTexParameterivRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetTexParameterivCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetTexParameterivUnchecked(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetTexParameterivCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetTexParameterivRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetTexParameterivCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetTexParameteriv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetTexParameterivReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum int32
|
|
// padding: 12 bytes
|
|
Data []int32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetTexParameteriv
|
|
func (cook GlxGetTexParameterivCookie) Reply() (*GlxGetTexParameterivReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetTexParameterivReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetTexParameteriv
|
|
func glxGetTexParameterivReply(buf []byte) *GlxGetTexParameterivReply {
|
|
v := new(GlxGetTexParameterivReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]int32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = int32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetTexParameterivCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetTexParameteriv
|
|
func (c *Conn) glxGetTexParameterivRequest(ContextTag GlxContextTag, Target uint32, Pname uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 137 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetTexLevelParameterfv
|
|
// size: 20
|
|
type GlxGetTexLevelParameterfvCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetTexLevelParameterfv(ContextTag GlxContextTag, Target uint32, Level int32, Pname uint32) GlxGetTexLevelParameterfvCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetTexLevelParameterfvRequest(ContextTag, Target, Level, Pname), cookie)
|
|
return GlxGetTexLevelParameterfvCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetTexLevelParameterfvUnchecked(ContextTag GlxContextTag, Target uint32, Level int32, Pname uint32) GlxGetTexLevelParameterfvCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetTexLevelParameterfvRequest(ContextTag, Target, Level, Pname), cookie)
|
|
return GlxGetTexLevelParameterfvCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetTexLevelParameterfv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetTexLevelParameterfvReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum GlxFloat32
|
|
// padding: 12 bytes
|
|
Data []GlxFloat32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetTexLevelParameterfv
|
|
func (cook GlxGetTexLevelParameterfvCookie) Reply() (*GlxGetTexLevelParameterfvReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetTexLevelParameterfvReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetTexLevelParameterfv
|
|
func glxGetTexLevelParameterfvReply(buf []byte) *GlxGetTexLevelParameterfvReply {
|
|
v := new(GlxGetTexLevelParameterfvReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]GlxFloat32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetTexLevelParameterfvCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetTexLevelParameterfv
|
|
func (c *Conn) glxGetTexLevelParameterfvRequest(ContextTag GlxContextTag, Target uint32, Level int32, Pname uint32) []byte {
|
|
size := 20
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 138 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Level))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetTexLevelParameteriv
|
|
// size: 20
|
|
type GlxGetTexLevelParameterivCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetTexLevelParameteriv(ContextTag GlxContextTag, Target uint32, Level int32, Pname uint32) GlxGetTexLevelParameterivCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetTexLevelParameterivRequest(ContextTag, Target, Level, Pname), cookie)
|
|
return GlxGetTexLevelParameterivCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetTexLevelParameterivUnchecked(ContextTag GlxContextTag, Target uint32, Level int32, Pname uint32) GlxGetTexLevelParameterivCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetTexLevelParameterivRequest(ContextTag, Target, Level, Pname), cookie)
|
|
return GlxGetTexLevelParameterivCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetTexLevelParameteriv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetTexLevelParameterivReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum int32
|
|
// padding: 12 bytes
|
|
Data []int32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetTexLevelParameteriv
|
|
func (cook GlxGetTexLevelParameterivCookie) Reply() (*GlxGetTexLevelParameterivReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetTexLevelParameterivReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetTexLevelParameteriv
|
|
func glxGetTexLevelParameterivReply(buf []byte) *GlxGetTexLevelParameterivReply {
|
|
v := new(GlxGetTexLevelParameterivReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]int32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = int32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetTexLevelParameterivCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetTexLevelParameteriv
|
|
func (c *Conn) glxGetTexLevelParameterivRequest(ContextTag GlxContextTag, Target uint32, Level int32, Pname uint32) []byte {
|
|
size := 20
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 139 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Level))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxIsList
|
|
// size: 12
|
|
type GlxIsListCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxIsList(ContextTag GlxContextTag, List uint32) GlxIsListCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxIsListRequest(ContextTag, List), cookie)
|
|
return GlxIsListCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxIsListUnchecked(ContextTag GlxContextTag, List uint32) GlxIsListCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxIsListRequest(ContextTag, List), cookie)
|
|
return GlxIsListCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxIsList
|
|
// size: 12
|
|
type GlxIsListReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
RetVal GlxBool32
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxIsList
|
|
func (cook GlxIsListCookie) Reply() (*GlxIsListReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxIsListReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxIsList
|
|
func glxIsListReply(buf []byte) *GlxIsListReply {
|
|
v := new(GlxIsListReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
v.RetVal = GlxBool32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxIsListCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxIsList
|
|
func (c *Conn) glxIsListRequest(ContextTag GlxContextTag, List uint32) []byte {
|
|
size := 12
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 141 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], List)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxFlush
|
|
// size: 8
|
|
type GlxFlushCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxFlush
|
|
func (c *Conn) GlxFlush(ContextTag GlxContextTag) GlxFlushCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxFlushRequest(ContextTag), cookie)
|
|
return GlxFlushCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxFlushChecked(ContextTag GlxContextTag) GlxFlushCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxFlushRequest(ContextTag), cookie)
|
|
return GlxFlushCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxFlushCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxFlush
|
|
func (c *Conn) glxFlushRequest(ContextTag GlxContextTag) []byte {
|
|
size := 8
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 142 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxAreTexturesResident
|
|
// size: pad((12 + pad((int(N) * 4))))
|
|
type GlxAreTexturesResidentCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxAreTexturesResident(ContextTag GlxContextTag, N int32, Textures []uint32) GlxAreTexturesResidentCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxAreTexturesResidentRequest(ContextTag, N, Textures), cookie)
|
|
return GlxAreTexturesResidentCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxAreTexturesResidentUnchecked(ContextTag GlxContextTag, N int32, Textures []uint32) GlxAreTexturesResidentCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxAreTexturesResidentRequest(ContextTag, N, Textures), cookie)
|
|
return GlxAreTexturesResidentCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxAreTexturesResident
|
|
// size: (32 + pad(((int(Length) * 4) * 1)))
|
|
type GlxAreTexturesResidentReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
RetVal GlxBool32
|
|
// padding: 20 bytes
|
|
Data []bool // size: pad(((int(Length) * 4) * 1))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxAreTexturesResident
|
|
func (cook GlxAreTexturesResidentCookie) Reply() (*GlxAreTexturesResidentReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxAreTexturesResidentReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxAreTexturesResident
|
|
func glxAreTexturesResidentReply(buf []byte) *GlxAreTexturesResidentReply {
|
|
v := new(GlxAreTexturesResidentReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
v.RetVal = GlxBool32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 20 // padding
|
|
|
|
v.Data = make([]bool, (int(v.Length) * 4))
|
|
for i := 0; i < int((int(v.Length) * 4)); i++ {
|
|
if buf[b] == 1 {
|
|
v.Data[i] = true
|
|
} else {
|
|
v.Data[i] = false
|
|
}
|
|
b += 1
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxAreTexturesResidentCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxAreTexturesResident
|
|
func (c *Conn) glxAreTexturesResidentRequest(ContextTag GlxContextTag, N int32, Textures []uint32) []byte {
|
|
size := pad((12 + pad((int(N) * 4))))
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 143 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(N))
|
|
b += 4
|
|
|
|
for i := 0; i < int(N); i++ {
|
|
Put32(buf[b:], Textures[i])
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxDeleteTextures
|
|
// size: pad((12 + pad((int(N) * 4))))
|
|
type GlxDeleteTexturesCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxDeleteTextures
|
|
func (c *Conn) GlxDeleteTextures(ContextTag GlxContextTag, N int32, Textures []uint32) GlxDeleteTexturesCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxDeleteTexturesRequest(ContextTag, N, Textures), cookie)
|
|
return GlxDeleteTexturesCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxDeleteTexturesChecked(ContextTag GlxContextTag, N int32, Textures []uint32) GlxDeleteTexturesCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxDeleteTexturesRequest(ContextTag, N, Textures), cookie)
|
|
return GlxDeleteTexturesCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxDeleteTexturesCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxDeleteTextures
|
|
func (c *Conn) glxDeleteTexturesRequest(ContextTag GlxContextTag, N int32, Textures []uint32) []byte {
|
|
size := pad((12 + pad((int(N) * 4))))
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 144 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(N))
|
|
b += 4
|
|
|
|
for i := 0; i < int(N); i++ {
|
|
Put32(buf[b:], Textures[i])
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGenTextures
|
|
// size: 12
|
|
type GlxGenTexturesCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGenTextures(ContextTag GlxContextTag, N int32) GlxGenTexturesCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGenTexturesRequest(ContextTag, N), cookie)
|
|
return GlxGenTexturesCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGenTexturesUnchecked(ContextTag GlxContextTag, N int32) GlxGenTexturesCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGenTexturesRequest(ContextTag, N), cookie)
|
|
return GlxGenTexturesCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGenTextures
|
|
// size: (32 + pad((int(Length) * 4)))
|
|
type GlxGenTexturesReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 24 bytes
|
|
Data []uint32 // size: pad((int(Length) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGenTextures
|
|
func (cook GlxGenTexturesCookie) Reply() (*GlxGenTexturesReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGenTexturesReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGenTextures
|
|
func glxGenTexturesReply(buf []byte) *GlxGenTexturesReply {
|
|
v := new(GlxGenTexturesReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 24 // padding
|
|
|
|
v.Data = make([]uint32, v.Length)
|
|
for i := 0; i < int(v.Length); i++ {
|
|
v.Data[i] = Get32(buf[b:])
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGenTexturesCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGenTextures
|
|
func (c *Conn) glxGenTexturesRequest(ContextTag GlxContextTag, N int32) []byte {
|
|
size := 12
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 145 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(N))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxIsTexture
|
|
// size: 12
|
|
type GlxIsTextureCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxIsTexture(ContextTag GlxContextTag, Texture uint32) GlxIsTextureCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxIsTextureRequest(ContextTag, Texture), cookie)
|
|
return GlxIsTextureCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxIsTextureUnchecked(ContextTag GlxContextTag, Texture uint32) GlxIsTextureCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxIsTextureRequest(ContextTag, Texture), cookie)
|
|
return GlxIsTextureCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxIsTexture
|
|
// size: 12
|
|
type GlxIsTextureReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
RetVal GlxBool32
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxIsTexture
|
|
func (cook GlxIsTextureCookie) Reply() (*GlxIsTextureReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxIsTextureReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxIsTexture
|
|
func glxIsTextureReply(buf []byte) *GlxIsTextureReply {
|
|
v := new(GlxIsTextureReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
v.RetVal = GlxBool32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxIsTextureCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxIsTexture
|
|
func (c *Conn) glxIsTextureRequest(ContextTag GlxContextTag, Texture uint32) []byte {
|
|
size := 12
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 146 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Texture)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetColorTable
|
|
// size: 24
|
|
type GlxGetColorTableCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetColorTable(ContextTag GlxContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool) GlxGetColorTableCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetColorTableRequest(ContextTag, Target, Format, Type, SwapBytes), cookie)
|
|
return GlxGetColorTableCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetColorTableUnchecked(ContextTag GlxContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool) GlxGetColorTableCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetColorTableRequest(ContextTag, Target, Format, Type, SwapBytes), cookie)
|
|
return GlxGetColorTableCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetColorTable
|
|
// size: (32 + pad(((int(Length) * 4) * 1)))
|
|
type GlxGetColorTableReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 8 bytes
|
|
Width int32
|
|
// padding: 12 bytes
|
|
Data []byte // size: pad(((int(Length) * 4) * 1))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetColorTable
|
|
func (cook GlxGetColorTableCookie) Reply() (*GlxGetColorTableReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetColorTableReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetColorTable
|
|
func glxGetColorTableReply(buf []byte) *GlxGetColorTableReply {
|
|
v := new(GlxGetColorTableReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 8 // padding
|
|
|
|
v.Width = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]byte, (int(v.Length) * 4))
|
|
copy(v.Data[:(int(v.Length)*4)], buf[b:])
|
|
b += pad(int((int(v.Length) * 4)))
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetColorTableCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetColorTable
|
|
func (c *Conn) glxGetColorTableRequest(ContextTag GlxContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool) []byte {
|
|
size := 24
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 147 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Format)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Type)
|
|
b += 4
|
|
|
|
if SwapBytes {
|
|
buf[b] = 1
|
|
} else {
|
|
buf[b] = 0
|
|
}
|
|
b += 1
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetColorTableParameterfv
|
|
// size: 16
|
|
type GlxGetColorTableParameterfvCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetColorTableParameterfv(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetColorTableParameterfvCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetColorTableParameterfvRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetColorTableParameterfvCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetColorTableParameterfvUnchecked(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetColorTableParameterfvCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetColorTableParameterfvRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetColorTableParameterfvCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetColorTableParameterfv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetColorTableParameterfvReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum GlxFloat32
|
|
// padding: 12 bytes
|
|
Data []GlxFloat32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetColorTableParameterfv
|
|
func (cook GlxGetColorTableParameterfvCookie) Reply() (*GlxGetColorTableParameterfvReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetColorTableParameterfvReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetColorTableParameterfv
|
|
func glxGetColorTableParameterfvReply(buf []byte) *GlxGetColorTableParameterfvReply {
|
|
v := new(GlxGetColorTableParameterfvReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]GlxFloat32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetColorTableParameterfvCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetColorTableParameterfv
|
|
func (c *Conn) glxGetColorTableParameterfvRequest(ContextTag GlxContextTag, Target uint32, Pname uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 148 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetColorTableParameteriv
|
|
// size: 16
|
|
type GlxGetColorTableParameterivCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetColorTableParameteriv(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetColorTableParameterivCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetColorTableParameterivRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetColorTableParameterivCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetColorTableParameterivUnchecked(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetColorTableParameterivCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetColorTableParameterivRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetColorTableParameterivCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetColorTableParameteriv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetColorTableParameterivReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum int32
|
|
// padding: 12 bytes
|
|
Data []int32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetColorTableParameteriv
|
|
func (cook GlxGetColorTableParameterivCookie) Reply() (*GlxGetColorTableParameterivReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetColorTableParameterivReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetColorTableParameteriv
|
|
func glxGetColorTableParameterivReply(buf []byte) *GlxGetColorTableParameterivReply {
|
|
v := new(GlxGetColorTableParameterivReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]int32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = int32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetColorTableParameterivCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetColorTableParameteriv
|
|
func (c *Conn) glxGetColorTableParameterivRequest(ContextTag GlxContextTag, Target uint32, Pname uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 149 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetConvolutionFilter
|
|
// size: 24
|
|
type GlxGetConvolutionFilterCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetConvolutionFilter(ContextTag GlxContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool) GlxGetConvolutionFilterCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetConvolutionFilterRequest(ContextTag, Target, Format, Type, SwapBytes), cookie)
|
|
return GlxGetConvolutionFilterCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetConvolutionFilterUnchecked(ContextTag GlxContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool) GlxGetConvolutionFilterCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetConvolutionFilterRequest(ContextTag, Target, Format, Type, SwapBytes), cookie)
|
|
return GlxGetConvolutionFilterCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetConvolutionFilter
|
|
// size: (32 + pad(((int(Length) * 4) * 1)))
|
|
type GlxGetConvolutionFilterReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 8 bytes
|
|
Width int32
|
|
Height int32
|
|
// padding: 8 bytes
|
|
Data []byte // size: pad(((int(Length) * 4) * 1))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetConvolutionFilter
|
|
func (cook GlxGetConvolutionFilterCookie) Reply() (*GlxGetConvolutionFilterReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetConvolutionFilterReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetConvolutionFilter
|
|
func glxGetConvolutionFilterReply(buf []byte) *GlxGetConvolutionFilterReply {
|
|
v := new(GlxGetConvolutionFilterReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 8 // padding
|
|
|
|
v.Width = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
v.Height = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 8 // padding
|
|
|
|
v.Data = make([]byte, (int(v.Length) * 4))
|
|
copy(v.Data[:(int(v.Length)*4)], buf[b:])
|
|
b += pad(int((int(v.Length) * 4)))
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetConvolutionFilterCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetConvolutionFilter
|
|
func (c *Conn) glxGetConvolutionFilterRequest(ContextTag GlxContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool) []byte {
|
|
size := 24
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 150 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Format)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Type)
|
|
b += 4
|
|
|
|
if SwapBytes {
|
|
buf[b] = 1
|
|
} else {
|
|
buf[b] = 0
|
|
}
|
|
b += 1
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetConvolutionParameterfv
|
|
// size: 16
|
|
type GlxGetConvolutionParameterfvCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetConvolutionParameterfv(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetConvolutionParameterfvCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetConvolutionParameterfvRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetConvolutionParameterfvCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetConvolutionParameterfvUnchecked(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetConvolutionParameterfvCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetConvolutionParameterfvRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetConvolutionParameterfvCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetConvolutionParameterfv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetConvolutionParameterfvReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum GlxFloat32
|
|
// padding: 12 bytes
|
|
Data []GlxFloat32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetConvolutionParameterfv
|
|
func (cook GlxGetConvolutionParameterfvCookie) Reply() (*GlxGetConvolutionParameterfvReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetConvolutionParameterfvReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetConvolutionParameterfv
|
|
func glxGetConvolutionParameterfvReply(buf []byte) *GlxGetConvolutionParameterfvReply {
|
|
v := new(GlxGetConvolutionParameterfvReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]GlxFloat32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetConvolutionParameterfvCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetConvolutionParameterfv
|
|
func (c *Conn) glxGetConvolutionParameterfvRequest(ContextTag GlxContextTag, Target uint32, Pname uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 151 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetConvolutionParameteriv
|
|
// size: 16
|
|
type GlxGetConvolutionParameterivCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetConvolutionParameteriv(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetConvolutionParameterivCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetConvolutionParameterivRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetConvolutionParameterivCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetConvolutionParameterivUnchecked(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetConvolutionParameterivCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetConvolutionParameterivRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetConvolutionParameterivCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetConvolutionParameteriv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetConvolutionParameterivReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum int32
|
|
// padding: 12 bytes
|
|
Data []int32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetConvolutionParameteriv
|
|
func (cook GlxGetConvolutionParameterivCookie) Reply() (*GlxGetConvolutionParameterivReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetConvolutionParameterivReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetConvolutionParameteriv
|
|
func glxGetConvolutionParameterivReply(buf []byte) *GlxGetConvolutionParameterivReply {
|
|
v := new(GlxGetConvolutionParameterivReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]int32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = int32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetConvolutionParameterivCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetConvolutionParameteriv
|
|
func (c *Conn) glxGetConvolutionParameterivRequest(ContextTag GlxContextTag, Target uint32, Pname uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 152 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetSeparableFilter
|
|
// size: 24
|
|
type GlxGetSeparableFilterCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetSeparableFilter(ContextTag GlxContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool) GlxGetSeparableFilterCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetSeparableFilterRequest(ContextTag, Target, Format, Type, SwapBytes), cookie)
|
|
return GlxGetSeparableFilterCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetSeparableFilterUnchecked(ContextTag GlxContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool) GlxGetSeparableFilterCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetSeparableFilterRequest(ContextTag, Target, Format, Type, SwapBytes), cookie)
|
|
return GlxGetSeparableFilterCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetSeparableFilter
|
|
// size: (32 + pad(((int(Length) * 4) * 1)))
|
|
type GlxGetSeparableFilterReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 8 bytes
|
|
RowW int32
|
|
ColH int32
|
|
// padding: 8 bytes
|
|
RowsAndCols []byte // size: pad(((int(Length) * 4) * 1))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetSeparableFilter
|
|
func (cook GlxGetSeparableFilterCookie) Reply() (*GlxGetSeparableFilterReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetSeparableFilterReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetSeparableFilter
|
|
func glxGetSeparableFilterReply(buf []byte) *GlxGetSeparableFilterReply {
|
|
v := new(GlxGetSeparableFilterReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 8 // padding
|
|
|
|
v.RowW = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
v.ColH = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 8 // padding
|
|
|
|
v.RowsAndCols = make([]byte, (int(v.Length) * 4))
|
|
copy(v.RowsAndCols[:(int(v.Length)*4)], buf[b:])
|
|
b += pad(int((int(v.Length) * 4)))
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetSeparableFilterCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetSeparableFilter
|
|
func (c *Conn) glxGetSeparableFilterRequest(ContextTag GlxContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool) []byte {
|
|
size := 24
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 153 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Format)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Type)
|
|
b += 4
|
|
|
|
if SwapBytes {
|
|
buf[b] = 1
|
|
} else {
|
|
buf[b] = 0
|
|
}
|
|
b += 1
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetHistogram
|
|
// size: 24
|
|
type GlxGetHistogramCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetHistogram(ContextTag GlxContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool, Reset bool) GlxGetHistogramCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetHistogramRequest(ContextTag, Target, Format, Type, SwapBytes, Reset), cookie)
|
|
return GlxGetHistogramCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetHistogramUnchecked(ContextTag GlxContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool, Reset bool) GlxGetHistogramCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetHistogramRequest(ContextTag, Target, Format, Type, SwapBytes, Reset), cookie)
|
|
return GlxGetHistogramCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetHistogram
|
|
// size: (32 + pad(((int(Length) * 4) * 1)))
|
|
type GlxGetHistogramReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 8 bytes
|
|
Width int32
|
|
// padding: 12 bytes
|
|
Data []byte // size: pad(((int(Length) * 4) * 1))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetHistogram
|
|
func (cook GlxGetHistogramCookie) Reply() (*GlxGetHistogramReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetHistogramReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetHistogram
|
|
func glxGetHistogramReply(buf []byte) *GlxGetHistogramReply {
|
|
v := new(GlxGetHistogramReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 8 // padding
|
|
|
|
v.Width = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]byte, (int(v.Length) * 4))
|
|
copy(v.Data[:(int(v.Length)*4)], buf[b:])
|
|
b += pad(int((int(v.Length) * 4)))
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetHistogramCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetHistogram
|
|
func (c *Conn) glxGetHistogramRequest(ContextTag GlxContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool, Reset bool) []byte {
|
|
size := 24
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 154 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Format)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Type)
|
|
b += 4
|
|
|
|
if SwapBytes {
|
|
buf[b] = 1
|
|
} else {
|
|
buf[b] = 0
|
|
}
|
|
b += 1
|
|
|
|
if Reset {
|
|
buf[b] = 1
|
|
} else {
|
|
buf[b] = 0
|
|
}
|
|
b += 1
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetHistogramParameterfv
|
|
// size: 16
|
|
type GlxGetHistogramParameterfvCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetHistogramParameterfv(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetHistogramParameterfvCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetHistogramParameterfvRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetHistogramParameterfvCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetHistogramParameterfvUnchecked(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetHistogramParameterfvCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetHistogramParameterfvRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetHistogramParameterfvCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetHistogramParameterfv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetHistogramParameterfvReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum GlxFloat32
|
|
// padding: 12 bytes
|
|
Data []GlxFloat32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetHistogramParameterfv
|
|
func (cook GlxGetHistogramParameterfvCookie) Reply() (*GlxGetHistogramParameterfvReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetHistogramParameterfvReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetHistogramParameterfv
|
|
func glxGetHistogramParameterfvReply(buf []byte) *GlxGetHistogramParameterfvReply {
|
|
v := new(GlxGetHistogramParameterfvReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]GlxFloat32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetHistogramParameterfvCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetHistogramParameterfv
|
|
func (c *Conn) glxGetHistogramParameterfvRequest(ContextTag GlxContextTag, Target uint32, Pname uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 155 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetHistogramParameteriv
|
|
// size: 16
|
|
type GlxGetHistogramParameterivCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetHistogramParameteriv(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetHistogramParameterivCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetHistogramParameterivRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetHistogramParameterivCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetHistogramParameterivUnchecked(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetHistogramParameterivCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetHistogramParameterivRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetHistogramParameterivCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetHistogramParameteriv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetHistogramParameterivReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum int32
|
|
// padding: 12 bytes
|
|
Data []int32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetHistogramParameteriv
|
|
func (cook GlxGetHistogramParameterivCookie) Reply() (*GlxGetHistogramParameterivReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetHistogramParameterivReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetHistogramParameteriv
|
|
func glxGetHistogramParameterivReply(buf []byte) *GlxGetHistogramParameterivReply {
|
|
v := new(GlxGetHistogramParameterivReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]int32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = int32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetHistogramParameterivCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetHistogramParameteriv
|
|
func (c *Conn) glxGetHistogramParameterivRequest(ContextTag GlxContextTag, Target uint32, Pname uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 156 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetMinmax
|
|
// size: 24
|
|
type GlxGetMinmaxCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetMinmax(ContextTag GlxContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool, Reset bool) GlxGetMinmaxCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetMinmaxRequest(ContextTag, Target, Format, Type, SwapBytes, Reset), cookie)
|
|
return GlxGetMinmaxCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetMinmaxUnchecked(ContextTag GlxContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool, Reset bool) GlxGetMinmaxCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetMinmaxRequest(ContextTag, Target, Format, Type, SwapBytes, Reset), cookie)
|
|
return GlxGetMinmaxCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetMinmax
|
|
// size: (32 + pad(((int(Length) * 4) * 1)))
|
|
type GlxGetMinmaxReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 24 bytes
|
|
Data []byte // size: pad(((int(Length) * 4) * 1))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetMinmax
|
|
func (cook GlxGetMinmaxCookie) Reply() (*GlxGetMinmaxReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetMinmaxReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetMinmax
|
|
func glxGetMinmaxReply(buf []byte) *GlxGetMinmaxReply {
|
|
v := new(GlxGetMinmaxReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 24 // padding
|
|
|
|
v.Data = make([]byte, (int(v.Length) * 4))
|
|
copy(v.Data[:(int(v.Length)*4)], buf[b:])
|
|
b += pad(int((int(v.Length) * 4)))
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetMinmaxCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetMinmax
|
|
func (c *Conn) glxGetMinmaxRequest(ContextTag GlxContextTag, Target uint32, Format uint32, Type uint32, SwapBytes bool, Reset bool) []byte {
|
|
size := 24
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 157 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Format)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Type)
|
|
b += 4
|
|
|
|
if SwapBytes {
|
|
buf[b] = 1
|
|
} else {
|
|
buf[b] = 0
|
|
}
|
|
b += 1
|
|
|
|
if Reset {
|
|
buf[b] = 1
|
|
} else {
|
|
buf[b] = 0
|
|
}
|
|
b += 1
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetMinmaxParameterfv
|
|
// size: 16
|
|
type GlxGetMinmaxParameterfvCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetMinmaxParameterfv(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetMinmaxParameterfvCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetMinmaxParameterfvRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetMinmaxParameterfvCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetMinmaxParameterfvUnchecked(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetMinmaxParameterfvCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetMinmaxParameterfvRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetMinmaxParameterfvCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetMinmaxParameterfv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetMinmaxParameterfvReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum GlxFloat32
|
|
// padding: 12 bytes
|
|
Data []GlxFloat32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetMinmaxParameterfv
|
|
func (cook GlxGetMinmaxParameterfvCookie) Reply() (*GlxGetMinmaxParameterfvReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetMinmaxParameterfvReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetMinmaxParameterfv
|
|
func glxGetMinmaxParameterfvReply(buf []byte) *GlxGetMinmaxParameterfvReply {
|
|
v := new(GlxGetMinmaxParameterfvReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]GlxFloat32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = GlxFloat32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetMinmaxParameterfvCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetMinmaxParameterfv
|
|
func (c *Conn) glxGetMinmaxParameterfvRequest(ContextTag GlxContextTag, Target uint32, Pname uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 158 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetMinmaxParameteriv
|
|
// size: 16
|
|
type GlxGetMinmaxParameterivCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetMinmaxParameteriv(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetMinmaxParameterivCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetMinmaxParameterivRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetMinmaxParameterivCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetMinmaxParameterivUnchecked(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetMinmaxParameterivCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetMinmaxParameterivRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetMinmaxParameterivCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetMinmaxParameteriv
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetMinmaxParameterivReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum int32
|
|
// padding: 12 bytes
|
|
Data []int32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetMinmaxParameteriv
|
|
func (cook GlxGetMinmaxParameterivCookie) Reply() (*GlxGetMinmaxParameterivReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetMinmaxParameterivReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetMinmaxParameteriv
|
|
func glxGetMinmaxParameterivReply(buf []byte) *GlxGetMinmaxParameterivReply {
|
|
v := new(GlxGetMinmaxParameterivReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]int32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = int32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetMinmaxParameterivCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetMinmaxParameteriv
|
|
func (c *Conn) glxGetMinmaxParameterivRequest(ContextTag GlxContextTag, Target uint32, Pname uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 159 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetCompressedTexImageARB
|
|
// size: 16
|
|
type GlxGetCompressedTexImageARBCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetCompressedTexImageARB(ContextTag GlxContextTag, Target uint32, Level int32) GlxGetCompressedTexImageARBCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetCompressedTexImageARBRequest(ContextTag, Target, Level), cookie)
|
|
return GlxGetCompressedTexImageARBCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetCompressedTexImageARBUnchecked(ContextTag GlxContextTag, Target uint32, Level int32) GlxGetCompressedTexImageARBCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetCompressedTexImageARBRequest(ContextTag, Target, Level), cookie)
|
|
return GlxGetCompressedTexImageARBCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetCompressedTexImageARB
|
|
// size: (32 + pad(((int(Length) * 4) * 1)))
|
|
type GlxGetCompressedTexImageARBReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 8 bytes
|
|
Size int32
|
|
// padding: 12 bytes
|
|
Data []byte // size: pad(((int(Length) * 4) * 1))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetCompressedTexImageARB
|
|
func (cook GlxGetCompressedTexImageARBCookie) Reply() (*GlxGetCompressedTexImageARBReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetCompressedTexImageARBReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetCompressedTexImageARB
|
|
func glxGetCompressedTexImageARBReply(buf []byte) *GlxGetCompressedTexImageARBReply {
|
|
v := new(GlxGetCompressedTexImageARBReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 8 // padding
|
|
|
|
v.Size = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]byte, (int(v.Length) * 4))
|
|
copy(v.Data[:(int(v.Length)*4)], buf[b:])
|
|
b += pad(int((int(v.Length) * 4)))
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetCompressedTexImageARBCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetCompressedTexImageARB
|
|
func (c *Conn) glxGetCompressedTexImageARBRequest(ContextTag GlxContextTag, Target uint32, Level int32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 160 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Level))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxDeleteQueriesARB
|
|
// size: pad((12 + pad((int(N) * 4))))
|
|
type GlxDeleteQueriesARBCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for GlxDeleteQueriesARB
|
|
func (c *Conn) GlxDeleteQueriesARB(ContextTag GlxContextTag, N int32, Ids []uint32) GlxDeleteQueriesARBCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.glxDeleteQueriesARBRequest(ContextTag, N, Ids), cookie)
|
|
return GlxDeleteQueriesARBCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxDeleteQueriesARBChecked(ContextTag GlxContextTag, N int32, Ids []uint32) GlxDeleteQueriesARBCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.glxDeleteQueriesARBRequest(ContextTag, N, Ids), cookie)
|
|
return GlxDeleteQueriesARBCookie{cookie}
|
|
}
|
|
|
|
func (cook GlxDeleteQueriesARBCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxDeleteQueriesARB
|
|
func (c *Conn) glxDeleteQueriesARBRequest(ContextTag GlxContextTag, N int32, Ids []uint32) []byte {
|
|
size := pad((12 + pad((int(N) * 4))))
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 161 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(N))
|
|
b += 4
|
|
|
|
for i := 0; i < int(N); i++ {
|
|
Put32(buf[b:], Ids[i])
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGenQueriesARB
|
|
// size: 12
|
|
type GlxGenQueriesARBCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGenQueriesARB(ContextTag GlxContextTag, N int32) GlxGenQueriesARBCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGenQueriesARBRequest(ContextTag, N), cookie)
|
|
return GlxGenQueriesARBCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGenQueriesARBUnchecked(ContextTag GlxContextTag, N int32) GlxGenQueriesARBCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGenQueriesARBRequest(ContextTag, N), cookie)
|
|
return GlxGenQueriesARBCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGenQueriesARB
|
|
// size: (32 + pad((int(Length) * 4)))
|
|
type GlxGenQueriesARBReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 24 bytes
|
|
Data []uint32 // size: pad((int(Length) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGenQueriesARB
|
|
func (cook GlxGenQueriesARBCookie) Reply() (*GlxGenQueriesARBReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGenQueriesARBReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGenQueriesARB
|
|
func glxGenQueriesARBReply(buf []byte) *GlxGenQueriesARBReply {
|
|
v := new(GlxGenQueriesARBReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 24 // padding
|
|
|
|
v.Data = make([]uint32, v.Length)
|
|
for i := 0; i < int(v.Length); i++ {
|
|
v.Data[i] = Get32(buf[b:])
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGenQueriesARBCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGenQueriesARB
|
|
func (c *Conn) glxGenQueriesARBRequest(ContextTag GlxContextTag, N int32) []byte {
|
|
size := 12
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 162 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(N))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxIsQueryARB
|
|
// size: 12
|
|
type GlxIsQueryARBCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxIsQueryARB(ContextTag GlxContextTag, Id uint32) GlxIsQueryARBCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxIsQueryARBRequest(ContextTag, Id), cookie)
|
|
return GlxIsQueryARBCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxIsQueryARBUnchecked(ContextTag GlxContextTag, Id uint32) GlxIsQueryARBCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxIsQueryARBRequest(ContextTag, Id), cookie)
|
|
return GlxIsQueryARBCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxIsQueryARB
|
|
// size: 12
|
|
type GlxIsQueryARBReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
RetVal GlxBool32
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxIsQueryARB
|
|
func (cook GlxIsQueryARBCookie) Reply() (*GlxIsQueryARBReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxIsQueryARBReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxIsQueryARB
|
|
func glxIsQueryARBReply(buf []byte) *GlxIsQueryARBReply {
|
|
v := new(GlxIsQueryARBReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
v.RetVal = GlxBool32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxIsQueryARBCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxIsQueryARB
|
|
func (c *Conn) glxIsQueryARBRequest(ContextTag GlxContextTag, Id uint32) []byte {
|
|
size := 12
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 163 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Id)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetQueryivARB
|
|
// size: 16
|
|
type GlxGetQueryivARBCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetQueryivARB(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetQueryivARBCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetQueryivARBRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetQueryivARBCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetQueryivARBUnchecked(ContextTag GlxContextTag, Target uint32, Pname uint32) GlxGetQueryivARBCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetQueryivARBRequest(ContextTag, Target, Pname), cookie)
|
|
return GlxGetQueryivARBCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetQueryivARB
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetQueryivARBReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum int32
|
|
// padding: 12 bytes
|
|
Data []int32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetQueryivARB
|
|
func (cook GlxGetQueryivARBCookie) Reply() (*GlxGetQueryivARBReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetQueryivARBReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetQueryivARB
|
|
func glxGetQueryivARBReply(buf []byte) *GlxGetQueryivARBReply {
|
|
v := new(GlxGetQueryivARBReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]int32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = int32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetQueryivARBCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetQueryivARB
|
|
func (c *Conn) glxGetQueryivARBRequest(ContextTag GlxContextTag, Target uint32, Pname uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 164 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Target)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetQueryObjectivARB
|
|
// size: 16
|
|
type GlxGetQueryObjectivARBCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetQueryObjectivARB(ContextTag GlxContextTag, Id uint32, Pname uint32) GlxGetQueryObjectivARBCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetQueryObjectivARBRequest(ContextTag, Id, Pname), cookie)
|
|
return GlxGetQueryObjectivARBCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetQueryObjectivARBUnchecked(ContextTag GlxContextTag, Id uint32, Pname uint32) GlxGetQueryObjectivARBCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetQueryObjectivARBRequest(ContextTag, Id, Pname), cookie)
|
|
return GlxGetQueryObjectivARBCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetQueryObjectivARB
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetQueryObjectivARBReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum int32
|
|
// padding: 12 bytes
|
|
Data []int32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetQueryObjectivARB
|
|
func (cook GlxGetQueryObjectivARBCookie) Reply() (*GlxGetQueryObjectivARBReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetQueryObjectivARBReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetQueryObjectivARB
|
|
func glxGetQueryObjectivARBReply(buf []byte) *GlxGetQueryObjectivARBReply {
|
|
v := new(GlxGetQueryObjectivARBReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = int32(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]int32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = int32(Get32(buf[b:]))
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetQueryObjectivARBCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetQueryObjectivARB
|
|
func (c *Conn) glxGetQueryObjectivARBRequest(ContextTag GlxContextTag, Id uint32, Pname uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 165 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Id)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request GlxGetQueryObjectuivARB
|
|
// size: 16
|
|
type GlxGetQueryObjectuivARBCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) GlxGetQueryObjectuivARB(ContextTag GlxContextTag, Id uint32, Pname uint32) GlxGetQueryObjectuivARBCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.glxGetQueryObjectuivARBRequest(ContextTag, Id, Pname), cookie)
|
|
return GlxGetQueryObjectuivARBCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) GlxGetQueryObjectuivARBUnchecked(ContextTag GlxContextTag, Id uint32, Pname uint32) GlxGetQueryObjectuivARBCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.glxGetQueryObjectuivARBRequest(ContextTag, Id, Pname), cookie)
|
|
return GlxGetQueryObjectuivARBCookie{cookie}
|
|
}
|
|
|
|
// Request reply for GlxGetQueryObjectuivARB
|
|
// size: (32 + pad((int(N) * 4)))
|
|
type GlxGetQueryObjectuivARBReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
// padding: 4 bytes
|
|
N uint32
|
|
Datum uint32
|
|
// padding: 12 bytes
|
|
Data []uint32 // size: pad((int(N) * 4))
|
|
}
|
|
|
|
// Waits and reads reply data from request GlxGetQueryObjectuivARB
|
|
func (cook GlxGetQueryObjectuivARBCookie) Reply() (*GlxGetQueryObjectuivARBReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return glxGetQueryObjectuivARBReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for GlxGetQueryObjectuivARB
|
|
func glxGetQueryObjectuivARBReply(buf []byte) *GlxGetQueryObjectuivARBReply {
|
|
v := new(GlxGetQueryObjectuivARBReply)
|
|
b := 1 // skip reply determinant
|
|
|
|
b += 1 // padding
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Length = Get32(buf[b:]) // 4-byte units
|
|
b += 4
|
|
|
|
b += 4 // padding
|
|
|
|
v.N = Get32(buf[b:])
|
|
b += 4
|
|
|
|
v.Datum = Get32(buf[b:])
|
|
b += 4
|
|
|
|
b += 12 // padding
|
|
|
|
v.Data = make([]uint32, v.N)
|
|
for i := 0; i < int(v.N); i++ {
|
|
v.Data[i] = Get32(buf[b:])
|
|
b += 4
|
|
}
|
|
b = pad(b)
|
|
|
|
return v
|
|
}
|
|
|
|
func (cook GlxGetQueryObjectuivARBCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for GlxGetQueryObjectuivARB
|
|
func (c *Conn) glxGetQueryObjectuivARBRequest(ContextTag GlxContextTag, Id uint32, Pname uint32) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["GLX"]
|
|
b += 1
|
|
|
|
buf[b] = 166 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], uint32(ContextTag))
|
|
b += 4
|
|
|
|
Put32(buf[b:], Id)
|
|
b += 4
|
|
|
|
Put32(buf[b:], Pname)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|