chore(repo): bootstrap module and pinned xcb-proto sources
- commit
- ba4ad521151d3500de111a037937f8e1dd3922d2
- author
- brice · · 2026-10-22 06:12 UTC
- parent
- none (root commit)
- signature
- GPG Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email - checks
- 2/2
21 files · +8123 -0
A .github/workflows/ci.yml +29 -0
| @@ -0,0 +1,29 @@ | |||
| 1 | + | name: ci | |
| 2 | + | on: | |
| 3 | + | push: | |
| 4 | + | branches: [main] | |
| 5 | + | pull_request: | |
| 6 | + | permissions: | |
| 7 | + | contents: read | |
| 8 | + | jobs: | |
| 9 | + | check: | |
| 10 | + | runs-on: ubuntu-latest | |
| 11 | + | steps: | |
| 12 | + | - uses: actions/checkout@v4 | |
| 13 | + | - uses: actions/setup-go@v5 | |
| 14 | + | with: | |
| 15 | + | go-version-file: go.mod | |
| 16 | + | - name: Install X server test tools | |
| 17 | + | run: sudo apt-get update && sudo apt-get install -y xvfb xtrace | |
| 18 | + | - name: Check | |
| 19 | + | run: make check STATICCHECK='go run honnef.co/go/tools/cmd/staticcheck@2026.2.2' | |
| 20 | + | - name: X server tests | |
| 21 | + | run: make xserver | |
| 22 | + | gen-check: | |
| 23 | + | runs-on: ubuntu-latest | |
| 24 | + | steps: | |
| 25 | + | - uses: actions/checkout@v4 | |
| 26 | + | - uses: actions/setup-go@v5 | |
| 27 | + | with: | |
| 28 | + | go-version-file: go.mod | |
| 29 | + | - run: make gen-check | |
| @@ -0,0 +1,29 @@ | |||||
| 1 | + | name: ci | |||
| 2 | + | on: | |||
| 3 | + | push: | |||
| 4 | + | branches: [main] | |||
| 5 | + | pull_request: | |||
| 6 | + | permissions: | |||
| 7 | + | contents: read | |||
| 8 | + | jobs: | |||
| 9 | + | check: | |||
| 10 | + | runs-on: ubuntu-latest | |||
| 11 | + | steps: | |||
| 12 | + | - uses: actions/checkout@v4 | |||
| 13 | + | - uses: actions/setup-go@v5 | |||
| 14 | + | with: | |||
| 15 | + | go-version-file: go.mod | |||
| 16 | + | - name: Install X server test tools | |||
| 17 | + | run: sudo apt-get update && sudo apt-get install -y xvfb xtrace | |||
| 18 | + | - name: Check | |||
| 19 | + | run: make check STATICCHECK='go run honnef.co/go/tools/cmd/staticcheck@2026.2.2' | |||
| 20 | + | - name: X server tests | |||
| 21 | + | run: make xserver | |||
| 22 | + | gen-check: | |||
| 23 | + | runs-on: ubuntu-latest | |||
| 24 | + | steps: | |||
| 25 | + | - uses: actions/checkout@v4 | |||
| 26 | + | - uses: actions/setup-go@v5 | |||
| 27 | + | with: | |||
| 28 | + | go-version-file: go.mod | |||
| 29 | + | - run: make gen-check | |||
A .gitignore +1 -0
| @@ -0,0 +1,1 @@ | |||
| 1 | + | .worktrees/ | |
| @@ -0,0 +1,1 @@ | |||||
| 1 | + | .worktrees/ | |||
A AGENTS.md +17 -0
| @@ -0,0 +1,17 @@ | |||
| 1 | + | # Repository rules | |
| 2 | + | ||
| 3 | + | - Go 1.27; builds use CGO_ENABLED=0. Race tests alone use CGO_ENABLED=1. | |
| 4 | + | - Dependencies: standard library and golang.org/x/sys only. | |
| 5 | + | - Steady-state request/reply/event/error hot paths must allocate zero times; | |
| 6 | + | enforce with testing.AllocsPerRun tests and benchmarks. Setup and amortized | |
| 7 | + | buffer growth may allocate. Caller-owned buffers and borrowed views are preferred. | |
| 8 | + | - Root never imports generated packages. Generated packages import root and, | |
| 9 | + | for extensions, xproto. Wire format is little-endian. | |
| 10 | + | - Requests return Seq (0 invalid); sticky Buf errors stop encoding. Reply views | |
| 11 | + | live only through the callback. Event Raw is copied; Tail is borrowed. | |
| 12 | + | - Generate bindings from the pinned manifest; do not hand-edit generated code. | |
| 13 | + | - Run make check before committing. Use signed conventional commits: | |
| 14 | + | type(scope): description. Feature work belongs in .worktrees/; do not merge | |
| 15 | + | without review. Forge is ermite only; never add or push a GitHub remote. | |
| 16 | + | - The binding spec is private; the above summarizes its key public contracts. | |
| 17 | + | Stop and ask before making an unspecified public-contract decision. | |
| @@ -0,0 +1,17 @@ | |||||
| 1 | + | # Repository rules | |||
| 2 | + | ||||
| 3 | + | - Go 1.27; builds use CGO_ENABLED=0. Race tests alone use CGO_ENABLED=1. | |||
| 4 | + | - Dependencies: standard library and golang.org/x/sys only. | |||
| 5 | + | - Steady-state request/reply/event/error hot paths must allocate zero times; | |||
| 6 | + | enforce with testing.AllocsPerRun tests and benchmarks. Setup and amortized | |||
| 7 | + | buffer growth may allocate. Caller-owned buffers and borrowed views are preferred. | |||
| 8 | + | - Root never imports generated packages. Generated packages import root and, | |||
| 9 | + | for extensions, xproto. Wire format is little-endian. | |||
| 10 | + | - Requests return Seq (0 invalid); sticky Buf errors stop encoding. Reply views | |||
| 11 | + | live only through the callback. Event Raw is copied; Tail is borrowed. | |||
| 12 | + | - Generate bindings from the pinned manifest; do not hand-edit generated code. | |||
| 13 | + | - Run make check before committing. Use signed conventional commits: | |||
| 14 | + | type(scope): description. Feature work belongs in .worktrees/; do not merge | |||
| 15 | + | without review. Forge is ermite only; never add or push a GitHub remote. | |||
| 16 | + | - The binding spec is private; the above summarizes its key public contracts. | |||
| 17 | + | Stop and ask before making an unspecified public-contract decision. | |||
A LICENSE +21 -0
| @@ -0,0 +1,21 @@ | |||
| 1 | + | MIT License | |
| 2 | + | ||
| 3 | + | Copyright (c) 2026 bnema | |
| 4 | + | ||
| 5 | + | Permission is hereby granted, free of charge, to any person obtaining a copy | |
| 6 | + | of this software and associated documentation files (the "Software"), to deal | |
| 7 | + | in the Software without restriction, including without limitation the rights | |
| 8 | + | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
| 9 | + | copies of the Software, and to permit persons to whom the Software is | |
| 10 | + | furnished to do so, subject to the following conditions: | |
| 11 | + | ||
| 12 | + | The above copyright notice and this permission notice shall be included in all | |
| 13 | + | copies or substantial portions of the Software. | |
| 14 | + | ||
| 15 | + | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
| 16 | + | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
| 17 | + | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
| 18 | + | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
| 19 | + | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
| 20 | + | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |
| 21 | + | SOFTWARE.⏎̸ | |
| @@ -0,0 +1,21 @@ | |||||
| 1 | + | MIT License | |||
| 2 | + | ||||
| 3 | + | Copyright (c) 2026 bnema | |||
| 4 | + | ||||
| 5 | + | Permission is hereby granted, free of charge, to any person obtaining a copy | |||
| 6 | + | of this software and associated documentation files (the "Software"), to deal | |||
| 7 | + | in the Software without restriction, including without limitation the rights | |||
| 8 | + | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||
| 9 | + | copies of the Software, and to permit persons to whom the Software is | |||
| 10 | + | furnished to do so, subject to the following conditions: | |||
| 11 | + | ||||
| 12 | + | The above copyright notice and this permission notice shall be included in all | |||
| 13 | + | copies or substantial portions of the Software. | |||
| 14 | + | ||||
| 15 | + | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||
| 16 | + | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||
| 17 | + | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||
| 18 | + | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||
| 19 | + | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||
| 20 | + | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |||
| 21 | + | SOFTWARE.⏎̸ | |||
A LICENSES/xcb-proto-COPYING +30 -0
| @@ -0,0 +1,30 @@ | |||
| 1 | + | Copyright (C) 2001-2006 Bart Massey, Jamey Sharp, and Josh Triplett. | |
| 2 | + | All Rights Reserved. | |
| 3 | + | ||
| 4 | + | Permission is hereby granted, free of charge, to any person | |
| 5 | + | obtaining a copy of this software and associated | |
| 6 | + | documentation files (the "Software"), to deal in the | |
| 7 | + | Software without restriction, including without limitation | |
| 8 | + | the rights to use, copy, modify, merge, publish, distribute, | |
| 9 | + | sublicense, and/or sell copies of the Software, and to | |
| 10 | + | permit persons to whom the Software is furnished to do so, | |
| 11 | + | subject to the following conditions: | |
| 12 | + | ||
| 13 | + | The above copyright notice and this permission notice shall | |
| 14 | + | be included in all copies or substantial portions of the | |
| 15 | + | Software. | |
| 16 | + | ||
| 17 | + | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY | |
| 18 | + | KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE | |
| 19 | + | WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR | |
| 20 | + | PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS | |
| 21 | + | BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | |
| 22 | + | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
| 23 | + | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | |
| 24 | + | OTHER DEALINGS IN THE SOFTWARE. | |
| 25 | + | ||
| 26 | + | Except as contained in this notice, the names of the authors | |
| 27 | + | or their institutions shall not be used in advertising or | |
| 28 | + | otherwise to promote the sale, use or other dealings in this | |
| 29 | + | Software without prior written authorization from the | |
| 30 | + | authors. | |
| @@ -0,0 +1,30 @@ | |||||
| 1 | + | Copyright (C) 2001-2006 Bart Massey, Jamey Sharp, and Josh Triplett. | |||
| 2 | + | All Rights Reserved. | |||
| 3 | + | ||||
| 4 | + | Permission is hereby granted, free of charge, to any person | |||
| 5 | + | obtaining a copy of this software and associated | |||
| 6 | + | documentation files (the "Software"), to deal in the | |||
| 7 | + | Software without restriction, including without limitation | |||
| 8 | + | the rights to use, copy, modify, merge, publish, distribute, | |||
| 9 | + | sublicense, and/or sell copies of the Software, and to | |||
| 10 | + | permit persons to whom the Software is furnished to do so, | |||
| 11 | + | subject to the following conditions: | |||
| 12 | + | ||||
| 13 | + | The above copyright notice and this permission notice shall | |||
| 14 | + | be included in all copies or substantial portions of the | |||
| 15 | + | Software. | |||
| 16 | + | ||||
| 17 | + | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY | |||
| 18 | + | KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE | |||
| 19 | + | WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR | |||
| 20 | + | PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS | |||
| 21 | + | BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | |||
| 22 | + | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||
| 23 | + | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | |||
| 24 | + | OTHER DEALINGS IN THE SOFTWARE. | |||
| 25 | + | ||||
| 26 | + | Except as contained in this notice, the names of the authors | |||
| 27 | + | or their institutions shall not be used in advertising or | |||
| 28 | + | otherwise to promote the sale, use or other dealings in this | |||
| 29 | + | Software without prior written authorization from the | |||
| 30 | + | authors. | |||
A Makefile +27 -0
| @@ -0,0 +1,27 @@ | |||
| 1 | + | export CGO_ENABLED := 0 | |
| 2 | + | STATICCHECK ?= staticcheck | |
| 3 | + | ||
| 4 | + | .PHONY: gen gen-check test race alloc poison bench xserver staticcheck vet check | |
| 5 | + | ||
| 6 | + | gen: | |
| 7 | + | go generate ./... | |
| 8 | + | gen-check: gen | |
| 9 | + | git diff --exit-code | |
| 10 | + | ||
| 11 | + | test: | |
| 12 | + | go test ./... | |
| 13 | + | race: | |
| 14 | + | CGO_ENABLED=1 go test -race ./... | |
| 15 | + | alloc: | |
| 16 | + | go test -run 'Alloc' ./... | |
| 17 | + | poison: | |
| 18 | + | go test -tags xturbo_poison ./... | |
| 19 | + | bench: | |
| 20 | + | go test -bench . -benchmem ./... | |
| 21 | + | xserver: | |
| 22 | + | PATH="$$PATH:/usr/sbin" go test -tags xserver ./... | |
| 23 | + | staticcheck: | |
| 24 | + | $(STATICCHECK) ./... | |
| 25 | + | vet: | |
| 26 | + | go vet ./... | |
| 27 | + | check: vet staticcheck test race alloc poison gen-check | |
| @@ -0,0 +1,27 @@ | |||||
| 1 | + | export CGO_ENABLED := 0 | |||
| 2 | + | STATICCHECK ?= staticcheck | |||
| 3 | + | ||||
| 4 | + | .PHONY: gen gen-check test race alloc poison bench xserver staticcheck vet check | |||
| 5 | + | ||||
| 6 | + | gen: | |||
| 7 | + | go generate ./... | |||
| 8 | + | gen-check: gen | |||
| 9 | + | git diff --exit-code | |||
| 10 | + | ||||
| 11 | + | test: | |||
| 12 | + | go test ./... | |||
| 13 | + | race: | |||
| 14 | + | CGO_ENABLED=1 go test -race ./... | |||
| 15 | + | alloc: | |||
| 16 | + | go test -run 'Alloc' ./... | |||
| 17 | + | poison: | |||
| 18 | + | go test -tags xturbo_poison ./... | |||
| 19 | + | bench: | |||
| 20 | + | go test -bench . -benchmem ./... | |||
| 21 | + | xserver: | |||
| 22 | + | PATH="$$PATH:/usr/sbin" go test -tags xserver ./... | |||
| 23 | + | staticcheck: | |||
| 24 | + | $(STATICCHECK) ./... | |||
| 25 | + | vet: | |||
| 26 | + | go vet ./... | |||
| 27 | + | check: vet staticcheck test race alloc poison gen-check | |||
A cmd/xtgen/main.go +4 -0
| @@ -0,0 +1,4 @@ | |||
| 1 | + | // Command xtgen generates bindings from the pinned xcb-proto XML. | |
| 2 | + | package main | |
| 3 | + | ||
| 4 | + | func main() {} | |
| @@ -0,0 +1,4 @@ | |||||
| 1 | + | // Command xtgen generates bindings from the pinned xcb-proto XML. | |||
| 2 | + | package main | |||
| 3 | + | ||||
| 4 | + | func main() {} | |||
A cmd/xtsync/main.go +126 -0
| @@ -0,0 +1,126 @@ | |||
| 1 | + | // Command xtsync vendors the pinned xcb-proto sources. An explicit -source | |
| 2 | + | // directory supports offline refreshes; its provenance is retained in manifest. | |
| 3 | + | package main | |
| 4 | + | ||
| 5 | + | import ( | |
| 6 | + | "archive/tar" | |
| 7 | + | "bytes" | |
| 8 | + | "compress/gzip" | |
| 9 | + | "crypto/sha256" | |
| 10 | + | "encoding/hex" | |
| 11 | + | "encoding/json" | |
| 12 | + | "flag" | |
| 13 | + | "fmt" | |
| 14 | + | "io" | |
| 15 | + | "net/http" | |
| 16 | + | "os" | |
| 17 | + | "path/filepath" | |
| 18 | + | "time" | |
| 19 | + | ) | |
| 20 | + | ||
| 21 | + | const upstream = "https://gitlab.freedesktop.org/xorg/proto/xcbproto" | |
| 22 | + | const tag = "xcb-proto-1.17.0" | |
| 23 | + | ||
| 24 | + | var files = []string{"xproto.xml", "bigreq.xml", "ge.xml", "xc_misc.xml", "composite.xml", "xfixes.xml", "res.xml", "render.xml", "shape.xml", "xcb.xsd", "COPYING"} | |
| 25 | + | ||
| 26 | + | type entry struct { | |
| 27 | + | Path string `json:"path"` | |
| 28 | + | SHA256 string `json:"sha256"` | |
| 29 | + | } | |
| 30 | + | type manifest struct { | |
| 31 | + | Upstream string `json:"upstream"` | |
| 32 | + | Tag string `json:"tag"` | |
| 33 | + | Source string `json:"source"` | |
| 34 | + | Files []entry `json:"files"` | |
| 35 | + | } | |
| 36 | + | ||
| 37 | + | func main() { | |
| 38 | + | source := flag.String("source", "", "local source directory (COPYING must be included)") | |
| 39 | + | flag.Parse() | |
| 40 | + | if err := syncFiles(*source); err != nil { | |
| 41 | + | fmt.Fprintln(os.Stderr, err) | |
| 42 | + | os.Exit(1) | |
| 43 | + | } | |
| 44 | + | } | |
| 45 | + | func syncFiles(source string) error { | |
| 46 | + | data := make(map[string][]byte) | |
| 47 | + | provenance := source | |
| 48 | + | if source != "" { | |
| 49 | + | for _, name := range files { | |
| 50 | + | b, err := os.ReadFile(filepath.Join(source, name)) | |
| 51 | + | if err != nil { | |
| 52 | + | return err | |
| 53 | + | } | |
| 54 | + | data[name] = b | |
| 55 | + | } | |
| 56 | + | } else { | |
| 57 | + | provenance = upstream + "/-/archive/" + tag + "/xcbproto-" + tag + ".tar.gz" | |
| 58 | + | client := http.Client{Timeout: 30 * time.Second} | |
| 59 | + | resp, err := client.Get(provenance) | |
| 60 | + | if err != nil { | |
| 61 | + | return err | |
| 62 | + | } | |
| 63 | + | defer resp.Body.Close() | |
| 64 | + | if resp.StatusCode != http.StatusOK { | |
| 65 | + | return fmt.Errorf("download: %s", resp.Status) | |
| 66 | + | } | |
| 67 | + | gz, err := gzip.NewReader(io.LimitReader(resp.Body, 16<<20)) | |
| 68 | + | if err != nil { | |
| 69 | + | return err | |
| 70 | + | } | |
| 71 | + | defer gz.Close() | |
| 72 | + | tr := tar.NewReader(gz) | |
| 73 | + | for { | |
| 74 | + | h, err := tr.Next() | |
| 75 | + | if err == io.EOF { | |
| 76 | + | break | |
| 77 | + | } | |
| 78 | + | if err != nil { | |
| 79 | + | return err | |
| 80 | + | } | |
| 81 | + | for _, name := range files { | |
| 82 | + | if h.Name == "xcbproto-"+tag+"/src/"+name || name == "COPYING" && h.Name == "xcbproto-"+tag+"/COPYING" { | |
| 83 | + | b, err := io.ReadAll(io.LimitReader(tr, 4<<20)) | |
| 84 | + | if err != nil { | |
| 85 | + | return err | |
| 86 | + | } | |
| 87 | + | data[name] = b | |
| 88 | + | } | |
| 89 | + | } | |
| 90 | + | } | |
| 91 | + | } | |
| 92 | + | m := manifest{Upstream: upstream, Tag: tag, Source: provenance} | |
| 93 | + | for _, name := range files { | |
| 94 | + | if len(data[name]) == 0 { | |
| 95 | + | return fmt.Errorf("missing source %s", name) | |
| 96 | + | } | |
| 97 | + | } | |
| 98 | + | for _, name := range files { | |
| 99 | + | dest := filepath.Join("spec", "xml", name) | |
| 100 | + | if name == "xcb.xsd" { | |
| 101 | + | dest = "spec/xcb.xsd" | |
| 102 | + | } | |
| 103 | + | if name == "COPYING" { | |
| 104 | + | dest = "LICENSES/xcb-proto-COPYING" | |
| 105 | + | } | |
| 106 | + | if err := os.MkdirAll(filepath.Dir(dest), 0755); err != nil { | |
| 107 | + | return err | |
| 108 | + | } | |
| 109 | + | if err := os.WriteFile(dest, data[name], 0644); err != nil { | |
| 110 | + | return err | |
| 111 | + | } | |
| 112 | + | sum := sha256.Sum256(data[name]) | |
| 113 | + | m.Files = append(m.Files, entry{filepath.ToSlash(dest), hex.EncodeToString(sum[:])}) | |
| 114 | + | } | |
| 115 | + | b, err := json.MarshalIndent(m, "", " ") | |
| 116 | + | if err != nil { | |
| 117 | + | return err | |
| 118 | + | } | |
| 119 | + | b = append(b, '\n') | |
| 120 | + | // Keep refresh deterministic, including when invoked repeatedly from CI. | |
| 121 | + | old, _ := os.ReadFile("spec/manifest.json") | |
| 122 | + | if bytes.Equal(old, b) { | |
| 123 | + | return nil | |
| 124 | + | } | |
| 125 | + | return os.WriteFile("spec/manifest.json", b, 0644) | |
| 126 | + | } | |
| @@ -0,0 +1,126 @@ | |||||
| 1 | + | // Command xtsync vendors the pinned xcb-proto sources. An explicit -source | |||
| 2 | + | // directory supports offline refreshes; its provenance is retained in manifest. | |||
| 3 | + | package main | |||
| 4 | + | ||||
| 5 | + | import ( | |||
| 6 | + | "archive/tar" | |||
| 7 | + | "bytes" | |||
| 8 | + | "compress/gzip" | |||
| 9 | + | "crypto/sha256" | |||
| 10 | + | "encoding/hex" | |||
| 11 | + | "encoding/json" | |||
| 12 | + | "flag" | |||
| 13 | + | "fmt" | |||
| 14 | + | "io" | |||
| 15 | + | "net/http" | |||
| 16 | + | "os" | |||
| 17 | + | "path/filepath" | |||
| 18 | + | "time" | |||
| 19 | + | ) | |||
| 20 | + | ||||
| 21 | + | const upstream = "https://gitlab.freedesktop.org/xorg/proto/xcbproto" | |||
| 22 | + | const tag = "xcb-proto-1.17.0" | |||
| 23 | + | ||||
| 24 | + | var files = []string{"xproto.xml", "bigreq.xml", "ge.xml", "xc_misc.xml", "composite.xml", "xfixes.xml", "res.xml", "render.xml", "shape.xml", "xcb.xsd", "COPYING"} | |||
| 25 | + | ||||
| 26 | + | type entry struct { | |||
| 27 | + | Path string `json:"path"` | |||
| 28 | + | SHA256 string `json:"sha256"` | |||
| 29 | + | } | |||
| 30 | + | type manifest struct { | |||
| 31 | + | Upstream string `json:"upstream"` | |||
| 32 | + | Tag string `json:"tag"` | |||
| 33 | + | Source string `json:"source"` | |||
| 34 | + | Files []entry `json:"files"` | |||
| 35 | + | } | |||
| 36 | + | ||||
| 37 | + | func main() { | |||
| 38 | + | source := flag.String("source", "", "local source directory (COPYING must be included)") | |||
| 39 | + | flag.Parse() | |||
| 40 | + | if err := syncFiles(*source); err != nil { | |||
| 41 | + | fmt.Fprintln(os.Stderr, err) | |||
| 42 | + | os.Exit(1) | |||
| 43 | + | } | |||
| 44 | + | } | |||
| 45 | + | func syncFiles(source string) error { | |||
| 46 | + | data := make(map[string][]byte) | |||
| 47 | + | provenance := source | |||
| 48 | + | if source != "" { | |||
| 49 | + | for _, name := range files { | |||
| 50 | + | b, err := os.ReadFile(filepath.Join(source, name)) | |||
| 51 | + | if err != nil { | |||
| 52 | + | return err | |||
| 53 | + | } | |||
| 54 | + | data[name] = b | |||
| 55 | + | } | |||
| 56 | + | } else { | |||
| 57 | + | provenance = upstream + "/-/archive/" + tag + "/xcbproto-" + tag + ".tar.gz" | |||
| 58 | + | client := http.Client{Timeout: 30 * time.Second} | |||
| 59 | + | resp, err := client.Get(provenance) | |||
| 60 | + | if err != nil { | |||
| 61 | + | return err | |||
| 62 | + | } | |||
| 63 | + | defer resp.Body.Close() | |||
| 64 | + | if resp.StatusCode != http.StatusOK { | |||
| 65 | + | return fmt.Errorf("download: %s", resp.Status) | |||
| 66 | + | } | |||
| 67 | + | gz, err := gzip.NewReader(io.LimitReader(resp.Body, 16<<20)) | |||
| 68 | + | if err != nil { | |||
| 69 | + | return err | |||
| 70 | + | } | |||
| 71 | + | defer gz.Close() | |||
| 72 | + | tr := tar.NewReader(gz) | |||
| 73 | + | for { | |||
| 74 | + | h, err := tr.Next() | |||
| 75 | + | if err == io.EOF { | |||
| 76 | + | break | |||
| 77 | + | } | |||
| 78 | + | if err != nil { | |||
| 79 | + | return err | |||
| 80 | + | } | |||
| 81 | + | for _, name := range files { | |||
| 82 | + | if h.Name == "xcbproto-"+tag+"/src/"+name || name == "COPYING" && h.Name == "xcbproto-"+tag+"/COPYING" { | |||
| 83 | + | b, err := io.ReadAll(io.LimitReader(tr, 4<<20)) | |||
| 84 | + | if err != nil { | |||
| 85 | + | return err | |||
| 86 | + | } | |||
| 87 | + | data[name] = b | |||
| 88 | + | } | |||
| 89 | + | } | |||
| 90 | + | } | |||
| 91 | + | } | |||
| 92 | + | m := manifest{Upstream: upstream, Tag: tag, Source: provenance} | |||
| 93 | + | for _, name := range files { | |||
| 94 | + | if len(data[name]) == 0 { | |||
| 95 | + | return fmt.Errorf("missing source %s", name) | |||
| 96 | + | } | |||
| 97 | + | } | |||
| 98 | + | for _, name := range files { | |||
| 99 | + | dest := filepath.Join("spec", "xml", name) | |||
| 100 | + | if name == "xcb.xsd" { | |||
| 101 | + | dest = "spec/xcb.xsd" | |||
| 102 | + | } | |||
| 103 | + | if name == "COPYING" { | |||
| 104 | + | dest = "LICENSES/xcb-proto-COPYING" | |||
| 105 | + | } | |||
| 106 | + | if err := os.MkdirAll(filepath.Dir(dest), 0755); err != nil { | |||
| 107 | + | return err | |||
| 108 | + | } | |||
| 109 | + | if err := os.WriteFile(dest, data[name], 0644); err != nil { | |||
| 110 | + | return err | |||
| 111 | + | } | |||
| 112 | + | sum := sha256.Sum256(data[name]) | |||
| 113 | + | m.Files = append(m.Files, entry{filepath.ToSlash(dest), hex.EncodeToString(sum[:])}) | |||
| 114 | + | } | |||
| 115 | + | b, err := json.MarshalIndent(m, "", " ") | |||
| 116 | + | if err != nil { | |||
| 117 | + | return err | |||
| 118 | + | } | |||
| 119 | + | b = append(b, '\n') | |||
| 120 | + | // Keep refresh deterministic, including when invoked repeatedly from CI. | |||
| 121 | + | old, _ := os.ReadFile("spec/manifest.json") | |||
| 122 | + | if bytes.Equal(old, b) { | |||
| 123 | + | return nil | |||
| 124 | + | } | |||
| 125 | + | return os.WriteFile("spec/manifest.json", b, 0644) | |||
| 126 | + | } | |||
A go.mod +5 -0
| @@ -0,0 +1,5 @@ | |||
| 1 | + | module bnema.dev/xturbo | |
| 2 | + | ||
| 3 | + | go 1.27 | |
| 4 | + | ||
| 5 | + | require golang.org/x/sys v0.49.0 | |
| @@ -0,0 +1,5 @@ | |||||
| 1 | + | module bnema.dev/xturbo | |||
| 2 | + | ||||
| 3 | + | go 1.27 | |||
| 4 | + | ||||
| 5 | + | require golang.org/x/sys v0.49.0 | |||
A go.sum +2 -0 generated file: collapsed
A spec/manifest.json +51 -0
| @@ -0,0 +1,51 @@ | |||
| 1 | + | { | |
| 2 | + | "upstream": "https://gitlab.freedesktop.org/xorg/proto/xcbproto", | |
| 3 | + | "tag": "xcb-proto-1.17.0", | |
| 4 | + | "source": "https://gitlab.freedesktop.org/xorg/proto/xcbproto/-/archive/xcb-proto-1.17.0/xcbproto-xcb-proto-1.17.0.tar.gz", | |
| 5 | + | "files": [ | |
| 6 | + | { | |
| 7 | + | "path": "spec/xml/xproto.xml", | |
| 8 | + | "sha256": "bb8c060a8ea009a5d08a57c0c6daa1d3dd7e9d743d46d055109505c344a1f4c9" | |
| 9 | + | }, | |
| 10 | + | { | |
| 11 | + | "path": "spec/xml/bigreq.xml", | |
| 12 | + | "sha256": "1e7d984a443455a995a1c4eb3850bf03fb5e349183f6d1e183cb026ab53d5f94" | |
| 13 | + | }, | |
| 14 | + | { | |
| 15 | + | "path": "spec/xml/ge.xml", | |
| 16 | + | "sha256": "ae0fe359d4213d3734143fec51b6956a1b0921b598f92d00be786c35e732a0a4" | |
| 17 | + | }, | |
| 18 | + | { | |
| 19 | + | "path": "spec/xml/xc_misc.xml", | |
| 20 | + | "sha256": "44d3b2350637746985b0165e13fd1a010dc98df4e9fa64264d2d6dea697ce628" | |
| 21 | + | }, | |
| 22 | + | { | |
| 23 | + | "path": "spec/xml/composite.xml", | |
| 24 | + | "sha256": "6938a33bf1fc255f711b5bee0f3980fcaa010d81a271eb5bb3ba7680ac10de18" | |
| 25 | + | }, | |
| 26 | + | { | |
| 27 | + | "path": "spec/xml/xfixes.xml", | |
| 28 | + | "sha256": "8c375ffe83ef73b38cb7fed1f859c262374917202c2ef8046d828405f7d71835" | |
| 29 | + | }, | |
| 30 | + | { | |
| 31 | + | "path": "spec/xml/res.xml", | |
| 32 | + | "sha256": "9c0f9432143a79e851fc1f43b562d9f29e5e78a750d74c2b0356f17bc43e7710" | |
| 33 | + | }, | |
| 34 | + | { | |
| 35 | + | "path": "spec/xml/render.xml", | |
| 36 | + | "sha256": "4a4c261d1f4746430c6296378d59474d6fbfb2c9cd45e9f0d60faf459d265218" | |
| 37 | + | }, | |
| 38 | + | { | |
| 39 | + | "path": "spec/xml/shape.xml", | |
| 40 | + | "sha256": "bb079d0051aed81c785b42d12377709b945ad79e33df8c6b537ed99a0e7a6191" | |
| 41 | + | }, | |
| 42 | + | { | |
| 43 | + | "path": "spec/xcb.xsd", | |
| 44 | + | "sha256": "8332e309d0259213f924825a606b36c7ef86acd6260a6ba0319b1a902ce04275" | |
| 45 | + | }, | |
| 46 | + | { | |
| 47 | + | "path": "LICENSES/xcb-proto-COPYING", | |
| 48 | + | "sha256": "c5ffbfeaa501071ceeb97b7de2c0d703fdaa35de01c0fb6cbac1c28453a3e9fd" | |
| 49 | + | } | |
| 50 | + | ] | |
| 51 | + | } | |
| @@ -0,0 +1,51 @@ | |||||
| 1 | + | { | |||
| 2 | + | "upstream": "https://gitlab.freedesktop.org/xorg/proto/xcbproto", | |||
| 3 | + | "tag": "xcb-proto-1.17.0", | |||
| 4 | + | "source": "https://gitlab.freedesktop.org/xorg/proto/xcbproto/-/archive/xcb-proto-1.17.0/xcbproto-xcb-proto-1.17.0.tar.gz", | |||
| 5 | + | "files": [ | |||
| 6 | + | { | |||
| 7 | + | "path": "spec/xml/xproto.xml", | |||
| 8 | + | "sha256": "bb8c060a8ea009a5d08a57c0c6daa1d3dd7e9d743d46d055109505c344a1f4c9" | |||
| 9 | + | }, | |||
| 10 | + | { | |||
| 11 | + | "path": "spec/xml/bigreq.xml", | |||
| 12 | + | "sha256": "1e7d984a443455a995a1c4eb3850bf03fb5e349183f6d1e183cb026ab53d5f94" | |||
| 13 | + | }, | |||
| 14 | + | { | |||
| 15 | + | "path": "spec/xml/ge.xml", | |||
| 16 | + | "sha256": "ae0fe359d4213d3734143fec51b6956a1b0921b598f92d00be786c35e732a0a4" | |||
| 17 | + | }, | |||
| 18 | + | { | |||
| 19 | + | "path": "spec/xml/xc_misc.xml", | |||
| 20 | + | "sha256": "44d3b2350637746985b0165e13fd1a010dc98df4e9fa64264d2d6dea697ce628" | |||
| 21 | + | }, | |||
| 22 | + | { | |||
| 23 | + | "path": "spec/xml/composite.xml", | |||
| 24 | + | "sha256": "6938a33bf1fc255f711b5bee0f3980fcaa010d81a271eb5bb3ba7680ac10de18" | |||
| 25 | + | }, | |||
| 26 | + | { | |||
| 27 | + | "path": "spec/xml/xfixes.xml", | |||
| 28 | + | "sha256": "8c375ffe83ef73b38cb7fed1f859c262374917202c2ef8046d828405f7d71835" | |||
| 29 | + | }, | |||
| 30 | + | { | |||
| 31 | + | "path": "spec/xml/res.xml", | |||
| 32 | + | "sha256": "9c0f9432143a79e851fc1f43b562d9f29e5e78a750d74c2b0356f17bc43e7710" | |||
| 33 | + | }, | |||
| 34 | + | { | |||
| 35 | + | "path": "spec/xml/render.xml", | |||
| 36 | + | "sha256": "4a4c261d1f4746430c6296378d59474d6fbfb2c9cd45e9f0d60faf459d265218" | |||
| 37 | + | }, | |||
| 38 | + | { | |||
| 39 | + | "path": "spec/xml/shape.xml", | |||
| 40 | + | "sha256": "bb079d0051aed81c785b42d12377709b945ad79e33df8c6b537ed99a0e7a6191" | |||
| 41 | + | }, | |||
| 42 | + | { | |||
| 43 | + | "path": "spec/xcb.xsd", | |||
| 44 | + | "sha256": "8332e309d0259213f924825a606b36c7ef86acd6260a6ba0319b1a902ce04275" | |||
| 45 | + | }, | |||
| 46 | + | { | |||
| 47 | + | "path": "LICENSES/xcb-proto-COPYING", | |||
| 48 | + | "sha256": "c5ffbfeaa501071ceeb97b7de2c0d703fdaa35de01c0fb6cbac1c28453a3e9fd" | |||
| 49 | + | } | |||
| 50 | + | ] | |||
| 51 | + | } | |||
A spec/xcb.xsd +424 -0
| @@ -0,0 +1,424 @@ | |||
| 1 | + | <?xml version="1.0" encoding="utf-8"?> | |
| 2 | + | <!-- | |
| 3 | + | Copyright (C) 2004 Josh Triplett. All Rights Reserved. | |
| 4 | + | ||
| 5 | + | Permission is hereby granted, free of charge, to any person obtaining a copy | |
| 6 | + | of this software and associated documentation files (the "Software"), to deal | |
| 7 | + | in the Software without restriction, including without limitation the rights | |
| 8 | + | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
| 9 | + | copies of the Software, and to permit persons to whom the Software is | |
| 10 | + | furnished to do so, subject to the following conditions: | |
| 11 | + | ||
| 12 | + | The above copyright notice and this permission notice shall be included in all | |
| 13 | + | copies or substantial portions of the Software. | |
| 14 | + | ||
| 15 | + | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
| 16 | + | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
| 17 | + | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
| 18 | + | AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |
| 19 | + | ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | |
| 20 | + | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |
| 21 | + | ||
| 22 | + | Except as contained in this notice, the names of the authors or their | |
| 23 | + | institutions shall not be used in advertising or otherwise to promote the | |
| 24 | + | sale, use or other dealings in this Software without prior written | |
| 25 | + | authorization from the authors. | |
| 26 | + | --> | |
| 27 | + | <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> | |
| 28 | + | ||
| 29 | + | <!-- The root element --> | |
| 30 | + | <xsd:element name="xcb"> | |
| 31 | + | <xsd:complexType> | |
| 32 | + | <xsd:group ref="macro" minOccurs="0" maxOccurs="unbounded" /> | |
| 33 | + | <xsd:attribute name="header" type="xsd:string" use="required" /> | |
| 34 | + | <xsd:attribute name="extension-xname" type="xsd:string" use="optional" /> | |
| 35 | + | <xsd:attribute name="extension-name" type="xsd:string" use="optional" /> | |
| 36 | + | <xsd:attribute name="extension-multiword" type="xsd:boolean" use="optional" default="false" /> | |
| 37 | + | <xsd:attribute name="major-version" type="xsd:integer" use="optional" /> | |
| 38 | + | <xsd:attribute name="minor-version" type="xsd:integer" use="optional" /> | |
| 39 | + | </xsd:complexType> | |
| 40 | + | </xsd:element> | |
| 41 | + | ||
| 42 | + | <!-- Padding --> | |
| 43 | + | <xsd:element name="pad"> | |
| 44 | + | <xsd:complexType> | |
| 45 | + | <xsd:attribute name="bytes" type="xsd:integer" use="optional" /> | |
| 46 | + | <xsd:attribute name="align" type="xsd:integer" use="optional" /> | |
| 47 | + | <xsd:attribute name="serialize" type="xsd:boolean" use="optional" /> | |
| 48 | + | </xsd:complexType> | |
| 49 | + | </xsd:element> | |
| 50 | + | ||
| 51 | + | <!-- Alignment --> | |
| 52 | + | <xsd:element name="required_start_align" > | |
| 53 | + | <xsd:complexType> | |
| 54 | + | <xsd:attribute name="align" type="xsd:integer" use="required" /> | |
| 55 | + | <xsd:attribute name="offset" type="xsd:integer" use="optional" /> | |
| 56 | + | </xsd:complexType> | |
| 57 | + | </xsd:element> | |
| 58 | + | ||
| 59 | + | <!-- Type for fields or parameters with attributes "name" and "type" --> | |
| 60 | + | <xsd:complexType name="var"> | |
| 61 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |
| 62 | + | <xsd:attribute name="type" type="xsd:string" use="required" /> | |
| 63 | + | <xsd:attribute name="enum" type="xsd:string" use="optional" /> | |
| 64 | + | <xsd:attribute name="altenum" type="xsd:string" use="optional" /> | |
| 65 | + | <xsd:attribute name="mask" type="xsd:string" use="optional" /> | |
| 66 | + | <xsd:attribute name="altmask" type="xsd:string" use="optional" /> | |
| 67 | + | </xsd:complexType> | |
| 68 | + | ||
| 69 | + | <!-- case expression --> | |
| 70 | + | <xsd:complexType name="caseexpr"> | |
| 71 | + | <xsd:sequence> | |
| 72 | + | <!-- case expression: --> | |
| 73 | + | <xsd:group ref="expression" minOccurs="1" maxOccurs="unbounded" /> | |
| 74 | + | <!-- match --> | |
| 75 | + | <xsd:group ref="fields" minOccurs="1" maxOccurs="unbounded" /> | |
| 76 | + | <xsd:choice> | |
| 77 | + | <xsd:element ref="switch" minOccurs="0" maxOccurs="unbounded" /> | |
| 78 | + | </xsd:choice> | |
| 79 | + | </xsd:sequence> | |
| 80 | + | <xsd:attribute name="name" type="xsd:string" use="optional" /> | |
| 81 | + | </xsd:complexType> | |
| 82 | + | ||
| 83 | + | <!-- switch expression --> | |
| 84 | + | <xsd:complexType name="switchexpr"> | |
| 85 | + | <xsd:sequence> | |
| 86 | + | <!-- switch(expression) --> | |
| 87 | + | <xsd:group ref="expression" minOccurs="1" maxOccurs="1" /> | |
| 88 | + | <xsd:element ref="required_start_align" minOccurs="0" maxOccurs="1" /> | |
| 89 | + | <xsd:choice> | |
| 90 | + | <!-- bitcase expression - bit test --> | |
| 91 | + | <xsd:element name="bitcase" type="caseexpr" minOccurs="0" maxOccurs="unbounded" /> | |
| 92 | + | <!-- case expression - value test --> | |
| 93 | + | <xsd:element name="case" type="caseexpr" minOccurs="0" maxOccurs="unbounded" /> | |
| 94 | + | </xsd:choice> | |
| 95 | + | </xsd:sequence> | |
| 96 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |
| 97 | + | </xsd:complexType> | |
| 98 | + | ||
| 99 | + | <xsd:element name="switch" type="switchexpr" /> | |
| 100 | + | ||
| 101 | + | <!-- field replaces FIELD, PARAM, and REPLY. --> | |
| 102 | + | <xsd:element name="field" type="var" /> | |
| 103 | + | ||
| 104 | + | <!-- Length of data structures --> | |
| 105 | + | <xsd:element name="length"> | |
| 106 | + | <xsd:complexType> | |
| 107 | + | <xsd:group ref="expression" /> | |
| 108 | + | </xsd:complexType> | |
| 109 | + | </xsd:element> | |
| 110 | + | ||
| 111 | + | <!-- fd passing parameter --> | |
| 112 | + | <xsd:element name="fd"> | |
| 113 | + | <xsd:complexType> | |
| 114 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |
| 115 | + | </xsd:complexType> | |
| 116 | + | </xsd:element> | |
| 117 | + | ||
| 118 | + | <!-- list replaces ARRAYFIELD, LISTPARAM, and ARRAYREPLY. The name and type | |
| 119 | + | are specified as attributes. The content is an expression giving the | |
| 120 | + | length. --> | |
| 121 | + | <xsd:element name="list"> | |
| 122 | + | <xsd:complexType> | |
| 123 | + | <xsd:complexContent> | |
| 124 | + | <xsd:extension base="var"> | |
| 125 | + | <xsd:group ref="expression" minOccurs="0" maxOccurs="1" /> | |
| 126 | + | </xsd:extension> | |
| 127 | + | </xsd:complexContent> | |
| 128 | + | </xsd:complexType> | |
| 129 | + | </xsd:element> | |
| 130 | + | ||
| 131 | + | <!-- Expressions --> | |
| 132 | + | <xsd:group name="expression"> | |
| 133 | + | <xsd:choice> | |
| 134 | + | <xsd:element name="op"> | |
| 135 | + | <xsd:complexType> | |
| 136 | + | <xsd:sequence> | |
| 137 | + | <xsd:group ref="expression" /> | |
| 138 | + | <xsd:group ref="expression" /> | |
| 139 | + | </xsd:sequence> | |
| 140 | + | <xsd:attribute name="op" use="required"> | |
| 141 | + | <xsd:simpleType> | |
| 142 | + | <xsd:restriction base="xsd:string"> | |
| 143 | + | <xsd:pattern value="\+|-|\*|/|&|<<" /> | |
| 144 | + | </xsd:restriction> | |
| 145 | + | </xsd:simpleType> | |
| 146 | + | </xsd:attribute> | |
| 147 | + | </xsd:complexType> | |
| 148 | + | </xsd:element> | |
| 149 | + | <xsd:element name="unop"> | |
| 150 | + | <xsd:complexType> | |
| 151 | + | <xsd:sequence> | |
| 152 | + | <xsd:group ref="expression" /> | |
| 153 | + | </xsd:sequence> | |
| 154 | + | <xsd:attribute name="op" use="required"> | |
| 155 | + | <xsd:simpleType> | |
| 156 | + | <xsd:restriction base="xsd:string"> | |
| 157 | + | <xsd:pattern value="~" /> | |
| 158 | + | </xsd:restriction> | |
| 159 | + | </xsd:simpleType> | |
| 160 | + | </xsd:attribute> | |
| 161 | + | </xsd:complexType> | |
| 162 | + | </xsd:element> | |
| 163 | + | <xsd:element name="fieldref" type="xsd:string" /> | |
| 164 | + | <xsd:element name="paramref"> | |
| 165 | + | <xsd:complexType> | |
| 166 | + | <xsd:simpleContent> | |
| 167 | + | <xsd:extension base="xsd:string"> | |
| 168 | + | <xsd:attribute name="type" use="required" type="xsd:string" /> | |
| 169 | + | </xsd:extension> | |
| 170 | + | </xsd:simpleContent> | |
| 171 | + | </xsd:complexType> | |
| 172 | + | </xsd:element> | |
| 173 | + | <xsd:element name="enumref"> | |
| 174 | + | <xsd:complexType> | |
| 175 | + | <xsd:simpleContent> | |
| 176 | + | <xsd:extension base="xsd:string"> | |
| 177 | + | <xsd:attribute name="ref" use="required" type="xsd:string" /> | |
| 178 | + | </xsd:extension> | |
| 179 | + | </xsd:simpleContent> | |
| 180 | + | </xsd:complexType> | |
| 181 | + | </xsd:element> | |
| 182 | + | <xsd:element name="popcount"> | |
| 183 | + | <xsd:complexType> | |
| 184 | + | <xsd:group ref="expression" /> | |
| 185 | + | </xsd:complexType> | |
| 186 | + | </xsd:element> | |
| 187 | + | <xsd:element name="sumof"> | |
| 188 | + | <xsd:complexType> | |
| 189 | + | <xsd:sequence> | |
| 190 | + | <xsd:group ref="expression" minOccurs="0" maxOccurs="1"/> | |
| 191 | + | </xsd:sequence> | |
| 192 | + | <xsd:attribute name="ref" use="required" type="xsd:string" /> | |
| 193 | + | </xsd:complexType> | |
| 194 | + | </xsd:element> | |
| 195 | + | <xsd:element name="listelement-ref" /> | |
| 196 | + | <xsd:element name="value" type="xsd:integer" /> | |
| 197 | + | <xsd:element name="bit" type="bitType" /> | |
| 198 | + | </xsd:choice> | |
| 199 | + | </xsd:group> | |
| 200 | + | ||
| 201 | + | <!-- Fields in requests that are calculated from other information, not | |
| 202 | + | supplied by the caller. --> | |
| 203 | + | <xsd:element name="exprfield" > | |
| 204 | + | <xsd:complexType> | |
| 205 | + | <xsd:complexContent> | |
| 206 | + | <xsd:extension base="var"> | |
| 207 | + | <xsd:group ref="expression" /> | |
| 208 | + | </xsd:extension> | |
| 209 | + | </xsd:complexContent> | |
| 210 | + | </xsd:complexType> | |
| 211 | + | </xsd:element> | |
| 212 | + | ||
| 213 | + | <xsd:group name="fields"> | |
| 214 | + | <xsd:choice> | |
| 215 | + | <xsd:element ref="pad" /> | |
| 216 | + | <xsd:element ref="field" /> | |
| 217 | + | <xsd:element ref="list" /> | |
| 218 | + | <xsd:element ref="fd" /> | |
| 219 | + | <xsd:element ref="required_start_align" /> | |
| 220 | + | <xsd:element ref="length" /> | |
| 221 | + | </xsd:choice> | |
| 222 | + | </xsd:group> | |
| 223 | + | ||
| 224 | + | <!-- Type for a structure --> | |
| 225 | + | <xsd:complexType name="struct"> | |
| 226 | + | <xsd:sequence> | |
| 227 | + | <xsd:group ref="fields" minOccurs="1" maxOccurs="unbounded" /> | |
| 228 | + | <xsd:choice minOccurs="0" maxOccurs="1"> | |
| 229 | + | <xsd:element ref="switch" /> | |
| 230 | + | </xsd:choice> | |
| 231 | + | </xsd:sequence> | |
| 232 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |
| 233 | + | </xsd:complexType> | |
| 234 | + | ||
| 235 | + | <!-- Type for a packet structure --> | |
| 236 | + | <xsd:complexType name="packet-struct"> | |
| 237 | + | <xsd:sequence> | |
| 238 | + | <xsd:group ref="fields" minOccurs="0" maxOccurs="unbounded" /> | |
| 239 | + | </xsd:sequence> | |
| 240 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |
| 241 | + | <xsd:attribute name="number" type="xsd:integer" use="required" /> | |
| 242 | + | </xsd:complexType> | |
| 243 | + | ||
| 244 | + | <!-- Type for a packet structure copy --> | |
| 245 | + | <xsd:complexType name="packet-struct-copy"> | |
| 246 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |
| 247 | + | <xsd:attribute name="number" type="xsd:integer" use="required" /> | |
| 248 | + | <xsd:attribute name="ref" type="xsd:string" use="required" /> | |
| 249 | + | </xsd:complexType> | |
| 250 | + | ||
| 251 | + | <!-- Type for a structure that is an event | |
| 252 | + | which can be of an event type from a set of event types --> | |
| 253 | + | <xsd:complexType name="eventstruct"> | |
| 254 | + | <xsd:sequence> | |
| 255 | + | <xsd:element name="allowed"> | |
| 256 | + | <xsd:complexType> | |
| 257 | + | <xsd:attribute name="extension" type="xsd:string" use="required" /> | |
| 258 | + | <xsd:attribute name="xge" type="xsd:boolean" use="required" /> | |
| 259 | + | <xsd:attribute name="opcode-min" type="xsd:integer" use="required" /> | |
| 260 | + | <xsd:attribute name="opcode-max" type="xsd:integer" use="required" /> | |
| 261 | + | </xsd:complexType> | |
| 262 | + | </xsd:element> | |
| 263 | + | </xsd:sequence> | |
| 264 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |
| 265 | + | </xsd:complexType> | |
| 266 | + | ||
| 267 | + | <!-- Type for bit values --> | |
| 268 | + | <xsd:simpleType name="bitType"> | |
| 269 | + | <xsd:restriction base="xsd:integer"> | |
| 270 | + | <xsd:minInclusive value="0" /> | |
| 271 | + | <xsd:maxExclusive value="32" /> | |
| 272 | + | </xsd:restriction> | |
| 273 | + | </xsd:simpleType> | |
| 274 | + | ||
| 275 | + | <!-- Type for documentation --> | |
| 276 | + | <xsd:group name="doc-fields"> | |
| 277 | + | <xsd:sequence> | |
| 278 | + | <xsd:element name="field"> | |
| 279 | + | <xsd:complexType> | |
| 280 | + | <xsd:simpleContent> | |
| 281 | + | <xsd:extension base="xsd:string"> | |
| 282 | + | <xsd:attribute name="name" type="xsd:string" /> | |
| 283 | + | </xsd:extension> | |
| 284 | + | </xsd:simpleContent> | |
| 285 | + | </xsd:complexType> | |
| 286 | + | </xsd:element> | |
| 287 | + | </xsd:sequence> | |
| 288 | + | </xsd:group> | |
| 289 | + | ||
| 290 | + | <xsd:group name="error-fields"> | |
| 291 | + | <xsd:sequence> | |
| 292 | + | <xsd:element name="error"> | |
| 293 | + | <xsd:complexType> | |
| 294 | + | <xsd:simpleContent> | |
| 295 | + | <xsd:extension base="xsd:string"> | |
| 296 | + | <xsd:attribute name="type" type="xsd:string" /> | |
| 297 | + | </xsd:extension> | |
| 298 | + | </xsd:simpleContent> | |
| 299 | + | </xsd:complexType> | |
| 300 | + | </xsd:element> | |
| 301 | + | </xsd:sequence> | |
| 302 | + | </xsd:group> | |
| 303 | + | ||
| 304 | + | <xsd:group name="see-fields"> | |
| 305 | + | <xsd:sequence> | |
| 306 | + | <xsd:element name="see"> | |
| 307 | + | <xsd:complexType> | |
| 308 | + | <xsd:attribute name="name" type="xsd:string" /> | |
| 309 | + | <xsd:attribute name="type" type="xsd:string" /> | |
| 310 | + | </xsd:complexType> | |
| 311 | + | </xsd:element> | |
| 312 | + | </xsd:sequence> | |
| 313 | + | </xsd:group> | |
| 314 | + | ||
| 315 | + | <xsd:element name="doc"> | |
| 316 | + | <xsd:complexType mixed="true"> | |
| 317 | + | <xsd:sequence> | |
| 318 | + | <xsd:element name="brief" type="xsd:string" minOccurs="0" maxOccurs="1" /> | |
| 319 | + | <xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1" /> | |
| 320 | + | <xsd:element name="example" type="xsd:string" minOccurs="0" maxOccurs="1" /> | |
| 321 | + | <xsd:group ref="doc-fields" minOccurs="0" maxOccurs="unbounded" /> | |
| 322 | + | <xsd:group ref="error-fields" minOccurs="0" maxOccurs="unbounded" /> | |
| 323 | + | <xsd:group ref="see-fields" minOccurs="0" maxOccurs="unbounded" /> | |
| 324 | + | </xsd:sequence> | |
| 325 | + | </xsd:complexType> | |
| 326 | + | </xsd:element> | |
| 327 | + | ||
| 328 | + | <xsd:group name="macro"> | |
| 329 | + | <xsd:choice> | |
| 330 | + | <xsd:element name="request"> | |
| 331 | + | <xsd:complexType> | |
| 332 | + | <xsd:sequence> | |
| 333 | + | <xsd:choice minOccurs="0" maxOccurs="unbounded"> | |
| 334 | + | <xsd:group ref="fields" /> | |
| 335 | + | <xsd:element ref="exprfield" /> | |
| 336 | + | </xsd:choice> | |
| 337 | + | <xsd:choice minOccurs="0" maxOccurs="1"> | |
| 338 | + | <xsd:element ref="switch" /> | |
| 339 | + | </xsd:choice> | |
| 340 | + | <xsd:element name="reply" minOccurs="0" maxOccurs="1"> | |
| 341 | + | <xsd:complexType> | |
| 342 | + | <xsd:sequence> | |
| 343 | + | <xsd:choice minOccurs="1" maxOccurs="unbounded"> | |
| 344 | + | <xsd:group ref="fields" /> | |
| 345 | + | </xsd:choice> | |
| 346 | + | <xsd:choice minOccurs="0" maxOccurs="1"> | |
| 347 | + | <xsd:element ref="switch" /> | |
| 348 | + | </xsd:choice> | |
| 349 | + | <xsd:element ref="doc" minOccurs="0" maxOccurs="1" /> | |
| 350 | + | </xsd:sequence> | |
| 351 | + | </xsd:complexType> | |
| 352 | + | </xsd:element> | |
| 353 | + | <xsd:element ref="doc" minOccurs="0" maxOccurs="1" /> | |
| 354 | + | </xsd:sequence> | |
| 355 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |
| 356 | + | <xsd:attribute name="opcode" type="xsd:integer" use="required" /> | |
| 357 | + | <xsd:attribute name="combine-adjacent" type="xsd:boolean" | |
| 358 | + | use="optional" default="false" /> | |
| 359 | + | </xsd:complexType> | |
| 360 | + | </xsd:element> | |
| 361 | + | <xsd:element name="event"> | |
| 362 | + | <xsd:complexType> | |
| 363 | + | <xsd:complexContent> | |
| 364 | + | <xsd:extension base="packet-struct"> | |
| 365 | + | <xsd:sequence> | |
| 366 | + | <xsd:element ref="doc" minOccurs="0" maxOccurs="1" /> | |
| 367 | + | </xsd:sequence> | |
| 368 | + | <xsd:attribute name="no-sequence-number" type="xsd:boolean" | |
| 369 | + | use="optional" default="false" /> | |
| 370 | + | <xsd:attribute name="xge" type="xsd:boolean" | |
| 371 | + | use="optional" default="false" /> | |
| 372 | + | </xsd:extension> | |
| 373 | + | </xsd:complexContent> | |
| 374 | + | </xsd:complexType> | |
| 375 | + | </xsd:element> | |
| 376 | + | <xsd:element name="eventcopy" type="packet-struct-copy" /> | |
| 377 | + | <xsd:element name="error" type="packet-struct" /> | |
| 378 | + | <xsd:element name="errorcopy" type="packet-struct-copy" /> | |
| 379 | + | <xsd:element name="struct" type="struct" /> | |
| 380 | + | <xsd:element name="union" type="struct" /> | |
| 381 | + | <xsd:element name="eventstruct" type="eventstruct" /> | |
| 382 | + | <xsd:element name="xidtype"> | |
| 383 | + | <xsd:complexType> | |
| 384 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |
| 385 | + | </xsd:complexType> | |
| 386 | + | </xsd:element> | |
| 387 | + | <xsd:element name="xidunion"> | |
| 388 | + | <xsd:complexType> | |
| 389 | + | <xsd:sequence> | |
| 390 | + | <xsd:element name="type" type="xsd:string" | |
| 391 | + | minOccurs="1" maxOccurs="unbounded" /> | |
| 392 | + | </xsd:sequence> | |
| 393 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |
| 394 | + | </xsd:complexType> | |
| 395 | + | </xsd:element> | |
| 396 | + | <xsd:element name="enum"> | |
| 397 | + | <xsd:complexType> | |
| 398 | + | <xsd:sequence minOccurs="1" maxOccurs="unbounded"> | |
| 399 | + | <xsd:element name="item"> | |
| 400 | + | <xsd:complexType> | |
| 401 | + | <xsd:choice minOccurs="1" maxOccurs="1"> | |
| 402 | + | <xsd:element name="value" type="xsd:unsignedInt" /> | |
| 403 | + | <xsd:element name="bit" type="bitType" /> | |
| 404 | + | </xsd:choice> | |
| 405 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |
| 406 | + | </xsd:complexType> | |
| 407 | + | </xsd:element> | |
| 408 | + | <xsd:element ref="doc" minOccurs="0" maxOccurs="1" /> | |
| 409 | + | </xsd:sequence> | |
| 410 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |
| 411 | + | </xsd:complexType> | |
| 412 | + | </xsd:element> | |
| 413 | + | <xsd:element name="typedef"> | |
| 414 | + | <xsd:complexType> | |
| 415 | + | <xsd:attribute name="oldname" type="xsd:string" use="required" /> | |
| 416 | + | <xsd:attribute name="newname" type="xsd:string" use="required" /> | |
| 417 | + | </xsd:complexType> | |
| 418 | + | </xsd:element> | |
| 419 | + | <!-- The import element allows a protocol description to reference the | |
| 420 | + | declarations of another protocol description. --> | |
| 421 | + | <xsd:element name="import" type="xsd:string" /> | |
| 422 | + | </xsd:choice> | |
| 423 | + | </xsd:group> | |
| 424 | + | </xsd:schema> | |
| @@ -0,0 +1,424 @@ | |||||
| 1 | + | <?xml version="1.0" encoding="utf-8"?> | |||
| 2 | + | <!-- | |||
| 3 | + | Copyright (C) 2004 Josh Triplett. All Rights Reserved. | |||
| 4 | + | ||||
| 5 | + | Permission is hereby granted, free of charge, to any person obtaining a copy | |||
| 6 | + | of this software and associated documentation files (the "Software"), to deal | |||
| 7 | + | in the Software without restriction, including without limitation the rights | |||
| 8 | + | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||
| 9 | + | copies of the Software, and to permit persons to whom the Software is | |||
| 10 | + | furnished to do so, subject to the following conditions: | |||
| 11 | + | ||||
| 12 | + | The above copyright notice and this permission notice shall be included in all | |||
| 13 | + | copies or substantial portions of the Software. | |||
| 14 | + | ||||
| 15 | + | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||
| 16 | + | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||
| 17 | + | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||
| 18 | + | AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |||
| 19 | + | ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | |||
| 20 | + | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| 21 | + | ||||
| 22 | + | Except as contained in this notice, the names of the authors or their | |||
| 23 | + | institutions shall not be used in advertising or otherwise to promote the | |||
| 24 | + | sale, use or other dealings in this Software without prior written | |||
| 25 | + | authorization from the authors. | |||
| 26 | + | --> | |||
| 27 | + | <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> | |||
| 28 | + | ||||
| 29 | + | <!-- The root element --> | |||
| 30 | + | <xsd:element name="xcb"> | |||
| 31 | + | <xsd:complexType> | |||
| 32 | + | <xsd:group ref="macro" minOccurs="0" maxOccurs="unbounded" /> | |||
| 33 | + | <xsd:attribute name="header" type="xsd:string" use="required" /> | |||
| 34 | + | <xsd:attribute name="extension-xname" type="xsd:string" use="optional" /> | |||
| 35 | + | <xsd:attribute name="extension-name" type="xsd:string" use="optional" /> | |||
| 36 | + | <xsd:attribute name="extension-multiword" type="xsd:boolean" use="optional" default="false" /> | |||
| 37 | + | <xsd:attribute name="major-version" type="xsd:integer" use="optional" /> | |||
| 38 | + | <xsd:attribute name="minor-version" type="xsd:integer" use="optional" /> | |||
| 39 | + | </xsd:complexType> | |||
| 40 | + | </xsd:element> | |||
| 41 | + | ||||
| 42 | + | <!-- Padding --> | |||
| 43 | + | <xsd:element name="pad"> | |||
| 44 | + | <xsd:complexType> | |||
| 45 | + | <xsd:attribute name="bytes" type="xsd:integer" use="optional" /> | |||
| 46 | + | <xsd:attribute name="align" type="xsd:integer" use="optional" /> | |||
| 47 | + | <xsd:attribute name="serialize" type="xsd:boolean" use="optional" /> | |||
| 48 | + | </xsd:complexType> | |||
| 49 | + | </xsd:element> | |||
| 50 | + | ||||
| 51 | + | <!-- Alignment --> | |||
| 52 | + | <xsd:element name="required_start_align" > | |||
| 53 | + | <xsd:complexType> | |||
| 54 | + | <xsd:attribute name="align" type="xsd:integer" use="required" /> | |||
| 55 | + | <xsd:attribute name="offset" type="xsd:integer" use="optional" /> | |||
| 56 | + | </xsd:complexType> | |||
| 57 | + | </xsd:element> | |||
| 58 | + | ||||
| 59 | + | <!-- Type for fields or parameters with attributes "name" and "type" --> | |||
| 60 | + | <xsd:complexType name="var"> | |||
| 61 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |||
| 62 | + | <xsd:attribute name="type" type="xsd:string" use="required" /> | |||
| 63 | + | <xsd:attribute name="enum" type="xsd:string" use="optional" /> | |||
| 64 | + | <xsd:attribute name="altenum" type="xsd:string" use="optional" /> | |||
| 65 | + | <xsd:attribute name="mask" type="xsd:string" use="optional" /> | |||
| 66 | + | <xsd:attribute name="altmask" type="xsd:string" use="optional" /> | |||
| 67 | + | </xsd:complexType> | |||
| 68 | + | ||||
| 69 | + | <!-- case expression --> | |||
| 70 | + | <xsd:complexType name="caseexpr"> | |||
| 71 | + | <xsd:sequence> | |||
| 72 | + | <!-- case expression: --> | |||
| 73 | + | <xsd:group ref="expression" minOccurs="1" maxOccurs="unbounded" /> | |||
| 74 | + | <!-- match --> | |||
| 75 | + | <xsd:group ref="fields" minOccurs="1" maxOccurs="unbounded" /> | |||
| 76 | + | <xsd:choice> | |||
| 77 | + | <xsd:element ref="switch" minOccurs="0" maxOccurs="unbounded" /> | |||
| 78 | + | </xsd:choice> | |||
| 79 | + | </xsd:sequence> | |||
| 80 | + | <xsd:attribute name="name" type="xsd:string" use="optional" /> | |||
| 81 | + | </xsd:complexType> | |||
| 82 | + | ||||
| 83 | + | <!-- switch expression --> | |||
| 84 | + | <xsd:complexType name="switchexpr"> | |||
| 85 | + | <xsd:sequence> | |||
| 86 | + | <!-- switch(expression) --> | |||
| 87 | + | <xsd:group ref="expression" minOccurs="1" maxOccurs="1" /> | |||
| 88 | + | <xsd:element ref="required_start_align" minOccurs="0" maxOccurs="1" /> | |||
| 89 | + | <xsd:choice> | |||
| 90 | + | <!-- bitcase expression - bit test --> | |||
| 91 | + | <xsd:element name="bitcase" type="caseexpr" minOccurs="0" maxOccurs="unbounded" /> | |||
| 92 | + | <!-- case expression - value test --> | |||
| 93 | + | <xsd:element name="case" type="caseexpr" minOccurs="0" maxOccurs="unbounded" /> | |||
| 94 | + | </xsd:choice> | |||
| 95 | + | </xsd:sequence> | |||
| 96 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |||
| 97 | + | </xsd:complexType> | |||
| 98 | + | ||||
| 99 | + | <xsd:element name="switch" type="switchexpr" /> | |||
| 100 | + | ||||
| 101 | + | <!-- field replaces FIELD, PARAM, and REPLY. --> | |||
| 102 | + | <xsd:element name="field" type="var" /> | |||
| 103 | + | ||||
| 104 | + | <!-- Length of data structures --> | |||
| 105 | + | <xsd:element name="length"> | |||
| 106 | + | <xsd:complexType> | |||
| 107 | + | <xsd:group ref="expression" /> | |||
| 108 | + | </xsd:complexType> | |||
| 109 | + | </xsd:element> | |||
| 110 | + | ||||
| 111 | + | <!-- fd passing parameter --> | |||
| 112 | + | <xsd:element name="fd"> | |||
| 113 | + | <xsd:complexType> | |||
| 114 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |||
| 115 | + | </xsd:complexType> | |||
| 116 | + | </xsd:element> | |||
| 117 | + | ||||
| 118 | + | <!-- list replaces ARRAYFIELD, LISTPARAM, and ARRAYREPLY. The name and type | |||
| 119 | + | are specified as attributes. The content is an expression giving the | |||
| 120 | + | length. --> | |||
| 121 | + | <xsd:element name="list"> | |||
| 122 | + | <xsd:complexType> | |||
| 123 | + | <xsd:complexContent> | |||
| 124 | + | <xsd:extension base="var"> | |||
| 125 | + | <xsd:group ref="expression" minOccurs="0" maxOccurs="1" /> | |||
| 126 | + | </xsd:extension> | |||
| 127 | + | </xsd:complexContent> | |||
| 128 | + | </xsd:complexType> | |||
| 129 | + | </xsd:element> | |||
| 130 | + | ||||
| 131 | + | <!-- Expressions --> | |||
| 132 | + | <xsd:group name="expression"> | |||
| 133 | + | <xsd:choice> | |||
| 134 | + | <xsd:element name="op"> | |||
| 135 | + | <xsd:complexType> | |||
| 136 | + | <xsd:sequence> | |||
| 137 | + | <xsd:group ref="expression" /> | |||
| 138 | + | <xsd:group ref="expression" /> | |||
| 139 | + | </xsd:sequence> | |||
| 140 | + | <xsd:attribute name="op" use="required"> | |||
| 141 | + | <xsd:simpleType> | |||
| 142 | + | <xsd:restriction base="xsd:string"> | |||
| 143 | + | <xsd:pattern value="\+|-|\*|/|&|<<" /> | |||
| 144 | + | </xsd:restriction> | |||
| 145 | + | </xsd:simpleType> | |||
| 146 | + | </xsd:attribute> | |||
| 147 | + | </xsd:complexType> | |||
| 148 | + | </xsd:element> | |||
| 149 | + | <xsd:element name="unop"> | |||
| 150 | + | <xsd:complexType> | |||
| 151 | + | <xsd:sequence> | |||
| 152 | + | <xsd:group ref="expression" /> | |||
| 153 | + | </xsd:sequence> | |||
| 154 | + | <xsd:attribute name="op" use="required"> | |||
| 155 | + | <xsd:simpleType> | |||
| 156 | + | <xsd:restriction base="xsd:string"> | |||
| 157 | + | <xsd:pattern value="~" /> | |||
| 158 | + | </xsd:restriction> | |||
| 159 | + | </xsd:simpleType> | |||
| 160 | + | </xsd:attribute> | |||
| 161 | + | </xsd:complexType> | |||
| 162 | + | </xsd:element> | |||
| 163 | + | <xsd:element name="fieldref" type="xsd:string" /> | |||
| 164 | + | <xsd:element name="paramref"> | |||
| 165 | + | <xsd:complexType> | |||
| 166 | + | <xsd:simpleContent> | |||
| 167 | + | <xsd:extension base="xsd:string"> | |||
| 168 | + | <xsd:attribute name="type" use="required" type="xsd:string" /> | |||
| 169 | + | </xsd:extension> | |||
| 170 | + | </xsd:simpleContent> | |||
| 171 | + | </xsd:complexType> | |||
| 172 | + | </xsd:element> | |||
| 173 | + | <xsd:element name="enumref"> | |||
| 174 | + | <xsd:complexType> | |||
| 175 | + | <xsd:simpleContent> | |||
| 176 | + | <xsd:extension base="xsd:string"> | |||
| 177 | + | <xsd:attribute name="ref" use="required" type="xsd:string" /> | |||
| 178 | + | </xsd:extension> | |||
| 179 | + | </xsd:simpleContent> | |||
| 180 | + | </xsd:complexType> | |||
| 181 | + | </xsd:element> | |||
| 182 | + | <xsd:element name="popcount"> | |||
| 183 | + | <xsd:complexType> | |||
| 184 | + | <xsd:group ref="expression" /> | |||
| 185 | + | </xsd:complexType> | |||
| 186 | + | </xsd:element> | |||
| 187 | + | <xsd:element name="sumof"> | |||
| 188 | + | <xsd:complexType> | |||
| 189 | + | <xsd:sequence> | |||
| 190 | + | <xsd:group ref="expression" minOccurs="0" maxOccurs="1"/> | |||
| 191 | + | </xsd:sequence> | |||
| 192 | + | <xsd:attribute name="ref" use="required" type="xsd:string" /> | |||
| 193 | + | </xsd:complexType> | |||
| 194 | + | </xsd:element> | |||
| 195 | + | <xsd:element name="listelement-ref" /> | |||
| 196 | + | <xsd:element name="value" type="xsd:integer" /> | |||
| 197 | + | <xsd:element name="bit" type="bitType" /> | |||
| 198 | + | </xsd:choice> | |||
| 199 | + | </xsd:group> | |||
| 200 | + | ||||
| 201 | + | <!-- Fields in requests that are calculated from other information, not | |||
| 202 | + | supplied by the caller. --> | |||
| 203 | + | <xsd:element name="exprfield" > | |||
| 204 | + | <xsd:complexType> | |||
| 205 | + | <xsd:complexContent> | |||
| 206 | + | <xsd:extension base="var"> | |||
| 207 | + | <xsd:group ref="expression" /> | |||
| 208 | + | </xsd:extension> | |||
| 209 | + | </xsd:complexContent> | |||
| 210 | + | </xsd:complexType> | |||
| 211 | + | </xsd:element> | |||
| 212 | + | ||||
| 213 | + | <xsd:group name="fields"> | |||
| 214 | + | <xsd:choice> | |||
| 215 | + | <xsd:element ref="pad" /> | |||
| 216 | + | <xsd:element ref="field" /> | |||
| 217 | + | <xsd:element ref="list" /> | |||
| 218 | + | <xsd:element ref="fd" /> | |||
| 219 | + | <xsd:element ref="required_start_align" /> | |||
| 220 | + | <xsd:element ref="length" /> | |||
| 221 | + | </xsd:choice> | |||
| 222 | + | </xsd:group> | |||
| 223 | + | ||||
| 224 | + | <!-- Type for a structure --> | |||
| 225 | + | <xsd:complexType name="struct"> | |||
| 226 | + | <xsd:sequence> | |||
| 227 | + | <xsd:group ref="fields" minOccurs="1" maxOccurs="unbounded" /> | |||
| 228 | + | <xsd:choice minOccurs="0" maxOccurs="1"> | |||
| 229 | + | <xsd:element ref="switch" /> | |||
| 230 | + | </xsd:choice> | |||
| 231 | + | </xsd:sequence> | |||
| 232 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |||
| 233 | + | </xsd:complexType> | |||
| 234 | + | ||||
| 235 | + | <!-- Type for a packet structure --> | |||
| 236 | + | <xsd:complexType name="packet-struct"> | |||
| 237 | + | <xsd:sequence> | |||
| 238 | + | <xsd:group ref="fields" minOccurs="0" maxOccurs="unbounded" /> | |||
| 239 | + | </xsd:sequence> | |||
| 240 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |||
| 241 | + | <xsd:attribute name="number" type="xsd:integer" use="required" /> | |||
| 242 | + | </xsd:complexType> | |||
| 243 | + | ||||
| 244 | + | <!-- Type for a packet structure copy --> | |||
| 245 | + | <xsd:complexType name="packet-struct-copy"> | |||
| 246 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |||
| 247 | + | <xsd:attribute name="number" type="xsd:integer" use="required" /> | |||
| 248 | + | <xsd:attribute name="ref" type="xsd:string" use="required" /> | |||
| 249 | + | </xsd:complexType> | |||
| 250 | + | ||||
| 251 | + | <!-- Type for a structure that is an event | |||
| 252 | + | which can be of an event type from a set of event types --> | |||
| 253 | + | <xsd:complexType name="eventstruct"> | |||
| 254 | + | <xsd:sequence> | |||
| 255 | + | <xsd:element name="allowed"> | |||
| 256 | + | <xsd:complexType> | |||
| 257 | + | <xsd:attribute name="extension" type="xsd:string" use="required" /> | |||
| 258 | + | <xsd:attribute name="xge" type="xsd:boolean" use="required" /> | |||
| 259 | + | <xsd:attribute name="opcode-min" type="xsd:integer" use="required" /> | |||
| 260 | + | <xsd:attribute name="opcode-max" type="xsd:integer" use="required" /> | |||
| 261 | + | </xsd:complexType> | |||
| 262 | + | </xsd:element> | |||
| 263 | + | </xsd:sequence> | |||
| 264 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |||
| 265 | + | </xsd:complexType> | |||
| 266 | + | ||||
| 267 | + | <!-- Type for bit values --> | |||
| 268 | + | <xsd:simpleType name="bitType"> | |||
| 269 | + | <xsd:restriction base="xsd:integer"> | |||
| 270 | + | <xsd:minInclusive value="0" /> | |||
| 271 | + | <xsd:maxExclusive value="32" /> | |||
| 272 | + | </xsd:restriction> | |||
| 273 | + | </xsd:simpleType> | |||
| 274 | + | ||||
| 275 | + | <!-- Type for documentation --> | |||
| 276 | + | <xsd:group name="doc-fields"> | |||
| 277 | + | <xsd:sequence> | |||
| 278 | + | <xsd:element name="field"> | |||
| 279 | + | <xsd:complexType> | |||
| 280 | + | <xsd:simpleContent> | |||
| 281 | + | <xsd:extension base="xsd:string"> | |||
| 282 | + | <xsd:attribute name="name" type="xsd:string" /> | |||
| 283 | + | </xsd:extension> | |||
| 284 | + | </xsd:simpleContent> | |||
| 285 | + | </xsd:complexType> | |||
| 286 | + | </xsd:element> | |||
| 287 | + | </xsd:sequence> | |||
| 288 | + | </xsd:group> | |||
| 289 | + | ||||
| 290 | + | <xsd:group name="error-fields"> | |||
| 291 | + | <xsd:sequence> | |||
| 292 | + | <xsd:element name="error"> | |||
| 293 | + | <xsd:complexType> | |||
| 294 | + | <xsd:simpleContent> | |||
| 295 | + | <xsd:extension base="xsd:string"> | |||
| 296 | + | <xsd:attribute name="type" type="xsd:string" /> | |||
| 297 | + | </xsd:extension> | |||
| 298 | + | </xsd:simpleContent> | |||
| 299 | + | </xsd:complexType> | |||
| 300 | + | </xsd:element> | |||
| 301 | + | </xsd:sequence> | |||
| 302 | + | </xsd:group> | |||
| 303 | + | ||||
| 304 | + | <xsd:group name="see-fields"> | |||
| 305 | + | <xsd:sequence> | |||
| 306 | + | <xsd:element name="see"> | |||
| 307 | + | <xsd:complexType> | |||
| 308 | + | <xsd:attribute name="name" type="xsd:string" /> | |||
| 309 | + | <xsd:attribute name="type" type="xsd:string" /> | |||
| 310 | + | </xsd:complexType> | |||
| 311 | + | </xsd:element> | |||
| 312 | + | </xsd:sequence> | |||
| 313 | + | </xsd:group> | |||
| 314 | + | ||||
| 315 | + | <xsd:element name="doc"> | |||
| 316 | + | <xsd:complexType mixed="true"> | |||
| 317 | + | <xsd:sequence> | |||
| 318 | + | <xsd:element name="brief" type="xsd:string" minOccurs="0" maxOccurs="1" /> | |||
| 319 | + | <xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1" /> | |||
| 320 | + | <xsd:element name="example" type="xsd:string" minOccurs="0" maxOccurs="1" /> | |||
| 321 | + | <xsd:group ref="doc-fields" minOccurs="0" maxOccurs="unbounded" /> | |||
| 322 | + | <xsd:group ref="error-fields" minOccurs="0" maxOccurs="unbounded" /> | |||
| 323 | + | <xsd:group ref="see-fields" minOccurs="0" maxOccurs="unbounded" /> | |||
| 324 | + | </xsd:sequence> | |||
| 325 | + | </xsd:complexType> | |||
| 326 | + | </xsd:element> | |||
| 327 | + | ||||
| 328 | + | <xsd:group name="macro"> | |||
| 329 | + | <xsd:choice> | |||
| 330 | + | <xsd:element name="request"> | |||
| 331 | + | <xsd:complexType> | |||
| 332 | + | <xsd:sequence> | |||
| 333 | + | <xsd:choice minOccurs="0" maxOccurs="unbounded"> | |||
| 334 | + | <xsd:group ref="fields" /> | |||
| 335 | + | <xsd:element ref="exprfield" /> | |||
| 336 | + | </xsd:choice> | |||
| 337 | + | <xsd:choice minOccurs="0" maxOccurs="1"> | |||
| 338 | + | <xsd:element ref="switch" /> | |||
| 339 | + | </xsd:choice> | |||
| 340 | + | <xsd:element name="reply" minOccurs="0" maxOccurs="1"> | |||
| 341 | + | <xsd:complexType> | |||
| 342 | + | <xsd:sequence> | |||
| 343 | + | <xsd:choice minOccurs="1" maxOccurs="unbounded"> | |||
| 344 | + | <xsd:group ref="fields" /> | |||
| 345 | + | </xsd:choice> | |||
| 346 | + | <xsd:choice minOccurs="0" maxOccurs="1"> | |||
| 347 | + | <xsd:element ref="switch" /> | |||
| 348 | + | </xsd:choice> | |||
| 349 | + | <xsd:element ref="doc" minOccurs="0" maxOccurs="1" /> | |||
| 350 | + | </xsd:sequence> | |||
| 351 | + | </xsd:complexType> | |||
| 352 | + | </xsd:element> | |||
| 353 | + | <xsd:element ref="doc" minOccurs="0" maxOccurs="1" /> | |||
| 354 | + | </xsd:sequence> | |||
| 355 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |||
| 356 | + | <xsd:attribute name="opcode" type="xsd:integer" use="required" /> | |||
| 357 | + | <xsd:attribute name="combine-adjacent" type="xsd:boolean" | |||
| 358 | + | use="optional" default="false" /> | |||
| 359 | + | </xsd:complexType> | |||
| 360 | + | </xsd:element> | |||
| 361 | + | <xsd:element name="event"> | |||
| 362 | + | <xsd:complexType> | |||
| 363 | + | <xsd:complexContent> | |||
| 364 | + | <xsd:extension base="packet-struct"> | |||
| 365 | + | <xsd:sequence> | |||
| 366 | + | <xsd:element ref="doc" minOccurs="0" maxOccurs="1" /> | |||
| 367 | + | </xsd:sequence> | |||
| 368 | + | <xsd:attribute name="no-sequence-number" type="xsd:boolean" | |||
| 369 | + | use="optional" default="false" /> | |||
| 370 | + | <xsd:attribute name="xge" type="xsd:boolean" | |||
| 371 | + | use="optional" default="false" /> | |||
| 372 | + | </xsd:extension> | |||
| 373 | + | </xsd:complexContent> | |||
| 374 | + | </xsd:complexType> | |||
| 375 | + | </xsd:element> | |||
| 376 | + | <xsd:element name="eventcopy" type="packet-struct-copy" /> | |||
| 377 | + | <xsd:element name="error" type="packet-struct" /> | |||
| 378 | + | <xsd:element name="errorcopy" type="packet-struct-copy" /> | |||
| 379 | + | <xsd:element name="struct" type="struct" /> | |||
| 380 | + | <xsd:element name="union" type="struct" /> | |||
| 381 | + | <xsd:element name="eventstruct" type="eventstruct" /> | |||
| 382 | + | <xsd:element name="xidtype"> | |||
| 383 | + | <xsd:complexType> | |||
| 384 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |||
| 385 | + | </xsd:complexType> | |||
| 386 | + | </xsd:element> | |||
| 387 | + | <xsd:element name="xidunion"> | |||
| 388 | + | <xsd:complexType> | |||
| 389 | + | <xsd:sequence> | |||
| 390 | + | <xsd:element name="type" type="xsd:string" | |||
| 391 | + | minOccurs="1" maxOccurs="unbounded" /> | |||
| 392 | + | </xsd:sequence> | |||
| 393 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |||
| 394 | + | </xsd:complexType> | |||
| 395 | + | </xsd:element> | |||
| 396 | + | <xsd:element name="enum"> | |||
| 397 | + | <xsd:complexType> | |||
| 398 | + | <xsd:sequence minOccurs="1" maxOccurs="unbounded"> | |||
| 399 | + | <xsd:element name="item"> | |||
| 400 | + | <xsd:complexType> | |||
| 401 | + | <xsd:choice minOccurs="1" maxOccurs="1"> | |||
| 402 | + | <xsd:element name="value" type="xsd:unsignedInt" /> | |||
| 403 | + | <xsd:element name="bit" type="bitType" /> | |||
| 404 | + | </xsd:choice> | |||
| 405 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |||
| 406 | + | </xsd:complexType> | |||
| 407 | + | </xsd:element> | |||
| 408 | + | <xsd:element ref="doc" minOccurs="0" maxOccurs="1" /> | |||
| 409 | + | </xsd:sequence> | |||
| 410 | + | <xsd:attribute name="name" type="xsd:string" use="required" /> | |||
| 411 | + | </xsd:complexType> | |||
| 412 | + | </xsd:element> | |||
| 413 | + | <xsd:element name="typedef"> | |||
| 414 | + | <xsd:complexType> | |||
| 415 | + | <xsd:attribute name="oldname" type="xsd:string" use="required" /> | |||
| 416 | + | <xsd:attribute name="newname" type="xsd:string" use="required" /> | |||
| 417 | + | </xsd:complexType> | |||
| 418 | + | </xsd:element> | |||
| 419 | + | <!-- The import element allows a protocol description to reference the | |||
| 420 | + | declarations of another protocol description. --> | |||
| 421 | + | <xsd:element name="import" type="xsd:string" /> | |||
| 422 | + | </xsd:choice> | |||
| 423 | + | </xsd:group> | |||
| 424 | + | </xsd:schema> | |||
A spec/xml/bigreq.xml +52 -0
| @@ -0,0 +1,52 @@ | |||
| 1 | + | <?xml version="1.0" encoding="utf-8"?> | |
| 2 | + | <!-- | |
| 3 | + | Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett. | |
| 4 | + | All Rights Reserved. | |
| 5 | + | ||
| 6 | + | Permission is hereby granted, free of charge, to any person obtaining a copy | |
| 7 | + | of this software and associated documentation files (the "Software"), to deal | |
| 8 | + | in the Software without restriction, including without limitation the rights | |
| 9 | + | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
| 10 | + | copies of the Software, and to permit persons to whom the Software is | |
| 11 | + | furnished to do so, subject to the following conditions: | |
| 12 | + | ||
| 13 | + | The above copyright notice and this permission notice shall be included in all | |
| 14 | + | copies or substantial portions of the Software. | |
| 15 | + | ||
| 16 | + | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
| 17 | + | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
| 18 | + | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
| 19 | + | AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |
| 20 | + | ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | |
| 21 | + | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |
| 22 | + | ||
| 23 | + | Except as contained in this notice, the names of the authors or their | |
| 24 | + | institutions shall not be used in advertising or otherwise to promote the | |
| 25 | + | sale, use or other dealings in this Software without prior written | |
| 26 | + | authorization from the authors. | |
| 27 | + | --> | |
| 28 | + | <xcb header="bigreq" extension-xname="BIG-REQUESTS" | |
| 29 | + | extension-name="BigRequests" extension-multiword="true" | |
| 30 | + | major-version="0" minor-version="0"> | |
| 31 | + | ||
| 32 | + | <request name="Enable" opcode="0"> | |
| 33 | + | <reply> | |
| 34 | + | <pad bytes="1" /> | |
| 35 | + | <field type="CARD32" name="maximum_request_length" /> | |
| 36 | + | <doc> | |
| 37 | + | <field name="maximum_request_length"> | |
| 38 | + | The maximum length of requests supported by the server, in 4-byte units. | |
| 39 | + | </field> | |
| 40 | + | </doc> | |
| 41 | + | </reply> | |
| 42 | + | <doc> | |
| 43 | + | <brief>Enable the BIG-REQUESTS extension</brief> | |
| 44 | + | <description> | |
| 45 | + | This enables the BIG-REQUESTS extension, which allows for requests larger than | |
| 46 | + | 262140 bytes in length. When enabled, if the 16-bit length field is zero, it | |
| 47 | + | is immediately followed by a 32-bit length field specifying the length of the | |
| 48 | + | request in 4-byte units. | |
| 49 | + | </description> | |
| 50 | + | </doc> | |
| 51 | + | </request> | |
| 52 | + | </xcb> | |
| @@ -0,0 +1,52 @@ | |||||
| 1 | + | <?xml version="1.0" encoding="utf-8"?> | |||
| 2 | + | <!-- | |||
| 3 | + | Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett. | |||
| 4 | + | All Rights Reserved. | |||
| 5 | + | ||||
| 6 | + | Permission is hereby granted, free of charge, to any person obtaining a copy | |||
| 7 | + | of this software and associated documentation files (the "Software"), to deal | |||
| 8 | + | in the Software without restriction, including without limitation the rights | |||
| 9 | + | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||
| 10 | + | copies of the Software, and to permit persons to whom the Software is | |||
| 11 | + | furnished to do so, subject to the following conditions: | |||
| 12 | + | ||||
| 13 | + | The above copyright notice and this permission notice shall be included in all | |||
| 14 | + | copies or substantial portions of the Software. | |||
| 15 | + | ||||
| 16 | + | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||
| 17 | + | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||
| 18 | + | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||
| 19 | + | AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |||
| 20 | + | ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | |||
| 21 | + | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| 22 | + | ||||
| 23 | + | Except as contained in this notice, the names of the authors or their | |||
| 24 | + | institutions shall not be used in advertising or otherwise to promote the | |||
| 25 | + | sale, use or other dealings in this Software without prior written | |||
| 26 | + | authorization from the authors. | |||
| 27 | + | --> | |||
| 28 | + | <xcb header="bigreq" extension-xname="BIG-REQUESTS" | |||
| 29 | + | extension-name="BigRequests" extension-multiword="true" | |||
| 30 | + | major-version="0" minor-version="0"> | |||
| 31 | + | ||||
| 32 | + | <request name="Enable" opcode="0"> | |||
| 33 | + | <reply> | |||
| 34 | + | <pad bytes="1" /> | |||
| 35 | + | <field type="CARD32" name="maximum_request_length" /> | |||
| 36 | + | <doc> | |||
| 37 | + | <field name="maximum_request_length"> | |||
| 38 | + | The maximum length of requests supported by the server, in 4-byte units. | |||
| 39 | + | </field> | |||
| 40 | + | </doc> | |||
| 41 | + | </reply> | |||
| 42 | + | <doc> | |||
| 43 | + | <brief>Enable the BIG-REQUESTS extension</brief> | |||
| 44 | + | <description> | |||
| 45 | + | This enables the BIG-REQUESTS extension, which allows for requests larger than | |||
| 46 | + | 262140 bytes in length. When enabled, if the 16-bit length field is zero, it | |||
| 47 | + | is immediately followed by a 32-bit length field specifying the length of the | |||
| 48 | + | request in 4-byte units. | |||
| 49 | + | </description> | |||
| 50 | + | </doc> | |||
| 51 | + | </request> | |||
| 52 | + | </xcb> | |||
A spec/xml/composite.xml +220 -0
| @@ -0,0 +1,220 @@ | |||
| 1 | + | <?xml version="1.0" encoding="utf-8"?> | |
| 2 | + | <!-- | |
| 3 | + | Copyright (C) 2004 Josh Triplett. All Rights Reserved. | |
| 4 | + | ||
| 5 | + | Permission is hereby granted, free of charge, to any person obtaining a copy | |
| 6 | + | of this software and associated documentation files (the "Software"), to deal | |
| 7 | + | in the Software without restriction, including without limitation the rights | |
| 8 | + | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
| 9 | + | copies of the Software, and to permit persons to whom the Software is | |
| 10 | + | furnished to do so, subject to the following conditions: | |
| 11 | + | ||
| 12 | + | The above copyright notice and this permission notice shall be included in all | |
| 13 | + | copies or substantial portions of the Software. | |
| 14 | + | ||
| 15 | + | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
| 16 | + | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
| 17 | + | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
| 18 | + | AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |
| 19 | + | ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | |
| 20 | + | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |
| 21 | + | ||
| 22 | + | Except as contained in this notice, the names of the authors or their | |
| 23 | + | institutions shall not be used in advertising or otherwise to promote the | |
| 24 | + | sale, use or other dealings in this Software without prior written | |
| 25 | + | authorization from the authors. | |
| 26 | + | ||
| 27 | + | Copyright (c) 2006, Oracle and/or its affiliates. | |
| 28 | + | ||
| 29 | + | Permission is hereby granted, free of charge, to any person obtaining a | |
| 30 | + | copy of this software and associated documentation files (the "Software"), | |
| 31 | + | to deal in the Software without restriction, including without limitation | |
| 32 | + | the rights to use, copy, modify, merge, publish, distribute, sublicense, | |
| 33 | + | and/or sell copies of the Software, and to permit persons to whom the | |
| 34 | + | Software is furnished to do so, subject to the following conditions: | |
| 35 | + | ||
| 36 | + | The above copyright notice and this permission notice (including the next | |
| 37 | + | paragraph) shall be included in all copies or substantial portions of the | |
| 38 | + | Software. | |
| 39 | + | ||
| 40 | + | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
| 41 | + | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
| 42 | + | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | |
| 43 | + | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
| 44 | + | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | |
| 45 | + | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | |
| 46 | + | DEALINGS IN THE SOFTWARE. | |
| 47 | + | ||
| 48 | + | Copyright © 2003 Keith Packard | |
| 49 | + | ||
| 50 | + | Permission to use, copy, modify, distribute, and sell this software and its | |
| 51 | + | documentation for any purpose is hereby granted without fee, provided that | |
| 52 | + | the above copyright notice appear in all copies and that both that | |
| 53 | + | copyright notice and this permission notice appear in supporting | |
| 54 | + | documentation, and that the name of Keith Packard not be used in | |
| 55 | + | advertising or publicity pertaining to distribution of the software without | |
| 56 | + | specific, written prior permission. Keith Packard makes no | |
| 57 | + | representations about the suitability of this software for any purpose. It | |
| 58 | + | is provided "as is" without express or implied warranty. | |
| 59 | + | ||
| 60 | + | KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, | |
| 61 | + | INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO | |
| 62 | + | EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR | |
| 63 | + | CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, | |
| 64 | + | DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER | |
| 65 | + | TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | |
| 66 | + | PERFORMANCE OF THIS SOFTWARE. | |
| 67 | + | ||
| 68 | + | --> | |
| 69 | + | <!-- This file describes version 0.3 of COMPOSITE. --> | |
| 70 | + | <xcb header="composite" extension-xname="Composite" extension-name="Composite" | |
| 71 | + | major-version="0" minor-version="4"> | |
| 72 | + | ||
| 73 | + | <import>xproto</import> | |
| 74 | + | <import>xfixes</import> | |
| 75 | + | ||
| 76 | + | <enum name="Redirect"> | |
| 77 | + | <item name="Automatic"> <value>0</value> </item> | |
| 78 | + | <item name="Manual"> <value>1</value> </item> | |
| 79 | + | </enum> | |
| 80 | + | ||
| 81 | + | <request name="QueryVersion" opcode="0"> | |
| 82 | + | <field type="CARD32" name="client_major_version" /> | |
| 83 | + | <field type="CARD32" name="client_minor_version" /> | |
| 84 | + | <reply> | |
| 85 | + | <pad bytes="1" /> | |
| 86 | + | <field type="CARD32" name="major_version" /> | |
| 87 | + | <field type="CARD32" name="minor_version" /> | |
| 88 | + | <pad bytes="16" /> | |
| 89 | + | <doc> | |
| 90 | + | <brief>The negotiated version of Composite</brief> | |
| 91 | + | <description> | |
| 92 | + | This indicates the version of Composite chosen by the server. It will always be | |
| 93 | + | less than or equal to the version offered by the client. | |
| 94 | + | </description> | |
| 95 | + | <field name="major_version">The major version chosen by the server.</field> | |
| 96 | + | <field name="minor_version">The minor version chosen by the server.</field> | |
| 97 | + | </doc> | |
| 98 | + | </reply> | |
| 99 | + | <doc> | |
| 100 | + | <brief>Negotiate the version of Composite</brief> | |
| 101 | + | <description> | |
| 102 | + | This negotiates the version of the Composite extension. It must be precede all | |
| 103 | + | other requests using Composite. Failure to do so will cause a BadRequest error. | |
| 104 | + | </description> | |
| 105 | + | <field name="client_major_version">The major version supported by the client.</field> | |
| 106 | + | <field name="client_minor_version">The minor version supported by the client.</field> | |
| 107 | + | </doc> | |
| 108 | + | </request> | |
| 109 | + | ||
| 110 | + | <request name="RedirectWindow" opcode="1"> | |
| 111 | + | <field type="WINDOW" name="window" /> | |
| 112 | + | <field type="CARD8" name="update" enum="Redirect" /> | |
| 113 | + | <pad bytes="3" /> | |
| 114 | + | <doc> | |
| 115 | + | <brief>Redirect the hierarchy starting at "window" to off-screen storage.</brief> | |
| 116 | + | <description> | |
| 117 | + | The hierarchy starting at 'window' is directed to off-screen | |
| 118 | + | storage. When all clients enabling redirection terminate, | |
| 119 | + | the redirection will automatically be disabled. | |
| 120 | + | ||
| 121 | + | The root window may not be redirected. Doing so results in a Match | |
| 122 | + | error. | |
| 123 | + | </description> | |
| 124 | + | <field name="window">The root of the hierarchy to redirect to off-screen storage.</field> | |
| 125 | + | <field name="update"> | |
| 126 | + | Whether contents are automatically mirrored to the parent window. If one client | |
| 127 | + | already specifies an update type of Manual, any attempt by another to specify a | |
| 128 | + | mode of Manual so will result in an Access error. | |
| 129 | + | </field> | |
| 130 | + | </doc> | |
| 131 | + | </request> | |
| 132 | + | ||
| 133 | + | <request name="RedirectSubwindows" opcode="2"> | |
| 134 | + | <field type="WINDOW" name="window" /> | |
| 135 | + | <field type="CARD8" name="update" enum="Redirect" /> | |
| 136 | + | <pad bytes="3" /> | |
| 137 | + | <doc> | |
| 138 | + | <brief>Redirect all current and future children of ‘window’</brief> | |
| 139 | + | <description> | |
| 140 | + | Hierarchies starting at all current and future children of window | |
| 141 | + | will be redirected as in RedirectWindow. If update is Manual, | |
| 142 | + | then painting of the window background during window manipulation | |
| 143 | + | and ClearArea requests is inhibited. | |
| 144 | + | </description> | |
| 145 | + | <field name="window">The root of the hierarchy to redirect to off-screen storage.</field> | |
| 146 | + | <field name="update"> | |
| 147 | + | Whether contents are automatically mirrored to the parent window. If one client | |
| 148 | + | already specifies an update type of Manual, any attempt by another to specify a | |
| 149 | + | mode of Manual so will result in an Access error. | |
| 150 | + | </field> | |
| 151 | + | </doc> | |
| 152 | + | </request> | |
| 153 | + | ||
| 154 | + | <request name="UnredirectWindow" opcode="3"> | |
| 155 | + | <field type="WINDOW" name="window" /> | |
| 156 | + | <field type="CARD8" name="update" enum="Redirect" /> | |
| 157 | + | <pad bytes="3" /> | |
| 158 | + | <doc> | |
| 159 | + | <brief>Terminate redirection of the specified window.</brief> | |
| 160 | + | <description> | |
| 161 | + | Redirection of the specified window will be terminated. This cannot be | |
| 162 | + | used if the window was redirected with RedirectSubwindows. | |
| 163 | + | </description> | |
| 164 | + | <field name="window"> | |
| 165 | + | The window to terminate redirection of. Must be redirected by the | |
| 166 | + | current client, or a Value error results. | |
| 167 | + | </field> | |
| 168 | + | <field name="update"> | |
| 169 | + | The update type passed to RedirectWindows. If this does not match the | |
| 170 | + | previously requested update type, a Value error results. | |
| 171 | + | </field> | |
| 172 | + | </doc> | |
| 173 | + | </request> | |
| 174 | + | ||
| 175 | + | <request name="UnredirectSubwindows" opcode="4"> | |
| 176 | + | <field type="WINDOW" name="window" /> | |
| 177 | + | <field type="CARD8" name="update" enum="Redirect" /> | |
| 178 | + | <pad bytes="3" /> | |
| 179 | + | <doc> | |
| 180 | + | <brief>Terminate redirection of the specified window’s children</brief> | |
| 181 | + | <description> | |
| 182 | + | Redirection of all children of window will be terminated. | |
| 183 | + | </description> | |
| 184 | + | <field name="window"> | |
| 185 | + | The window to terminate redirection of. Must have previously been | |
| 186 | + | selected for sub-redirection by the current client, or a Value error | |
| 187 | + | results. | |
| 188 | + | </field> | |
| 189 | + | <field name="update"> | |
| 190 | + | The update type passed to RedirectSubWindows. If this does not match | |
| 191 | + | the previously requested update type, a Value error results. | |
| 192 | + | </field> | |
| 193 | + | </doc> | |
| 194 | + | </request> | |
| 195 | + | ||
| 196 | + | <request name="CreateRegionFromBorderClip" opcode="5"> | |
| 197 | + | <field type="REGION" name="region" /> | |
| 198 | + | <field type="WINDOW" name="window" /> | |
| 199 | + | </request> | |
| 200 | + | ||
| 201 | + | <request name="NameWindowPixmap" opcode="6"> | |
| 202 | + | <field type="WINDOW" name="window" /> | |
| 203 | + | <field type="PIXMAP" name="pixmap" /> | |
| 204 | + | </request> | |
| 205 | + | ||
| 206 | + | <!-- new in version 0.3 --> | |
| 207 | + | ||
| 208 | + | <request name="GetOverlayWindow" opcode="7"> | |
| 209 | + | <field type="WINDOW" name="window" /> | |
| 210 | + | <reply> | |
| 211 | + | <pad bytes="1" /> | |
| 212 | + | <field type="WINDOW" name="overlay_win" /> | |
| 213 | + | <pad bytes="20" /> | |
| 214 | + | </reply> | |
| 215 | + | </request> | |
| 216 | + | ||
| 217 | + | <request name="ReleaseOverlayWindow" opcode="8"> | |
| 218 | + | <field type="WINDOW" name="window" /> | |
| 219 | + | </request> | |
| 220 | + | </xcb> | |
| @@ -0,0 +1,220 @@ | |||||
| 1 | + | <?xml version="1.0" encoding="utf-8"?> | |||
| 2 | + | <!-- | |||
| 3 | + | Copyright (C) 2004 Josh Triplett. All Rights Reserved. | |||
| 4 | + | ||||
| 5 | + | Permission is hereby granted, free of charge, to any person obtaining a copy | |||
| 6 | + | of this software and associated documentation files (the "Software"), to deal | |||
| 7 | + | in the Software without restriction, including without limitation the rights | |||
| 8 | + | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||
| 9 | + | copies of the Software, and to permit persons to whom the Software is | |||
| 10 | + | furnished to do so, subject to the following conditions: | |||
| 11 | + | ||||
| 12 | + | The above copyright notice and this permission notice shall be included in all | |||
| 13 | + | copies or substantial portions of the Software. | |||
| 14 | + | ||||
| 15 | + | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||
| 16 | + | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||
| 17 | + | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||
| 18 | + | AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |||
| 19 | + | ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | |||
| 20 | + | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| 21 | + | ||||
| 22 | + | Except as contained in this notice, the names of the authors or their | |||
| 23 | + | institutions shall not be used in advertising or otherwise to promote the | |||
| 24 | + | sale, use or other dealings in this Software without prior written | |||
| 25 | + | authorization from the authors. | |||
| 26 | + | ||||
| 27 | + | Copyright (c) 2006, Oracle and/or its affiliates. | |||
| 28 | + | ||||
| 29 | + | Permission is hereby granted, free of charge, to any person obtaining a | |||
| 30 | + | copy of this software and associated documentation files (the "Software"), | |||
| 31 | + | to deal in the Software without restriction, including without limitation | |||
| 32 | + | the rights to use, copy, modify, merge, publish, distribute, sublicense, | |||
| 33 | + | and/or sell copies of the Software, and to permit persons to whom the | |||
| 34 | + | Software is furnished to do so, subject to the following conditions: | |||
| 35 | + | ||||
| 36 | + | The above copyright notice and this permission notice (including the next | |||
| 37 | + | paragraph) shall be included in all copies or substantial portions of the | |||
| 38 | + | Software. | |||
| 39 | + | ||||
| 40 | + | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||
| 41 | + | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||
| 42 | + | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | |||
| 43 | + | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||
| 44 | + | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | |||
| 45 | + | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | |||
| 46 | + | DEALINGS IN THE SOFTWARE. | |||
| 47 | + | ||||
| 48 | + | Copyright © 2003 Keith Packard | |||
| 49 | + | ||||
| 50 | + | Permission to use, copy, modify, distribute, and sell this software and its | |||
| 51 | + | documentation for any purpose is hereby granted without fee, provided that | |||
| 52 | + | the above copyright notice appear in all copies and that both that | |||
| 53 | + | copyright notice and this permission notice appear in supporting | |||
| 54 | + | documentation, and that the name of Keith Packard not be used in | |||
| 55 | + | advertising or publicity pertaining to distribution of the software without | |||
| 56 | + | specific, written prior permission. Keith Packard makes no | |||
| 57 | + | representations about the suitability of this software for any purpose. It | |||
| 58 | + | is provided "as is" without express or implied warranty. | |||
| 59 | + | ||||
| 60 | + | KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, | |||
| 61 | + | INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO | |||
| 62 | + | EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR | |||
| 63 | + | CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, | |||
| 64 | + | DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER | |||
| 65 | + | TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | |||
| 66 | + | PERFORMANCE OF THIS SOFTWARE. | |||
| 67 | + | ||||
| 68 | + | --> | |||
| 69 | + | <!-- This file describes version 0.3 of COMPOSITE. --> | |||
| 70 | + | <xcb header="composite" extension-xname="Composite" extension-name="Composite" | |||
| 71 | + | major-version="0" minor-version="4"> | |||
| 72 | + | ||||
| 73 | + | <import>xproto</import> | |||
| 74 | + | <import>xfixes</import> | |||
| 75 | + | ||||
| 76 | + | <enum name="Redirect"> | |||
| 77 | + | <item name="Automatic"> <value>0</value> </item> | |||
| 78 | + | <item name="Manual"> <value>1</value> </item> | |||
| 79 | + | </enum> | |||
| 80 | + | ||||
| 81 | + | <request name="QueryVersion" opcode="0"> | |||
| 82 | + | <field type="CARD32" name="client_major_version" /> | |||
| 83 | + | <field type="CARD32" name="client_minor_version" /> | |||
| 84 | + | <reply> | |||
| 85 | + | <pad bytes="1" /> | |||
| 86 | + | <field type="CARD32" name="major_version" /> | |||
| 87 | + | <field type="CARD32" name="minor_version" /> | |||
| 88 | + | <pad bytes="16" /> | |||
| 89 | + | <doc> | |||
| 90 | + | <brief>The negotiated version of Composite</brief> | |||
| 91 | + | <description> | |||
| 92 | + | This indicates the version of Composite chosen by the server. It will always be | |||
| 93 | + | less than or equal to the version offered by the client. | |||
| 94 | + | </description> | |||
| 95 | + | <field name="major_version">The major version chosen by the server.</field> | |||
| 96 | + | <field name="minor_version">The minor version chosen by the server.</field> | |||
| 97 | + | </doc> | |||
| 98 | + | </reply> | |||
| 99 | + | <doc> | |||
| 100 | + | <brief>Negotiate the version of Composite</brief> | |||
| 101 | + | <description> | |||
| 102 | + | This negotiates the version of the Composite extension. It must be precede all | |||
| 103 | + | other requests using Composite. Failure to do so will cause a BadRequest error. | |||
| 104 | + | </description> | |||
| 105 | + | <field name="client_major_version">The major version supported by the client.</field> | |||
| 106 | + | <field name="client_minor_version">The minor version supported by the client.</field> | |||
| 107 | + | </doc> | |||
| 108 | + | </request> | |||
| 109 | + | ||||
| 110 | + | <request name="RedirectWindow" opcode="1"> | |||
| 111 | + | <field type="WINDOW" name="window" /> | |||
| 112 | + | <field type="CARD8" name="update" enum="Redirect" /> | |||
| 113 | + | <pad bytes="3" /> | |||
| 114 | + | <doc> | |||
| 115 | + | <brief>Redirect the hierarchy starting at "window" to off-screen storage.</brief> | |||
| 116 | + | <description> | |||
| 117 | + | The hierarchy starting at 'window' is directed to off-screen | |||
| 118 | + | storage. When all clients enabling redirection terminate, | |||
| 119 | + | the redirection will automatically be disabled. | |||
| 120 | + | ||||
| 121 | + | The root window may not be redirected. Doing so results in a Match | |||
| 122 | + | error. | |||
| 123 | + | </description> | |||
| 124 | + | <field name="window">The root of the hierarchy to redirect to off-screen storage.</field> | |||
| 125 | + | <field name="update"> | |||
| 126 | + | Whether contents are automatically mirrored to the parent window. If one client | |||
| 127 | + | already specifies an update type of Manual, any attempt by another to specify a | |||
| 128 | + | mode of Manual so will result in an Access error. | |||
| 129 | + | </field> | |||
| 130 | + | </doc> | |||
| 131 | + | </request> | |||
| 132 | + | ||||
| 133 | + | <request name="RedirectSubwindows" opcode="2"> | |||
| 134 | + | <field type="WINDOW" name="window" /> | |||
| 135 | + | <field type="CARD8" name="update" enum="Redirect" /> | |||
| 136 | + | <pad bytes="3" /> | |||
| 137 | + | <doc> | |||
| 138 | + | <brief>Redirect all current and future children of ‘window’</brief> | |||
| 139 | + | <description> | |||
| 140 | + | Hierarchies starting at all current and future children of window | |||
| 141 | + | will be redirected as in RedirectWindow. If update is Manual, | |||
| 142 | + | then painting of the window background during window manipulation | |||
| 143 | + | and ClearArea requests is inhibited. | |||
| 144 | + | </description> | |||
| 145 | + | <field name="window">The root of the hierarchy to redirect to off-screen storage.</field> | |||
| 146 | + | <field name="update"> | |||
| 147 | + | Whether contents are automatically mirrored to the parent window. If one client | |||
| 148 | + | already specifies an update type of Manual, any attempt by another to specify a | |||
| 149 | + | mode of Manual so will result in an Access error. | |||
| 150 | + | </field> | |||
| 151 | + | </doc> | |||
| 152 | + | </request> | |||
| 153 | + | ||||
| 154 | + | <request name="UnredirectWindow" opcode="3"> | |||
| 155 | + | <field type="WINDOW" name="window" /> | |||
| 156 | + | <field type="CARD8" name="update" enum="Redirect" /> | |||
| 157 | + | <pad bytes="3" /> | |||
| 158 | + | <doc> | |||
| 159 | + | <brief>Terminate redirection of the specified window.</brief> | |||
| 160 | + | <description> | |||
| 161 | + | Redirection of the specified window will be terminated. This cannot be | |||
| 162 | + | used if the window was redirected with RedirectSubwindows. | |||
| 163 | + | </description> | |||
| 164 | + | <field name="window"> | |||
| 165 | + | The window to terminate redirection of. Must be redirected by the | |||
| 166 | + | current client, or a Value error results. | |||
| 167 | + | </field> | |||
| 168 | + | <field name="update"> | |||
| 169 | + | The update type passed to RedirectWindows. If this does not match the | |||
| 170 | + | previously requested update type, a Value error results. | |||
| 171 | + | </field> | |||
| 172 | + | </doc> | |||
| 173 | + | </request> | |||
| 174 | + | ||||
| 175 | + | <request name="UnredirectSubwindows" opcode="4"> | |||
| 176 | + | <field type="WINDOW" name="window" /> | |||
| 177 | + | <field type="CARD8" name="update" enum="Redirect" /> | |||
| 178 | + | <pad bytes="3" /> | |||
| 179 | + | <doc> | |||
| 180 | + | <brief>Terminate redirection of the specified window’s children</brief> | |||
| 181 | + | <description> | |||
| 182 | + | Redirection of all children of window will be terminated. | |||
| 183 | + | </description> | |||
| 184 | + | <field name="window"> | |||
| 185 | + | The window to terminate redirection of. Must have previously been | |||
| 186 | + | selected for sub-redirection by the current client, or a Value error | |||
| 187 | + | results. | |||
| 188 | + | </field> | |||
| 189 | + | <field name="update"> | |||
| 190 | + | The update type passed to RedirectSubWindows. If this does not match | |||
| 191 | + | the previously requested update type, a Value error results. | |||
| 192 | + | </field> | |||
| 193 | + | </doc> | |||
| 194 | + | </request> | |||
| 195 | + | ||||
| 196 | + | <request name="CreateRegionFromBorderClip" opcode="5"> | |||
| 197 | + | <field type="REGION" name="region" /> | |||
| 198 | + | <field type="WINDOW" name="window" /> | |||
| 199 | + | </request> | |||
| 200 | + | ||||
| 201 | + | <request name="NameWindowPixmap" opcode="6"> | |||
| 202 | + | <field type="WINDOW" name="window" /> | |||
| 203 | + | <field type="PIXMAP" name="pixmap" /> | |||
| 204 | + | </request> | |||
| 205 | + | ||||
| 206 | + | <!-- new in version 0.3 --> | |||
| 207 | + | ||||
| 208 | + | <request name="GetOverlayWindow" opcode="7"> | |||
| 209 | + | <field type="WINDOW" name="window" /> | |||
| 210 | + | <reply> | |||
| 211 | + | <pad bytes="1" /> | |||
| 212 | + | <field type="WINDOW" name="overlay_win" /> | |||
| 213 | + | <pad bytes="20" /> | |||
| 214 | + | </reply> | |||
| 215 | + | </request> | |||
| 216 | + | ||||
| 217 | + | <request name="ReleaseOverlayWindow" opcode="8"> | |||
| 218 | + | <field type="WINDOW" name="window" /> | |||
| 219 | + | </request> | |||
| 220 | + | </xcb> | |||
A spec/xml/ge.xml +42 -0
| @@ -0,0 +1,42 @@ | |||
| 1 | + | <?xml version="1.0" encoding="utf-8"?> | |
| 2 | + | <!-- | |
| 3 | + | Copyright (C) 2009 Open Text Corporation. All Rights Reserved. | |
| 4 | + | ||
| 5 | + | Permission is hereby granted, free of charge, to any person obtaining a copy | |
| 6 | + | of this software and associated documentation files (the "Software"), to deal | |
| 7 | + | in the Software without restriction, including without limitation the rights | |
| 8 | + | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
| 9 | + | copies of the Software, and to permit persons to whom the Software is | |
| 10 | + | furnished to do so, subject to the following conditions: | |
| 11 | + | ||
| 12 | + | The above copyright notice and this permission notice shall be included in all | |
| 13 | + | copies or substantial portions of the Software. | |
| 14 | + | ||
| 15 | + | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
| 16 | + | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
| 17 | + | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
| 18 | + | AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |
| 19 | + | ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | |
| 20 | + | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |
| 21 | + | ||
| 22 | + | Except as contained in this notice, the names of the authors or their | |
| 23 | + | institutions shall not be used in advertising or otherwise to promote the | |
| 24 | + | sale, use or other dealings in this Software without prior written | |
| 25 | + | authorization from the authors. | |
| 26 | + | --> | |
| 27 | + | <xcb header="ge" extension-xname="Generic Event Extension" extension-name="GenericEvent" | |
| 28 | + | major-version="1" minor-version="0"> | |
| 29 | + | ||
| 30 | + | <!-- Version 1 --> | |
| 31 | + | <request name="QueryVersion" opcode="0"> | |
| 32 | + | <field type="CARD16" name="client_major_version" /> | |
| 33 | + | <field type="CARD16" name="client_minor_version" /> | |
| 34 | + | <reply> | |
| 35 | + | <pad bytes="1" /> | |
| 36 | + | <field type="CARD16" name="major_version" /> | |
| 37 | + | <field type="CARD16" name="minor_version" /> | |
| 38 | + | <pad bytes="20" /> | |
| 39 | + | </reply> | |
| 40 | + | </request> | |
| 41 | + | ||
| 42 | + | </xcb> | |
| @@ -0,0 +1,42 @@ | |||||
| 1 | + | <?xml version="1.0" encoding="utf-8"?> | |||
| 2 | + | <!-- | |||
| 3 | + | Copyright (C) 2009 Open Text Corporation. All Rights Reserved. | |||
| 4 | + | ||||
| 5 | + | Permission is hereby granted, free of charge, to any person obtaining a copy | |||
| 6 | + | of this software and associated documentation files (the "Software"), to deal | |||
| 7 | + | in the Software without restriction, including without limitation the rights | |||
| 8 | + | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||
| 9 | + | copies of the Software, and to permit persons to whom the Software is | |||
| 10 | + | furnished to do so, subject to the following conditions: | |||
| 11 | + | ||||
| 12 | + | The above copyright notice and this permission notice shall be included in all | |||
| 13 | + | copies or substantial portions of the Software. | |||
| 14 | + | ||||
| 15 | + | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||
| 16 | + | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||
| 17 | + | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||
| 18 | + | AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |||
| 19 | + | ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | |||
| 20 | + | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| 21 | + | ||||
| 22 | + | Except as contained in this notice, the names of the authors or their | |||
| 23 | + | institutions shall not be used in advertising or otherwise to promote the | |||
| 24 | + | sale, use or other dealings in this Software without prior written | |||
| 25 | + | authorization from the authors. | |||
| 26 | + | --> | |||
| 27 | + | <xcb header="ge" extension-xname="Generic Event Extension" extension-name="GenericEvent" | |||
| 28 | + | major-version="1" minor-version="0"> | |||
| 29 | + | ||||
| 30 | + | <!-- Version 1 --> | |||
| 31 | + | <request name="QueryVersion" opcode="0"> | |||
| 32 | + | <field type="CARD16" name="client_major_version" /> | |||
| 33 | + | <field type="CARD16" name="client_minor_version" /> | |||
| 34 | + | <reply> | |||
| 35 | + | <pad bytes="1" /> | |||
| 36 | + | <field type="CARD16" name="major_version" /> | |||
| 37 | + | <field type="CARD16" name="minor_version" /> | |||
| 38 | + | <pad bytes="20" /> | |||
| 39 | + | </reply> | |||
| 40 | + | </request> | |||
| 41 | + | ||||
| 42 | + | </xcb> | |||
A spec/xml/render.xml +693 -0
| @@ -0,0 +1,693 @@ | |||
| 1 | + | <?xml version="1.0" encoding="utf-8"?> | |
| 2 | + | <!-- | |
| 3 | + | Copyright (C) 2002-2004 Carl D. Worth, Jamey Sharp, Bart Massey, Josh Triplett | |
| 4 | + | All Rights Reserved. See the file COPYING in this directory | |
| 5 | + | for licensing information. | |
| 6 | + | --> | |
| 7 | + | <xcb header="render" extension-xname="RENDER" extension-name="Render" | |
| 8 | + | major-version="0" minor-version="11"> | |
| 9 | + | <!-- supports version 0.11 --> | |
| 10 | + | ||
| 11 | + | <import>xproto</import> | |
| 12 | + | ||
| 13 | + | <enum name="PictType"> | |
| 14 | + | <item name="Indexed"> <value>0</value> </item> | |
| 15 | + | <item name="Direct"> <value>1</value> </item> | |
| 16 | + | </enum> | |
| 17 | + | ||
| 18 | + | <enum name="Picture"> | |
| 19 | + | <item name="None"> <value>0</value> </item> | |
| 20 | + | </enum> | |
| 21 | + | ||
| 22 | + | <!-- Disjoint* and Conjoint* are new in version 0.2 --> | |
| 23 | + | <!-- PDF blend modes are new in version 0.11 --> | |
| 24 | + | <enum name="PictOp"> | |
| 25 | + | <item name="Clear"> <value>0</value> </item> | |
| 26 | + | <item name="Src"> <value>1</value> </item> | |
| 27 | + | <item name="Dst"> <value>2</value> </item> | |
| 28 | + | <item name="Over"> <value>3</value> </item> | |
| 29 | + | <item name="OverReverse"> <value>4</value> </item> | |
| 30 | + | <item name="In"> <value>5</value> </item> | |
| 31 | + | <item name="InReverse"> <value>6</value> </item> | |
| 32 | + | <item name="Out"> <value>7</value> </item> | |
| 33 | + | <item name="OutReverse"> <value>8</value> </item> | |
| 34 | + | <item name="Atop"> <value>9</value> </item> | |
| 35 | + | <item name="AtopReverse"> <value>10</value> </item> | |
| 36 | + | <item name="Xor"> <value>11</value> </item> | |
| 37 | + | <item name="Add"> <value>12</value> </item> | |
| 38 | + | <item name="Saturate"> <value>13</value> </item> | |
| 39 | + | ||
| 40 | + | <item name="DisjointClear"> <value>16</value></item> | |
| 41 | + | <item name="DisjointSrc"> <value>17</value> </item> | |
| 42 | + | <item name="DisjointDst"> <value>18</value> </item> | |
| 43 | + | <item name="DisjointOver"> <value>19</value> </item> | |
| 44 | + | <item name="DisjointOverReverse"> <value>20</value> </item> | |
| 45 | + | <item name="DisjointIn"> <value>21</value> </item> | |
| 46 | + | <item name="DisjointInReverse"> <value>22</value> </item> | |
| 47 | + | <item name="DisjointOut"> <value>23</value> </item> | |
| 48 | + | <item name="DisjointOutReverse"> <value>24</value> </item> | |
| 49 | + | <item name="DisjointAtop"> <value>25</value> </item> | |
| 50 | + | <item name="DisjointAtopReverse"> <value>26</value> </item> | |
| 51 | + | <item name="DisjointXor"> <value>27</value> </item> | |
| 52 | + | ||
| 53 | + | <item name="ConjointClear"> <value>32</value></item> | |
| 54 | + | <item name="ConjointSrc"> <value>33</value> </item> | |
| 55 | + | <item name="ConjointDst"> <value>34</value> </item> | |
| 56 | + | <item name="ConjointOver"> <value>35</value> </item> | |
| 57 | + | <item name="ConjointOverReverse"> <value>36</value> </item> | |
| 58 | + | <item name="ConjointIn"> <value>37</value> </item> | |
| 59 | + | <item name="ConjointInReverse"> <value>38</value> </item> | |
| 60 | + | <item name="ConjointOut"> <value>39</value> </item> | |
| 61 | + | <item name="ConjointOutReverse"> <value>40</value> </item> | |
| 62 | + | <item name="ConjointAtop"> <value>41</value> </item> | |
| 63 | + | <item name="ConjointAtopReverse"> <value>42</value> </item> | |
| 64 | + | <item name="ConjointXor"> <value>43</value> </item> | |
| 65 | + | ||
| 66 | + | <!-- PDF blend modes are new in version 0.11 --> | |
| 67 | + | <item name="Multiply"> <value>48</value></item> | |
| 68 | + | <item name="Screen"> <value>49</value> </item> | |
| 69 | + | <item name="Overlay"> <value>50</value> </item> | |
| 70 | + | <item name="Darken"> <value>51</value> </item> | |
| 71 | + | <item name="Lighten"> <value>52</value> </item> | |
| 72 | + | <item name="ColorDodge"> <value>53</value> </item> | |
| 73 | + | <item name="ColorBurn"> <value>54</value> </item> | |
| 74 | + | <item name="HardLight"> <value>55</value> </item> | |
| 75 | + | <item name="SoftLight"> <value>56</value> </item> | |
| 76 | + | <item name="Difference"> <value>57</value> </item> | |
| 77 | + | <item name="Exclusion"> <value>58</value> </item> | |
| 78 | + | <item name="HSLHue"> <value>59</value> </item> | |
| 79 | + | <item name="HSLSaturation"> <value>60</value> </item> | |
| 80 | + | <item name="HSLColor"> <value>61</value> </item> | |
| 81 | + | <item name="HSLLuminosity"> <value>62</value> </item> | |
| 82 | + | </enum> | |
| 83 | + | ||
| 84 | + | <enum name="PolyEdge"> | |
| 85 | + | <item name="Sharp"> <value>0</value> </item> | |
| 86 | + | <item name="Smooth"> <value>1</value> </item> | |
| 87 | + | </enum> | |
| 88 | + | ||
| 89 | + | <enum name="PolyMode"> | |
| 90 | + | <item name="Precise"> <value>0</value> </item> | |
| 91 | + | <item name="Imprecise"> <value>1</value> </item> | |
| 92 | + | </enum> | |
| 93 | + | ||
| 94 | + | <enum name="CP"> | |
| 95 | + | <item name="Repeat"> <bit>0</bit></item> | |
| 96 | + | <item name="AlphaMap"> <bit>1</bit></item> | |
| 97 | + | <item name="AlphaXOrigin"> <bit>2</bit></item> | |
| 98 | + | <item name="AlphaYOrigin"> <bit>3</bit></item> | |
| 99 | + | <item name="ClipXOrigin"> <bit>4</bit></item> | |
| 100 | + | <item name="ClipYOrigin"> <bit>5</bit></item> | |
| 101 | + | <item name="ClipMask"> <bit>6</bit></item> | |
| 102 | + | <item name="GraphicsExposure"><bit>7</bit></item> | |
| 103 | + | <item name="SubwindowMode"> <bit>8</bit></item> | |
| 104 | + | <item name="PolyEdge"> <bit>9</bit></item> | |
| 105 | + | <item name="PolyMode"> <bit>10</bit></item> | |
| 106 | + | <item name="Dither"> <bit>11</bit></item> | |
| 107 | + | <item name="ComponentAlpha"> <bit>12</bit></item> | |
| 108 | + | </enum> | |
| 109 | + | ||
| 110 | + | <enum name="SubPixel"> | |
| 111 | + | <item name="Unknown"> <value>0</value> </item> | |
| 112 | + | <item name="HorizontalRGB"> <value>1</value> </item> | |
| 113 | + | <item name="HorizontalBGR"> <value>2</value> </item> | |
| 114 | + | <item name="VerticalRGB"> <value>3</value> </item> | |
| 115 | + | <item name="VerticalBGR"> <value>4</value> </item> | |
| 116 | + | <item name="None"> <value>5</value> </item> | |
| 117 | + | </enum> | |
| 118 | + | ||
| 119 | + | <!-- Extended repeat attributes introduced in 0.10 --> | |
| 120 | + | <enum name="Repeat"> | |
| 121 | + | <item name="None"> <value>0</value> </item> | |
| 122 | + | <item name="Normal"> <value>1</value> </item> | |
| 123 | + | <item name="Pad"> <value>2</value> </item> | |
| 124 | + | <item name="Reflect"> <value>3</value> </item> | |
| 125 | + | </enum> | |
| 126 | + | ||
| 127 | + | <typedef oldname="CARD32" newname="GLYPH" /> | |
| 128 | + | <xidtype name="GLYPHSET" /> | |
| 129 | + | ||
| 130 | + | <xidtype name="PICTURE" /> | |
| 131 | + | <xidtype name="PICTFORMAT" /> | |
| 132 | + | ||
| 133 | + | <typedef oldname="INT32" newname="FIXED" /> | |
| 134 | + | ||
| 135 | + | <error name="PictFormat" number="0" /> | |
| 136 | + | <error name="Picture" number="1" /> | |
| 137 | + | <error name="PictOp" number="2" /> | |
| 138 | + | <error name="GlyphSet" number="3" /> | |
| 139 | + | <error name="Glyph" number="4" /> | |
| 140 | + | ||
| 141 | + | <struct name="DIRECTFORMAT"> | |
| 142 | + | <field type="CARD16" name="red_shift" /> | |
| 143 | + | <field type="CARD16" name="red_mask" /> | |
| 144 | + | <field type="CARD16" name="green_shift" /> | |
| 145 | + | <field type="CARD16" name="green_mask" /> | |
| 146 | + | <field type="CARD16" name="blue_shift" /> | |
| 147 | + | <field type="CARD16" name="blue_mask" /> | |
| 148 | + | <field type="CARD16" name="alpha_shift" /> | |
| 149 | + | <field type="CARD16" name="alpha_mask" /> | |
| 150 | + | </struct> | |
| 151 | + | ||
| 152 | + | <struct name="PICTFORMINFO"> | |
| 153 | + | <field type="PICTFORMAT" name="id" /> | |
| 154 | + | <field type="CARD8" name="type" enum="PictType" /> | |
| 155 | + | <field type="CARD8" name="depth" /> | |
| 156 | + | <pad bytes="2" /> | |
| 157 | + | <field type="DIRECTFORMAT" name="direct" /> | |
| 158 | + | <field type="COLORMAP" name="colormap" /> | |
| 159 | + | </struct> | |
| 160 | + | ||
| 161 | + | <struct name="PICTVISUAL"> | |
| 162 | + | <field type="VISUALID" name="visual" /> | |
| 163 | + | <field type="PICTFORMAT" name="format" /> | |
| 164 | + | </struct> | |
| 165 | + | ||
| 166 | + | <struct name="PICTDEPTH"> | |
| 167 | + | <field type="CARD8" name="depth" /> | |
| 168 | + | <pad bytes="1" /> | |
| 169 | + | <field type="CARD16" name="num_visuals" /> | |
| 170 | + | <pad bytes="4" /> | |
| 171 | + | <list type="PICTVISUAL" name="visuals"> | |
| 172 | + | <fieldref>num_visuals</fieldref> | |
| 173 | + | </list> | |
| 174 | + | </struct> | |
| 175 | + | ||
| 176 | + | <struct name="PICTSCREEN"> | |
| 177 | + | <field type="CARD32" name="num_depths" /> | |
| 178 | + | <field type="PICTFORMAT" name="fallback" /> | |
| 179 | + | <list type="PICTDEPTH" name="depths"> | |
| 180 | + | <fieldref>num_depths</fieldref> | |
| 181 | + | </list> | |
| 182 | + | </struct> | |
| 183 | + | ||
| 184 | + | <struct name="INDEXVALUE"> | |
| 185 | + | <field type="CARD32" name="pixel" /> | |
| 186 | + | <field type="CARD16" name="red" /> | |
| 187 | + | <field type="CARD16" name="green" /> | |
| 188 | + | <field type="CARD16" name="blue" /> | |
| 189 | + | <field type="CARD16" name="alpha" /> | |
| 190 | + | </struct> | |
| 191 | + | ||
| 192 | + | <struct name="COLOR"> | |
| 193 | + | <field type="CARD16" name="red" /> | |
| 194 | + | <field type="CARD16" name="green" /> | |
| 195 | + | <field type="CARD16" name="blue" /> | |
| 196 | + | <field type="CARD16" name="alpha" /> | |
| 197 | + | </struct> | |
| 198 | + | ||
| 199 | + | <struct name="POINTFIX"> | |
| 200 | + | <field type="FIXED" name="x" /> | |
| 201 | + | <field type="FIXED" name="y" /> | |
| 202 | + | </struct> | |
| 203 | + | ||
| 204 | + | <struct name="LINEFIX"> | |
| 205 | + | <field type="POINTFIX" name="p1" /> | |
| 206 | + | <field type="POINTFIX" name="p2" /> | |
| 207 | + | </struct> | |
| 208 | + | ||
| 209 | + | <struct name="TRIANGLE"> | |
| 210 | + | <field type="POINTFIX" name="p1" /> | |
| 211 | + | <field type="POINTFIX" name="p2" /> | |
| 212 | + | <field type="POINTFIX" name="p3" /> | |
| 213 | + | </struct> | |
| 214 | + | ||
| 215 | + | <struct name="TRAPEZOID"> | |
| 216 | + | <field type="FIXED" name="top" /> | |
| 217 | + | <field type="FIXED" name="bottom" /> | |
| 218 | + | <field type="LINEFIX" name="left" /> | |
| 219 | + | <field type="LINEFIX" name="right" /> | |
| 220 | + | </struct> | |
| 221 | + | ||
| 222 | + | <struct name="GLYPHINFO"> | |
| 223 | + | <field type="CARD16" name="width" /> | |
| 224 | + | <field type="CARD16" name="height" /> | |
| 225 | + | <field type="INT16" name="x" /> | |
| 226 | + | <field type="INT16" name="y" /> | |
| 227 | + | <field type="INT16" name="x_off" /> | |
| 228 | + | <field type="INT16" name="y_off" /> | |
| 229 | + | </struct> | |
| 230 | + | ||
| 231 | + | ||
| 232 | + | <request name="QueryVersion" opcode="0"> | |
| 233 | + | <field type="CARD32" name="client_major_version" /> | |
| 234 | + | <field type="CARD32" name="client_minor_version" /> | |
| 235 | + | <reply> | |
| 236 | + | <pad bytes="1" /> | |
| 237 | + | <field type="CARD32" name="major_version" /> | |
| 238 | + | <field type="CARD32" name="minor_version" /> | |
| 239 | + | <pad bytes="16" /> | |
| 240 | + | </reply> | |
| 241 | + | </request> | |
| 242 | + | ||
| 243 | + | <request name="QueryPictFormats" opcode="1"> | |
| 244 | + | <reply> | |
| 245 | + | <pad bytes="1" /> | |
| 246 | + | <field type="CARD32" name="num_formats" /> | |
| 247 | + | <field type="CARD32" name="num_screens" /> | |
| 248 | + | <field type="CARD32" name="num_depths" /> | |
| 249 | + | <field type="CARD32" name="num_visuals" /> | |
| 250 | + | <field type="CARD32" name="num_subpixel" /> <!-- new in version 0.6 --> | |
| 251 | + | <pad bytes="4" /> | |
| 252 | + | <list type="PICTFORMINFO" name="formats"> | |
| 253 | + | <fieldref>num_formats</fieldref> | |
| 254 | + | </list> | |
| 255 | + | <list type="PICTSCREEN" name="screens"> | |
| 256 | + | <fieldref>num_screens</fieldref> | |
| 257 | + | </list> | |
| 258 | + | <list type="CARD32" name="subpixels" enum="SubPixel" > | |
| 259 | + | <fieldref>num_subpixel</fieldref> | |
| 260 | + | </list> | |
| 261 | + | </reply> | |
| 262 | + | </request> | |
| 263 | + | ||
| 264 | + | <!-- from version 0.7 --> | |
| 265 | + | <request name="QueryPictIndexValues" opcode="2"> | |
| 266 | + | <field type="PICTFORMAT" name="format" /> | |
| 267 | + | <reply> | |
| 268 | + | <pad bytes="1" /> | |
| 269 | + | <field type="CARD32" name="num_values" /> | |
| 270 | + | <pad bytes="20" /> | |
| 271 | + | <list type="INDEXVALUE" name="values"> | |
| 272 | + | <fieldref>num_values</fieldref> | |
| 273 | + | </list> | |
| 274 | + | </reply> | |
| 275 | + | </request> | |
| 276 | + | ||
| 277 | + | <!-- opcode 3 reserved for QueryDithers --> | |
| 278 | + | ||
| 279 | + | <request name="CreatePicture" opcode="4"> | |
| 280 | + | <field type="PICTURE" name="pid" /> | |
| 281 | + | <field type="DRAWABLE" name="drawable" /> | |
| 282 | + | <field type="PICTFORMAT" name="format" /> | |
| 283 | + | <field type="CARD32" name="value_mask" mask="CP"/> | |
| 284 | + | <switch name="value_list"> | |
| 285 | + | <fieldref>value_mask</fieldref> | |
| 286 | + | <bitcase> | |
| 287 | + | <enumref ref="CP">Repeat</enumref> | |
| 288 | + | <field type="CARD32" name="repeat" enum="Repeat"/> | |
| 289 | + | </bitcase> | |
| 290 | + | <bitcase> | |
| 291 | + | <enumref ref="CP">AlphaMap</enumref> | |
| 292 | + | <field type="PICTURE" name="alphamap" /> | |
| 293 | + | </bitcase> | |
| 294 | + | <bitcase> | |
| 295 | + | <enumref ref="CP">AlphaXOrigin</enumref> | |
| 296 | + | <field type="INT32" name="alphaxorigin" /> | |
| 297 | + | </bitcase> | |
| 298 | + | <bitcase> | |
| 299 | + | <enumref ref="CP">AlphaYOrigin</enumref> | |
| 300 | + | <field type="INT32" name="alphayorigin" /> | |
| 301 | + | </bitcase> | |
| 302 | + | <bitcase> | |
| 303 | + | <enumref ref="CP">ClipXOrigin</enumref> | |
| 304 | + | <field type="INT32" name="clipxorigin" /> | |
| 305 | + | </bitcase> | |
| 306 | + | <bitcase> | |
| 307 | + | <enumref ref="CP">ClipYOrigin</enumref> | |
| 308 | + | <field type="INT32" name="clipyorigin" /> | |
| 309 | + | </bitcase> | |
| 310 | + | <bitcase> | |
| 311 | + | <enumref ref="CP">ClipMask</enumref> | |
| 312 | + | <field type="PIXMAP" name="clipmask" /> | |
| 313 | + | </bitcase> | |
| 314 | + | <bitcase> | |
| 315 | + | <enumref ref="CP">GraphicsExposure</enumref> | |
| 316 | + | <field type="CARD32" name="graphicsexposure" /> | |
| 317 | + | </bitcase> | |
| 318 | + | <bitcase> | |
| 319 | + | <enumref ref="CP">SubwindowMode</enumref> | |
| 320 | + | <field type="CARD32" name="subwindowmode" enum="SubwindowMode"/> | |
| 321 | + | </bitcase> | |
| 322 | + | <bitcase> | |
| 323 | + | <enumref ref="CP">PolyEdge</enumref> | |
| 324 | + | <field type="CARD32" name="polyedge" enum="PolyEdge"/> | |
| 325 | + | </bitcase> | |
| 326 | + | <bitcase> | |
| 327 | + | <enumref ref="CP">PolyMode</enumref> | |
| 328 | + | <field type="CARD32" name="polymode" enum="PolyMode"/> | |
| 329 | + | </bitcase> | |
| 330 | + | <bitcase> | |
| 331 | + | <enumref ref="CP">Dither</enumref> | |
| 332 | + | <field type="ATOM" name="dither" /> | |
| 333 | + | </bitcase> | |
| 334 | + | <bitcase> | |
| 335 | + | <enumref ref="CP">ComponentAlpha</enumref> | |
| 336 | + | <field type="CARD32" name="componentalpha" /> | |
| 337 | + | </bitcase> | |
| 338 | + | </switch> | |
| 339 | + | </request> | |
| 340 | + | ||
| 341 | + | <request name="ChangePicture" opcode="5"> | |
| 342 | + | <field type="PICTURE" name="picture" /> | |
| 343 | + | <field type="CARD32" name="value_mask" mask="CP"/> | |
| 344 | + | <switch name="value_list"> | |
| 345 | + | <fieldref>value_mask</fieldref> | |
| 346 | + | <bitcase> | |
| 347 | + | <enumref ref="CP">Repeat</enumref> | |
| 348 | + | <field type="CARD32" name="repeat" enum="Repeat"/> | |
| 349 | + | </bitcase> | |
| 350 | + | <bitcase> | |
| 351 | + | <enumref ref="CP">AlphaMap</enumref> | |
| 352 | + | <field type="PICTURE" name="alphamap" /> | |
| 353 | + | </bitcase> | |
| 354 | + | <bitcase> | |
| 355 | + | <enumref ref="CP">AlphaXOrigin</enumref> | |
| 356 | + | <field type="INT32" name="alphaxorigin" /> | |
| 357 | + | </bitcase> | |
| 358 | + | <bitcase> | |
| 359 | + | <enumref ref="CP">AlphaYOrigin</enumref> | |
| 360 | + | <field type="INT32" name="alphayorigin" /> | |
| 361 | + | </bitcase> | |
| 362 | + | <bitcase> | |
| 363 | + | <enumref ref="CP">ClipXOrigin</enumref> | |
| 364 | + | <field type="INT32" name="clipxorigin" /> | |
| 365 | + | </bitcase> | |
| 366 | + | <bitcase> | |
| 367 | + | <enumref ref="CP">ClipYOrigin</enumref> | |
| 368 | + | <field type="INT32" name="clipyorigin" /> | |
| 369 | + | </bitcase> | |
| 370 | + | <bitcase> | |
| 371 | + | <enumref ref="CP">ClipMask</enumref> | |
| 372 | + | <field type="PIXMAP" name="clipmask" /> | |
| 373 | + | </bitcase> | |
| 374 | + | <bitcase> | |
| 375 | + | <enumref ref="CP">GraphicsExposure</enumref> | |
| 376 | + | <field type="CARD32" name="graphicsexposure" /> | |
| 377 | + | </bitcase> | |
| 378 | + | <bitcase> | |
| 379 | + | <enumref ref="CP">SubwindowMode</enumref> | |
| 380 | + | <field type="CARD32" name="subwindowmode" enum="SubwindowMode"/> | |
| 381 | + | </bitcase> | |
| 382 | + | <bitcase> | |
| 383 | + | <enumref ref="CP">PolyEdge</enumref> | |
| 384 | + | <field type="CARD32" name="polyedge" enum="PolyEdge"/> | |
| 385 | + | </bitcase> | |
| 386 | + | <bitcase> | |
| 387 | + | <enumref ref="CP">PolyMode</enumref> | |
| 388 | + | <field type="CARD32" name="polymode" enum="PolyMode"/> | |
| 389 | + | </bitcase> | |
| 390 | + | <bitcase> | |
| 391 | + | <enumref ref="CP">Dither</enumref> | |
| 392 | + | <field type="ATOM" name="dither" /> | |
| 393 | + | </bitcase> | |
| 394 | + | <bitcase> | |
| 395 | + | <enumref ref="CP">ComponentAlpha</enumref> | |
| 396 | + | <field type="CARD32" name="componentalpha" /> | |
| 397 | + | </bitcase> | |
| 398 | + | </switch> | |
| 399 | + | </request> | |
| 400 | + | ||
| 401 | + | <request name="SetPictureClipRectangles" opcode="6"> | |
| 402 | + | <field type="PICTURE" name="picture" /> | |
| 403 | + | <field type="INT16" name="clip_x_origin" /> | |
| 404 | + | <field type="INT16" name="clip_y_origin" /> | |
| 405 | + | <list type="RECTANGLE" name="rectangles" /> | |
| 406 | + | </request> | |
| 407 | + | ||
| 408 | + | <request name="FreePicture" opcode="7"> | |
| 409 | + | <field type="PICTURE" name="picture" /> | |
| 410 | + | </request> | |
| 411 | + | ||
| 412 | + | <request name="Composite" opcode="8"> | |
| 413 | + | <field type="CARD8" name="op" enum="PictOp" /> | |
| 414 | + | <pad bytes="3" /> | |
| 415 | + | <field type="PICTURE" name="src" /> | |
| 416 | + | <field type="PICTURE" name="mask" altenum="Picture" /> | |
| 417 | + | <field type="PICTURE" name="dst" /> | |
| 418 | + | <field type="INT16" name="src_x" /> | |
| 419 | + | <field type="INT16" name="src_y" /> | |
| 420 | + | <field type="INT16" name="mask_x" /> | |
| 421 | + | <field type="INT16" name="mask_y" /> | |
| 422 | + | <field type="INT16" name="dst_x" /> | |
| 423 | + | <field type="INT16" name="dst_y" /> | |
| 424 | + | <field type="CARD16" name="width" /> | |
| 425 | + | <field type="CARD16" name="height" /> | |
| 426 | + | </request> | |
| 427 | + | ||
| 428 | + | <!-- opcode 9 reserved for Scale --> | |
| 429 | + | ||
| 430 | + | <request name="Trapezoids" opcode="10"> | |
| 431 | + | <field type="CARD8" name="op" enum="PictOp" /> | |
| 432 | + | <pad bytes="3" /> | |
| 433 | + | <field type="PICTURE" name="src" /> | |
| 434 | + | <field type="PICTURE" name="dst" /> | |
| 435 | + | <field type="PICTFORMAT" name="mask_format" /> | |
| 436 | + | <field type="INT16" name="src_x" /> | |
| 437 | + | <field type="INT16" name="src_y" /> | |
| 438 | + | <list type="TRAPEZOID" name="traps" /> | |
| 439 | + | </request> | |
| 440 | + | ||
| 441 | + | <request name="Triangles" opcode="11"> | |
| 442 | + | <field type="CARD8" name="op" enum="PictOp" /> | |
| 443 | + | <pad bytes="3" /> | |
| 444 | + | <field type="PICTURE" name="src" /> | |
| 445 | + | <field type="PICTURE" name="dst" /> | |
| 446 | + | <field type="PICTFORMAT" name="mask_format" /> | |
| 447 | + | <field type="INT16" name="src_x" /> | |
| 448 | + | <field type="INT16" name="src_y" /> | |
| 449 | + | <list type="TRIANGLE" name="triangles" /> | |
| 450 | + | </request> | |
| 451 | + | ||
| 452 | + | <request name="TriStrip" opcode="12"> | |
| 453 | + | <field type="CARD8" name="op" enum="PictOp" /> | |
| 454 | + | <pad bytes="3" /> | |
| 455 | + | <field type="PICTURE" name="src" /> | |
| 456 | + | <field type="PICTURE" name="dst" /> | |
| 457 | + | <field type="PICTFORMAT" name="mask_format" /> | |
| 458 | + | <field type="INT16" name="src_x" /> | |
| 459 | + | <field type="INT16" name="src_y" /> | |
| 460 | + | <list type="POINTFIX" name="points" /> | |
| 461 | + | </request> | |
| 462 | + | ||
| 463 | + | <request name="TriFan" opcode="13"> | |
| 464 | + | <field type="CARD8" name="op" enum="PictOp" /> | |
| 465 | + | <pad bytes="3" /> | |
| 466 | + | <field type="PICTURE" name="src" /> | |
| 467 | + | <field type="PICTURE" name="dst" /> | |
| 468 | + | <field type="PICTFORMAT" name="mask_format" /> | |
| 469 | + | <field type="INT16" name="src_x" /> | |
| 470 | + | <field type="INT16" name="src_y" /> | |
| 471 | + | <list type="POINTFIX" name="points" /> | |
| 472 | + | </request> | |
| 473 | + | ||
| 474 | + | <!-- opcode 14 reserved for ColorTrapezoids --> | |
| 475 | + | ||
| 476 | + | <!-- opcode 15 reserved for ColorTriangles --> | |
| 477 | + | ||
| 478 | + | <!-- opcode 16 reserved for Transform --> | |
| 479 | + | ||
| 480 | + | <request name="CreateGlyphSet" opcode="17"> | |
| 481 | + | <field type="GLYPHSET" name="gsid" /> | |
| 482 | + | <field type="PICTFORMAT" name="format" /> | |
| 483 | + | </request> | |
| 484 | + | ||
| 485 | + | <request name="ReferenceGlyphSet" opcode="18"> | |
| 486 | + | <field type="GLYPHSET" name="gsid" /> | |
| 487 | + | <field type="GLYPHSET" name="existing" /> | |
| 488 | + | </request> | |
| 489 | + | ||
| 490 | + | <request name="FreeGlyphSet" opcode="19"> | |
| 491 | + | <field type="GLYPHSET" name="glyphset" /> | |
| 492 | + | </request> | |
| 493 | + | ||
| 494 | + | <request name="AddGlyphs" opcode="20"> | |
| 495 | + | <field type="GLYPHSET" name="glyphset" /> | |
| 496 | + | <field type="CARD32" name="glyphs_len" /> | |
| 497 | + | <list type="CARD32" name="glyphids"> | |
| 498 | + | <fieldref>glyphs_len</fieldref> | |
| 499 | + | </list> | |
| 500 | + | <list type="GLYPHINFO" name="glyphs"> | |
| 501 | + | <fieldref>glyphs_len</fieldref> | |
| 502 | + | </list> | |
| 503 | + | <list type="BYTE" name="data" /> | |
| 504 | + | </request> | |
| 505 | + | ||
| 506 | + | <!-- opcode 21 reserved for AddGlyphsFromPicture --> | |
| 507 | + | ||
| 508 | + | <request name="FreeGlyphs" opcode="22"> | |
| 509 | + | <field type="GLYPHSET" name="glyphset" /> | |
| 510 | + | <list type="GLYPH" name="glyphs" /> | |
| 511 | + | </request> | |
| 512 | + | ||
| 513 | + | <request name="CompositeGlyphs8" opcode="23"> | |
| 514 | + | <field type="CARD8" name="op" enum="PictOp" /> | |
| 515 | + | <pad bytes="3" /> | |
| 516 | + | <field type="PICTURE" name="src" /> | |
| 517 | + | <field type="PICTURE" name="dst" /> | |
| 518 | + | <field type="PICTFORMAT" name="mask_format" /> | |
| 519 | + | <field type="GLYPHSET" name="glyphset" /> | |
| 520 | + | <field type="INT16" name="src_x" /> | |
| 521 | + | <field type="INT16" name="src_y" /> | |
| 522 | + | <list type="BYTE" name="glyphcmds" /> | |
| 523 | + | </request> | |
| 524 | + | ||
| 525 | + | <request name="CompositeGlyphs16" opcode="24"> | |
| 526 | + | <field type="CARD8" name="op" enum="PictOp" /> | |
| 527 | + | <pad bytes="3" /> | |
| 528 | + | <field type="PICTURE" name="src" /> | |
| 529 | + | <field type="PICTURE" name="dst" /> | |
| 530 | + | <field type="PICTFORMAT" name="mask_format" /> | |
| 531 | + | <field type="GLYPHSET" name="glyphset" /> | |
| 532 | + | <field type="INT16" name="src_x" /> | |
| 533 | + | <field type="INT16" name="src_y" /> | |
| 534 | + | <list type="BYTE" name="glyphcmds" /> | |
| 535 | + | </request> | |
| 536 | + | ||
| 537 | + | <request name="CompositeGlyphs32" opcode="25"> | |
| 538 | + | <field type="CARD8" name="op" enum="PictOp" /> | |
| 539 | + | <pad bytes="3" /> | |
| 540 | + | <field type="PICTURE" name="src" /> | |
| 541 | + | <field type="PICTURE" name="dst" /> | |
| 542 | + | <field type="PICTFORMAT" name="mask_format" /> | |
| 543 | + | <field type="GLYPHSET" name="glyphset" /> | |
| 544 | + | <field type="INT16" name="src_x" /> | |
| 545 | + | <field type="INT16" name="src_y" /> | |
| 546 | + | <list type="BYTE" name="glyphcmds" /> | |
| 547 | + | </request> | |
| 548 | + | ||
| 549 | + | <!-- new in version 0.1 --> | |
| 550 | + | ||
| 551 | + | <request name="FillRectangles" opcode="26"> | |
| 552 | + | <field type="CARD8" name="op" enum="PictOp" /> | |
| 553 | + | <pad bytes="3" /> | |
| 554 | + | <field type="PICTURE" name="dst" /> | |
| 555 | + | <field type="COLOR" name="color" /> | |
| 556 | + | <list type="RECTANGLE" name="rects" /> | |
| 557 | + | </request> | |
| 558 | + | ||
| 559 | + | <!-- new in version 0.5 --> | |
| 560 | + | ||
| 561 | + | <request name="CreateCursor" opcode="27"> | |
| 562 | + | <field type="CURSOR" name="cid" /> | |
| 563 | + | <field type="PICTURE" name="source" /> | |
| 564 | + | <field type="CARD16" name="x" /> | |
| 565 | + | <field type="CARD16" name="y" /> | |
| 566 | + | </request> | |
| 567 | + | ||
| 568 | + | <!-- new in version 0.6 --> | |
| 569 | + | ||
| 570 | + | <struct name="TRANSFORM"> | |
| 571 | + | <field type="FIXED" name="matrix11" /> | |
| 572 | + | <field type="FIXED" name="matrix12" /> | |
| 573 | + | <field type="FIXED" name="matrix13" /> | |
| 574 | + | <field type="FIXED" name="matrix21" /> | |
| 575 | + | <field type="FIXED" name="matrix22" /> | |
| 576 | + | <field type="FIXED" name="matrix23" /> | |
| 577 | + | <field type="FIXED" name="matrix31" /> | |
| 578 | + | <field type="FIXED" name="matrix32" /> | |
| 579 | + | <field type="FIXED" name="matrix33" /> | |
| 580 | + | </struct> | |
| 581 | + | ||
| 582 | + | <request name="SetPictureTransform" opcode="28"> | |
| 583 | + | <field type="PICTURE" name="picture" /> | |
| 584 | + | <field type="TRANSFORM" name="transform" /> | |
| 585 | + | </request> | |
| 586 | + | ||
| 587 | + | <request name="QueryFilters" opcode="29"> | |
| 588 | + | <field type="DRAWABLE" name="drawable" /> | |
| 589 | + | <reply> | |
| 590 | + | <pad bytes="1" /> | |
| 591 | + | <field type="CARD32" name="num_aliases" /> | |
| 592 | + | <field type="CARD32" name="num_filters" /> | |
| 593 | + | <pad bytes="16" /> | |
| 594 | + | <list type="CARD16" name="aliases"> | |
| 595 | + | <fieldref>num_aliases</fieldref> | |
| 596 | + | </list> | |
| 597 | + | <list type="STR" name="filters"> | |
| 598 | + | <fieldref>num_filters</fieldref> | |
| 599 | + | </list> | |
| 600 | + | </reply> | |
| 601 | + | </request> | |
| 602 | + | ||
| 603 | + | <request name="SetPictureFilter" opcode="30"> | |
| 604 | + | <field type="PICTURE" name="picture" /> | |
| 605 | + | <field type="CARD16" name="filter_len" /> | |
| 606 | + | <pad bytes="2" /> | |
| 607 | + | <list type="char" name="filter"> | |
| 608 | + | <fieldref>filter_len</fieldref> | |
| 609 | + | </list> | |
| 610 | + | <pad align="4" /> | |
| 611 | + | <list type="FIXED" name="values" /> | |
| 612 | + | </request> | |
| 613 | + | ||
| 614 | + | <!-- new in version 0.8 --> | |
| 615 | + | ||
| 616 | + | <struct name="ANIMCURSORELT"> | |
| 617 | + | <field type="CURSOR" name="cursor" /> | |
| 618 | + | <field type="CARD32" name="delay" /> | |
| 619 | + | </struct> | |
| 620 | + | ||
| 621 | + | <request name="CreateAnimCursor" opcode="31"> | |
| 622 | + | <field type="CURSOR" name="cid" /> | |
| 623 | + | <list type="ANIMCURSORELT" name="cursors" /> | |
| 624 | + | </request> | |
| 625 | + | ||
| 626 | + | <!-- new in version 0.9 --> | |
| 627 | + | ||
| 628 | + | <struct name="SPANFIX"> | |
| 629 | + | <field type="FIXED" name="l" /> | |
| 630 | + | <field type="FIXED" name="r" /> | |
| 631 | + | <field type="FIXED" name="y" /> | |
| 632 | + | </struct> | |
| 633 | + | ||
| 634 | + | <struct name="TRAP"> | |
| 635 | + | <field type="SPANFIX" name="top" /> | |
| 636 | + | <field type="SPANFIX" name="bot" /> | |
| 637 | + | </struct> | |
| 638 | + | ||
| 639 | + | <request name="AddTraps" opcode="32"> | |
| 640 | + | <field type="PICTURE" name="picture" /> | |
| 641 | + | <field type="INT16" name="x_off" /> | |
| 642 | + | <field type="INT16" name="y_off" /> | |
| 643 | + | <list type="TRAP" name="traps" /> | |
| 644 | + | </request> | |
| 645 | + | ||
| 646 | + | <!-- new in version 0.10 --> | |
| 647 | + | ||
| 648 | + | <request name="CreateSolidFill" opcode="33"> | |
| 649 | + | <field type="PICTURE" name="picture" /> | |
| 650 | + | <field type="COLOR" name="color" /> | |
| 651 | + | </request> | |
| 652 | + | ||
| 653 | + | <request name="CreateLinearGradient" opcode="34"> | |
| 654 | + | <field type="PICTURE" name="picture" /> | |
| 655 | + | <field type="POINTFIX" name="p1" /> | |
| 656 | + | <field type="POINTFIX" name="p2" /> | |
| 657 | + | <field type="CARD32" name="num_stops" /> | |
| 658 | + | <list type="FIXED" name="stops"> | |
| 659 | + | <fieldref>num_stops</fieldref> | |
| 660 | + | </list> | |
| 661 | + | <list type="COLOR" name="colors"> | |
| 662 | + | <fieldref>num_stops</fieldref> | |
| 663 | + | </list> | |
| 664 | + | </request> | |
| 665 | + | ||
| 666 | + | <request name="CreateRadialGradient" opcode="35"> | |
| 667 | + | <field type="PICTURE" name="picture" /> | |
| 668 | + | <field type="POINTFIX" name="inner" /> | |
| 669 | + | <field type="POINTFIX" name="outer" /> | |
| 670 | + | <field type="FIXED" name="inner_radius" /> | |
| 671 | + | <field type="FIXED" name="outer_radius" /> | |
| 672 | + | <field type="CARD32" name="num_stops" /> | |
| 673 | + | <list type="FIXED" name="stops"> | |
| 674 | + | <fieldref>num_stops</fieldref> | |
| 675 | + | </list> | |
| 676 | + | <list type="COLOR" name="colors"> | |
| 677 | + | <fieldref>num_stops</fieldref> | |
| 678 | + | </list> | |
| 679 | + | </request> | |
| 680 | + | ||
| 681 | + | <request name="CreateConicalGradient" opcode="36"> | |
| 682 | + | <field type="PICTURE" name="picture" /> | |
| 683 | + | <field type="POINTFIX" name="center" /> | |
| 684 | + | <field type="FIXED" name="angle" /> <!-- degrees --> | |
| 685 | + | <field type="CARD32" name="num_stops" /> | |
| 686 | + | <list type="FIXED" name="stops"> | |
| 687 | + | <fieldref>num_stops</fieldref> | |
| 688 | + | </list> | |
| 689 | + | <list type="COLOR" name="colors"> | |
| 690 | + | <fieldref>num_stops</fieldref> | |
| 691 | + | </list> | |
| 692 | + | </request> | |
| 693 | + | </xcb> | |
| @@ -0,0 +1,693 @@ | |||||
| 1 | + | <?xml version="1.0" encoding="utf-8"?> | |||
| 2 | + | <!-- | |||
| 3 | + | Copyright (C) 2002-2004 Carl D. Worth, Jamey Sharp, Bart Massey, Josh Triplett | |||
| 4 | + | All Rights Reserved. See the file COPYING in this directory | |||
| 5 | + | for licensing information. | |||
| 6 | + | --> | |||
| 7 | + | <xcb header="render" extension-xname="RENDER" extension-name="Render" | |||
| 8 | + | major-version="0" minor-version="11"> | |||
| 9 | + | <!-- supports version 0.11 --> | |||
| 10 | + | ||||
| 11 | + | <import>xproto</import> | |||
| 12 | + | ||||
| 13 | + | <enum name="PictType"> | |||
| 14 | + | <item name="Indexed"> <value>0</value> </item> | |||
| 15 | + | <item name="Direct"> <value>1</value> </item> | |||
| 16 | + | </enum> | |||
| 17 | + | ||||
| 18 | + | <enum name="Picture"> | |||
| 19 | + | <item name="None"> <value>0</value> </item> | |||
| 20 | + | </enum> | |||
| 21 | + | ||||
| 22 | + | <!-- Disjoint* and Conjoint* are new in version 0.2 --> | |||
| 23 | + | <!-- PDF blend modes are new in version 0.11 --> | |||
| 24 | + | <enum name="PictOp"> | |||
| 25 | + | <item name="Clear"> <value>0</value> </item> | |||
| 26 | + | <item name="Src"> <value>1</value> </item> | |||
| 27 | + | <item name="Dst"> <value>2</value> </item> | |||
| 28 | + | <item name="Over"> <value>3</value> </item> | |||
| 29 | + | <item name="OverReverse"> <value>4</value> </item> | |||
| 30 | + | <item name="In"> <value>5</value> </item> | |||
| 31 | + | <item name="InReverse"> <value>6</value> </item> | |||
| 32 | + | <item name="Out"> <value>7</value> </item> | |||
| 33 | + | <item name="OutReverse"> <value>8</value> </item> | |||
| 34 | + | <item name="Atop"> <value>9</value> </item> | |||
| 35 | + | <item name="AtopReverse"> <value>10</value> </item> | |||
| 36 | + | <item name="Xor"> <value>11</value> </item> | |||
| 37 | + | <item name="Add"> <value>12</value> </item> | |||
| 38 | + | <item name="Saturate"> <value>13</value> </item> | |||
| 39 | + | ||||
| 40 | + | <item name="DisjointClear"> <value>16</value></item> | |||
| 41 | + | <item name="DisjointSrc"> <value>17</value> </item> | |||
| 42 | + | <item name="DisjointDst"> <value>18</value> </item> | |||
| 43 | + | <item name="DisjointOver"> <value>19</value> </item> | |||
| 44 | + | <item name="DisjointOverReverse"> <value>20</value> </item> | |||
| 45 | + | <item name="DisjointIn"> <value>21</value> </item> | |||
| 46 | + | <item name="DisjointInReverse"> <value>22</value> </item> | |||
| 47 | + | <item name="DisjointOut"> <value>23</value> </item> | |||
| 48 | + | <item name="DisjointOutReverse"> <value>24</value> </item> | |||
| 49 | + | <item name="DisjointAtop"> <value>25</value> </item> | |||
| 50 | + | <item name="DisjointAtopReverse"> <value>26</value> </item> | |||
| 51 | + | <item name="DisjointXor"> <value>27</value> </item> | |||
| 52 | + | ||||
| 53 | + | <item name="ConjointClear"> <value>32</value></item> | |||
| 54 | + | <item name="ConjointSrc"> <value>33</value> </item> | |||
| 55 | + | <item name="ConjointDst"> <value>34</value> </item> | |||
| 56 | + | <item name="ConjointOver"> <value>35</value> </item> | |||
| 57 | + | <item name="ConjointOverReverse"> <value>36</value> </item> | |||
| 58 | + | <item name="ConjointIn"> <value>37</value> </item> | |||
| 59 | + | <item name="ConjointInReverse"> <value>38</value> </item> | |||
| 60 | + | <item name="ConjointOut"> <value>39</value> </item> | |||
| 61 | + | <item name="ConjointOutReverse"> <value>40</value> </item> | |||
| 62 | + | <item name="ConjointAtop"> <value>41</value> </item> | |||
| 63 | + | <item name="ConjointAtopReverse"> <value>42</value> </item> | |||
| 64 | + | <item name="ConjointXor"> <value>43</value> </item> | |||
| 65 | + | ||||
| 66 | + | <!-- PDF blend modes are new in version 0.11 --> | |||
| 67 | + | <item name="Multiply"> <value>48</value></item> | |||
| 68 | + | <item name="Screen"> <value>49</value> </item> | |||
| 69 | + | <item name="Overlay"> <value>50</value> </item> | |||
| 70 | + | <item name="Darken"> <value>51</value> </item> | |||
| 71 | + | <item name="Lighten"> <value>52</value> </item> | |||
| 72 | + | <item name="ColorDodge"> <value>53</value> </item> | |||
| 73 | + | <item name="ColorBurn"> <value>54</value> </item> | |||
| 74 | + | <item name="HardLight"> <value>55</value> </item> | |||
| 75 | + | <item name="SoftLight"> <value>56</value> </item> | |||
| 76 | + | <item name="Difference"> <value>57</value> </item> | |||
| 77 | + | <item name="Exclusion"> <value>58</value> </item> | |||
| 78 | + | <item name="HSLHue"> <value>59</value> </item> | |||
| 79 | + | <item name="HSLSaturation"> <value>60</value> </item> | |||
| 80 | + | <item name="HSLColor"> <value>61</value> </item> | |||
| 81 | + | <item name="HSLLuminosity"> <value>62</value> </item> | |||
| 82 | + | </enum> | |||
| 83 | + | ||||
| 84 | + | <enum name="PolyEdge"> | |||
| 85 | + | <item name="Sharp"> <value>0</value> </item> | |||
| 86 | + | <item name="Smooth"> <value>1</value> </item> | |||
| 87 | + | </enum> | |||
| 88 | + | ||||
| 89 | + | <enum name="PolyMode"> | |||
| 90 | + | <item name="Precise"> <value>0</value> </item> | |||
| 91 | + | <item name="Imprecise"> <value>1</value> </item> | |||
| 92 | + | </enum> | |||
| 93 | + | ||||
| 94 | + | <enum name="CP"> | |||
| 95 | + | <item name="Repeat"> <bit>0</bit></item> | |||
| 96 | + | <item name="AlphaMap"> <bit>1</bit></item> | |||
| 97 | + | <item name="AlphaXOrigin"> <bit>2</bit></item> | |||
| 98 | + | <item name="AlphaYOrigin"> <bit>3</bit></item> | |||
| 99 | + | <item name="ClipXOrigin"> <bit>4</bit></item> | |||
| 100 | + | <item name="ClipYOrigin"> <bit>5</bit></item> | |||
| 101 | + | <item name="ClipMask"> <bit>6</bit></item> | |||
| 102 | + | <item name="GraphicsExposure"><bit>7</bit></item> | |||
| 103 | + | <item name="SubwindowMode"> <bit>8</bit></item> | |||
| 104 | + | <item name="PolyEdge"> <bit>9</bit></item> | |||
| 105 | + | <item name="PolyMode"> <bit>10</bit></item> | |||
| 106 | + | <item name="Dither"> <bit>11</bit></item> | |||
| 107 | + | <item name="ComponentAlpha"> <bit>12</bit></item> | |||
| 108 | + | </enum> | |||
| 109 | + | ||||
| 110 | + | <enum name="SubPixel"> | |||
| 111 | + | <item name="Unknown"> <value>0</value> </item> | |||
| 112 | + | <item name="HorizontalRGB"> <value>1</value> </item> | |||
| 113 | + | <item name="HorizontalBGR"> <value>2</value> </item> | |||
| 114 | + | <item name="VerticalRGB"> <value>3</value> </item> | |||
| 115 | + | <item name="VerticalBGR"> <value>4</value> </item> | |||
| 116 | + | <item name="None"> <value>5</value> </item> | |||
| 117 | + | </enum> | |||
| 118 | + | ||||
| 119 | + | <!-- Extended repeat attributes introduced in 0.10 --> | |||
| 120 | + | <enum name="Repeat"> | |||
| 121 | + | <item name="None"> <value>0</value> </item> | |||
| 122 | + | <item name="Normal"> <value>1</value> </item> | |||
| 123 | + | <item name="Pad"> <value>2</value> </item> | |||
| 124 | + | <item name="Reflect"> <value>3</value> </item> | |||
| 125 | + | </enum> | |||
| 126 | + | ||||
| 127 | + | <typedef oldname="CARD32" newname="GLYPH" /> | |||
| 128 | + | <xidtype name="GLYPHSET" /> | |||
| 129 | + | ||||
| 130 | + | <xidtype name="PICTURE" /> | |||
| 131 | + | <xidtype name="PICTFORMAT" /> | |||
| 132 | + | ||||
| 133 | + | <typedef oldname="INT32" newname="FIXED" /> | |||
| 134 | + | ||||
| 135 | + | <error name="PictFormat" number="0" /> | |||
| 136 | + | <error name="Picture" number="1" /> | |||
| 137 | + | <error name="PictOp" number="2" /> | |||
| 138 | + | <error name="GlyphSet" number="3" /> | |||
| 139 | + | <error name="Glyph" number="4" /> | |||
| 140 | + | ||||
| 141 | + | <struct name="DIRECTFORMAT"> | |||
| 142 | + | <field type="CARD16" name="red_shift" /> | |||
| 143 | + | <field type="CARD16" name="red_mask" /> | |||
| 144 | + | <field type="CARD16" name="green_shift" /> | |||
| 145 | + | <field type="CARD16" name="green_mask" /> | |||
| 146 | + | <field type="CARD16" name="blue_shift" /> | |||
| 147 | + | <field type="CARD16" name="blue_mask" /> | |||
| 148 | + | <field type="CARD16" name="alpha_shift" /> | |||
| 149 | + | <field type="CARD16" name="alpha_mask" /> | |||
| 150 | + | </struct> | |||
| 151 | + | ||||
| 152 | + | <struct name="PICTFORMINFO"> | |||
| 153 | + | <field type="PICTFORMAT" name="id" /> | |||
| 154 | + | <field type="CARD8" name="type" enum="PictType" /> | |||
| 155 | + | <field type="CARD8" name="depth" /> | |||
| 156 | + | <pad bytes="2" /> | |||
| 157 | + | <field type="DIRECTFORMAT" name="direct" /> | |||
| 158 | + | <field type="COLORMAP" name="colormap" /> | |||
| 159 | + | </struct> | |||
| 160 | + | ||||
| 161 | + | <struct name="PICTVISUAL"> | |||
| 162 | + | <field type="VISUALID" name="visual" /> | |||
| 163 | + | <field type="PICTFORMAT" name="format" /> | |||
| 164 | + | </struct> | |||
| 165 | + | ||||
| 166 | + | <struct name="PICTDEPTH"> | |||
| 167 | + | <field type="CARD8" name="depth" /> | |||
| 168 | + | <pad bytes="1" /> | |||
| 169 | + | <field type="CARD16" name="num_visuals" /> | |||
| 170 | + | <pad bytes="4" /> | |||
| 171 | + | <list type="PICTVISUAL" name="visuals"> | |||
| 172 | + | <fieldref>num_visuals</fieldref> | |||
| 173 | + | </list> | |||
| 174 | + | </struct> | |||
| 175 | + | ||||
| 176 | + | <struct name="PICTSCREEN"> | |||
| 177 | + | <field type="CARD32" name="num_depths" /> | |||
| 178 | + | <field type="PICTFORMAT" name="fallback" /> | |||
| 179 | + | <list type="PICTDEPTH" name="depths"> | |||
| 180 | + | <fieldref>num_depths</fieldref> | |||
| 181 | + | </list> | |||
| 182 | + | </struct> | |||
| 183 | + | ||||
| 184 | + | <struct name="INDEXVALUE"> | |||
| 185 | + | <field type="CARD32" name="pixel" /> | |||
| 186 | + | <field type="CARD16" name="red" /> | |||
| 187 | + | <field type="CARD16" name="green" /> | |||
| 188 | + | <field type="CARD16" name="blue" /> | |||
| 189 | + | <field type="CARD16" name="alpha" /> | |||
| 190 | + | </struct> | |||
| 191 | + | ||||
| 192 | + | <struct name="COLOR"> | |||
| 193 | + | <field type="CARD16" name="red" /> | |||
| 194 | + | <field type="CARD16" name="green" /> | |||
| 195 | + | <field type="CARD16" name="blue" /> | |||
| 196 | + | <field type="CARD16" name="alpha" /> | |||
| 197 | + | </struct> | |||
| 198 | + | ||||
| 199 | + | <struct name="POINTFIX"> | |||
| 200 | + | <field type="FIXED" name="x" /> | |||
| 201 | + | <field type="FIXED" name="y" /> | |||
| 202 | + | </struct> | |||
| 203 | + | ||||
| 204 | + | <struct name="LINEFIX"> | |||
| 205 | + | <field type="POINTFIX" name="p1" /> | |||
| 206 | + | <field type="POINTFIX" name="p2" /> | |||
| 207 | + | </struct> | |||
| 208 | + | ||||
| 209 | + | <struct name="TRIANGLE"> | |||
| 210 | + | <field type="POINTFIX" name="p1" /> | |||
| 211 | + | <field type="POINTFIX" name="p2" /> | |||
| 212 | + | <field type="POINTFIX" name="p3" /> | |||
| 213 | + | </struct> | |||
| 214 | + | ||||
| 215 | + | <struct name="TRAPEZOID"> | |||
| 216 | + | <field type="FIXED" name="top" /> | |||
| 217 | + | <field type="FIXED" name="bottom" /> | |||
| 218 | + | <field type="LINEFIX" name="left" /> | |||
| 219 | + | <field type="LINEFIX" name="right" /> | |||
| 220 | + | </struct> | |||
| 221 | + | ||||
| 222 | + | <struct name="GLYPHINFO"> | |||
| 223 | + | <field type="CARD16" name="width" /> | |||
| 224 | + | <field type="CARD16" name="height" /> | |||
| 225 | + | <field type="INT16" name="x" /> | |||
| 226 | + | <field type="INT16" name="y" /> | |||
| 227 | + | <field type="INT16" name="x_off" /> | |||
| 228 | + | <field type="INT16" name="y_off" /> | |||
| 229 | + | </struct> | |||
| 230 | + | ||||
| 231 | + | ||||
| 232 | + | <request name="QueryVersion" opcode="0"> | |||
| 233 | + | <field type="CARD32" name="client_major_version" /> | |||
| 234 | + | <field type="CARD32" name="client_minor_version" /> | |||
| 235 | + | <reply> | |||
| 236 | + | <pad bytes="1" /> | |||
| 237 | + | <field type="CARD32" name="major_version" /> | |||
| 238 | + | <field type="CARD32" name="minor_version" /> | |||
| 239 | + | <pad bytes="16" /> | |||
| 240 | + | </reply> | |||
| 241 | + | </request> | |||
| 242 | + | ||||
| 243 | + | <request name="QueryPictFormats" opcode="1"> | |||
| 244 | + | <reply> | |||
| 245 | + | <pad bytes="1" /> | |||
| 246 | + | <field type="CARD32" name="num_formats" /> | |||
| 247 | + | <field type="CARD32" name="num_screens" /> | |||
| 248 | + | <field type="CARD32" name="num_depths" /> | |||
| 249 | + | <field type="CARD32" name="num_visuals" /> | |||
| 250 | + | <field type="CARD32" name="num_subpixel" /> <!-- new in version 0.6 --> | |||
| 251 | + | <pad bytes="4" /> | |||
| 252 | + | <list type="PICTFORMINFO" name="formats"> | |||
| 253 | + | <fieldref>num_formats</fieldref> | |||
| 254 | + | </list> | |||
| 255 | + | <list type="PICTSCREEN" name="screens"> | |||
| 256 | + | <fieldref>num_screens</fieldref> | |||
| 257 | + | </list> | |||
| 258 | + | <list type="CARD32" name="subpixels" enum="SubPixel" > | |||
| 259 | + | <fieldref>num_subpixel</fieldref> | |||
| 260 | + | </list> | |||
| 261 | + | </reply> | |||
| 262 | + | </request> | |||
| 263 | + | ||||
| 264 | + | <!-- from version 0.7 --> | |||
| 265 | + | <request name="QueryPictIndexValues" opcode="2"> | |||
| 266 | + | <field type="PICTFORMAT" name="format" /> | |||
| 267 | + | <reply> | |||
| 268 | + | <pad bytes="1" /> | |||
| 269 | + | <field type="CARD32" name="num_values" /> | |||
| 270 | + | <pad bytes="20" /> | |||
| 271 | + | <list type="INDEXVALUE" name="values"> | |||
| 272 | + | <fieldref>num_values</fieldref> | |||
| 273 | + | </list> | |||
| 274 | + | </reply> | |||
| 275 | + | </request> | |||
| 276 | + | ||||
| 277 | + | <!-- opcode 3 reserved for QueryDithers --> | |||
| 278 | + | ||||
| 279 | + | <request name="CreatePicture" opcode="4"> | |||
| 280 | + | <field type="PICTURE" name="pid" /> | |||
| 281 | + | <field type="DRAWABLE" name="drawable" /> | |||
| 282 | + | <field type="PICTFORMAT" name="format" /> | |||
| 283 | + | <field type="CARD32" name="value_mask" mask="CP"/> | |||
| 284 | + | <switch name="value_list"> | |||
| 285 | + | <fieldref>value_mask</fieldref> | |||
| 286 | + | <bitcase> | |||
| 287 | + | <enumref ref="CP">Repeat</enumref> | |||
| 288 | + | <field type="CARD32" name="repeat" enum="Repeat"/> | |||
| 289 | + | </bitcase> | |||
| 290 | + | <bitcase> | |||
| 291 | + | <enumref ref="CP">AlphaMap</enumref> | |||
| 292 | + | <field type="PICTURE" name="alphamap" /> | |||
| 293 | + | </bitcase> | |||
| 294 | + | <bitcase> | |||
| 295 | + | <enumref ref="CP">AlphaXOrigin</enumref> | |||
| 296 | + | <field type="INT32" name="alphaxorigin" /> | |||
| 297 | + | </bitcase> | |||
| 298 | + | <bitcase> | |||
| 299 | + | <enumref ref="CP">AlphaYOrigin</enumref> | |||
| 300 | + | <field type="INT32" name="alphayorigin" /> | |||
| 301 | + | </bitcase> | |||
| 302 | + | <bitcase> | |||
| 303 | + | <enumref ref="CP">ClipXOrigin</enumref> | |||
| 304 | + | <field type="INT32" name="clipxorigin" /> | |||
| 305 | + | </bitcase> | |||
| 306 | + | <bitcase> | |||
| 307 | + | <enumref ref="CP">ClipYOrigin</enumref> | |||
| 308 | + | <field type="INT32" name="clipyorigin" /> | |||
| 309 | + | </bitcase> | |||
| 310 | + | <bitcase> | |||
| 311 | + | <enumref ref="CP">ClipMask</enumref> | |||
| 312 | + | <field type="PIXMAP" name="clipmask" /> | |||
| 313 | + | </bitcase> | |||
| 314 | + | <bitcase> | |||
| 315 | + | <enumref ref="CP">GraphicsExposure</enumref> | |||
| 316 | + | <field type="CARD32" name="graphicsexposure" /> | |||
| 317 | + | </bitcase> | |||
| 318 | + | <bitcase> | |||
| 319 | + | <enumref ref="CP">SubwindowMode</enumref> | |||
| 320 | + | <field type="CARD32" name="subwindowmode" enum="SubwindowMode"/> | |||
| 321 | + | </bitcase> | |||
| 322 | + | <bitcase> | |||
| 323 | + | <enumref ref="CP">PolyEdge</enumref> | |||
| 324 | + | <field type="CARD32" name="polyedge" enum="PolyEdge"/> | |||
| 325 | + | </bitcase> | |||
| 326 | + | <bitcase> | |||
| 327 | + | <enumref ref="CP">PolyMode</enumref> | |||
| 328 | + | <field type="CARD32" name="polymode" enum="PolyMode"/> | |||
| 329 | + | </bitcase> | |||
| 330 | + | <bitcase> | |||
| 331 | + | <enumref ref="CP">Dither</enumref> | |||
| 332 | + | <field type="ATOM" name="dither" /> | |||
| 333 | + | </bitcase> | |||
| 334 | + | <bitcase> | |||
| 335 | + | <enumref ref="CP">ComponentAlpha</enumref> | |||
| 336 | + | <field type="CARD32" name="componentalpha" /> | |||
| 337 | + | </bitcase> | |||
| 338 | + | </switch> | |||
| 339 | + | </request> | |||
| 340 | + | ||||
| 341 | + | <request name="ChangePicture" opcode="5"> | |||
| 342 | + | <field type="PICTURE" name="picture" /> | |||
| 343 | + | <field type="CARD32" name="value_mask" mask="CP"/> | |||
| 344 | + | <switch name="value_list"> | |||
| 345 | + | <fieldref>value_mask</fieldref> | |||
| 346 | + | <bitcase> | |||
| 347 | + | <enumref ref="CP">Repeat</enumref> | |||
| 348 | + | <field type="CARD32" name="repeat" enum="Repeat"/> | |||
| 349 | + | </bitcase> | |||
| 350 | + | <bitcase> | |||
| 351 | + | <enumref ref="CP">AlphaMap</enumref> | |||
| 352 | + | <field type="PICTURE" name="alphamap" /> | |||
| 353 | + | </bitcase> | |||
| 354 | + | <bitcase> | |||
| 355 | + | <enumref ref="CP">AlphaXOrigin</enumref> | |||
| 356 | + | <field type="INT32" name="alphaxorigin" /> | |||
| 357 | + | </bitcase> | |||
| 358 | + | <bitcase> | |||
| 359 | + | <enumref ref="CP">AlphaYOrigin</enumref> | |||
| 360 | + | <field type="INT32" name="alphayorigin" /> | |||
| 361 | + | </bitcase> | |||
| 362 | + | <bitcase> | |||
| 363 | + | <enumref ref="CP">ClipXOrigin</enumref> | |||
| 364 | + | <field type="INT32" name="clipxorigin" /> | |||
| 365 | + | </bitcase> | |||
| 366 | + | <bitcase> | |||
| 367 | + | <enumref ref="CP">ClipYOrigin</enumref> | |||
| 368 | + | <field type="INT32" name="clipyorigin" /> | |||
| 369 | + | </bitcase> | |||
| 370 | + | <bitcase> | |||
| 371 | + | <enumref ref="CP">ClipMask</enumref> | |||
| 372 | + | <field type="PIXMAP" name="clipmask" /> | |||
| 373 | + | </bitcase> | |||
| 374 | + | <bitcase> | |||
| 375 | + | <enumref ref="CP">GraphicsExposure</enumref> | |||
| 376 | + | <field type="CARD32" name="graphicsexposure" /> | |||
| 377 | + | </bitcase> | |||
| 378 | + | <bitcase> | |||
| 379 | + | <enumref ref="CP">SubwindowMode</enumref> | |||
| 380 | + | <field type="CARD32" name="subwindowmode" enum="SubwindowMode"/> | |||
| 381 | + | </bitcase> | |||
| 382 | + | <bitcase> | |||
| 383 | + | <enumref ref="CP">PolyEdge</enumref> | |||
| 384 | + | <field type="CARD32" name="polyedge" enum="PolyEdge"/> | |||
| 385 | + | </bitcase> | |||
| 386 | + | <bitcase> | |||
| 387 | + | <enumref ref="CP">PolyMode</enumref> | |||
| 388 | + | <field type="CARD32" name="polymode" enum="PolyMode"/> | |||
| 389 | + | </bitcase> | |||
| 390 | + | <bitcase> | |||
| 391 | + | <enumref ref="CP">Dither</enumref> | |||
| 392 | + | <field type="ATOM" name="dither" /> | |||
| 393 | + | </bitcase> | |||
| 394 | + | <bitcase> | |||
| 395 | + | <enumref ref="CP">ComponentAlpha</enumref> | |||
| 396 | + | <field type="CARD32" name="componentalpha" /> | |||
| 397 | + | </bitcase> | |||
| 398 | + | </switch> | |||
| 399 | + | </request> | |||
| 400 | + | ||||
| 401 | + | <request name="SetPictureClipRectangles" opcode="6"> | |||
| 402 | + | <field type="PICTURE" name="picture" /> | |||
| 403 | + | <field type="INT16" name="clip_x_origin" /> | |||
| 404 | + | <field type="INT16" name="clip_y_origin" /> | |||
| 405 | + | <list type="RECTANGLE" name="rectangles" /> | |||
| 406 | + | </request> | |||
| 407 | + | ||||
| 408 | + | <request name="FreePicture" opcode="7"> | |||
| 409 | + | <field type="PICTURE" name="picture" /> | |||
| 410 | + | </request> | |||
| 411 | + | ||||
| 412 | + | <request name="Composite" opcode="8"> | |||
| 413 | + | <field type="CARD8" name="op" enum="PictOp" /> | |||
| 414 | + | <pad bytes="3" /> | |||
| 415 | + | <field type="PICTURE" name="src" /> | |||
| 416 | + | <field type="PICTURE" name="mask" altenum="Picture" /> | |||
| 417 | + | <field type="PICTURE" name="dst" /> | |||
| 418 | + | <field type="INT16" name="src_x" /> | |||
| 419 | + | <field type="INT16" name="src_y" /> | |||
| 420 | + | <field type="INT16" name="mask_x" /> | |||
| 421 | + | <field type="INT16" name="mask_y" /> | |||
| 422 | + | <field type="INT16" name="dst_x" /> | |||
| 423 | + | <field type="INT16" name="dst_y" /> | |||
| 424 | + | <field type="CARD16" name="width" /> | |||
| 425 | + | <field type="CARD16" name="height" /> | |||
| 426 | + | </request> | |||
| 427 | + | ||||
| 428 | + | <!-- opcode 9 reserved for Scale --> | |||
| 429 | + | ||||
| 430 | + | <request name="Trapezoids" opcode="10"> | |||
| 431 | + | <field type="CARD8" name="op" enum="PictOp" /> | |||
| 432 | + | <pad bytes="3" /> | |||
| 433 | + | <field type="PICTURE" name="src" /> | |||
| 434 | + | <field type="PICTURE" name="dst" /> | |||
| 435 | + | <field type="PICTFORMAT" name="mask_format" /> | |||
| 436 | + | <field type="INT16" name="src_x" /> | |||
| 437 | + | <field type="INT16" name="src_y" /> | |||
| 438 | + | <list type="TRAPEZOID" name="traps" /> | |||
| 439 | + | </request> | |||
| 440 | + | ||||
| 441 | + | <request name="Triangles" opcode="11"> | |||
| 442 | + | <field type="CARD8" name="op" enum="PictOp" /> | |||
| 443 | + | <pad bytes="3" /> | |||
| 444 | + | <field type="PICTURE" name="src" /> | |||
| 445 | + | <field type="PICTURE" name="dst" /> | |||
| 446 | + | <field type="PICTFORMAT" name="mask_format" /> | |||
| 447 | + | <field type="INT16" name="src_x" /> | |||
| 448 | + | <field type="INT16" name="src_y" /> | |||
| 449 | + | <list type="TRIANGLE" name="triangles" /> | |||
| 450 | + | </request> | |||
| 451 | + | ||||
| 452 | + | <request name="TriStrip" opcode="12"> | |||
| 453 | + | <field type="CARD8" name="op" enum="PictOp" /> | |||
| 454 | + | <pad bytes="3" /> | |||
| 455 | + | <field type="PICTURE" name="src" /> | |||
| 456 | + | <field type="PICTURE" name="dst" /> | |||
| 457 | + | <field type="PICTFORMAT" name="mask_format" /> | |||
| 458 | + | <field type="INT16" name="src_x" /> | |||
| 459 | + | <field type="INT16" name="src_y" /> | |||
| 460 | + | <list type="POINTFIX" name="points" /> | |||
| 461 | + | </request> | |||
| 462 | + | ||||
| 463 | + | <request name="TriFan" opcode="13"> | |||
| 464 | + | <field type="CARD8" name="op" enum="PictOp" /> | |||
| 465 | + | <pad bytes="3" /> | |||
| 466 | + | <field type="PICTURE" name="src" /> | |||
| 467 | + | <field type="PICTURE" name="dst" /> | |||
| 468 | + | <field type="PICTFORMAT" name="mask_format" /> | |||
| 469 | + | <field type="INT16" name="src_x" /> | |||
| 470 | + | <field type="INT16" name="src_y" /> | |||
| 471 | + | <list type="POINTFIX" name="points" /> | |||
| 472 | + | </request> | |||
| 473 | + | ||||
| 474 | + | <!-- opcode 14 reserved for ColorTrapezoids --> | |||
| 475 | + | ||||
| 476 | + | <!-- opcode 15 reserved for ColorTriangles --> | |||
| 477 | + | ||||
| 478 | + | <!-- opcode 16 reserved for Transform --> | |||
| 479 | + | ||||
| 480 | + | <request name="CreateGlyphSet" opcode="17"> | |||
| 481 | + | <field type="GLYPHSET" name="gsid" /> | |||
| 482 | + | <field type="PICTFORMAT" name="format" /> | |||
| 483 | + | </request> | |||
| 484 | + | ||||
| 485 | + | <request name="ReferenceGlyphSet" opcode="18"> | |||
| 486 | + | <field type="GLYPHSET" name="gsid" /> | |||
| 487 | + | <field type="GLYPHSET" name="existing" /> | |||
| 488 | + | </request> | |||
| 489 | + | ||||
| 490 | + | <request name="FreeGlyphSet" opcode="19"> | |||
| 491 | + | <field type="GLYPHSET" name="glyphset" /> | |||
| 492 | + | </request> | |||
| 493 | + | ||||
| 494 | + | <request name="AddGlyphs" opcode="20"> | |||
| 495 | + | <field type="GLYPHSET" name="glyphset" /> | |||
| 496 | + | <field type="CARD32" name="glyphs_len" /> | |||
| 497 | + | <list type="CARD32" name="glyphids"> | |||
| 498 | + | <fieldref>glyphs_len</fieldref> | |||
| 499 | + | </list> | |||
| 500 | + | <list type="GLYPHINFO" name="glyphs"> | |||
| 501 | + | <fieldref>glyphs_len</fieldref> | |||
| 502 | + | </list> | |||
| 503 | + | <list type="BYTE" name="data" /> | |||
| 504 | + | </request> | |||
| 505 | + | ||||
| 506 | + | <!-- opcode 21 reserved for AddGlyphsFromPicture --> | |||
| 507 | + | ||||
| 508 | + | <request name="FreeGlyphs" opcode="22"> | |||
| 509 | + | <field type="GLYPHSET" name="glyphset" /> | |||
| 510 | + | <list type="GLYPH" name="glyphs" /> | |||
| 511 | + | </request> | |||
| 512 | + | ||||
| 513 | + | <request name="CompositeGlyphs8" opcode="23"> | |||
| 514 | + | <field type="CARD8" name="op" enum="PictOp" /> | |||
| 515 | + | <pad bytes="3" /> | |||
| 516 | + | <field type="PICTURE" name="src" /> | |||
| 517 | + | <field type="PICTURE" name="dst" /> | |||
| 518 | + | <field type="PICTFORMAT" name="mask_format" /> | |||
| 519 | + | <field type="GLYPHSET" name="glyphset" /> | |||
| 520 | + | <field type="INT16" name="src_x" /> | |||
| 521 | + | <field type="INT16" name="src_y" /> | |||
| 522 | + | <list type="BYTE" name="glyphcmds" /> | |||
| 523 | + | </request> | |||
| 524 | + | ||||
| 525 | + | <request name="CompositeGlyphs16" opcode="24"> | |||
| 526 | + | <field type="CARD8" name="op" enum="PictOp" /> | |||
| 527 | + | <pad bytes="3" /> | |||
| 528 | + | <field type="PICTURE" name="src" /> | |||
| 529 | + | <field type="PICTURE" name="dst" /> | |||
| 530 | + | <field type="PICTFORMAT" name="mask_format" /> | |||
| 531 | + | <field type="GLYPHSET" name="glyphset" /> | |||
| 532 | + | <field type="INT16" name="src_x" /> | |||
| 533 | + | <field type="INT16" name="src_y" /> | |||
| 534 | + | <list type="BYTE" name="glyphcmds" /> | |||
| 535 | + | </request> | |||
| 536 | + | ||||
| 537 | + | <request name="CompositeGlyphs32" opcode="25"> | |||
| 538 | + | <field type="CARD8" name="op" enum="PictOp" /> | |||
| 539 | + | <pad bytes="3" /> | |||
| 540 | + | <field type="PICTURE" name="src" /> | |||
| 541 | + | <field type="PICTURE" name="dst" /> | |||
| 542 | + | <field type="PICTFORMAT" name="mask_format" /> | |||
| 543 | + | <field type="GLYPHSET" name="glyphset" /> | |||
| 544 | + | <field type="INT16" name="src_x" /> | |||
| 545 | + | <field type="INT16" name="src_y" /> | |||
| 546 | + | <list type="BYTE" name="glyphcmds" /> | |||
| 547 | + | </request> | |||
| 548 | + | ||||
| 549 | + | <!-- new in version 0.1 --> | |||
| 550 | + | ||||
| 551 | + | <request name="FillRectangles" opcode="26"> | |||
| 552 | + | <field type="CARD8" name="op" enum="PictOp" /> | |||
| 553 | + | <pad bytes="3" /> | |||
| 554 | + | <field type="PICTURE" name="dst" /> | |||
| 555 | + | <field type="COLOR" name="color" /> | |||
| 556 | + | <list type="RECTANGLE" name="rects" /> | |||
| 557 | + | </request> | |||
| 558 | + | ||||
| 559 | + | <!-- new in version 0.5 --> | |||
| 560 | + | ||||
| 561 | + | <request name="CreateCursor" opcode="27"> | |||
| 562 | + | <field type="CURSOR" name="cid" /> | |||
| 563 | + | <field type="PICTURE" name="source" /> | |||
| 564 | + | <field type="CARD16" name="x" /> | |||
| 565 | + | <field type="CARD16" name="y" /> | |||
| 566 | + | </request> | |||
| 567 | + | ||||
| 568 | + | <!-- new in version 0.6 --> | |||
| 569 | + | ||||
| 570 | + | <struct name="TRANSFORM"> | |||
| 571 | + | <field type="FIXED" name="matrix11" /> | |||
| 572 | + | <field type="FIXED" name="matrix12" /> | |||
| 573 | + | <field type="FIXED" name="matrix13" /> | |||
| 574 | + | <field type="FIXED" name="matrix21" /> | |||
| 575 | + | <field type="FIXED" name="matrix22" /> | |||
| 576 | + | <field type="FIXED" name="matrix23" /> | |||
| 577 | + | <field type="FIXED" name="matrix31" /> | |||
| 578 | + | <field type="FIXED" name="matrix32" /> | |||
| 579 | + | <field type="FIXED" name="matrix33" /> | |||
| 580 | + | </struct> | |||
| 581 | + | ||||
| 582 | + | <request name="SetPictureTransform" opcode="28"> | |||
| 583 | + | <field type="PICTURE" name="picture" /> | |||
| 584 | + | <field type="TRANSFORM" name="transform" /> | |||
| 585 | + | </request> | |||
| 586 | + | ||||
| 587 | + | <request name="QueryFilters" opcode="29"> | |||
| 588 | + | <field type="DRAWABLE" name="drawable" /> | |||
| 589 | + | <reply> | |||
| 590 | + | <pad bytes="1" /> | |||
| 591 | + | <field type="CARD32" name="num_aliases" /> | |||
| 592 | + | <field type="CARD32" name="num_filters" /> | |||
| 593 | + | <pad bytes="16" /> | |||
| 594 | + | <list type="CARD16" name="aliases"> | |||
| 595 | + | <fieldref>num_aliases</fieldref> | |||
| 596 | + | </list> | |||
| 597 | + | <list type="STR" name="filters"> | |||
| 598 | + | <fieldref>num_filters</fieldref> | |||
| 599 | + | </list> | |||
| 600 | + | </reply> | |||
| 601 | + | </request> | |||
| 602 | + | ||||
| 603 | + | <request name="SetPictureFilter" opcode="30"> | |||
| 604 | + | <field type="PICTURE" name="picture" /> | |||
| 605 | + | <field type="CARD16" name="filter_len" /> | |||
| 606 | + | <pad bytes="2" /> | |||
| 607 | + | <list type="char" name="filter"> | |||
| 608 | + | <fieldref>filter_len</fieldref> | |||
| 609 | + | </list> | |||
| 610 | + | <pad align="4" /> | |||
| 611 | + | <list type="FIXED" name="values" /> | |||
| 612 | + | </request> | |||
| 613 | + | ||||
| 614 | + | <!-- new in version 0.8 --> | |||
| 615 | + | ||||
| 616 | + | <struct name="ANIMCURSORELT"> | |||
| 617 | + | <field type="CURSOR" name="cursor" /> | |||
| 618 | + | <field type="CARD32" name="delay" /> | |||
| 619 | + | </struct> | |||
| 620 | + | ||||
| 621 | + | <request name="CreateAnimCursor" opcode="31"> | |||
| 622 | + | <field type="CURSOR" name="cid" /> | |||
| 623 | + | <list type="ANIMCURSORELT" name="cursors" /> | |||
| 624 | + | </request> | |||
| 625 | + | ||||
| 626 | + | <!-- new in version 0.9 --> | |||
| 627 | + | ||||
| 628 | + | <struct name="SPANFIX"> | |||
| 629 | + | <field type="FIXED" name="l" /> | |||
| 630 | + | <field type="FIXED" name="r" /> | |||
| 631 | + | <field type="FIXED" name="y" /> | |||
| 632 | + | </struct> | |||
| 633 | + | ||||
| 634 | + | <struct name="TRAP"> | |||
| 635 | + | <field type="SPANFIX" name="top" /> | |||
| 636 | + | <field type="SPANFIX" name="bot" /> | |||
| 637 | + | </struct> | |||
| 638 | + | ||||
| 639 | + | <request name="AddTraps" opcode="32"> | |||
| 640 | + | <field type="PICTURE" name="picture" /> | |||
| 641 | + | <field type="INT16" name="x_off" /> | |||
| 642 | + | <field type="INT16" name="y_off" /> | |||
| 643 | + | <list type="TRAP" name="traps" /> | |||
| 644 | + | </request> | |||
| 645 | + | ||||
| 646 | + | <!-- new in version 0.10 --> | |||
| 647 | + | ||||
| 648 | + | <request name="CreateSolidFill" opcode="33"> | |||
| 649 | + | <field type="PICTURE" name="picture" /> | |||
| 650 | + | <field type="COLOR" name="color" /> | |||
| 651 | + | </request> | |||
| 652 | + | ||||
| 653 | + | <request name="CreateLinearGradient" opcode="34"> | |||
| 654 | + | <field type="PICTURE" name="picture" /> | |||
| 655 | + | <field type="POINTFIX" name="p1" /> | |||
| 656 | + | <field type="POINTFIX" name="p2" /> | |||
| 657 | + | <field type="CARD32" name="num_stops" /> | |||
| 658 | + | <list type="FIXED" name="stops"> | |||
| 659 | + | <fieldref>num_stops</fieldref> | |||
| 660 | + | </list> | |||
| 661 | + | <list type="COLOR" name="colors"> | |||
| 662 | + | <fieldref>num_stops</fieldref> | |||
| 663 | + | </list> | |||
| 664 | + | </request> | |||
| 665 | + | ||||
| 666 | + | <request name="CreateRadialGradient" opcode="35"> | |||
| 667 | + | <field type="PICTURE" name="picture" /> | |||
| 668 | + | <field type="POINTFIX" name="inner" /> | |||
| 669 | + | <field type="POINTFIX" name="outer" /> | |||
| 670 | + | <field type="FIXED" name="inner_radius" /> | |||
| 671 | + | <field type="FIXED" name="outer_radius" /> | |||
| 672 | + | <field type="CARD32" name="num_stops" /> | |||
| 673 | + | <list type="FIXED" name="stops"> | |||
| 674 | + | <fieldref>num_stops</fieldref> | |||
| 675 | + | </list> | |||
| 676 | + | <list type="COLOR" name="colors"> | |||
| 677 | + | <fieldref>num_stops</fieldref> | |||
| 678 | + | </list> | |||
| 679 | + | </request> | |||
| 680 | + | ||||
| 681 | + | <request name="CreateConicalGradient" opcode="36"> | |||
| 682 | + | <field type="PICTURE" name="picture" /> | |||
| 683 | + | <field type="POINTFIX" name="center" /> | |||
| 684 | + | <field type="FIXED" name="angle" /> <!-- degrees --> | |||
| 685 | + | <field type="CARD32" name="num_stops" /> | |||
| 686 | + | <list type="FIXED" name="stops"> | |||
| 687 | + | <fieldref>num_stops</fieldref> | |||
| 688 | + | </list> | |||
| 689 | + | <list type="COLOR" name="colors"> | |||
| 690 | + | <fieldref>num_stops</fieldref> | |||
| 691 | + | </list> | |||
| 692 | + | </request> | |||
| 693 | + | </xcb> | |||
A spec/xml/res.xml +164 -0
| @@ -0,0 +1,164 @@ | |||
| 1 | + | <?xml version="1.0" encoding="utf-8"?> | |
| 2 | + | <!-- | |
| 3 | + | Copyright (C) 2006 Jeremy Kolb | |
| 4 | + | All Rights Reserved. | |
| 5 | + | ||
| 6 | + | Permission is hereby granted, free of charge, to any person obtaining a copy | |
| 7 | + | of this software and associated documentation files (the "Software"), to deal | |
| 8 | + | in the Software without restriction, including without limitation the rights | |
| 9 | + | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
| 10 | + | copies of the Software, and to permit persons to whom the Software is | |
| 11 | + | furnished to do so, subject to the following conditions: | |
| 12 | + | ||
| 13 | + | The above copyright notice and this permission notice shall be included in all | |
| 14 | + | copies or substantial portions of the Software. | |
| 15 | + | ||
| 16 | + | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
| 17 | + | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
| 18 | + | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
| 19 | + | AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |
| 20 | + | ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | |
| 21 | + | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |
| 22 | + | ||
| 23 | + | Except as contained in this notice, the names of the authors or their | |
| 24 | + | institutions shall not be used in advertising or otherwise to promote the | |
| 25 | + | sale, use or other dealings in this Software without prior written | |
| 26 | + | authorization from the authors. | |
| 27 | + | --> | |
| 28 | + | <xcb header="res" extension-xname="X-Resource" extension-name="Res" | |
| 29 | + | major-version="1" minor-version="2"> | |
| 30 | + | <import>xproto</import> | |
| 31 | + | ||
| 32 | + | <!-- v1.0 --> | |
| 33 | + | <struct name="Client"> | |
| 34 | + | <field type="CARD32" name="resource_base" /> | |
| 35 | + | <field type="CARD32" name="resource_mask" /> | |
| 36 | + | </struct> | |
| 37 | + | ||
| 38 | + | <struct name="Type"> | |
| 39 | + | <field type="ATOM" name="resource_type" /> | |
| 40 | + | <field type="CARD32" name="count" /> | |
| 41 | + | </struct> | |
| 42 | + | ||
| 43 | + | <!-- v1.2 --> | |
| 44 | + | <enum name="ClientIdMask"> | |
| 45 | + | <item name="ClientXID"> <bit>0</bit> </item> | |
| 46 | + | <item name="LocalClientPID"> <bit>1</bit> </item> | |
| 47 | + | </enum> | |
| 48 | + | ||
| 49 | + | <struct name="ClientIdSpec"> | |
| 50 | + | <field type="CARD32" name="client" /> | |
| 51 | + | <field type="CARD32" name="mask" mask="ClientIdMask" /> | |
| 52 | + | </struct> | |
| 53 | + | ||
| 54 | + | <struct name="ClientIdValue"> | |
| 55 | + | <field type="ClientIdSpec" name="spec" /> | |
| 56 | + | <field type="CARD32" name="length" /> | |
| 57 | + | <list type="CARD32" name="value"> | |
| 58 | + | <!-- The specification says that the length is in units of CARD32, | |
| 59 | + | but the specification also says that the length is 4 when a | |
| 60 | + | single LocalClientPid is present (ie. the length is in bytes). | |
| 61 | + | The current server implementation sets the length to 4 when a | |
| 62 | + | single CARD32 is present on the wire (length is in bytes). --> | |
| 63 | + | <op op="/"> | |
| 64 | + | <fieldref>length</fieldref> | |
| 65 | + | <value>4</value> | |
| 66 | + | </op> | |
| 67 | + | </list> | |
| 68 | + | </struct> | |
| 69 | + | ||
| 70 | + | <struct name="ResourceIdSpec"> | |
| 71 | + | <field type="CARD32" name="resource" /> | |
| 72 | + | <field type="CARD32" name="type" /> | |
| 73 | + | </struct> | |
| 74 | + | ||
| 75 | + | <struct name="ResourceSizeSpec"> | |
| 76 | + | <field type="ResourceIdSpec" name="spec" /> | |
| 77 | + | <field type="CARD32" name="bytes" /> | |
| 78 | + | <field type="CARD32" name="ref_count" /> | |
| 79 | + | <field type="CARD32" name="use_count" /> | |
| 80 | + | </struct> | |
| 81 | + | ||
| 82 | + | <struct name="ResourceSizeValue"> | |
| 83 | + | <field type="ResourceSizeSpec" name="size" /> | |
| 84 | + | <field type="CARD32" name="num_cross_references" /> | |
| 85 | + | <list type="ResourceSizeSpec" name="cross_references"> | |
| 86 | + | <fieldref>num_cross_references</fieldref> | |
| 87 | + | </list> | |
| 88 | + | </struct> | |
| 89 | + | ||
| 90 | + | <!-- v1.0 --> | |
| 91 | + | <request name="QueryVersion" opcode="0"> | |
| 92 | + | <field type="CARD8" name="client_major" /> | |
| 93 | + | <field type="CARD8" name="client_minor" /> | |
| 94 | + | <reply> | |
| 95 | + | <pad bytes="1" /> | |
| 96 | + | <field type="CARD16" name="server_major" /> | |
| 97 | + | <field type="CARD16" name="server_minor" /> | |
| 98 | + | </reply> | |
| 99 | + | </request> | |
| 100 | + | ||
| 101 | + | <request name="QueryClients" opcode="1"> | |
| 102 | + | <reply> | |
| 103 | + | <pad bytes="1" /> | |
| 104 | + | <field type="CARD32" name="num_clients" /> | |
| 105 | + | <pad bytes="20" /> | |
| 106 | + | <list type="Client" name="clients"> | |
| 107 | + | <fieldref>num_clients</fieldref> | |
| 108 | + | </list> | |
| 109 | + | </reply> | |
| 110 | + | </request> | |
| 111 | + | ||
| 112 | + | <request name="QueryClientResources" opcode="2"> | |
| 113 | + | <field type="CARD32" name="xid" /> | |
| 114 | + | <reply> | |
| 115 | + | <pad bytes="1" /> | |
| 116 | + | <field type="CARD32" name="num_types" /> | |
| 117 | + | <pad bytes="20" /> | |
| 118 | + | <list type="Type" name="types"> | |
| 119 | + | <fieldref>num_types</fieldref> | |
| 120 | + | </list> | |
| 121 | + | </reply> | |
| 122 | + | </request> | |
| 123 | + | ||
| 124 | + | <request name="QueryClientPixmapBytes" opcode="3"> | |
| 125 | + | <field type="CARD32" name="xid" /> | |
| 126 | + | <reply> | |
| 127 | + | <pad bytes="1" /> | |
| 128 | + | <field type="CARD32" name="bytes" /> | |
| 129 | + | <field type="CARD32" name="bytes_overflow" /> | |
| 130 | + | </reply> | |
| 131 | + | </request> | |
| 132 | + | ||
| 133 | + | <!-- v1.2 --> | |
| 134 | + | <request name="QueryClientIds" opcode="4"> | |
| 135 | + | <field type="CARD32" name="num_specs" /> | |
| 136 | + | <list type="ClientIdSpec" name="specs"> | |
| 137 | + | <fieldref>num_specs</fieldref> | |
| 138 | + | </list> | |
| 139 | + | <reply> | |
| 140 | + | <pad bytes="1" /> | |
| 141 | + | <field type="CARD32" name="num_ids" /> | |
| 142 | + | <pad bytes="20" /> | |
| 143 | + | <list type="ClientIdValue" name="ids"> | |
| 144 | + | <fieldref>num_ids</fieldref> | |
| 145 | + | </list> | |
| 146 | + | </reply> | |
| 147 | + | </request> | |
| 148 | + | ||
| 149 | + | <request name="QueryResourceBytes" opcode="5"> | |
| 150 | + | <field type="CARD32" name="client" /> | |
| 151 | + | <field type="CARD32" name="num_specs" /> | |
| 152 | + | <list type="ResourceIdSpec" name="specs"> | |
| 153 | + | <fieldref>num_specs</fieldref> | |
| 154 | + | </list> | |
| 155 | + | <reply> | |
| 156 | + | <pad bytes="1" /> | |
| 157 | + | <field type="CARD32" name="num_sizes" /> | |
| 158 | + | <pad bytes="20" /> | |
| 159 | + | <list type="ResourceSizeValue" name="sizes"> | |
| 160 | + | <fieldref>num_sizes</fieldref> | |
| 161 | + | </list> | |
| 162 | + | </reply> | |
| 163 | + | </request> | |
| 164 | + | </xcb> | |
| @@ -0,0 +1,164 @@ | |||||
| 1 | + | <?xml version="1.0" encoding="utf-8"?> | |||
| 2 | + | <!-- | |||
| 3 | + | Copyright (C) 2006 Jeremy Kolb | |||
| 4 | + | All Rights Reserved. | |||
| 5 | + | ||||
| 6 | + | Permission is hereby granted, free of charge, to any person obtaining a copy | |||
| 7 | + | of this software and associated documentation files (the "Software"), to deal | |||
| 8 | + | in the Software without restriction, including without limitation the rights | |||
| 9 | + | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||
| 10 | + | copies of the Software, and to permit persons to whom the Software is | |||
| 11 | + | furnished to do so, subject to the following conditions: | |||
| 12 | + | ||||
| 13 | + | The above copyright notice and this permission notice shall be included in all | |||
| 14 | + | copies or substantial portions of the Software. | |||
| 15 | + | ||||
| 16 | + | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||
| 17 | + | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||
| 18 | + | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||
| 19 | + | AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |||
| 20 | + | ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | |||
| 21 | + | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| 22 | + | ||||
| 23 | + | Except as contained in this notice, the names of the authors or their | |||
| 24 | + | institutions shall not be used in advertising or otherwise to promote the | |||
| 25 | + | sale, use or other dealings in this Software without prior written | |||
| 26 | + | authorization from the authors. | |||
| 27 | + | --> | |||
| 28 | + | <xcb header="res" extension-xname="X-Resource" extension-name="Res" | |||
| 29 | + | major-version="1" minor-version="2"> | |||
| 30 | + | <import>xproto</import> | |||
| 31 | + | ||||
| 32 | + | <!-- v1.0 --> | |||
| 33 | + | <struct name="Client"> | |||
| 34 | + | <field type="CARD32" name="resource_base" /> | |||
| 35 | + | <field type="CARD32" name="resource_mask" /> | |||
| 36 | + | </struct> | |||
| 37 | + | ||||
| 38 | + | <struct name="Type"> | |||
| 39 | + | <field type="ATOM" name="resource_type" /> | |||
| 40 | + | <field type="CARD32" name="count" /> | |||
| 41 | + | </struct> | |||
| 42 | + | ||||
| 43 | + | <!-- v1.2 --> | |||
| 44 | + | <enum name="ClientIdMask"> | |||
| 45 | + | <item name="ClientXID"> <bit>0</bit> </item> | |||
| 46 | + | <item name="LocalClientPID"> <bit>1</bit> </item> | |||
| 47 | + | </enum> | |||
| 48 | + | ||||
| 49 | + | <struct name="ClientIdSpec"> | |||
| 50 | + | <field type="CARD32" name="client" /> | |||
| 51 | + | <field type="CARD32" name="mask" mask="ClientIdMask" /> | |||
| 52 | + | </struct> | |||
| 53 | + | ||||
| 54 | + | <struct name="ClientIdValue"> | |||
| 55 | + | <field type="ClientIdSpec" name="spec" /> | |||
| 56 | + | <field type="CARD32" name="length" /> | |||
| 57 | + | <list type="CARD32" name="value"> | |||
| 58 | + | <!-- The specification says that the length is in units of CARD32, | |||
| 59 | + | but the specification also says that the length is 4 when a | |||
| 60 | + | single LocalClientPid is present (ie. the length is in bytes). | |||
| 61 | + | The current server implementation sets the length to 4 when a | |||
| 62 | + | single CARD32 is present on the wire (length is in bytes). --> | |||
| 63 | + | <op op="/"> | |||
| 64 | + | <fieldref>length</fieldref> | |||
| 65 | + | <value>4</value> | |||
| 66 | + | </op> | |||
| 67 | + | </list> | |||
| 68 | + | </struct> | |||
| 69 | + | ||||
| 70 | + | <struct name="ResourceIdSpec"> | |||
| 71 | + | <field type="CARD32" name="resource" /> | |||
| 72 | + | <field type="CARD32" name="type" /> | |||
| 73 | + | </struct> | |||
| 74 | + | ||||
| 75 | + | <struct name="ResourceSizeSpec"> | |||
| 76 | + | <field type="ResourceIdSpec" name="spec" /> | |||
| 77 | + | <field type="CARD32" name="bytes" /> | |||
| 78 | + | <field type="CARD32" name="ref_count" /> | |||
| 79 | + | <field type="CARD32" name="use_count" /> | |||
| 80 | + | </struct> | |||
| 81 | + | ||||
| 82 | + | <struct name="ResourceSizeValue"> | |||
| 83 | + | <field type="ResourceSizeSpec" name="size" /> | |||
| 84 | + | <field type="CARD32" name="num_cross_references" /> | |||
| 85 | + | <list type="ResourceSizeSpec" name="cross_references"> | |||
| 86 | + | <fieldref>num_cross_references</fieldref> | |||
| 87 | + | </list> | |||
| 88 | + | </struct> | |||
| 89 | + | ||||
| 90 | + | <!-- v1.0 --> | |||
| 91 | + | <request name="QueryVersion" opcode="0"> | |||
| 92 | + | <field type="CARD8" name="client_major" /> | |||
| 93 | + | <field type="CARD8" name="client_minor" /> | |||
| 94 | + | <reply> | |||
| 95 | + | <pad bytes="1" /> | |||
| 96 | + | <field type="CARD16" name="server_major" /> | |||
| 97 | + | <field type="CARD16" name="server_minor" /> | |||
| 98 | + | </reply> | |||
| 99 | + | </request> | |||
| 100 | + | ||||
| 101 | + | <request name="QueryClients" opcode="1"> | |||
| 102 | + | <reply> | |||
| 103 | + | <pad bytes="1" /> | |||
| 104 | + | <field type="CARD32" name="num_clients" /> | |||
| 105 | + | <pad bytes="20" /> | |||
| 106 | + | <list type="Client" name="clients"> | |||
| 107 | + | <fieldref>num_clients</fieldref> | |||
| 108 | + | </list> | |||
| 109 | + | </reply> | |||
| 110 | + | </request> | |||
| 111 | + | ||||
| 112 | + | <request name="QueryClientResources" opcode="2"> | |||
| 113 | + | <field type="CARD32" name="xid" /> | |||
| 114 | + | <reply> | |||
| 115 | + | <pad bytes="1" /> | |||
| 116 | + | <field type="CARD32" name="num_types" /> | |||
| 117 | + | <pad bytes="20" /> | |||
| 118 | + | <list type="Type" name="types"> | |||
| 119 | + | <fieldref>num_types</fieldref> | |||
| 120 | + | </list> | |||
| 121 | + | </reply> | |||
| 122 | + | </request> | |||
| 123 | + | ||||
| 124 | + | <request name="QueryClientPixmapBytes" opcode="3"> | |||
| 125 | + | <field type="CARD32" name="xid" /> | |||
| 126 | + | <reply> | |||
| 127 | + | <pad bytes="1" /> | |||
| 128 | + | <field type="CARD32" name="bytes" /> | |||
| 129 | + | <field type="CARD32" name="bytes_overflow" /> | |||
| 130 | + | </reply> | |||
| 131 | + | </request> | |||
| 132 | + | ||||
| 133 | + | <!-- v1.2 --> | |||
| 134 | + | <request name="QueryClientIds" opcode="4"> | |||
| 135 | + | <field type="CARD32" name="num_specs" /> | |||
| 136 | + | <list type="ClientIdSpec" name="specs"> | |||
| 137 | + | <fieldref>num_specs</fieldref> | |||
| 138 | + | </list> | |||
| 139 | + | <reply> | |||
| 140 | + | <pad bytes="1" /> | |||
| 141 | + | <field type="CARD32" name="num_ids" /> | |||
| 142 | + | <pad bytes="20" /> | |||
| 143 | + | <list type="ClientIdValue" name="ids"> | |||
| 144 | + | <fieldref>num_ids</fieldref> | |||
| 145 | + | </list> | |||
| 146 | + | </reply> | |||
| 147 | + | </request> | |||
| 148 | + | ||||
| 149 | + | <request name="QueryResourceBytes" opcode="5"> | |||
| 150 | + | <field type="CARD32" name="client" /> | |||
| 151 | + | <field type="CARD32" name="num_specs" /> | |||
| 152 | + | <list type="ResourceIdSpec" name="specs"> | |||
| 153 | + | <fieldref>num_specs</fieldref> | |||
| 154 | + | </list> | |||
| 155 | + | <reply> | |||
| 156 | + | <pad bytes="1" /> | |||
| 157 | + | <field type="CARD32" name="num_sizes" /> | |||
| 158 | + | <pad bytes="20" /> | |||
| 159 | + | <list type="ResourceSizeValue" name="sizes"> | |||
| 160 | + | <fieldref>num_sizes</fieldref> | |||
| 161 | + | </list> | |||
| 162 | + | </reply> | |||
| 163 | + | </request> | |||
| 164 | + | </xcb> | |||
A spec/xml/shape.xml +155 -0
| @@ -0,0 +1,155 @@ | |||
| 1 | + | <?xml version="1.0" encoding="utf-8"?> | |
| 2 | + | <!-- | |
| 3 | + | Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett. | |
| 4 | + | All Rights Reserved. | |
| 5 | + | ||
| 6 | + | Permission is hereby granted, free of charge, to any person obtaining a copy | |
| 7 | + | of this software and associated documentation files (the "Software"), to deal | |
| 8 | + | in the Software without restriction, including without limitation the rights | |
| 9 | + | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
| 10 | + | copies of the Software, and to permit persons to whom the Software is | |
| 11 | + | furnished to do so, subject to the following conditions: | |
| 12 | + | ||
| 13 | + | The above copyright notice and this permission notice shall be included in all | |
| 14 | + | copies or substantial portions of the Software. | |
| 15 | + | ||
| 16 | + | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
| 17 | + | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
| 18 | + | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
| 19 | + | AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |
| 20 | + | ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | |
| 21 | + | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |
| 22 | + | ||
| 23 | + | Except as contained in this notice, the names of the authors or their | |
| 24 | + | institutions shall not be used in advertising or otherwise to promote the | |
| 25 | + | sale, use or other dealings in this Software without prior written | |
| 26 | + | authorization from the authors. | |
| 27 | + | --> | |
| 28 | + | <!-- This file describes version 1.1 of the Shape extension. --> | |
| 29 | + | <xcb header="shape" extension-xname="SHAPE" extension-name="Shape" major-version="1" minor-version="1"> | |
| 30 | + | <import>xproto</import> | |
| 31 | + | ||
| 32 | + | <typedef oldname="CARD8" newname="OP" /> | |
| 33 | + | <typedef oldname="CARD8" newname="KIND" /> | |
| 34 | + | ||
| 35 | + | <!-- Shape attributes of type OP. --> | |
| 36 | + | <enum name="SO"> | |
| 37 | + | <item name="Set"> <value>0</value> </item> | |
| 38 | + | <item name="Union"> <value>1</value> </item> | |
| 39 | + | <item name="Intersect"> <value>2</value> </item> | |
| 40 | + | <item name="Subtract"> <value>3</value> </item> | |
| 41 | + | <item name="Invert"> <value>4</value> </item> | |
| 42 | + | </enum> | |
| 43 | + | ||
| 44 | + | <!-- Shape attributes of type KIND. --> | |
| 45 | + | <enum name="SK"> | |
| 46 | + | <item name="Bounding"> <value>0</value> </item> | |
| 47 | + | <item name="Clip"> <value>1</value> </item> | |
| 48 | + | <item name="Input"> <value>2</value> </item> <!-- added in version 1.1 --> | |
| 49 | + | </enum> | |
| 50 | + | ||
| 51 | + | <event name="Notify" number="0"> | |
| 52 | + | <field type="KIND" name="shape_kind" enum="SK" /> | |
| 53 | + | <field type="WINDOW" name="affected_window" /> | |
| 54 | + | <field type="INT16" name="extents_x" /> | |
| 55 | + | <field type="INT16" name="extents_y" /> | |
| 56 | + | <field type="CARD16" name="extents_width" /> | |
| 57 | + | <field type="CARD16" name="extents_height" /> | |
| 58 | + | <field type="TIMESTAMP" name="server_time" /> | |
| 59 | + | <field type="BOOL" name="shaped" /> | |
| 60 | + | <pad bytes="11" /> | |
| 61 | + | </event> | |
| 62 | + | ||
| 63 | + | <request name="QueryVersion" opcode="0"> | |
| 64 | + | <reply> | |
| 65 | + | <pad bytes="1" /> | |
| 66 | + | <field type="CARD16" name="major_version" /> | |
| 67 | + | <field type="CARD16" name="minor_version" /> | |
| 68 | + | </reply> | |
| 69 | + | </request> | |
| 70 | + | ||
| 71 | + | <request name="Rectangles" opcode="1"> | |
| 72 | + | <field type="OP" name="operation" enum="SO" /> | |
| 73 | + | <field type="KIND" name="destination_kind" enum="SK" /> | |
| 74 | + | <field type="BYTE" name="ordering" enum="ClipOrdering" /> | |
| 75 | + | <pad bytes="1" /> | |
| 76 | + | <field type="WINDOW" name="destination_window" /> | |
| 77 | + | <field type="INT16" name="x_offset" /> | |
| 78 | + | <field type="INT16" name="y_offset" /> | |
| 79 | + | <list type="RECTANGLE" name="rectangles" /> | |
| 80 | + | </request> | |
| 81 | + | ||
| 82 | + | <request name="Mask" opcode="2"> | |
| 83 | + | <field type="OP" name="operation" enum="SO" /> | |
| 84 | + | <field type="KIND" name="destination_kind" enum="SK" /> | |
| 85 | + | <pad bytes="2" /> | |
| 86 | + | <field type="WINDOW" name="destination_window" /> | |
| 87 | + | <field type="INT16" name="x_offset" /> | |
| 88 | + | <field type="INT16" name="y_offset" /> | |
| 89 | + | <field type="PIXMAP" name="source_bitmap" altenum="Pixmap" /> | |
| 90 | + | </request> | |
| 91 | + | ||
| 92 | + | <request name="Combine" opcode="3"> | |
| 93 | + | <field type="OP" name="operation" enum="SO" /> | |
| 94 | + | <field type="KIND" name="destination_kind" enum="SK" /> | |
| 95 | + | <field type="KIND" name="source_kind" enum="SK" /> | |
| 96 | + | <pad bytes="1" /> | |
| 97 | + | <field type="WINDOW" name="destination_window" /> | |
| 98 | + | <field type="INT16" name="x_offset" /> | |
| 99 | + | <field type="INT16" name="y_offset" /> | |
| 100 | + | <field type="WINDOW" name="source_window" /> | |
| 101 | + | </request> | |
| 102 | + | ||
| 103 | + | <request name="Offset" opcode="4"> | |
| 104 | + | <field type="KIND" name="destination_kind" enum="SK" /> | |
| 105 | + | <pad bytes="3" /> | |
| 106 | + | <field type="WINDOW" name="destination_window" /> | |
| 107 | + | <field type="INT16" name="x_offset" /> | |
| 108 | + | <field type="INT16" name="y_offset" /> | |
| 109 | + | </request> | |
| 110 | + | ||
| 111 | + | <request name="QueryExtents" opcode="5"> | |
| 112 | + | <field type="WINDOW" name="destination_window" /> | |
| 113 | + | <reply> | |
| 114 | + | <pad bytes="1" /> | |
| 115 | + | <field type="BOOL" name="bounding_shaped" /> | |
| 116 | + | <field type="BOOL" name="clip_shaped" /> | |
| 117 | + | <pad bytes="2" /> | |
| 118 | + | <field type="INT16" name="bounding_shape_extents_x" /> | |
| 119 | + | <field type="INT16" name="bounding_shape_extents_y" /> | |
| 120 | + | <field type="CARD16" name="bounding_shape_extents_width" /> | |
| 121 | + | <field type="CARD16" name="bounding_shape_extents_height" /> | |
| 122 | + | <field type="INT16" name="clip_shape_extents_x" /> | |
| 123 | + | <field type="INT16" name="clip_shape_extents_y" /> | |
| 124 | + | <field type="CARD16" name="clip_shape_extents_width" /> | |
| 125 | + | <field type="CARD16" name="clip_shape_extents_height" /> | |
| 126 | + | </reply> | |
| 127 | + | </request> | |
| 128 | + | ||
| 129 | + | <request name="SelectInput" opcode="6"> | |
| 130 | + | <field type="WINDOW" name="destination_window" /> | |
| 131 | + | <field type="BOOL" name="enable" /> | |
| 132 | + | <pad bytes="3" /> | |
| 133 | + | </request> | |
| 134 | + | ||
| 135 | + | <request name="InputSelected" opcode="7"> | |
| 136 | + | <field type="WINDOW" name="destination_window" /> | |
| 137 | + | <reply> | |
| 138 | + | <field type="BOOL" name="enabled" /> | |
| 139 | + | </reply> | |
| 140 | + | </request> | |
| 141 | + | ||
| 142 | + | <request name="GetRectangles" opcode="8"> | |
| 143 | + | <field type="WINDOW" name="window" /> | |
| 144 | + | <field type="KIND" name="source_kind" enum="SK" /> | |
| 145 | + | <pad bytes="3" /> | |
| 146 | + | <reply> | |
| 147 | + | <field type="BYTE" name="ordering" enum="ClipOrdering" /> | |
| 148 | + | <field type="CARD32" name="rectangles_len" /> | |
| 149 | + | <pad bytes="20" /> | |
| 150 | + | <list type="RECTANGLE" name="rectangles"> | |
| 151 | + | <fieldref>rectangles_len</fieldref> | |
| 152 | + | </list> | |
| 153 | + | </reply> | |
| 154 | + | </request> | |
| 155 | + | </xcb> | |
| @@ -0,0 +1,155 @@ | |||||
| 1 | + | <?xml version="1.0" encoding="utf-8"?> | |||
| 2 | + | <!-- | |||
| 3 | + | Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett. | |||
| 4 | + | All Rights Reserved. | |||
| 5 | + | ||||
| 6 | + | Permission is hereby granted, free of charge, to any person obtaining a copy | |||
| 7 | + | of this software and associated documentation files (the "Software"), to deal | |||
| 8 | + | in the Software without restriction, including without limitation the rights | |||
| 9 | + | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||
| 10 | + | copies of the Software, and to permit persons to whom the Software is | |||
| 11 | + | furnished to do so, subject to the following conditions: | |||
| 12 | + | ||||
| 13 | + | The above copyright notice and this permission notice shall be included in all | |||
| 14 | + | copies or substantial portions of the Software. | |||
| 15 | + | ||||
| 16 | + | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||
| 17 | + | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||
| 18 | + | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||
| 19 | + | AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |||
| 20 | + | ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | |||
| 21 | + | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| 22 | + | ||||
| 23 | + | Except as contained in this notice, the names of the authors or their | |||
| 24 | + | institutions shall not be used in advertising or otherwise to promote the | |||
| 25 | + | sale, use or other dealings in this Software without prior written | |||
| 26 | + | authorization from the authors. | |||
| 27 | + | --> | |||
| 28 | + | <!-- This file describes version 1.1 of the Shape extension. --> | |||
| 29 | + | <xcb header="shape" extension-xname="SHAPE" extension-name="Shape" major-version="1" minor-version="1"> | |||
| 30 | + | <import>xproto</import> | |||
| 31 | + | ||||
| 32 | + | <typedef oldname="CARD8" newname="OP" /> | |||
| 33 | + | <typedef oldname="CARD8" newname="KIND" /> | |||
| 34 | + | ||||
| 35 | + | <!-- Shape attributes of type OP. --> | |||
| 36 | + | <enum name="SO"> | |||
| 37 | + | <item name="Set"> <value>0</value> </item> | |||
| 38 | + | <item name="Union"> <value>1</value> </item> | |||
| 39 | + | <item name="Intersect"> <value>2</value> </item> | |||
| 40 | + | <item name="Subtract"> <value>3</value> </item> | |||
| 41 | + | <item name="Invert"> <value>4</value> </item> | |||
| 42 | + | </enum> | |||
| 43 | + | ||||
| 44 | + | <!-- Shape attributes of type KIND. --> | |||
| 45 | + | <enum name="SK"> | |||
| 46 | + | <item name="Bounding"> <value>0</value> </item> | |||
| 47 | + | <item name="Clip"> <value>1</value> </item> | |||
| 48 | + | <item name="Input"> <value>2</value> </item> <!-- added in version 1.1 --> | |||
| 49 | + | </enum> | |||
| 50 | + | ||||
| 51 | + | <event name="Notify" number="0"> | |||
| 52 | + | <field type="KIND" name="shape_kind" enum="SK" /> | |||
| 53 | + | <field type="WINDOW" name="affected_window" /> | |||
| 54 | + | <field type="INT16" name="extents_x" /> | |||
| 55 | + | <field type="INT16" name="extents_y" /> | |||
| 56 | + | <field type="CARD16" name="extents_width" /> | |||
| 57 | + | <field type="CARD16" name="extents_height" /> | |||
| 58 | + | <field type="TIMESTAMP" name="server_time" /> | |||
| 59 | + | <field type="BOOL" name="shaped" /> | |||
| 60 | + | <pad bytes="11" /> | |||
| 61 | + | </event> | |||
| 62 | + | ||||
| 63 | + | <request name="QueryVersion" opcode="0"> | |||
| 64 | + | <reply> | |||
| 65 | + | <pad bytes="1" /> | |||
| 66 | + | <field type="CARD16" name="major_version" /> | |||
| 67 | + | <field type="CARD16" name="minor_version" /> | |||
| 68 | + | </reply> | |||
| 69 | + | </request> | |||
| 70 | + | ||||
| 71 | + | <request name="Rectangles" opcode="1"> | |||
| 72 | + | <field type="OP" name="operation" enum="SO" /> | |||
| 73 | + | <field type="KIND" name="destination_kind" enum="SK" /> | |||
| 74 | + | <field type="BYTE" name="ordering" enum="ClipOrdering" /> | |||
| 75 | + | <pad bytes="1" /> | |||
| 76 | + | <field type="WINDOW" name="destination_window" /> | |||
| 77 | + | <field type="INT16" name="x_offset" /> | |||
| 78 | + | <field type="INT16" name="y_offset" /> | |||
| 79 | + | <list type="RECTANGLE" name="rectangles" /> | |||
| 80 | + | </request> | |||
| 81 | + | ||||
| 82 | + | <request name="Mask" opcode="2"> | |||
| 83 | + | <field type="OP" name="operation" enum="SO" /> | |||
| 84 | + | <field type="KIND" name="destination_kind" enum="SK" /> | |||
| 85 | + | <pad bytes="2" /> | |||
| 86 | + | <field type="WINDOW" name="destination_window" /> | |||
| 87 | + | <field type="INT16" name="x_offset" /> | |||
| 88 | + | <field type="INT16" name="y_offset" /> | |||
| 89 | + | <field type="PIXMAP" name="source_bitmap" altenum="Pixmap" /> | |||
| 90 | + | </request> | |||
| 91 | + | ||||
| 92 | + | <request name="Combine" opcode="3"> | |||
| 93 | + | <field type="OP" name="operation" enum="SO" /> | |||
| 94 | + | <field type="KIND" name="destination_kind" enum="SK" /> | |||
| 95 | + | <field type="KIND" name="source_kind" enum="SK" /> | |||
| 96 | + | <pad bytes="1" /> | |||
| 97 | + | <field type="WINDOW" name="destination_window" /> | |||
| 98 | + | <field type="INT16" name="x_offset" /> | |||
| 99 | + | <field type="INT16" name="y_offset" /> | |||
| 100 | + | <field type="WINDOW" name="source_window" /> | |||
| 101 | + | </request> | |||
| 102 | + | ||||
| 103 | + | <request name="Offset" opcode="4"> | |||
| 104 | + | <field type="KIND" name="destination_kind" enum="SK" /> | |||
| 105 | + | <pad bytes="3" /> | |||
| 106 | + | <field type="WINDOW" name="destination_window" /> | |||
| 107 | + | <field type="INT16" name="x_offset" /> | |||
| 108 | + | <field type="INT16" name="y_offset" /> | |||
| 109 | + | </request> | |||
| 110 | + | ||||
| 111 | + | <request name="QueryExtents" opcode="5"> | |||
| 112 | + | <field type="WINDOW" name="destination_window" /> | |||
| 113 | + | <reply> | |||
| 114 | + | <pad bytes="1" /> | |||
| 115 | + | <field type="BOOL" name="bounding_shaped" /> | |||
| 116 | + | <field type="BOOL" name="clip_shaped" /> | |||
| 117 | + | <pad bytes="2" /> | |||
| 118 | + | <field type="INT16" name="bounding_shape_extents_x" /> | |||
| 119 | + | <field type="INT16" name="bounding_shape_extents_y" /> | |||
| 120 | + | <field type="CARD16" name="bounding_shape_extents_width" /> | |||
| 121 | + | <field type="CARD16" name="bounding_shape_extents_height" /> | |||
| 122 | + | <field type="INT16" name="clip_shape_extents_x" /> | |||
| 123 | + | <field type="INT16" name="clip_shape_extents_y" /> | |||
| 124 | + | <field type="CARD16" name="clip_shape_extents_width" /> | |||
| 125 | + | <field type="CARD16" name="clip_shape_extents_height" /> | |||
| 126 | + | </reply> | |||
| 127 | + | </request> | |||
| 128 | + | ||||
| 129 | + | <request name="SelectInput" opcode="6"> | |||
| 130 | + | <field type="WINDOW" name="destination_window" /> | |||
| 131 | + | <field type="BOOL" name="enable" /> | |||
| 132 | + | <pad bytes="3" /> | |||
| 133 | + | </request> | |||
| 134 | + | ||||
| 135 | + | <request name="InputSelected" opcode="7"> | |||
| 136 | + | <field type="WINDOW" name="destination_window" /> | |||
| 137 | + | <reply> | |||
| 138 | + | <field type="BOOL" name="enabled" /> | |||
| 139 | + | </reply> | |||
| 140 | + | </request> | |||
| 141 | + | ||||
| 142 | + | <request name="GetRectangles" opcode="8"> | |||
| 143 | + | <field type="WINDOW" name="window" /> | |||
| 144 | + | <field type="KIND" name="source_kind" enum="SK" /> | |||
| 145 | + | <pad bytes="3" /> | |||
| 146 | + | <reply> | |||
| 147 | + | <field type="BYTE" name="ordering" enum="ClipOrdering" /> | |||
| 148 | + | <field type="CARD32" name="rectangles_len" /> | |||
| 149 | + | <pad bytes="20" /> | |||
| 150 | + | <list type="RECTANGLE" name="rectangles"> | |||
| 151 | + | <fieldref>rectangles_len</fieldref> | |||
| 152 | + | </list> | |||
| 153 | + | </reply> | |||
| 154 | + | </request> | |||
| 155 | + | </xcb> | |||
A spec/xml/xc_misc.xml +38 -0
| @@ -0,0 +1,38 @@ | |||
| 1 | + | <?xml version="1.0" encoding="utf-8"?> | |
| 2 | + | <!-- | |
| 3 | + | Copyright (C) 2004 Mikko Torni and Josh Triplett. | |
| 4 | + | All Rights Reserved. See the file COPYING in this directory | |
| 5 | + | for licensing information. | |
| 6 | + | --> | |
| 7 | + | <xcb header="xc_misc" extension-xname="XC-MISC" extension-name="XCMisc" | |
| 8 | + | extension-multiword="true" major-version="1" minor-version="1"> | |
| 9 | + | <request name="GetVersion" opcode="0"> | |
| 10 | + | <field type="CARD16" name="client_major_version" /> | |
| 11 | + | <field type="CARD16" name="client_minor_version" /> | |
| 12 | + | <reply> | |
| 13 | + | <pad bytes="1" /> | |
| 14 | + | <field type="CARD16" name="server_major_version" /> | |
| 15 | + | <field type="CARD16" name="server_minor_version" /> | |
| 16 | + | </reply> | |
| 17 | + | </request> | |
| 18 | + | ||
| 19 | + | <request name="GetXIDRange" opcode="1"> | |
| 20 | + | <reply> | |
| 21 | + | <pad bytes="1" /> | |
| 22 | + | <field type="CARD32" name="start_id" /> | |
| 23 | + | <field type="CARD32" name="count" /> | |
| 24 | + | </reply> | |
| 25 | + | </request> | |
| 26 | + | ||
| 27 | + | <request name="GetXIDList" opcode="2"> | |
| 28 | + | <field type="CARD32" name="count" /> | |
| 29 | + | <reply> | |
| 30 | + | <pad bytes="1" /> | |
| 31 | + | <field type="CARD32" name="ids_len" /> | |
| 32 | + | <pad bytes="20" /> | |
| 33 | + | <list type="CARD32" name="ids"> | |
| 34 | + | <fieldref>ids_len</fieldref> | |
| 35 | + | </list> | |
| 36 | + | </reply> | |
| 37 | + | </request> | |
| 38 | + | </xcb> | |
| @@ -0,0 +1,38 @@ | |||||
| 1 | + | <?xml version="1.0" encoding="utf-8"?> | |||
| 2 | + | <!-- | |||
| 3 | + | Copyright (C) 2004 Mikko Torni and Josh Triplett. | |||
| 4 | + | All Rights Reserved. See the file COPYING in this directory | |||
| 5 | + | for licensing information. | |||
| 6 | + | --> | |||
| 7 | + | <xcb header="xc_misc" extension-xname="XC-MISC" extension-name="XCMisc" | |||
| 8 | + | extension-multiword="true" major-version="1" minor-version="1"> | |||
| 9 | + | <request name="GetVersion" opcode="0"> | |||
| 10 | + | <field type="CARD16" name="client_major_version" /> | |||
| 11 | + | <field type="CARD16" name="client_minor_version" /> | |||
| 12 | + | <reply> | |||
| 13 | + | <pad bytes="1" /> | |||
| 14 | + | <field type="CARD16" name="server_major_version" /> | |||
| 15 | + | <field type="CARD16" name="server_minor_version" /> | |||
| 16 | + | </reply> | |||
| 17 | + | </request> | |||
| 18 | + | ||||
| 19 | + | <request name="GetXIDRange" opcode="1"> | |||
| 20 | + | <reply> | |||
| 21 | + | <pad bytes="1" /> | |||
| 22 | + | <field type="CARD32" name="start_id" /> | |||
| 23 | + | <field type="CARD32" name="count" /> | |||
| 24 | + | </reply> | |||
| 25 | + | </request> | |||
| 26 | + | ||||
| 27 | + | <request name="GetXIDList" opcode="2"> | |||
| 28 | + | <field type="CARD32" name="count" /> | |||
| 29 | + | <reply> | |||
| 30 | + | <pad bytes="1" /> | |||
| 31 | + | <field type="CARD32" name="ids_len" /> | |||
| 32 | + | <pad bytes="20" /> | |||
| 33 | + | <list type="CARD32" name="ids"> | |||
| 34 | + | <fieldref>ids_len</fieldref> | |||
| 35 | + | </list> | |||
| 36 | + | </reply> | |||
| 37 | + | </request> | |||
| 38 | + | </xcb> | |||
A spec/xml/xfixes.xml +405 -0
| @@ -0,0 +1,405 @@ | |||
| 1 | + | <?xml version="1.0" encoding="utf-8"?> | |
| 2 | + | <!-- | |
| 3 | + | Copyright (C) 2004 Josh Triplett. All Rights Reserved. | |
| 4 | + | ||
| 5 | + | Permission is hereby granted, free of charge, to any person obtaining a copy | |
| 6 | + | of this software and associated documentation files (the "Software"), to deal | |
| 7 | + | in the Software without restriction, including without limitation the rights | |
| 8 | + | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
| 9 | + | copies of the Software, and to permit persons to whom the Software is | |
| 10 | + | furnished to do so, subject to the following conditions: | |
| 11 | + | ||
| 12 | + | The above copyright notice and this permission notice shall be included in all | |
| 13 | + | copies or substantial portions of the Software. | |
| 14 | + | ||
| 15 | + | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
| 16 | + | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
| 17 | + | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
| 18 | + | AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |
| 19 | + | ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | |
| 20 | + | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |
| 21 | + | ||
| 22 | + | Except as contained in this notice, the names of the authors or their | |
| 23 | + | institutions shall not be used in advertising or otherwise to promote the | |
| 24 | + | sale, use or other dealings in this Software without prior written | |
| 25 | + | authorization from the authors. | |
| 26 | + | --> | |
| 27 | + | <!-- This file describes version 4 of XFixes. --> | |
| 28 | + | <xcb header="xfixes" extension-xname="XFIXES" extension-name="XFixes" | |
| 29 | + | major-version="6" minor-version="0"> | |
| 30 | + | <import>xproto</import> | |
| 31 | + | <import>render</import> | |
| 32 | + | <import>shape</import> | |
| 33 | + | ||
| 34 | + | <!-- Version 1 --> | |
| 35 | + | <request name="QueryVersion" opcode="0"> | |
| 36 | + | <field type="CARD32" name="client_major_version" /> | |
| 37 | + | <field type="CARD32" name="client_minor_version" /> | |
| 38 | + | <reply> | |
| 39 | + | <pad bytes="1" /> | |
| 40 | + | <field type="CARD32" name="major_version" /> | |
| 41 | + | <field type="CARD32" name="minor_version" /> | |
| 42 | + | <pad bytes="16" /> | |
| 43 | + | </reply> | |
| 44 | + | </request> | |
| 45 | + | ||
| 46 | + | <enum name="SaveSetMode"> | |
| 47 | + | <item name="Insert"> <value>0</value> </item> | |
| 48 | + | <item name="Delete"> <value>1</value> </item> | |
| 49 | + | </enum> | |
| 50 | + | ||
| 51 | + | <enum name="SaveSetTarget"> | |
| 52 | + | <item name="Nearest"> <value>0</value> </item> | |
| 53 | + | <item name="Root"> <value>1</value> </item> | |
| 54 | + | </enum> | |
| 55 | + | ||
| 56 | + | <enum name="SaveSetMapping"> | |
| 57 | + | <item name="Map"> <value>0</value> </item> | |
| 58 | + | <item name="Unmap"> <value>1</value> </item> | |
| 59 | + | </enum> | |
| 60 | + | ||
| 61 | + | <request name="ChangeSaveSet" opcode="1"> | |
| 62 | + | <field type="BYTE" name="mode" enum="SaveSetMode" /> | |
| 63 | + | <field type="BYTE" name="target" enum="SaveSetTarget" /> | |
| 64 | + | <field type="BYTE" name="map" enum="SaveSetMapping" /> | |
| 65 | + | <pad bytes="1" /> | |
| 66 | + | <field type="WINDOW" name="window" /> | |
| 67 | + | </request> | |
| 68 | + | ||
| 69 | + | <enum name="SelectionEvent"> | |
| 70 | + | <item name="SetSelectionOwner"> <value>0</value> </item> | |
| 71 | + | <item name="SelectionWindowDestroy"> <value>1</value> </item> | |
| 72 | + | <item name="SelectionClientClose"> <value>2</value> </item> | |
| 73 | + | </enum> | |
| 74 | + | ||
| 75 | + | <enum name="SelectionEventMask"> | |
| 76 | + | <item name="SetSelectionOwner"> <bit>0</bit></item> | |
| 77 | + | <item name="SelectionWindowDestroy"><bit>1</bit></item> | |
| 78 | + | <item name="SelectionClientClose"> <bit>2</bit></item> | |
| 79 | + | </enum> | |
| 80 | + | ||
| 81 | + | <event name="SelectionNotify" number="0"> | |
| 82 | + | <field type="CARD8" name="subtype" enum="SelectionEvent" /> | |
| 83 | + | <field type="WINDOW" name="window" /> | |
| 84 | + | <field type="WINDOW" name="owner" /> | |
| 85 | + | <field type="ATOM" name="selection" /> | |
| 86 | + | <field type="TIMESTAMP" name="timestamp" /> | |
| 87 | + | <field type="TIMESTAMP" name="selection_timestamp" /> | |
| 88 | + | <pad bytes="8" /> | |
| 89 | + | </event> | |
| 90 | + | ||
| 91 | + | <request name="SelectSelectionInput" opcode="2"> | |
| 92 | + | <field type="WINDOW" name="window" /> | |
| 93 | + | <field type="ATOM" name="selection" /> | |
| 94 | + | <field type="CARD32" name="event_mask" mask="SelectionEventMask" /> | |
| 95 | + | </request> | |
| 96 | + | ||
| 97 | + | <enum name="CursorNotify"> | |
| 98 | + | <item name="DisplayCursor"> <value>0</value> </item> | |
| 99 | + | </enum> | |
| 100 | + | ||
| 101 | + | <enum name="CursorNotifyMask"> | |
| 102 | + | <item name="DisplayCursor"><bit>0</bit></item> | |
| 103 | + | </enum> | |
| 104 | + | ||
| 105 | + | <event name="CursorNotify" number="1"> | |
| 106 | + | <field type="CARD8" name="subtype" enum="CursorNotify" /> | |
| 107 | + | <field type="WINDOW" name="window" /> | |
| 108 | + | <field type="CARD32" name="cursor_serial" /> | |
| 109 | + | <field type="TIMESTAMP" name="timestamp" /> | |
| 110 | + | <field type="ATOM" name="name" altenum="Atom" /> <!-- Added in version 2 --> | |
| 111 | + | <pad bytes="12" /> | |
| 112 | + | </event> | |
| 113 | + | ||
| 114 | + | <request name="SelectCursorInput" opcode="3"> | |
| 115 | + | <field type="WINDOW" name="window" /> | |
| 116 | + | <field type="CARD32" name="event_mask" mask="CursorNotifyMask" /> | |
| 117 | + | </request> | |
| 118 | + | ||
| 119 | + | <request name="GetCursorImage" opcode="4"> | |
| 120 | + | <reply> | |
| 121 | + | <pad bytes="1" /> | |
| 122 | + | <field type="INT16" name="x" /> | |
| 123 | + | <field type="INT16" name="y" /> | |
| 124 | + | <field type="CARD16" name="width" /> | |
| 125 | + | <field type="CARD16" name="height" /> | |
| 126 | + | <field type="CARD16" name="xhot" /> | |
| 127 | + | <field type="CARD16" name="yhot" /> | |
| 128 | + | <field type="CARD32" name="cursor_serial" /> | |
| 129 | + | <pad bytes="8" /> | |
| 130 | + | <list type="CARD32" name="cursor_image"> | |
| 131 | + | <op op="*"> | |
| 132 | + | <fieldref>width</fieldref> | |
| 133 | + | <fieldref>height</fieldref> | |
| 134 | + | </op> | |
| 135 | + | </list> | |
| 136 | + | </reply> | |
| 137 | + | </request> | |
| 138 | + | ||
| 139 | + | <!-- Version 2 --> | |
| 140 | + | ||
| 141 | + | <xidtype name="REGION" /> | |
| 142 | + | ||
| 143 | + | <error name="BadRegion" number="0" /> | |
| 144 | + | ||
| 145 | + | <enum name="Region"> | |
| 146 | + | <item name="None"> <value>0</value> </item> | |
| 147 | + | </enum> | |
| 148 | + | ||
| 149 | + | <request name="CreateRegion" opcode="5"> | |
| 150 | + | <field type="REGION" name="region" /> | |
| 151 | + | <list type="RECTANGLE" name="rectangles" /> | |
| 152 | + | </request> | |
| 153 | + | ||
| 154 | + | <request name="CreateRegionFromBitmap" opcode="6"> | |
| 155 | + | <field type="REGION" name="region" /> | |
| 156 | + | <field type="PIXMAP" name="bitmap" /> | |
| 157 | + | </request> | |
| 158 | + | ||
| 159 | + | <request name="CreateRegionFromWindow" opcode="7"> | |
| 160 | + | <field type="REGION" name="region" /> | |
| 161 | + | <field type="WINDOW" name="window" /> | |
| 162 | + | <field type="shape:KIND" name="kind" enum="SK" /> | |
| 163 | + | <pad bytes="3" /> | |
| 164 | + | </request> | |
| 165 | + | ||
| 166 | + | <request name="CreateRegionFromGC" opcode="8"> | |
| 167 | + | <field type="REGION" name="region" /> | |
| 168 | + | <field type="GCONTEXT" name="gc" /> | |
| 169 | + | </request> | |
| 170 | + | ||
| 171 | + | <request name="CreateRegionFromPicture" opcode="9"> | |
| 172 | + | <field type="REGION" name="region" /> | |
| 173 | + | <field type="PICTURE" name="picture" /> | |
| 174 | + | </request> | |
| 175 | + | ||
| 176 | + | <request name="DestroyRegion" opcode="10"> | |
| 177 | + | <field type="REGION" name="region" /> | |
| 178 | + | </request> | |
| 179 | + | ||
| 180 | + | <request name="SetRegion" opcode="11"> | |
| 181 | + | <field type="REGION" name="region" /> | |
| 182 | + | <list type="RECTANGLE" name="rectangles" /> | |
| 183 | + | </request> | |
| 184 | + | ||
| 185 | + | <request name="CopyRegion" opcode="12"> | |
| 186 | + | <field type="REGION" name="source" /> | |
| 187 | + | <field type="REGION" name="destination" /> | |
| 188 | + | </request> | |
| 189 | + | ||
| 190 | + | <request name="UnionRegion" opcode="13"> | |
| 191 | + | <field type="REGION" name="source1" /> | |
| 192 | + | <field type="REGION" name="source2" /> | |
| 193 | + | <field type="REGION" name="destination" /> | |
| 194 | + | </request> | |
| 195 | + | ||
| 196 | + | <request name="IntersectRegion" opcode="14"> | |
| 197 | + | <field type="REGION" name="source1" /> | |
| 198 | + | <field type="REGION" name="source2" /> | |
| 199 | + | <field type="REGION" name="destination" /> | |
| 200 | + | </request> | |
| 201 | + | ||
| 202 | + | <request name="SubtractRegion" opcode="15"> | |
| 203 | + | <field type="REGION" name="source1" /> | |
| 204 | + | <field type="REGION" name="source2" /> | |
| 205 | + | <field type="REGION" name="destination" /> | |
| 206 | + | </request> | |
| 207 | + | ||
| 208 | + | <request name="InvertRegion" opcode="16"> | |
| 209 | + | <field type="REGION" name="source" /> | |
| 210 | + | <field type="RECTANGLE" name="bounds" /> | |
| 211 | + | <field type="REGION" name="destination" /> | |
| 212 | + | </request> | |
| 213 | + | ||
| 214 | + | <request name="TranslateRegion" opcode="17"> | |
| 215 | + | <field type="REGION" name="region" /> | |
| 216 | + | <field type="INT16" name="dx" /> | |
| 217 | + | <field type="INT16" name="dy" /> | |
| 218 | + | </request> | |
| 219 | + | ||
| 220 | + | <request name="RegionExtents" opcode="18"> | |
| 221 | + | <field type="REGION" name="source" /> | |
| 222 | + | <field type="REGION" name="destination" /> | |
| 223 | + | </request> | |
| 224 | + | ||
| 225 | + | <request name="FetchRegion" opcode="19"> | |
| 226 | + | <field type="REGION" name="region" /> | |
| 227 | + | <reply> | |
| 228 | + | <pad bytes="1" /> | |
| 229 | + | <field type="RECTANGLE" name="extents" /> | |
| 230 | + | <pad bytes="16" /> | |
| 231 | + | <list type="RECTANGLE" name="rectangles"> | |
| 232 | + | <op op='/'> | |
| 233 | + | <fieldref>length</fieldref> | |
| 234 | + | <value>2</value> | |
| 235 | + | </op> | |
| 236 | + | </list> | |
| 237 | + | </reply> | |
| 238 | + | </request> | |
| 239 | + | ||
| 240 | + | <request name="SetGCClipRegion" opcode="20"> | |
| 241 | + | <field type="GCONTEXT" name="gc" /> | |
| 242 | + | <field type="REGION" name="region" altenum="Region" /> | |
| 243 | + | <field type="INT16" name="x_origin" /> | |
| 244 | + | <field type="INT16" name="y_origin" /> | |
| 245 | + | </request> | |
| 246 | + | ||
| 247 | + | <request name="SetWindowShapeRegion" opcode="21"> | |
| 248 | + | <field type="WINDOW" name="dest" /> | |
| 249 | + | <field type="shape:KIND" name="dest_kind" enum="SK" /> | |
| 250 | + | <pad bytes="3" /> | |
| 251 | + | <field type="INT16" name="x_offset" /> | |
| 252 | + | <field type="INT16" name="y_offset" /> | |
| 253 | + | <field type="REGION" name="region" altenum="Region" /> | |
| 254 | + | </request> | |
| 255 | + | ||
| 256 | + | <request name="SetPictureClipRegion" opcode="22"> | |
| 257 | + | <field type="PICTURE" name="picture" /> | |
| 258 | + | <field type="REGION" name="region" altenum="Region" /> | |
| 259 | + | <field type="INT16" name="x_origin" /> | |
| 260 | + | <field type="INT16" name="y_origin" /> | |
| 261 | + | </request> | |
| 262 | + | ||
| 263 | + | <request name="SetCursorName" opcode="23"> | |
| 264 | + | <field type="CURSOR" name="cursor" /> | |
| 265 | + | <field type="CARD16" name="nbytes" /> | |
| 266 | + | <pad bytes="2" /> | |
| 267 | + | <list type="char" name="name"><fieldref>nbytes</fieldref></list> | |
| 268 | + | </request> | |
| 269 | + | ||
| 270 | + | <request name="GetCursorName" opcode="24"> | |
| 271 | + | <field type="CURSOR" name="cursor" /> | |
| 272 | + | <reply> | |
| 273 | + | <pad bytes="1" /> | |
| 274 | + | <field type="ATOM" name="atom" altenum="Atom" /> | |
| 275 | + | <field type="CARD16" name="nbytes" /> | |
| 276 | + | <pad bytes="18" /> | |
| 277 | + | <list type="char" name="name"><fieldref>nbytes</fieldref></list> | |
| 278 | + | </reply> | |
| 279 | + | </request> | |
| 280 | + | ||
| 281 | + | <request name="GetCursorImageAndName" opcode="25"> | |
| 282 | + | <reply> | |
| 283 | + | <pad bytes="1" /> | |
| 284 | + | <field type="INT16" name="x" /> | |
| 285 | + | <field type="INT16" name="y" /> | |
| 286 | + | <field type="CARD16" name="width" /> | |
| 287 | + | <field type="CARD16" name="height" /> | |
| 288 | + | <field type="CARD16" name="xhot" /> | |
| 289 | + | <field type="CARD16" name="yhot" /> | |
| 290 | + | <field type="CARD32" name="cursor_serial" /> | |
| 291 | + | <field type="ATOM" name="cursor_atom" altenum="Atom" /> | |
| 292 | + | <field type="CARD16" name="nbytes" /> | |
| 293 | + | <pad bytes="2" /> | |
| 294 | + | <list type="CARD32" name="cursor_image"> | |
| 295 | + | <op op="*"> | |
| 296 | + | <fieldref>width</fieldref> | |
| 297 | + | <fieldref>height</fieldref> | |
| 298 | + | </op> | |
| 299 | + | </list> | |
| 300 | + | <list type="char" name="name"><fieldref>nbytes</fieldref></list> | |
| 301 | + | </reply> | |
| 302 | + | </request> | |
| 303 | + | ||
| 304 | + | <request name="ChangeCursor" opcode="26"> | |
| 305 | + | <field type="CURSOR" name="source" /> | |
| 306 | + | <field type="CURSOR" name="destination" /> | |
| 307 | + | </request> | |
| 308 | + | ||
| 309 | + | <request name="ChangeCursorByName" opcode="27"> | |
| 310 | + | <field type="CURSOR" name="src" /> | |
| 311 | + | <field type="CARD16" name="nbytes" /> | |
| 312 | + | <pad bytes="2" /> | |
| 313 | + | <list type="char" name="name"><fieldref>nbytes</fieldref></list> | |
| 314 | + | </request> | |
| 315 | + | ||
| 316 | + | <!-- Version 3 --> | |
| 317 | + | <request name="ExpandRegion" opcode="28"> | |
| 318 | + | <field type="REGION" name="source" /> | |
| 319 | + | <field type="REGION" name="destination" /> | |
| 320 | + | <field type="CARD16" name="left" /> | |
| 321 | + | <field type="CARD16" name="right" /> | |
| 322 | + | <field type="CARD16" name="top" /> | |
| 323 | + | <field type="CARD16" name="bottom" /> | |
| 324 | + | </request> | |
| 325 | + | ||
| 326 | + | <!-- Version 4 --> | |
| 327 | + | <request name="HideCursor" opcode="29"> | |
| 328 | + | <field type="WINDOW" name="window" /> | |
| 329 | + | </request> | |
| 330 | + | ||
| 331 | + | <request name="ShowCursor" opcode="30"> | |
| 332 | + | <field type="WINDOW" name="window" /> | |
| 333 | + | </request> | |
| 334 | + | ||
| 335 | + | <!-- Version 5 --> | |
| 336 | + | ||
| 337 | + | <xidtype name="BARRIER" /> | |
| 338 | + | ||
| 339 | + | <enum name="BarrierDirections"> | |
| 340 | + | <item name="PositiveX"><bit>0</bit></item> | |
| 341 | + | <item name="PositiveY"><bit>1</bit></item> | |
| 342 | + | <item name="NegativeX"><bit>2</bit></item> | |
| 343 | + | <item name="NegativeY"><bit>3</bit></item> | |
| 344 | + | </enum> | |
| 345 | + | ||
| 346 | + | <request name="CreatePointerBarrier" opcode="31"> | |
| 347 | + | <field type="BARRIER" name="barrier" /> | |
| 348 | + | <field type="WINDOW" name="window" /> | |
| 349 | + | <field type="CARD16" name="x1" /> | |
| 350 | + | <field type="CARD16" name="y1" /> | |
| 351 | + | <field type="CARD16" name="x2" /> | |
| 352 | + | <field type="CARD16" name="y2" /> | |
| 353 | + | <field type="CARD32" name="directions" mask="BarrierDirections" /> | |
| 354 | + | <pad bytes="2" /> | |
| 355 | + | <field type="CARD16" name="num_devices" /> | |
| 356 | + | <list type="CARD16" name="devices"><fieldref>num_devices</fieldref></list> | |
| 357 | + | </request> | |
| 358 | + | ||
| 359 | + | <request name="DeletePointerBarrier" opcode="32"> | |
| 360 | + | <field type="BARRIER" name="barrier" /> | |
| 361 | + | </request> | |
| 362 | + | ||
| 363 | + | <!-- Version 6 --> | |
| 364 | + | ||
| 365 | + | <enum name="ClientDisconnectFlags"> | |
| 366 | + | <item name="Default"><value>0</value></item> | |
| 367 | + | <item name="Terminate"><bit>0</bit></item> | |
| 368 | + | <doc> | |
| 369 | + | <field name="Default"><![CDATA[ | |
| 370 | + | The default behavior for regular clients: the X11 server won't terminate as long | |
| 371 | + | as such clients are still connected, and should this client disconnect, the | |
| 372 | + | server will continue running so long as other clients (that have not set | |
| 373 | + | XFixesClientDisconnectFlagTerminate) are connected. | |
| 374 | + | ]]></field> | |
| 375 | + | <field name="Terminate"><![CDATA[ | |
| 376 | + | Indicates to the X11 server that it can ignore the client and terminate itself | |
| 377 | + | even though the client is still connected to the X11 server. | |
| 378 | + | ]]></field> | |
| 379 | + | </doc> | |
| 380 | + | </enum> | |
| 381 | + | ||
| 382 | + | <request name="SetClientDisconnectMode" opcode="33"> | |
| 383 | + | <field type="CARD32" name="disconnect_mode" mask="ClientDisconnectFlags" /> | |
| 384 | + | <doc> | |
| 385 | + | <brief>Sets the disconnect mode for the client.</brief> | |
| 386 | + | <field name="disconnect_mode"><![CDATA[ | |
| 387 | + | The new disconnect mode. | |
| 388 | + | ]]></field> | |
| 389 | + | </doc> | |
| 390 | + | </request> | |
| 391 | + | ||
| 392 | + | <request name="GetClientDisconnectMode" opcode="34"> | |
| 393 | + | <reply> | |
| 394 | + | <pad bytes="1" /> | |
| 395 | + | <field type="CARD32" name="disconnect_mode" mask="ClientDisconnectFlags" /> | |
| 396 | + | <pad bytes="20" /> | |
| 397 | + | <doc> | |
| 398 | + | <brief>Gets the disconnect mode for the client.</brief> | |
| 399 | + | <field name="disconnect_mode"><![CDATA[ | |
| 400 | + | The current disconnect mode. | |
| 401 | + | ]]></field> | |
| 402 | + | </doc> | |
| 403 | + | </reply> | |
| 404 | + | </request> | |
| 405 | + | </xcb> | |
| @@ -0,0 +1,405 @@ | |||||
| 1 | + | <?xml version="1.0" encoding="utf-8"?> | |||
| 2 | + | <!-- | |||
| 3 | + | Copyright (C) 2004 Josh Triplett. All Rights Reserved. | |||
| 4 | + | ||||
| 5 | + | Permission is hereby granted, free of charge, to any person obtaining a copy | |||
| 6 | + | of this software and associated documentation files (the "Software"), to deal | |||
| 7 | + | in the Software without restriction, including without limitation the rights | |||
| 8 | + | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||
| 9 | + | copies of the Software, and to permit persons to whom the Software is | |||
| 10 | + | furnished to do so, subject to the following conditions: | |||
| 11 | + | ||||
| 12 | + | The above copyright notice and this permission notice shall be included in all | |||
| 13 | + | copies or substantial portions of the Software. | |||
| 14 | + | ||||
| 15 | + | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||
| 16 | + | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||
| 17 | + | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||
| 18 | + | AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |||
| 19 | + | ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | |||
| 20 | + | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| 21 | + | ||||
| 22 | + | Except as contained in this notice, the names of the authors or their | |||
| 23 | + | institutions shall not be used in advertising or otherwise to promote the | |||
| 24 | + | sale, use or other dealings in this Software without prior written | |||
| 25 | + | authorization from the authors. | |||
| 26 | + | --> | |||
| 27 | + | <!-- This file describes version 4 of XFixes. --> | |||
| 28 | + | <xcb header="xfixes" extension-xname="XFIXES" extension-name="XFixes" | |||
| 29 | + | major-version="6" minor-version="0"> | |||
| 30 | + | <import>xproto</import> | |||
| 31 | + | <import>render</import> | |||
| 32 | + | <import>shape</import> | |||
| 33 | + | ||||
| 34 | + | <!-- Version 1 --> | |||
| 35 | + | <request name="QueryVersion" opcode="0"> | |||
| 36 | + | <field type="CARD32" name="client_major_version" /> | |||
| 37 | + | <field type="CARD32" name="client_minor_version" /> | |||
| 38 | + | <reply> | |||
| 39 | + | <pad bytes="1" /> | |||
| 40 | + | <field type="CARD32" name="major_version" /> | |||
| 41 | + | <field type="CARD32" name="minor_version" /> | |||
| 42 | + | <pad bytes="16" /> | |||
| 43 | + | </reply> | |||
| 44 | + | </request> | |||
| 45 | + | ||||
| 46 | + | <enum name="SaveSetMode"> | |||
| 47 | + | <item name="Insert"> <value>0</value> </item> | |||
| 48 | + | <item name="Delete"> <value>1</value> </item> | |||
| 49 | + | </enum> | |||
| 50 | + | ||||
| 51 | + | <enum name="SaveSetTarget"> | |||
| 52 | + | <item name="Nearest"> <value>0</value> </item> | |||
| 53 | + | <item name="Root"> <value>1</value> </item> | |||
| 54 | + | </enum> | |||
| 55 | + | ||||
| 56 | + | <enum name="SaveSetMapping"> | |||
| 57 | + | <item name="Map"> <value>0</value> </item> | |||
| 58 | + | <item name="Unmap"> <value>1</value> </item> | |||
| 59 | + | </enum> | |||
| 60 | + | ||||
| 61 | + | <request name="ChangeSaveSet" opcode="1"> | |||
| 62 | + | <field type="BYTE" name="mode" enum="SaveSetMode" /> | |||
| 63 | + | <field type="BYTE" name="target" enum="SaveSetTarget" /> | |||
| 64 | + | <field type="BYTE" name="map" enum="SaveSetMapping" /> | |||
| 65 | + | <pad bytes="1" /> | |||
| 66 | + | <field type="WINDOW" name="window" /> | |||
| 67 | + | </request> | |||
| 68 | + | ||||
| 69 | + | <enum name="SelectionEvent"> | |||
| 70 | + | <item name="SetSelectionOwner"> <value>0</value> </item> | |||
| 71 | + | <item name="SelectionWindowDestroy"> <value>1</value> </item> | |||
| 72 | + | <item name="SelectionClientClose"> <value>2</value> </item> | |||
| 73 | + | </enum> | |||
| 74 | + | ||||
| 75 | + | <enum name="SelectionEventMask"> | |||
| 76 | + | <item name="SetSelectionOwner"> <bit>0</bit></item> | |||
| 77 | + | <item name="SelectionWindowDestroy"><bit>1</bit></item> | |||
| 78 | + | <item name="SelectionClientClose"> <bit>2</bit></item> | |||
| 79 | + | </enum> | |||
| 80 | + | ||||
| 81 | + | <event name="SelectionNotify" number="0"> | |||
| 82 | + | <field type="CARD8" name="subtype" enum="SelectionEvent" /> | |||
| 83 | + | <field type="WINDOW" name="window" /> | |||
| 84 | + | <field type="WINDOW" name="owner" /> | |||
| 85 | + | <field type="ATOM" name="selection" /> | |||
| 86 | + | <field type="TIMESTAMP" name="timestamp" /> | |||
| 87 | + | <field type="TIMESTAMP" name="selection_timestamp" /> | |||
| 88 | + | <pad bytes="8" /> | |||
| 89 | + | </event> | |||
| 90 | + | ||||
| 91 | + | <request name="SelectSelectionInput" opcode="2"> | |||
| 92 | + | <field type="WINDOW" name="window" /> | |||
| 93 | + | <field type="ATOM" name="selection" /> | |||
| 94 | + | <field type="CARD32" name="event_mask" mask="SelectionEventMask" /> | |||
| 95 | + | </request> | |||
| 96 | + | ||||
| 97 | + | <enum name="CursorNotify"> | |||
| 98 | + | <item name="DisplayCursor"> <value>0</value> </item> | |||
| 99 | + | </enum> | |||
| 100 | + | ||||
| 101 | + | <enum name="CursorNotifyMask"> | |||
| 102 | + | <item name="DisplayCursor"><bit>0</bit></item> | |||
| 103 | + | </enum> | |||
| 104 | + | ||||
| 105 | + | <event name="CursorNotify" number="1"> | |||
| 106 | + | <field type="CARD8" name="subtype" enum="CursorNotify" /> | |||
| 107 | + | <field type="WINDOW" name="window" /> | |||
| 108 | + | <field type="CARD32" name="cursor_serial" /> | |||
| 109 | + | <field type="TIMESTAMP" name="timestamp" /> | |||
| 110 | + | <field type="ATOM" name="name" altenum="Atom" /> <!-- Added in version 2 --> | |||
| 111 | + | <pad bytes="12" /> | |||
| 112 | + | </event> | |||
| 113 | + | ||||
| 114 | + | <request name="SelectCursorInput" opcode="3"> | |||
| 115 | + | <field type="WINDOW" name="window" /> | |||
| 116 | + | <field type="CARD32" name="event_mask" mask="CursorNotifyMask" /> | |||
| 117 | + | </request> | |||
| 118 | + | ||||
| 119 | + | <request name="GetCursorImage" opcode="4"> | |||
| 120 | + | <reply> | |||
| 121 | + | <pad bytes="1" /> | |||
| 122 | + | <field type="INT16" name="x" /> | |||
| 123 | + | <field type="INT16" name="y" /> | |||
| 124 | + | <field type="CARD16" name="width" /> | |||
| 125 | + | <field type="CARD16" name="height" /> | |||
| 126 | + | <field type="CARD16" name="xhot" /> | |||
| 127 | + | <field type="CARD16" name="yhot" /> | |||
| 128 | + | <field type="CARD32" name="cursor_serial" /> | |||
| 129 | + | <pad bytes="8" /> | |||
| 130 | + | <list type="CARD32" name="cursor_image"> | |||
| 131 | + | <op op="*"> | |||
| 132 | + | <fieldref>width</fieldref> | |||
| 133 | + | <fieldref>height</fieldref> | |||
| 134 | + | </op> | |||
| 135 | + | </list> | |||
| 136 | + | </reply> | |||
| 137 | + | </request> | |||
| 138 | + | ||||
| 139 | + | <!-- Version 2 --> | |||
| 140 | + | ||||
| 141 | + | <xidtype name="REGION" /> | |||
| 142 | + | ||||
| 143 | + | <error name="BadRegion" number="0" /> | |||
| 144 | + | ||||
| 145 | + | <enum name="Region"> | |||
| 146 | + | <item name="None"> <value>0</value> </item> | |||
| 147 | + | </enum> | |||
| 148 | + | ||||
| 149 | + | <request name="CreateRegion" opcode="5"> | |||
| 150 | + | <field type="REGION" name="region" /> | |||
| 151 | + | <list type="RECTANGLE" name="rectangles" /> | |||
| 152 | + | </request> | |||
| 153 | + | ||||
| 154 | + | <request name="CreateRegionFromBitmap" opcode="6"> | |||
| 155 | + | <field type="REGION" name="region" /> | |||
| 156 | + | <field type="PIXMAP" name="bitmap" /> | |||
| 157 | + | </request> | |||
| 158 | + | ||||
| 159 | + | <request name="CreateRegionFromWindow" opcode="7"> | |||
| 160 | + | <field type="REGION" name="region" /> | |||
| 161 | + | <field type="WINDOW" name="window" /> | |||
| 162 | + | <field type="shape:KIND" name="kind" enum="SK" /> | |||
| 163 | + | <pad bytes="3" /> | |||
| 164 | + | </request> | |||
| 165 | + | ||||
| 166 | + | <request name="CreateRegionFromGC" opcode="8"> | |||
| 167 | + | <field type="REGION" name="region" /> | |||
| 168 | + | <field type="GCONTEXT" name="gc" /> | |||
| 169 | + | </request> | |||
| 170 | + | ||||
| 171 | + | <request name="CreateRegionFromPicture" opcode="9"> | |||
| 172 | + | <field type="REGION" name="region" /> | |||
| 173 | + | <field type="PICTURE" name="picture" /> | |||
| 174 | + | </request> | |||
| 175 | + | ||||
| 176 | + | <request name="DestroyRegion" opcode="10"> | |||
| 177 | + | <field type="REGION" name="region" /> | |||
| 178 | + | </request> | |||
| 179 | + | ||||
| 180 | + | <request name="SetRegion" opcode="11"> | |||
| 181 | + | <field type="REGION" name="region" /> | |||
| 182 | + | <list type="RECTANGLE" name="rectangles" /> | |||
| 183 | + | </request> | |||
| 184 | + | ||||
| 185 | + | <request name="CopyRegion" opcode="12"> | |||
| 186 | + | <field type="REGION" name="source" /> | |||
| 187 | + | <field type="REGION" name="destination" /> | |||
| 188 | + | </request> | |||
| 189 | + | ||||
| 190 | + | <request name="UnionRegion" opcode="13"> | |||
| 191 | + | <field type="REGION" name="source1" /> | |||
| 192 | + | <field type="REGION" name="source2" /> | |||
| 193 | + | <field type="REGION" name="destination" /> | |||
| 194 | + | </request> | |||
| 195 | + | ||||
| 196 | + | <request name="IntersectRegion" opcode="14"> | |||
| 197 | + | <field type="REGION" name="source1" /> | |||
| 198 | + | <field type="REGION" name="source2" /> | |||
| 199 | + | <field type="REGION" name="destination" /> | |||
| 200 | + | </request> | |||
| 201 | + | ||||
| 202 | + | <request name="SubtractRegion" opcode="15"> | |||
| 203 | + | <field type="REGION" name="source1" /> | |||
| 204 | + | <field type="REGION" name="source2" /> | |||
| 205 | + | <field type="REGION" name="destination" /> | |||
| 206 | + | </request> | |||
| 207 | + | ||||
| 208 | + | <request name="InvertRegion" opcode="16"> | |||
| 209 | + | <field type="REGION" name="source" /> | |||
| 210 | + | <field type="RECTANGLE" name="bounds" /> | |||
| 211 | + | <field type="REGION" name="destination" /> | |||
| 212 | + | </request> | |||
| 213 | + | ||||
| 214 | + | <request name="TranslateRegion" opcode="17"> | |||
| 215 | + | <field type="REGION" name="region" /> | |||
| 216 | + | <field type="INT16" name="dx" /> | |||
| 217 | + | <field type="INT16" name="dy" /> | |||
| 218 | + | </request> | |||
| 219 | + | ||||
| 220 | + | <request name="RegionExtents" opcode="18"> | |||
| 221 | + | <field type="REGION" name="source" /> | |||
| 222 | + | <field type="REGION" name="destination" /> | |||
| 223 | + | </request> | |||
| 224 | + | ||||
| 225 | + | <request name="FetchRegion" opcode="19"> | |||
| 226 | + | <field type="REGION" name="region" /> | |||
| 227 | + | <reply> | |||
| 228 | + | <pad bytes="1" /> | |||
| 229 | + | <field type="RECTANGLE" name="extents" /> | |||
| 230 | + | <pad bytes="16" /> | |||
| 231 | + | <list type="RECTANGLE" name="rectangles"> | |||
| 232 | + | <op op='/'> | |||
| 233 | + | <fieldref>length</fieldref> | |||
| 234 | + | <value>2</value> | |||
| 235 | + | </op> | |||
| 236 | + | </list> | |||
| 237 | + | </reply> | |||
| 238 | + | </request> | |||
| 239 | + | ||||
| 240 | + | <request name="SetGCClipRegion" opcode="20"> | |||
| 241 | + | <field type="GCONTEXT" name="gc" /> | |||
| 242 | + | <field type="REGION" name="region" altenum="Region" /> | |||
| 243 | + | <field type="INT16" name="x_origin" /> | |||
| 244 | + | <field type="INT16" name="y_origin" /> | |||
| 245 | + | </request> | |||
| 246 | + | ||||
| 247 | + | <request name="SetWindowShapeRegion" opcode="21"> | |||
| 248 | + | <field type="WINDOW" name="dest" /> | |||
| 249 | + | <field type="shape:KIND" name="dest_kind" enum="SK" /> | |||
| 250 | + | <pad bytes="3" /> | |||
| 251 | + | <field type="INT16" name="x_offset" /> | |||
| 252 | + | <field type="INT16" name="y_offset" /> | |||
| 253 | + | <field type="REGION" name="region" altenum="Region" /> | |||
| 254 | + | </request> | |||
| 255 | + | ||||
| 256 | + | <request name="SetPictureClipRegion" opcode="22"> | |||
| 257 | + | <field type="PICTURE" name="picture" /> | |||
| 258 | + | <field type="REGION" name="region" altenum="Region" /> | |||
| 259 | + | <field type="INT16" name="x_origin" /> | |||
| 260 | + | <field type="INT16" name="y_origin" /> | |||
| 261 | + | </request> | |||
| 262 | + | ||||
| 263 | + | <request name="SetCursorName" opcode="23"> | |||
| 264 | + | <field type="CURSOR" name="cursor" /> | |||
| 265 | + | <field type="CARD16" name="nbytes" /> | |||
| 266 | + | <pad bytes="2" /> | |||
| 267 | + | <list type="char" name="name"><fieldref>nbytes</fieldref></list> | |||
| 268 | + | </request> | |||
| 269 | + | ||||
| 270 | + | <request name="GetCursorName" opcode="24"> | |||
| 271 | + | <field type="CURSOR" name="cursor" /> | |||
| 272 | + | <reply> | |||
| 273 | + | <pad bytes="1" /> | |||
| 274 | + | <field type="ATOM" name="atom" altenum="Atom" /> | |||
| 275 | + | <field type="CARD16" name="nbytes" /> | |||
| 276 | + | <pad bytes="18" /> | |||
| 277 | + | <list type="char" name="name"><fieldref>nbytes</fieldref></list> | |||
| 278 | + | </reply> | |||
| 279 | + | </request> | |||
| 280 | + | ||||
| 281 | + | <request name="GetCursorImageAndName" opcode="25"> | |||
| 282 | + | <reply> | |||
| 283 | + | <pad bytes="1" /> | |||
| 284 | + | <field type="INT16" name="x" /> | |||
| 285 | + | <field type="INT16" name="y" /> | |||
| 286 | + | <field type="CARD16" name="width" /> | |||
| 287 | + | <field type="CARD16" name="height" /> | |||
| 288 | + | <field type="CARD16" name="xhot" /> | |||
| 289 | + | <field type="CARD16" name="yhot" /> | |||
| 290 | + | <field type="CARD32" name="cursor_serial" /> | |||
| 291 | + | <field type="ATOM" name="cursor_atom" altenum="Atom" /> | |||
| 292 | + | <field type="CARD16" name="nbytes" /> | |||
| 293 | + | <pad bytes="2" /> | |||
| 294 | + | <list type="CARD32" name="cursor_image"> | |||
| 295 | + | <op op="*"> | |||
| 296 | + | <fieldref>width</fieldref> | |||
| 297 | + | <fieldref>height</fieldref> | |||
| 298 | + | </op> | |||
| 299 | + | </list> | |||
| 300 | + | <list type="char" name="name"><fieldref>nbytes</fieldref></list> | |||
| 301 | + | </reply> | |||
| 302 | + | </request> | |||
| 303 | + | ||||
| 304 | + | <request name="ChangeCursor" opcode="26"> | |||
| 305 | + | <field type="CURSOR" name="source" /> | |||
| 306 | + | <field type="CURSOR" name="destination" /> | |||
| 307 | + | </request> | |||
| 308 | + | ||||
| 309 | + | <request name="ChangeCursorByName" opcode="27"> | |||
| 310 | + | <field type="CURSOR" name="src" /> | |||
| 311 | + | <field type="CARD16" name="nbytes" /> | |||
| 312 | + | <pad bytes="2" /> | |||
| 313 | + | <list type="char" name="name"><fieldref>nbytes</fieldref></list> | |||
| 314 | + | </request> | |||
| 315 | + | ||||
| 316 | + | <!-- Version 3 --> | |||
| 317 | + | <request name="ExpandRegion" opcode="28"> | |||
| 318 | + | <field type="REGION" name="source" /> | |||
| 319 | + | <field type="REGION" name="destination" /> | |||
| 320 | + | <field type="CARD16" name="left" /> | |||
| 321 | + | <field type="CARD16" name="right" /> | |||
| 322 | + | <field type="CARD16" name="top" /> | |||
| 323 | + | <field type="CARD16" name="bottom" /> | |||
| 324 | + | </request> | |||
| 325 | + | ||||
| 326 | + | <!-- Version 4 --> | |||
| 327 | + | <request name="HideCursor" opcode="29"> | |||
| 328 | + | <field type="WINDOW" name="window" /> | |||
| 329 | + | </request> | |||
| 330 | + | ||||
| 331 | + | <request name="ShowCursor" opcode="30"> | |||
| 332 | + | <field type="WINDOW" name="window" /> | |||
| 333 | + | </request> | |||
| 334 | + | ||||
| 335 | + | <!-- Version 5 --> | |||
| 336 | + | ||||
| 337 | + | <xidtype name="BARRIER" /> | |||
| 338 | + | ||||
| 339 | + | <enum name="BarrierDirections"> | |||
| 340 | + | <item name="PositiveX"><bit>0</bit></item> | |||
| 341 | + | <item name="PositiveY"><bit>1</bit></item> | |||
| 342 | + | <item name="NegativeX"><bit>2</bit></item> | |||
| 343 | + | <item name="NegativeY"><bit>3</bit></item> | |||
| 344 | + | </enum> | |||
| 345 | + | ||||
| 346 | + | <request name="CreatePointerBarrier" opcode="31"> | |||
| 347 | + | <field type="BARRIER" name="barrier" /> | |||
| 348 | + | <field type="WINDOW" name="window" /> | |||
| 349 | + | <field type="CARD16" name="x1" /> | |||
| 350 | + | <field type="CARD16" name="y1" /> | |||
| 351 | + | <field type="CARD16" name="x2" /> | |||
| 352 | + | <field type="CARD16" name="y2" /> | |||
| 353 | + | <field type="CARD32" name="directions" mask="BarrierDirections" /> | |||
| 354 | + | <pad bytes="2" /> | |||
| 355 | + | <field type="CARD16" name="num_devices" /> | |||
| 356 | + | <list type="CARD16" name="devices"><fieldref>num_devices</fieldref></list> | |||
| 357 | + | </request> | |||
| 358 | + | ||||
| 359 | + | <request name="DeletePointerBarrier" opcode="32"> | |||
| 360 | + | <field type="BARRIER" name="barrier" /> | |||
| 361 | + | </request> | |||
| 362 | + | ||||
| 363 | + | <!-- Version 6 --> | |||
| 364 | + | ||||
| 365 | + | <enum name="ClientDisconnectFlags"> | |||
| 366 | + | <item name="Default"><value>0</value></item> | |||
| 367 | + | <item name="Terminate"><bit>0</bit></item> | |||
| 368 | + | <doc> | |||
| 369 | + | <field name="Default"><![CDATA[ | |||
| 370 | + | The default behavior for regular clients: the X11 server won't terminate as long | |||
| 371 | + | as such clients are still connected, and should this client disconnect, the | |||
| 372 | + | server will continue running so long as other clients (that have not set | |||
| 373 | + | XFixesClientDisconnectFlagTerminate) are connected. | |||
| 374 | + | ]]></field> | |||
| 375 | + | <field name="Terminate"><![CDATA[ | |||
| 376 | + | Indicates to the X11 server that it can ignore the client and terminate itself | |||
| 377 | + | even though the client is still connected to the X11 server. | |||
| 378 | + | ]]></field> | |||
| 379 | + | </doc> | |||
| 380 | + | </enum> | |||
| 381 | + | ||||
| 382 | + | <request name="SetClientDisconnectMode" opcode="33"> | |||
| 383 | + | <field type="CARD32" name="disconnect_mode" mask="ClientDisconnectFlags" /> | |||
| 384 | + | <doc> | |||
| 385 | + | <brief>Sets the disconnect mode for the client.</brief> | |||
| 386 | + | <field name="disconnect_mode"><![CDATA[ | |||
| 387 | + | The new disconnect mode. | |||
| 388 | + | ]]></field> | |||
| 389 | + | </doc> | |||
| 390 | + | </request> | |||
| 391 | + | ||||
| 392 | + | <request name="GetClientDisconnectMode" opcode="34"> | |||
| 393 | + | <reply> | |||
| 394 | + | <pad bytes="1" /> | |||
| 395 | + | <field type="CARD32" name="disconnect_mode" mask="ClientDisconnectFlags" /> | |||
| 396 | + | <pad bytes="20" /> | |||
| 397 | + | <doc> | |||
| 398 | + | <brief>Gets the disconnect mode for the client.</brief> | |||
| 399 | + | <field name="disconnect_mode"><![CDATA[ | |||
| 400 | + | The current disconnect mode. | |||
| 401 | + | ]]></field> | |||
| 402 | + | </doc> | |||
| 403 | + | </reply> | |||
| 404 | + | </request> | |||
| 405 | + | </xcb> | |||