haven/nexgb
Andrew Gallant 2dc9914b5e
When writing, don't pad the length of bytes produced from inner
structs/unions. Each type should take care of its own padding.

Close #14.
2018-09-08 16:49:20 +02:00
..
bigreq Don't needlessly change source files every time. 2018-09-08 16:49:18 +02:00
composite Don't needlessly change source files every time. 2018-09-08 16:49:18 +02:00
damage When writing, don't pad the length of bytes produced from inner 2018-09-08 16:49:20 +02:00
dpms Don't needlessly change source files every time. 2018-09-08 16:49:18 +02:00
dri2 Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
examples A pathological example for profiling purposes. Use 'make test'. 2018-09-08 16:49:13 +02:00
ge Don't needlessly change source files every time. 2018-09-08 16:49:18 +02:00
glx Regenerate xgb with latest XML descriptions. 2018-09-08 16:49:20 +02:00
randr When writing, don't pad the length of bytes produced from inner 2018-09-08 16:49:20 +02:00
record When writing, don't pad the length of bytes produced from inner 2018-09-08 16:49:20 +02:00
render When writing, don't pad the length of bytes produced from inner 2018-09-08 16:49:20 +02:00
res When writing, don't pad the length of bytes produced from inner 2018-09-08 16:49:20 +02:00
screensaver Regenerate xgb with latest XML descriptions. 2018-09-08 16:49:20 +02:00
shape Don't needlessly change source files every time. 2018-09-08 16:49:18 +02:00
shm Regenerate xgb with latest XML descriptions. 2018-09-08 16:49:20 +02:00
xcmisc Don't needlessly change source files every time. 2018-09-08 16:49:18 +02:00
xevie When writing, don't pad the length of bytes produced from inner 2018-09-08 16:49:20 +02:00
xf86dri Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
xf86vidmode Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
xfixes When writing, don't pad the length of bytes produced from inner 2018-09-08 16:49:20 +02:00
xgbgen When writing, don't pad the length of bytes produced from inner 2018-09-08 16:49:20 +02:00
xinerama Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
xprint Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
xproto When writing, don't pad the length of bytes produced from inner 2018-09-08 16:49:20 +02:00
xselinux Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
xtest Don't needlessly change source files every time. 2018-09-08 16:49:18 +02:00
xv When writing, don't pad the length of bytes produced from inner 2018-09-08 16:49:20 +02:00
xvmc Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
.gitignore last commit before i tear everything down 2012-04-29 14:09:03 -04:00
AUTHORS initial commit. not currently in a working state. 2012-04-28 23:25:57 -04:00
CONTRIBUTORS initial commit. not currently in a working state. 2012-04-28 23:25:57 -04:00
LICENSE initial commit. not currently in a working state. 2012-04-28 23:25:57 -04:00
Makefile The `sync` and `xinput` extensions now use the `switch` field, which 2018-09-08 16:49:19 +02:00
README Tests were move to xproto package a long time ago. Update README. 2018-09-08 16:49:15 +02:00
STYLE Add some style guidelines. 2018-09-08 16:49:07 +02:00
auth.go auth: use encoding.binary 2012-05-28 17:58:32 -05:00
conn.go Export the logger (again) 2018-09-08 16:49:18 +02:00
cookie.go Doc fixes and stop exporting ReplyChecked and ReplyUnchecked 2018-09-08 16:49:15 +02:00
doc.go gofmt 2018-09-08 16:49:16 +02:00
help.go Doc fix. 2018-09-08 16:49:14 +02:00
sync.go docs 2012-05-12 21:36:31 -04:00
xgb.go Export the logger (again) 2018-09-08 16:49:18 +02:00

README

XGB is the X Go Binding, which is a low-level API to communicate with the
core X protocol and many of the X extensions. It is closely modeled after
XCB and xpyb.

It is thread safe and gets immediate improvement from parallelism when
GOMAXPROCS > 1. (See the benchmarks in xproto/xproto_test.go for evidence.)

Please see doc.go for more info.

Note that unless you know you need XGB, you can probably make your life
easier by using a slightly higher level library: xgbutil.

Quick Usage
===========
go get github.com/BurntSushi/xgb
go run go/path/src/github.com/BurntSushi/xgb/examples/create-window/main.go

BurntSushi's Fork
=================
I've forked the XGB repository from Google Code due to inactivty upstream.

Godoc documentation can be found here:
http://godoc.burntsushi.net/pkg/github.com/BurntSushi/xgb/

Much of the code has been rewritten in an effort to support thread safety
and multiple extensions. Namely, go_client.py has been thrown away in favor
of an xgbgen package.

The biggest parts that *haven't* been rewritten by me are the connection and
authentication handshakes. They're inherently messy, and there's really no
reason to re-work them. The rest of XGB has been completely rewritten.

I like to release my code under the WTFPL, but since I'm starting with someone
else's work, I'm leaving the original license/contributor/author information
in tact.

I suppose I can legitimately release xgbgen under the WTFPL. To be fair, it is
at least as complex as XGB itself. *sigh*

What follows is the original README:

XGB README
==========
XGB is the X protocol Go language Binding.

It is the Go equivalent of XCB, the X protocol C-language Binding
(http://xcb.freedesktop.org/).

Unless otherwise noted, the XGB source files are distributed
under the BSD-style license found in the LICENSE file.

Contributions should follow the same procedure as for the Go project:
http://golang.org/doc/contribute.html