508 lines
11 KiB
Go
508 lines
11 KiB
Go
package xgb
|
|
|
|
/*
|
|
This file was generated by damage.xml on May 8 2012 11:03:23pm 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"
|
|
// import "xfixes"
|
|
|
|
// DamageInit must be called before using the DAMAGE extension.
|
|
func (c *Conn) DamageInit() error {
|
|
reply, err := c.QueryExtension(6, "DAMAGE").Reply()
|
|
switch {
|
|
case err != nil:
|
|
return err
|
|
case !reply.Present:
|
|
return errorf("No extension named DAMAGE could be found on on the server.")
|
|
}
|
|
|
|
c.extLock.Lock()
|
|
c.extensions["DAMAGE"] = reply.MajorOpcode
|
|
for evNum, fun := range newExtEventFuncs["DAMAGE"] {
|
|
newEventFuncs[int(reply.FirstEvent)+evNum] = fun
|
|
}
|
|
for errNum, fun := range newExtErrorFuncs["DAMAGE"] {
|
|
newErrorFuncs[int(reply.FirstError)+errNum] = fun
|
|
}
|
|
c.extLock.Unlock()
|
|
|
|
return nil
|
|
}
|
|
|
|
func init() {
|
|
newExtEventFuncs["DAMAGE"] = make(map[int]newEventFun)
|
|
newExtErrorFuncs["DAMAGE"] = make(map[int]newErrorFun)
|
|
}
|
|
|
|
// 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'
|
|
|
|
// 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'
|
|
|
|
const (
|
|
DamageReportLevelRawRectangles = 0
|
|
DamageReportLevelDeltaRectangles = 1
|
|
DamageReportLevelBoundingBox = 2
|
|
DamageReportLevelNonEmpty = 3
|
|
)
|
|
|
|
// Skipping resource definition of 'Damage'
|
|
|
|
// Event definition DamageNotify (0)
|
|
// Size: 32
|
|
|
|
const DamageNotify = 0
|
|
|
|
type DamageNotifyEvent struct {
|
|
Sequence uint16
|
|
Level byte
|
|
Drawable Id
|
|
Damage Id
|
|
Timestamp Timestamp
|
|
Area Rectangle
|
|
Geometry Rectangle
|
|
}
|
|
|
|
// Event read DamageNotify
|
|
func NewDamageNotifyEvent(buf []byte) Event {
|
|
v := DamageNotifyEvent{}
|
|
b := 1 // don't read event number
|
|
|
|
v.Level = buf[b]
|
|
b += 1
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
v.Drawable = Id(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
v.Damage = Id(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
v.Timestamp = Timestamp(Get32(buf[b:]))
|
|
b += 4
|
|
|
|
v.Area = Rectangle{}
|
|
b += ReadRectangle(buf[b:], &v.Area)
|
|
|
|
v.Geometry = Rectangle{}
|
|
b += ReadRectangle(buf[b:], &v.Geometry)
|
|
|
|
return v
|
|
}
|
|
|
|
// Event write DamageNotify
|
|
func (v DamageNotifyEvent) Bytes() []byte {
|
|
buf := make([]byte, 32)
|
|
b := 0
|
|
|
|
// write event number
|
|
buf[b] = 0
|
|
b += 1
|
|
|
|
buf[b] = v.Level
|
|
b += 1
|
|
|
|
b += 2 // skip sequence number
|
|
|
|
Put32(buf[b:], uint32(v.Drawable))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(v.Damage))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(v.Timestamp))
|
|
b += 4
|
|
|
|
{
|
|
structBytes := v.Area.Bytes()
|
|
copy(buf[b:], structBytes)
|
|
b += pad(len(structBytes))
|
|
}
|
|
|
|
{
|
|
structBytes := v.Geometry.Bytes()
|
|
copy(buf[b:], structBytes)
|
|
b += pad(len(structBytes))
|
|
}
|
|
|
|
return buf
|
|
}
|
|
|
|
func (v DamageNotifyEvent) ImplementsEvent() {}
|
|
|
|
func (v DamageNotifyEvent) SequenceId() uint16 {
|
|
return v.Sequence
|
|
}
|
|
|
|
func (v DamageNotifyEvent) String() string {
|
|
fieldVals := make([]string, 0, 6)
|
|
fieldVals = append(fieldVals, sprintf("Sequence: %d", v.Sequence))
|
|
fieldVals = append(fieldVals, sprintf("Level: %d", v.Level))
|
|
fieldVals = append(fieldVals, sprintf("Drawable: %d", v.Drawable))
|
|
fieldVals = append(fieldVals, sprintf("Damage: %d", v.Damage))
|
|
fieldVals = append(fieldVals, sprintf("Timestamp: %d", v.Timestamp))
|
|
return "DamageNotify {" + stringsJoin(fieldVals, ", ") + "}"
|
|
}
|
|
|
|
func init() {
|
|
newExtEventFuncs["DAMAGE"][0] = NewDamageNotifyEvent
|
|
}
|
|
|
|
// Error definition DamageBadDamage (0)
|
|
// Size: 32
|
|
|
|
const BadDamageBadDamage = 0
|
|
|
|
type DamageBadDamageError struct {
|
|
Sequence uint16
|
|
NiceName string
|
|
}
|
|
|
|
// Error read DamageBadDamage
|
|
func NewDamageBadDamageError(buf []byte) Error {
|
|
v := DamageBadDamageError{}
|
|
v.NiceName = "DamageBadDamage"
|
|
|
|
b := 1 // skip error determinant
|
|
b += 1 // don't read error number
|
|
|
|
v.Sequence = Get16(buf[b:])
|
|
b += 2
|
|
|
|
return v
|
|
}
|
|
|
|
func (err DamageBadDamageError) ImplementsError() {}
|
|
|
|
func (err DamageBadDamageError) SequenceId() uint16 {
|
|
return err.Sequence
|
|
}
|
|
|
|
func (err DamageBadDamageError) BadId() Id {
|
|
return 0
|
|
}
|
|
|
|
func (err DamageBadDamageError) Error() string {
|
|
fieldVals := make([]string, 0, 0)
|
|
fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
|
|
fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence))
|
|
return "BadDamageBadDamage {" + stringsJoin(fieldVals, ", ") + "}"
|
|
}
|
|
|
|
func init() {
|
|
newExtErrorFuncs["DAMAGE"][0] = NewDamageBadDamageError
|
|
}
|
|
|
|
// Request DamageQueryVersion
|
|
// size: 12
|
|
type DamageQueryVersionCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
func (c *Conn) DamageQueryVersion(ClientMajorVersion uint32, ClientMinorVersion uint32) DamageQueryVersionCookie {
|
|
cookie := c.newCookie(true, true)
|
|
c.newRequest(c.damageQueryVersionRequest(ClientMajorVersion, ClientMinorVersion), cookie)
|
|
return DamageQueryVersionCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) DamageQueryVersionUnchecked(ClientMajorVersion uint32, ClientMinorVersion uint32) DamageQueryVersionCookie {
|
|
cookie := c.newCookie(false, true)
|
|
c.newRequest(c.damageQueryVersionRequest(ClientMajorVersion, ClientMinorVersion), cookie)
|
|
return DamageQueryVersionCookie{cookie}
|
|
}
|
|
|
|
// Request reply for DamageQueryVersion
|
|
// size: 32
|
|
type DamageQueryVersionReply struct {
|
|
Sequence uint16
|
|
Length uint32
|
|
// padding: 1 bytes
|
|
MajorVersion uint32
|
|
MinorVersion uint32
|
|
// padding: 16 bytes
|
|
}
|
|
|
|
// Waits and reads reply data from request DamageQueryVersion
|
|
func (cook DamageQueryVersionCookie) Reply() (*DamageQueryVersionReply, error) {
|
|
buf, err := cook.reply()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if buf == nil {
|
|
return nil, nil
|
|
}
|
|
return damageQueryVersionReply(buf), nil
|
|
}
|
|
|
|
// Read reply into structure from buffer for DamageQueryVersion
|
|
func damageQueryVersionReply(buf []byte) *DamageQueryVersionReply {
|
|
v := new(DamageQueryVersionReply)
|
|
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 DamageQueryVersionCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for DamageQueryVersion
|
|
func (c *Conn) damageQueryVersionRequest(ClientMajorVersion uint32, ClientMinorVersion uint32) []byte {
|
|
size := 12
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["DAMAGE"]
|
|
b += 1
|
|
|
|
buf[b] = 0 // request opcode
|
|
b += 1
|
|
|
|
Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
|
|
b += 2
|
|
|
|
Put32(buf[b:], ClientMajorVersion)
|
|
b += 4
|
|
|
|
Put32(buf[b:], ClientMinorVersion)
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request DamageCreate
|
|
// size: 16
|
|
type DamageCreateCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for DamageCreate
|
|
func (c *Conn) DamageCreate(Damage Id, Drawable Id, Level byte) DamageCreateCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.damageCreateRequest(Damage, Drawable, Level), cookie)
|
|
return DamageCreateCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) DamageCreateChecked(Damage Id, Drawable Id, Level byte) DamageCreateCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.damageCreateRequest(Damage, Drawable, Level), cookie)
|
|
return DamageCreateCookie{cookie}
|
|
}
|
|
|
|
func (cook DamageCreateCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for DamageCreate
|
|
func (c *Conn) damageCreateRequest(Damage Id, Drawable Id, Level byte) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["DAMAGE"]
|
|
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(Damage))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Drawable))
|
|
b += 4
|
|
|
|
buf[b] = Level
|
|
b += 1
|
|
|
|
b += 3 // padding
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request DamageDestroy
|
|
// size: 8
|
|
type DamageDestroyCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for DamageDestroy
|
|
func (c *Conn) DamageDestroy(Damage Id) DamageDestroyCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.damageDestroyRequest(Damage), cookie)
|
|
return DamageDestroyCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) DamageDestroyChecked(Damage Id) DamageDestroyCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.damageDestroyRequest(Damage), cookie)
|
|
return DamageDestroyCookie{cookie}
|
|
}
|
|
|
|
func (cook DamageDestroyCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for DamageDestroy
|
|
func (c *Conn) damageDestroyRequest(Damage Id) []byte {
|
|
size := 8
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["DAMAGE"]
|
|
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(Damage))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request DamageSubtract
|
|
// size: 16
|
|
type DamageSubtractCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for DamageSubtract
|
|
func (c *Conn) DamageSubtract(Damage Id, Repair Id, Parts Id) DamageSubtractCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.damageSubtractRequest(Damage, Repair, Parts), cookie)
|
|
return DamageSubtractCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) DamageSubtractChecked(Damage Id, Repair Id, Parts Id) DamageSubtractCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.damageSubtractRequest(Damage, Repair, Parts), cookie)
|
|
return DamageSubtractCookie{cookie}
|
|
}
|
|
|
|
func (cook DamageSubtractCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for DamageSubtract
|
|
func (c *Conn) damageSubtractRequest(Damage Id, Repair Id, Parts Id) []byte {
|
|
size := 16
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["DAMAGE"]
|
|
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(Damage))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Repair))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Parts))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|
|
|
|
// Request DamageAdd
|
|
// size: 12
|
|
type DamageAddCookie struct {
|
|
*cookie
|
|
}
|
|
|
|
// Write request to wire for DamageAdd
|
|
func (c *Conn) DamageAdd(Drawable Id, Region Id) DamageAddCookie {
|
|
cookie := c.newCookie(false, false)
|
|
c.newRequest(c.damageAddRequest(Drawable, Region), cookie)
|
|
return DamageAddCookie{cookie}
|
|
}
|
|
|
|
func (c *Conn) DamageAddChecked(Drawable Id, Region Id) DamageAddCookie {
|
|
cookie := c.newCookie(true, false)
|
|
c.newRequest(c.damageAddRequest(Drawable, Region), cookie)
|
|
return DamageAddCookie{cookie}
|
|
}
|
|
|
|
func (cook DamageAddCookie) Check() error {
|
|
return cook.check()
|
|
}
|
|
|
|
// Write request to wire for DamageAdd
|
|
func (c *Conn) damageAddRequest(Drawable Id, Region Id) []byte {
|
|
size := 12
|
|
b := 0
|
|
buf := make([]byte, size)
|
|
|
|
buf[b] = c.extensions["DAMAGE"]
|
|
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(Drawable))
|
|
b += 4
|
|
|
|
Put32(buf[b:], uint32(Region))
|
|
b += 4
|
|
|
|
return buf
|
|
}
|