aboutsummaryrefslogtreecommitdiff
path: root/nexgb/render
diff options
context:
space:
mode:
Diffstat (limited to 'nexgb/render')
-rw-r--r--nexgb/render/render.go3690
1 files changed, 1845 insertions, 1845 deletions
diff --git a/nexgb/render/render.go b/nexgb/render/render.go
index 2f1ae13..c6f5095 100644
--- a/nexgb/render/render.go
+++ b/nexgb/render/render.go
@@ -2,7 +2,7 @@
package render
/*
- This file was generated by render.xml on Jun 5 2012 12:11:59am EDT.
+ This file was generated by render.xml on Aug 11 2013 8:39:43pm EDT.
This file is automatically generated. Edit at your peril!
*/
@@ -40,104 +40,127 @@ func init() {
xgb.NewExtErrorFuncs["RENDER"] = make(map[int]xgb.NewErrorFun)
}
-// Skipping definition for base type 'Float'
+type Animcursorelt struct {
+ Cursor xproto.Cursor
+ Delay uint32
+}
-// Skipping definition for base type 'Card8'
+// AnimcursoreltRead reads a byte slice into a Animcursorelt value.
+func AnimcursoreltRead(buf []byte, v *Animcursorelt) int {
+ b := 0
-// Skipping definition for base type 'Int16'
+ v.Cursor = xproto.Cursor(xgb.Get32(buf[b:]))
+ b += 4
-// Skipping definition for base type 'Int32'
+ v.Delay = xgb.Get32(buf[b:])
+ b += 4
-// Skipping definition for base type 'Void'
+ return b
+}
-// Skipping definition for base type 'Byte'
+// AnimcursoreltReadList reads a byte slice into a list of Animcursorelt values.
+func AnimcursoreltReadList(buf []byte, dest []Animcursorelt) int {
+ b := 0
+ for i := 0; i < len(dest); i++ {
+ dest[i] = Animcursorelt{}
+ b += AnimcursoreltRead(buf[b:], &dest[i])
+ }
+ return xgb.Pad(b)
+}
-// Skipping definition for base type 'Int8'
+// Bytes writes a Animcursorelt value to a byte slice.
+func (v Animcursorelt) Bytes() []byte {
+ buf := make([]byte, 8)
+ b := 0
-// Skipping definition for base type 'Card16'
+ xgb.Put32(buf[b:], uint32(v.Cursor))
+ b += 4
-// Skipping definition for base type 'Char'
+ xgb.Put32(buf[b:], v.Delay)
+ b += 4
-// Skipping definition for base type 'Card32'
+ return buf
+}
-// Skipping definition for base type 'Double'
+// AnimcursoreltListBytes writes a list of Animcursorelt values to a byte slice.
+func AnimcursoreltListBytes(buf []byte, list []Animcursorelt) int {
+ b := 0
+ var structBytes []byte
+ for _, item := range list {
+ structBytes = item.Bytes()
+ copy(buf[b:], structBytes)
+ b += xgb.Pad(len(structBytes))
+ }
+ return b
+}
-// Skipping definition for base type 'Bool'
+type Color struct {
+ Red uint16
+ Green uint16
+ Blue uint16
+ Alpha uint16
+}
-const (
- PictTypeIndexed = 0
- PictTypeDirect = 1
-)
+// ColorRead reads a byte slice into a Color value.
+func ColorRead(buf []byte, v *Color) int {
+ b := 0
-const (
- PictureNone = 0
-)
+ v.Red = xgb.Get16(buf[b:])
+ b += 2
-const (
- PictOpClear = 0
- PictOpSrc = 1
- PictOpDst = 2
- PictOpOver = 3
- PictOpOverReverse = 4
- PictOpIn = 5
- PictOpInReverse = 6
- PictOpOut = 7
- PictOpOutReverse = 8
- PictOpAtop = 9
- PictOpAtopReverse = 10
- PictOpXor = 11
- PictOpAdd = 12
- PictOpSaturate = 13
- PictOpDisjointClear = 16
- PictOpDisjointSrc = 17
- PictOpDisjointDst = 18
- PictOpDisjointOver = 19
- PictOpDisjointOverReverse = 20
- PictOpDisjointIn = 21
- PictOpDisjointInReverse = 22
- PictOpDisjointOut = 23
- PictOpDisjointOutReverse = 24
- PictOpDisjointAtop = 25
- PictOpDisjointAtopReverse = 26
- PictOpDisjointXor = 27
- PictOpConjointClear = 32
- PictOpConjointSrc = 33
- PictOpConjointDst = 34
- PictOpConjointOver = 35
- PictOpConjointOverReverse = 36
- PictOpConjointIn = 37
- PictOpConjointInReverse = 38
- PictOpConjointOut = 39
- PictOpConjointOutReverse = 40
- PictOpConjointAtop = 41
- PictOpConjointAtopReverse = 42
- PictOpConjointXor = 43
- PictOpMultiply = 48
- PictOpScreen = 49
- PictOpOverlay = 50
- PictOpDarken = 51
- PictOpLighten = 52
- PictOpColorDodge = 53
- PictOpColorBurn = 54
- PictOpHardLight = 55
- PictOpSoftLight = 56
- PictOpDifference = 57
- PictOpExclusion = 58
- PictOpHSLHue = 59
- PictOpHSLSaturation = 60
- PictOpHSLColor = 61
- PictOpHSLLuminosity = 62
-)
+ v.Green = xgb.Get16(buf[b:])
+ b += 2
-const (
- PolyEdgeSharp = 0
- PolyEdgeSmooth = 1
-)
+ v.Blue = xgb.Get16(buf[b:])
+ b += 2
-const (
- PolyModePrecise = 0
- PolyModeImprecise = 1
-)
+ v.Alpha = xgb.Get16(buf[b:])
+ b += 2
+
+ return b
+}
+
+// ColorReadList reads a byte slice into a list of Color values.
+func ColorReadList(buf []byte, dest []Color) int {
+ b := 0
+ for i := 0; i < len(dest); i++ {
+ dest[i] = Color{}
+ b += ColorRead(buf[b:], &dest[i])
+ }
+ return xgb.Pad(b)
+}
+
+// Bytes writes a Color value to a byte slice.
+func (v Color) Bytes() []byte {
+ buf := make([]byte, 8)
+ b := 0
+
+ xgb.Put16(buf[b:], v.Red)
+ b += 2
+
+ xgb.Put16(buf[b:], v.Green)
+ b += 2
+
+ xgb.Put16(buf[b:], v.Blue)
+ b += 2
+
+ xgb.Put16(buf[b:], v.Alpha)
+ b += 2
+
+ return buf
+}
+
+// ColorListBytes writes a list of Color values to a byte slice.
+func ColorListBytes(buf []byte, list []Color) int {
+ b := 0
+ var structBytes []byte
+ for _, item := range list {
+ structBytes = item.Bytes()
+ copy(buf[b:], structBytes)
+ b += xgb.Pad(len(structBytes))
+ }
+ return b
+}
const (
CpRepeat = 1
@@ -155,56 +178,6 @@ const (
CpComponentAlpha = 4096
)
-const (
- SubPixelUnknown = 0
- SubPixelHorizontalRGB = 1
- SubPixelHorizontalBGR = 2
- SubPixelVerticalRGB = 3
- SubPixelVerticalBGR = 4
- SubPixelNone = 5
-)
-
-const (
- RepeatNone = 0
- RepeatNormal = 1
- RepeatPad = 2
- RepeatReflect = 3
-)
-
-type Glyphset uint32
-
-func NewGlyphsetId(c *xgb.Conn) (Glyphset, error) {
- id, err := c.NewId()
- if err != nil {
- return 0, err
- }
- return Glyphset(id), nil
-}
-
-type Picture uint32
-
-func NewPictureId(c *xgb.Conn) (Picture, error) {
- id, err := c.NewId()
- if err != nil {
- return 0, err
- }
- return Picture(id), nil
-}
-
-type Pictformat uint32
-
-func NewPictformatId(c *xgb.Conn) (Pictformat, error) {
- id, err := c.NewId()
- if err != nil {
- return 0, err
- }
- return Pictformat(id), nil
-}
-
-type Glyph uint32
-
-type Fixed int32
-
type Directformat struct {
RedShift uint16
RedMask uint16
@@ -301,79 +274,259 @@ func DirectformatListBytes(buf []byte, list []Directformat) int {
return b
}
-type Pictforminfo struct {
- Id Pictformat
- Type byte
- Depth byte
- // padding: 2 bytes
- Direct Directformat
- Colormap xproto.Colormap
+type Fixed int32
+
+type Glyph uint32
+
+// BadGlyph is the error number for a BadGlyph.
+const BadGlyph = 4
+
+type GlyphError struct {
+ Sequence uint16
+ NiceName string
}
-// PictforminfoRead reads a byte slice into a Pictforminfo value.
-func PictforminfoRead(buf []byte, v *Pictforminfo) int {
+// GlyphErrorNew constructs a GlyphError value that implements xgb.Error from a byte slice.
+func GlyphErrorNew(buf []byte) xgb.Error {
+ v := GlyphError{}
+ v.NiceName = "Glyph"
+
+ b := 1 // skip error determinant
+ b += 1 // don't read error number
+
+ v.Sequence = xgb.Get16(buf[b:])
+ b += 2
+
+ return v
+}
+
+// SequenceId returns the sequence id attached to the BadGlyph error.
+// This is mostly used internally.
+func (err GlyphError) SequenceId() uint16 {
+ return err.Sequence
+}
+
+// BadId returns the 'BadValue' number if one exists for the BadGlyph error. If no bad value exists, 0 is returned.
+func (err GlyphError) BadId() uint32 {
+ return 0
+}
+
+// Error returns a rudimentary string representation of the BadGlyph error.
+
+func (err GlyphError) Error() string {
+ fieldVals := make([]string, 0, 0)
+ fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
+ fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
+ return "BadGlyph {" + xgb.StringsJoin(fieldVals, ", ") + "}"
+}
+
+func init() {
+ xgb.NewExtErrorFuncs["RENDER"][4] = GlyphErrorNew
+}
+
+// BadGlyphSet is the error number for a BadGlyphSet.
+const BadGlyphSet = 3
+
+type GlyphSetError struct {
+ Sequence uint16
+ NiceName string
+}
+
+// GlyphSetErrorNew constructs a GlyphSetError value that implements xgb.Error from a byte slice.
+func GlyphSetErrorNew(buf []byte) xgb.Error {
+ v := GlyphSetError{}
+ v.NiceName = "GlyphSet"
+
+ b := 1 // skip error determinant
+ b += 1 // don't read error number
+
+ v.Sequence = xgb.Get16(buf[b:])
+ b += 2
+
+ return v
+}
+
+// SequenceId returns the sequence id attached to the BadGlyphSet error.
+// This is mostly used internally.
+func (err GlyphSetError) SequenceId() uint16 {
+ return err.Sequence
+}
+
+// BadId returns the 'BadValue' number if one exists for the BadGlyphSet error. If no bad value exists, 0 is returned.
+func (err GlyphSetError) BadId() uint32 {
+ return 0
+}
+
+// Error returns a rudimentary string representation of the BadGlyphSet error.
+
+func (err GlyphSetError) Error() string {
+ fieldVals := make([]string, 0, 0)
+ fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
+ fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
+ return "BadGlyphSet {" + xgb.StringsJoin(fieldVals, ", ") + "}"
+}
+
+func init() {
+ xgb.NewExtErrorFuncs["RENDER"][3] = GlyphSetErrorNew
+}
+
+type Glyphinfo struct {
+ Width uint16
+ Height uint16
+ X int16
+ Y int16
+ XOff int16
+ YOff int16
+}
+
+// GlyphinfoRead reads a byte slice into a Glyphinfo value.
+func GlyphinfoRead(buf []byte, v *Glyphinfo) int {
b := 0
- v.Id = Pictformat(xgb.Get32(buf[b:]))
- b += 4
+ v.Width = xgb.Get16(buf[b:])
+ b += 2
- v.Type = buf[b]
- b += 1
+ v.Height = xgb.Get16(buf[b:])
+ b += 2
- v.Depth = buf[b]
- b += 1
+ v.X = int16(xgb.Get16(buf[b:]))
+ b += 2
- b += 2 // padding
+ v.Y = int16(xgb.Get16(buf[b:]))
+ b += 2
- v.Direct = Directformat{}
- b += DirectformatRead(buf[b:], &v.Direct)
+ v.XOff = int16(xgb.Get16(buf[b:]))
+ b += 2
- v.Colormap = xproto.Colormap(xgb.Get32(buf[b:]))
- b += 4
+ v.YOff = int16(xgb.Get16(buf[b:]))
+ b += 2
return b
}
-// PictforminfoReadList reads a byte slice into a list of Pictforminfo values.
-func PictforminfoReadList(buf []byte, dest []Pictforminfo) int {
+// GlyphinfoReadList reads a byte slice into a list of Glyphinfo values.
+func GlyphinfoReadList(buf []byte, dest []Glyphinfo) int {
b := 0
for i := 0; i < len(dest); i++ {
- dest[i] = Pictforminfo{}
- b += PictforminfoRead(buf[b:], &dest[i])
+ dest[i] = Glyphinfo{}
+ b += GlyphinfoRead(buf[b:], &dest[i])
}
return xgb.Pad(b)
}
-// Bytes writes a Pictforminfo value to a byte slice.
-func (v Pictforminfo) Bytes() []byte {
- buf := make([]byte, 28)
+// Bytes writes a Glyphinfo value to a byte slice.
+func (v Glyphinfo) Bytes() []byte {
+ buf := make([]byte, 12)
b := 0
- xgb.Put32(buf[b:], uint32(v.Id))
- b += 4
+ xgb.Put16(buf[b:], v.Width)
+ b += 2
- buf[b] = v.Type
- b += 1
+ xgb.Put16(buf[b:], v.Height)
+ b += 2
- buf[b] = v.Depth
- b += 1
+ xgb.Put16(buf[b:], uint16(v.X))
+ b += 2
- b += 2 // padding
+ xgb.Put16(buf[b:], uint16(v.Y))
+ b += 2
- {
- structBytes := v.Direct.Bytes()
+ xgb.Put16(buf[b:], uint16(v.XOff))
+ b += 2
+
+ xgb.Put16(buf[b:], uint16(v.YOff))
+ b += 2
+
+ return buf
+}
+
+// GlyphinfoListBytes writes a list of Glyphinfo values to a byte slice.
+func GlyphinfoListBytes(buf []byte, list []Glyphinfo) int {
+ b := 0
+ var structBytes []byte
+ for _, item := range list {
+ structBytes = item.Bytes()
copy(buf[b:], structBytes)
b += xgb.Pad(len(structBytes))
}
+ return b
+}
- xgb.Put32(buf[b:], uint32(v.Colormap))
+type Glyphset uint32
+
+func NewGlyphsetId(c *xgb.Conn) (Glyphset, error) {
+ id, err := c.NewId()
+ if err != nil {
+ return 0, err
+ }
+ return Glyphset(id), nil
+}
+
+type Indexvalue struct {
+ Pixel uint32
+ Red uint16
+ Green uint16
+ Blue uint16
+ Alpha uint16
+}
+
+// IndexvalueRead reads a byte slice into a Indexvalue value.
+func IndexvalueRead(buf []byte, v *Indexvalue) int {
+ b := 0
+
+ v.Pixel = xgb.Get32(buf[b:])
+ b += 4
+
+ v.Red = xgb.Get16(buf[b:])
+ b += 2
+
+ v.Green = xgb.Get16(buf[b:])
+ b += 2
+
+ v.Blue = xgb.Get16(buf[b:])
+ b += 2
+
+ v.Alpha = xgb.Get16(buf[b:])
+ b += 2
+
+ return b
+}
+
+// IndexvalueReadList reads a byte slice into a list of Indexvalue values.
+func IndexvalueReadList(buf []byte, dest []Indexvalue) int {
+ b := 0
+ for i := 0; i < len(dest); i++ {
+ dest[i] = Indexvalue{}
+ b += IndexvalueRead(buf[b:], &dest[i])
+ }
+ return xgb.Pad(b)
+}
+
+// Bytes writes a Indexvalue value to a byte slice.
+func (v Indexvalue) Bytes() []byte {
+ buf := make([]byte, 12)
+ b := 0
+
+ xgb.Put32(buf[b:], v.Pixel)
b += 4
+ xgb.Put16(buf[b:], v.Red)
+ b += 2
+
+ xgb.Put16(buf[b:], v.Green)
+ b += 2
+
+ xgb.Put16(buf[b:], v.Blue)
+ b += 2
+
+ xgb.Put16(buf[b:], v.Alpha)
+ b += 2
+
return buf
}
-// PictforminfoListBytes writes a list of Pictforminfo values to a byte slice.
-func PictforminfoListBytes(buf []byte, list []Pictforminfo) int {
+// IndexvalueListBytes writes a list of Indexvalue values to a byte slice.
+func IndexvalueListBytes(buf []byte, list []Indexvalue) int {
b := 0
var structBytes []byte
for _, item := range list {
@@ -384,50 +537,56 @@ func PictforminfoListBytes(buf []byte, list []Pictforminfo) int {
return b
}
-type Pictvisual struct {
- Visual xproto.Visualid
- Format Pictformat
+type Linefix struct {
+ P1 Pointfix
+ P2 Pointfix
}
-// PictvisualRead reads a byte slice into a Pictvisual value.
-func PictvisualRead(buf []byte, v *Pictvisual) int {
+// LinefixRead reads a byte slice into a Linefix value.
+func LinefixRead(buf []byte, v *Linefix) int {
b := 0
- v.Visual = xproto.Visualid(xgb.Get32(buf[b:]))
- b += 4
+ v.P1 = Pointfix{}
+ b += PointfixRead(buf[b:], &v.P1)
- v.Format = Pictformat(xgb.Get32(buf[b:]))
- b += 4
+ v.P2 = Pointfix{}
+ b += PointfixRead(buf[b:], &v.P2)
return b
}
-// PictvisualReadList reads a byte slice into a list of Pictvisual values.
-func PictvisualReadList(buf []byte, dest []Pictvisual) int {
+// LinefixReadList reads a byte slice into a list of Linefix values.
+func LinefixReadList(buf []byte, dest []Linefix) int {
b := 0
for i := 0; i < len(dest); i++ {
- dest[i] = Pictvisual{}
- b += PictvisualRead(buf[b:], &dest[i])
+ dest[i] = Linefix{}
+ b += LinefixRead(buf[b:], &dest[i])
}
return xgb.Pad(b)
}
-// Bytes writes a Pictvisual value to a byte slice.
-func (v Pictvisual) Bytes() []byte {
- buf := make([]byte, 8)
+// Bytes writes a Linefix value to a byte slice.
+func (v Linefix) Bytes() []byte {
+ buf := make([]byte, 16)
b := 0
- xgb.Put32(buf[b:], uint32(v.Visual))
- b += 4
+ {
+ structBytes := v.P1.Bytes()
+ copy(buf[b:], structBytes)
+ b += xgb.Pad(len(structBytes))
+ }
- xgb.Put32(buf[b:], uint32(v.Format))
- b += 4
+ {
+ structBytes := v.P2.Bytes()
+ copy(buf[b:], structBytes)
+ b += xgb.Pad(len(structBytes))
+ }
return buf
}
-// PictvisualListBytes writes a list of Pictvisual values to a byte slice.
-func PictvisualListBytes(buf []byte, list []Pictvisual) int {
+// LinefixListBytes writes a list of Linefix values to a byte slice.
+func LinefixListBytes(buf []byte, list []Linefix) int {
b := 0
var structBytes []byte
for _, item := range list {
@@ -438,6 +597,159 @@ func PictvisualListBytes(buf []byte, list []Pictvisual) int {
return b
}
+// BadPictFormat is the error number for a BadPictFormat.
+const BadPictFormat = 0
+
+type PictFormatError struct {
+ Sequence uint16
+ NiceName string
+}
+
+// PictFormatErrorNew constructs a PictFormatError value that implements xgb.Error from a byte slice.
+func PictFormatErrorNew(buf []byte) xgb.Error {
+ v := PictFormatError{}
+ v.NiceName = "PictFormat"
+
+ b := 1 // skip error determinant
+ b += 1 // don't read error number
+
+ v.Sequence = xgb.Get16(buf[b:])
+ b += 2
+
+ return v
+}
+
+// SequenceId returns the sequence id attached to the BadPictFormat error.
+// This is mostly used internally.
+func (err PictFormatError) SequenceId() uint16 {
+ return err.Sequence
+}
+
+// BadId returns the 'BadValue' number if one exists for the BadPictFormat error. If no bad value exists, 0 is returned.
+func (err PictFormatError) BadId() uint32 {
+ return 0
+}
+
+// Error returns a rudimentary string representation of the BadPictFormat error.
+
+func (err PictFormatError) Error() string {
+ fieldVals := make([]string, 0, 0)
+ fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
+ fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
+ return "BadPictFormat {" + xgb.StringsJoin(fieldVals, ", ") + "}"
+}
+
+func init() {
+ xgb.NewExtErrorFuncs["RENDER"][0] = PictFormatErrorNew
+}
+
+// BadPictOp is the error number for a BadPictOp.
+const BadPictOp = 2
+
+type PictOpError struct {
+ Sequence uint16
+ NiceName string
+}
+
+// PictOpErrorNew constructs a PictOpError value that implements xgb.Error from a byte slice.
+func PictOpErrorNew(buf []byte) xgb.Error {
+ v := PictOpError{}
+ v.NiceName = "PictOp"
+
+ b := 1 // skip error determinant
+ b += 1 // don't read error number
+
+ v.Sequence = xgb.Get16(buf[b:])
+ b += 2
+
+ return v
+}
+
+// SequenceId returns the sequence id attached to the BadPictOp error.
+// This is mostly used internally.
+func (err PictOpError) SequenceId() uint16 {
+ return err.Sequence
+}
+
+// BadId returns the 'BadValue' number if one exists for the BadPictOp error. If no bad value exists, 0 is returned.
+func (err PictOpError) BadId() uint32 {
+ return 0
+}
+
+// Error returns a rudimentary string representation of the BadPictOp error.
+
+func (err PictOpError) Error() string {
+ fieldVals := make([]string, 0, 0)
+ fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
+ fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
+ return "BadPictOp {" + xgb.StringsJoin(fieldVals, ", ") + "}"
+}
+
+func init() {
+ xgb.NewExtErrorFuncs["RENDER"][2] = PictOpErrorNew
+}
+
+const (
+ PictOpClear = 0
+ PictOpSrc = 1
+ PictOpDst = 2
+ PictOpOver = 3
+ PictOpOverReverse = 4
+ PictOpIn = 5
+ PictOpInReverse = 6
+ PictOpOut = 7
+ PictOpOutReverse = 8
+ PictOpAtop = 9
+ PictOpAtopReverse = 10
+ PictOpXor = 11
+ PictOpAdd = 12
+ PictOpSaturate = 13
+ PictOpDisjointClear = 16
+ PictOpDisjointSrc = 17
+ PictOpDisjointDst = 18
+ PictOpDisjointOver = 19
+ PictOpDisjointOverReverse = 20
+ PictOpDisjointIn = 21
+ PictOpDisjointInReverse = 22
+ PictOpDisjointOut = 23
+ PictOpDisjointOutReverse = 24
+ PictOpDisjointAtop = 25
+ PictOpDisjointAtopReverse = 26
+ PictOpDisjointXor = 27
+ PictOpConjointClear = 32
+ PictOpConjointSrc = 33
+ PictOpConjointDst = 34
+ PictOpConjointOver = 35
+ PictOpConjointOverReverse = 36
+ PictOpConjointIn = 37
+ PictOpConjointInReverse = 38
+ PictOpConjointOut = 39
+ PictOpConjointOutReverse = 40
+ PictOpConjointAtop = 41
+ PictOpConjointAtopReverse = 42
+ PictOpConjointXor = 43
+ PictOpMultiply = 48
+ PictOpScreen = 49
+ PictOpOverlay = 50
+ PictOpDarken = 51
+ PictOpLighten = 52
+ PictOpColorDodge = 53
+ PictOpColorBurn = 54
+ PictOpHardLight = 55
+ PictOpSoftLight = 56
+ PictOpDifference = 57
+ PictOpExclusion = 58
+ PictOpHSLHue = 59
+ PictOpHSLSaturation = 60
+ PictOpHSLColor = 61
+ PictOpHSLLuminosity = 62
+)
+
+const (
+ PictTypeIndexed = 0
+ PictTypeDirect = 1
+)
+
type Pictdepth struct {
Depth byte
// padding: 1 bytes
@@ -517,6 +829,99 @@ func PictdepthListSize(list []Pictdepth) int {
return size
}
+type Pictformat uint32
+
+func NewPictformatId(c *xgb.Conn) (Pictformat, error) {
+ id, err := c.NewId()
+ if err != nil {
+ return 0, err
+ }
+ return Pictformat(id), nil
+}
+
+type Pictforminfo struct {
+ Id Pictformat
+ Type byte
+ Depth byte
+ // padding: 2 bytes
+ Direct Directformat
+ Colormap xproto.Colormap
+}
+
+// PictforminfoRead reads a byte slice into a Pictforminfo value.
+func PictforminfoRead(buf []byte, v *Pictforminfo) int {
+ b := 0
+
+ v.Id = Pictformat(xgb.Get32(buf[b:]))
+ b += 4
+
+ v.Type = buf[b]
+ b += 1
+
+ v.Depth = buf[b]
+ b += 1
+
+ b += 2 // padding
+
+ v.Direct = Directformat{}
+ b += DirectformatRead(buf[b:], &v.Direct)
+
+ v.Colormap = xproto.Colormap(xgb.Get32(buf[b:]))
+ b += 4
+
+ return b
+}
+
+// PictforminfoReadList reads a byte slice into a list of Pictforminfo values.
+func PictforminfoReadList(buf []byte, dest []Pictforminfo) int {
+ b := 0
+ for i := 0; i < len(dest); i++ {
+ dest[i] = Pictforminfo{}
+ b += PictforminfoRead(buf[b:], &dest[i])
+ }
+ return xgb.Pad(b)
+}
+
+// Bytes writes a Pictforminfo value to a byte slice.
+func (v Pictforminfo) Bytes() []byte {
+ buf := make([]byte, 28)
+ b := 0
+
+ xgb.Put32(buf[b:], uint32(v.Id))
+ b += 4
+
+ buf[b] = v.Type
+ b += 1
+
+ buf[b] = v.Depth
+ b += 1
+
+ b += 2 // padding
+
+ {
+ structBytes := v.Direct.Bytes()
+ copy(buf[b:], structBytes)
+ b += xgb.Pad(len(structBytes))
+ }
+
+ xgb.Put32(buf[b:], uint32(v.Colormap))
+ b += 4
+
+ return buf
+}
+
+// PictforminfoListBytes writes a list of Pictforminfo values to a byte slice.
+func PictforminfoListBytes(buf []byte, list []Pictforminfo) int {
+ b := 0
+ var structBytes []byte
+ for _, item := range list {
+ structBytes = item.Bytes()
+ copy(buf[b:], structBytes)
+ b += xgb.Pad(len(structBytes))
+ }
+ return b
+}
+
type Pictscreen struct {
NumDepths uint32
Fallback Pictformat
@@ -586,139 +991,110 @@ func PictscreenListSize(list []Pictscreen) int {
return size
}
-type Indexvalue struct {
- Pixel uint32
- Red uint16
- Green uint16
- Blue uint16
- Alpha uint16
-}
+type Picture uint32
-// IndexvalueRead reads a byte slice into a Indexvalue value.
-func IndexvalueRead(buf []byte, v *Indexvalue) int {
- b := 0
+func NewPictureId(c *xgb.Conn) (Picture, error) {
+ id, err := c.NewId()
+ if err != nil {
+ return 0, err
+ }
+ return Picture(id), nil
+}
- v.Pixel = xgb.Get32(buf[b:])
- b += 4
+// BadPicture is the error number for a BadPicture.
+const BadPicture = 1
- v.Red = xgb.Get16(buf[b:])
- b += 2
+type PictureError struct {
+ Sequence uint16
+ NiceName string
+}
- v.Green = xgb.Get16(buf[b:])
- b += 2
+// PictureErrorNew constructs a PictureError value that implements xgb.Error from a byte slice.
+func PictureErrorNew(buf []byte) xgb.Error {
+ v := PictureError{}
+ v.NiceName = "Picture"
- v.Blue = xgb.Get16(buf[b:])
- b += 2
+ b := 1 // skip error determinant
+ b += 1 // don't read error number
- v.Alpha = xgb.Get16(buf[b:])
+ v.Sequence = xgb.Get16(buf[b:])
b += 2
- return b
+ return v
}
-// IndexvalueReadList reads a byte slice into a list of Indexvalue values.
-func IndexvalueReadList(buf []byte, dest []Indexvalue) int {
- b := 0
- for i := 0; i < len(dest); i++ {
- dest[i] = Indexvalue{}
- b += IndexvalueRead(buf[b:], &dest[i])
- }
- return xgb.Pad(b)
+// SequenceId returns the sequence id attached to the BadPicture error.
+// This is mostly used internally.
+func (err PictureError) SequenceId() uint16 {
+ return err.Sequence
}
-// Bytes writes a Indexvalue value to a byte slice.
-func (v Indexvalue) Bytes() []byte {
- buf := make([]byte, 12)
- b := 0
-
- xgb.Put32(buf[b:], v.Pixel)
- b += 4
-
- xgb.Put16(buf[b:], v.Red)
- b += 2
-
- xgb.Put16(buf[b:], v.Green)
- b += 2
-
- xgb.Put16(buf[b:], v.Blue)
- b += 2
+// BadId returns the 'BadValue' number if one exists for the BadPicture error. If no bad value exists, 0 is returned.
+func (err PictureError) BadId() uint32 {
+ return 0
+}
- xgb.Put16(buf[b:], v.Alpha)
- b += 2
+// Error returns a rudimentary string representation of the BadPicture error.
- return buf
+func (err PictureError) Error() string {
+ fieldVals := make([]string, 0, 0)
+ fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
+ fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
+ return "BadPicture {" + xgb.StringsJoin(fieldVals, ", ") + "}"
}
-// IndexvalueListBytes writes a list of Indexvalue values to a byte slice.
-func IndexvalueListBytes(buf []byte, list []Indexvalue) int {
- b := 0
- var structBytes []byte
- for _, item := range list {
- structBytes = item.Bytes()
- copy(buf[b:], structBytes)
- b += xgb.Pad(len(structBytes))
- }
- return b
+func init() {
+ xgb.NewExtErrorFuncs["RENDER"][1] = PictureErrorNew
}
-type Color struct {
- Red uint16
- Green uint16
- Blue uint16
- Alpha uint16
+const (
+ PictureNone = 0
+)
+
+type Pictvisual struct {
+ Visual xproto.Visualid
+ Format Pictformat
}
-// ColorRead reads a byte slice into a Color value.
-func ColorRead(buf []byte, v *Color) int {
+// PictvisualRead reads a byte slice into a Pictvisual value.
+func PictvisualRead(buf []byte, v *Pictvisual) int {
b := 0
- v.Red = xgb.Get16(buf[b:])
- b += 2
-
- v.Green = xgb.Get16(buf[b:])
- b += 2
-
- v.Blue = xgb.Get16(buf[b:])
- b += 2
+ v.Visual = xproto.Visualid(xgb.Get32(buf[b:]))
+ b += 4
- v.Alpha = xgb.Get16(buf[b:])
- b += 2
+ v.Format = Pictformat(xgb.Get32(buf[b:]))
+ b += 4
return b
}
-// ColorReadList reads a byte slice into a list of Color values.
-func ColorReadList(buf []byte, dest []Color) int {
+// PictvisualReadList reads a byte slice into a list of Pictvisual values.
+func PictvisualReadList(buf []byte, dest []Pictvisual) int {
b := 0
for i := 0; i < len(dest); i++ {
- dest[i] = Color{}
- b += ColorRead(buf[b:], &dest[i])
+ dest[i] = Pictvisual{}
+ b += PictvisualRead(buf[b:], &dest[i])
}
return xgb.Pad(b)
}
-// Bytes writes a Color value to a byte slice.
-func (v Color) Bytes() []byte {
+// Bytes writes a Pictvisual value to a byte slice.
+func (v Pictvisual) Bytes() []byte {
buf := make([]byte, 8)
b := 0
- xgb.Put16(buf[b:], v.Red)
- b += 2
-
- xgb.Put16(buf[b:], v.Green)
- b += 2
-
- xgb.Put16(buf[b:], v.Blue)
- b += 2
+ xgb.Put32(buf[b:], uint32(v.Visual))
+ b += 4
- xgb.Put16(buf[b:], v.Alpha)
- b += 2
+ xgb.Put32(buf[b:], uint32(v.Format))
+ b += 4
return buf
}
-// ColorListBytes writes a list of Color values to a byte slice.
-func ColorListBytes(buf []byte, list []Color) int {
+// PictvisualListBytes writes a list of Pictvisual values to a byte slice.
+func PictvisualListBytes(buf []byte, list []Pictvisual) int {
b := 0
var structBytes []byte
for _, item := range list {
@@ -783,200 +1159,74 @@ func PointfixListBytes(buf []byte, list []Pointfix) int {
return b
}
-type Linefix struct {
- P1 Pointfix
- P2 Pointfix
-}
-
-// LinefixRead reads a byte slice into a Linefix value.
-func LinefixRead(buf []byte, v *Linefix) int {
- b := 0
-
- v.P1 = Pointfix{}
- b += PointfixRead(buf[b:], &v.P1)
-
- v.P2 = Pointfix{}
- b += PointfixRead(buf[b:], &v.P2)
-
- return b
-}
-
-// LinefixReadList reads a byte slice into a list of Linefix values.
-func LinefixReadList(buf []byte, dest []Linefix) int {
- b := 0
- for i := 0; i < len(dest); i++ {
- dest[i] = Linefix{}
- b += LinefixRead(buf[b:], &dest[i])
- }
- return xgb.Pad(b)
-}
-
-// Bytes writes a Linefix value to a byte slice.
-func (v Linefix) Bytes() []byte {
- buf := make([]byte, 16)
- b := 0
-
- {
- structBytes := v.P1.Bytes()
- copy(buf[b:], structBytes)
- b += xgb.Pad(len(structBytes))
- }
-
- {
- structBytes := v.P2.Bytes()
- copy(buf[b:], structBytes)
- b += xgb.Pad(len(structBytes))
- }
-
- return buf
-}
-
-// LinefixListBytes writes a list of Linefix values to a byte slice.
-func LinefixListBytes(buf []byte, list []Linefix) int {
- b := 0
- var structBytes []byte
- for _, item := range list {
- structBytes = item.Bytes()
- copy(buf[b:], structBytes)
- b += xgb.Pad(len(structBytes))
- }
- return b
-}
-
-type Triangle struct {
- P1 Pointfix
- P2 Pointfix
- P3 Pointfix
-}
-
-// TriangleRead reads a byte slice into a Triangle value.
-func TriangleRead(buf []byte, v *Triangle) int {
- b := 0
-
- v.P1 = Pointfix{}
- b += PointfixRead(buf[b:], &v.P1)
-
- v.P2 = Pointfix{}
- b += PointfixRead(buf[b:], &v.P2)
-
- v.P3 = Pointfix{}
- b += PointfixRead(buf[b:], &v.P3)
-
- return b
-}
-
-// TriangleReadList reads a byte slice into a list of Triangle values.
-func TriangleReadList(buf []byte, dest []Triangle) int {
- b := 0
- for i := 0; i < len(dest); i++ {
- dest[i] = Triangle{}
- b += TriangleRead(buf[b:], &dest[i])
- }
- return xgb.Pad(b)
-}
-
-// Bytes writes a Triangle value to a byte slice.
-func (v Triangle) Bytes() []byte {
- buf := make([]byte, 24)
- b := 0
-
- {
- structBytes := v.P1.Bytes()
- copy(buf[b:], structBytes)
- b += xgb.Pad(len(structBytes))
- }
-
- {
- structBytes := v.P2.Bytes()
- copy(buf[b:], structBytes)
- b += xgb.Pad(len(structBytes))
- }
-
- {
- structBytes := v.P3.Bytes()
- copy(buf[b:], structBytes)
- b += xgb.Pad(len(structBytes))
- }
+const (
+ PolyEdgeSharp = 0
+ PolyEdgeSmooth = 1
+)
- return buf
-}
+const (
+ PolyModePrecise = 0
+ PolyModeImprecise = 1
+)
-// TriangleListBytes writes a list of Triangle values to a byte slice.
-func TriangleListBytes(buf []byte, list []Triangle) int {
- b := 0
- var structBytes []byte
- for _, item := range list {
- structBytes = item.Bytes()
- copy(buf[b:], structBytes)
- b += xgb.Pad(len(structBytes))
- }
- return b
-}
+const (
+ RepeatNone = 0
+ RepeatNormal = 1
+ RepeatPad = 2
+ RepeatReflect = 3
+)
-type Trapezoid struct {
- Top Fixed
- Bottom Fixed
- Left Linefix
- Right Linefix
+type Spanfix struct {
+ L Fixed
+ R Fixed
+ Y Fixed
}
-// TrapezoidRead reads a byte slice into a Trapezoid value.
-func TrapezoidRead(buf []byte, v *Trapezoid) int {
+// SpanfixRead reads a byte slice into a Spanfix value.
+func SpanfixRead(buf []byte, v *Spanfix) int {
b := 0
- v.Top = Fixed(xgb.Get32(buf[b:]))
+ v.L = Fixed(xgb.Get32(buf[b:]))
b += 4
- v.Bottom = Fixed(xgb.Get32(buf[b:]))
+ v.R = Fixed(xgb.Get32(buf[b:]))
b += 4
- v.Left = Linefix{}
- b += LinefixRead(buf[b:], &v.Left)
-
- v.Right = Linefix{}
- b += LinefixRead(buf[b:], &v.Right)
+ v.Y = Fixed(xgb.Get32(buf[b:]))
+ b += 4
return b
}
-// TrapezoidReadList reads a byte slice into a list of Trapezoid values.
-func TrapezoidReadList(buf []byte, dest []Trapezoid) int {
+// SpanfixReadList reads a byte slice into a list of Spanfix values.
+func SpanfixReadList(buf []byte, dest []Spanfix) int {
b := 0
for i := 0; i < len(dest); i++ {
- dest[i] = Trapezoid{}
- b += TrapezoidRead(buf[b:], &dest[i])
+ dest[i] = Spanfix{}
+ b += SpanfixRead(buf[b:], &dest[i])
}
return xgb.Pad(b)
}
-// Bytes writes a Trapezoid value to a byte slice.
-func (v Trapezoid) Bytes() []byte {
- buf := make([]byte, 40)
+// Bytes writes a Spanfix value to a byte slice.
+func (v Spanfix) Bytes() []byte {
+ buf := make([]byte, 12)
b := 0
- xgb.Put32(buf[b:], uint32(v.Top))
+ xgb.Put32(buf[b:], uint32(v.L))
b += 4
- xgb.Put32(buf[b:], uint32(v.Bottom))
+ xgb.Put32(buf[b:], uint32(v.R))
b += 4
- {
- structBytes := v.Left.Bytes()
- copy(buf[b:], structBytes)
- b += xgb.Pad(len(structBytes))
- }
-
- {
- structBytes := v.Right.Bytes()
- copy(buf[b:], structBytes)
- b += xgb.Pad(len(structBytes))
- }
+ xgb.Put32(buf[b:], uint32(v.Y))
+ b += 4
return buf
}
-// TrapezoidListBytes writes a list of Trapezoid values to a byte slice.
-func TrapezoidListBytes(buf []byte, list []Trapezoid) int {
+// SpanfixListBytes writes a list of Spanfix values to a byte slice.
+func SpanfixListBytes(buf []byte, list []Spanfix) int {
b := 0
var structBytes []byte
for _, item := range list {
@@ -987,87 +1237,14 @@ func TrapezoidListBytes(buf []byte, list []Trapezoid) int {
return b
}
-type Glyphinfo struct {
- Width uint16
- Height uint16
- X int16
- Y int16
- XOff int16
- YOff int16
-}
-
-// GlyphinfoRead reads a byte slice into a Glyphinfo value.
-func GlyphinfoRead(buf []byte, v *Glyphinfo) int {
- b := 0
-
- v.Width = xgb.Get16(buf[b:])
- b += 2
-
- v.Height = xgb.Get16(buf[b:])
- b += 2
-
- v.X = int16(xgb.Get16(buf[b:]))
- b += 2
-
- v.Y = int16(xgb.Get16(buf[b:]))
- b += 2
-
- v.XOff = int16(xgb.Get16(buf[b:]))
- b += 2
-
- v.YOff = int16(xgb.Get16(buf[b:]))
- b += 2
-
- return b
-}
-
-// GlyphinfoReadList reads a byte slice into a list of Glyphinfo values.
-func GlyphinfoReadList(buf []byte, dest []Glyphinfo) int {
- b := 0
- for i := 0; i < len(dest); i++ {
- dest[i] = Glyphinfo{}
- b += GlyphinfoRead(buf[b:], &dest[i])
- }
- return xgb.Pad(b)
-}
-
-// Bytes writes a Glyphinfo value to a byte slice.
-func (v Glyphinfo) Bytes() []byte {
- buf := make([]byte, 12)
- b := 0
-
- xgb.Put16(buf[b:], v.Width)
- b += 2
-
- xgb.Put16(buf[b:], v.Height)
- b += 2
-
- xgb.Put16(buf[b:], uint16(v.X))
- b += 2
-
- xgb.Put16(buf[b:], uint16(v.Y))
- b += 2
-
- xgb.Put16(buf[b:], uint16(v.XOff))
- b += 2
-
- xgb.Put16(buf[b:], uint16(v.YOff))
- b += 2
-
- return buf
-}
-
-// GlyphinfoListBytes writes a list of Glyphinfo values to a byte slice.
-func GlyphinfoListBytes(buf []byte, list []Glyphinfo) int {
- b := 0
- var structBytes []byte
- for _, item := range list {
- structBytes = item.Bytes()
- copy(buf[b:], structBytes)
- b += xgb.Pad(len(structBytes))
- }
- return b
-}
+const (
+ SubPixelUnknown = 0
+ SubPixelHorizontalRGB = 1
+ SubPixelHorizontalBGR = 2
+ SubPixelVerticalRGB = 3
+ SubPixelVerticalBGR = 4
+ SubPixelNone = 5
+)
type Transform struct {
Matrix11 Fixed
@@ -1172,50 +1349,56 @@ func TransformListBytes(buf []byte, list []Transform) int {
return b
}
-type Animcursorelt struct {
- Cursor xproto.Cursor
- Delay uint32
+type Trap struct {
+ Top Spanfix
+ Bot Spanfix
}
-// AnimcursoreltRead reads a byte slice into a Animcursorelt value.
-func AnimcursoreltRead(buf []byte, v *Animcursorelt) int {
+// TrapRead reads a byte slice into a Trap value.
+func TrapRead(buf []byte, v *Trap) int {
b := 0
- v.Cursor = xproto.Cursor(xgb.Get32(buf[b:]))
- b += 4
+ v.Top = Spanfix{}
+ b += SpanfixRead(buf[b:], &v.Top)
- v.Delay = xgb.Get32(buf[b:])
- b += 4
+ v.Bot = Spanfix{}
+ b += SpanfixRead(buf[b:], &v.Bot)
return b
}
-// AnimcursoreltReadList reads a byte slice into a list of Animcursorelt values.
-func AnimcursoreltReadList(buf []byte, dest []Animcursorelt) int {
+// TrapReadList reads a byte slice into a list of Trap values.
+func TrapReadList(buf []byte, dest []Trap) int {
b := 0
for i := 0; i < len(dest); i++ {
- dest[i] = Animcursorelt{}
- b += AnimcursoreltRead(buf[b:], &dest[i])
+ dest[i] = Trap{}
+ b += TrapRead(buf[b:], &dest[i])
}
return xgb.Pad(b)
}
-// Bytes writes a Animcursorelt value to a byte slice.
-func (v Animcursorelt) Bytes() []byte {
- buf := make([]byte, 8)
+// Bytes writes a Trap value to a byte slice.
+func (v Trap) Bytes() []byte {
+ buf := make([]byte, 24)
b := 0
- xgb.Put32(buf[b:], uint32(v.Cursor))
- b += 4
+ {
+ structBytes := v.Top.Bytes()
+ copy(buf[b:], structBytes)
+ b += xgb.Pad(len(structBytes))
+ }
- xgb.Put32(buf[b:], v.Delay)
- b += 4
+ {
+ structBytes := v.Bot.Bytes()
+ copy(buf[b:], structBytes)
+ b += xgb.Pad(len(structBytes))
+ }
return buf
}
-// AnimcursoreltListBytes writes a list of Animcursorelt values to a byte slice.
-func AnimcursoreltListBytes(buf []byte, list []Animcursorelt) int {
+// TrapListBytes writes a list of Trap values to a byte slice.
+func TrapListBytes(buf []byte, list []Trap) int {
b := 0
var structBytes []byte
for _, item := range list {
@@ -1226,57 +1409,70 @@ func AnimcursoreltListBytes(buf []byte, list []Animcursorelt) int {
return b
}
-type Spanfix struct {
- L Fixed
- R Fixed
- Y Fixed
+type Trapezoid struct {
+ Top Fixed
+ Bottom Fixed
+ Left Linefix
+ Right Linefix
}
-// SpanfixRead reads a byte slice into a Spanfix value.
-func SpanfixRead(buf []byte, v *Spanfix) int {
+// TrapezoidRead reads a byte slice into a Trapezoid value.
+func TrapezoidRead(buf []byte, v *Trapezoid) int {
b := 0
- v.L = Fixed(xgb.Get32(buf[b:]))
+ v.Top = Fixed(xgb.Get32(buf[b:]))
b += 4
- v.R = Fixed(xgb.Get32(buf[b:]))
+ v.Bottom = Fixed(xgb.Get32(buf[b:]))
b += 4
- v.Y = Fixed(xgb.Get32(buf[b:]))
- b += 4
+ v.Left = Linefix{}
+ b += LinefixRead(buf[b:], &v.Left)
+
+ v.Right = Linefix{}
+ b += LinefixRead(buf[b:], &v.Right)
return b
}
-// SpanfixReadList reads a byte slice into a list of Spanfix values.
-func SpanfixReadList(buf []byte, dest []Spanfix) int {
+// TrapezoidReadList reads a byte slice into a list of Trapezoid values.
+func TrapezoidReadList(buf []byte, dest []Trapezoid) int {
b := 0
for i := 0; i < len(dest); i++ {
- dest[i] = Spanfix{}
- b += SpanfixRead(buf[b:], &dest[i])
+ dest[i] = Trapezoid{}
+ b += TrapezoidRead(buf[b:], &dest[i])
}
return xgb.Pad(b)
}
-// Bytes writes a Spanfix value to a byte slice.
-func (v Spanfix) Bytes() []byte {
- buf := make([]byte, 12)
+// Bytes writes a Trapezoid value to a byte slice.
+func (v Trapezoid) Bytes() []byte {
+ buf := make([]byte, 40)
b := 0
- xgb.Put32(buf[b:], uint32(v.L))
+ xgb.Put32(buf[b:], uint32(v.Top))
b += 4
- xgb.Put32(buf[b:], uint32(v.R))
+ xgb.Put32(buf[b:], uint32(v.Bottom))
b += 4
- xgb.Put32(buf[b:], uint32(v.Y))
- b += 4
+ {
+ structBytes := v.Left.Bytes()
+ copy(buf[b:], structBytes)
+ b += xgb.Pad(len(structBytes))
+ }
+
+ {
+ structBytes := v.Right.Bytes()
+ copy(buf[b:], structBytes)
+ b += xgb.Pad(len(structBytes))
+ }
return buf
}
-// SpanfixListBytes writes a list of Spanfix values to a byte slice.
-func SpanfixListBytes(buf []byte, list []Spanfix) int {
+// TrapezoidListBytes writes a list of Trapezoid values to a byte slice.
+func TrapezoidListBytes(buf []byte, list []Trapezoid) int {
b := 0
var structBytes []byte
for _, item := range list {
@@ -1287,47 +1483,57 @@ func SpanfixListBytes(buf []byte, list []Spanfix) int {
return b
}
-type Trap struct {
- Top Spanfix
- Bot Spanfix
+type Triangle struct {
+ P1 Pointfix
+ P2 Pointfix
+ P3 Pointfix
}
-// TrapRead reads a byte slice into a Trap value.
-func TrapRead(buf []byte, v *Trap) int {
+// TriangleRead reads a byte slice into a Triangle value.
+func TriangleRead(buf []byte, v *Triangle) int {
b := 0
- v.Top = Spanfix{}
- b += SpanfixRead(buf[b:], &v.Top)
+ v.P1 = Pointfix{}
+ b += PointfixRead(buf[b:], &v.P1)
- v.Bot = Spanfix{}
- b += SpanfixRead(buf[b:], &v.Bot)
+ v.P2 = Pointfix{}
+ b += PointfixRead(buf[b:], &v.P2)
+
+ v.P3 = Pointfix{}
+ b += PointfixRead(buf[b:], &v.P3)
return b
}
-// TrapReadList reads a byte slice into a list of Trap values.
-func TrapReadList(buf []byte, dest []Trap) int {
+// TriangleReadList reads a byte slice into a list of Triangle values.
+func TriangleReadList(buf []byte, dest []Triangle) int {
b := 0
for i := 0; i < len(dest); i++ {
- dest[i] = Trap{}
- b += TrapRead(buf[b:], &dest[i])
+ dest[i] = Triangle{}
+ b += TriangleRead(buf[b:], &dest[i])
}
return xgb.Pad(b)
}
-// Bytes writes a Trap value to a byte slice.
-func (v Trap) Bytes() []byte {
+// Bytes writes a Triangle value to a byte slice.
+func (v Triangle) Bytes() []byte {
buf := make([]byte, 24)
b := 0
{
- structBytes := v.Top.Bytes()
+ structBytes := v.P1.Bytes()
copy(buf[b:], structBytes)
b += xgb.Pad(len(structBytes))
}
{
- structBytes := v.Bot.Bytes()
+ structBytes := v.P2.Bytes()
+ copy(buf[b:], structBytes)
+ b += xgb.Pad(len(structBytes))
+ }
+
+ {
+ structBytes := v.P3.Bytes()
copy(buf[b:], structBytes)
b += xgb.Pad(len(structBytes))
}
@@ -1335,8 +1541,8 @@ func (v Trap) Bytes() []byte {
return buf
}
-// TrapListBytes writes a list of Trap values to a byte slice.
-func TrapListBytes(buf []byte, list []Trap) int {
+// TriangleListBytes writes a list of Triangle values to a byte slice.
+func TriangleListBytes(buf []byte, list []Triangle) int {
b := 0
var structBytes []byte
for _, item := range list {
@@ -1347,614 +1553,158 @@ func TrapListBytes(buf []byte, list []Trap) int {
return b
}
-// BadPictFormat is the error number for a BadPictFormat.
-const BadPictFormat = 0
-
-type PictFormatError struct {
- Sequence uint16
- NiceName string
-}
-
-// PictFormatErrorNew constructs a PictFormatError value that implements xgb.Error from a byte slice.
-func PictFormatErrorNew(buf []byte) xgb.Error {
- v := PictFormatError{}
- v.NiceName = "PictFormat"
-
- b := 1 // skip error determinant
- b += 1 // don't read error number
-
- v.Sequence = xgb.Get16(buf[b:])
- b += 2
-
- return v
-}
-
-// SequenceId returns the sequence id attached to the BadPictFormat error.
-// This is mostly used internally.
-func (err PictFormatError) SequenceId() uint16 {
- return err.Sequence
-}
-
-// BadId returns the 'BadValue' number if one exists for the BadPictFormat error. If no bad value exists, 0 is returned.
-func (err PictFormatError) BadId() uint32 {
- return 0
-}
-
-// Error returns a rudimentary string representation of the BadPictFormat error.
-
-func (err PictFormatError) Error() string {
- fieldVals := make([]string, 0, 0)
- fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
- fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
- return "BadPictFormat {" + xgb.StringsJoin(fieldVals, ", ") + "}"
-}
-
-func init() {
- xgb.NewExtErrorFuncs["RENDER"][0] = PictFormatErrorNew
-}
-
-// BadPicture is the error number for a BadPicture.
-const BadPicture = 1
-
-type PictureError struct {
- Sequence uint16
- NiceName string
-}
-
-// PictureErrorNew constructs a PictureError value that implements xgb.Error from a byte slice.
-func PictureErrorNew(buf []byte) xgb.Error {
- v := PictureError{}
- v.NiceName = "Picture"
-
- b := 1 // skip error determinant
- b += 1 // don't read error number
-
- v.Sequence = xgb.Get16(buf[b:])
- b += 2
-
- return v
-}
-
-// SequenceId returns the sequence id attached to the BadPicture error.
-// This is mostly used internally.
-func (err PictureError) SequenceId() uint16 {
- return err.Sequence
-}
-
-// BadId returns the 'BadValue' number if one exists for the BadPicture error. If no bad value exists, 0 is returned.
-func (err PictureError) BadId() uint32 {
- return 0
-}
-
-// Error returns a rudimentary string representation of the BadPicture error.
-
-func (err PictureError) Error() string {
- fieldVals := make([]string, 0, 0)
- fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
- fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
- return "BadPicture {" + xgb.StringsJoin(fieldVals, ", ") + "}"
-}
-
-func init() {
- xgb.NewExtErrorFuncs["RENDER"][1] = PictureErrorNew
-}
-
-// BadPictOp is the error number for a BadPictOp.
-const BadPictOp = 2
-
-type PictOpError struct {
- Sequence uint16
- NiceName string
-}
-
-// PictOpErrorNew constructs a PictOpError value that implements xgb.Error from a byte slice.
-func PictOpErrorNew(buf []byte) xgb.Error {
- v := PictOpError{}
- v.NiceName = "PictOp"
-
- b := 1 // skip error determinant
- b += 1 // don't read error number
-
- v.Sequence = xgb.Get16(buf[b:])
- b += 2
-
- return v
-}
-
-// SequenceId returns the sequence id attached to the BadPictOp error.
-// This is mostly used internally.
-func (err PictOpError) SequenceId() uint16 {
- return err.Sequence
-}
-
-// BadId returns the 'BadValue' number if one exists for the BadPictOp error. If no bad value exists, 0 is returned.
-func (err PictOpError) BadId() uint32 {
- return 0
-}
-
-// Error returns a rudimentary string representation of the BadPictOp error.
-
-func (err PictOpError) Error() string {
- fieldVals := make([]string, 0, 0)
- fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
- fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
- return "BadPictOp {" + xgb.StringsJoin(fieldVals, ", ") + "}"
-}
-
-func init() {
- xgb.NewExtErrorFuncs["RENDER"][2] = PictOpErrorNew
-}
-
-// BadGlyphSet is the error number for a BadGlyphSet.
-const BadGlyphSet = 3
-
-type GlyphSetError struct {
- Sequence uint16
- NiceName string
-}
-
-// GlyphSetErrorNew constructs a GlyphSetError value that implements xgb.Error from a byte slice.
-func GlyphSetErrorNew(buf []byte) xgb.Error {
- v := GlyphSetError{}
- v.NiceName = "GlyphSet"
-
- b := 1 // skip error determinant
- b += 1 // don't read error number
-
- v.Sequence = xgb.Get16(buf[b:])
- b += 2
-
- return v
-}
-
-// SequenceId returns the sequence id attached to the BadGlyphSet error.
-// This is mostly used internally.
-func (err GlyphSetError) SequenceId() uint16 {
- return err.Sequence
-}
-
-// BadId returns the 'BadValue' number if one exists for the BadGlyphSet error. If no bad value exists, 0 is returned.
-func (err GlyphSetError) BadId() uint32 {
- return 0
-}
-
-// Error returns a rudimentary string representation of the BadGlyphSet error.
-
-func (err GlyphSetError) Error() string {
- fieldVals := make([]string, 0, 0)
- fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
- fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
- return "BadGlyphSet {" + xgb.StringsJoin(fieldVals, ", ") + "}"
-}
-
-func init() {
- xgb.NewExtErrorFuncs["RENDER"][3] = GlyphSetErrorNew
-}
+// Skipping definition for base type 'Bool'
-// BadGlyph is the error number for a BadGlyph.
-const BadGlyph = 4
+// Skipping definition for base type 'Byte'
-type GlyphError struct {
- Sequence uint16
- NiceName string
-}
+// Skipping definition for base type 'Card8'
-// GlyphErrorNew constructs a GlyphError value that implements xgb.Error from a byte slice.
-func GlyphErrorNew(buf []byte) xgb.Error {
- v := GlyphError{}
- v.NiceName = "Glyph"
+// Skipping definition for base type 'Char'
- b := 1 // skip error determinant
- b += 1 // don't read error number
+// Skipping definition for base type 'Void'
- v.Sequence = xgb.Get16(buf[b:])
- b += 2
+// Skipping definition for base type 'Double'
- return v
-}
+// Skipping definition for base type 'Float'
-// SequenceId returns the sequence id attached to the BadGlyph error.
-// This is mostly used internally.
-func (err GlyphError) SequenceId() uint16 {
- return err.Sequence
-}
+// Skipping definition for base type 'Int16'
-// BadId returns the 'BadValue' number if one exists for the BadGlyph error. If no bad value exists, 0 is returned.
-func (err GlyphError) BadId() uint32 {
- return 0
-}
+// Skipping definition for base type 'Int32'
-// Error returns a rudimentary string representation of the BadGlyph error.
+// Skipping definition for base type 'Int8'
-func (err GlyphError) Error() string {
- fieldVals := make([]string, 0, 0)
- fieldVals = append(fieldVals, "NiceName: "+err.NiceName)
- fieldVals = append(fieldVals, xgb.Sprintf("Sequence: %d", err.Sequence))
- return "BadGlyph {" + xgb.StringsJoin(fieldVals, ", ") + "}"
-}
+// Skipping definition for base type 'Card16'
-func init() {
- xgb.NewExtErrorFuncs["RENDER"][4] = GlyphErrorNew
-}
+// Skipping definition for base type 'Card32'
-// QueryVersionCookie is a cookie used only for QueryVersion requests.
-type QueryVersionCookie struct {
+// AddGlyphsCookie is a cookie used only for AddGlyphs requests.
+type AddGlyphsCookie struct {
*xgb.Cookie
}
-// QueryVersion sends a checked request.
-// If an error occurs, it will be returned with the reply by calling QueryVersionCookie.Reply()
-func QueryVersion(c *xgb.Conn, ClientMajorVersion uint32, ClientMinorVersion uint32) QueryVersionCookie {
- if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'QueryVersion' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
- }
- cookie := c.NewCookie(true, true)
- c.NewRequest(queryVersionRequest(c, ClientMajorVersion, ClientMinorVersion), cookie)
- return QueryVersionCookie{cookie}
-}
-
-// QueryVersionUnchecked sends an unchecked request.
+// AddGlyphs sends an unchecked request.
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func QueryVersionUnchecked(c *xgb.Conn, ClientMajorVersion uint32, ClientMinorVersion uint32) QueryVersionCookie {
+func AddGlyphs(c *xgb.Conn, Glyphset Glyphset, GlyphsLen uint32, Glyphids []uint32, Glyphs []Glyphinfo, Data []byte) AddGlyphsCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'QueryVersion' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'AddGlyphs' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
- cookie := c.NewCookie(false, true)
- c.NewRequest(queryVersionRequest(c, ClientMajorVersion, ClientMinorVersion), cookie)
- return QueryVersionCookie{cookie}
-}
-
-// QueryVersionReply represents the data returned from a QueryVersion request.
-type QueryVersionReply struct {
- Sequence uint16 // sequence number of the request for this reply
- Length uint32 // number of bytes in this reply
- // padding: 1 bytes
- MajorVersion uint32
- MinorVersion uint32
- // padding: 16 bytes
+ cookie := c.NewCookie(false, false)
+ c.NewRequest(addGlyphsRequest(c, Glyphset, GlyphsLen, Glyphids, Glyphs, Data), cookie)
+ return AddGlyphsCookie{cookie}
}
-// Reply blocks and returns the reply data for a QueryVersion request.
-func (cook QueryVersionCookie) Reply() (*QueryVersionReply, error) {
- buf, err := cook.Cookie.Reply()
- if err != nil {
- return nil, err
- }
- if buf == nil {
- return nil, nil
+// AddGlyphsChecked sends a checked request.
+// If an error occurs, it can be retrieved using AddGlyphsCookie.Check()
+func AddGlyphsChecked(c *xgb.Conn, Glyphset Glyphset, GlyphsLen uint32, Glyphids []uint32, Glyphs []Glyphinfo, Data []byte) AddGlyphsCookie {
+ if _, ok := c.Extensions["RENDER"]; !ok {
+ panic("Cannot issue request 'AddGlyphs' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
- return queryVersionReply(buf), nil
+ cookie := c.NewCookie(true, false)
+ c.NewRequest(addGlyphsRequest(c, Glyphset, GlyphsLen, Glyphids, Glyphs, Data), cookie)
+ return AddGlyphsCookie{cookie}
}
-// queryVersionReply reads a byte slice into a QueryVersionReply value.
-func queryVersionReply(buf []byte) *QueryVersionReply {
- v := new(QueryVersionReply)
- b := 1 // skip reply determinant
-
- b += 1 // padding
-
- v.Sequence = xgb.Get16(buf[b:])
- b += 2
-
- v.Length = xgb.Get32(buf[b:]) // 4-byte units
- b += 4
-
- v.MajorVersion = xgb.Get32(buf[b:])
- b += 4
-
- v.MinorVersion = xgb.Get32(buf[b:])
- b += 4
-
- b += 16 // padding
-
- return v
+// Check returns an error if one occurred for checked requests that are not expecting a reply.
+// This cannot be called for requests expecting a reply, nor for unchecked requests.
+func (cook AddGlyphsCookie) Check() error {
+ return cook.Cookie.Check()
}
-// Write request to wire for QueryVersion
-// queryVersionRequest writes a QueryVersion request to a byte slice.
-func queryVersionRequest(c *xgb.Conn, ClientMajorVersion uint32, ClientMinorVersion uint32) []byte {
- size := 12
+// Write request to wire for AddGlyphs
+// addGlyphsRequest writes a AddGlyphs request to a byte slice.
+func addGlyphsRequest(c *xgb.Conn, Glyphset Glyphset, GlyphsLen uint32, Glyphids []uint32, Glyphs []Glyphinfo, Data []byte) []byte {
+ size := xgb.Pad((((12 + xgb.Pad((int(GlyphsLen) * 4))) + xgb.Pad((int(GlyphsLen) * 12))) + xgb.Pad((len(Data) * 1))))
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 0 // request opcode
+ buf[b] = 20 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
b += 2
- xgb.Put32(buf[b:], ClientMajorVersion)
- b += 4
-
- xgb.Put32(buf[b:], ClientMinorVersion)
- b += 4
-
- return buf
-}
-
-// QueryPictFormatsCookie is a cookie used only for QueryPictFormats requests.
-type QueryPictFormatsCookie struct {
- *xgb.Cookie
-}
-
-// QueryPictFormats sends a checked request.
-// If an error occurs, it will be returned with the reply by calling QueryPictFormatsCookie.Reply()
-func QueryPictFormats(c *xgb.Conn) QueryPictFormatsCookie {
- if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'QueryPictFormats' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
- }
- cookie := c.NewCookie(true, true)
- c.NewRequest(queryPictFormatsRequest(c), cookie)
- return QueryPictFormatsCookie{cookie}
-}
-
-// QueryPictFormatsUnchecked sends an unchecked request.
-// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func QueryPictFormatsUnchecked(c *xgb.Conn) QueryPictFormatsCookie {
- if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'QueryPictFormats' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
- }
- cookie := c.NewCookie(false, true)
- c.NewRequest(queryPictFormatsRequest(c), cookie)
- return QueryPictFormatsCookie{cookie}
-}
-
-// QueryPictFormatsReply represents the data returned from a QueryPictFormats request.
-type QueryPictFormatsReply struct {
- Sequence uint16 // sequence number of the request for this reply
- Length uint32 // number of bytes in this reply
- // padding: 1 bytes
- NumFormats uint32
- NumScreens uint32
- NumDepths uint32
- NumVisuals uint32
- NumSubpixel uint32
- // padding: 4 bytes
- Formats []Pictforminfo // size: xgb.Pad((int(NumFormats) * 28))
- Screens []Pictscreen // size: PictscreenListSize(Screens)
- Subpixels []uint32 // size: xgb.Pad((int(NumSubpixel) * 4))
-}
-
-// Reply blocks and returns the reply data for a QueryPictFormats request.
-func (cook QueryPictFormatsCookie) Reply() (*QueryPictFormatsReply, error) {
- buf, err := cook.Cookie.Reply()
- if err != nil {
- return nil, err
- }
- if buf == nil {
- return nil, nil
- }
- return queryPictFormatsReply(buf), nil
-}
-
-// queryPictFormatsReply reads a byte slice into a QueryPictFormatsReply value.
-func queryPictFormatsReply(buf []byte) *QueryPictFormatsReply {
- v := new(QueryPictFormatsReply)
- b := 1 // skip reply determinant
-
- b += 1 // padding
-
- v.Sequence = xgb.Get16(buf[b:])
- b += 2
-
- v.Length = xgb.Get32(buf[b:]) // 4-byte units
- b += 4
-
- v.NumFormats = xgb.Get32(buf[b:])
- b += 4
-
- v.NumScreens = xgb.Get32(buf[b:])
- b += 4
-
- v.NumDepths = xgb.Get32(buf[b:])
- b += 4
-
- v.NumVisuals = xgb.Get32(buf[b:])
+ xgb.Put32(buf[b:], uint32(Glyphset))
b += 4
- v.NumSubpixel = xgb.Get32(buf[b:])
+ xgb.Put32(buf[b:], GlyphsLen)
b += 4
- b += 4 // padding
-
- v.Formats = make([]Pictforminfo, v.NumFormats)
- b += PictforminfoReadList(buf[b:], v.Formats)
-
- v.Screens = make([]Pictscreen, v.NumScreens)
- b += PictscreenReadList(buf[b:], v.Screens)
-
- v.Subpixels = make([]uint32, v.NumSubpixel)
- for i := 0; i < int(v.NumSubpixel); i++ {
- v.Subpixels[i] = xgb.Get32(buf[b:])
+ for i := 0; i < int(GlyphsLen); i++ {
+ xgb.Put32(buf[b:], Glyphids[i])
b += 4
}
b = xgb.Pad(b)
- return v
-}
-
-// Write request to wire for QueryPictFormats
-// queryPictFormatsRequest writes a QueryPictFormats request to a byte slice.
-func queryPictFormatsRequest(c *xgb.Conn) []byte {
- size := 4
- b := 0
- buf := make([]byte, size)
-
- buf[b] = c.Extensions["RENDER"]
- b += 1
-
- buf[b] = 1 // request opcode
- b += 1
-
- xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
- b += 2
-
- return buf
-}
-
-// QueryPictIndexValuesCookie is a cookie used only for QueryPictIndexValues requests.
-type QueryPictIndexValuesCookie struct {
- *xgb.Cookie
-}
-
-// QueryPictIndexValues sends a checked request.
-// If an error occurs, it will be returned with the reply by calling QueryPictIndexValuesCookie.Reply()
-func QueryPictIndexValues(c *xgb.Conn, Format Pictformat) QueryPictIndexValuesCookie {
- if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'QueryPictIndexValues' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
- }
- cookie := c.NewCookie(true, true)
- c.NewRequest(queryPictIndexValuesRequest(c, Format), cookie)
- return QueryPictIndexValuesCookie{cookie}
-}
-
-// QueryPictIndexValuesUnchecked sends an unchecked request.
-// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func QueryPictIndexValuesUnchecked(c *xgb.Conn, Format Pictformat) QueryPictIndexValuesCookie {
- if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'QueryPictIndexValues' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
- }
- cookie := c.NewCookie(false, true)
- c.NewRequest(queryPictIndexValuesRequest(c, Format), cookie)
- return QueryPictIndexValuesCookie{cookie}
-}
-
-// QueryPictIndexValuesReply represents the data returned from a QueryPictIndexValues request.
-type QueryPictIndexValuesReply struct {
- Sequence uint16 // sequence number of the request for this reply
- Length uint32 // number of bytes in this reply
- // padding: 1 bytes
- NumValues uint32
- // padding: 20 bytes
- Values []Indexvalue // size: xgb.Pad((int(NumValues) * 12))
-}
-
-// Reply blocks and returns the reply data for a QueryPictIndexValues request.
-func (cook QueryPictIndexValuesCookie) Reply() (*QueryPictIndexValuesReply, error) {
- buf, err := cook.Cookie.Reply()
- if err != nil {
- return nil, err
- }
- if buf == nil {
- return nil, nil
- }
- return queryPictIndexValuesReply(buf), nil
-}
-
-// queryPictIndexValuesReply reads a byte slice into a QueryPictIndexValuesReply value.
-func queryPictIndexValuesReply(buf []byte) *QueryPictIndexValuesReply {
- v := new(QueryPictIndexValuesReply)
- b := 1 // skip reply determinant
-
- b += 1 // padding
-
- v.Sequence = xgb.Get16(buf[b:])
- b += 2
-
- v.Length = xgb.Get32(buf[b:]) // 4-byte units
- b += 4
-
- v.NumValues = xgb.Get32(buf[b:])
- b += 4
-
- b += 20 // padding
-
- v.Values = make([]Indexvalue, v.NumValues)
- b += IndexvalueReadList(buf[b:], v.Values)
-
- return v
-}
-
-// Write request to wire for QueryPictIndexValues
-// queryPictIndexValuesRequest writes a QueryPictIndexValues request to a byte slice.
-func queryPictIndexValuesRequest(c *xgb.Conn, Format Pictformat) []byte {
- size := 8
- b := 0
- buf := make([]byte, size)
-
- buf[b] = c.Extensions["RENDER"]
- b += 1
-
- buf[b] = 2 // request opcode
- b += 1
-
- xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
- b += 2
+ b += GlyphinfoListBytes(buf[b:], Glyphs)
- xgb.Put32(buf[b:], uint32(Format))
- b += 4
+ copy(buf[b:], Data[:len(Data)])
+ b += xgb.Pad(int(len(Data)))
return buf
}
-// CreatePictureCookie is a cookie used only for CreatePicture requests.
-type CreatePictureCookie struct {
+// AddTrapsCookie is a cookie used only for AddTraps requests.
+type AddTrapsCookie struct {
*xgb.Cookie
}
-// CreatePicture sends an unchecked request.
+// AddTraps sends an unchecked request.
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func CreatePicture(c *xgb.Conn, Pid Picture, Drawable xproto.Drawable, Format Pictformat, ValueMask uint32, ValueList []uint32) CreatePictureCookie {
+func AddTraps(c *xgb.Conn, Picture Picture, XOff int16, YOff int16, Traps []Trap) AddTrapsCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'CreatePicture' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'AddTraps' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(false, false)
- c.NewRequest(createPictureRequest(c, Pid, Drawable, Format, ValueMask, ValueList), cookie)
- return CreatePictureCookie{cookie}
+ c.NewRequest(addTrapsRequest(c, Picture, XOff, YOff, Traps), cookie)
+ return AddTrapsCookie{cookie}
}
-// CreatePictureChecked sends a checked request.
-// If an error occurs, it can be retrieved using CreatePictureCookie.Check()
-func CreatePictureChecked(c *xgb.Conn, Pid Picture, Drawable xproto.Drawable, Format Pictformat, ValueMask uint32, ValueList []uint32) CreatePictureCookie {
+// AddTrapsChecked sends a checked request.
+// If an error occurs, it can be retrieved using AddTrapsCookie.Check()
+func AddTrapsChecked(c *xgb.Conn, Picture Picture, XOff int16, YOff int16, Traps []Trap) AddTrapsCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'CreatePicture' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'AddTraps' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(true, false)
- c.NewRequest(createPictureRequest(c, Pid, Drawable, Format, ValueMask, ValueList), cookie)
- return CreatePictureCookie{cookie}
+ c.NewRequest(addTrapsRequest(c, Picture, XOff, YOff, Traps), cookie)
+ return AddTrapsCookie{cookie}
}
// Check returns an error if one occurred for checked requests that are not expecting a reply.
// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook CreatePictureCookie) Check() error {
+func (cook AddTrapsCookie) Check() error {
return cook.Cookie.Check()
}
-// Write request to wire for CreatePicture
-// createPictureRequest writes a CreatePicture request to a byte slice.
-func createPictureRequest(c *xgb.Conn, Pid Picture, Drawable xproto.Drawable, Format Pictformat, ValueMask uint32, ValueList []uint32) []byte {
- size := xgb.Pad((16 + (4 + xgb.Pad((4 * xgb.PopCount(int(ValueMask)))))))
+// Write request to wire for AddTraps
+// addTrapsRequest writes a AddTraps request to a byte slice.
+func addTrapsRequest(c *xgb.Conn, Picture Picture, XOff int16, YOff int16, Traps []Trap) []byte {
+ size := xgb.Pad((12 + xgb.Pad((len(Traps) * 24))))
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 4 // request opcode
+ buf[b] = 32 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
b += 2
- xgb.Put32(buf[b:], uint32(Pid))
+ xgb.Put32(buf[b:], uint32(Picture))
b += 4
- xgb.Put32(buf[b:], uint32(Drawable))
- b += 4
+ xgb.Put16(buf[b:], uint16(XOff))
+ b += 2
- xgb.Put32(buf[b:], uint32(Format))
- b += 4
+ xgb.Put16(buf[b:], uint16(YOff))
+ b += 2
- xgb.Put32(buf[b:], ValueMask)
- b += 4
- for i := 0; i < xgb.PopCount(int(ValueMask)); i++ {
- xgb.Put32(buf[b:], ValueList[i])
- b += 4
- }
- b = xgb.Pad(b)
+ b += TrapListBytes(buf[b:], Traps)
return buf
}
@@ -2022,124 +1772,6 @@ func changePictureRequest(c *xgb.Conn, Picture Picture, ValueMask uint32, ValueL
return buf
}
-// SetPictureClipRectanglesCookie is a cookie used only for SetPictureClipRectangles requests.
-type SetPictureClipRectanglesCookie struct {
- *xgb.Cookie
-}
-
-// SetPictureClipRectangles sends an unchecked request.
-// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func SetPictureClipRectangles(c *xgb.Conn, Picture Picture, ClipXOrigin int16, ClipYOrigin int16, Rectangles []xproto.Rectangle) SetPictureClipRectanglesCookie {
- if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'SetPictureClipRectangles' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
- }
- cookie := c.NewCookie(false, false)
- c.NewRequest(setPictureClipRectanglesRequest(c, Picture, ClipXOrigin, ClipYOrigin, Rectangles), cookie)
- return SetPictureClipRectanglesCookie{cookie}
-}
-
-// SetPictureClipRectanglesChecked sends a checked request.
-// If an error occurs, it can be retrieved using SetPictureClipRectanglesCookie.Check()
-func SetPictureClipRectanglesChecked(c *xgb.Conn, Picture Picture, ClipXOrigin int16, ClipYOrigin int16, Rectangles []xproto.Rectangle) SetPictureClipRectanglesCookie {
- if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'SetPictureClipRectangles' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
- }
- cookie := c.NewCookie(true, false)
- c.NewRequest(setPictureClipRectanglesRequest(c, Picture, ClipXOrigin, ClipYOrigin, Rectangles), cookie)
- return SetPictureClipRectanglesCookie{cookie}
-}
-
-// Check returns an error if one occurred for checked requests that are not expecting a reply.
-// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook SetPictureClipRectanglesCookie) Check() error {
- return cook.Cookie.Check()
-}
-
-// Write request to wire for SetPictureClipRectangles
-// setPictureClipRectanglesRequest writes a SetPictureClipRectangles request to a byte slice.
-func setPictureClipRectanglesRequest(c *xgb.Conn, Picture Picture, ClipXOrigin int16, ClipYOrigin int16, Rectangles []xproto.Rectangle) []byte {
- size := xgb.Pad((12 + xgb.Pad((len(Rectangles) * 8))))
- b := 0
- buf := make([]byte, size)
-
- buf[b] = c.Extensions["RENDER"]
- b += 1
-
- buf[b] = 6 // request opcode
- b += 1
-
- xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
- b += 2
-
- xgb.Put32(buf[b:], uint32(Picture))
- b += 4
-
- xgb.Put16(buf[b:], uint16(ClipXOrigin))
- b += 2
-
- xgb.Put16(buf[b:], uint16(ClipYOrigin))
- b += 2
-
- b += xproto.RectangleListBytes(buf[b:], Rectangles)
-
- return buf
-}
-
-// FreePictureCookie is a cookie used only for FreePicture requests.
-type FreePictureCookie struct {
- *xgb.Cookie
-}
-
-// FreePicture sends an unchecked request.
-// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func FreePicture(c *xgb.Conn, Picture Picture) FreePictureCookie {
- if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'FreePicture' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
- }
- cookie := c.NewCookie(false, false)
- c.NewRequest(freePictureRequest(c, Picture), cookie)
- return FreePictureCookie{cookie}
-}
-
-// FreePictureChecked sends a checked request.
-// If an error occurs, it can be retrieved using FreePictureCookie.Check()
-func FreePictureChecked(c *xgb.Conn, Picture Picture) FreePictureCookie {
- if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'FreePicture' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
- }
- cookie := c.NewCookie(true, false)
- c.NewRequest(freePictureRequest(c, Picture), cookie)
- return FreePictureCookie{cookie}
-}
-
-// Check returns an error if one occurred for checked requests that are not expecting a reply.
-// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook FreePictureCookie) Check() error {
- return cook.Cookie.Check()
-}
-
-// Write request to wire for FreePicture
-// freePictureRequest writes a FreePicture request to a byte slice.
-func freePictureRequest(c *xgb.Conn, Picture Picture) []byte {
- size := 8
- b := 0
- buf := make([]byte, size)
-
- buf[b] = c.Extensions["RENDER"]
- b += 1
-
- buf[b] = 7 // request opcode
- b += 1
-
- xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
- b += 2
-
- xgb.Put32(buf[b:], uint32(Picture))
- b += 4
-
- return buf
-}
-
// CompositeCookie is a cookie used only for Composite requests.
type CompositeCookie struct {
*xgb.Cookie
@@ -2230,50 +1862,50 @@ func compositeRequest(c *xgb.Conn, Op byte, Src Picture, Mask Picture, Dst Pictu
return buf
}
-// TrapezoidsCookie is a cookie used only for Trapezoids requests.
-type TrapezoidsCookie struct {
+// CompositeGlyphs16Cookie is a cookie used only for CompositeGlyphs16 requests.
+type CompositeGlyphs16Cookie struct {
*xgb.Cookie
}
-// Trapezoids sends an unchecked request.
+// CompositeGlyphs16 sends an unchecked request.
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func Trapezoids(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Traps []Trapezoid) TrapezoidsCookie {
+func CompositeGlyphs16(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, Glyphset Glyphset, SrcX int16, SrcY int16, Glyphcmds []byte) CompositeGlyphs16Cookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'Trapezoids' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'CompositeGlyphs16' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(false, false)
- c.NewRequest(trapezoidsRequest(c, Op, Src, Dst, MaskFormat, SrcX, SrcY, Traps), cookie)
- return TrapezoidsCookie{cookie}
+ c.NewRequest(compositeGlyphs16Request(c, Op, Src, Dst, MaskFormat, Glyphset, SrcX, SrcY, Glyphcmds), cookie)
+ return CompositeGlyphs16Cookie{cookie}
}
-// TrapezoidsChecked sends a checked request.
-// If an error occurs, it can be retrieved using TrapezoidsCookie.Check()
-func TrapezoidsChecked(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Traps []Trapezoid) TrapezoidsCookie {
+// CompositeGlyphs16Checked sends a checked request.
+// If an error occurs, it can be retrieved using CompositeGlyphs16Cookie.Check()
+func CompositeGlyphs16Checked(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, Glyphset Glyphset, SrcX int16, SrcY int16, Glyphcmds []byte) CompositeGlyphs16Cookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'Trapezoids' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'CompositeGlyphs16' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(true, false)
- c.NewRequest(trapezoidsRequest(c, Op, Src, Dst, MaskFormat, SrcX, SrcY, Traps), cookie)
- return TrapezoidsCookie{cookie}
+ c.NewRequest(compositeGlyphs16Request(c, Op, Src, Dst, MaskFormat, Glyphset, SrcX, SrcY, Glyphcmds), cookie)
+ return CompositeGlyphs16Cookie{cookie}
}
// Check returns an error if one occurred for checked requests that are not expecting a reply.
// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook TrapezoidsCookie) Check() error {
+func (cook CompositeGlyphs16Cookie) Check() error {
return cook.Cookie.Check()
}
-// Write request to wire for Trapezoids
-// trapezoidsRequest writes a Trapezoids request to a byte slice.
-func trapezoidsRequest(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Traps []Trapezoid) []byte {
- size := xgb.Pad((24 + xgb.Pad((len(Traps) * 40))))
+// Write request to wire for CompositeGlyphs16
+// compositeGlyphs16Request writes a CompositeGlyphs16 request to a byte slice.
+func compositeGlyphs16Request(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, Glyphset Glyphset, SrcX int16, SrcY int16, Glyphcmds []byte) []byte {
+ size := xgb.Pad((28 + xgb.Pad((len(Glyphcmds) * 1))))
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 10 // request opcode
+ buf[b] = 24 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
@@ -2293,61 +1925,65 @@ func trapezoidsRequest(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskForma
xgb.Put32(buf[b:], uint32(MaskFormat))
b += 4
+ xgb.Put32(buf[b:], uint32(Glyphset))
+ b += 4
+
xgb.Put16(buf[b:], uint16(SrcX))
b += 2
xgb.Put16(buf[b:], uint16(SrcY))
b += 2
- b += TrapezoidListBytes(buf[b:], Traps)
+ copy(buf[b:], Glyphcmds[:len(Glyphcmds)])
+ b += xgb.Pad(int(len(Glyphcmds)))
return buf
}
-// TrianglesCookie is a cookie used only for Triangles requests.
-type TrianglesCookie struct {
+// CompositeGlyphs32Cookie is a cookie used only for CompositeGlyphs32 requests.
+type CompositeGlyphs32Cookie struct {
*xgb.Cookie
}
-// Triangles sends an unchecked request.
+// CompositeGlyphs32 sends an unchecked request.
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func Triangles(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Triangles []Triangle) TrianglesCookie {
+func CompositeGlyphs32(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, Glyphset Glyphset, SrcX int16, SrcY int16, Glyphcmds []byte) CompositeGlyphs32Cookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'Triangles' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'CompositeGlyphs32' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(false, false)
- c.NewRequest(trianglesRequest(c, Op, Src, Dst, MaskFormat, SrcX, SrcY, Triangles), cookie)
- return TrianglesCookie{cookie}
+ c.NewRequest(compositeGlyphs32Request(c, Op, Src, Dst, MaskFormat, Glyphset, SrcX, SrcY, Glyphcmds), cookie)
+ return CompositeGlyphs32Cookie{cookie}
}
-// TrianglesChecked sends a checked request.
-// If an error occurs, it can be retrieved using TrianglesCookie.Check()
-func TrianglesChecked(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Triangles []Triangle) TrianglesCookie {
+// CompositeGlyphs32Checked sends a checked request.
+// If an error occurs, it can be retrieved using CompositeGlyphs32Cookie.Check()
+func CompositeGlyphs32Checked(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, Glyphset Glyphset, SrcX int16, SrcY int16, Glyphcmds []byte) CompositeGlyphs32Cookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'Triangles' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'CompositeGlyphs32' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(true, false)
- c.NewRequest(trianglesRequest(c, Op, Src, Dst, MaskFormat, SrcX, SrcY, Triangles), cookie)
- return TrianglesCookie{cookie}
+ c.NewRequest(compositeGlyphs32Request(c, Op, Src, Dst, MaskFormat, Glyphset, SrcX, SrcY, Glyphcmds), cookie)
+ return CompositeGlyphs32Cookie{cookie}
}
// Check returns an error if one occurred for checked requests that are not expecting a reply.
// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook TrianglesCookie) Check() error {
+func (cook CompositeGlyphs32Cookie) Check() error {
return cook.Cookie.Check()
}
-// Write request to wire for Triangles
-// trianglesRequest writes a Triangles request to a byte slice.
-func trianglesRequest(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Triangles []Triangle) []byte {
- size := xgb.Pad((24 + xgb.Pad((len(Triangles) * 24))))
+// Write request to wire for CompositeGlyphs32
+// compositeGlyphs32Request writes a CompositeGlyphs32 request to a byte slice.
+func compositeGlyphs32Request(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, Glyphset Glyphset, SrcX int16, SrcY int16, Glyphcmds []byte) []byte {
+ size := xgb.Pad((28 + xgb.Pad((len(Glyphcmds) * 1))))
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 11 // request opcode
+ buf[b] = 25 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
@@ -2367,61 +2003,65 @@ func trianglesRequest(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat
xgb.Put32(buf[b:], uint32(MaskFormat))
b += 4
+ xgb.Put32(buf[b:], uint32(Glyphset))
+ b += 4
+
xgb.Put16(buf[b:], uint16(SrcX))
b += 2
xgb.Put16(buf[b:], uint16(SrcY))
b += 2
- b += TriangleListBytes(buf[b:], Triangles)
+ copy(buf[b:], Glyphcmds[:len(Glyphcmds)])
+ b += xgb.Pad(int(len(Glyphcmds)))
return buf
}
-// TriStripCookie is a cookie used only for TriStrip requests.
-type TriStripCookie struct {
+// CompositeGlyphs8Cookie is a cookie used only for CompositeGlyphs8 requests.
+type CompositeGlyphs8Cookie struct {
*xgb.Cookie
}
-// TriStrip sends an unchecked request.
+// CompositeGlyphs8 sends an unchecked request.
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func TriStrip(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Points []Pointfix) TriStripCookie {
+func CompositeGlyphs8(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, Glyphset Glyphset, SrcX int16, SrcY int16, Glyphcmds []byte) CompositeGlyphs8Cookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'TriStrip' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'CompositeGlyphs8' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(false, false)
- c.NewRequest(triStripRequest(c, Op, Src, Dst, MaskFormat, SrcX, SrcY, Points), cookie)
- return TriStripCookie{cookie}
+ c.NewRequest(compositeGlyphs8Request(c, Op, Src, Dst, MaskFormat, Glyphset, SrcX, SrcY, Glyphcmds), cookie)
+ return CompositeGlyphs8Cookie{cookie}
}
-// TriStripChecked sends a checked request.
-// If an error occurs, it can be retrieved using TriStripCookie.Check()
-func TriStripChecked(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Points []Pointfix) TriStripCookie {
+// CompositeGlyphs8Checked sends a checked request.
+// If an error occurs, it can be retrieved using CompositeGlyphs8Cookie.Check()
+func CompositeGlyphs8Checked(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, Glyphset Glyphset, SrcX int16, SrcY int16, Glyphcmds []byte) CompositeGlyphs8Cookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'TriStrip' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'CompositeGlyphs8' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(true, false)
- c.NewRequest(triStripRequest(c, Op, Src, Dst, MaskFormat, SrcX, SrcY, Points), cookie)
- return TriStripCookie{cookie}
+ c.NewRequest(compositeGlyphs8Request(c, Op, Src, Dst, MaskFormat, Glyphset, SrcX, SrcY, Glyphcmds), cookie)
+ return CompositeGlyphs8Cookie{cookie}
}
// Check returns an error if one occurred for checked requests that are not expecting a reply.
// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook TriStripCookie) Check() error {
+func (cook CompositeGlyphs8Cookie) Check() error {
return cook.Cookie.Check()
}
-// Write request to wire for TriStrip
-// triStripRequest writes a TriStrip request to a byte slice.
-func triStripRequest(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Points []Pointfix) []byte {
- size := xgb.Pad((24 + xgb.Pad((len(Points) * 8))))
+// Write request to wire for CompositeGlyphs8
+// compositeGlyphs8Request writes a CompositeGlyphs8 request to a byte slice.
+func compositeGlyphs8Request(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, Glyphset Glyphset, SrcX int16, SrcY int16, Glyphcmds []byte) []byte {
+ size := xgb.Pad((28 + xgb.Pad((len(Glyphcmds) * 1))))
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 12 // request opcode
+ buf[b] = 23 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
@@ -2441,385 +2081,415 @@ func triStripRequest(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat
xgb.Put32(buf[b:], uint32(MaskFormat))
b += 4
+ xgb.Put32(buf[b:], uint32(Glyphset))
+ b += 4
+
xgb.Put16(buf[b:], uint16(SrcX))
b += 2
xgb.Put16(buf[b:], uint16(SrcY))
b += 2
- b += PointfixListBytes(buf[b:], Points)
+ copy(buf[b:], Glyphcmds[:len(Glyphcmds)])
+ b += xgb.Pad(int(len(Glyphcmds)))
return buf
}
-// TriFanCookie is a cookie used only for TriFan requests.
-type TriFanCookie struct {
+// CreateAnimCursorCookie is a cookie used only for CreateAnimCursor requests.
+type CreateAnimCursorCookie struct {
*xgb.Cookie
}
-// TriFan sends an unchecked request.
+// CreateAnimCursor sends an unchecked request.
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func TriFan(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Points []Pointfix) TriFanCookie {
+func CreateAnimCursor(c *xgb.Conn, Cid xproto.Cursor, Cursors []Animcursorelt) CreateAnimCursorCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'TriFan' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'CreateAnimCursor' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(false, false)
- c.NewRequest(triFanRequest(c, Op, Src, Dst, MaskFormat, SrcX, SrcY, Points), cookie)
- return TriFanCookie{cookie}
+ c.NewRequest(createAnimCursorRequest(c, Cid, Cursors), cookie)
+ return CreateAnimCursorCookie{cookie}
}
-// TriFanChecked sends a checked request.
-// If an error occurs, it can be retrieved using TriFanCookie.Check()
-func TriFanChecked(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Points []Pointfix) TriFanCookie {
+// CreateAnimCursorChecked sends a checked request.
+// If an error occurs, it can be retrieved using CreateAnimCursorCookie.Check()
+func CreateAnimCursorChecked(c *xgb.Conn, Cid xproto.Cursor, Cursors []Animcursorelt) CreateAnimCursorCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'TriFan' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'CreateAnimCursor' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(true, false)
- c.NewRequest(triFanRequest(c, Op, Src, Dst, MaskFormat, SrcX, SrcY, Points), cookie)
- return TriFanCookie{cookie}
+ c.NewRequest(createAnimCursorRequest(c, Cid, Cursors), cookie)
+ return CreateAnimCursorCookie{cookie}
}
// Check returns an error if one occurred for checked requests that are not expecting a reply.
// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook TriFanCookie) Check() error {
+func (cook CreateAnimCursorCookie) Check() error {
return cook.Cookie.Check()
}
-// Write request to wire for TriFan
-// triFanRequest writes a TriFan request to a byte slice.
-func triFanRequest(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Points []Pointfix) []byte {
- size := xgb.Pad((24 + xgb.Pad((len(Points) * 8))))
+// Write request to wire for CreateAnimCursor
+// createAnimCursorRequest writes a CreateAnimCursor request to a byte slice.
+func createAnimCursorRequest(c *xgb.Conn, Cid xproto.Cursor, Cursors []Animcursorelt) []byte {
+ size := xgb.Pad((8 + xgb.Pad((len(Cursors) * 8))))
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 13 // request opcode
+ buf[b] = 31 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
b += 2
- buf[b] = Op
- b += 1
-
- b += 3 // padding
-
- xgb.Put32(buf[b:], uint32(Src))
- b += 4
-
- xgb.Put32(buf[b:], uint32(Dst))
- b += 4
-
- xgb.Put32(buf[b:], uint32(MaskFormat))
+ xgb.Put32(buf[b:], uint32(Cid))
b += 4
- xgb.Put16(buf[b:], uint16(SrcX))
- b += 2
-
- xgb.Put16(buf[b:], uint16(SrcY))
- b += 2
-
- b += PointfixListBytes(buf[b:], Points)
+ b += AnimcursoreltListBytes(buf[b:], Cursors)
return buf
}
-// CreateGlyphSetCookie is a cookie used only for CreateGlyphSet requests.
-type CreateGlyphSetCookie struct {
+// CreateConicalGradientCookie is a cookie used only for CreateConicalGradient requests.
+type CreateConicalGradientCookie struct {
*xgb.Cookie
}
-// CreateGlyphSet sends an unchecked request.
+// CreateConicalGradient sends an unchecked request.
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func CreateGlyphSet(c *xgb.Conn, Gsid Glyphset, Format Pictformat) CreateGlyphSetCookie {
+func CreateConicalGradient(c *xgb.Conn, Picture Picture, Center Pointfix, Angle Fixed, NumStops uint32, Stops []Fixed, Colors []Color) CreateConicalGradientCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'CreateGlyphSet' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'CreateConicalGradient' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(false, false)
- c.NewRequest(createGlyphSetRequest(c, Gsid, Format), cookie)
- return CreateGlyphSetCookie{cookie}
+ c.NewRequest(createConicalGradientRequest(c, Picture, Center, Angle, NumStops, Stops, Colors), cookie)
+ return CreateConicalGradientCookie{cookie}
}
-// CreateGlyphSetChecked sends a checked request.
-// If an error occurs, it can be retrieved using CreateGlyphSetCookie.Check()
-func CreateGlyphSetChecked(c *xgb.Conn, Gsid Glyphset, Format Pictformat) CreateGlyphSetCookie {
+// CreateConicalGradientChecked sends a checked request.
+// If an error occurs, it can be retrieved using CreateConicalGradientCookie.Check()
+func CreateConicalGradientChecked(c *xgb.Conn, Picture Picture, Center Pointfix, Angle Fixed, NumStops uint32, Stops []Fixed, Colors []Color) CreateConicalGradientCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'CreateGlyphSet' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'CreateConicalGradient' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(true, false)
- c.NewRequest(createGlyphSetRequest(c, Gsid, Format), cookie)
- return CreateGlyphSetCookie{cookie}
+ c.NewRequest(createConicalGradientRequest(c, Picture, Center, Angle, NumStops, Stops, Colors), cookie)
+ return CreateConicalGradientCookie{cookie}
}
// Check returns an error if one occurred for checked requests that are not expecting a reply.
// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook CreateGlyphSetCookie) Check() error {
+func (cook CreateConicalGradientCookie) Check() error {
return cook.Cookie.Check()
}
-// Write request to wire for CreateGlyphSet
-// createGlyphSetRequest writes a CreateGlyphSet request to a byte slice.
-func createGlyphSetRequest(c *xgb.Conn, Gsid Glyphset, Format Pictformat) []byte {
- size := 12
+// Write request to wire for CreateConicalGradient
+// createConicalGradientRequest writes a CreateConicalGradient request to a byte slice.
+func createConicalGradientRequest(c *xgb.Conn, Picture Picture, Center Pointfix, Angle Fixed, NumStops uint32, Stops []Fixed, Colors []Color) []byte {
+ size := xgb.Pad(((24 + xgb.Pad((int(NumStops) * 4))) + xgb.Pad((int(NumStops) * 8))))
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 17 // request opcode
+ buf[b] = 36 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
b += 2
- xgb.Put32(buf[b:], uint32(Gsid))
+ xgb.Put32(buf[b:], uint32(Picture))
b += 4
- xgb.Put32(buf[b:], uint32(Format))
+ {
+ structBytes := Center.Bytes()
+ copy(buf[b:], structBytes)
+ b += xgb.Pad(len(structBytes))
+ }
+
+ xgb.Put32(buf[b:], uint32(Angle))
+ b += 4
+
+ xgb.Put32(buf[b:], NumStops)
b += 4
+ for i := 0; i < int(NumStops); i++ {
+ xgb.Put32(buf[b:], uint32(Stops[i]))
+ b += 4
+ }
+ b = xgb.Pad(b)
+
+ b += ColorListBytes(buf[b:], Colors)
+
return buf
}
-// ReferenceGlyphSetCookie is a cookie used only for ReferenceGlyphSet requests.
-type ReferenceGlyphSetCookie struct {
+// CreateCursorCookie is a cookie used only for CreateCursor requests.
+type CreateCursorCookie struct {
*xgb.Cookie
}
-// ReferenceGlyphSet sends an unchecked request.
+// CreateCursor sends an unchecked request.
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func ReferenceGlyphSet(c *xgb.Conn, Gsid Glyphset, Existing Glyphset) ReferenceGlyphSetCookie {
+func CreateCursor(c *xgb.Conn, Cid xproto.Cursor, Source Picture, X uint16, Y uint16) CreateCursorCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'ReferenceGlyphSet' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'CreateCursor' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(false, false)
- c.NewRequest(referenceGlyphSetRequest(c, Gsid, Existing), cookie)
- return ReferenceGlyphSetCookie{cookie}
+ c.NewRequest(createCursorRequest(c, Cid, Source, X, Y), cookie)
+ return CreateCursorCookie{cookie}
}
-// ReferenceGlyphSetChecked sends a checked request.
-// If an error occurs, it can be retrieved using ReferenceGlyphSetCookie.Check()
-func ReferenceGlyphSetChecked(c *xgb.Conn, Gsid Glyphset, Existing Glyphset) ReferenceGlyphSetCookie {
+// CreateCursorChecked sends a checked request.
+// If an error occurs, it can be retrieved using CreateCursorCookie.Check()
+func CreateCursorChecked(c *xgb.Conn, Cid xproto.Cursor, Source Picture, X uint16, Y uint16) CreateCursorCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'ReferenceGlyphSet' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'CreateCursor' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(true, false)
- c.NewRequest(referenceGlyphSetRequest(c, Gsid, Existing), cookie)
- return ReferenceGlyphSetCookie{cookie}
+ c.NewRequest(createCursorRequest(c, Cid, Source, X, Y), cookie)
+ return CreateCursorCookie{cookie}
}
// Check returns an error if one occurred for checked requests that are not expecting a reply.
// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook ReferenceGlyphSetCookie) Check() error {
+func (cook CreateCursorCookie) Check() error {
return cook.Cookie.Check()
}
-// Write request to wire for ReferenceGlyphSet
-// referenceGlyphSetRequest writes a ReferenceGlyphSet request to a byte slice.
-func referenceGlyphSetRequest(c *xgb.Conn, Gsid Glyphset, Existing Glyphset) []byte {
- size := 12
+// Write request to wire for CreateCursor
+// createCursorRequest writes a CreateCursor request to a byte slice.
+func createCursorRequest(c *xgb.Conn, Cid xproto.Cursor, Source Picture, X uint16, Y uint16) []byte {
+ size := 16
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 18 // request opcode
+ buf[b] = 27 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
b += 2
- xgb.Put32(buf[b:], uint32(Gsid))
+ xgb.Put32(buf[b:], uint32(Cid))
b += 4
- xgb.Put32(buf[b:], uint32(Existing))
+ xgb.Put32(buf[b:], uint32(Source))
b += 4
+ xgb.Put16(buf[b:], X)
+ b += 2
+
+ xgb.Put16(buf[b:], Y)
+ b += 2
+
return buf
}
-// FreeGlyphSetCookie is a cookie used only for FreeGlyphSet requests.
-type FreeGlyphSetCookie struct {
+// CreateGlyphSetCookie is a cookie used only for CreateGlyphSet requests.
+type CreateGlyphSetCookie struct {
*xgb.Cookie
}
-// FreeGlyphSet sends an unchecked request.
+// CreateGlyphSet sends an unchecked request.
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func FreeGlyphSet(c *xgb.Conn, Glyphset Glyphset) FreeGlyphSetCookie {
+func CreateGlyphSet(c *xgb.Conn, Gsid Glyphset, Format Pictformat) CreateGlyphSetCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'FreeGlyphSet' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'CreateGlyphSet' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(false, false)
- c.NewRequest(freeGlyphSetRequest(c, Glyphset), cookie)
- return FreeGlyphSetCookie{cookie}
+ c.NewRequest(createGlyphSetRequest(c, Gsid, Format), cookie)
+ return CreateGlyphSetCookie{cookie}
}
-// FreeGlyphSetChecked sends a checked request.
-// If an error occurs, it can be retrieved using FreeGlyphSetCookie.Check()
-func FreeGlyphSetChecked(c *xgb.Conn, Glyphset Glyphset) FreeGlyphSetCookie {
+// CreateGlyphSetChecked sends a checked request.
+// If an error occurs, it can be retrieved using CreateGlyphSetCookie.Check()
+func CreateGlyphSetChecked(c *xgb.Conn, Gsid Glyphset, Format Pictformat) CreateGlyphSetCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'FreeGlyphSet' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'CreateGlyphSet' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(true, false)
- c.NewRequest(freeGlyphSetRequest(c, Glyphset), cookie)
- return FreeGlyphSetCookie{cookie}
+ c.NewRequest(createGlyphSetRequest(c, Gsid, Format), cookie)
+ return CreateGlyphSetCookie{cookie}
}
// Check returns an error if one occurred for checked requests that are not expecting a reply.
// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook FreeGlyphSetCookie) Check() error {
+func (cook CreateGlyphSetCookie) Check() error {
return cook.Cookie.Check()
}
-// Write request to wire for FreeGlyphSet
-// freeGlyphSetRequest writes a FreeGlyphSet request to a byte slice.
-func freeGlyphSetRequest(c *xgb.Conn, Glyphset Glyphset) []byte {
- size := 8
+// Write request to wire for CreateGlyphSet
+// createGlyphSetRequest writes a CreateGlyphSet request to a byte slice.
+func createGlyphSetRequest(c *xgb.Conn, Gsid Glyphset, Format Pictformat) []byte {
+ size := 12
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 19 // request opcode
+ buf[b] = 17 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
b += 2
- xgb.Put32(buf[b:], uint32(Glyphset))
+ xgb.Put32(buf[b:], uint32(Gsid))
+ b += 4
+
+ xgb.Put32(buf[b:], uint32(Format))
b += 4
return buf
}
-// AddGlyphsCookie is a cookie used only for AddGlyphs requests.
-type AddGlyphsCookie struct {
+// CreateLinearGradientCookie is a cookie used only for CreateLinearGradient requests.
+type CreateLinearGradientCookie struct {
*xgb.Cookie
}
-// AddGlyphs sends an unchecked request.
+// CreateLinearGradient sends an unchecked request.
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func AddGlyphs(c *xgb.Conn, Glyphset Glyphset, GlyphsLen uint32, Glyphids []uint32, Glyphs []Glyphinfo, Data []byte) AddGlyphsCookie {
+func CreateLinearGradient(c *xgb.Conn, Picture Picture, P1 Pointfix, P2 Pointfix, NumStops uint32, Stops []Fixed, Colors []Color) CreateLinearGradientCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'AddGlyphs' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'CreateLinearGradient' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(false, false)
- c.NewRequest(addGlyphsRequest(c, Glyphset, GlyphsLen, Glyphids, Glyphs, Data), cookie)
- return AddGlyphsCookie{cookie}
+ c.NewRequest(createLinearGradientRequest(c, Picture, P1, P2, NumStops, Stops, Colors), cookie)
+ return CreateLinearGradientCookie{cookie}
}
-// AddGlyphsChecked sends a checked request.
-// If an error occurs, it can be retrieved using AddGlyphsCookie.Check()
-func AddGlyphsChecked(c *xgb.Conn, Glyphset Glyphset, GlyphsLen uint32, Glyphids []uint32, Glyphs []Glyphinfo, Data []byte) AddGlyphsCookie {
+// CreateLinearGradientChecked sends a checked request.
+// If an error occurs, it can be retrieved using CreateLinearGradientCookie.Check()
+func CreateLinearGradientChecked(c *xgb.Conn, Picture Picture, P1 Pointfix, P2 Pointfix, NumStops uint32, Stops []Fixed, Colors []Color) CreateLinearGradientCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'AddGlyphs' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'CreateLinearGradient' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(true, false)
- c.NewRequest(addGlyphsRequest(c, Glyphset, GlyphsLen, Glyphids, Glyphs, Data), cookie)
- return AddGlyphsCookie{cookie}
+ c.NewRequest(createLinearGradientRequest(c, Picture, P1, P2, NumStops, Stops, Colors), cookie)
+ return CreateLinearGradientCookie{cookie}
}
// Check returns an error if one occurred for checked requests that are not expecting a reply.
// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook AddGlyphsCookie) Check() error {
+func (cook CreateLinearGradientCookie) Check() error {
return cook.Cookie.Check()
}
-// Write request to wire for AddGlyphs
-// addGlyphsRequest writes a AddGlyphs request to a byte slice.
-func addGlyphsRequest(c *xgb.Conn, Glyphset Glyphset, GlyphsLen uint32, Glyphids []uint32, Glyphs []Glyphinfo, Data []byte) []byte {
- size := xgb.Pad((((12 + xgb.Pad((int(GlyphsLen) * 4))) + xgb.Pad((int(GlyphsLen) * 12))) + xgb.Pad((len(Data) * 1))))
+// Write request to wire for CreateLinearGradient
+// createLinearGradientRequest writes a CreateLinearGradient request to a byte slice.
+func createLinearGradientRequest(c *xgb.Conn, Picture Picture, P1 Pointfix, P2 Pointfix, NumStops uint32, Stops []Fixed, Colors []Color) []byte {
+ size := xgb.Pad(((28 + xgb.Pad((int(NumStops) * 4))) + xgb.Pad((int(NumStops) * 8))))
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 20 // request opcode
+ buf[b] = 34 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
b += 2
- xgb.Put32(buf[b:], uint32(Glyphset))
+ xgb.Put32(buf[b:], uint32(Picture))
b += 4
- xgb.Put32(buf[b:], GlyphsLen)
+ {
+ structBytes := P1.Bytes()
+ copy(buf[b:], structBytes)
+ b += xgb.Pad(len(structBytes))
+ }
+
+ {
+ structBytes := P2.Bytes()
+ copy(buf[b:], structBytes)
+ b += xgb.Pad(len(structBytes))
+ }
+
+ xgb.Put32(buf[b:], NumStops)
b += 4
- for i := 0; i < int(GlyphsLen); i++ {
- xgb.Put32(buf[b:], Glyphids[i])
+ for i := 0; i < int(NumStops); i++ {
+ xgb.Put32(buf[b:], uint32(Stops[i]))
b += 4
}
b = xgb.Pad(b)
- b += GlyphinfoListBytes(buf[b:], Glyphs)
-
- copy(buf[b:], Data[:len(Data)])
- b += xgb.Pad(int(len(Data)))
+ b += ColorListBytes(buf[b:], Colors)
return buf
}
-// FreeGlyphsCookie is a cookie used only for FreeGlyphs requests.
-type FreeGlyphsCookie struct {
+// CreatePictureCookie is a cookie used only for CreatePicture requests.
+type CreatePictureCookie struct {
*xgb.Cookie
}
-// FreeGlyphs sends an unchecked request.
+// CreatePicture sends an unchecked request.
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func FreeGlyphs(c *xgb.Conn, Glyphset Glyphset, Glyphs []Glyph) FreeGlyphsCookie {
+func CreatePicture(c *xgb.Conn, Pid Picture, Drawable xproto.Drawable, Format Pictformat, ValueMask uint32, ValueList []uint32) CreatePictureCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'FreeGlyphs' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'CreatePicture' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(false, false)
- c.NewRequest(freeGlyphsRequest(c, Glyphset, Glyphs), cookie)
- return FreeGlyphsCookie{cookie}
+ c.NewRequest(createPictureRequest(c, Pid, Drawable, Format, ValueMask, ValueList), cookie)
+ return CreatePictureCookie{cookie}
}
-// FreeGlyphsChecked sends a checked request.
-// If an error occurs, it can be retrieved using FreeGlyphsCookie.Check()
-func FreeGlyphsChecked(c *xgb.Conn, Glyphset Glyphset, Glyphs []Glyph) FreeGlyphsCookie {
+// CreatePictureChecked sends a checked request.
+// If an error occurs, it can be retrieved using CreatePictureCookie.Check()
+func CreatePictureChecked(c *xgb.Conn, Pid Picture, Drawable xproto.Drawable, Format Pictformat, ValueMask uint32, ValueList []uint32) CreatePictureCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'FreeGlyphs' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'CreatePicture' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(true, false)
- c.NewRequest(freeGlyphsRequest(c, Glyphset, Glyphs), cookie)
- return FreeGlyphsCookie{cookie}
+ c.NewRequest(createPictureRequest(c, Pid, Drawable, Format, ValueMask, ValueList), cookie)
+ return CreatePictureCookie{cookie}
}
// Check returns an error if one occurred for checked requests that are not expecting a reply.
// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook FreeGlyphsCookie) Check() error {
+func (cook CreatePictureCookie) Check() error {
return cook.Cookie.Check()
}
-// Write request to wire for FreeGlyphs
-// freeGlyphsRequest writes a FreeGlyphs request to a byte slice.
-func freeGlyphsRequest(c *xgb.Conn, Glyphset Glyphset, Glyphs []Glyph) []byte {
- size := xgb.Pad((8 + xgb.Pad((len(Glyphs) * 4))))
+// Write request to wire for CreatePicture
+// createPictureRequest writes a CreatePicture request to a byte slice.
+func createPictureRequest(c *xgb.Conn, Pid Picture, Drawable xproto.Drawable, Format Pictformat, ValueMask uint32, ValueList []uint32) []byte {
+ size := xgb.Pad((16 + (4 + xgb.Pad((4 * xgb.PopCount(int(ValueMask)))))))
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 22 // request opcode
+ buf[b] = 4 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
b += 2
- xgb.Put32(buf[b:], uint32(Glyphset))
+ xgb.Put32(buf[b:], uint32(Pid))
b += 4
- for i := 0; i < int(len(Glyphs)); i++ {
- xgb.Put32(buf[b:], uint32(Glyphs[i]))
+ xgb.Put32(buf[b:], uint32(Drawable))
+ b += 4
+
+ xgb.Put32(buf[b:], uint32(Format))
+ b += 4
+
+ xgb.Put32(buf[b:], ValueMask)
+ b += 4
+ for i := 0; i < xgb.PopCount(int(ValueMask)); i++ {
+ xgb.Put32(buf[b:], ValueList[i])
b += 4
}
b = xgb.Pad(b)
@@ -2827,206 +2497,195 @@ func freeGlyphsRequest(c *xgb.Conn, Glyphset Glyphset, Glyphs []Glyph) []byte {
return buf
}
-// CompositeGlyphs8Cookie is a cookie used only for CompositeGlyphs8 requests.
-type CompositeGlyphs8Cookie struct {
+// CreateRadialGradientCookie is a cookie used only for CreateRadialGradient requests.
+type CreateRadialGradientCookie struct {
*xgb.Cookie
}
-// CompositeGlyphs8 sends an unchecked request.
+// CreateRadialGradient sends an unchecked request.
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func CompositeGlyphs8(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, Glyphset Glyphset, SrcX int16, SrcY int16, Glyphcmds []byte) CompositeGlyphs8Cookie {
+func CreateRadialGradient(c *xgb.Conn, Picture Picture, Inner Pointfix, Outer Pointfix, InnerRadius Fixed, OuterRadius Fixed, NumStops uint32, Stops []Fixed, Colors []Color) CreateRadialGradientCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'CompositeGlyphs8' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'CreateRadialGradient' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(false, false)
- c.NewRequest(compositeGlyphs8Request(c, Op, Src, Dst, MaskFormat, Glyphset, SrcX, SrcY, Glyphcmds), cookie)
- return CompositeGlyphs8Cookie{cookie}
+ c.NewRequest(createRadialGradientRequest(c, Picture, Inner, Outer, InnerRadius, OuterRadius, NumStops, Stops, Colors), cookie)
+ return CreateRadialGradientCookie{cookie}
}
-// CompositeGlyphs8Checked sends a checked request.
-// If an error occurs, it can be retrieved using CompositeGlyphs8Cookie.Check()
-func CompositeGlyphs8Checked(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, Glyphset Glyphset, SrcX int16, SrcY int16, Glyphcmds []byte) CompositeGlyphs8Cookie {
+// CreateRadialGradientChecked sends a checked request.
+// If an error occurs, it can be retrieved using CreateRadialGradientCookie.Check()
+func CreateRadialGradientChecked(c *xgb.Conn, Picture Picture, Inner Pointfix, Outer Pointfix, InnerRadius Fixed, OuterRadius Fixed, NumStops uint32, Stops []Fixed, Colors []Color) CreateRadialGradientCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'CompositeGlyphs8' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'CreateRadialGradient' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(true, false)
- c.NewRequest(compositeGlyphs8Request(c, Op, Src, Dst, MaskFormat, Glyphset, SrcX, SrcY, Glyphcmds), cookie)
- return CompositeGlyphs8Cookie{cookie}
+ c.NewRequest(createRadialGradientRequest(c, Picture, Inner, Outer, InnerRadius, OuterRadius, NumStops, Stops, Colors), cookie)
+ return CreateRadialGradientCookie{cookie}
}
// Check returns an error if one occurred for checked requests that are not expecting a reply.
// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook CompositeGlyphs8Cookie) Check() error {
+func (cook CreateRadialGradientCookie) Check() error {
return cook.Cookie.Check()
}
-// Write request to wire for CompositeGlyphs8
-// compositeGlyphs8Request writes a CompositeGlyphs8 request to a byte slice.
-func compositeGlyphs8Request(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, Glyphset Glyphset, SrcX int16, SrcY int16, Glyphcmds []byte) []byte {
- size := xgb.Pad((28 + xgb.Pad((len(Glyphcmds) * 1))))
+// Write request to wire for CreateRadialGradient
+// createRadialGradientRequest writes a CreateRadialGradient request to a byte slice.
+func createRadialGradientRequest(c *xgb.Conn, Picture Picture, Inner Pointfix, Outer Pointfix, InnerRadius Fixed, OuterRadius Fixed, NumStops uint32, Stops []Fixed, Colors []Color) []byte {
+ size := xgb.Pad(((36 + xgb.Pad((int(NumStops) * 4))) + xgb.Pad((int(NumStops) * 8))))
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 23 // request opcode
+ buf[b] = 35 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
b += 2
- buf[b] = Op
- b += 1
+ xgb.Put32(buf[b:], uint32(Picture))
+ b += 4
- b += 3 // padding
+ {
+ structBytes := Inner.Bytes()
+ copy(buf[b:], structBytes)
+ b += xgb.Pad(len(structBytes))
+ }
- xgb.Put32(buf[b:], uint32(Src))
- b += 4
+ {
+ structBytes := Outer.Bytes()
+ copy(buf[b:], structBytes)
+ b += xgb.Pad(len(structBytes))
+ }
- xgb.Put32(buf[b:], uint32(Dst))
+ xgb.Put32(buf[b:], uint32(InnerRadius))
b += 4
- xgb.Put32(buf[b:], uint32(MaskFormat))
+ xgb.Put32(buf[b:], uint32(OuterRadius))
b += 4
- xgb.Put32(buf[b:], uint32(Glyphset))
+ xgb.Put32(buf[b:], NumStops)
b += 4
- xgb.Put16(buf[b:], uint16(SrcX))
- b += 2
-
- xgb.Put16(buf[b:], uint16(SrcY))
- b += 2
+ for i := 0; i < int(NumStops); i++ {
+ xgb.Put32(buf[b:], uint32(Stops[i]))
+ b += 4
+ }
+ b = xgb.Pad(b)
- copy(buf[b:], Glyphcmds[:len(Glyphcmds)])
- b += xgb.Pad(int(len(Glyphcmds)))
+ b += ColorListBytes(buf[b:], Colors)
return buf
}
-// CompositeGlyphs16Cookie is a cookie used only for CompositeGlyphs16 requests.
-type CompositeGlyphs16Cookie struct {
+// CreateSolidFillCookie is a cookie used only for CreateSolidFill requests.
+type CreateSolidFillCookie struct {
*xgb.Cookie
}
-// CompositeGlyphs16 sends an unchecked request.
+// CreateSolidFill sends an unchecked request.
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func CompositeGlyphs16(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, Glyphset Glyphset, SrcX int16, SrcY int16, Glyphcmds []byte) CompositeGlyphs16Cookie {
+func CreateSolidFill(c *xgb.Conn, Picture Picture, Color Color) CreateSolidFillCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'CompositeGlyphs16' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'CreateSolidFill' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(false, false)
- c.NewRequest(compositeGlyphs16Request(c, Op, Src, Dst, MaskFormat, Glyphset, SrcX, SrcY, Glyphcmds), cookie)
- return CompositeGlyphs16Cookie{cookie}
+ c.NewRequest(createSolidFillRequest(c, Picture, Color), cookie)
+ return CreateSolidFillCookie{cookie}
}
-// CompositeGlyphs16Checked sends a checked request.
-// If an error occurs, it can be retrieved using CompositeGlyphs16Cookie.Check()
-func CompositeGlyphs16Checked(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, Glyphset Glyphset, SrcX int16, SrcY int16, Glyphcmds []byte) CompositeGlyphs16Cookie {
+// CreateSolidFillChecked sends a checked request.
+// If an error occurs, it can be retrieved using CreateSolidFillCookie.Check()
+func CreateSolidFillChecked(c *xgb.Conn, Picture Picture, Color Color) CreateSolidFillCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'CompositeGlyphs16' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'CreateSolidFill' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(true, false)
- c.NewRequest(compositeGlyphs16Request(c, Op, Src, Dst, MaskFormat, Glyphset, SrcX, SrcY, Glyphcmds), cookie)
- return CompositeGlyphs16Cookie{cookie}
+ c.NewRequest(createSolidFillRequest(c, Picture, Color), cookie)
+ return CreateSolidFillCookie{cookie}
}
// Check returns an error if one occurred for checked requests that are not expecting a reply.
// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook CompositeGlyphs16Cookie) Check() error {
+func (cook CreateSolidFillCookie) Check() error {
return cook.Cookie.Check()
}
-// Write request to wire for CompositeGlyphs16
-// compositeGlyphs16Request writes a CompositeGlyphs16 request to a byte slice.
-func compositeGlyphs16Request(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, Glyphset Glyphset, SrcX int16, SrcY int16, Glyphcmds []byte) []byte {
- size := xgb.Pad((28 + xgb.Pad((len(Glyphcmds) * 1))))
+// Write request to wire for CreateSolidFill
+// createSolidFillRequest writes a CreateSolidFill request to a byte slice.
+func createSolidFillRequest(c *xgb.Conn, Picture Picture, Color Color) []byte {
+ size := 16
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 24 // request opcode
+ buf[b] = 33 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
b += 2
- buf[b] = Op
- b += 1
-
- b += 3 // padding
-
- xgb.Put32(buf[b:], uint32(Src))
- b += 4
-
- xgb.Put32(buf[b:], uint32(Dst))
- b += 4
-
- xgb.Put32(buf[b:], uint32(MaskFormat))
- b += 4
-
- xgb.Put32(buf[b:], uint32(Glyphset))
+ xgb.Put32(buf[b:], uint32(Picture))
b += 4
- xgb.Put16(buf[b:], uint16(SrcX))
- b += 2
-
- xgb.Put16(buf[b:], uint16(SrcY))
- b += 2
-
- copy(buf[b:], Glyphcmds[:len(Glyphcmds)])
- b += xgb.Pad(int(len(Glyphcmds)))
+ {
+ structBytes := Color.Bytes()
+ copy(buf[b:], structBytes)
+ b += xgb.Pad(len(structBytes))
+ }
return buf
}
-// CompositeGlyphs32Cookie is a cookie used only for CompositeGlyphs32 requests.
-type CompositeGlyphs32Cookie struct {
+// FillRectanglesCookie is a cookie used only for FillRectangles requests.
+type FillRectanglesCookie struct {
*xgb.Cookie
}
-// CompositeGlyphs32 sends an unchecked request.
+// FillRectangles sends an unchecked request.
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func CompositeGlyphs32(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, Glyphset Glyphset, SrcX int16, SrcY int16, Glyphcmds []byte) CompositeGlyphs32Cookie {
+func FillRectangles(c *xgb.Conn, Op byte, Dst Picture, Color Color, Rects []xproto.Rectangle) FillRectanglesCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'CompositeGlyphs32' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'FillRectangles' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(false, false)
- c.NewRequest(compositeGlyphs32Request(c, Op, Src, Dst, MaskFormat, Glyphset, SrcX, SrcY, Glyphcmds), cookie)
- return CompositeGlyphs32Cookie{cookie}
+ c.NewRequest(fillRectanglesRequest(c, Op, Dst, Color, Rects), cookie)
+ return FillRectanglesCookie{cookie}
}
-// CompositeGlyphs32Checked sends a checked request.
-// If an error occurs, it can be retrieved using CompositeGlyphs32Cookie.Check()
-func CompositeGlyphs32Checked(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, Glyphset Glyphset, SrcX int16, SrcY int16, Glyphcmds []byte) CompositeGlyphs32Cookie {
+// FillRectanglesChecked sends a checked request.
+// If an error occurs, it can be retrieved using FillRectanglesCookie.Check()
+func FillRectanglesChecked(c *xgb.Conn, Op byte, Dst Picture, Color Color, Rects []xproto.Rectangle) FillRectanglesCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'CompositeGlyphs32' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'FillRectangles' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(true, false)
- c.NewRequest(compositeGlyphs32Request(c, Op, Src, Dst, MaskFormat, Glyphset, SrcX, SrcY, Glyphcmds), cookie)
- return CompositeGlyphs32Cookie{cookie}
+ c.NewRequest(fillRectanglesRequest(c, Op, Dst, Color, Rects), cookie)
+ return FillRectanglesCookie{cookie}
}
// Check returns an error if one occurred for checked requests that are not expecting a reply.
// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook CompositeGlyphs32Cookie) Check() error {
+func (cook FillRectanglesCookie) Check() error {
return cook.Cookie.Check()
}
-// Write request to wire for CompositeGlyphs32
-// compositeGlyphs32Request writes a CompositeGlyphs32 request to a byte slice.
-func compositeGlyphs32Request(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, Glyphset Glyphset, SrcX int16, SrcY int16, Glyphcmds []byte) []byte {
- size := xgb.Pad((28 + xgb.Pad((len(Glyphcmds) * 1))))
+// Write request to wire for FillRectangles
+// fillRectanglesRequest writes a FillRectangles request to a byte slice.
+func fillRectanglesRequest(c *xgb.Conn, Op byte, Dst Picture, Color Color, Rects []xproto.Rectangle) []byte {
+ size := xgb.Pad((20 + xgb.Pad((len(Rects) * 8))))
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 25 // request opcode
+ buf[b] = 26 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
@@ -3037,206 +2696,180 @@ func compositeGlyphs32Request(c *xgb.Conn, Op byte, Src Picture, Dst Picture, Ma
b += 3 // padding
- xgb.Put32(buf[b:], uint32(Src))
- b += 4
-
xgb.Put32(buf[b:], uint32(Dst))
b += 4
- xgb.Put32(buf[b:], uint32(MaskFormat))
- b += 4
-
- xgb.Put32(buf[b:], uint32(Glyphset))
- b += 4
-
- xgb.Put16(buf[b:], uint16(SrcX))
- b += 2
-
- xgb.Put16(buf[b:], uint16(SrcY))
- b += 2
+ {
+ structBytes := Color.Bytes()
+ copy(buf[b:], structBytes)
+ b += xgb.Pad(len(structBytes))
+ }
- copy(buf[b:], Glyphcmds[:len(Glyphcmds)])
- b += xgb.Pad(int(len(Glyphcmds)))
+ b += xproto.RectangleListBytes(buf[b:], Rects)
return buf
}
-// FillRectanglesCookie is a cookie used only for FillRectangles requests.
-type FillRectanglesCookie struct {
+// FreeGlyphSetCookie is a cookie used only for FreeGlyphSet requests.
+type FreeGlyphSetCookie struct {
*xgb.Cookie
}
-// FillRectangles sends an unchecked request.
+// FreeGlyphSet sends an unchecked request.
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func FillRectangles(c *xgb.Conn, Op byte, Dst Picture, Color Color, Rects []xproto.Rectangle) FillRectanglesCookie {
+func FreeGlyphSet(c *xgb.Conn, Glyphset Glyphset) FreeGlyphSetCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'FillRectangles' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'FreeGlyphSet' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(false, false)
- c.NewRequest(fillRectanglesRequest(c, Op, Dst, Color, Rects), cookie)
- return FillRectanglesCookie{cookie}
+ c.NewRequest(freeGlyphSetRequest(c, Glyphset), cookie)
+ return FreeGlyphSetCookie{cookie}
}
-// FillRectanglesChecked sends a checked request.
-// If an error occurs, it can be retrieved using FillRectanglesCookie.Check()
-func FillRectanglesChecked(c *xgb.Conn, Op byte, Dst Picture, Color Color, Rects []xproto.Rectangle) FillRectanglesCookie {
+// FreeGlyphSetChecked sends a checked request.
+// If an error occurs, it can be retrieved using FreeGlyphSetCookie.Check()
+func FreeGlyphSetChecked(c *xgb.Conn, Glyphset Glyphset) FreeGlyphSetCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'FillRectangles' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'FreeGlyphSet' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(true, false)
- c.NewRequest(fillRectanglesRequest(c, Op, Dst, Color, Rects), cookie)
- return FillRectanglesCookie{cookie}
+ c.NewRequest(freeGlyphSetRequest(c, Glyphset), cookie)
+ return FreeGlyphSetCookie{cookie}
}
// Check returns an error if one occurred for checked requests that are not expecting a reply.
// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook FillRectanglesCookie) Check() error {
+func (cook FreeGlyphSetCookie) Check() error {
return cook.Cookie.Check()
}
-// Write request to wire for FillRectangles
-// fillRectanglesRequest writes a FillRectangles request to a byte slice.
-func fillRectanglesRequest(c *xgb.Conn, Op byte, Dst Picture, Color Color, Rects []xproto.Rectangle) []byte {
- size := xgb.Pad((20 + xgb.Pad((len(Rects) * 8))))
+// Write request to wire for FreeGlyphSet
+// freeGlyphSetRequest writes a FreeGlyphSet request to a byte slice.
+func freeGlyphSetRequest(c *xgb.Conn, Glyphset Glyphset) []byte {
+ size := 8
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 26 // request opcode
+ buf[b] = 19 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
b += 2
- buf[b] = Op
- b += 1
-
- b += 3 // padding
-
- xgb.Put32(buf[b:], uint32(Dst))
+ xgb.Put32(buf[b:], uint32(Glyphset))
b += 4
- {
- structBytes := Color.Bytes()
- copy(buf[b:], structBytes)
- b += xgb.Pad(len(structBytes))
- }
-
- b += xproto.RectangleListBytes(buf[b:], Rects)
-
return buf
}
-// CreateCursorCookie is a cookie used only for CreateCursor requests.
-type CreateCursorCookie struct {
+// FreeGlyphsCookie is a cookie used only for FreeGlyphs requests.
+type FreeGlyphsCookie struct {
*xgb.Cookie
}
-// CreateCursor sends an unchecked request.
+// FreeGlyphs sends an unchecked request.
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func CreateCursor(c *xgb.Conn, Cid xproto.Cursor, Source Picture, X uint16, Y uint16) CreateCursorCookie {
+func FreeGlyphs(c *xgb.Conn, Glyphset Glyphset, Glyphs []Glyph) FreeGlyphsCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'CreateCursor' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'FreeGlyphs' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(false, false)
- c.NewRequest(createCursorRequest(c, Cid, Source, X, Y), cookie)
- return CreateCursorCookie{cookie}
+ c.NewRequest(freeGlyphsRequest(c, Glyphset, Glyphs), cookie)
+ return FreeGlyphsCookie{cookie}
}
-// CreateCursorChecked sends a checked request.
-// If an error occurs, it can be retrieved using CreateCursorCookie.Check()
-func CreateCursorChecked(c *xgb.Conn, Cid xproto.Cursor, Source Picture, X uint16, Y uint16) CreateCursorCookie {
+// FreeGlyphsChecked sends a checked request.
+// If an error occurs, it can be retrieved using FreeGlyphsCookie.Check()
+func FreeGlyphsChecked(c *xgb.Conn, Glyphset Glyphset, Glyphs []Glyph) FreeGlyphsCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'CreateCursor' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'FreeGlyphs' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(true, false)
- c.NewRequest(createCursorRequest(c, Cid, Source, X, Y), cookie)
- return CreateCursorCookie{cookie}
+ c.NewRequest(freeGlyphsRequest(c, Glyphset, Glyphs), cookie)
+ return FreeGlyphsCookie{cookie}
}
// Check returns an error if one occurred for checked requests that are not expecting a reply.
// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook CreateCursorCookie) Check() error {
+func (cook FreeGlyphsCookie) Check() error {
return cook.Cookie.Check()
}
-// Write request to wire for CreateCursor
-// createCursorRequest writes a CreateCursor request to a byte slice.
-func createCursorRequest(c *xgb.Conn, Cid xproto.Cursor, Source Picture, X uint16, Y uint16) []byte {
- size := 16
+// Write request to wire for FreeGlyphs
+// freeGlyphsRequest writes a FreeGlyphs request to a byte slice.
+func freeGlyphsRequest(c *xgb.Conn, Glyphset Glyphset, Glyphs []Glyph) []byte {
+ size := xgb.Pad((8 + xgb.Pad((len(Glyphs) * 4))))
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 27 // request opcode
+ buf[b] = 22 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
b += 2
- xgb.Put32(buf[b:], uint32(Cid))
- b += 4
-
- xgb.Put32(buf[b:], uint32(Source))
+ xgb.Put32(buf[b:], uint32(Glyphset))
b += 4
- xgb.Put16(buf[b:], X)
- b += 2
-
- xgb.Put16(buf[b:], Y)
- b += 2
+ for i := 0; i < int(len(Glyphs)); i++ {
+ xgb.Put32(buf[b:], uint32(Glyphs[i]))
+ b += 4
+ }
+ b = xgb.Pad(b)
return buf
}
-// SetPictureTransformCookie is a cookie used only for SetPictureTransform requests.
-type SetPictureTransformCookie struct {
+// FreePictureCookie is a cookie used only for FreePicture requests.
+type FreePictureCookie struct {
*xgb.Cookie
}
-// SetPictureTransform sends an unchecked request.
+// FreePicture sends an unchecked request.
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func SetPictureTransform(c *xgb.Conn, Picture Picture, Transform Transform) SetPictureTransformCookie {
+func FreePicture(c *xgb.Conn, Picture Picture) FreePictureCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'SetPictureTransform' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'FreePicture' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(false, false)
- c.NewRequest(setPictureTransformRequest(c, Picture, Transform), cookie)
- return SetPictureTransformCookie{cookie}
+ c.NewRequest(freePictureRequest(c, Picture), cookie)
+ return FreePictureCookie{cookie}
}
-// SetPictureTransformChecked sends a checked request.
-// If an error occurs, it can be retrieved using SetPictureTransformCookie.Check()
-func SetPictureTransformChecked(c *xgb.Conn, Picture Picture, Transform Transform) SetPictureTransformCookie {
+// FreePictureChecked sends a checked request.
+// If an error occurs, it can be retrieved using FreePictureCookie.Check()
+func FreePictureChecked(c *xgb.Conn, Picture Picture) FreePictureCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'SetPictureTransform' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'FreePicture' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(true, false)
- c.NewRequest(setPictureTransformRequest(c, Picture, Transform), cookie)
- return SetPictureTransformCookie{cookie}
+ c.NewRequest(freePictureRequest(c, Picture), cookie)
+ return FreePictureCookie{cookie}
}
// Check returns an error if one occurred for checked requests that are not expecting a reply.
// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook SetPictureTransformCookie) Check() error {
+func (cook FreePictureCookie) Check() error {
return cook.Cookie.Check()
}
-// Write request to wire for SetPictureTransform
-// setPictureTransformRequest writes a SetPictureTransform request to a byte slice.
-func setPictureTransformRequest(c *xgb.Conn, Picture Picture, Transform Transform) []byte {
- size := 44
+// Write request to wire for FreePicture
+// freePictureRequest writes a FreePicture request to a byte slice.
+func freePictureRequest(c *xgb.Conn, Picture Picture) []byte {
+ size := 8
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 28 // request opcode
+ buf[b] = 7 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
@@ -3245,12 +2878,6 @@ func setPictureTransformRequest(c *xgb.Conn, Picture Picture, Transform Transfor
xgb.Put32(buf[b:], uint32(Picture))
b += 4
- {
- structBytes := Transform.Bytes()
- copy(buf[b:], structBytes)
- b += xgb.Pad(len(structBytes))
- }
-
return buf
}
@@ -3361,176 +2988,421 @@ func queryFiltersRequest(c *xgb.Conn, Drawable xproto.Drawable) []byte {
return buf
}
-// SetPictureFilterCookie is a cookie used only for SetPictureFilter requests.
-type SetPictureFilterCookie struct {
+// QueryPictFormatsCookie is a cookie used only for QueryPictFormats requests.
+type QueryPictFormatsCookie struct {
*xgb.Cookie
}
-// SetPictureFilter sends an unchecked request.
-// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func SetPictureFilter(c *xgb.Conn, Picture Picture, FilterLen uint16, Filter string, Values []Fixed) SetPictureFilterCookie {
+// QueryPictFormats sends a checked request.
+// If an error occurs, it will be returned with the reply by calling QueryPictFormatsCookie.Reply()
+func QueryPictFormats(c *xgb.Conn) QueryPictFormatsCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'SetPictureFilter' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'QueryPictFormats' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
- cookie := c.NewCookie(false, false)
- c.NewRequest(setPictureFilterRequest(c, Picture, FilterLen, Filter, Values), cookie)
- return SetPictureFilterCookie{cookie}
+ cookie := c.NewCookie(true, true)
+ c.NewRequest(queryPictFormatsRequest(c), cookie)
+ return QueryPictFormatsCookie{cookie}
}
-// SetPictureFilterChecked sends a checked request.
-// If an error occurs, it can be retrieved using SetPictureFilterCookie.Check()
-func SetPictureFilterChecked(c *xgb.Conn, Picture Picture, FilterLen uint16, Filter string, Values []Fixed) SetPictureFilterCookie {
+// QueryPictFormatsUnchecked sends an unchecked request.
+// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
+func QueryPictFormatsUnchecked(c *xgb.Conn) QueryPictFormatsCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'SetPictureFilter' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'QueryPictFormats' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
- cookie := c.NewCookie(true, false)
- c.NewRequest(setPictureFilterRequest(c, Picture, FilterLen, Filter, Values), cookie)
- return SetPictureFilterCookie{cookie}
+ cookie := c.NewCookie(false, true)
+ c.NewRequest(queryPictFormatsRequest(c), cookie)
+ return QueryPictFormatsCookie{cookie}
}
-// Check returns an error if one occurred for checked requests that are not expecting a reply.
-// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook SetPictureFilterCookie) Check() error {
- return cook.Cookie.Check()
+// QueryPictFormatsReply represents the data returned from a QueryPictFormats request.
+type QueryPictFormatsReply struct {
+ Sequence uint16 // sequence number of the request for this reply
+ Length uint32 // number of bytes in this reply
+ // padding: 1 bytes
+ NumFormats uint32
+ NumScreens uint32
+ NumDepths uint32
+ NumVisuals uint32
+ NumSubpixel uint32
+ // padding: 4 bytes
+ Formats []Pictforminfo // size: xgb.Pad((int(NumFormats) * 28))
+ Screens []Pictscreen // size: PictscreenListSize(Screens)
+ Subpixels []uint32 // size: xgb.Pad((int(NumSubpixel) * 4))
}
-// Write request to wire for SetPictureFilter
-// setPictureFilterRequest writes a SetPictureFilter request to a byte slice.
-func setPictureFilterRequest(c *xgb.Conn, Picture Picture, FilterLen uint16, Filter string, Values []Fixed) []byte {
- size := xgb.Pad(((12 + xgb.Pad((int(FilterLen) * 1))) + xgb.Pad((len(Values) * 4))))
+// Reply blocks and returns the reply data for a QueryPictFormats request.
+func (cook QueryPictFormatsCookie) Reply() (*QueryPictFormatsReply, error) {
+ buf, err := cook.Cookie.Reply()
+ if err != nil {
+ return nil, err
+ }
+ if buf == nil {
+ return nil, nil
+ }
+ return queryPictFormatsReply(buf), nil
+}
+
+// queryPictFormatsReply reads a byte slice into a QueryPictFormatsReply value.
+func queryPictFormatsReply(buf []byte) *QueryPictFormatsReply {
+ v := new(QueryPictFormatsReply)
+ b := 1 // skip reply determinant
+
+ b += 1 // padding
+
+ v.Sequence = xgb.Get16(buf[b:])
+ b += 2
+
+ v.Length = xgb.Get32(buf[b:]) // 4-byte units
+ b += 4
+
+ v.NumFormats = xgb.Get32(buf[b:])
+ b += 4
+
+ v.NumScreens = xgb.Get32(buf[b:])
+ b += 4
+
+ v.NumDepths = xgb.Get32(buf[b:])
+ b += 4
+
+ v.NumVisuals = xgb.Get32(buf[b:])
+ b += 4
+
+ v.NumSubpixel = xgb.Get32(buf[b:])
+ b += 4
+
+ b += 4 // padding
+
+ v.Formats = make([]Pictforminfo, v.NumFormats)
+ b += PictforminfoReadList(buf[b:], v.Formats)
+
+ v.Screens = make([]Pictscreen, v.NumScreens)
+ b += PictscreenReadList(buf[b:], v.Screens)
+
+ v.Subpixels = make([]uint32, v.NumSubpixel)
+ for i := 0; i < int(v.NumSubpixel); i++ {
+ v.Subpixels[i] = xgb.Get32(buf[b:])
+ b += 4
+ }
+ b = xgb.Pad(b)
+
+ return v
+}
+
+// Write request to wire for QueryPictFormats
+// queryPictFormatsRequest writes a QueryPictFormats request to a byte slice.
+func queryPictFormatsRequest(c *xgb.Conn) []byte {
+ size := 4
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 30 // request opcode
+ buf[b] = 1 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
b += 2
- xgb.Put32(buf[b:], uint32(Picture))
+ return buf
+}
+
+// QueryPictIndexValuesCookie is a cookie used only for QueryPictIndexValues requests.
+type QueryPictIndexValuesCookie struct {
+ *xgb.Cookie
+}
+
+// QueryPictIndexValues sends a checked request.
+// If an error occurs, it will be returned with the reply by calling QueryPictIndexValuesCookie.Reply()
+func QueryPictIndexValues(c *xgb.Conn, Format Pictformat) QueryPictIndexValuesCookie {
+ if _, ok := c.Extensions["RENDER"]; !ok {
+ panic("Cannot issue request 'QueryPictIndexValues' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ }
+ cookie := c.NewCookie(true, true)
+ c.NewRequest(queryPictIndexValuesRequest(c, Format), cookie)
+ return QueryPictIndexValuesCookie{cookie}
+}
+
+// QueryPictIndexValuesUnchecked sends an unchecked request.
+// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
+func QueryPictIndexValuesUnchecked(c *xgb.Conn, Format Pictformat) QueryPictIndexValuesCookie {
+ if _, ok := c.Extensions["RENDER"]; !ok {
+ panic("Cannot issue request 'QueryPictIndexValues' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ }
+ cookie := c.NewCookie(false, true)
+ c.NewRequest(queryPictIndexValuesRequest(c, Format), cookie)
+ return QueryPictIndexValuesCookie{cookie}
+}
+
+// QueryPictIndexValuesReply represents the data returned from a QueryPictIndexValues request.
+type QueryPictIndexValuesReply struct {
+ Sequence uint16 // sequence number of the request for this reply
+ Length uint32 // number of bytes in this reply
+ // padding: 1 bytes
+ NumValues uint32
+ // padding: 20 bytes
+ Values []Indexvalue // size: xgb.Pad((int(NumValues) * 12))
+}
+
+// Reply blocks and returns the reply data for a QueryPictIndexValues request.
+func (cook QueryPictIndexValuesCookie) Reply() (*QueryPictIndexValuesReply, error) {
+ buf, err := cook.Cookie.Reply()
+ if err != nil {
+ return nil, err
+ }
+ if buf == nil {
+ return nil, nil
+ }
+ return queryPictIndexValuesReply(buf), nil
+}
+
+// queryPictIndexValuesReply reads a byte slice into a QueryPictIndexValuesReply value.
+func queryPictIndexValuesReply(buf []byte) *QueryPictIndexValuesReply {
+ v := new(QueryPictIndexValuesReply)
+ b := 1 // skip reply determinant
+
+ b += 1 // padding
+
+ v.Sequence = xgb.Get16(buf[b:])
+ b += 2
+
+ v.Length = xgb.Get32(buf[b:]) // 4-byte units
b += 4
- xgb.Put16(buf[b:], FilterLen)
+ v.NumValues = xgb.Get32(buf[b:])
+ b += 4
+
+ b += 20 // padding
+
+ v.Values = make([]Indexvalue, v.NumValues)
+ b += IndexvalueReadList(buf[b:], v.Values)
+
+ return v
+}
+
+// Write request to wire for QueryPictIndexValues
+// queryPictIndexValuesRequest writes a QueryPictIndexValues request to a byte slice.
+func queryPictIndexValuesRequest(c *xgb.Conn, Format Pictformat) []byte {
+ size := 8
+ b := 0
+ buf := make([]byte, size)
+
+ buf[b] = c.Extensions["RENDER"]
+ b += 1
+
+ buf[b] = 2 // request opcode
+ b += 1
+
+ xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
b += 2
- b += 2 // padding
+ xgb.Put32(buf[b:], uint32(Format))
+ b += 4
- copy(buf[b:], Filter[:FilterLen])
- b += xgb.Pad(int(FilterLen))
+ return buf
+}
- for i := 0; i < int(len(Values)); i++ {
- xgb.Put32(buf[b:], uint32(Values[i]))
- b += 4
+// QueryVersionCookie is a cookie used only for QueryVersion requests.
+type QueryVersionCookie struct {
+ *xgb.Cookie
+}
+
+// QueryVersion sends a checked request.
+// If an error occurs, it will be returned with the reply by calling QueryVersionCookie.Reply()
+func QueryVersion(c *xgb.Conn, ClientMajorVersion uint32, ClientMinorVersion uint32) QueryVersionCookie {
+ if _, ok := c.Extensions["RENDER"]; !ok {
+ panic("Cannot issue request 'QueryVersion' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
- b = xgb.Pad(b)
+ cookie := c.NewCookie(true, true)
+ c.NewRequest(queryVersionRequest(c, ClientMajorVersion, ClientMinorVersion), cookie)
+ return QueryVersionCookie{cookie}
+}
+
+// QueryVersionUnchecked sends an unchecked request.
+// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
+func QueryVersionUnchecked(c *xgb.Conn, ClientMajorVersion uint32, ClientMinorVersion uint32) QueryVersionCookie {
+ if _, ok := c.Extensions["RENDER"]; !ok {
+ panic("Cannot issue request 'QueryVersion' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ }
+ cookie := c.NewCookie(false, true)
+ c.NewRequest(queryVersionRequest(c, ClientMajorVersion, ClientMinorVersion), cookie)
+ return QueryVersionCookie{cookie}
+}
+
+// QueryVersionReply represents the data returned from a QueryVersion request.
+type QueryVersionReply struct {
+ Sequence uint16 // sequence number of the request for this reply
+ Length uint32 // number of bytes in this reply
+ // padding: 1 bytes
+ MajorVersion uint32
+ MinorVersion uint32
+ // padding: 16 bytes
+}
+
+// Reply blocks and returns the reply data for a QueryVersion request.
+func (cook QueryVersionCookie) Reply() (*QueryVersionReply, error) {
+ buf, err := cook.Cookie.Reply()
+ if err != nil {
+ return nil, err
+ }
+ if buf == nil {
+ return nil, nil
+ }
+ return queryVersionReply(buf), nil
+}
+
+// queryVersionReply reads a byte slice into a QueryVersionReply value.
+func queryVersionReply(buf []byte) *QueryVersionReply {
+ v := new(QueryVersionReply)
+ b := 1 // skip reply determinant
+
+ b += 1 // padding
+
+ v.Sequence = xgb.Get16(buf[b:])
+ b += 2
+
+ v.Length = xgb.Get32(buf[b:]) // 4-byte units
+ b += 4
+
+ v.MajorVersion = xgb.Get32(buf[b:])
+ b += 4
+
+ v.MinorVersion = xgb.Get32(buf[b:])
+ b += 4
+
+ b += 16 // padding
+
+ return v
+}
+
+// Write request to wire for QueryVersion
+// queryVersionRequest writes a QueryVersion request to a byte slice.
+func queryVersionRequest(c *xgb.Conn, ClientMajorVersion uint32, ClientMinorVersion uint32) []byte {
+ size := 12
+ b := 0
+ buf := make([]byte, size)
+
+ buf[b] = c.Extensions["RENDER"]
+ b += 1
+
+ buf[b] = 0 // request opcode
+ b += 1
+
+ xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
+ b += 2
+
+ xgb.Put32(buf[b:], ClientMajorVersion)
+ b += 4
+
+ xgb.Put32(buf[b:], ClientMinorVersion)
+ b += 4
return buf
}
-// CreateAnimCursorCookie is a cookie used only for CreateAnimCursor requests.
-type CreateAnimCursorCookie struct {
+// ReferenceGlyphSetCookie is a cookie used only for ReferenceGlyphSet requests.
+type ReferenceGlyphSetCookie struct {
*xgb.Cookie
}
-// CreateAnimCursor sends an unchecked request.
+// ReferenceGlyphSet sends an unchecked request.
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func CreateAnimCursor(c *xgb.Conn, Cid xproto.Cursor, Cursors []Animcursorelt) CreateAnimCursorCookie {
+func ReferenceGlyphSet(c *xgb.Conn, Gsid Glyphset, Existing Glyphset) ReferenceGlyphSetCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'CreateAnimCursor' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'ReferenceGlyphSet' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(false, false)
- c.NewRequest(createAnimCursorRequest(c, Cid, Cursors), cookie)
- return CreateAnimCursorCookie{cookie}
+ c.NewRequest(referenceGlyphSetRequest(c, Gsid, Existing), cookie)
+ return ReferenceGlyphSetCookie{cookie}
}
-// CreateAnimCursorChecked sends a checked request.
-// If an error occurs, it can be retrieved using CreateAnimCursorCookie.Check()
-func CreateAnimCursorChecked(c *xgb.Conn, Cid xproto.Cursor, Cursors []Animcursorelt) CreateAnimCursorCookie {
+// ReferenceGlyphSetChecked sends a checked request.
+// If an error occurs, it can be retrieved using ReferenceGlyphSetCookie.Check()
+func ReferenceGlyphSetChecked(c *xgb.Conn, Gsid Glyphset, Existing Glyphset) ReferenceGlyphSetCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'CreateAnimCursor' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'ReferenceGlyphSet' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(true, false)
- c.NewRequest(createAnimCursorRequest(c, Cid, Cursors), cookie)
- return CreateAnimCursorCookie{cookie}
+ c.NewRequest(referenceGlyphSetRequest(c, Gsid, Existing), cookie)
+ return ReferenceGlyphSetCookie{cookie}
}
// Check returns an error if one occurred for checked requests that are not expecting a reply.
// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook CreateAnimCursorCookie) Check() error {
+func (cook ReferenceGlyphSetCookie) Check() error {
return cook.Cookie.Check()
}
-// Write request to wire for CreateAnimCursor
-// createAnimCursorRequest writes a CreateAnimCursor request to a byte slice.
-func createAnimCursorRequest(c *xgb.Conn, Cid xproto.Cursor, Cursors []Animcursorelt) []byte {
- size := xgb.Pad((8 + xgb.Pad((len(Cursors) * 8))))
+// Write request to wire for ReferenceGlyphSet
+// referenceGlyphSetRequest writes a ReferenceGlyphSet request to a byte slice.
+func referenceGlyphSetRequest(c *xgb.Conn, Gsid Glyphset, Existing Glyphset) []byte {
+ size := 12
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 31 // request opcode
+ buf[b] = 18 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
b += 2
- xgb.Put32(buf[b:], uint32(Cid))
+ xgb.Put32(buf[b:], uint32(Gsid))
b += 4
- b += AnimcursoreltListBytes(buf[b:], Cursors)
+ xgb.Put32(buf[b:], uint32(Existing))
+ b += 4
return buf
}
-// AddTrapsCookie is a cookie used only for AddTraps requests.
-type AddTrapsCookie struct {
+// SetPictureClipRectanglesCookie is a cookie used only for SetPictureClipRectangles requests.
+type SetPictureClipRectanglesCookie struct {
*xgb.Cookie
}
-// AddTraps sends an unchecked request.
+// SetPictureClipRectangles sends an unchecked request.
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func AddTraps(c *xgb.Conn, Picture Picture, XOff int16, YOff int16, Traps []Trap) AddTrapsCookie {
+func SetPictureClipRectangles(c *xgb.Conn, Picture Picture, ClipXOrigin int16, ClipYOrigin int16, Rectangles []xproto.Rectangle) SetPictureClipRectanglesCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'AddTraps' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'SetPictureClipRectangles' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(false, false)
- c.NewRequest(addTrapsRequest(c, Picture, XOff, YOff, Traps), cookie)
- return AddTrapsCookie{cookie}
+ c.NewRequest(setPictureClipRectanglesRequest(c, Picture, ClipXOrigin, ClipYOrigin, Rectangles), cookie)
+ return SetPictureClipRectanglesCookie{cookie}
}
-// AddTrapsChecked sends a checked request.
-// If an error occurs, it can be retrieved using AddTrapsCookie.Check()
-func AddTrapsChecked(c *xgb.Conn, Picture Picture, XOff int16, YOff int16, Traps []Trap) AddTrapsCookie {
+// SetPictureClipRectanglesChecked sends a checked request.
+// If an error occurs, it can be retrieved using SetPictureClipRectanglesCookie.Check()
+func SetPictureClipRectanglesChecked(c *xgb.Conn, Picture Picture, ClipXOrigin int16, ClipYOrigin int16, Rectangles []xproto.Rectangle) SetPictureClipRectanglesCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'AddTraps' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'SetPictureClipRectangles' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(true, false)
- c.NewRequest(addTrapsRequest(c, Picture, XOff, YOff, Traps), cookie)
- return AddTrapsCookie{cookie}
+ c.NewRequest(setPictureClipRectanglesRequest(c, Picture, ClipXOrigin, ClipYOrigin, Rectangles), cookie)
+ return SetPictureClipRectanglesCookie{cookie}
}
// Check returns an error if one occurred for checked requests that are not expecting a reply.
// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook AddTrapsCookie) Check() error {
+func (cook SetPictureClipRectanglesCookie) Check() error {
return cook.Cookie.Check()
}
-// Write request to wire for AddTraps
-// addTrapsRequest writes a AddTraps request to a byte slice.
-func addTrapsRequest(c *xgb.Conn, Picture Picture, XOff int16, YOff int16, Traps []Trap) []byte {
- size := xgb.Pad((12 + xgb.Pad((len(Traps) * 24))))
+// Write request to wire for SetPictureClipRectangles
+// setPictureClipRectanglesRequest writes a SetPictureClipRectangles request to a byte slice.
+func setPictureClipRectanglesRequest(c *xgb.Conn, Picture Picture, ClipXOrigin int16, ClipYOrigin int16, Rectangles []xproto.Rectangle) []byte {
+ size := xgb.Pad((12 + xgb.Pad((len(Rectangles) * 8))))
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 32 // request opcode
+ buf[b] = 6 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
@@ -3539,61 +3411,61 @@ func addTrapsRequest(c *xgb.Conn, Picture Picture, XOff int16, YOff int16, Traps
xgb.Put32(buf[b:], uint32(Picture))
b += 4
- xgb.Put16(buf[b:], uint16(XOff))
+ xgb.Put16(buf[b:], uint16(ClipXOrigin))
b += 2
- xgb.Put16(buf[b:], uint16(YOff))
+ xgb.Put16(buf[b:], uint16(ClipYOrigin))
b += 2
- b += TrapListBytes(buf[b:], Traps)
+ b += xproto.RectangleListBytes(buf[b:], Rectangles)
return buf
}
-// CreateSolidFillCookie is a cookie used only for CreateSolidFill requests.
-type CreateSolidFillCookie struct {
+// SetPictureFilterCookie is a cookie used only for SetPictureFilter requests.
+type SetPictureFilterCookie struct {
*xgb.Cookie
}
-// CreateSolidFill sends an unchecked request.
+// SetPictureFilter sends an unchecked request.
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func CreateSolidFill(c *xgb.Conn, Picture Picture, Color Color) CreateSolidFillCookie {
+func SetPictureFilter(c *xgb.Conn, Picture Picture, FilterLen uint16, Filter string, Values []Fixed) SetPictureFilterCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'CreateSolidFill' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'SetPictureFilter' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(false, false)
- c.NewRequest(createSolidFillRequest(c, Picture, Color), cookie)
- return CreateSolidFillCookie{cookie}
+ c.NewRequest(setPictureFilterRequest(c, Picture, FilterLen, Filter, Values), cookie)
+ return SetPictureFilterCookie{cookie}
}
-// CreateSolidFillChecked sends a checked request.
-// If an error occurs, it can be retrieved using CreateSolidFillCookie.Check()
-func CreateSolidFillChecked(c *xgb.Conn, Picture Picture, Color Color) CreateSolidFillCookie {
+// SetPictureFilterChecked sends a checked request.
+// If an error occurs, it can be retrieved using SetPictureFilterCookie.Check()
+func SetPictureFilterChecked(c *xgb.Conn, Picture Picture, FilterLen uint16, Filter string, Values []Fixed) SetPictureFilterCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'CreateSolidFill' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'SetPictureFilter' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(true, false)
- c.NewRequest(createSolidFillRequest(c, Picture, Color), cookie)
- return CreateSolidFillCookie{cookie}
+ c.NewRequest(setPictureFilterRequest(c, Picture, FilterLen, Filter, Values), cookie)
+ return SetPictureFilterCookie{cookie}
}
// Check returns an error if one occurred for checked requests that are not expecting a reply.
// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook CreateSolidFillCookie) Check() error {
+func (cook SetPictureFilterCookie) Check() error {
return cook.Cookie.Check()
}
-// Write request to wire for CreateSolidFill
-// createSolidFillRequest writes a CreateSolidFill request to a byte slice.
-func createSolidFillRequest(c *xgb.Conn, Picture Picture, Color Color) []byte {
- size := 16
+// Write request to wire for SetPictureFilter
+// setPictureFilterRequest writes a SetPictureFilter request to a byte slice.
+func setPictureFilterRequest(c *xgb.Conn, Picture Picture, FilterLen uint16, Filter string, Values []Fixed) []byte {
+ size := xgb.Pad(((12 + xgb.Pad((int(FilterLen) * 1))) + xgb.Pad((len(Values) * 4))))
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 33 // request opcode
+ buf[b] = 30 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
@@ -3602,59 +3474,67 @@ func createSolidFillRequest(c *xgb.Conn, Picture Picture, Color Color) []byte {
xgb.Put32(buf[b:], uint32(Picture))
b += 4
- {
- structBytes := Color.Bytes()
- copy(buf[b:], structBytes)
- b += xgb.Pad(len(structBytes))
+ xgb.Put16(buf[b:], FilterLen)
+ b += 2
+
+ b += 2 // padding
+
+ copy(buf[b:], Filter[:FilterLen])
+ b += xgb.Pad(int(FilterLen))
+
+ for i := 0; i < int(len(Values)); i++ {
+ xgb.Put32(buf[b:], uint32(Values[i]))
+ b += 4
}
+ b = xgb.Pad(b)
return buf
}
-// CreateLinearGradientCookie is a cookie used only for CreateLinearGradient requests.
-type CreateLinearGradientCookie struct {
+// SetPictureTransformCookie is a cookie used only for SetPictureTransform requests.
+type SetPictureTransformCookie struct {
*xgb.Cookie
}
-// CreateLinearGradient sends an unchecked request.
+// SetPictureTransform sends an unchecked request.
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func CreateLinearGradient(c *xgb.Conn, Picture Picture, P1 Pointfix, P2 Pointfix, NumStops uint32, Stops []Fixed, Colors []Color) CreateLinearGradientCookie {
+func SetPictureTransform(c *xgb.Conn, Picture Picture, Transform Transform) SetPictureTransformCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'CreateLinearGradient' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'SetPictureTransform' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(false, false)
- c.NewRequest(createLinearGradientRequest(c, Picture, P1, P2, NumStops, Stops, Colors), cookie)
- return CreateLinearGradientCookie{cookie}
+ c.NewRequest(setPictureTransformRequest(c, Picture, Transform), cookie)
+ return SetPictureTransformCookie{cookie}
}
-// CreateLinearGradientChecked sends a checked request.
-// If an error occurs, it can be retrieved using CreateLinearGradientCookie.Check()
-func CreateLinearGradientChecked(c *xgb.Conn, Picture Picture, P1 Pointfix, P2 Pointfix, NumStops uint32, Stops []Fixed, Colors []Color) CreateLinearGradientCookie {
+// SetPictureTransformChecked sends a checked request.
+// If an error occurs, it can be retrieved using SetPictureTransformCookie.Check()
+func SetPictureTransformChecked(c *xgb.Conn, Picture Picture, Transform Transform) SetPictureTransformCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'CreateLinearGradient' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'SetPictureTransform' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(true, false)
- c.NewRequest(createLinearGradientRequest(c, Picture, P1, P2, NumStops, Stops, Colors), cookie)
- return CreateLinearGradientCookie{cookie}
+ c.NewRequest(setPictureTransformRequest(c, Picture, Transform), cookie)
+ return SetPictureTransformCookie{cookie}
}
// Check returns an error if one occurred for checked requests that are not expecting a reply.
// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook CreateLinearGradientCookie) Check() error {
+func (cook SetPictureTransformCookie) Check() error {
return cook.Cookie.Check()
}
-// Write request to wire for CreateLinearGradient
-// createLinearGradientRequest writes a CreateLinearGradient request to a byte slice.
-func createLinearGradientRequest(c *xgb.Conn, Picture Picture, P1 Pointfix, P2 Pointfix, NumStops uint32, Stops []Fixed, Colors []Color) []byte {
- size := xgb.Pad(((28 + xgb.Pad((int(NumStops) * 4))) + xgb.Pad((int(NumStops) * 8))))
+// Write request to wire for SetPictureTransform
+// setPictureTransformRequest writes a SetPictureTransform request to a byte slice.
+func setPictureTransformRequest(c *xgb.Conn, Picture Picture, Transform Transform) []byte {
+ size := 44
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 34 // request opcode
+ buf[b] = 28 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
@@ -3664,186 +3544,306 @@ func createLinearGradientRequest(c *xgb.Conn, Picture Picture, P1 Pointfix, P2 P
b += 4
{
- structBytes := P1.Bytes()
+ structBytes := Transform.Bytes()
copy(buf[b:], structBytes)
b += xgb.Pad(len(structBytes))
}
- {
- structBytes := P2.Bytes()
- copy(buf[b:], structBytes)
- b += xgb.Pad(len(structBytes))
+ return buf
+}
+
+// TrapezoidsCookie is a cookie used only for Trapezoids requests.
+type TrapezoidsCookie struct {
+ *xgb.Cookie
+}
+
+// Trapezoids sends an unchecked request.
+// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
+func Trapezoids(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Traps []Trapezoid) TrapezoidsCookie {
+ if _, ok := c.Extensions["RENDER"]; !ok {
+ panic("Cannot issue request 'Trapezoids' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
+ cookie := c.NewCookie(false, false)
+ c.NewRequest(trapezoidsRequest(c, Op, Src, Dst, MaskFormat, SrcX, SrcY, Traps), cookie)
+ return TrapezoidsCookie{cookie}
+}
- xgb.Put32(buf[b:], NumStops)
+// TrapezoidsChecked sends a checked request.
+// If an error occurs, it can be retrieved using TrapezoidsCookie.Check()
+func TrapezoidsChecked(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Traps []Trapezoid) TrapezoidsCookie {
+ if _, ok := c.Extensions["RENDER"]; !ok {
+ panic("Cannot issue request 'Trapezoids' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ }
+ cookie := c.NewCookie(true, false)
+ c.NewRequest(trapezoidsRequest(c, Op, Src, Dst, MaskFormat, SrcX, SrcY, Traps), cookie)
+ return TrapezoidsCookie{cookie}
+}
+
+// Check returns an error if one occurred for checked requests that are not expecting a reply.
+// This cannot be called for requests expecting a reply, nor for unchecked requests.
+func (cook TrapezoidsCookie) Check() error {
+ return cook.Cookie.Check()
+}
+
+// Write request to wire for Trapezoids
+// trapezoidsRequest writes a Trapezoids request to a byte slice.
+func trapezoidsRequest(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Traps []Trapezoid) []byte {
+ size := xgb.Pad((24 + xgb.Pad((len(Traps) * 40))))
+ b := 0
+ buf := make([]byte, size)
+
+ buf[b] = c.Extensions["RENDER"]
+ b += 1
+
+ buf[b] = 10 // request opcode
+ b += 1
+
+ xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
+ b += 2
+
+ buf[b] = Op
+ b += 1
+
+ b += 3 // padding
+
+ xgb.Put32(buf[b:], uint32(Src))
b += 4
- for i := 0; i < int(NumStops); i++ {
- xgb.Put32(buf[b:], uint32(Stops[i]))
- b += 4
- }
- b = xgb.Pad(b)
+ xgb.Put32(buf[b:], uint32(Dst))
+ b += 4
- b += ColorListBytes(buf[b:], Colors)
+ xgb.Put32(buf[b:], uint32(MaskFormat))
+ b += 4
+
+ xgb.Put16(buf[b:], uint16(SrcX))
+ b += 2
+
+ xgb.Put16(buf[b:], uint16(SrcY))
+ b += 2
+
+ b += TrapezoidListBytes(buf[b:], Traps)
return buf
}
-// CreateRadialGradientCookie is a cookie used only for CreateRadialGradient requests.
-type CreateRadialGradientCookie struct {
+// TriFanCookie is a cookie used only for TriFan requests.
+type TriFanCookie struct {
*xgb.Cookie
}
-// CreateRadialGradient sends an unchecked request.
+// TriFan sends an unchecked request.
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func CreateRadialGradient(c *xgb.Conn, Picture Picture, Inner Pointfix, Outer Pointfix, InnerRadius Fixed, OuterRadius Fixed, NumStops uint32, Stops []Fixed, Colors []Color) CreateRadialGradientCookie {
+func TriFan(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Points []Pointfix) TriFanCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'CreateRadialGradient' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'TriFan' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(false, false)
- c.NewRequest(createRadialGradientRequest(c, Picture, Inner, Outer, InnerRadius, OuterRadius, NumStops, Stops, Colors), cookie)
- return CreateRadialGradientCookie{cookie}
+ c.NewRequest(triFanRequest(c, Op, Src, Dst, MaskFormat, SrcX, SrcY, Points), cookie)
+ return TriFanCookie{cookie}
}
-// CreateRadialGradientChecked sends a checked request.
-// If an error occurs, it can be retrieved using CreateRadialGradientCookie.Check()
-func CreateRadialGradientChecked(c *xgb.Conn, Picture Picture, Inner Pointfix, Outer Pointfix, InnerRadius Fixed, OuterRadius Fixed, NumStops uint32, Stops []Fixed, Colors []Color) CreateRadialGradientCookie {
+// TriFanChecked sends a checked request.
+// If an error occurs, it can be retrieved using TriFanCookie.Check()
+func TriFanChecked(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Points []Pointfix) TriFanCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'CreateRadialGradient' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'TriFan' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(true, false)
- c.NewRequest(createRadialGradientRequest(c, Picture, Inner, Outer, InnerRadius, OuterRadius, NumStops, Stops, Colors), cookie)
- return CreateRadialGradientCookie{cookie}
+ c.NewRequest(triFanRequest(c, Op, Src, Dst, MaskFormat, SrcX, SrcY, Points), cookie)
+ return TriFanCookie{cookie}
}
// Check returns an error if one occurred for checked requests that are not expecting a reply.
// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook CreateRadialGradientCookie) Check() error {
+func (cook TriFanCookie) Check() error {
return cook.Cookie.Check()
}
-// Write request to wire for CreateRadialGradient
-// createRadialGradientRequest writes a CreateRadialGradient request to a byte slice.
-func createRadialGradientRequest(c *xgb.Conn, Picture Picture, Inner Pointfix, Outer Pointfix, InnerRadius Fixed, OuterRadius Fixed, NumStops uint32, Stops []Fixed, Colors []Color) []byte {
- size := xgb.Pad(((36 + xgb.Pad((int(NumStops) * 4))) + xgb.Pad((int(NumStops) * 8))))
+// Write request to wire for TriFan
+// triFanRequest writes a TriFan request to a byte slice.
+func triFanRequest(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Points []Pointfix) []byte {
+ size := xgb.Pad((24 + xgb.Pad((len(Points) * 8))))
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 35 // request opcode
+ buf[b] = 13 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
b += 2
- xgb.Put32(buf[b:], uint32(Picture))
+ buf[b] = Op
+ b += 1
+
+ b += 3 // padding
+
+ xgb.Put32(buf[b:], uint32(Src))
b += 4
- {
- structBytes := Inner.Bytes()
- copy(buf[b:], structBytes)
- b += xgb.Pad(len(structBytes))
+ xgb.Put32(buf[b:], uint32(Dst))
+ b += 4
+
+ xgb.Put32(buf[b:], uint32(MaskFormat))
+ b += 4
+
+ xgb.Put16(buf[b:], uint16(SrcX))
+ b += 2
+
+ xgb.Put16(buf[b:], uint16(SrcY))
+ b += 2
+
+ b += PointfixListBytes(buf[b:], Points)
+
+ return buf
+}
+
+// TriStripCookie is a cookie used only for TriStrip requests.
+type TriStripCookie struct {
+ *xgb.Cookie
+}
+
+// TriStrip sends an unchecked request.
+// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
+func TriStrip(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Points []Pointfix) TriStripCookie {
+ if _, ok := c.Extensions["RENDER"]; !ok {
+ panic("Cannot issue request 'TriStrip' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
+ cookie := c.NewCookie(false, false)
+ c.NewRequest(triStripRequest(c, Op, Src, Dst, MaskFormat, SrcX, SrcY, Points), cookie)
+ return TriStripCookie{cookie}
+}
- {
- structBytes := Outer.Bytes()
- copy(buf[b:], structBytes)
- b += xgb.Pad(len(structBytes))
+// TriStripChecked sends a checked request.
+// If an error occurs, it can be retrieved using TriStripCookie.Check()
+func TriStripChecked(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Points []Pointfix) TriStripCookie {
+ if _, ok := c.Extensions["RENDER"]; !ok {
+ panic("Cannot issue request 'TriStrip' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
+ cookie := c.NewCookie(true, false)
+ c.NewRequest(triStripRequest(c, Op, Src, Dst, MaskFormat, SrcX, SrcY, Points), cookie)
+ return TriStripCookie{cookie}
+}
- xgb.Put32(buf[b:], uint32(InnerRadius))
+// Check returns an error if one occurred for checked requests that are not expecting a reply.
+// This cannot be called for requests expecting a reply, nor for unchecked requests.
+func (cook TriStripCookie) Check() error {
+ return cook.Cookie.Check()
+}
+
+// Write request to wire for TriStrip
+// triStripRequest writes a TriStrip request to a byte slice.
+func triStripRequest(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Points []Pointfix) []byte {
+ size := xgb.Pad((24 + xgb.Pad((len(Points) * 8))))
+ b := 0
+ buf := make([]byte, size)
+
+ buf[b] = c.Extensions["RENDER"]
+ b += 1
+
+ buf[b] = 12 // request opcode
+ b += 1
+
+ xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
+ b += 2
+
+ buf[b] = Op
+ b += 1
+
+ b += 3 // padding
+
+ xgb.Put32(buf[b:], uint32(Src))
b += 4
- xgb.Put32(buf[b:], uint32(OuterRadius))
+ xgb.Put32(buf[b:], uint32(Dst))
b += 4
- xgb.Put32(buf[b:], NumStops)
+ xgb.Put32(buf[b:], uint32(MaskFormat))
b += 4
- for i := 0; i < int(NumStops); i++ {
- xgb.Put32(buf[b:], uint32(Stops[i]))
- b += 4
- }
- b = xgb.Pad(b)
+ xgb.Put16(buf[b:], uint16(SrcX))
+ b += 2
- b += ColorListBytes(buf[b:], Colors)
+ xgb.Put16(buf[b:], uint16(SrcY))
+ b += 2
+
+ b += PointfixListBytes(buf[b:], Points)
return buf
}
-// CreateConicalGradientCookie is a cookie used only for CreateConicalGradient requests.
-type CreateConicalGradientCookie struct {
+// TrianglesCookie is a cookie used only for Triangles requests.
+type TrianglesCookie struct {
*xgb.Cookie
}
-// CreateConicalGradient sends an unchecked request.
+// Triangles sends an unchecked request.
// If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent.
-func CreateConicalGradient(c *xgb.Conn, Picture Picture, Center Pointfix, Angle Fixed, NumStops uint32, Stops []Fixed, Colors []Color) CreateConicalGradientCookie {
+func Triangles(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Triangles []Triangle) TrianglesCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'CreateConicalGradient' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'Triangles' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(false, false)
- c.NewRequest(createConicalGradientRequest(c, Picture, Center, Angle, NumStops, Stops, Colors), cookie)
- return CreateConicalGradientCookie{cookie}
+ c.NewRequest(trianglesRequest(c, Op, Src, Dst, MaskFormat, SrcX, SrcY, Triangles), cookie)
+ return TrianglesCookie{cookie}
}
-// CreateConicalGradientChecked sends a checked request.
-// If an error occurs, it can be retrieved using CreateConicalGradientCookie.Check()
-func CreateConicalGradientChecked(c *xgb.Conn, Picture Picture, Center Pointfix, Angle Fixed, NumStops uint32, Stops []Fixed, Colors []Color) CreateConicalGradientCookie {
+// TrianglesChecked sends a checked request.
+// If an error occurs, it can be retrieved using TrianglesCookie.Check()
+func TrianglesChecked(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Triangles []Triangle) TrianglesCookie {
if _, ok := c.Extensions["RENDER"]; !ok {
- panic("Cannot issue request 'CreateConicalGradient' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
+ panic("Cannot issue request 'Triangles' using the uninitialized extension 'RENDER'. render.Init(connObj) must be called first.")
}
cookie := c.NewCookie(true, false)
- c.NewRequest(createConicalGradientRequest(c, Picture, Center, Angle, NumStops, Stops, Colors), cookie)
- return CreateConicalGradientCookie{cookie}
+ c.NewRequest(trianglesRequest(c, Op, Src, Dst, MaskFormat, SrcX, SrcY, Triangles), cookie)
+ return TrianglesCookie{cookie}
}
// Check returns an error if one occurred for checked requests that are not expecting a reply.
// This cannot be called for requests expecting a reply, nor for unchecked requests.
-func (cook CreateConicalGradientCookie) Check() error {
+func (cook TrianglesCookie) Check() error {
return cook.Cookie.Check()
}
-// Write request to wire for CreateConicalGradient
-// createConicalGradientRequest writes a CreateConicalGradient request to a byte slice.
-func createConicalGradientRequest(c *xgb.Conn, Picture Picture, Center Pointfix, Angle Fixed, NumStops uint32, Stops []Fixed, Colors []Color) []byte {
- size := xgb.Pad(((24 + xgb.Pad((int(NumStops) * 4))) + xgb.Pad((int(NumStops) * 8))))
+// Write request to wire for Triangles
+// trianglesRequest writes a Triangles request to a byte slice.
+func trianglesRequest(c *xgb.Conn, Op byte, Src Picture, Dst Picture, MaskFormat Pictformat, SrcX int16, SrcY int16, Triangles []Triangle) []byte {
+ size := xgb.Pad((24 + xgb.Pad((len(Triangles) * 24))))
b := 0
buf := make([]byte, size)
buf[b] = c.Extensions["RENDER"]
b += 1
- buf[b] = 36 // request opcode
+ buf[b] = 11 // request opcode
b += 1
xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units
b += 2
- xgb.Put32(buf[b:], uint32(Picture))
- b += 4
+ buf[b] = Op
+ b += 1
- {
- structBytes := Center.Bytes()
- copy(buf[b:], structBytes)
- b += xgb.Pad(len(structBytes))
- }
+ b += 3 // padding
- xgb.Put32(buf[b:], uint32(Angle))
+ xgb.Put32(buf[b:], uint32(Src))
b += 4
- xgb.Put32(buf[b:], NumStops)
+ xgb.Put32(buf[b:], uint32(Dst))
b += 4
- for i := 0; i < int(NumStops); i++ {
- xgb.Put32(buf[b:], uint32(Stops[i]))
- b += 4
- }
- b = xgb.Pad(b)
+ xgb.Put32(buf[b:], uint32(MaskFormat))
+ b += 4
- b += ColorListBytes(buf[b:], Colors)
+ xgb.Put16(buf[b:], uint16(SrcX))
+ b += 2
+
+ xgb.Put16(buf[b:], uint16(SrcY))
+ b += 2
+
+ b += TriangleListBytes(buf[b:], Triangles)
return buf
}