diff options
| author | Andrew Gallant <jamslam@gmail.com> | 2013-08-11 20:43:26 -0400 | 
|---|---|---|
| committer | Přemysl Janouch <p@janouch.name> | 2018-09-08 16:49:17 +0200 | 
| commit | 0685fb57e14104ee4ad9f70ec94f787a9a22c028 (patch) | |
| tree | c52429c82379c154c95dbfafcfc52460ec9168c0 /nexgb/res | |
| parent | 4b20ffaf4f4cc756832a6d064d5dfe182f16b0e9 (diff) | |
| download | haven-0685fb57e14104ee4ad9f70ec94f787a9a22c028.tar.gz haven-0685fb57e14104ee4ad9f70ec94f787a9a22c028.tar.xz haven-0685fb57e14104ee4ad9f70ec94f787a9a22c028.zip | |
Update to latest xproto XML.
Diffstat (limited to 'nexgb/res')
| -rw-r--r-- | nexgb/res/res.go | 318 | 
1 files changed, 159 insertions, 159 deletions
| diff --git a/nexgb/res/res.go b/nexgb/res/res.go index cbbd8cc..671f691 100644 --- a/nexgb/res/res.go +++ b/nexgb/res/res.go @@ -2,7 +2,7 @@  package res  /* -	This file was generated by res.xml on Jun 5 2012 12:11:59am EDT. +	This file was generated by res.xml on Aug 11 2013 8:39:43pm EDT.  	This file is automatically generated. Edit at your peril!  */ @@ -40,30 +40,6 @@ func init() {  	xgb.NewExtErrorFuncs["X-Resource"] = make(map[int]xgb.NewErrorFun)  } -// 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 'Card8' - -// Skipping definition for base type 'Int16' - -// Skipping definition for base type 'Int32' - -// Skipping definition for base type 'Void' - -// Skipping definition for base type 'Byte' - -// Skipping definition for base type 'Int8' -  type Client struct {  	ResourceBase uint32  	ResourceMask uint32 @@ -172,44 +148,68 @@ func TypeListBytes(buf []byte, list []Type) int {  	return b  } -// QueryVersionCookie is a cookie used only for QueryVersion requests. -type QueryVersionCookie struct { +// Skipping definition for base type 'Bool' + +// Skipping definition for base type 'Byte' + +// Skipping definition for base type 'Card8' + +// Skipping definition for base type 'Char' + +// Skipping definition for base type 'Void' + +// Skipping definition for base type 'Double' + +// Skipping definition for base type 'Float' + +// Skipping definition for base type 'Int16' + +// Skipping definition for base type 'Int32' + +// Skipping definition for base type 'Int8' + +// Skipping definition for base type 'Card16' + +// Skipping definition for base type 'Card32' + +// QueryClientPixmapBytesCookie is a cookie used only for QueryClientPixmapBytes requests. +type QueryClientPixmapBytesCookie 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, ClientMajor byte, ClientMinor byte) QueryVersionCookie { +// QueryClientPixmapBytes sends a checked request. +// If an error occurs, it will be returned with the reply by calling QueryClientPixmapBytesCookie.Reply() +func QueryClientPixmapBytes(c *xgb.Conn, Xid uint32) QueryClientPixmapBytesCookie {  	if _, ok := c.Extensions["X-RESOURCE"]; !ok { -		panic("Cannot issue request 'QueryVersion' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.") +		panic("Cannot issue request 'QueryClientPixmapBytes' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.")  	}  	cookie := c.NewCookie(true, true) -	c.NewRequest(queryVersionRequest(c, ClientMajor, ClientMinor), cookie) -	return QueryVersionCookie{cookie} +	c.NewRequest(queryClientPixmapBytesRequest(c, Xid), cookie) +	return QueryClientPixmapBytesCookie{cookie}  } -// QueryVersionUnchecked sends an unchecked request. +// QueryClientPixmapBytesUnchecked sends an unchecked request.  // If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent. -func QueryVersionUnchecked(c *xgb.Conn, ClientMajor byte, ClientMinor byte) QueryVersionCookie { +func QueryClientPixmapBytesUnchecked(c *xgb.Conn, Xid uint32) QueryClientPixmapBytesCookie {  	if _, ok := c.Extensions["X-RESOURCE"]; !ok { -		panic("Cannot issue request 'QueryVersion' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.") +		panic("Cannot issue request 'QueryClientPixmapBytes' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.")  	}  	cookie := c.NewCookie(false, true) -	c.NewRequest(queryVersionRequest(c, ClientMajor, ClientMinor), cookie) -	return QueryVersionCookie{cookie} +	c.NewRequest(queryClientPixmapBytesRequest(c, Xid), cookie) +	return QueryClientPixmapBytesCookie{cookie}  } -// QueryVersionReply represents the data returned from a QueryVersion request. -type QueryVersionReply struct { +// QueryClientPixmapBytesReply represents the data returned from a QueryClientPixmapBytes request. +type QueryClientPixmapBytesReply struct {  	Sequence uint16 // sequence number of the request for this reply  	Length   uint32 // number of bytes in this reply  	// padding: 1 bytes -	ServerMajor uint16 -	ServerMinor uint16 +	Bytes         uint32 +	BytesOverflow uint32  } -// Reply blocks and returns the reply data for a QueryVersion request. -func (cook QueryVersionCookie) Reply() (*QueryVersionReply, error) { +// Reply blocks and returns the reply data for a QueryClientPixmapBytes request. +func (cook QueryClientPixmapBytesCookie) Reply() (*QueryClientPixmapBytesReply, error) {  	buf, err := cook.Cookie.Reply()  	if err != nil {  		return nil, err @@ -217,12 +217,12 @@ func (cook QueryVersionCookie) Reply() (*QueryVersionReply, error) {  	if buf == nil {  		return nil, nil  	} -	return queryVersionReply(buf), nil +	return queryClientPixmapBytesReply(buf), nil  } -// queryVersionReply reads a byte slice into a QueryVersionReply value. -func queryVersionReply(buf []byte) *QueryVersionReply { -	v := new(QueryVersionReply) +// queryClientPixmapBytesReply reads a byte slice into a QueryClientPixmapBytesReply value. +func queryClientPixmapBytesReply(buf []byte) *QueryClientPixmapBytesReply { +	v := new(QueryClientPixmapBytesReply)  	b := 1 // skip reply determinant  	b += 1 // padding @@ -233,18 +233,18 @@ func queryVersionReply(buf []byte) *QueryVersionReply {  	v.Length = xgb.Get32(buf[b:]) // 4-byte units  	b += 4 -	v.ServerMajor = xgb.Get16(buf[b:]) -	b += 2 +	v.Bytes = xgb.Get32(buf[b:]) +	b += 4 -	v.ServerMinor = xgb.Get16(buf[b:]) -	b += 2 +	v.BytesOverflow = xgb.Get32(buf[b:]) +	b += 4  	return v  } -// Write request to wire for QueryVersion -// queryVersionRequest writes a QueryVersion request to a byte slice. -func queryVersionRequest(c *xgb.Conn, ClientMajor byte, ClientMinor byte) []byte { +// Write request to wire for QueryClientPixmapBytes +// queryClientPixmapBytesRequest writes a QueryClientPixmapBytes request to a byte slice. +func queryClientPixmapBytesRequest(c *xgb.Conn, Xid uint32) []byte {  	size := 8  	b := 0  	buf := make([]byte, size) @@ -252,60 +252,57 @@ func queryVersionRequest(c *xgb.Conn, ClientMajor byte, ClientMinor byte) []byte  	buf[b] = c.Extensions["X-RESOURCE"]  	b += 1 -	buf[b] = 0 // request opcode +	buf[b] = 3 // request opcode  	b += 1  	xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units  	b += 2 -	buf[b] = ClientMajor -	b += 1 - -	buf[b] = ClientMinor -	b += 1 +	xgb.Put32(buf[b:], Xid) +	b += 4  	return buf  } -// QueryClientsCookie is a cookie used only for QueryClients requests. -type QueryClientsCookie struct { +// QueryClientResourcesCookie is a cookie used only for QueryClientResources requests. +type QueryClientResourcesCookie struct {  	*xgb.Cookie  } -// QueryClients sends a checked request. -// If an error occurs, it will be returned with the reply by calling QueryClientsCookie.Reply() -func QueryClients(c *xgb.Conn) QueryClientsCookie { +// QueryClientResources sends a checked request. +// If an error occurs, it will be returned with the reply by calling QueryClientResourcesCookie.Reply() +func QueryClientResources(c *xgb.Conn, Xid uint32) QueryClientResourcesCookie {  	if _, ok := c.Extensions["X-RESOURCE"]; !ok { -		panic("Cannot issue request 'QueryClients' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.") +		panic("Cannot issue request 'QueryClientResources' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.")  	}  	cookie := c.NewCookie(true, true) -	c.NewRequest(queryClientsRequest(c), cookie) -	return QueryClientsCookie{cookie} +	c.NewRequest(queryClientResourcesRequest(c, Xid), cookie) +	return QueryClientResourcesCookie{cookie}  } -// QueryClientsUnchecked sends an unchecked request. +// QueryClientResourcesUnchecked sends an unchecked request.  // If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent. -func QueryClientsUnchecked(c *xgb.Conn) QueryClientsCookie { +func QueryClientResourcesUnchecked(c *xgb.Conn, Xid uint32) QueryClientResourcesCookie {  	if _, ok := c.Extensions["X-RESOURCE"]; !ok { -		panic("Cannot issue request 'QueryClients' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.") +		panic("Cannot issue request 'QueryClientResources' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.")  	}  	cookie := c.NewCookie(false, true) -	c.NewRequest(queryClientsRequest(c), cookie) -	return QueryClientsCookie{cookie} +	c.NewRequest(queryClientResourcesRequest(c, Xid), cookie) +	return QueryClientResourcesCookie{cookie}  } -// QueryClientsReply represents the data returned from a QueryClients request. -type QueryClientsReply struct { +// QueryClientResourcesReply represents the data returned from a QueryClientResources request. +type QueryClientResourcesReply struct {  	Sequence uint16 // sequence number of the request for this reply  	Length   uint32 // number of bytes in this reply  	// padding: 1 bytes -	NumClients uint32 +	NumTypes uint32  	// padding: 20 bytes -	Clients []Client // size: xgb.Pad((int(NumClients) * 8)) +	Types []Type // size: xgb.Pad((int(NumTypes) * 8))  } -// Reply blocks and returns the reply data for a QueryClients request. -func (cook QueryClientsCookie) Reply() (*QueryClientsReply, error) { +// Reply blocks and returns the reply data for a QueryClientResources request. +func (cook QueryClientResourcesCookie) Reply() (*QueryClientResourcesReply, error) {  	buf, err := cook.Cookie.Reply()  	if err != nil {  		return nil, err @@ -313,12 +310,12 @@ func (cook QueryClientsCookie) Reply() (*QueryClientsReply, error) {  	if buf == nil {  		return nil, nil  	} -	return queryClientsReply(buf), nil +	return queryClientResourcesReply(buf), nil  } -// queryClientsReply reads a byte slice into a QueryClientsReply value. -func queryClientsReply(buf []byte) *QueryClientsReply { -	v := new(QueryClientsReply) +// queryClientResourcesReply reads a byte slice into a QueryClientResourcesReply value. +func queryClientResourcesReply(buf []byte) *QueryClientResourcesReply { +	v := new(QueryClientResourcesReply)  	b := 1 // skip reply determinant  	b += 1 // padding @@ -329,75 +326,78 @@ func queryClientsReply(buf []byte) *QueryClientsReply {  	v.Length = xgb.Get32(buf[b:]) // 4-byte units  	b += 4 -	v.NumClients = xgb.Get32(buf[b:]) +	v.NumTypes = xgb.Get32(buf[b:])  	b += 4  	b += 20 // padding -	v.Clients = make([]Client, v.NumClients) -	b += ClientReadList(buf[b:], v.Clients) +	v.Types = make([]Type, v.NumTypes) +	b += TypeReadList(buf[b:], v.Types)  	return v  } -// Write request to wire for QueryClients -// queryClientsRequest writes a QueryClients request to a byte slice. -func queryClientsRequest(c *xgb.Conn) []byte { -	size := 4 +// Write request to wire for QueryClientResources +// queryClientResourcesRequest writes a QueryClientResources request to a byte slice. +func queryClientResourcesRequest(c *xgb.Conn, Xid uint32) []byte { +	size := 8  	b := 0  	buf := make([]byte, size)  	buf[b] = c.Extensions["X-RESOURCE"]  	b += 1 -	buf[b] = 1 // request opcode +	buf[b] = 2 // request opcode  	b += 1  	xgb.Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units  	b += 2 +	xgb.Put32(buf[b:], Xid) +	b += 4 +  	return buf  } -// QueryClientResourcesCookie is a cookie used only for QueryClientResources requests. -type QueryClientResourcesCookie struct { +// QueryClientsCookie is a cookie used only for QueryClients requests. +type QueryClientsCookie struct {  	*xgb.Cookie  } -// QueryClientResources sends a checked request. -// If an error occurs, it will be returned with the reply by calling QueryClientResourcesCookie.Reply() -func QueryClientResources(c *xgb.Conn, Xid uint32) QueryClientResourcesCookie { +// QueryClients sends a checked request. +// If an error occurs, it will be returned with the reply by calling QueryClientsCookie.Reply() +func QueryClients(c *xgb.Conn) QueryClientsCookie {  	if _, ok := c.Extensions["X-RESOURCE"]; !ok { -		panic("Cannot issue request 'QueryClientResources' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.") +		panic("Cannot issue request 'QueryClients' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.")  	}  	cookie := c.NewCookie(true, true) -	c.NewRequest(queryClientResourcesRequest(c, Xid), cookie) -	return QueryClientResourcesCookie{cookie} +	c.NewRequest(queryClientsRequest(c), cookie) +	return QueryClientsCookie{cookie}  } -// QueryClientResourcesUnchecked sends an unchecked request. +// QueryClientsUnchecked sends an unchecked request.  // If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent. -func QueryClientResourcesUnchecked(c *xgb.Conn, Xid uint32) QueryClientResourcesCookie { +func QueryClientsUnchecked(c *xgb.Conn) QueryClientsCookie {  	if _, ok := c.Extensions["X-RESOURCE"]; !ok { -		panic("Cannot issue request 'QueryClientResources' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.") +		panic("Cannot issue request 'QueryClients' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.")  	}  	cookie := c.NewCookie(false, true) -	c.NewRequest(queryClientResourcesRequest(c, Xid), cookie) -	return QueryClientResourcesCookie{cookie} +	c.NewRequest(queryClientsRequest(c), cookie) +	return QueryClientsCookie{cookie}  } -// QueryClientResourcesReply represents the data returned from a QueryClientResources request. -type QueryClientResourcesReply struct { +// QueryClientsReply represents the data returned from a QueryClients request. +type QueryClientsReply struct {  	Sequence uint16 // sequence number of the request for this reply  	Length   uint32 // number of bytes in this reply  	// padding: 1 bytes -	NumTypes uint32 +	NumClients uint32  	// padding: 20 bytes -	Types []Type // size: xgb.Pad((int(NumTypes) * 8)) +	Clients []Client // size: xgb.Pad((int(NumClients) * 8))  } -// Reply blocks and returns the reply data for a QueryClientResources request. -func (cook QueryClientResourcesCookie) Reply() (*QueryClientResourcesReply, error) { +// Reply blocks and returns the reply data for a QueryClients request. +func (cook QueryClientsCookie) Reply() (*QueryClientsReply, error) {  	buf, err := cook.Cookie.Reply()  	if err != nil {  		return nil, err @@ -405,12 +405,12 @@ func (cook QueryClientResourcesCookie) Reply() (*QueryClientResourcesReply, erro  	if buf == nil {  		return nil, nil  	} -	return queryClientResourcesReply(buf), nil +	return queryClientsReply(buf), nil  } -// queryClientResourcesReply reads a byte slice into a QueryClientResourcesReply value. -func queryClientResourcesReply(buf []byte) *QueryClientResourcesReply { -	v := new(QueryClientResourcesReply) +// queryClientsReply reads a byte slice into a QueryClientsReply value. +func queryClientsReply(buf []byte) *QueryClientsReply { +	v := new(QueryClientsReply)  	b := 1 // skip reply determinant  	b += 1 // padding @@ -421,77 +421,74 @@ func queryClientResourcesReply(buf []byte) *QueryClientResourcesReply {  	v.Length = xgb.Get32(buf[b:]) // 4-byte units  	b += 4 -	v.NumTypes = xgb.Get32(buf[b:]) +	v.NumClients = xgb.Get32(buf[b:])  	b += 4  	b += 20 // padding -	v.Types = make([]Type, v.NumTypes) -	b += TypeReadList(buf[b:], v.Types) +	v.Clients = make([]Client, v.NumClients) +	b += ClientReadList(buf[b:], v.Clients)  	return v  } -// Write request to wire for QueryClientResources -// queryClientResourcesRequest writes a QueryClientResources request to a byte slice. -func queryClientResourcesRequest(c *xgb.Conn, Xid uint32) []byte { -	size := 8 +// Write request to wire for QueryClients +// queryClientsRequest writes a QueryClients request to a byte slice. +func queryClientsRequest(c *xgb.Conn) []byte { +	size := 4  	b := 0  	buf := make([]byte, size)  	buf[b] = c.Extensions["X-RESOURCE"]  	b += 1 -	buf[b] = 2 // 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:], Xid) -	b += 4 -  	return buf  } -// QueryClientPixmapBytesCookie is a cookie used only for QueryClientPixmapBytes requests. -type QueryClientPixmapBytesCookie struct { +// QueryVersionCookie is a cookie used only for QueryVersion requests. +type QueryVersionCookie struct {  	*xgb.Cookie  } -// QueryClientPixmapBytes sends a checked request. -// If an error occurs, it will be returned with the reply by calling QueryClientPixmapBytesCookie.Reply() -func QueryClientPixmapBytes(c *xgb.Conn, Xid uint32) QueryClientPixmapBytesCookie { +// 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, ClientMajor byte, ClientMinor byte) QueryVersionCookie {  	if _, ok := c.Extensions["X-RESOURCE"]; !ok { -		panic("Cannot issue request 'QueryClientPixmapBytes' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.") +		panic("Cannot issue request 'QueryVersion' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.")  	}  	cookie := c.NewCookie(true, true) -	c.NewRequest(queryClientPixmapBytesRequest(c, Xid), cookie) -	return QueryClientPixmapBytesCookie{cookie} +	c.NewRequest(queryVersionRequest(c, ClientMajor, ClientMinor), cookie) +	return QueryVersionCookie{cookie}  } -// QueryClientPixmapBytesUnchecked sends an unchecked request. +// QueryVersionUnchecked sends an unchecked request.  // If an error occurs, it can only be retrieved using xgb.WaitForEvent or xgb.PollForEvent. -func QueryClientPixmapBytesUnchecked(c *xgb.Conn, Xid uint32) QueryClientPixmapBytesCookie { +func QueryVersionUnchecked(c *xgb.Conn, ClientMajor byte, ClientMinor byte) QueryVersionCookie {  	if _, ok := c.Extensions["X-RESOURCE"]; !ok { -		panic("Cannot issue request 'QueryClientPixmapBytes' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.") +		panic("Cannot issue request 'QueryVersion' using the uninitialized extension 'X-Resource'. res.Init(connObj) must be called first.")  	}  	cookie := c.NewCookie(false, true) -	c.NewRequest(queryClientPixmapBytesRequest(c, Xid), cookie) -	return QueryClientPixmapBytesCookie{cookie} +	c.NewRequest(queryVersionRequest(c, ClientMajor, ClientMinor), cookie) +	return QueryVersionCookie{cookie}  } -// QueryClientPixmapBytesReply represents the data returned from a QueryClientPixmapBytes request. -type QueryClientPixmapBytesReply struct { +// 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 -	Bytes         uint32 -	BytesOverflow uint32 +	ServerMajor uint16 +	ServerMinor uint16  } -// Reply blocks and returns the reply data for a QueryClientPixmapBytes request. -func (cook QueryClientPixmapBytesCookie) Reply() (*QueryClientPixmapBytesReply, error) { +// 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 @@ -499,12 +496,12 @@ func (cook QueryClientPixmapBytesCookie) Reply() (*QueryClientPixmapBytesReply,  	if buf == nil {  		return nil, nil  	} -	return queryClientPixmapBytesReply(buf), nil +	return queryVersionReply(buf), nil  } -// queryClientPixmapBytesReply reads a byte slice into a QueryClientPixmapBytesReply value. -func queryClientPixmapBytesReply(buf []byte) *QueryClientPixmapBytesReply { -	v := new(QueryClientPixmapBytesReply) +// 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 @@ -515,18 +512,18 @@ func queryClientPixmapBytesReply(buf []byte) *QueryClientPixmapBytesReply {  	v.Length = xgb.Get32(buf[b:]) // 4-byte units  	b += 4 -	v.Bytes = xgb.Get32(buf[b:]) -	b += 4 +	v.ServerMajor = xgb.Get16(buf[b:]) +	b += 2 -	v.BytesOverflow = xgb.Get32(buf[b:]) -	b += 4 +	v.ServerMinor = xgb.Get16(buf[b:]) +	b += 2  	return v  } -// Write request to wire for QueryClientPixmapBytes -// queryClientPixmapBytesRequest writes a QueryClientPixmapBytes request to a byte slice. -func queryClientPixmapBytesRequest(c *xgb.Conn, Xid uint32) []byte { +// Write request to wire for QueryVersion +// queryVersionRequest writes a QueryVersion request to a byte slice. +func queryVersionRequest(c *xgb.Conn, ClientMajor byte, ClientMinor byte) []byte {  	size := 8  	b := 0  	buf := make([]byte, size) @@ -534,14 +531,17 @@ func queryClientPixmapBytesRequest(c *xgb.Conn, Xid uint32) []byte {  	buf[b] = c.Extensions["X-RESOURCE"]  	b += 1 -	buf[b] = 3 // request opcode +	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:], Xid) -	b += 4 +	buf[b] = ClientMajor +	b += 1 + +	buf[b] = ClientMinor +	b += 1  	return buf  } | 
