package xgb /* This file was generated by render.xml on May 6 2012 5:48:47pm EDT. This file is automatically generated. Edit at your peril! */ // Imports are not necessary for XGB because everything is // in one package. They are still listed here for reference. // import "xproto" // RenderInit must be called before using the RENDER extension. func (c *Conn) RenderInit() error { reply, err := c.QueryExtension(6, "RENDER").Reply() switch { case err != nil: return err case !reply.Present: return newError("No extension named RENDER could be found on on the server.") } c.extLock.Lock() c.extensions["RENDER"] = reply.MajorOpcode for evNum, fun := range newExtEventFuncs["RENDER"] { newEventFuncs[int(reply.FirstEvent)+evNum] = fun } c.extLock.Unlock() return nil } func init() { newExtEventFuncs["RENDER"] = make(map[int]newEventFun) } // Skipping definition for base type 'Int32' // Skipping definition for base type 'Void' // Skipping definition for base type 'Byte' // Skipping definition for base type 'Int8' // Skipping definition for base type 'Card16' // Skipping definition for base type 'Char' // Skipping definition for base type 'Card32' // Skipping definition for base type 'Double' // Skipping definition for base type 'Bool' // Skipping definition for base type 'Float' // Skipping definition for base type 'Id' // Skipping definition for base type 'Card8' // Skipping definition for base type 'Int16' const ( RenderPictTypeIndexed = 0 RenderPictTypeDirect = 1 ) const ( RenderPictureNone = 0 ) const ( RenderPictOpClear = 0 RenderPictOpSrc = 1 RenderPictOpDst = 2 RenderPictOpOver = 3 RenderPictOpOverReverse = 4 RenderPictOpIn = 5 RenderPictOpInReverse = 6 RenderPictOpOut = 7 RenderPictOpOutReverse = 8 RenderPictOpAtop = 9 RenderPictOpAtopReverse = 10 RenderPictOpXor = 11 RenderPictOpAdd = 12 RenderPictOpSaturate = 13 RenderPictOpDisjointClear = 16 RenderPictOpDisjointSrc = 17 RenderPictOpDisjointDst = 18 RenderPictOpDisjointOver = 19 RenderPictOpDisjointOverReverse = 20 RenderPictOpDisjointIn = 21 RenderPictOpDisjointInReverse = 22 RenderPictOpDisjointOut = 23 RenderPictOpDisjointOutReverse = 24 RenderPictOpDisjointAtop = 25 RenderPictOpDisjointAtopReverse = 26 RenderPictOpDisjointXor = 27 RenderPictOpConjointClear = 32 RenderPictOpConjointSrc = 33 RenderPictOpConjointDst = 34 RenderPictOpConjointOver = 35 RenderPictOpConjointOverReverse = 36 RenderPictOpConjointIn = 37 RenderPictOpConjointInReverse = 38 RenderPictOpConjointOut = 39 RenderPictOpConjointOutReverse = 40 RenderPictOpConjointAtop = 41 RenderPictOpConjointAtopReverse = 42 RenderPictOpConjointXor = 43 RenderPictOpMultiply = 48 RenderPictOpScreen = 49 RenderPictOpOverlay = 50 RenderPictOpDarken = 51 RenderPictOpLighten = 52 RenderPictOpColorDodge = 53 RenderPictOpColorBurn = 54 RenderPictOpHardLight = 55 RenderPictOpSoftLight = 56 RenderPictOpDifference = 57 RenderPictOpExclusion = 58 RenderPictOpHSLHue = 59 RenderPictOpHSLSaturation = 60 RenderPictOpHSLColor = 61 RenderPictOpHSLLuminosity = 62 ) const ( RenderPolyEdgeSharp = 0 RenderPolyEdgeSmooth = 1 ) const ( RenderPolyModePrecise = 0 RenderPolyModeImprecise = 1 ) const ( RenderCpRepeat = 1 RenderCpAlphaMap = 2 RenderCpAlphaXOrigin = 4 RenderCpAlphaYOrigin = 8 RenderCpClipXOrigin = 16 RenderCpClipYOrigin = 32 RenderCpClipMask = 64 RenderCpGraphicsExposure = 128 RenderCpSubwindowMode = 256 RenderCpPolyEdge = 512 RenderCpPolyMode = 1024 RenderCpDither = 2048 RenderCpComponentAlpha = 4096 ) const ( RenderSubPixelUnknown = 0 RenderSubPixelHorizontalRGB = 1 RenderSubPixelHorizontalBGR = 2 RenderSubPixelVerticalRGB = 3 RenderSubPixelVerticalBGR = 4 RenderSubPixelNone = 5 ) const ( RenderRepeatNone = 0 RenderRepeatNormal = 1 RenderRepeatPad = 2 RenderRepeatReflect = 3 ) // Skipping resource definition of 'Glyphset' // Skipping resource definition of 'Picture' // Skipping resource definition of 'Pictformat' type RenderGlyph uint32 type RenderFixed int32 // 'RenderDirectformat' struct definition // Size: 16 type RenderDirectformat struct { RedShift uint16 RedMask uint16 GreenShift uint16 GreenMask uint16 BlueShift uint16 BlueMask uint16 AlphaShift uint16 AlphaMask uint16 } // Struct read RenderDirectformat func ReadRenderDirectformat(buf []byte, v *RenderDirectformat) int { b := 0 v.RedShift = Get16(buf[b:]) b += 2 v.RedMask = Get16(buf[b:]) b += 2 v.GreenShift = Get16(buf[b:]) b += 2 v.GreenMask = Get16(buf[b:]) b += 2 v.BlueShift = Get16(buf[b:]) b += 2 v.BlueMask = Get16(buf[b:]) b += 2 v.AlphaShift = Get16(buf[b:]) b += 2 v.AlphaMask = Get16(buf[b:]) b += 2 return b } // Struct list read RenderDirectformat func ReadRenderDirectformatList(buf []byte, dest []RenderDirectformat) int { b := 0 for i := 0; i < len(dest); i++ { dest[i] = RenderDirectformat{} b += ReadRenderDirectformat(buf[b:], &dest[i]) } return pad(b) } // Struct write RenderDirectformat func (v RenderDirectformat) Bytes() []byte { buf := make([]byte, 16) b := 0 Put16(buf[b:], v.RedShift) b += 2 Put16(buf[b:], v.RedMask) b += 2 Put16(buf[b:], v.GreenShift) b += 2 Put16(buf[b:], v.GreenMask) b += 2 Put16(buf[b:], v.BlueShift) b += 2 Put16(buf[b:], v.BlueMask) b += 2 Put16(buf[b:], v.AlphaShift) b += 2 Put16(buf[b:], v.AlphaMask) b += 2 return buf } // Write struct list RenderDirectformat func RenderDirectformatListBytes(buf []byte, list []RenderDirectformat) int { b := 0 var structBytes []byte for _, item := range list { structBytes = item.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return b } // 'RenderPictforminfo' struct definition // Size: 28 type RenderPictforminfo struct { Id Id Type byte Depth byte // padding: 2 bytes Direct RenderDirectformat Colormap Id } // Struct read RenderPictforminfo func ReadRenderPictforminfo(buf []byte, v *RenderPictforminfo) int { b := 0 v.Id = Id(Get32(buf[b:])) b += 4 v.Type = buf[b] b += 1 v.Depth = buf[b] b += 1 b += 2 // padding v.Direct = RenderDirectformat{} b += ReadRenderDirectformat(buf[b:], &v.Direct) v.Colormap = Id(Get32(buf[b:])) b += 4 return b } // Struct list read RenderPictforminfo func ReadRenderPictforminfoList(buf []byte, dest []RenderPictforminfo) int { b := 0 for i := 0; i < len(dest); i++ { dest[i] = RenderPictforminfo{} b += ReadRenderPictforminfo(buf[b:], &dest[i]) } return pad(b) } // Struct write RenderPictforminfo func (v RenderPictforminfo) Bytes() []byte { buf := make([]byte, 28) b := 0 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 += pad(len(structBytes)) } Put32(buf[b:], uint32(v.Colormap)) b += 4 return buf } // Write struct list RenderPictforminfo func RenderPictforminfoListBytes(buf []byte, list []RenderPictforminfo) int { b := 0 var structBytes []byte for _, item := range list { structBytes = item.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return b } // 'RenderPictvisual' struct definition // Size: 8 type RenderPictvisual struct { Visual Visualid Format Id } // Struct read RenderPictvisual func ReadRenderPictvisual(buf []byte, v *RenderPictvisual) int { b := 0 v.Visual = Visualid(Get32(buf[b:])) b += 4 v.Format = Id(Get32(buf[b:])) b += 4 return b } // Struct list read RenderPictvisual func ReadRenderPictvisualList(buf []byte, dest []RenderPictvisual) int { b := 0 for i := 0; i < len(dest); i++ { dest[i] = RenderPictvisual{} b += ReadRenderPictvisual(buf[b:], &dest[i]) } return pad(b) } // Struct write RenderPictvisual func (v RenderPictvisual) Bytes() []byte { buf := make([]byte, 8) b := 0 Put32(buf[b:], uint32(v.Visual)) b += 4 Put32(buf[b:], uint32(v.Format)) b += 4 return buf } // Write struct list RenderPictvisual func RenderPictvisualListBytes(buf []byte, list []RenderPictvisual) int { b := 0 var structBytes []byte for _, item := range list { structBytes = item.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return b } // 'RenderPictdepth' struct definition // Size: (8 + pad((int(NumVisuals) * 8))) type RenderPictdepth struct { Depth byte // padding: 1 bytes NumVisuals uint16 // padding: 4 bytes Visuals []RenderPictvisual // size: pad((int(NumVisuals) * 8)) } // Struct read RenderPictdepth func ReadRenderPictdepth(buf []byte, v *RenderPictdepth) int { b := 0 v.Depth = buf[b] b += 1 b += 1 // padding v.NumVisuals = Get16(buf[b:]) b += 2 b += 4 // padding v.Visuals = make([]RenderPictvisual, v.NumVisuals) b += ReadRenderPictvisualList(buf[b:], v.Visuals) return b } // Struct list read RenderPictdepth func ReadRenderPictdepthList(buf []byte, dest []RenderPictdepth) int { b := 0 for i := 0; i < len(dest); i++ { dest[i] = RenderPictdepth{} b += ReadRenderPictdepth(buf[b:], &dest[i]) } return pad(b) } // Struct write RenderPictdepth func (v RenderPictdepth) Bytes() []byte { buf := make([]byte, (8 + pad((int(v.NumVisuals) * 8)))) b := 0 buf[b] = v.Depth b += 1 b += 1 // padding Put16(buf[b:], v.NumVisuals) b += 2 b += 4 // padding b += RenderPictvisualListBytes(buf[b:], v.Visuals) return buf } // Write struct list RenderPictdepth func RenderPictdepthListBytes(buf []byte, list []RenderPictdepth) int { b := 0 var structBytes []byte for _, item := range list { structBytes = item.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return b } // Struct list size RenderPictdepth func RenderPictdepthListSize(list []RenderPictdepth) int { size := 0 for _, item := range list { size += (8 + pad((int(item.NumVisuals) * 8))) } return size } // 'RenderPictscreen' struct definition // Size: (8 + RenderPictdepthListSize(Depths)) type RenderPictscreen struct { NumDepths uint32 Fallback Id Depths []RenderPictdepth // size: RenderPictdepthListSize(Depths) } // Struct read RenderPictscreen func ReadRenderPictscreen(buf []byte, v *RenderPictscreen) int { b := 0 v.NumDepths = Get32(buf[b:]) b += 4 v.Fallback = Id(Get32(buf[b:])) b += 4 v.Depths = make([]RenderPictdepth, v.NumDepths) b += ReadRenderPictdepthList(buf[b:], v.Depths) return b } // Struct list read RenderPictscreen func ReadRenderPictscreenList(buf []byte, dest []RenderPictscreen) int { b := 0 for i := 0; i < len(dest); i++ { dest[i] = RenderPictscreen{} b += ReadRenderPictscreen(buf[b:], &dest[i]) } return pad(b) } // Struct write RenderPictscreen func (v RenderPictscreen) Bytes() []byte { buf := make([]byte, (8 + RenderPictdepthListSize(v.Depths))) b := 0 Put32(buf[b:], v.NumDepths) b += 4 Put32(buf[b:], uint32(v.Fallback)) b += 4 b += RenderPictdepthListBytes(buf[b:], v.Depths) return buf } // Write struct list RenderPictscreen func RenderPictscreenListBytes(buf []byte, list []RenderPictscreen) int { b := 0 var structBytes []byte for _, item := range list { structBytes = item.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return b } // Struct list size RenderPictscreen func RenderPictscreenListSize(list []RenderPictscreen) int { size := 0 for _, item := range list { size += (8 + RenderPictdepthListSize(item.Depths)) } return size } // 'RenderIndexvalue' struct definition // Size: 12 type RenderIndexvalue struct { Pixel uint32 Red uint16 Green uint16 Blue uint16 Alpha uint16 } // Struct read RenderIndexvalue func ReadRenderIndexvalue(buf []byte, v *RenderIndexvalue) int { b := 0 v.Pixel = Get32(buf[b:]) b += 4 v.Red = Get16(buf[b:]) b += 2 v.Green = Get16(buf[b:]) b += 2 v.Blue = Get16(buf[b:]) b += 2 v.Alpha = Get16(buf[b:]) b += 2 return b } // Struct list read RenderIndexvalue func ReadRenderIndexvalueList(buf []byte, dest []RenderIndexvalue) int { b := 0 for i := 0; i < len(dest); i++ { dest[i] = RenderIndexvalue{} b += ReadRenderIndexvalue(buf[b:], &dest[i]) } return pad(b) } // Struct write RenderIndexvalue func (v RenderIndexvalue) Bytes() []byte { buf := make([]byte, 12) b := 0 Put32(buf[b:], v.Pixel) b += 4 Put16(buf[b:], v.Red) b += 2 Put16(buf[b:], v.Green) b += 2 Put16(buf[b:], v.Blue) b += 2 Put16(buf[b:], v.Alpha) b += 2 return buf } // Write struct list RenderIndexvalue func RenderIndexvalueListBytes(buf []byte, list []RenderIndexvalue) int { b := 0 var structBytes []byte for _, item := range list { structBytes = item.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return b } // 'RenderColor' struct definition // Size: 8 type RenderColor struct { Red uint16 Green uint16 Blue uint16 Alpha uint16 } // Struct read RenderColor func ReadRenderColor(buf []byte, v *RenderColor) int { b := 0 v.Red = Get16(buf[b:]) b += 2 v.Green = Get16(buf[b:]) b += 2 v.Blue = Get16(buf[b:]) b += 2 v.Alpha = Get16(buf[b:]) b += 2 return b } // Struct list read RenderColor func ReadRenderColorList(buf []byte, dest []RenderColor) int { b := 0 for i := 0; i < len(dest); i++ { dest[i] = RenderColor{} b += ReadRenderColor(buf[b:], &dest[i]) } return pad(b) } // Struct write RenderColor func (v RenderColor) Bytes() []byte { buf := make([]byte, 8) b := 0 Put16(buf[b:], v.Red) b += 2 Put16(buf[b:], v.Green) b += 2 Put16(buf[b:], v.Blue) b += 2 Put16(buf[b:], v.Alpha) b += 2 return buf } // Write struct list RenderColor func RenderColorListBytes(buf []byte, list []RenderColor) int { b := 0 var structBytes []byte for _, item := range list { structBytes = item.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return b } // 'RenderPointfix' struct definition // Size: 8 type RenderPointfix struct { X RenderFixed Y RenderFixed } // Struct read RenderPointfix func ReadRenderPointfix(buf []byte, v *RenderPointfix) int { b := 0 v.X = RenderFixed(Get32(buf[b:])) b += 4 v.Y = RenderFixed(Get32(buf[b:])) b += 4 return b } // Struct list read RenderPointfix func ReadRenderPointfixList(buf []byte, dest []RenderPointfix) int { b := 0 for i := 0; i < len(dest); i++ { dest[i] = RenderPointfix{} b += ReadRenderPointfix(buf[b:], &dest[i]) } return pad(b) } // Struct write RenderPointfix func (v RenderPointfix) Bytes() []byte { buf := make([]byte, 8) b := 0 Put32(buf[b:], uint32(v.X)) b += 4 Put32(buf[b:], uint32(v.Y)) b += 4 return buf } // Write struct list RenderPointfix func RenderPointfixListBytes(buf []byte, list []RenderPointfix) int { b := 0 var structBytes []byte for _, item := range list { structBytes = item.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return b } // 'RenderLinefix' struct definition // Size: 16 type RenderLinefix struct { P1 RenderPointfix P2 RenderPointfix } // Struct read RenderLinefix func ReadRenderLinefix(buf []byte, v *RenderLinefix) int { b := 0 v.P1 = RenderPointfix{} b += ReadRenderPointfix(buf[b:], &v.P1) v.P2 = RenderPointfix{} b += ReadRenderPointfix(buf[b:], &v.P2) return b } // Struct list read RenderLinefix func ReadRenderLinefixList(buf []byte, dest []RenderLinefix) int { b := 0 for i := 0; i < len(dest); i++ { dest[i] = RenderLinefix{} b += ReadRenderLinefix(buf[b:], &dest[i]) } return pad(b) } // Struct write RenderLinefix func (v RenderLinefix) Bytes() []byte { buf := make([]byte, 16) b := 0 { structBytes := v.P1.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } { structBytes := v.P2.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return buf } // Write struct list RenderLinefix func RenderLinefixListBytes(buf []byte, list []RenderLinefix) int { b := 0 var structBytes []byte for _, item := range list { structBytes = item.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return b } // 'RenderTriangle' struct definition // Size: 24 type RenderTriangle struct { P1 RenderPointfix P2 RenderPointfix P3 RenderPointfix } // Struct read RenderTriangle func ReadRenderTriangle(buf []byte, v *RenderTriangle) int { b := 0 v.P1 = RenderPointfix{} b += ReadRenderPointfix(buf[b:], &v.P1) v.P2 = RenderPointfix{} b += ReadRenderPointfix(buf[b:], &v.P2) v.P3 = RenderPointfix{} b += ReadRenderPointfix(buf[b:], &v.P3) return b } // Struct list read RenderTriangle func ReadRenderTriangleList(buf []byte, dest []RenderTriangle) int { b := 0 for i := 0; i < len(dest); i++ { dest[i] = RenderTriangle{} b += ReadRenderTriangle(buf[b:], &dest[i]) } return pad(b) } // Struct write RenderTriangle func (v RenderTriangle) Bytes() []byte { buf := make([]byte, 24) b := 0 { structBytes := v.P1.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } { structBytes := v.P2.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } { structBytes := v.P3.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return buf } // Write struct list RenderTriangle func RenderTriangleListBytes(buf []byte, list []RenderTriangle) int { b := 0 var structBytes []byte for _, item := range list { structBytes = item.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return b } // 'RenderTrapezoid' struct definition // Size: 40 type RenderTrapezoid struct { Top RenderFixed Bottom RenderFixed Left RenderLinefix Right RenderLinefix } // Struct read RenderTrapezoid func ReadRenderTrapezoid(buf []byte, v *RenderTrapezoid) int { b := 0 v.Top = RenderFixed(Get32(buf[b:])) b += 4 v.Bottom = RenderFixed(Get32(buf[b:])) b += 4 v.Left = RenderLinefix{} b += ReadRenderLinefix(buf[b:], &v.Left) v.Right = RenderLinefix{} b += ReadRenderLinefix(buf[b:], &v.Right) return b } // Struct list read RenderTrapezoid func ReadRenderTrapezoidList(buf []byte, dest []RenderTrapezoid) int { b := 0 for i := 0; i < len(dest); i++ { dest[i] = RenderTrapezoid{} b += ReadRenderTrapezoid(buf[b:], &dest[i]) } return pad(b) } // Struct write RenderTrapezoid func (v RenderTrapezoid) Bytes() []byte { buf := make([]byte, 40) b := 0 Put32(buf[b:], uint32(v.Top)) b += 4 Put32(buf[b:], uint32(v.Bottom)) b += 4 { structBytes := v.Left.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } { structBytes := v.Right.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return buf } // Write struct list RenderTrapezoid func RenderTrapezoidListBytes(buf []byte, list []RenderTrapezoid) int { b := 0 var structBytes []byte for _, item := range list { structBytes = item.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return b } // 'RenderGlyphinfo' struct definition // Size: 12 type RenderGlyphinfo struct { Width uint16 Height uint16 X int16 Y int16 XOff int16 YOff int16 } // Struct read RenderGlyphinfo func ReadRenderGlyphinfo(buf []byte, v *RenderGlyphinfo) int { b := 0 v.Width = Get16(buf[b:]) b += 2 v.Height = Get16(buf[b:]) b += 2 v.X = int16(Get16(buf[b:])) b += 2 v.Y = int16(Get16(buf[b:])) b += 2 v.XOff = int16(Get16(buf[b:])) b += 2 v.YOff = int16(Get16(buf[b:])) b += 2 return b } // Struct list read RenderGlyphinfo func ReadRenderGlyphinfoList(buf []byte, dest []RenderGlyphinfo) int { b := 0 for i := 0; i < len(dest); i++ { dest[i] = RenderGlyphinfo{} b += ReadRenderGlyphinfo(buf[b:], &dest[i]) } return pad(b) } // Struct write RenderGlyphinfo func (v RenderGlyphinfo) Bytes() []byte { buf := make([]byte, 12) b := 0 Put16(buf[b:], v.Width) b += 2 Put16(buf[b:], v.Height) b += 2 Put16(buf[b:], uint16(v.X)) b += 2 Put16(buf[b:], uint16(v.Y)) b += 2 Put16(buf[b:], uint16(v.XOff)) b += 2 Put16(buf[b:], uint16(v.YOff)) b += 2 return buf } // Write struct list RenderGlyphinfo func RenderGlyphinfoListBytes(buf []byte, list []RenderGlyphinfo) int { b := 0 var structBytes []byte for _, item := range list { structBytes = item.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return b } // 'RenderTransform' struct definition // Size: 36 type RenderTransform struct { Matrix11 RenderFixed Matrix12 RenderFixed Matrix13 RenderFixed Matrix21 RenderFixed Matrix22 RenderFixed Matrix23 RenderFixed Matrix31 RenderFixed Matrix32 RenderFixed Matrix33 RenderFixed } // Struct read RenderTransform func ReadRenderTransform(buf []byte, v *RenderTransform) int { b := 0 v.Matrix11 = RenderFixed(Get32(buf[b:])) b += 4 v.Matrix12 = RenderFixed(Get32(buf[b:])) b += 4 v.Matrix13 = RenderFixed(Get32(buf[b:])) b += 4 v.Matrix21 = RenderFixed(Get32(buf[b:])) b += 4 v.Matrix22 = RenderFixed(Get32(buf[b:])) b += 4 v.Matrix23 = RenderFixed(Get32(buf[b:])) b += 4 v.Matrix31 = RenderFixed(Get32(buf[b:])) b += 4 v.Matrix32 = RenderFixed(Get32(buf[b:])) b += 4 v.Matrix33 = RenderFixed(Get32(buf[b:])) b += 4 return b } // Struct list read RenderTransform func ReadRenderTransformList(buf []byte, dest []RenderTransform) int { b := 0 for i := 0; i < len(dest); i++ { dest[i] = RenderTransform{} b += ReadRenderTransform(buf[b:], &dest[i]) } return pad(b) } // Struct write RenderTransform func (v RenderTransform) Bytes() []byte { buf := make([]byte, 36) b := 0 Put32(buf[b:], uint32(v.Matrix11)) b += 4 Put32(buf[b:], uint32(v.Matrix12)) b += 4 Put32(buf[b:], uint32(v.Matrix13)) b += 4 Put32(buf[b:], uint32(v.Matrix21)) b += 4 Put32(buf[b:], uint32(v.Matrix22)) b += 4 Put32(buf[b:], uint32(v.Matrix23)) b += 4 Put32(buf[b:], uint32(v.Matrix31)) b += 4 Put32(buf[b:], uint32(v.Matrix32)) b += 4 Put32(buf[b:], uint32(v.Matrix33)) b += 4 return buf } // Write struct list RenderTransform func RenderTransformListBytes(buf []byte, list []RenderTransform) int { b := 0 var structBytes []byte for _, item := range list { structBytes = item.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return b } // 'RenderAnimcursorelt' struct definition // Size: 8 type RenderAnimcursorelt struct { Cursor Id Delay uint32 } // Struct read RenderAnimcursorelt func ReadRenderAnimcursorelt(buf []byte, v *RenderAnimcursorelt) int { b := 0 v.Cursor = Id(Get32(buf[b:])) b += 4 v.Delay = Get32(buf[b:]) b += 4 return b } // Struct list read RenderAnimcursorelt func ReadRenderAnimcursoreltList(buf []byte, dest []RenderAnimcursorelt) int { b := 0 for i := 0; i < len(dest); i++ { dest[i] = RenderAnimcursorelt{} b += ReadRenderAnimcursorelt(buf[b:], &dest[i]) } return pad(b) } // Struct write RenderAnimcursorelt func (v RenderAnimcursorelt) Bytes() []byte { buf := make([]byte, 8) b := 0 Put32(buf[b:], uint32(v.Cursor)) b += 4 Put32(buf[b:], v.Delay) b += 4 return buf } // Write struct list RenderAnimcursorelt func RenderAnimcursoreltListBytes(buf []byte, list []RenderAnimcursorelt) int { b := 0 var structBytes []byte for _, item := range list { structBytes = item.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return b } // 'RenderSpanfix' struct definition // Size: 12 type RenderSpanfix struct { L RenderFixed R RenderFixed Y RenderFixed } // Struct read RenderSpanfix func ReadRenderSpanfix(buf []byte, v *RenderSpanfix) int { b := 0 v.L = RenderFixed(Get32(buf[b:])) b += 4 v.R = RenderFixed(Get32(buf[b:])) b += 4 v.Y = RenderFixed(Get32(buf[b:])) b += 4 return b } // Struct list read RenderSpanfix func ReadRenderSpanfixList(buf []byte, dest []RenderSpanfix) int { b := 0 for i := 0; i < len(dest); i++ { dest[i] = RenderSpanfix{} b += ReadRenderSpanfix(buf[b:], &dest[i]) } return pad(b) } // Struct write RenderSpanfix func (v RenderSpanfix) Bytes() []byte { buf := make([]byte, 12) b := 0 Put32(buf[b:], uint32(v.L)) b += 4 Put32(buf[b:], uint32(v.R)) b += 4 Put32(buf[b:], uint32(v.Y)) b += 4 return buf } // Write struct list RenderSpanfix func RenderSpanfixListBytes(buf []byte, list []RenderSpanfix) int { b := 0 var structBytes []byte for _, item := range list { structBytes = item.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return b } // 'RenderTrap' struct definition // Size: 24 type RenderTrap struct { Top RenderSpanfix Bot RenderSpanfix } // Struct read RenderTrap func ReadRenderTrap(buf []byte, v *RenderTrap) int { b := 0 v.Top = RenderSpanfix{} b += ReadRenderSpanfix(buf[b:], &v.Top) v.Bot = RenderSpanfix{} b += ReadRenderSpanfix(buf[b:], &v.Bot) return b } // Struct list read RenderTrap func ReadRenderTrapList(buf []byte, dest []RenderTrap) int { b := 0 for i := 0; i < len(dest); i++ { dest[i] = RenderTrap{} b += ReadRenderTrap(buf[b:], &dest[i]) } return pad(b) } // Struct write RenderTrap func (v RenderTrap) Bytes() []byte { buf := make([]byte, 24) b := 0 { structBytes := v.Top.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } { structBytes := v.Bot.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return buf } // Write struct list RenderTrap func RenderTrapListBytes(buf []byte, list []RenderTrap) int { b := 0 var structBytes []byte for _, item := range list { structBytes = item.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return b } // Error definition RenderPictFormat (0) // Size: 32 const BadRenderPictFormat = 0 type RenderPictFormatError struct { Sequence uint16 NiceName string } // Error read RenderPictFormat func NewRenderPictFormatError(buf []byte) Error { v := RenderPictFormatError{} v.NiceName = "RenderPictFormat" b := 1 // skip error determinant b += 1 // don't read error number v.Sequence = Get16(buf[b:]) b += 2 return v } func (err RenderPictFormatError) ImplementsError() {} func (err RenderPictFormatError) SequenceId() uint16 { return err.Sequence } func (err RenderPictFormatError) BadId() Id { return 0 } func (err RenderPictFormatError) Error() string { fieldVals := make([]string, 0, 0) fieldVals = append(fieldVals, "NiceName: "+err.NiceName) fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence)) return "BadRenderPictFormat {" + stringsJoin(fieldVals, ", ") + "}" } func init() { newErrorFuncs[0] = NewRenderPictFormatError } // Error definition RenderPicture (1) // Size: 32 const BadRenderPicture = 1 type RenderPictureError struct { Sequence uint16 NiceName string } // Error read RenderPicture func NewRenderPictureError(buf []byte) Error { v := RenderPictureError{} v.NiceName = "RenderPicture" b := 1 // skip error determinant b += 1 // don't read error number v.Sequence = Get16(buf[b:]) b += 2 return v } func (err RenderPictureError) ImplementsError() {} func (err RenderPictureError) SequenceId() uint16 { return err.Sequence } func (err RenderPictureError) BadId() Id { return 0 } func (err RenderPictureError) Error() string { fieldVals := make([]string, 0, 0) fieldVals = append(fieldVals, "NiceName: "+err.NiceName) fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence)) return "BadRenderPicture {" + stringsJoin(fieldVals, ", ") + "}" } func init() { newErrorFuncs[1] = NewRenderPictureError } // Error definition RenderPictOp (2) // Size: 32 const BadRenderPictOp = 2 type RenderPictOpError struct { Sequence uint16 NiceName string } // Error read RenderPictOp func NewRenderPictOpError(buf []byte) Error { v := RenderPictOpError{} v.NiceName = "RenderPictOp" b := 1 // skip error determinant b += 1 // don't read error number v.Sequence = Get16(buf[b:]) b += 2 return v } func (err RenderPictOpError) ImplementsError() {} func (err RenderPictOpError) SequenceId() uint16 { return err.Sequence } func (err RenderPictOpError) BadId() Id { return 0 } func (err RenderPictOpError) Error() string { fieldVals := make([]string, 0, 0) fieldVals = append(fieldVals, "NiceName: "+err.NiceName) fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence)) return "BadRenderPictOp {" + stringsJoin(fieldVals, ", ") + "}" } func init() { newErrorFuncs[2] = NewRenderPictOpError } // Error definition RenderGlyphSet (3) // Size: 32 const BadRenderGlyphSet = 3 type RenderGlyphSetError struct { Sequence uint16 NiceName string } // Error read RenderGlyphSet func NewRenderGlyphSetError(buf []byte) Error { v := RenderGlyphSetError{} v.NiceName = "RenderGlyphSet" b := 1 // skip error determinant b += 1 // don't read error number v.Sequence = Get16(buf[b:]) b += 2 return v } func (err RenderGlyphSetError) ImplementsError() {} func (err RenderGlyphSetError) SequenceId() uint16 { return err.Sequence } func (err RenderGlyphSetError) BadId() Id { return 0 } func (err RenderGlyphSetError) Error() string { fieldVals := make([]string, 0, 0) fieldVals = append(fieldVals, "NiceName: "+err.NiceName) fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence)) return "BadRenderGlyphSet {" + stringsJoin(fieldVals, ", ") + "}" } func init() { newErrorFuncs[3] = NewRenderGlyphSetError } // Error definition RenderGlyph (4) // Size: 32 const BadRenderGlyph = 4 type RenderGlyphError struct { Sequence uint16 NiceName string } // Error read RenderGlyph func NewRenderGlyphError(buf []byte) Error { v := RenderGlyphError{} v.NiceName = "RenderGlyph" b := 1 // skip error determinant b += 1 // don't read error number v.Sequence = Get16(buf[b:]) b += 2 return v } func (err RenderGlyphError) ImplementsError() {} func (err RenderGlyphError) SequenceId() uint16 { return err.Sequence } func (err RenderGlyphError) BadId() Id { return 0 } func (err RenderGlyphError) Error() string { fieldVals := make([]string, 0, 0) fieldVals = append(fieldVals, "NiceName: "+err.NiceName) fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence)) return "BadRenderGlyph {" + stringsJoin(fieldVals, ", ") + "}" } func init() { newErrorFuncs[4] = NewRenderGlyphError } // Request RenderQueryVersion // size: 12 type RenderQueryVersionCookie struct { *cookie } func (c *Conn) RenderQueryVersion(ClientMajorVersion uint32, ClientMinorVersion uint32) RenderQueryVersionCookie { cookie := c.newCookie(true, true) c.newRequest(c.renderQueryVersionRequest(ClientMajorVersion, ClientMinorVersion), cookie) return RenderQueryVersionCookie{cookie} } func (c *Conn) RenderQueryVersionUnchecked(ClientMajorVersion uint32, ClientMinorVersion uint32) RenderQueryVersionCookie { cookie := c.newCookie(false, true) c.newRequest(c.renderQueryVersionRequest(ClientMajorVersion, ClientMinorVersion), cookie) return RenderQueryVersionCookie{cookie} } // Request reply for RenderQueryVersion // size: 32 type RenderQueryVersionReply struct { Sequence uint16 Length uint32 // padding: 1 bytes MajorVersion uint32 MinorVersion uint32 // padding: 16 bytes } // Waits and reads reply data from request RenderQueryVersion func (cook RenderQueryVersionCookie) Reply() (*RenderQueryVersionReply, error) { buf, err := cook.reply() if err != nil { return nil, err } if buf == nil { return nil, nil } return renderQueryVersionReply(buf), nil } // Read reply into structure from buffer for RenderQueryVersion func renderQueryVersionReply(buf []byte) *RenderQueryVersionReply { v := new(RenderQueryVersionReply) b := 1 // skip reply determinant b += 1 // padding v.Sequence = Get16(buf[b:]) b += 2 v.Length = Get32(buf[b:]) // 4-byte units b += 4 v.MajorVersion = Get32(buf[b:]) b += 4 v.MinorVersion = Get32(buf[b:]) b += 4 b += 16 // padding return v } func (cook RenderQueryVersionCookie) Check() error { return cook.check() } // Write request to wire for RenderQueryVersion func (c *Conn) renderQueryVersionRequest(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 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], ClientMajorVersion) b += 4 Put32(buf[b:], ClientMinorVersion) b += 4 return buf } // Request RenderQueryPictFormats // size: 4 type RenderQueryPictFormatsCookie struct { *cookie } func (c *Conn) RenderQueryPictFormats() RenderQueryPictFormatsCookie { cookie := c.newCookie(true, true) c.newRequest(c.renderQueryPictFormatsRequest(), cookie) return RenderQueryPictFormatsCookie{cookie} } func (c *Conn) RenderQueryPictFormatsUnchecked() RenderQueryPictFormatsCookie { cookie := c.newCookie(false, true) c.newRequest(c.renderQueryPictFormatsRequest(), cookie) return RenderQueryPictFormatsCookie{cookie} } // Request reply for RenderQueryPictFormats // size: (((32 + pad((int(NumFormats) * 28))) + RenderPictscreenListSize(Screens)) + pad((int(NumSubpixel) * 4))) type RenderQueryPictFormatsReply struct { Sequence uint16 Length uint32 // padding: 1 bytes NumFormats uint32 NumScreens uint32 NumDepths uint32 NumVisuals uint32 NumSubpixel uint32 // padding: 4 bytes Formats []RenderPictforminfo // size: pad((int(NumFormats) * 28)) Screens []RenderPictscreen // size: RenderPictscreenListSize(Screens) Subpixels []uint32 // size: pad((int(NumSubpixel) * 4)) } // Waits and reads reply data from request RenderQueryPictFormats func (cook RenderQueryPictFormatsCookie) Reply() (*RenderQueryPictFormatsReply, error) { buf, err := cook.reply() if err != nil { return nil, err } if buf == nil { return nil, nil } return renderQueryPictFormatsReply(buf), nil } // Read reply into structure from buffer for RenderQueryPictFormats func renderQueryPictFormatsReply(buf []byte) *RenderQueryPictFormatsReply { v := new(RenderQueryPictFormatsReply) b := 1 // skip reply determinant b += 1 // padding v.Sequence = Get16(buf[b:]) b += 2 v.Length = Get32(buf[b:]) // 4-byte units b += 4 v.NumFormats = Get32(buf[b:]) b += 4 v.NumScreens = Get32(buf[b:]) b += 4 v.NumDepths = Get32(buf[b:]) b += 4 v.NumVisuals = Get32(buf[b:]) b += 4 v.NumSubpixel = Get32(buf[b:]) b += 4 b += 4 // padding v.Formats = make([]RenderPictforminfo, v.NumFormats) b += ReadRenderPictforminfoList(buf[b:], v.Formats) v.Screens = make([]RenderPictscreen, v.NumScreens) b += ReadRenderPictscreenList(buf[b:], v.Screens) v.Subpixels = make([]uint32, v.NumSubpixel) for i := 0; i < int(v.NumSubpixel); i++ { v.Subpixels[i] = Get32(buf[b:]) b += 4 } b = pad(b) return v } func (cook RenderQueryPictFormatsCookie) Check() error { return cook.check() } // Write request to wire for RenderQueryPictFormats func (c *Conn) renderQueryPictFormatsRequest() []byte { size := 4 b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 1 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 return buf } // Request RenderQueryPictIndexValues // size: 8 type RenderQueryPictIndexValuesCookie struct { *cookie } func (c *Conn) RenderQueryPictIndexValues(Format Id) RenderQueryPictIndexValuesCookie { cookie := c.newCookie(true, true) c.newRequest(c.renderQueryPictIndexValuesRequest(Format), cookie) return RenderQueryPictIndexValuesCookie{cookie} } func (c *Conn) RenderQueryPictIndexValuesUnchecked(Format Id) RenderQueryPictIndexValuesCookie { cookie := c.newCookie(false, true) c.newRequest(c.renderQueryPictIndexValuesRequest(Format), cookie) return RenderQueryPictIndexValuesCookie{cookie} } // Request reply for RenderQueryPictIndexValues // size: (32 + pad((int(NumValues) * 12))) type RenderQueryPictIndexValuesReply struct { Sequence uint16 Length uint32 // padding: 1 bytes NumValues uint32 // padding: 20 bytes Values []RenderIndexvalue // size: pad((int(NumValues) * 12)) } // Waits and reads reply data from request RenderQueryPictIndexValues func (cook RenderQueryPictIndexValuesCookie) Reply() (*RenderQueryPictIndexValuesReply, error) { buf, err := cook.reply() if err != nil { return nil, err } if buf == nil { return nil, nil } return renderQueryPictIndexValuesReply(buf), nil } // Read reply into structure from buffer for RenderQueryPictIndexValues func renderQueryPictIndexValuesReply(buf []byte) *RenderQueryPictIndexValuesReply { v := new(RenderQueryPictIndexValuesReply) b := 1 // skip reply determinant b += 1 // padding v.Sequence = Get16(buf[b:]) b += 2 v.Length = Get32(buf[b:]) // 4-byte units b += 4 v.NumValues = Get32(buf[b:]) b += 4 b += 20 // padding v.Values = make([]RenderIndexvalue, v.NumValues) b += ReadRenderIndexvalueList(buf[b:], v.Values) return v } func (cook RenderQueryPictIndexValuesCookie) Check() error { return cook.check() } // Write request to wire for RenderQueryPictIndexValues func (c *Conn) renderQueryPictIndexValuesRequest(Format Id) []byte { size := 8 b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 2 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Format)) b += 4 return buf } // Request RenderCreatePicture // size: pad((16 + (4 + pad((4 * popCount(int(ValueMask))))))) type RenderCreatePictureCookie struct { *cookie } // Write request to wire for RenderCreatePicture func (c *Conn) RenderCreatePicture(Pid Id, Drawable Id, Format Id, ValueMask uint32, ValueList []uint32) RenderCreatePictureCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderCreatePictureRequest(Pid, Drawable, Format, ValueMask, ValueList), cookie) return RenderCreatePictureCookie{cookie} } func (c *Conn) RenderCreatePictureChecked(Pid Id, Drawable Id, Format Id, ValueMask uint32, ValueList []uint32) RenderCreatePictureCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderCreatePictureRequest(Pid, Drawable, Format, ValueMask, ValueList), cookie) return RenderCreatePictureCookie{cookie} } func (cook RenderCreatePictureCookie) Check() error { return cook.check() } // Write request to wire for RenderCreatePicture func (c *Conn) renderCreatePictureRequest(Pid Id, Drawable Id, Format Id, ValueMask uint32, ValueList []uint32) []byte { size := pad((16 + (4 + pad((4 * popCount(int(ValueMask))))))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 4 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Pid)) b += 4 Put32(buf[b:], uint32(Drawable)) b += 4 Put32(buf[b:], uint32(Format)) b += 4 Put32(buf[b:], ValueMask) b += 4 for i := 0; i < popCount(int(ValueMask)); i++ { Put32(buf[b:], ValueList[i]) b += 4 } b = pad(b) return buf } // Request RenderChangePicture // size: pad((8 + (4 + pad((4 * popCount(int(ValueMask))))))) type RenderChangePictureCookie struct { *cookie } // Write request to wire for RenderChangePicture func (c *Conn) RenderChangePicture(Picture Id, ValueMask uint32, ValueList []uint32) RenderChangePictureCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderChangePictureRequest(Picture, ValueMask, ValueList), cookie) return RenderChangePictureCookie{cookie} } func (c *Conn) RenderChangePictureChecked(Picture Id, ValueMask uint32, ValueList []uint32) RenderChangePictureCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderChangePictureRequest(Picture, ValueMask, ValueList), cookie) return RenderChangePictureCookie{cookie} } func (cook RenderChangePictureCookie) Check() error { return cook.check() } // Write request to wire for RenderChangePicture func (c *Conn) renderChangePictureRequest(Picture Id, ValueMask uint32, ValueList []uint32) []byte { size := pad((8 + (4 + pad((4 * popCount(int(ValueMask))))))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 5 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Picture)) b += 4 Put32(buf[b:], ValueMask) b += 4 for i := 0; i < popCount(int(ValueMask)); i++ { Put32(buf[b:], ValueList[i]) b += 4 } b = pad(b) return buf } // Request RenderSetPictureClipRectangles // size: pad((12 + pad((len(Rectangles) * 8)))) type RenderSetPictureClipRectanglesCookie struct { *cookie } // Write request to wire for RenderSetPictureClipRectangles func (c *Conn) RenderSetPictureClipRectangles(Picture Id, ClipXOrigin int16, ClipYOrigin int16, Rectangles []Rectangle) RenderSetPictureClipRectanglesCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderSetPictureClipRectanglesRequest(Picture, ClipXOrigin, ClipYOrigin, Rectangles), cookie) return RenderSetPictureClipRectanglesCookie{cookie} } func (c *Conn) RenderSetPictureClipRectanglesChecked(Picture Id, ClipXOrigin int16, ClipYOrigin int16, Rectangles []Rectangle) RenderSetPictureClipRectanglesCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderSetPictureClipRectanglesRequest(Picture, ClipXOrigin, ClipYOrigin, Rectangles), cookie) return RenderSetPictureClipRectanglesCookie{cookie} } func (cook RenderSetPictureClipRectanglesCookie) Check() error { return cook.check() } // Write request to wire for RenderSetPictureClipRectangles func (c *Conn) renderSetPictureClipRectanglesRequest(Picture Id, ClipXOrigin int16, ClipYOrigin int16, Rectangles []Rectangle) []byte { size := pad((12 + pad((len(Rectangles) * 8)))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 6 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Picture)) b += 4 Put16(buf[b:], uint16(ClipXOrigin)) b += 2 Put16(buf[b:], uint16(ClipYOrigin)) b += 2 b += RectangleListBytes(buf[b:], Rectangles) return buf } // Request RenderFreePicture // size: 8 type RenderFreePictureCookie struct { *cookie } // Write request to wire for RenderFreePicture func (c *Conn) RenderFreePicture(Picture Id) RenderFreePictureCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderFreePictureRequest(Picture), cookie) return RenderFreePictureCookie{cookie} } func (c *Conn) RenderFreePictureChecked(Picture Id) RenderFreePictureCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderFreePictureRequest(Picture), cookie) return RenderFreePictureCookie{cookie} } func (cook RenderFreePictureCookie) Check() error { return cook.check() } // Write request to wire for RenderFreePicture func (c *Conn) renderFreePictureRequest(Picture Id) []byte { size := 8 b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 7 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Picture)) b += 4 return buf } // Request RenderComposite // size: 36 type RenderCompositeCookie struct { *cookie } // Write request to wire for RenderComposite func (c *Conn) RenderComposite(Op byte, Src Id, Mask Id, Dst Id, SrcX int16, SrcY int16, MaskX int16, MaskY int16, DstX int16, DstY int16, Width uint16, Height uint16) RenderCompositeCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderCompositeRequest(Op, Src, Mask, Dst, SrcX, SrcY, MaskX, MaskY, DstX, DstY, Width, Height), cookie) return RenderCompositeCookie{cookie} } func (c *Conn) RenderCompositeChecked(Op byte, Src Id, Mask Id, Dst Id, SrcX int16, SrcY int16, MaskX int16, MaskY int16, DstX int16, DstY int16, Width uint16, Height uint16) RenderCompositeCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderCompositeRequest(Op, Src, Mask, Dst, SrcX, SrcY, MaskX, MaskY, DstX, DstY, Width, Height), cookie) return RenderCompositeCookie{cookie} } func (cook RenderCompositeCookie) Check() error { return cook.check() } // Write request to wire for RenderComposite func (c *Conn) renderCompositeRequest(Op byte, Src Id, Mask Id, Dst Id, SrcX int16, SrcY int16, MaskX int16, MaskY int16, DstX int16, DstY int16, Width uint16, Height uint16) []byte { size := 36 b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 8 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 buf[b] = Op b += 1 b += 3 // padding Put32(buf[b:], uint32(Src)) b += 4 Put32(buf[b:], uint32(Mask)) b += 4 Put32(buf[b:], uint32(Dst)) b += 4 Put16(buf[b:], uint16(SrcX)) b += 2 Put16(buf[b:], uint16(SrcY)) b += 2 Put16(buf[b:], uint16(MaskX)) b += 2 Put16(buf[b:], uint16(MaskY)) b += 2 Put16(buf[b:], uint16(DstX)) b += 2 Put16(buf[b:], uint16(DstY)) b += 2 Put16(buf[b:], Width) b += 2 Put16(buf[b:], Height) b += 2 return buf } // Request RenderTrapezoids // size: pad((24 + pad((len(Traps) * 40)))) type RenderTrapezoidsCookie struct { *cookie } // Write request to wire for RenderTrapezoids func (c *Conn) RenderTrapezoids(Op byte, Src Id, Dst Id, MaskFormat Id, SrcX int16, SrcY int16, Traps []RenderTrapezoid) RenderTrapezoidsCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderTrapezoidsRequest(Op, Src, Dst, MaskFormat, SrcX, SrcY, Traps), cookie) return RenderTrapezoidsCookie{cookie} } func (c *Conn) RenderTrapezoidsChecked(Op byte, Src Id, Dst Id, MaskFormat Id, SrcX int16, SrcY int16, Traps []RenderTrapezoid) RenderTrapezoidsCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderTrapezoidsRequest(Op, Src, Dst, MaskFormat, SrcX, SrcY, Traps), cookie) return RenderTrapezoidsCookie{cookie} } func (cook RenderTrapezoidsCookie) Check() error { return cook.check() } // Write request to wire for RenderTrapezoids func (c *Conn) renderTrapezoidsRequest(Op byte, Src Id, Dst Id, MaskFormat Id, SrcX int16, SrcY int16, Traps []RenderTrapezoid) []byte { size := pad((24 + pad((len(Traps) * 40)))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 10 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 buf[b] = Op b += 1 b += 3 // padding Put32(buf[b:], uint32(Src)) b += 4 Put32(buf[b:], uint32(Dst)) b += 4 Put32(buf[b:], uint32(MaskFormat)) b += 4 Put16(buf[b:], uint16(SrcX)) b += 2 Put16(buf[b:], uint16(SrcY)) b += 2 b += RenderTrapezoidListBytes(buf[b:], Traps) return buf } // Request RenderTriangles // size: pad((24 + pad((len(Triangles) * 24)))) type RenderTrianglesCookie struct { *cookie } // Write request to wire for RenderTriangles func (c *Conn) RenderTriangles(Op byte, Src Id, Dst Id, MaskFormat Id, SrcX int16, SrcY int16, Triangles []RenderTriangle) RenderTrianglesCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderTrianglesRequest(Op, Src, Dst, MaskFormat, SrcX, SrcY, Triangles), cookie) return RenderTrianglesCookie{cookie} } func (c *Conn) RenderTrianglesChecked(Op byte, Src Id, Dst Id, MaskFormat Id, SrcX int16, SrcY int16, Triangles []RenderTriangle) RenderTrianglesCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderTrianglesRequest(Op, Src, Dst, MaskFormat, SrcX, SrcY, Triangles), cookie) return RenderTrianglesCookie{cookie} } func (cook RenderTrianglesCookie) Check() error { return cook.check() } // Write request to wire for RenderTriangles func (c *Conn) renderTrianglesRequest(Op byte, Src Id, Dst Id, MaskFormat Id, SrcX int16, SrcY int16, Triangles []RenderTriangle) []byte { size := pad((24 + pad((len(Triangles) * 24)))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 11 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 buf[b] = Op b += 1 b += 3 // padding Put32(buf[b:], uint32(Src)) b += 4 Put32(buf[b:], uint32(Dst)) b += 4 Put32(buf[b:], uint32(MaskFormat)) b += 4 Put16(buf[b:], uint16(SrcX)) b += 2 Put16(buf[b:], uint16(SrcY)) b += 2 b += RenderTriangleListBytes(buf[b:], Triangles) return buf } // Request RenderTriStrip // size: pad((24 + pad((len(Points) * 8)))) type RenderTriStripCookie struct { *cookie } // Write request to wire for RenderTriStrip func (c *Conn) RenderTriStrip(Op byte, Src Id, Dst Id, MaskFormat Id, SrcX int16, SrcY int16, Points []RenderPointfix) RenderTriStripCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderTriStripRequest(Op, Src, Dst, MaskFormat, SrcX, SrcY, Points), cookie) return RenderTriStripCookie{cookie} } func (c *Conn) RenderTriStripChecked(Op byte, Src Id, Dst Id, MaskFormat Id, SrcX int16, SrcY int16, Points []RenderPointfix) RenderTriStripCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderTriStripRequest(Op, Src, Dst, MaskFormat, SrcX, SrcY, Points), cookie) return RenderTriStripCookie{cookie} } func (cook RenderTriStripCookie) Check() error { return cook.check() } // Write request to wire for RenderTriStrip func (c *Conn) renderTriStripRequest(Op byte, Src Id, Dst Id, MaskFormat Id, SrcX int16, SrcY int16, Points []RenderPointfix) []byte { size := pad((24 + pad((len(Points) * 8)))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 12 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 buf[b] = Op b += 1 b += 3 // padding Put32(buf[b:], uint32(Src)) b += 4 Put32(buf[b:], uint32(Dst)) b += 4 Put32(buf[b:], uint32(MaskFormat)) b += 4 Put16(buf[b:], uint16(SrcX)) b += 2 Put16(buf[b:], uint16(SrcY)) b += 2 b += RenderPointfixListBytes(buf[b:], Points) return buf } // Request RenderTriFan // size: pad((24 + pad((len(Points) * 8)))) type RenderTriFanCookie struct { *cookie } // Write request to wire for RenderTriFan func (c *Conn) RenderTriFan(Op byte, Src Id, Dst Id, MaskFormat Id, SrcX int16, SrcY int16, Points []RenderPointfix) RenderTriFanCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderTriFanRequest(Op, Src, Dst, MaskFormat, SrcX, SrcY, Points), cookie) return RenderTriFanCookie{cookie} } func (c *Conn) RenderTriFanChecked(Op byte, Src Id, Dst Id, MaskFormat Id, SrcX int16, SrcY int16, Points []RenderPointfix) RenderTriFanCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderTriFanRequest(Op, Src, Dst, MaskFormat, SrcX, SrcY, Points), cookie) return RenderTriFanCookie{cookie} } func (cook RenderTriFanCookie) Check() error { return cook.check() } // Write request to wire for RenderTriFan func (c *Conn) renderTriFanRequest(Op byte, Src Id, Dst Id, MaskFormat Id, SrcX int16, SrcY int16, Points []RenderPointfix) []byte { size := pad((24 + pad((len(Points) * 8)))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 13 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 buf[b] = Op b += 1 b += 3 // padding Put32(buf[b:], uint32(Src)) b += 4 Put32(buf[b:], uint32(Dst)) b += 4 Put32(buf[b:], uint32(MaskFormat)) b += 4 Put16(buf[b:], uint16(SrcX)) b += 2 Put16(buf[b:], uint16(SrcY)) b += 2 b += RenderPointfixListBytes(buf[b:], Points) return buf } // Request RenderCreateGlyphSet // size: 12 type RenderCreateGlyphSetCookie struct { *cookie } // Write request to wire for RenderCreateGlyphSet func (c *Conn) RenderCreateGlyphSet(Gsid Id, Format Id) RenderCreateGlyphSetCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderCreateGlyphSetRequest(Gsid, Format), cookie) return RenderCreateGlyphSetCookie{cookie} } func (c *Conn) RenderCreateGlyphSetChecked(Gsid Id, Format Id) RenderCreateGlyphSetCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderCreateGlyphSetRequest(Gsid, Format), cookie) return RenderCreateGlyphSetCookie{cookie} } func (cook RenderCreateGlyphSetCookie) Check() error { return cook.check() } // Write request to wire for RenderCreateGlyphSet func (c *Conn) renderCreateGlyphSetRequest(Gsid Id, Format Id) []byte { size := 12 b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 17 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Gsid)) b += 4 Put32(buf[b:], uint32(Format)) b += 4 return buf } // Request RenderReferenceGlyphSet // size: 12 type RenderReferenceGlyphSetCookie struct { *cookie } // Write request to wire for RenderReferenceGlyphSet func (c *Conn) RenderReferenceGlyphSet(Gsid Id, Existing Id) RenderReferenceGlyphSetCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderReferenceGlyphSetRequest(Gsid, Existing), cookie) return RenderReferenceGlyphSetCookie{cookie} } func (c *Conn) RenderReferenceGlyphSetChecked(Gsid Id, Existing Id) RenderReferenceGlyphSetCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderReferenceGlyphSetRequest(Gsid, Existing), cookie) return RenderReferenceGlyphSetCookie{cookie} } func (cook RenderReferenceGlyphSetCookie) Check() error { return cook.check() } // Write request to wire for RenderReferenceGlyphSet func (c *Conn) renderReferenceGlyphSetRequest(Gsid Id, Existing Id) []byte { size := 12 b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 18 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Gsid)) b += 4 Put32(buf[b:], uint32(Existing)) b += 4 return buf } // Request RenderFreeGlyphSet // size: 8 type RenderFreeGlyphSetCookie struct { *cookie } // Write request to wire for RenderFreeGlyphSet func (c *Conn) RenderFreeGlyphSet(Glyphset Id) RenderFreeGlyphSetCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderFreeGlyphSetRequest(Glyphset), cookie) return RenderFreeGlyphSetCookie{cookie} } func (c *Conn) RenderFreeGlyphSetChecked(Glyphset Id) RenderFreeGlyphSetCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderFreeGlyphSetRequest(Glyphset), cookie) return RenderFreeGlyphSetCookie{cookie} } func (cook RenderFreeGlyphSetCookie) Check() error { return cook.check() } // Write request to wire for RenderFreeGlyphSet func (c *Conn) renderFreeGlyphSetRequest(Glyphset Id) []byte { size := 8 b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 19 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Glyphset)) b += 4 return buf } // Request RenderAddGlyphs // size: pad((((12 + pad((int(GlyphsLen) * 4))) + pad((int(GlyphsLen) * 12))) + pad((len(Data) * 1)))) type RenderAddGlyphsCookie struct { *cookie } // Write request to wire for RenderAddGlyphs func (c *Conn) RenderAddGlyphs(Glyphset Id, GlyphsLen uint32, Glyphids []uint32, Glyphs []RenderGlyphinfo, Data []byte) RenderAddGlyphsCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderAddGlyphsRequest(Glyphset, GlyphsLen, Glyphids, Glyphs, Data), cookie) return RenderAddGlyphsCookie{cookie} } func (c *Conn) RenderAddGlyphsChecked(Glyphset Id, GlyphsLen uint32, Glyphids []uint32, Glyphs []RenderGlyphinfo, Data []byte) RenderAddGlyphsCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderAddGlyphsRequest(Glyphset, GlyphsLen, Glyphids, Glyphs, Data), cookie) return RenderAddGlyphsCookie{cookie} } func (cook RenderAddGlyphsCookie) Check() error { return cook.check() } // Write request to wire for RenderAddGlyphs func (c *Conn) renderAddGlyphsRequest(Glyphset Id, GlyphsLen uint32, Glyphids []uint32, Glyphs []RenderGlyphinfo, Data []byte) []byte { size := pad((((12 + pad((int(GlyphsLen) * 4))) + pad((int(GlyphsLen) * 12))) + pad((len(Data) * 1)))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 20 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Glyphset)) b += 4 Put32(buf[b:], GlyphsLen) b += 4 for i := 0; i < int(GlyphsLen); i++ { Put32(buf[b:], Glyphids[i]) b += 4 } b = pad(b) b += RenderGlyphinfoListBytes(buf[b:], Glyphs) copy(buf[b:], Data[:len(Data)]) b += pad(int(len(Data))) return buf } // Request RenderFreeGlyphs // size: pad((8 + pad((len(Glyphs) * 4)))) type RenderFreeGlyphsCookie struct { *cookie } // Write request to wire for RenderFreeGlyphs func (c *Conn) RenderFreeGlyphs(Glyphset Id, Glyphs []RenderGlyph) RenderFreeGlyphsCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderFreeGlyphsRequest(Glyphset, Glyphs), cookie) return RenderFreeGlyphsCookie{cookie} } func (c *Conn) RenderFreeGlyphsChecked(Glyphset Id, Glyphs []RenderGlyph) RenderFreeGlyphsCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderFreeGlyphsRequest(Glyphset, Glyphs), cookie) return RenderFreeGlyphsCookie{cookie} } func (cook RenderFreeGlyphsCookie) Check() error { return cook.check() } // Write request to wire for RenderFreeGlyphs func (c *Conn) renderFreeGlyphsRequest(Glyphset Id, Glyphs []RenderGlyph) []byte { size := pad((8 + pad((len(Glyphs) * 4)))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 22 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Glyphset)) b += 4 for i := 0; i < int(len(Glyphs)); i++ { Put32(buf[b:], uint32(Glyphs[i])) b += 4 } b = pad(b) return buf } // Request RenderCompositeGlyphs8 // size: pad((28 + pad((len(Glyphcmds) * 1)))) type RenderCompositeGlyphs8Cookie struct { *cookie } // Write request to wire for RenderCompositeGlyphs8 func (c *Conn) RenderCompositeGlyphs8(Op byte, Src Id, Dst Id, MaskFormat Id, Glyphset Id, SrcX int16, SrcY int16, Glyphcmds []byte) RenderCompositeGlyphs8Cookie { cookie := c.newCookie(false, false) c.newRequest(c.renderCompositeGlyphs8Request(Op, Src, Dst, MaskFormat, Glyphset, SrcX, SrcY, Glyphcmds), cookie) return RenderCompositeGlyphs8Cookie{cookie} } func (c *Conn) RenderCompositeGlyphs8Checked(Op byte, Src Id, Dst Id, MaskFormat Id, Glyphset Id, SrcX int16, SrcY int16, Glyphcmds []byte) RenderCompositeGlyphs8Cookie { cookie := c.newCookie(true, false) c.newRequest(c.renderCompositeGlyphs8Request(Op, Src, Dst, MaskFormat, Glyphset, SrcX, SrcY, Glyphcmds), cookie) return RenderCompositeGlyphs8Cookie{cookie} } func (cook RenderCompositeGlyphs8Cookie) Check() error { return cook.check() } // Write request to wire for RenderCompositeGlyphs8 func (c *Conn) renderCompositeGlyphs8Request(Op byte, Src Id, Dst Id, MaskFormat Id, Glyphset Id, SrcX int16, SrcY int16, Glyphcmds []byte) []byte { size := pad((28 + pad((len(Glyphcmds) * 1)))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 23 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 buf[b] = Op b += 1 b += 3 // padding Put32(buf[b:], uint32(Src)) b += 4 Put32(buf[b:], uint32(Dst)) b += 4 Put32(buf[b:], uint32(MaskFormat)) b += 4 Put32(buf[b:], uint32(Glyphset)) b += 4 Put16(buf[b:], uint16(SrcX)) b += 2 Put16(buf[b:], uint16(SrcY)) b += 2 copy(buf[b:], Glyphcmds[:len(Glyphcmds)]) b += pad(int(len(Glyphcmds))) return buf } // Request RenderCompositeGlyphs16 // size: pad((28 + pad((len(Glyphcmds) * 1)))) type RenderCompositeGlyphs16Cookie struct { *cookie } // Write request to wire for RenderCompositeGlyphs16 func (c *Conn) RenderCompositeGlyphs16(Op byte, Src Id, Dst Id, MaskFormat Id, Glyphset Id, SrcX int16, SrcY int16, Glyphcmds []byte) RenderCompositeGlyphs16Cookie { cookie := c.newCookie(false, false) c.newRequest(c.renderCompositeGlyphs16Request(Op, Src, Dst, MaskFormat, Glyphset, SrcX, SrcY, Glyphcmds), cookie) return RenderCompositeGlyphs16Cookie{cookie} } func (c *Conn) RenderCompositeGlyphs16Checked(Op byte, Src Id, Dst Id, MaskFormat Id, Glyphset Id, SrcX int16, SrcY int16, Glyphcmds []byte) RenderCompositeGlyphs16Cookie { cookie := c.newCookie(true, false) c.newRequest(c.renderCompositeGlyphs16Request(Op, Src, Dst, MaskFormat, Glyphset, SrcX, SrcY, Glyphcmds), cookie) return RenderCompositeGlyphs16Cookie{cookie} } func (cook RenderCompositeGlyphs16Cookie) Check() error { return cook.check() } // Write request to wire for RenderCompositeGlyphs16 func (c *Conn) renderCompositeGlyphs16Request(Op byte, Src Id, Dst Id, MaskFormat Id, Glyphset Id, SrcX int16, SrcY int16, Glyphcmds []byte) []byte { size := pad((28 + pad((len(Glyphcmds) * 1)))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 24 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 buf[b] = Op b += 1 b += 3 // padding Put32(buf[b:], uint32(Src)) b += 4 Put32(buf[b:], uint32(Dst)) b += 4 Put32(buf[b:], uint32(MaskFormat)) b += 4 Put32(buf[b:], uint32(Glyphset)) b += 4 Put16(buf[b:], uint16(SrcX)) b += 2 Put16(buf[b:], uint16(SrcY)) b += 2 copy(buf[b:], Glyphcmds[:len(Glyphcmds)]) b += pad(int(len(Glyphcmds))) return buf } // Request RenderCompositeGlyphs32 // size: pad((28 + pad((len(Glyphcmds) * 1)))) type RenderCompositeGlyphs32Cookie struct { *cookie } // Write request to wire for RenderCompositeGlyphs32 func (c *Conn) RenderCompositeGlyphs32(Op byte, Src Id, Dst Id, MaskFormat Id, Glyphset Id, SrcX int16, SrcY int16, Glyphcmds []byte) RenderCompositeGlyphs32Cookie { cookie := c.newCookie(false, false) c.newRequest(c.renderCompositeGlyphs32Request(Op, Src, Dst, MaskFormat, Glyphset, SrcX, SrcY, Glyphcmds), cookie) return RenderCompositeGlyphs32Cookie{cookie} } func (c *Conn) RenderCompositeGlyphs32Checked(Op byte, Src Id, Dst Id, MaskFormat Id, Glyphset Id, SrcX int16, SrcY int16, Glyphcmds []byte) RenderCompositeGlyphs32Cookie { cookie := c.newCookie(true, false) c.newRequest(c.renderCompositeGlyphs32Request(Op, Src, Dst, MaskFormat, Glyphset, SrcX, SrcY, Glyphcmds), cookie) return RenderCompositeGlyphs32Cookie{cookie} } func (cook RenderCompositeGlyphs32Cookie) Check() error { return cook.check() } // Write request to wire for RenderCompositeGlyphs32 func (c *Conn) renderCompositeGlyphs32Request(Op byte, Src Id, Dst Id, MaskFormat Id, Glyphset Id, SrcX int16, SrcY int16, Glyphcmds []byte) []byte { size := pad((28 + pad((len(Glyphcmds) * 1)))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 25 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 buf[b] = Op b += 1 b += 3 // padding Put32(buf[b:], uint32(Src)) b += 4 Put32(buf[b:], uint32(Dst)) b += 4 Put32(buf[b:], uint32(MaskFormat)) b += 4 Put32(buf[b:], uint32(Glyphset)) b += 4 Put16(buf[b:], uint16(SrcX)) b += 2 Put16(buf[b:], uint16(SrcY)) b += 2 copy(buf[b:], Glyphcmds[:len(Glyphcmds)]) b += pad(int(len(Glyphcmds))) return buf } // Request RenderFillRectangles // size: pad((20 + pad((len(Rects) * 8)))) type RenderFillRectanglesCookie struct { *cookie } // Write request to wire for RenderFillRectangles func (c *Conn) RenderFillRectangles(Op byte, Dst Id, Color RenderColor, Rects []Rectangle) RenderFillRectanglesCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderFillRectanglesRequest(Op, Dst, Color, Rects), cookie) return RenderFillRectanglesCookie{cookie} } func (c *Conn) RenderFillRectanglesChecked(Op byte, Dst Id, Color RenderColor, Rects []Rectangle) RenderFillRectanglesCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderFillRectanglesRequest(Op, Dst, Color, Rects), cookie) return RenderFillRectanglesCookie{cookie} } func (cook RenderFillRectanglesCookie) Check() error { return cook.check() } // Write request to wire for RenderFillRectangles func (c *Conn) renderFillRectanglesRequest(Op byte, Dst Id, Color RenderColor, Rects []Rectangle) []byte { size := pad((20 + pad((len(Rects) * 8)))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 26 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 buf[b] = Op b += 1 b += 3 // padding Put32(buf[b:], uint32(Dst)) b += 4 { structBytes := Color.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } b += RectangleListBytes(buf[b:], Rects) return buf } // Request RenderCreateCursor // size: 16 type RenderCreateCursorCookie struct { *cookie } // Write request to wire for RenderCreateCursor func (c *Conn) RenderCreateCursor(Cid Id, Source Id, X uint16, Y uint16) RenderCreateCursorCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderCreateCursorRequest(Cid, Source, X, Y), cookie) return RenderCreateCursorCookie{cookie} } func (c *Conn) RenderCreateCursorChecked(Cid Id, Source Id, X uint16, Y uint16) RenderCreateCursorCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderCreateCursorRequest(Cid, Source, X, Y), cookie) return RenderCreateCursorCookie{cookie} } func (cook RenderCreateCursorCookie) Check() error { return cook.check() } // Write request to wire for RenderCreateCursor func (c *Conn) renderCreateCursorRequest(Cid Id, Source Id, X uint16, Y uint16) []byte { size := 16 b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 27 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Cid)) b += 4 Put32(buf[b:], uint32(Source)) b += 4 Put16(buf[b:], X) b += 2 Put16(buf[b:], Y) b += 2 return buf } // Request RenderSetPictureTransform // size: 44 type RenderSetPictureTransformCookie struct { *cookie } // Write request to wire for RenderSetPictureTransform func (c *Conn) RenderSetPictureTransform(Picture Id, Transform RenderTransform) RenderSetPictureTransformCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderSetPictureTransformRequest(Picture, Transform), cookie) return RenderSetPictureTransformCookie{cookie} } func (c *Conn) RenderSetPictureTransformChecked(Picture Id, Transform RenderTransform) RenderSetPictureTransformCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderSetPictureTransformRequest(Picture, Transform), cookie) return RenderSetPictureTransformCookie{cookie} } func (cook RenderSetPictureTransformCookie) Check() error { return cook.check() } // Write request to wire for RenderSetPictureTransform func (c *Conn) renderSetPictureTransformRequest(Picture Id, Transform RenderTransform) []byte { size := 44 b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 28 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Picture)) b += 4 { structBytes := Transform.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return buf } // Request RenderQueryFilters // size: 8 type RenderQueryFiltersCookie struct { *cookie } func (c *Conn) RenderQueryFilters(Drawable Id) RenderQueryFiltersCookie { cookie := c.newCookie(true, true) c.newRequest(c.renderQueryFiltersRequest(Drawable), cookie) return RenderQueryFiltersCookie{cookie} } func (c *Conn) RenderQueryFiltersUnchecked(Drawable Id) RenderQueryFiltersCookie { cookie := c.newCookie(false, true) c.newRequest(c.renderQueryFiltersRequest(Drawable), cookie) return RenderQueryFiltersCookie{cookie} } // Request reply for RenderQueryFilters // size: ((32 + pad((int(NumAliases) * 2))) + StrListSize(Filters)) type RenderQueryFiltersReply struct { Sequence uint16 Length uint32 // padding: 1 bytes NumAliases uint32 NumFilters uint32 // padding: 16 bytes Aliases []uint16 // size: pad((int(NumAliases) * 2)) Filters []Str // size: StrListSize(Filters) } // Waits and reads reply data from request RenderQueryFilters func (cook RenderQueryFiltersCookie) Reply() (*RenderQueryFiltersReply, error) { buf, err := cook.reply() if err != nil { return nil, err } if buf == nil { return nil, nil } return renderQueryFiltersReply(buf), nil } // Read reply into structure from buffer for RenderQueryFilters func renderQueryFiltersReply(buf []byte) *RenderQueryFiltersReply { v := new(RenderQueryFiltersReply) b := 1 // skip reply determinant b += 1 // padding v.Sequence = Get16(buf[b:]) b += 2 v.Length = Get32(buf[b:]) // 4-byte units b += 4 v.NumAliases = Get32(buf[b:]) b += 4 v.NumFilters = Get32(buf[b:]) b += 4 b += 16 // padding v.Aliases = make([]uint16, v.NumAliases) for i := 0; i < int(v.NumAliases); i++ { v.Aliases[i] = Get16(buf[b:]) b += 2 } b = pad(b) v.Filters = make([]Str, v.NumFilters) b += ReadStrList(buf[b:], v.Filters) return v } func (cook RenderQueryFiltersCookie) Check() error { return cook.check() } // Write request to wire for RenderQueryFilters func (c *Conn) renderQueryFiltersRequest(Drawable Id) []byte { size := 8 b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 29 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Drawable)) b += 4 return buf } // Request RenderSetPictureFilter // size: pad(((12 + pad((int(FilterLen) * 1))) + pad((len(Values) * 4)))) type RenderSetPictureFilterCookie struct { *cookie } // Write request to wire for RenderSetPictureFilter func (c *Conn) RenderSetPictureFilter(Picture Id, FilterLen uint16, Filter string, Values []RenderFixed) RenderSetPictureFilterCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderSetPictureFilterRequest(Picture, FilterLen, Filter, Values), cookie) return RenderSetPictureFilterCookie{cookie} } func (c *Conn) RenderSetPictureFilterChecked(Picture Id, FilterLen uint16, Filter string, Values []RenderFixed) RenderSetPictureFilterCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderSetPictureFilterRequest(Picture, FilterLen, Filter, Values), cookie) return RenderSetPictureFilterCookie{cookie} } func (cook RenderSetPictureFilterCookie) Check() error { return cook.check() } // Write request to wire for RenderSetPictureFilter func (c *Conn) renderSetPictureFilterRequest(Picture Id, FilterLen uint16, Filter string, Values []RenderFixed) []byte { size := pad(((12 + pad((int(FilterLen) * 1))) + pad((len(Values) * 4)))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 30 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Picture)) b += 4 Put16(buf[b:], FilterLen) b += 2 b += 2 // padding copy(buf[b:], Filter[:FilterLen]) b += pad(int(FilterLen)) for i := 0; i < int(len(Values)); i++ { Put32(buf[b:], uint32(Values[i])) b += 4 } b = pad(b) return buf } // Request RenderCreateAnimCursor // size: pad((8 + pad((len(Cursors) * 8)))) type RenderCreateAnimCursorCookie struct { *cookie } // Write request to wire for RenderCreateAnimCursor func (c *Conn) RenderCreateAnimCursor(Cid Id, Cursors []RenderAnimcursorelt) RenderCreateAnimCursorCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderCreateAnimCursorRequest(Cid, Cursors), cookie) return RenderCreateAnimCursorCookie{cookie} } func (c *Conn) RenderCreateAnimCursorChecked(Cid Id, Cursors []RenderAnimcursorelt) RenderCreateAnimCursorCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderCreateAnimCursorRequest(Cid, Cursors), cookie) return RenderCreateAnimCursorCookie{cookie} } func (cook RenderCreateAnimCursorCookie) Check() error { return cook.check() } // Write request to wire for RenderCreateAnimCursor func (c *Conn) renderCreateAnimCursorRequest(Cid Id, Cursors []RenderAnimcursorelt) []byte { size := pad((8 + pad((len(Cursors) * 8)))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 31 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Cid)) b += 4 b += RenderAnimcursoreltListBytes(buf[b:], Cursors) return buf } // Request RenderAddTraps // size: pad((12 + pad((len(Traps) * 24)))) type RenderAddTrapsCookie struct { *cookie } // Write request to wire for RenderAddTraps func (c *Conn) RenderAddTraps(Picture Id, XOff int16, YOff int16, Traps []RenderTrap) RenderAddTrapsCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderAddTrapsRequest(Picture, XOff, YOff, Traps), cookie) return RenderAddTrapsCookie{cookie} } func (c *Conn) RenderAddTrapsChecked(Picture Id, XOff int16, YOff int16, Traps []RenderTrap) RenderAddTrapsCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderAddTrapsRequest(Picture, XOff, YOff, Traps), cookie) return RenderAddTrapsCookie{cookie} } func (cook RenderAddTrapsCookie) Check() error { return cook.check() } // Write request to wire for RenderAddTraps func (c *Conn) renderAddTrapsRequest(Picture Id, XOff int16, YOff int16, Traps []RenderTrap) []byte { size := pad((12 + pad((len(Traps) * 24)))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 32 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Picture)) b += 4 Put16(buf[b:], uint16(XOff)) b += 2 Put16(buf[b:], uint16(YOff)) b += 2 b += RenderTrapListBytes(buf[b:], Traps) return buf } // Request RenderCreateSolidFill // size: 16 type RenderCreateSolidFillCookie struct { *cookie } // Write request to wire for RenderCreateSolidFill func (c *Conn) RenderCreateSolidFill(Picture Id, Color RenderColor) RenderCreateSolidFillCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderCreateSolidFillRequest(Picture, Color), cookie) return RenderCreateSolidFillCookie{cookie} } func (c *Conn) RenderCreateSolidFillChecked(Picture Id, Color RenderColor) RenderCreateSolidFillCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderCreateSolidFillRequest(Picture, Color), cookie) return RenderCreateSolidFillCookie{cookie} } func (cook RenderCreateSolidFillCookie) Check() error { return cook.check() } // Write request to wire for RenderCreateSolidFill func (c *Conn) renderCreateSolidFillRequest(Picture Id, Color RenderColor) []byte { size := 16 b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 33 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Picture)) b += 4 { structBytes := Color.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return buf } // Request RenderCreateLinearGradient // size: pad(((28 + pad((int(NumStops) * 4))) + pad((int(NumStops) * 8)))) type RenderCreateLinearGradientCookie struct { *cookie } // Write request to wire for RenderCreateLinearGradient func (c *Conn) RenderCreateLinearGradient(Picture Id, P1 RenderPointfix, P2 RenderPointfix, NumStops uint32, Stops []RenderFixed, Colors []RenderColor) RenderCreateLinearGradientCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderCreateLinearGradientRequest(Picture, P1, P2, NumStops, Stops, Colors), cookie) return RenderCreateLinearGradientCookie{cookie} } func (c *Conn) RenderCreateLinearGradientChecked(Picture Id, P1 RenderPointfix, P2 RenderPointfix, NumStops uint32, Stops []RenderFixed, Colors []RenderColor) RenderCreateLinearGradientCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderCreateLinearGradientRequest(Picture, P1, P2, NumStops, Stops, Colors), cookie) return RenderCreateLinearGradientCookie{cookie} } func (cook RenderCreateLinearGradientCookie) Check() error { return cook.check() } // Write request to wire for RenderCreateLinearGradient func (c *Conn) renderCreateLinearGradientRequest(Picture Id, P1 RenderPointfix, P2 RenderPointfix, NumStops uint32, Stops []RenderFixed, Colors []RenderColor) []byte { size := pad(((28 + pad((int(NumStops) * 4))) + pad((int(NumStops) * 8)))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 34 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Picture)) b += 4 { structBytes := P1.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } { structBytes := P2.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } Put32(buf[b:], NumStops) b += 4 for i := 0; i < int(NumStops); i++ { Put32(buf[b:], uint32(Stops[i])) b += 4 } b = pad(b) b += RenderColorListBytes(buf[b:], Colors) return buf } // Request RenderCreateRadialGradient // size: pad(((36 + pad((int(NumStops) * 4))) + pad((int(NumStops) * 8)))) type RenderCreateRadialGradientCookie struct { *cookie } // Write request to wire for RenderCreateRadialGradient func (c *Conn) RenderCreateRadialGradient(Picture Id, Inner RenderPointfix, Outer RenderPointfix, InnerRadius RenderFixed, OuterRadius RenderFixed, NumStops uint32, Stops []RenderFixed, Colors []RenderColor) RenderCreateRadialGradientCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderCreateRadialGradientRequest(Picture, Inner, Outer, InnerRadius, OuterRadius, NumStops, Stops, Colors), cookie) return RenderCreateRadialGradientCookie{cookie} } func (c *Conn) RenderCreateRadialGradientChecked(Picture Id, Inner RenderPointfix, Outer RenderPointfix, InnerRadius RenderFixed, OuterRadius RenderFixed, NumStops uint32, Stops []RenderFixed, Colors []RenderColor) RenderCreateRadialGradientCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderCreateRadialGradientRequest(Picture, Inner, Outer, InnerRadius, OuterRadius, NumStops, Stops, Colors), cookie) return RenderCreateRadialGradientCookie{cookie} } func (cook RenderCreateRadialGradientCookie) Check() error { return cook.check() } // Write request to wire for RenderCreateRadialGradient func (c *Conn) renderCreateRadialGradientRequest(Picture Id, Inner RenderPointfix, Outer RenderPointfix, InnerRadius RenderFixed, OuterRadius RenderFixed, NumStops uint32, Stops []RenderFixed, Colors []RenderColor) []byte { size := pad(((36 + pad((int(NumStops) * 4))) + pad((int(NumStops) * 8)))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 35 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Picture)) b += 4 { structBytes := Inner.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } { structBytes := Outer.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } Put32(buf[b:], uint32(InnerRadius)) b += 4 Put32(buf[b:], uint32(OuterRadius)) b += 4 Put32(buf[b:], NumStops) b += 4 for i := 0; i < int(NumStops); i++ { Put32(buf[b:], uint32(Stops[i])) b += 4 } b = pad(b) b += RenderColorListBytes(buf[b:], Colors) return buf } // Request RenderCreateConicalGradient // size: pad(((24 + pad((int(NumStops) * 4))) + pad((int(NumStops) * 8)))) type RenderCreateConicalGradientCookie struct { *cookie } // Write request to wire for RenderCreateConicalGradient func (c *Conn) RenderCreateConicalGradient(Picture Id, Center RenderPointfix, Angle RenderFixed, NumStops uint32, Stops []RenderFixed, Colors []RenderColor) RenderCreateConicalGradientCookie { cookie := c.newCookie(false, false) c.newRequest(c.renderCreateConicalGradientRequest(Picture, Center, Angle, NumStops, Stops, Colors), cookie) return RenderCreateConicalGradientCookie{cookie} } func (c *Conn) RenderCreateConicalGradientChecked(Picture Id, Center RenderPointfix, Angle RenderFixed, NumStops uint32, Stops []RenderFixed, Colors []RenderColor) RenderCreateConicalGradientCookie { cookie := c.newCookie(true, false) c.newRequest(c.renderCreateConicalGradientRequest(Picture, Center, Angle, NumStops, Stops, Colors), cookie) return RenderCreateConicalGradientCookie{cookie} } func (cook RenderCreateConicalGradientCookie) Check() error { return cook.check() } // Write request to wire for RenderCreateConicalGradient func (c *Conn) renderCreateConicalGradientRequest(Picture Id, Center RenderPointfix, Angle RenderFixed, NumStops uint32, Stops []RenderFixed, Colors []RenderColor) []byte { size := pad(((24 + pad((int(NumStops) * 4))) + pad((int(NumStops) * 8)))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["RENDER"] b += 1 buf[b] = 36 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Picture)) b += 4 { structBytes := Center.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } Put32(buf[b:], uint32(Angle)) b += 4 Put32(buf[b:], NumStops) b += 4 for i := 0; i < int(NumStops); i++ { Put32(buf[b:], uint32(Stops[i])) b += 4 } b = pad(b) b += RenderColorListBytes(buf[b:], Colors) return buf }