diff options
Diffstat (limited to 'nexgb/examples/randr.go')
-rw-r--r-- | nexgb/examples/randr.go | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/nexgb/examples/randr.go b/nexgb/examples/randr.go new file mode 100644 index 0000000..064856d --- /dev/null +++ b/nexgb/examples/randr.go @@ -0,0 +1,48 @@ +package main + +import ( + "fmt" + "log" + + "github.com/BurntSushi/xgb" +) + +func main() { + X, _ := xgb.NewConn() + + err := X.RegisterExtension("randr") + if err != nil { + log.Fatal(err) + } + + resources, err := X.RandrGetScreenResources(X.DefaultScreen().Root).Reply() + if err != nil { + log.Fatal(err) + } + + for _, output := range resources.Outputs { + info, err := X.RandrGetOutputInfo(output, 0).Reply() + if err != nil { + log.Fatal(err) + } + + bestMode := info.Modes[0] + for _, mode := range resources.Modes { + if mode.Id == uint32(bestMode) { + fmt.Printf("Width: %d, Height: %d\n", mode.Width, mode.Height) + } + } + } + + fmt.Println("\n") + + for _, crtc := range resources.Crtcs { + info, err := X.RandrGetCrtcInfo(crtc, 0).Reply() + if err != nil { + log.Fatal(err) + } + fmt.Printf("X: %d, Y: %d, Width: %d, Height: %d\n", + info.X, info.Y, info.Width, info.Height) + } +} + |