// Code generated by xtgen; DO NOT EDIT. package shape import "bnema.dev/xturbo/xproto" import "encoding/binary" import "bnema.dev/xturbo" func QueryVersion(b *xturbo.Buf) xturbo.Seq { if b.Ext == nil { b.Fail(xturbo.ErrExtMissing) return 0 } major := b.Ext.Major(xturbo.ExtShape) if major == 0 { b.Fail(xturbo.ErrExtMissing) return 0 } p, seq := b.Request(major, 0, 0) if p == nil { return 0 } return seq } func Rectangles(b *xturbo.Buf, operation So, destinationKind Sk, ordering xproto.ClipOrdering, destinationWindow xproto.Window, xOffset int16, yOffset int16, rectangles []xproto.Rectangle) xturbo.Seq { size := 0 size += 1 size += 1 size += 1 size += 1 size += 4 size += 2 size += 2 size += len(rectangles) * 8 size = (size + 3) &^ 3 if b.Ext == nil { b.Fail(xturbo.ErrExtMissing) return 0 } major := b.Ext.Major(xturbo.ExtShape) if major == 0 { b.Fail(xturbo.ErrExtMissing) return 0 } p, seq := b.Request(major, 1, size) if p == nil { return 0 } off := 0 p[off:][0] = byte(operation) off += 1 p[off:][0] = byte(destinationKind) off += 1 p[off:][0] = byte(ordering) off += 1 off += 1 binary.LittleEndian.PutUint32(p[off:], uint32(destinationWindow)) off += 4 binary.LittleEndian.PutUint16(p[off:], uint16(xOffset)) off += 2 binary.LittleEndian.PutUint16(p[off:], uint16(yOffset)) off += 2 for i := range rectangles { rectangles[i].Put(p[off:]) off += 8 } return seq } func Mask(b *xturbo.Buf, operation So, destinationKind Sk, destinationWindow xproto.Window, xOffset int16, yOffset int16, sourceBitmap xproto.Pixmap) xturbo.Seq { if b.Ext == nil { b.Fail(xturbo.ErrExtMissing) return 0 } major := b.Ext.Major(xturbo.ExtShape) if major == 0 { b.Fail(xturbo.ErrExtMissing) return 0 } p, seq := b.Request(major, 2, 16) if p == nil { return 0 } p[0:][0] = byte(operation) p[1:][0] = byte(destinationKind) binary.LittleEndian.PutUint32(p[4:], uint32(destinationWindow)) binary.LittleEndian.PutUint16(p[8:], uint16(xOffset)) binary.LittleEndian.PutUint16(p[10:], uint16(yOffset)) binary.LittleEndian.PutUint32(p[12:], uint32(sourceBitmap)) return seq } func Combine(b *xturbo.Buf, operation So, destinationKind Sk, sourceKind Sk, destinationWindow xproto.Window, xOffset int16, yOffset int16, sourceWindow xproto.Window) xturbo.Seq { if b.Ext == nil { b.Fail(xturbo.ErrExtMissing) return 0 } major := b.Ext.Major(xturbo.ExtShape) if major == 0 { b.Fail(xturbo.ErrExtMissing) return 0 } p, seq := b.Request(major, 3, 16) if p == nil { return 0 } p[0:][0] = byte(operation) p[1:][0] = byte(destinationKind) p[2:][0] = byte(sourceKind) binary.LittleEndian.PutUint32(p[4:], uint32(destinationWindow)) binary.LittleEndian.PutUint16(p[8:], uint16(xOffset)) binary.LittleEndian.PutUint16(p[10:], uint16(yOffset)) binary.LittleEndian.PutUint32(p[12:], uint32(sourceWindow)) return seq } func Offset(b *xturbo.Buf, destinationKind Sk, destinationWindow xproto.Window, xOffset int16, yOffset int16) xturbo.Seq { if b.Ext == nil { b.Fail(xturbo.ErrExtMissing) return 0 } major := b.Ext.Major(xturbo.ExtShape) if major == 0 { b.Fail(xturbo.ErrExtMissing) return 0 } p, seq := b.Request(major, 4, 12) if p == nil { return 0 } p[0:][0] = byte(destinationKind) binary.LittleEndian.PutUint32(p[4:], uint32(destinationWindow)) binary.LittleEndian.PutUint16(p[8:], uint16(xOffset)) binary.LittleEndian.PutUint16(p[10:], uint16(yOffset)) return seq } func QueryExtents(b *xturbo.Buf, destinationWindow xproto.Window) xturbo.Seq { if b.Ext == nil { b.Fail(xturbo.ErrExtMissing) return 0 } major := b.Ext.Major(xturbo.ExtShape) if major == 0 { b.Fail(xturbo.ErrExtMissing) return 0 } p, seq := b.Request(major, 5, 4) if p == nil { return 0 } binary.LittleEndian.PutUint32(p[0:], uint32(destinationWindow)) return seq } func SelectInput(b *xturbo.Buf, destinationWindow xproto.Window, enable bool) xturbo.Seq { if b.Ext == nil { b.Fail(xturbo.ErrExtMissing) return 0 } major := b.Ext.Major(xturbo.ExtShape) if major == 0 { b.Fail(xturbo.ErrExtMissing) return 0 } p, seq := b.Request(major, 6, 8) if p == nil { return 0 } binary.LittleEndian.PutUint32(p[0:], uint32(destinationWindow)) if enable { p[4:][0] = 1 } else { p[4:][0] = 0 } return seq } func InputSelected(b *xturbo.Buf, destinationWindow xproto.Window) xturbo.Seq { if b.Ext == nil { b.Fail(xturbo.ErrExtMissing) return 0 } major := b.Ext.Major(xturbo.ExtShape) if major == 0 { b.Fail(xturbo.ErrExtMissing) return 0 } p, seq := b.Request(major, 7, 4) if p == nil { return 0 } binary.LittleEndian.PutUint32(p[0:], uint32(destinationWindow)) return seq } func GetRectangles(b *xturbo.Buf, window xproto.Window, sourceKind Sk) xturbo.Seq { if b.Ext == nil { b.Fail(xturbo.ErrExtMissing) return 0 } major := b.Ext.Major(xturbo.ExtShape) if major == 0 { b.Fail(xturbo.ErrExtMissing) return 0 } p, seq := b.Request(major, 8, 8) if p == nil { return 0 } binary.LittleEndian.PutUint32(p[0:], uint32(window)) p[4:][0] = byte(sourceKind) return seq }