haven/nexgb/auto_damage.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
}