.
diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..27ddaf8
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,92 @@
+# Vuelto License V1.1
+
+This software is licensed under the terms of the [GNU General Public License version 3 (GPLv3)](https://www.gnu.org/licenses/gpl-3.0.en.html) except as noted by the license below.
+
+## **0. Definitions**
+
+"_The main license_" refers to the [GNU General Public License version 3](https://www.gnu.org/licenses/gpl-3.0.en.html) as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+
+"_The fallback License_" refers to the [MIT License](https://opensource.org/licenses/MIT) as published by the Massachusetts Institute of Technology
+
+"_The software_" refers to the combination of all works and pieces of source code that are under the conditions of The license.
+
+"_The maintainer(s)_" refers to the original maintainer(s) of The software, or the designated project governance body for The software.
+
+“_The source code_” refers to any piece of source code, including but not limited to scripts, computer code, and compiled binaries, that is directly associated with The software.
+
+
+"_The main repository_" refers to the repository where most of The software's development occurs, and/or where The source code of The software itself (or at least it’s primary / most important parts) is hosted, _not_ implying that other code repositories that are directly linked to the project are to be excluded by the terms of the Vuelto License.
+
+## **1. Primary License**
+
+The software is, by default, licensed under the terms of the main license unless otherwise specified, as the license of The software can change under the conditions outlined by **Sections 2 and 3** of the Vuelto License.
+
+## **2. Condition for License Change**
+
+The software shall be deemed "unmaintained" if any of the following conditions are met:
+- The project repository has been archived or set to read-only.
+- The project has been officially pronounced as "dead", "unmaintained", or something else with the same meaning by The maintainer(s).
+- No substantial code contributions (beyond minor maintenance tasks or dependency updates) have been made to The main repository for a continuous period of 1.5 years (18 months).
+
+## **3. Fallback License**
+
+If The software is determined to be unmaintained as per the conditions above, the license for The software automatically changes to the MIT License as follows:
+
+```txt
+MIT License
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+```
+
+## **4. Interpretation**
+
+The decision on whether The software is unmaintained will be made by the original maintainer(s) or the designated project governance body, if any. In the absence of such a body, the community of contributors may reach a consensus according to the project's documented processes.
+
+## **5. Communication of License change**
+
+If The software is declared unmaintained by The maintainer(s), the change shall be communicated by an update to The sroject's "_README_ file", website, or any other mean of communication that makes this change clear.
+
+## **6. Extensibility of the License**
+
+It is possible for The maintainer(s) to extend the Vuelto License with additional terms. These must be made clear by The maintainer(s) by specifying them when using the License's identifier.
+
+All possible extensions are shipped in the License's text, but they shall apply only if specified by The maintainer(s). Extensions are not part of the License's numerical order (Section 1, Section 2, and so); instead they are found at the end, preceeded by a heading with their specific identifier, and then using "A, B, C..." notation rather than "1, 2, 3..." notation for each section.
+
+### **6.1. License identification**
+
+Every piece of software shall specify the License they are licensed under via a text block, an SPDX identifier, or such. Version 1.1 of the Vuelto License shall be identified by the "VLv1.1" code, and, optionally, a text block indicating it's the Version 1.1 of the Vuelto License.
+
+### **6.2. Possible extensions**
+
+The following extensions, with their content available at the end of this License as outlined in **Section 6**, are available to the Vuelto License, and must be identified using the specified Identifier that follows their name.
+
+- VL-C (Vuelto License-Copyright). Identifier: "VL-Cv1.1".
+
+
+## VL-C
+
+### **A. Copyright on Artwork**
+
+Any artwork associated with The software, including but not limited to logos, icons, and other visual assets, is copyrighted and licensed under the terms of the Primary License (GNU GPLv3 or later). However, if The software license changes to the MIT License under the conditions outlined in **Section 3**, this copyright on artwork no longer applies, and the artwork is included under the MIT License.
+
+
+### **B. Copyright on Code**
+
+The source code is copyrighted and licensed under the terms of the Primary License (GNU GPLv3 or later). However, if The software license changes to the MIT License under the conditions outlined in **Section 3**, this copyright on The source code no longer applies, and The source code is included under the MIT License.
+
diff --git a/Makefile b/Makefile
old mode 100644
new mode 100755
index 10774a7..3d44182
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,8 @@
VERSION = none
MESSAGE = Release version $(VERSION)
+DIR = ./test/test/
+
.PHONY: release proxy-release ci_check
release:
@@ -11,12 +13,50 @@ release:
make proxy-release
proxy-release:
- GOPROXY=proxy.golang.org go list -m vuelto.me@$(VERSION)
+ GOPROXY=proxy.golang.org go list -m vuelto.pp.ua@$(VERSION)
ci_check:
- go build -o bin/test/test test/test1/test.go
+ go build -o bin/test/test ./test/test/
+ go build -o bin/test/backend ./test/backend/
+
+ go build -o bin/examples/basic-window ./examples/basic-window/
+ go build -o bin/examples/shapes ./examples/shapes/
+ go build -o bin/examples/images ./examples/images/
+ go build -o bin/examples/two-windows ./examples/two-windows/
+
+test:
+ go run test/test/test.go
+
+web_nixos:
+ @env -i \
+ GOARCH="$(GOARCH)" \
+ GOPATH="$(GOPATH)" \
+ GOROOT="$(GOROOT)" \
+ GOCACHE="$(GOCACHE)" \
+ USER="$(USER)" \
+ XDG_CACHE_HOME="$(XDG_CACHE_HOME)" \
+ HOME="$(HOME)" \
+ PATH="$(GOPATH)/bin:$(PATH)" \
+ "$(GOPATH)/bin/wasmserve" "$(DIR)"
+
+format:
+ go fmt ./pkg/
+
+ go fmt ./test/test/
+ go fmt ./test/backend/
+
+ go fmt ./internal/gl/webgl/
+ go fmt ./internal/gl/opengl/
+ go fmt ./internal/gl/
+
+ go fmt ./internal/windowing/web/
+ go fmt ./internal/windowing/x11/
+ go fmt ./internal/windowing/cocoa/
+ go fmt ./internal/windowing/win32/
+ go fmt ./internal/windowing/wayland/
+ go fmt ./internal/windowing/
- go build -o bin/examples/basic-window examples/basic-window/main.go
- go build -o bin/examples/rectangle examples/rectangle/main.go
- go build -o bin/examples/images examples/images/main.go
- go build -o bin/examples/two-windows examples/two-windows/main.go
+ go fmt ./examples/images/
+ go fmt ./examples/shapes/
+ go fmt ./examples/two-windows/
+ go fmt ./examples/basic-window/
diff --git a/README.md b/README.md
old mode 100644
new mode 100755
index 0242b17..661c2e2
--- a/README.md
+++ b/README.md
@@ -1,88 +1,140 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+Vuelto is an open-source, fast, and lightweight game engine, based on Golang, CGo, and OpenGL. It's easy to use yet very powerful, and it's also cross platform, meaning it can be deployed on almost all major platforms
+
+## ✨ Features
+
+- 🌍 Cross Platform
+- 🛠️ Open-Source
+- 📚 Easy to learn
+- 🚀 Fully built using CGo (and some other libraries)
-Vuelto is a fast and lightweight Go game engine which uses CGo and OpenGL to display your graphics. It is really easy to start with, but it can be really powerful to work with. It's cross-platform, meaning that every game you make with Vuelto will work on Windows, Linux and Mac. It's also open-source, meaning that you can see the source code and contribute to the engine. Have fun!
+## 📦 Installation
+### 📋 Requirements
-## 📑 Table of Contents
- - [Usage](#usage)
- - [Contributing](#contributing)
- - [Website+Docs](https://vuelto-org.github.io/vuelto/)
- - [Discord Server](https://discord.gg/gZqdRXbbqg)
- - [Roadmap](#roadmap)
- - [License](#license)
- - [About](#about)
+You need to have the following installed on your system:
+- 🖥️ A C compiler
+- 🔧 A Go compiler (Go 1.18 and above)
+- 🪟 Xorg/Wayland development packages (For Linux only)
+- 🖱️ Supported platform
-## 🚀 Usage
-### 🛠️ Requirements
-There are some extra things you will need to use Vuelto.
-- A C compiler
-- A Go compiler
-- Xorg development packages (For Linux only)
+For an installation guide, [go here](https://vuelto.pp.ua/install/).
-For a installation guide, [go here](https://vuelto-org.github.io/vuelto/install/).
+### 🐹 Go package
-### 📦 Go package
-We have a Go package published, so run this command to add it to your go.mod:
-```bash
-go get vuelto.me@latest
+You can get the latest Go package by running this command:
+
+```sh
+go get vuelto.pp.ua@latest
```
-### 🌟 Examples
-All of our examples are inside the examples directory, so take a look there is you want a example. Here one small example of how easy Vuelto is:
+## 🖼️ Vuelto example
+
```go
package main
import (
- vuelto "vuelto.me/pkg"
+ vuelto "vuelto.pp.ua/pkg"
)
func main() {
- w := vuelto.NewWindow("Image Example - Vuelto", 800, 600, false)
- ren := w.NewRenderer2D()
+ w := vuelto.NewWindow("Image Example - Vuelto", 800, 600, false)
+ ren := w.NewRenderer2D()
- image := ren.LoadImage("your_image1.png", 300, 300, 250, 250)
- image1 := ren.LoadImage("your_image2.png", 100, 100, 150, 150)
+ image := ren.LoadImage("test/image.png", 0, 0, 0.5, 0.5)
- for !w.Close() {
- image.Draw()
- image1.Draw()
- w.Refresh()
-
- }
+ for !w.Close() {
+ image.Draw()
+ w.Refresh()
+ }
}
-
```
-## 📚 Docs
-Our docs are hosted on our website, so go [here](https://vuelto-org.github.io/vuelto/) to see them.
-
+## 🖥️ Platform support
+
+Vuelto has built-in deployment support for the following platforms:
+
+| Platform | Status | Version |
+| :---- | :---- | :---- |
+| Windows | ✅ | v1.0 |
+| macOS (Darwin) | ✅ | v1.0 |
+| Linux | ✅ | v1.0 |
+| Web | ✅ | v1.1 |
+
+## 📖 Docs
+
+You can check out Vuelto's documentation at [Vuelto's website](https://vuelto.pp.ua/docs/).
+
+> [!TIP]
+> In case the documentation is missing something or there is something wrong, use the [GoDoc](https://pkg.go.dev/vuelto.pp.ua) page for API documentation. Use the [examples](https://github.com/vuelto-org/vuelto/tree/latest/examples) directory for usage examples.
+
+### 🛣️ Roadmap
+
+Our roadmap is available on our [website](https://vuelto.pp.ua/roadmap/).
+
+### 🤝 Contributing
+
+We're really thankful for your contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
+
+1. 🍴 Fork the repository
+2. 🌟 Create your feature branch (`git checkout -b feature/amazing-feature`)
+3. 📝 Commit your changes (`git commit -m 'Add some amazing feature'`)
+4. 🚀 Push to the branch (`git push origin feature/amazing-feature`)
+5. 🔄 Open a Pull Request
+
+## 🛡️ Support & Security
+
+### 🐛 Issues
+
+See the [Issues](https://github.com/vuelto-org/vuelto/issues) page for current bugs and feature requests. In case you find any bug or have a suggestion, please open up an issue or search for any other form of contact to submit a bug report.
+
+#### 🔒 Security Issues
+
+If you find a security vulnerability, please follow the instructions in [SECURITY.md](SECURITY.md) to safely report it.
+
+### 🔐 License
+
+Vuelto is licensed under the [VL-Cv1.1 License](LICENSE.md). Any PRs that will change the license won't be accepted.
+
+### 📖 Guidelines
+
+We’re excited to have you here! To ensure a welcoming and productive environment, we kindly ask you to follow our **Guidelines**. Please take a moment to review the following:
+
+- **[Contributing](CONTRIBUTING.md)**: Learn how to make meaningful contributions to our project.
+- **[Code of Conduct](CODE_OF_CONDUCT.md)**: Understand the principles that foster a respectful and inclusive community.
+
+### 🌐 Community and Contact
+
+You can contact us via our Discord community or at our email:
+
+- 🗨️ [Discord server](https://vuelto.pp.ua/discord)
+- ✉️ [Email](mailto:dima@vuelto.pp.ua)
+
+### 🙌 Thanks To
-## 📋 Roadmap
-You can find our [roadmap on the website](https://vuelto-org.github.io/vuelto/roadmap/v1).
+A special thanks to:
+- **Dimkauzh** for the initial idea and development.
+- **ZakaHaceCosas** for the great improvements on top of vuelto.
-## 🎉 Discord server
-We have a [discord server at this link](https://discord.gg/gZqdRXbbqg). It's a fun server mainly created for vuelto, but you can talk about whatever you want.
+Also a big shoutout to our homies and partners at [**Sokora**](https://sokora.org), [**Atom**](https://atomlabs.ie) and [**Epic-Bot**](https://bamb.cl/epic-bot/)
-## 🤝 Contributing
-We are fully open to contributions, but I will check and test your code before merging it into the dev branch. All your code thats accepted will only be merged into the dev branch, and will be later released with the next release.
+Without the help of these people, Vuelto wouldn't be where it is today. Your support has helped make Vuelto even better! 🤝 🙌
-## 🔐 License
-Vuelto is licensed under the [GPLv3 Licence](LICENSE).
+---
-## ℹ️ About
-Vuelto is a game engine powered by CGo and OpenGL. It leverages the power of Go to create a fast and lightweight game engine. It's cross-platform, meaning that every game you make with Vuelto will work on Windows, Linux and Mac. It's also open-source, meaning that you can see the source code and contribute to the engine. We have created this engine so you can create your graphical application fast and easy.
-Made by the Vuelto Team :heart:
+Made with ❤️ by the Vuelto Team
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 0000000..e0b8d2a
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,7 @@
+# Vuelto Security Policy
+
+## Reporting security vulnerabilities
+
+If you find a security issue with Vuelto, we please ask you that you contact us privately via [email](mailto:dima@vuelto.pp.ua) instead of making a public issue / PR, so we can fix it as soon as possible without drawing unwanted attention. You will receive a response as soon as we can, and you'll be notified and accordingly credited as we release a patch.
+
+Thank you for helping! We want to keep Vuelto secure and contributors play a key role in that objective.
diff --git a/examples/basic-window/main.go b/examples/basic-window/main.go
old mode 100644
new mode 100755
index eedfd33..16afaa3
--- a/examples/basic-window/main.go
+++ b/examples/basic-window/main.go
@@ -1,11 +1,14 @@
package main
-import vuelto "vuelto.me/pkg"
+import (
+ vuelto "vuelto.pp.ua/pkg"
+)
func main() {
- w := vuelto.NewWindow("hi", 800, 600, false)
+ // This works in the web too! Only it wouldn't be so fun :(
+ win := vuelto.NewWindow("hi", 800, 600, false)
- for !w.Close() {
- w.Refresh()
+ for !win.Close() {
+ win.Refresh()
}
}
diff --git a/test/test1/image.png b/examples/images/galaxy.png
old mode 100644
new mode 100755
similarity index 100%
rename from test/test1/image.png
rename to examples/images/galaxy.png
diff --git a/examples/images/main.go b/examples/images/main.go
old mode 100644
new mode 100755
index 2d1a9b3..8f53292
--- a/examples/images/main.go
+++ b/examples/images/main.go
@@ -1,20 +1,35 @@
package main
import (
- vuelto "vuelto.me/pkg"
+ "embed"
+
+ vuelto "vuelto.pp.ua/pkg"
)
+//go:embed tree.png galaxy.png
+var embeddedFiles embed.FS
+
func main() {
+ // This works in the web too! This is because of the images being embedded!
w := vuelto.NewWindow("Image Example - Vuelto", 800, 600, false)
ren := w.NewRenderer2D()
- image := ren.LoadImage("test/image.png", 300, 300, 250, 250)
- image1 := ren.LoadImage("test/image.png", 100, 100, 150, 150)
+ iembed := vuelto.ImageEmbed{
+ Filesystem: embeddedFiles,
+ Image: "tree.png",
+ }
+
+ i2embed := vuelto.ImageEmbed{
+ Filesystem: embeddedFiles,
+ Image: "galaxy.png",
+ }
+
+ image1 := ren.LoadImage(iembed, 0.5, 0.5, -0.5, 0.5)
+ image := ren.LoadImage(i2embed, 0, 0, 1, 1)
for !w.Close() {
- image.Draw()
image1.Draw()
+ image.Draw()
w.Refresh()
-
}
}
diff --git a/test/test1/tree.png b/examples/images/tree.png
old mode 100644
new mode 100755
similarity index 100%
rename from test/test1/tree.png
rename to examples/images/tree.png
diff --git a/examples/rectangle/main.go b/examples/rectangle/main.go
deleted file mode 100644
index 3ad646a..0000000
--- a/examples/rectangle/main.go
+++ /dev/null
@@ -1,20 +0,0 @@
-package main
-
-import (
- vuelto "vuelto.me/pkg"
-)
-
-func main() {
- w := vuelto.NewWindow("hi", 800, 600, false)
-
- ren := w.NewRenderer2D()
-
- for !w.Close() {
- ren.ClearColor([4]int{100, 100, 100, 255})
-
- ren.DrawRect(0, 0, 500, 500, [4]int{10, 145, 245, 255})
-
- w.Refresh()
-
- }
-}
diff --git a/examples/shapes/main.go b/examples/shapes/main.go
new file mode 100755
index 0000000..fa4660d
--- /dev/null
+++ b/examples/shapes/main.go
@@ -0,0 +1,27 @@
+package main
+
+import (
+ vuelto "vuelto.pp.ua/pkg"
+)
+
+func main() {
+ // This works in the web too!
+ w := vuelto.NewWindow("hi", 800, 600, false)
+
+ ren := w.NewRenderer2D()
+
+ rect := ren.NewRect(0, 0, -1, -1, [4]int{10, 145, 245, 255})
+ rect2 := ren.NewRect(0, 0, 1, 1, [4]int{245, 145, 10, 255})
+ line := ren.NewLine(0.5, 0.5, -0.5, -0.5, [4]int{10, 145, 245, 255})
+
+ for !w.Close() {
+ ren.ClearColor([4]int{100, 100, 100, 255})
+ ren.DrawLine(-0.9, -0.9, 0.9, -0.9, [4]int{10, 145, 245, 255})
+
+ rect.Draw()
+ rect2.Draw()
+ line.Draw()
+
+ w.Refresh()
+ }
+}
diff --git a/examples/two-windows/galaxy.png b/examples/two-windows/galaxy.png
new file mode 100755
index 0000000..8f860ca
Binary files /dev/null and b/examples/two-windows/galaxy.png differ
diff --git a/examples/two-windows/main.go b/examples/two-windows/main.go
old mode 100644
new mode 100755
index d1458b0..10550c8
--- a/examples/two-windows/main.go
+++ b/examples/two-windows/main.go
@@ -1,27 +1,28 @@
package main
import (
- vuelto "vuelto.me/pkg"
+ vuelto "vuelto.pp.ua/pkg"
)
func main() {
+ // Warning: This example is not working in the web! This is due to the web not supporting multiple windows.
w1 := vuelto.NewWindow("hi", 800, 600, false)
w2 := vuelto.NewWindow("hi2", 800, 600, false)
ren1 := w1.NewRenderer2D()
ren2 := w2.NewRenderer2D()
- image := ren2.LoadImage("test/image.png", 300, 300, 250, 250)
- image1 := ren2.LoadImage("test/tree.png", 100, 100, 150, 150)
+ image := ren2.LoadImage("examples/two-windows/galaxy.png", 0, 0, 0.5, 0.5)
+ image1 := ren2.LoadImage("examples/two-windows/tree.png", -1, -0.5, 0.5, 0.5)
for !w1.Close() && !w2.Close() {
- w1.SetContextCurrent()
+ w1.SetCurrent()
ren1.ClearColor([4]int{100, 100, 100, 255})
- ren1.DrawRect(0, 0, 500, 500, [4]int{10, 145, 245, 255})
+ ren1.DrawRect(-0.7, 0.7, 0.7, 0.7, [4]int{10, 145, 245, 255})
w1.Refresh()
- w2.SetContextCurrent()
+ w2.SetCurrent()
image.Draw()
image1.Draw()
diff --git a/examples/two-windows/tree.png b/examples/two-windows/tree.png
new file mode 100755
index 0000000..36d2211
Binary files /dev/null and b/examples/two-windows/tree.png differ
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..ae2a887
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,26 @@
+{
+ "nodes": {
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1735057427,
+ "narHash": "sha256-itDxXLWozctWBSGiNMB0QhZTZr02TUCCXgBka0Zumpg=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "cf56aed31d168cf64822ee8f24fc6f6946d61ce2",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "nixpkgs": "nixpkgs"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..ec363d3
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,35 @@
+{
+ description = "Vuelto development environment for NixOS";
+
+ inputs.nixpkgs.url = "github:NixOS/nixpkgs";
+
+ outputs = { self, nixpkgs }:
+ let
+ pkgs = import nixpkgs { system = "x86_64-linux"; };
+ in {
+ devShell.x86_64-linux = pkgs.mkShell {
+ buildInputs = [
+ pkgs.xorg.libX11
+ pkgs.xorg.libXext
+ pkgs.xorg.libXrandr
+ pkgs.xorg.libXinerama
+ pkgs.xorg.libXcursor
+ pkgs.xorg.libXi
+ pkgs.xorg.libXxf86vm
+
+ pkgs.pkg-config
+ pkgs.gnumake
+
+ pkgs.mesa
+ pkgs.libglvnd
+ pkgs.alsa-lib
+
+ pkgs.go
+ pkgs.gcc
+
+ pkgs.gopls
+ pkgs.wasmserve
+ ];
+ };
+ };
+}
diff --git a/go.mod b/go.mod
old mode 100644
new mode 100755
index fcbbdff..612aa90
--- a/go.mod
+++ b/go.mod
@@ -1,4 +1,4 @@
-module vuelto.me
+module vuelto.pp.ua
go 1.18
@@ -12,7 +12,7 @@ require (
github.com/hajimehoshi/oto v0.7.1 // indirect
github.com/pkg/errors v0.9.1 // indirect
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8 // indirect
- golang.org/x/image v0.0.0-20190227222117-0694c2d4d067 // indirect
+ golang.org/x/image v0.18.0 // indirect
golang.org/x/mobile v0.0.0-20190415191353-3e0bab5405d6 // indirect
golang.org/x/sys v0.17.0 // indirect
)
diff --git a/go.sum b/go.sum
old mode 100644
new mode 100755
index f1af9ef..68b2ed3
--- a/go.sum
+++ b/go.sum
@@ -28,8 +28,9 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8 h1:idBdZTd9UioThJp8KpM/rTSinK/ChZFBE43/WtIy8zg=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/image v0.0.0-20190220214146-31aff87c08e9/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
-golang.org/x/image v0.0.0-20190227222117-0694c2d4d067 h1:KYGJGHOQy8oSi1fDlSpcZF0+juKwk/hEMv5SiwHogR0=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
+golang.org/x/image v0.18.0 h1:jGzIakQa/ZXI1I0Fxvaa9W7yP25TqT6cHIHn+6CqvSQ=
+golang.org/x/image v0.18.0/go.mod h1:4yyo5vMFQjVjUcVk4jEQcU9MGy/rulF5WvUILseCM2E=
golang.org/x/mobile v0.0.0-20190415191353-3e0bab5405d6 h1:vyLBGJPIl9ZYbcQFM2USFmJBK6KI+t+z6jL0lbwjrnc=
golang.org/x/mobile v0.0.0-20190415191353-3e0bab5405d6/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
diff --git a/internal/event/event_glfw.go b/internal/event/event_glfw.go
new file mode 100644
index 0000000..036e5bc
--- /dev/null
+++ b/internal/event/event_glfw.go
@@ -0,0 +1,78 @@
+//go:build windows || linux || darwin
+// +build windows linux darwin
+
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package event
+
+import (
+ "github.com/go-gl/glfw/v3.3/glfw"
+ windowing "vuelto.pp.ua/internal/window"
+)
+
+type Event struct {
+ Window *windowing.Window
+}
+
+type State struct {
+ State glfw.Action
+}
+
+type Key struct {
+ Key glfw.Key
+}
+
+type Setting struct {
+ Mode glfw.InputMode
+ True int
+ False int
+}
+
+var (
+ STICKY_KEYS = Setting{
+ Mode: glfw.StickyKeysMode,
+ True: glfw.True,
+ False: glfw.False,
+ }
+ DISABLE_CURSOR = Setting{
+ Mode: glfw.CursorMode,
+ True: glfw.CursorDisabled,
+ False: glfw.CursorNormal,
+ }
+
+ PRESSED = State{glfw.Press}
+ RELEASED = State{glfw.Release}
+)
+
+func Init(window *windowing.Window) *Event {
+ return &Event{
+ Window: window,
+ }
+}
+
+func (e *Event) SetSetting(setting Setting, value bool) {
+ if value {
+ e.Window.GlfwWindow.SetInputMode(setting.Mode, setting.True)
+ } else {
+ e.Window.GlfwWindow.SetInputMode(setting.Mode, setting.False)
+ }
+}
+
+func (e *Event) Key(key Key) State {
+ return State{e.Window.GlfwWindow.GetKey(key.Key)}
+}
+
+func (e *Event) MousePos() (float32, float32) {
+ x, y := e.Window.GlfwWindow.GetCursorPos()
+ return float32(x), float32(y)
+}
diff --git a/internal/event/event_web.go b/internal/event/event_web.go
new file mode 100644
index 0000000..9a73a43
--- /dev/null
+++ b/internal/event/event_web.go
@@ -0,0 +1,109 @@
+//go:build js && wasm
+// +build js,wasm
+
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package event
+
+import (
+ "syscall/js"
+
+ windowing "vuelto.pp.ua/internal/window"
+ "vuelto.pp.ua/internal/window/web"
+)
+
+type Event struct {
+ Window *windowing.Window
+ IgnoreWarnings bool
+}
+
+type State struct {
+ State string
+}
+
+type Key struct {
+ Key string
+}
+
+type Setting struct {
+ Mode int
+ True int
+ False int
+}
+
+var (
+ STICKY_KEYS = Setting{
+ Mode: 0,
+ True: 0,
+ False: 0,
+ }
+ DISABLE_CURSOR = Setting{
+ Mode: 0,
+ True: 0,
+ False: 0,
+ }
+
+ PRESSED = State{"keydown"}
+ RELEASED = State{"keyup"}
+
+ keyPressed = make(map[string]bool)
+ mouseCords = [2]float32{0, 0}
+)
+
+func Init(window *windowing.Window) *Event {
+ web.Document.AddEventListener("keydown", func(this js.Value, p []js.Value) interface{} {
+ event := p[0]
+ key := event.Get("key").String()
+
+ keyPressed[key] = true
+
+ return nil
+ })
+
+ web.Document.AddEventListener("keyup", func(this js.Value, p []js.Value) interface{} {
+ event := p[0]
+ key := event.Get("key").String()
+
+ keyPressed[key] = false
+
+ return nil
+ })
+
+ web.Document.AddEventListener("mousemove", func(this js.Value, p []js.Value) interface{} {
+ event := p[0]
+
+ mouseCords[0] = float32(event.Get("clientX").Float())
+ mouseCords[1] = float32(event.Get("clientY").Float())
+
+ return nil
+ })
+
+ return &Event{
+ Window: window,
+ }
+}
+
+func (e *Event) SetSetting(setting Setting, value bool) {
+ web.Console.Warn("WARNING: SETSETTING IS NOT WORKING IN WEB BUILDS!")
+}
+
+func (e *Event) Key(key Key) State {
+ if keyPressed[key.Key] {
+ return PRESSED
+ }
+ return RELEASED
+}
+
+func (e *Event) MousePos() (float32, float32) {
+ return mouseCords[0], mouseCords[1]
+}
diff --git a/internal/event/keys_glfw.go b/internal/event/keys_glfw.go
new file mode 100644
index 0000000..b722efd
--- /dev/null
+++ b/internal/event/keys_glfw.go
@@ -0,0 +1,82 @@
+//go:build windows || linux || darwin
+// +build windows linux darwin
+
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package event
+
+import (
+ "github.com/go-gl/glfw/v3.3/glfw"
+)
+
+var KeyMap = map[string]Key{
+ "A": {Key: glfw.KeyA},
+ "B": {Key: glfw.KeyB},
+ "C": {Key: glfw.KeyC},
+ "D": {Key: glfw.KeyD},
+ "E": {Key: glfw.KeyE},
+ "F": {Key: glfw.KeyF},
+ "G": {Key: glfw.KeyG},
+ "H": {Key: glfw.KeyH},
+ "I": {Key: glfw.KeyI},
+ "J": {Key: glfw.KeyJ},
+ "K": {Key: glfw.KeyK},
+ "L": {Key: glfw.KeyL},
+ "M": {Key: glfw.KeyM},
+ "N": {Key: glfw.KeyN},
+ "O": {Key: glfw.KeyO},
+ "P": {Key: glfw.KeyP},
+ "Q": {Key: glfw.KeyQ},
+ "R": {Key: glfw.KeyR},
+ "S": {Key: glfw.KeyS},
+ "T": {Key: glfw.KeyT},
+ "U": {Key: glfw.KeyU},
+ "V": {Key: glfw.KeyV},
+ "W": {Key: glfw.KeyW},
+ "X": {Key: glfw.KeyX},
+ "Y": {Key: glfw.KeyY},
+ "Z": {Key: glfw.KeyZ},
+ "Up": {Key: glfw.KeyUp},
+ "Down": {Key: glfw.KeyDown},
+ "Left": {Key: glfw.KeyLeft},
+ "Right": {Key: glfw.KeyRight},
+ "Num0": {Key: glfw.Key0},
+ "Num1": {Key: glfw.Key1},
+ "Num2": {Key: glfw.Key2},
+ "Num3": {Key: glfw.Key3},
+ "Num4": {Key: glfw.Key4},
+ "Num5": {Key: glfw.Key5},
+ "Num6": {Key: glfw.Key6},
+ "Num7": {Key: glfw.Key7},
+ "Num8": {Key: glfw.Key8},
+ "Num9": {Key: glfw.Key9},
+ "Space": {Key: glfw.KeySpace},
+ "Enter": {Key: glfw.KeyEnter},
+ "Escape": {Key: glfw.KeyEscape},
+ "Tab": {Key: glfw.KeyTab},
+ "Shift": {Key: glfw.KeyLeftShift},
+ "Control": {Key: glfw.KeyLeftControl},
+ "Alt": {Key: glfw.KeyLeftAlt},
+ "F1": {Key: glfw.KeyF1},
+ "F2": {Key: glfw.KeyF2},
+ "F3": {Key: glfw.KeyF3},
+ "F4": {Key: glfw.KeyF4},
+ "F5": {Key: glfw.KeyF5},
+ "F6": {Key: glfw.KeyF6},
+ "F7": {Key: glfw.KeyF7},
+ "F8": {Key: glfw.KeyF8},
+ "F9": {Key: glfw.KeyF9},
+ "F10": {Key: glfw.KeyF10},
+ "F11": {Key: glfw.KeyF11},
+ "F12": {Key: glfw.KeyF12},
+}
diff --git a/internal/event/keys_web.go b/internal/event/keys_web.go
new file mode 100644
index 0000000..1e6e6f1
--- /dev/null
+++ b/internal/event/keys_web.go
@@ -0,0 +1,78 @@
+//go:build js && wasm
+// +build js,wasm
+
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package event
+
+var KeyMap = map[string]Key{
+ "A": {Key: "a"},
+ "B": {Key: "b"},
+ "C": {Key: "c"},
+ "D": {Key: "d"},
+ "E": {Key: "e"},
+ "F": {Key: "f"},
+ "G": {Key: "g"},
+ "H": {Key: "h"},
+ "I": {Key: "i"},
+ "J": {Key: "j"},
+ "K": {Key: "k"},
+ "L": {Key: "l"},
+ "M": {Key: "m"},
+ "N": {Key: "n"},
+ "O": {Key: "o"},
+ "P": {Key: "p"},
+ "Q": {Key: "q"},
+ "R": {Key: "r"},
+ "S": {Key: "s"},
+ "T": {Key: "t"},
+ "U": {Key: "u"},
+ "V": {Key: "v"},
+ "W": {Key: "w"},
+ "X": {Key: "x"},
+ "Y": {Key: "y"},
+ "Z": {Key: "z"},
+ "Up": {Key: "ArrowUp"},
+ "Down": {Key: "ArrowDown"},
+ "Left": {Key: "ArrowLeft"},
+ "Right": {Key: "ArrowRight"},
+ "Num0": {Key: "0"},
+ "Num1": {Key: "1"},
+ "Num2": {Key: "2"},
+ "Num3": {Key: "3"},
+ "Num4": {Key: "4"},
+ "Num5": {Key: "5"},
+ "Num6": {Key: "6"},
+ "Num7": {Key: "7"},
+ "Num8": {Key: "8"},
+ "Num9": {Key: "9"},
+ "Space": {Key: " "},
+ "Enter": {Key: "Enter"},
+ "Escape": {Key: "Escape"},
+ "Tab": {Key: "Tab"},
+ "Shift": {Key: "Shift"},
+ "Control": {Key: "Control"},
+ "Alt": {Key: "Alt"},
+ "F1": {Key: "F1"},
+ "F2": {Key: "F2"},
+ "F3": {Key: "F3"},
+ "F4": {Key: "F4"},
+ "F5": {Key: "F5"},
+ "F6": {Key: "F6"},
+ "F7": {Key: "F7"},
+ "F8": {Key: "F8"},
+ "F9": {Key: "F9"},
+ "F10": {Key: "F10"},
+ "F11": {Key: "F11"},
+ "F12": {Key: "F12"},
+}
diff --git a/internal/gl/binding.go b/internal/gl/binding.go
deleted file mode 100644
index 55a1c59..0000000
--- a/internal/gl/binding.go
+++ /dev/null
@@ -1,105 +0,0 @@
-package gl
-
-/*
-#cgo linux LDFLAGS: -lGL
-#cgo darwin LDFLAGS: -framework OpenGL
-#cgo windows LDFLAGS: -lopengl32
-
-#include "gl.h"
-*/
-import "C"
-import "unsafe"
-
-const (
- TEXTURE_2D = uint32(C.GL_TEXTURE_2D)
- TEXTURE_WRAP_S = uint32(C.GL_TEXTURE_WRAP_S)
- TEXTURE_WRAP_T = uint32(C.GL_TEXTURE_WRAP_T)
- TEXTURE_MIN_FILTER = uint32(C.GL_TEXTURE_MIN_FILTER)
- TEXTURE_MAG_FILTER = uint32(C.GL_TEXTURE_MAG_FILTER)
- CLAMP_TO_EDGE = uint32(C.GL_CLAMP_TO_EDGE)
- LINEAR = uint32(C.GL_LINEAR)
-
- LINES = uint32(C.GL_LINES)
- QUADS = uint32(C.GL_QUADS)
-
- RGBA = uint32(C.GL_RGBA)
- UNSIGNED_BYTE = uint32(C.GL_UNSIGNED_BYTE)
-
- SRC_ALPHA = uint32(C.GL_SRC_ALPHA)
- ONE_MINUS_SRC_ALPHA = uint32(C.GL_ONE_MINUS_SRC_ALPHA)
- BLEND = uint32(C.GL_BLEND)
- DEPTH_BUFFER_BIT = uint32(C.GL_DEPTH_BUFFER_BIT)
- COLOR_BUFFER_BIT = uint32(C.GL_COLOR_BUFFER_BIT)
-)
-
-func Begin(state uint32) {
- C.glBegin(C.uint(state))
-}
-
-func End() {
- C.glEnd()
-}
-
-func Color3f(r, g, b float32) {
- C.glColor3f(C.float(r), C.float(g), C.float(b))
-}
-
-func Color4f(r, g, b, a float32) {
- C.glColor4f(C.float(r), C.float(g), C.float(b), C.float(a))
-}
-
-func Vertex2f(x, y float32) {
- C.glVertex2f(C.float(x), C.float(y))
-}
-
-func ClearColor(r, g, b, a float32) {
- C.glClearColor(C.float(r), C.float(g), C.float(b), C.float(a))
-}
-
-func GenTextures(n int32, textures *uint32) {
- C.glGenTextures(C.int(n), (*C.uint)(unsafe.Pointer(textures)))
-}
-
-func DeleteTextures(n int, textures *uint32) {
- C.glDeleteTextures(C.int(n), (*C.uint)(unsafe.Pointer(textures)))
-}
-
-func BindTexture(target, texture uint32) {
- C.glBindTexture(C.uint(target), C.uint(texture))
-}
-
-func TexParameteri(target, pname, param uint32) {
- C.glTexParameteri(C.uint(target), C.uint(pname), C.int(param))
-}
-
-func TexCoord2f(s, t float32) {
- C.glTexCoord2f(C.float(s), C.float(t))
-}
-
-func TexImage2D(target, level, internalFormat uint32, width, height int, border, format, typ uint32, pixels []byte) {
- C.glTexImage2D(C.uint(target), C.int(level), C.int(internalFormat), C.int(width), C.int(height), C.int(border), C.uint(format), C.uint(typ), C.CBytes(pixels))
-}
-
-func Clear(mask uint32) {
- C.glClear(C.uint(mask))
-}
-
-func Enable(cap uint32) {
- C.glEnable(C.uint(cap))
-}
-
-func BlendFunc(sfactor, dfactor uint32) {
- C.glBlendFunc(C.uint(sfactor), C.uint(dfactor))
-}
-
-func Ortho(left, right, bottom, top, near, far float64) {
- C.glOrtho(C.double(left), C.double(right), C.double(bottom), C.double(top), C.double(near), C.double(far))
-}
-
-func Viewport(x, y, width, height int) {
- C.glViewport(C.int(x), C.int(y), C.int(width), C.int(height))
-}
-
-func LineWidth(width float32) {
- C.glLineWidth(C.float(width))
-}
diff --git a/internal/gl/gl.h b/internal/gl/legacy/gl.h
old mode 100644
new mode 100755
similarity index 65%
rename from internal/gl/gl.h
rename to internal/gl/legacy/gl.h
index f210a0e..164422c
--- a/internal/gl/gl.h
+++ b/internal/gl/legacy/gl.h
@@ -1,22 +1,21 @@
#ifndef GL_H
#define GL_H
+#define GL_SILENCE_DEPRECATION
#ifdef __APPLE__
-#define GL_SILENCE_DEPRECATION
#include
+
#elif __linux__
-#define GL_SILENCE_DEPRECATION
-#include
-#elif _WIN32
-#define GL_CLAMP_TO_EDGE 0x812f
-#include
#include
-#elif _WIN64
+
+#elif defined(_WIN32) || defined(_WIN64)
#define GL_CLAMP_TO_EDGE 0x812f
#include
#include
+
#else
#include
+
#endif
#endif
diff --git a/internal/gl/legacy/legacy.go b/internal/gl/legacy/legacy.go
new file mode 100644
index 0000000..fdabce6
--- /dev/null
+++ b/internal/gl/legacy/legacy.go
@@ -0,0 +1,119 @@
+//go:build windows || linux || darwin
+// +build windows linux darwin
+
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package gl
+
+/*
+#cgo linux LDFLAGS: -lGL
+#cgo darwin LDFLAGS: -framework OpenGL
+#cgo windows LDFLAGS: -lopengl32
+#include "gl.h"
+*/
+import "C"
+import "unsafe"
+
+const (
+ TEXTURE_2D = uint32(C.GL_TEXTURE_2D)
+ TEXTURE_WRAP_S = uint32(C.GL_TEXTURE_WRAP_S)
+ TEXTURE_WRAP_T = uint32(C.GL_TEXTURE_WRAP_T)
+ TEXTURE_MIN_FILTER = uint32(C.GL_TEXTURE_MIN_FILTER)
+ TEXTURE_MAG_FILTER = uint32(C.GL_TEXTURE_MAG_FILTER)
+ CLAMP_TO_EDGE = uint32(C.GL_CLAMP_TO_EDGE)
+ LINEAR = uint32(C.GL_LINEAR)
+
+ LINES = uint32(C.GL_LINES)
+ QUADS = uint32(C.GL_QUADS)
+
+ RGBA = uint32(C.GL_RGBA)
+ UNSIGNED_BYTE = uint32(C.GL_UNSIGNED_BYTE)
+
+ SRC_ALPHA = uint32(C.GL_SRC_ALPHA)
+ ONE_MINUS_SRC_ALPHA = uint32(C.GL_ONE_MINUS_SRC_ALPHA)
+ BLEND = uint32(C.GL_BLEND)
+ DEPTH_BUFFER_BIT = uint32(C.GL_DEPTH_BUFFER_BIT)
+ COLOR_BUFFER_BIT = uint32(C.GL_COLOR_BUFFER_BIT)
+)
+
+func Begin(state uint32) {
+ C.glBegin(C.uint(state))
+}
+
+func End() {
+ C.glEnd()
+}
+
+func Color3f(r, g, b float32) {
+ C.glColor3f(C.float(r), C.float(g), C.float(b))
+}
+
+func Color4f(r, g, b, a float32) {
+ C.glColor4f(C.float(r), C.float(g), C.float(b), C.float(a))
+}
+
+func Vertex2f(x, y float32) {
+ C.glVertex2f(C.float(x), C.float(y))
+}
+
+func ClearColor(r, g, b, a float32) {
+ C.glClearColor(C.float(r), C.float(g), C.float(b), C.float(a))
+}
+
+func GenTextures(n int32, textures *uint32) {
+ C.glGenTextures(C.int(n), (*C.uint)(unsafe.Pointer(textures)))
+}
+
+func DeleteTextures(n int, textures *uint32) {
+ C.glDeleteTextures(C.int(n), (*C.uint)(unsafe.Pointer(textures)))
+}
+
+func BindTexture(target, texture uint32) {
+ C.glBindTexture(C.uint(target), C.uint(texture))
+}
+
+func TexParameteri(target, pname, param uint32) {
+ C.glTexParameteri(C.uint(target), C.uint(pname), C.int(param))
+}
+
+func TexCoord2f(s, t float32) {
+ C.glTexCoord2f(C.float(s), C.float(t))
+}
+
+func TexImage2D(target, level, internalFormat uint32, width, height int, border, format, typ uint32, pixels []byte) {
+ C.glTexImage2D(C.uint(target), C.int(level), C.int(internalFormat), C.int(width), C.int(height), C.int(border), C.uint(format), C.uint(typ), C.CBytes(pixels))
+}
+
+func Clear(mask uint32) {
+ C.glClear(C.uint(mask))
+}
+
+func Enable(cap uint32) {
+ C.glEnable(C.uint(cap))
+}
+
+func BlendFunc(sfactor, dfactor uint32) {
+ C.glBlendFunc(C.uint(sfactor), C.uint(dfactor))
+}
+
+func Ortho(left, right, bottom, top, near, far float64) {
+ C.glOrtho(C.double(left), C.double(right), C.double(bottom), C.double(top), C.double(near), C.double(far))
+}
+
+func Viewport(x, y, width, height int) {
+ C.glViewport(C.int(x), C.int(y), C.int(width), C.int(height))
+}
+
+func LineWidth(width float32) {
+ C.glLineWidth(C.float(width))
+}
diff --git a/internal/gl/opengl.go b/internal/gl/opengl.go
new file mode 100755
index 0000000..c0f156e
--- /dev/null
+++ b/internal/gl/opengl.go
@@ -0,0 +1,353 @@
+//go:build windows || linux || darwin
+// +build windows linux darwin
+
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package gl
+
+import (
+ "fmt"
+ "log"
+ "strings"
+
+ gl "vuelto.pp.ua/internal/gl/opengl"
+ "vuelto.pp.ua/internal/image"
+ "vuelto.pp.ua/internal/trita"
+)
+
+type Arguments struct {
+ Arg any
+}
+
+type Shader struct {
+ WebShader string
+ DesktopShader string
+
+ Type any
+ Shader uint32
+}
+
+type Program struct {
+ Program uint32
+
+ VertexShader Shader
+ FragmentShader Shader
+}
+
+type Buffer struct {
+ Vao uint32
+ Vbo uint32
+ Ebo uint32
+
+ Vertices []float32
+ Indices []int32
+}
+
+type Location struct {
+ UniformLocation int32
+}
+
+type Texture struct {
+ Texture uint32
+}
+
+var TEXTURE_2D = &Arguments{gl.TEXTURE_2D}
+var BLEND = &Arguments{gl.BLEND}
+var LINEAR = &Arguments{gl.LINEAR}
+var NEAREST = &Arguments{gl.NEAREST}
+var VBO = &Arguments{gl.ARRAY_BUFFER}
+var EBO = &Arguments{gl.ELEMENT_ARRAY_BUFFER}
+var VA = &Arguments{gl.VERTEX_ARRAY}
+
+func NewShader(shadertype any) *Shader {
+ switch trita.YourType(shadertype) {
+ case trita.YourType(FragmentShader{}):
+ return &Shader{
+ Type: shadertype,
+ WebShader: shadertype.(FragmentShader).WebShader,
+ DesktopShader: shadertype.(FragmentShader).DesktopShader,
+ }
+ case trita.YourType(VertexShader{}):
+ return &Shader{
+ Type: shadertype,
+ WebShader: shadertype.(VertexShader).WebShader,
+ DesktopShader: shadertype.(VertexShader).DesktopShader,
+ }
+ default:
+ panic("Unknown shader type")
+ }
+}
+
+func (s *Shader) Compile() {
+ var shaderType uint32
+
+ switch trita.YourType(s.Type) {
+ case trita.YourType(VertexShader{}):
+ shaderType = gl.VERTEX_SHADER
+ case trita.YourType(FragmentShader{}):
+ shaderType = gl.FRAGMENT_SHADER
+ default:
+ panic("Invalid shader type")
+ }
+
+ shader := gl.CreateShader(shaderType)
+ src, free := gl.Strs(s.DesktopShader + "\x00")
+ gl.ShaderSource(shader, 1, src, nil)
+ free()
+ gl.CompileShader(shader)
+
+ var success int32
+ gl.GetShaderiv(shader, gl.COMPILE_STATUS, &success)
+ if success == gl.FALSE {
+ var logLength int32
+ gl.GetShaderiv(shader, gl.INFO_LOG_LENGTH, &logLength)
+
+ log := strings.Repeat("\x00", int(logLength+1))
+ gl.GetShaderInfoLog(shader, logLength, nil, gl.Str(log))
+
+ panic(fmt.Sprintf("Failed to compile shader: %v", log))
+ }
+
+ s.Type = shader
+}
+
+func (s *Shader) Delete() {
+ if shader, ok := s.Type.(uint32); ok {
+ gl.DeleteShader(shader)
+ }
+}
+
+func NewProgram(vertexshader, fragmentshader Shader) *Program {
+ return &Program{
+ VertexShader: vertexshader,
+ FragmentShader: fragmentshader,
+ }
+}
+
+func (p *Program) Link() {
+ program := gl.CreateProgram()
+
+ vertexShader, ok := p.VertexShader.Type.(uint32)
+ if !ok {
+ panic("vertex shader is not compiled")
+ }
+ fragmentShader, ok := p.FragmentShader.Type.(uint32)
+ if !ok {
+ panic("fragment shader is not compiled")
+ }
+
+ gl.AttachShader(program, vertexShader)
+ gl.AttachShader(program, fragmentShader)
+ gl.LinkProgram(program)
+
+ var status int32
+ gl.GetProgramiv(program, gl.LINK_STATUS, &status)
+ if status == gl.FALSE {
+ var logLength int32
+ gl.GetProgramiv(program, gl.INFO_LOG_LENGTH, &logLength)
+
+ logg := make([]byte, logLength)
+ gl.GetProgramInfoLog(program, logLength, nil, &logg[0])
+ log.Fatalf("Program linking failed: %s", string(logg))
+ }
+
+ p.Program = program
+}
+
+func (p *Program) Use() {
+ gl.UseProgram(p.Program)
+}
+
+func (p *Program) UnUse() {
+ gl.UseProgram(0)
+}
+
+func (p *Program) Delete() {
+ gl.DeleteProgram(p.Program)
+}
+
+func (p *Program) UniformLocation(location string) *Location {
+ loc := gl.GetUniformLocation(p.Program, gl.Str(location+"\x00"))
+ if loc == -1 {
+ log.Fatalln("Uniform not found: ", location)
+ return nil
+ }
+ return &Location{UniformLocation: loc}
+}
+
+func (l *Location) Set(arg ...float32) {
+ switch len(arg) {
+ case 1:
+ gl.Uniform1f(l.UniformLocation, arg[0])
+ case 2:
+ gl.Uniform2f(l.UniformLocation, arg[0], arg[1])
+ case 3:
+ gl.Uniform3f(l.UniformLocation, arg[0], arg[1], arg[2])
+ case 4:
+ gl.Uniform4f(l.UniformLocation, arg[0], arg[1], arg[2], arg[3])
+ default:
+ panic("unsupported uniform length")
+ }
+}
+
+func GenBuffers(vertices []float32, indices []uint16) *Buffer {
+ var vao, vbo, ebo uint32
+ gl.GenVertexArrays(1, &vao)
+ gl.GenBuffers(1, &vbo)
+ gl.GenBuffers(1, &ebo)
+
+ return &Buffer{
+ Vao: vao,
+ Vbo: vbo,
+ Ebo: ebo,
+ Vertices: vertices,
+ Indices: gl.Uint16ToInt32(indices),
+ }
+}
+
+func (b *Buffer) Bind(args ...*Arguments) {
+ for _, arg := range args {
+ switch arg {
+ case VA:
+ gl.BindVertexArray(b.Vao)
+ case VBO:
+ gl.BindBuffer(gl.ARRAY_BUFFER, b.Vbo)
+ case EBO:
+ gl.BindBuffer(gl.ELEMENT_ARRAY_BUFFER, b.Ebo)
+ default:
+ fmt.Printf("Unknown argument: %v\n", arg)
+ }
+ }
+}
+
+func (b *Buffer) UnBind(args ...*Arguments) {
+ for _, arg := range args {
+ switch arg {
+ case VA:
+ gl.BindVertexArray(0)
+ case VBO:
+ gl.BindBuffer(gl.ARRAY_BUFFER, 0)
+ case EBO:
+ gl.BindBuffer(gl.ELEMENT_ARRAY_BUFFER, 0)
+ default:
+ fmt.Printf("Unknown argument: %v\n", arg)
+ }
+ }
+}
+
+func (b *Buffer) Data() {
+ gl.BufferData(gl.ARRAY_BUFFER, len(b.Vertices)*4, gl.Ptr(b.Vertices), gl.STATIC_DRAW)
+ gl.BufferData(gl.ELEMENT_ARRAY_BUFFER, len(b.Indices)*4, gl.Ptr(b.Indices), gl.STATIC_DRAW)
+}
+
+func (b *Buffer) Update(data []float32) {
+ gl.BufferData(gl.ARRAY_BUFFER, len(data)*4, gl.Ptr(data), gl.DYNAMIC_DRAW)
+}
+
+func (b *Buffer) Delete(args ...*Arguments) {
+ for _, arg := range args {
+ switch arg {
+ case VA:
+ gl.DeleteVertexArrays(1, &b.Vao)
+ case VBO:
+ gl.DeleteBuffers(1, &b.Vbo)
+ case EBO:
+ gl.DeleteBuffers(1, &b.Ebo)
+ default:
+ fmt.Printf("Unknown argument: %v\n", arg)
+ }
+ }
+}
+
+func GenTexture() *Texture {
+ var texture uint32
+ gl.GenTextures(1, &texture)
+ return &Texture{Texture: texture}
+}
+
+func (t *Texture) Bind() {
+ gl.BindTexture(gl.TEXTURE_2D, t.Texture)
+}
+
+func (t *Texture) UnBind() {
+ gl.BindTexture(gl.TEXTURE_2D, 0)
+}
+
+func (t *Texture) Configure(image *image.Image, filter *Arguments) {
+ gl.TexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, int32(image.Width), int32(image.Height), 0, gl.RGBA, gl.UNSIGNED_BYTE, gl.Ptr(image.Texture))
+
+ gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, int32(filter.Arg.(int)))
+ gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, int32(filter.Arg.(int)))
+ gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE)
+ gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE)
+}
+
+func (t *Texture) Delete() {
+ gl.DeleteTextures(1, &t.Texture)
+}
+
+func SetupVertexAttrib(program *Program) {
+ var useTexture int32
+ gl.GetUniformiv(program.Program, gl.GetUniformLocation(program.Program, gl.Str("useTexture"+"\x00")), &useTexture)
+ if useTexture == 1 {
+ gl.VertexAttribPointerWithOffset(0, 3, gl.FLOAT, false, 5*4, 0)
+ gl.EnableVertexAttribArray(0)
+
+ gl.VertexAttribPointerWithOffset(1, 2, gl.FLOAT, false, 5*4, 3*4)
+ gl.EnableVertexAttribArray(1)
+ } else {
+ gl.VertexAttribPointerWithOffset(0, 3, gl.FLOAT, false, 3*4, 0)
+ gl.EnableVertexAttribArray(0)
+ }
+}
+
+func DrawElements(indices []uint16) {
+ if len(indices) == 2 {
+ gl.DrawElements(gl.LINES, int32(len(indices)), gl.UNSIGNED_INT, nil)
+ } else {
+ gl.DrawElements(gl.TRIANGLES, int32(len(indices)), gl.UNSIGNED_INT, nil)
+ }
+}
+
+func DrawArrays(corners int32) {
+ gl.DrawArrays(gl.TRIANGLE_FAN, 0, corners)
+}
+
+func Clear() {
+ gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
+}
+
+func ClearColor(r, g, b, a float32) {
+ gl.ClearColor(r, g, b, a)
+}
+
+func Enable(args ...*Arguments) {
+ for _, arg := range args {
+ gl.Enable(uint32(arg.Arg.(int)))
+ }
+}
+
+func EnableBlend() {
+ gl.BlendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA)
+}
+
+func Viewport(x, y, width, height int) {
+ gl.Viewport(int32(x), int32(y), int32(width), int32(height))
+}
+
+func Init() error {
+ if err := gl.Init(); err != nil {
+ return fmt.Errorf("failed to initialize OpenGL: %w", err)
+ }
+ return nil
+}
diff --git a/internal/gl/opengl/KHR/khrplatform.h b/internal/gl/opengl/KHR/khrplatform.h
new file mode 100644
index 0000000..0164644
--- /dev/null
+++ b/internal/gl/opengl/KHR/khrplatform.h
@@ -0,0 +1,311 @@
+#ifndef __khrplatform_h_
+#define __khrplatform_h_
+
+/*
+** Copyright (c) 2008-2018 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
+
+/* Khronos platform-specific types and definitions.
+ *
+ * The master copy of khrplatform.h is maintained in the Khronos EGL
+ * Registry repository at https://github.com/KhronosGroup/EGL-Registry
+ * The last semantic modification to khrplatform.h was at commit ID:
+ * 67a3e0864c2d75ea5287b9f3d2eb74a745936692
+ *
+ * Adopters may modify this file to suit their platform. Adopters are
+ * encouraged to submit platform specific modifications to the Khronos
+ * group so that they can be included in future versions of this file.
+ * Please submit changes by filing pull requests or issues on
+ * the EGL Registry repository linked above.
+ *
+ *
+ * See the Implementer's Guidelines for information about where this file
+ * should be located on your system and for more details of its use:
+ * http://www.khronos.org/registry/implementers_guide.pdf
+ *
+ * This file should be included as
+ * #include
+ * by Khronos client API header files that use its types and defines.
+ *
+ * The types in khrplatform.h should only be used to define API-specific types.
+ *
+ * Types defined in khrplatform.h:
+ * khronos_int8_t signed 8 bit
+ * khronos_uint8_t unsigned 8 bit
+ * khronos_int16_t signed 16 bit
+ * khronos_uint16_t unsigned 16 bit
+ * khronos_int32_t signed 32 bit
+ * khronos_uint32_t unsigned 32 bit
+ * khronos_int64_t signed 64 bit
+ * khronos_uint64_t unsigned 64 bit
+ * khronos_intptr_t signed same number of bits as a pointer
+ * khronos_uintptr_t unsigned same number of bits as a pointer
+ * khronos_ssize_t signed size
+ * khronos_usize_t unsigned size
+ * khronos_float_t signed 32 bit floating point
+ * khronos_time_ns_t unsigned 64 bit time in nanoseconds
+ * khronos_utime_nanoseconds_t unsigned time interval or absolute time in
+ * nanoseconds
+ * khronos_stime_nanoseconds_t signed time interval in nanoseconds
+ * khronos_boolean_enum_t enumerated boolean type. This should
+ * only be used as a base type when a client API's boolean type is
+ * an enum. Client APIs which use an integer or other type for
+ * booleans cannot use this as the base type for their boolean.
+ *
+ * Tokens defined in khrplatform.h:
+ *
+ * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values.
+ *
+ * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0.
+ * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0.
+ *
+ * Calling convention macros defined in this file:
+ * KHRONOS_APICALL
+ * KHRONOS_APIENTRY
+ * KHRONOS_APIATTRIBUTES
+ *
+ * These may be used in function prototypes as:
+ *
+ * KHRONOS_APICALL void KHRONOS_APIENTRY funcname(
+ * int arg1,
+ * int arg2) KHRONOS_APIATTRIBUTES;
+ */
+
+#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC)
+# define KHRONOS_STATIC 1
+#endif
+
+/*-------------------------------------------------------------------------
+ * Definition of KHRONOS_APICALL
+ *-------------------------------------------------------------------------
+ * This precedes the return type of the function in the function prototype.
+ */
+#if defined(KHRONOS_STATIC)
+ /* If the preprocessor constant KHRONOS_STATIC is defined, make the
+ * header compatible with static linking. */
+# define KHRONOS_APICALL
+#elif defined(_WIN32)
+# define KHRONOS_APICALL __declspec(dllimport)
+#elif defined (__SYMBIAN32__)
+# define KHRONOS_APICALL IMPORT_C
+#elif defined(__ANDROID__)
+# define KHRONOS_APICALL __attribute__((visibility("default")))
+#else
+# define KHRONOS_APICALL
+#endif
+
+/*-------------------------------------------------------------------------
+ * Definition of KHRONOS_APIENTRY
+ *-------------------------------------------------------------------------
+ * This follows the return type of the function and precedes the function
+ * name in the function prototype.
+ */
+#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__)
+ /* Win32 but not WinCE */
+# define KHRONOS_APIENTRY __stdcall
+#else
+# define KHRONOS_APIENTRY
+#endif
+
+/*-------------------------------------------------------------------------
+ * Definition of KHRONOS_APIATTRIBUTES
+ *-------------------------------------------------------------------------
+ * This follows the closing parenthesis of the function prototype arguments.
+ */
+#if defined (__ARMCC_2__)
+#define KHRONOS_APIATTRIBUTES __softfp
+#else
+#define KHRONOS_APIATTRIBUTES
+#endif
+
+/*-------------------------------------------------------------------------
+ * basic type definitions
+ *-----------------------------------------------------------------------*/
+#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__)
+
+
+/*
+ * Using
+ */
+#include
+typedef int32_t khronos_int32_t;
+typedef uint32_t khronos_uint32_t;
+typedef int64_t khronos_int64_t;
+typedef uint64_t khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+/*
+ * To support platform where unsigned long cannot be used interchangeably with
+ * inptr_t (e.g. CHERI-extended ISAs), we can use the stdint.h intptr_t.
+ * Ideally, we could just use (u)intptr_t everywhere, but this could result in
+ * ABI breakage if khronos_uintptr_t is changed from unsigned long to
+ * unsigned long long or similar (this results in different C++ name mangling).
+ * To avoid changes for existing platforms, we restrict usage of intptr_t to
+ * platforms where the size of a pointer is larger than the size of long.
+ */
+#if defined(__SIZEOF_LONG__) && defined(__SIZEOF_POINTER__)
+#if __SIZEOF_POINTER__ > __SIZEOF_LONG__
+#define KHRONOS_USE_INTPTR_T
+#endif
+#endif
+
+#elif defined(__VMS ) || defined(__sgi)
+
+/*
+ * Using
+ */
+#include
+typedef int32_t khronos_int32_t;
+typedef uint32_t khronos_uint32_t;
+typedef int64_t khronos_int64_t;
+typedef uint64_t khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#elif defined(_WIN32) && !defined(__SCITECH_SNAP__)
+
+/*
+ * Win32
+ */
+typedef __int32 khronos_int32_t;
+typedef unsigned __int32 khronos_uint32_t;
+typedef __int64 khronos_int64_t;
+typedef unsigned __int64 khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#elif defined(__sun__) || defined(__digital__)
+
+/*
+ * Sun or Digital
+ */
+typedef int khronos_int32_t;
+typedef unsigned int khronos_uint32_t;
+#if defined(__arch64__) || defined(_LP64)
+typedef long int khronos_int64_t;
+typedef unsigned long int khronos_uint64_t;
+#else
+typedef long long int khronos_int64_t;
+typedef unsigned long long int khronos_uint64_t;
+#endif /* __arch64__ */
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#elif 0
+
+/*
+ * Hypothetical platform with no float or int64 support
+ */
+typedef int khronos_int32_t;
+typedef unsigned int khronos_uint32_t;
+#define KHRONOS_SUPPORT_INT64 0
+#define KHRONOS_SUPPORT_FLOAT 0
+
+#else
+
+/*
+ * Generic fallback
+ */
+#include
+typedef int32_t khronos_int32_t;
+typedef uint32_t khronos_uint32_t;
+typedef int64_t khronos_int64_t;
+typedef uint64_t khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#endif
+
+
+/*
+ * Types that are (so far) the same on all platforms
+ */
+typedef signed char khronos_int8_t;
+typedef unsigned char khronos_uint8_t;
+typedef signed short int khronos_int16_t;
+typedef unsigned short int khronos_uint16_t;
+
+/*
+ * Types that differ between LLP64 and LP64 architectures - in LLP64,
+ * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
+ * to be the only LLP64 architecture in current use.
+ */
+#ifdef KHRONOS_USE_INTPTR_T
+typedef intptr_t khronos_intptr_t;
+typedef uintptr_t khronos_uintptr_t;
+#elif defined(_WIN64)
+typedef signed long long int khronos_intptr_t;
+typedef unsigned long long int khronos_uintptr_t;
+#else
+typedef signed long int khronos_intptr_t;
+typedef unsigned long int khronos_uintptr_t;
+#endif
+
+#if defined(_WIN64)
+typedef signed long long int khronos_ssize_t;
+typedef unsigned long long int khronos_usize_t;
+#else
+typedef signed long int khronos_ssize_t;
+typedef unsigned long int khronos_usize_t;
+#endif
+
+#if KHRONOS_SUPPORT_FLOAT
+/*
+ * Float type
+ */
+typedef float khronos_float_t;
+#endif
+
+#if KHRONOS_SUPPORT_INT64
+/* Time types
+ *
+ * These types can be used to represent a time interval in nanoseconds or
+ * an absolute Unadjusted System Time. Unadjusted System Time is the number
+ * of nanoseconds since some arbitrary system event (e.g. since the last
+ * time the system booted). The Unadjusted System Time is an unsigned
+ * 64 bit value that wraps back to 0 every 584 years. Time intervals
+ * may be either signed or unsigned.
+ */
+typedef khronos_uint64_t khronos_utime_nanoseconds_t;
+typedef khronos_int64_t khronos_stime_nanoseconds_t;
+#endif
+
+/*
+ * Dummy value used to pad enum types to 32 bits.
+ */
+#ifndef KHRONOS_MAX_ENUM
+#define KHRONOS_MAX_ENUM 0x7FFFFFFF
+#endif
+
+/*
+ * Enumerated boolean type
+ *
+ * Values other than zero should be considered to be true. Therefore
+ * comparisons should not be made against KHRONOS_TRUE.
+ */
+typedef enum {
+ KHRONOS_FALSE = 0,
+ KHRONOS_TRUE = 1,
+ KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM
+} khronos_boolean_enum_t;
+
+#endif /* __khrplatform_h_ */
diff --git a/internal/gl/opengl/conversions.go b/internal/gl/opengl/conversions.go
new file mode 100644
index 0000000..bd70f24
--- /dev/null
+++ b/internal/gl/opengl/conversions.go
@@ -0,0 +1,116 @@
+// Code generated by glow (https://github.com/go-gl/glow). DO NOT EDIT.
+
+package gl
+
+import (
+ "fmt"
+ "reflect"
+ "strings"
+ "unsafe"
+)
+
+// #include
+import "C"
+
+// Ptr takes a slice or pointer (to a singular scalar value or the first
+// element of an array or slice) and returns its GL-compatible address.
+//
+// For example:
+//
+// var data []uint8
+// ...
+// gl.TexImage2D(gl.TEXTURE_2D, ..., gl.UNSIGNED_BYTE, gl.Ptr(&data[0]))
+func Ptr(data interface{}) unsafe.Pointer {
+ if data == nil {
+ return unsafe.Pointer(nil)
+ }
+ var addr unsafe.Pointer
+ v := reflect.ValueOf(data)
+ switch v.Type().Kind() {
+ case reflect.Ptr:
+ e := v.Elem()
+ switch e.Kind() {
+ case
+ reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,
+ reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64,
+ reflect.Float32, reflect.Float64:
+ addr = unsafe.Pointer(e.UnsafeAddr())
+ default:
+ panic(fmt.Errorf("unsupported pointer to type %s; must be a slice or pointer to a singular scalar value or the first element of an array or slice", e.Kind()))
+ }
+ case reflect.Uintptr:
+ addr = unsafe.Pointer(data.(uintptr))
+ case reflect.Slice:
+ addr = unsafe.Pointer(v.Index(0).UnsafeAddr())
+ default:
+ panic(fmt.Errorf("unsupported type %s; must be a slice or pointer to a singular scalar value or the first element of an array or slice", v.Type()))
+ }
+ return addr
+}
+
+// PtrOffset takes a pointer offset and returns a GL-compatible pointer.
+// Originally intended for functions such as glVertexAttribPointer that take pointer
+// parameters also for offsets, since Go 1.14 this is no longer recommended.
+//
+// Use a corresponding offset-compatible variant of the function instead.
+// For example, for gl.VertexAttribPointer() there is gl.VertexAttribPointerWithOffset().
+//
+// See https://github.com/go-gl/gl#go-114-and-checkptr for more details on the checkptr detector.
+// See https://github.com/go-gl/glow#overloads, about adding new overloads.
+//
+// Deprecated: Use more appropriate overload function instead
+func PtrOffset(offset int) unsafe.Pointer {
+ return unsafe.Pointer(uintptr(offset))
+}
+
+// Str takes a null-terminated Go string and returns its GL-compatible address.
+// This function reaches into Go string storage in an unsafe way so the caller
+// must ensure the string is not garbage collected.
+func Str(str string) *uint8 {
+ if !strings.HasSuffix(str, "\x00") {
+ panic("str argument missing null terminator: " + str)
+ }
+ header := (*reflect.StringHeader)(unsafe.Pointer(&str))
+ return (*uint8)(unsafe.Pointer(header.Data))
+}
+
+// GoStr takes a null-terminated string returned by OpenGL and constructs a
+// corresponding Go string.
+func GoStr(cstr *uint8) string {
+ return C.GoString((*C.char)(unsafe.Pointer(cstr)))
+}
+
+// Strs takes a list of Go strings (with or without null-termination) and
+// returns their C counterpart.
+//
+// The returned free function must be called once you are done using the strings
+// in order to free the memory.
+//
+// If no strings are provided as a parameter this function will panic.
+func Strs(strs ...string) (cstrs **uint8, free func()) {
+ if len(strs) == 0 {
+ panic("Strs: expected at least 1 string")
+ }
+
+ // Allocate a contiguous array large enough to hold all the strings' contents.
+ n := 0
+ for i := range strs {
+ n += len(strs[i])
+ }
+ if n == 0 {
+ n = 1 // avoid allocating zero bytes in case all strings are empty.
+ }
+ data := C.malloc(C.size_t(n))
+
+ // Copy all the strings into data.
+ dataSlice := (*[1 << 30]byte)(data)[:n]
+ css := make([]*uint8, len(strs)) // Populated with pointers to each string.
+ offset := 0
+ for i := range strs {
+ copy(dataSlice[offset:offset+len(strs[i])], strs[i][:]) // Copy strs[i] into proper data location.
+ css[i] = (*uint8)(unsafe.Pointer(&dataSlice[offset])) // Set a pointer to it.
+ offset += len(strs[i])
+ }
+
+ return (**uint8)(&css[0]), func() { C.free(data) }
+}
diff --git a/internal/gl/opengl/debug.go b/internal/gl/opengl/debug.go
new file mode 100644
index 0000000..ee22784
--- /dev/null
+++ b/internal/gl/opengl/debug.go
@@ -0,0 +1,31 @@
+// Code generated by glow (https://github.com/go-gl/glow). DO NOT EDIT.
+
+package gl
+
+import "C"
+import "unsafe"
+
+type DebugProc func(
+ source uint32,
+ gltype uint32,
+ id uint32,
+ severity uint32,
+ length int32,
+ message string,
+ userParam unsafe.Pointer)
+
+var userDebugCallback DebugProc
+
+//export glowDebugCallback_glcore33
+func glowDebugCallback_glcore33(
+ source uint32,
+ gltype uint32,
+ id uint32,
+ severity uint32,
+ length int32,
+ message *uint8,
+ userParam unsafe.Pointer) {
+ if userDebugCallback != nil {
+ userDebugCallback(source, gltype, id, severity, length, GoStr(message), userParam)
+ }
+}
diff --git a/internal/gl/opengl/package.go b/internal/gl/opengl/package.go
new file mode 100644
index 0000000..9198ffc
--- /dev/null
+++ b/internal/gl/opengl/package.go
@@ -0,0 +1,15926 @@
+// Code generated by glow (https://github.com/go-gl/glow). DO NOT EDIT.
+
+// Copyright (c) 2010 Khronos Group.
+// This material may be distributed subject to the terms and conditions
+// set forth in the Open Publication License, v 1.0, 8 June 1999.
+// http://opencontent.org/openpub/.
+//
+// Copyright (c) 1991-2006 Silicon Graphics, Inc.
+// This document is licensed under the SGI Free Software B License.
+// For details, see http://oss.sgi.com/projects/FreeB.
+
+// Package gl implements Go bindings to OpenGL.
+//
+// This package was automatically generated using Glow:
+//
+// https://github.com/go-gl/glow
+package gl
+
+// #cgo !gles2,darwin LDFLAGS: -framework OpenGL
+// #cgo gles2,darwin LDFLAGS: -framework OpenGLES
+// #cgo !gles2,windows LDFLAGS: -lopengl32
+// #cgo gles2,windows LDFLAGS: -lGLESv2
+// #cgo !egl,linux !egl,freebsd !egl,netbsd !egl,openbsd pkg-config: gl
+// #cgo egl,linux egl,freebsd egl,netbsd egl,openbsd pkg-config: egl
+// #if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
+// #ifndef WIN32_LEAN_AND_MEAN
+// #define WIN32_LEAN_AND_MEAN 1
+// #endif
+// #include
+// #endif
+// #ifndef APIENTRY
+// #define APIENTRY
+// #endif
+// #ifndef APIENTRYP
+// #define APIENTRYP APIENTRY *
+// #endif
+// #ifndef GLAPI
+// #define GLAPI extern
+// #endif
+// #include
+// typedef unsigned int GLenum;
+// typedef unsigned char GLboolean;
+// typedef unsigned int GLbitfield;
+// typedef khronos_int8_t GLbyte;
+// typedef khronos_uint8_t GLubyte;
+// typedef khronos_int16_t GLshort;
+// typedef khronos_uint16_t GLushort;
+// typedef int GLint;
+// typedef unsigned int GLuint;
+// typedef int GLsizei;
+// typedef khronos_float_t GLfloat;
+// typedef double GLdouble;
+// typedef void *GLeglImageOES;
+// typedef char GLchar;
+// typedef khronos_intptr_t GLintptr;
+// typedef khronos_ssize_t GLsizeiptr;
+// typedef khronos_int64_t GLint64;
+// typedef khronos_int64_t GLint64EXT;
+// typedef khronos_uint64_t GLuint64;
+// typedef khronos_uint64_t GLuint64EXT;
+// typedef uintptr_t GLsync;
+// struct _cl_context;
+// struct _cl_event;
+// typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
+// typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
+// typedef void (APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
+// typedef void (APIENTRY *GLVULKANPROCNV)(void);
+// extern void glowDebugCallback_glcore33(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam);
+// static void APIENTRY glowCDebugCallback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam) {
+// glowDebugCallback_glcore33(source, type, id, severity, length, message, userParam);
+// }
+// typedef void (APIENTRYP GPACTIVEPROGRAMEXT)(GLuint program);
+// typedef void (APIENTRYP GPACTIVESHADERPROGRAM)(GLuint pipeline, GLuint program);
+// typedef void (APIENTRYP GPACTIVESHADERPROGRAMEXT)(GLuint pipeline, GLuint program);
+// typedef void (APIENTRYP GPACTIVETEXTURE)(GLenum texture);
+// typedef void (APIENTRYP GPAPPLYFRAMEBUFFERATTACHMENTCMAAINTEL)();
+// typedef void (APIENTRYP GPATTACHSHADER)(GLuint program, GLuint shader);
+// typedef void (APIENTRYP GPBEGINCONDITIONALRENDER)(GLuint id, GLenum mode);
+// typedef void (APIENTRYP GPBEGINCONDITIONALRENDERNV)(GLuint id, GLenum mode);
+// typedef void (APIENTRYP GPBEGINPERFMONITORAMD)(GLuint monitor);
+// typedef void (APIENTRYP GPBEGINPERFQUERYINTEL)(GLuint queryHandle);
+// typedef void (APIENTRYP GPBEGINQUERY)(GLenum target, GLuint id);
+// typedef void (APIENTRYP GPBEGINQUERYINDEXED)(GLenum target, GLuint index, GLuint id);
+// typedef void (APIENTRYP GPBEGINTRANSFORMFEEDBACK)(GLenum primitiveMode);
+// typedef void (APIENTRYP GPBINDATTRIBLOCATION)(GLuint program, GLuint index, const GLchar * name);
+// typedef void (APIENTRYP GPBINDBUFFER)(GLenum target, GLuint buffer);
+// typedef void (APIENTRYP GPBINDBUFFERBASE)(GLenum target, GLuint index, GLuint buffer);
+// typedef void (APIENTRYP GPBINDBUFFERRANGE)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+// typedef void (APIENTRYP GPBINDBUFFERSBASE)(GLenum target, GLuint first, GLsizei count, const GLuint * buffers);
+// typedef void (APIENTRYP GPBINDBUFFERSRANGE)(GLenum target, GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizeiptr * sizes);
+// typedef void (APIENTRYP GPBINDFRAGDATALOCATION)(GLuint program, GLuint color, const GLchar * name);
+// typedef void (APIENTRYP GPBINDFRAGDATALOCATIONINDEXED)(GLuint program, GLuint colorNumber, GLuint index, const GLchar * name);
+// typedef void (APIENTRYP GPBINDFRAMEBUFFER)(GLenum target, GLuint framebuffer);
+// typedef void (APIENTRYP GPBINDIMAGETEXTURE)(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
+// typedef void (APIENTRYP GPBINDIMAGETEXTURES)(GLuint first, GLsizei count, const GLuint * textures);
+// typedef void (APIENTRYP GPBINDMULTITEXTUREEXT)(GLenum texunit, GLenum target, GLuint texture);
+// typedef void (APIENTRYP GPBINDPROGRAMPIPELINE)(GLuint pipeline);
+// typedef void (APIENTRYP GPBINDPROGRAMPIPELINEEXT)(GLuint pipeline);
+// typedef void (APIENTRYP GPBINDRENDERBUFFER)(GLenum target, GLuint renderbuffer);
+// typedef void (APIENTRYP GPBINDSAMPLER)(GLuint unit, GLuint sampler);
+// typedef void (APIENTRYP GPBINDSAMPLERS)(GLuint first, GLsizei count, const GLuint * samplers);
+// typedef void (APIENTRYP GPBINDSHADINGRATEIMAGENV)(GLuint texture);
+// typedef void (APIENTRYP GPBINDTEXTURE)(GLenum target, GLuint texture);
+// typedef void (APIENTRYP GPBINDTEXTUREUNIT)(GLuint unit, GLuint texture);
+// typedef void (APIENTRYP GPBINDTEXTURES)(GLuint first, GLsizei count, const GLuint * textures);
+// typedef void (APIENTRYP GPBINDTRANSFORMFEEDBACK)(GLenum target, GLuint id);
+// typedef void (APIENTRYP GPBINDVERTEXARRAY)(GLuint array);
+// typedef void (APIENTRYP GPBINDVERTEXBUFFER)(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
+// typedef void (APIENTRYP GPBINDVERTEXBUFFERS)(GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizei * strides);
+// typedef void (APIENTRYP GPBLENDBARRIERKHR)();
+// typedef void (APIENTRYP GPBLENDBARRIERNV)();
+// typedef void (APIENTRYP GPBLENDCOLOR)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+// typedef void (APIENTRYP GPBLENDEQUATION)(GLenum mode);
+// typedef void (APIENTRYP GPBLENDEQUATIONSEPARATE)(GLenum modeRGB, GLenum modeAlpha);
+// typedef void (APIENTRYP GPBLENDEQUATIONSEPARATEIARB)(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+// typedef void (APIENTRYP GPBLENDEQUATIONIARB)(GLuint buf, GLenum mode);
+// typedef void (APIENTRYP GPBLENDFUNC)(GLenum sfactor, GLenum dfactor);
+// typedef void (APIENTRYP GPBLENDFUNCSEPARATE)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+// typedef void (APIENTRYP GPBLENDFUNCSEPARATEIARB)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+// typedef void (APIENTRYP GPBLENDFUNCIARB)(GLuint buf, GLenum src, GLenum dst);
+// typedef void (APIENTRYP GPBLENDPARAMETERINV)(GLenum pname, GLint value);
+// typedef void (APIENTRYP GPBLITFRAMEBUFFER)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+// typedef void (APIENTRYP GPBLITNAMEDFRAMEBUFFER)(GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+// typedef void (APIENTRYP GPBUFFERADDRESSRANGENV)(GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length);
+// typedef void (APIENTRYP GPBUFFERATTACHMEMORYNV)(GLenum target, GLuint memory, GLuint64 offset);
+// typedef void (APIENTRYP GPBUFFERDATA)(GLenum target, GLsizeiptr size, const void * data, GLenum usage);
+// typedef void (APIENTRYP GPBUFFERPAGECOMMITMENTARB)(GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit);
+// typedef void (APIENTRYP GPBUFFERPAGECOMMITMENTMEMNV)(GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit);
+// typedef void (APIENTRYP GPBUFFERSTORAGE)(GLenum target, GLsizeiptr size, const void * data, GLbitfield flags);
+// typedef void (APIENTRYP GPBUFFERSUBDATA)(GLenum target, GLintptr offset, GLsizeiptr size, const void * data);
+// typedef void (APIENTRYP GPCALLCOMMANDLISTNV)(GLuint list);
+// typedef GLenum (APIENTRYP GPCHECKFRAMEBUFFERSTATUS)(GLenum target);
+// typedef GLenum (APIENTRYP GPCHECKNAMEDFRAMEBUFFERSTATUS)(GLuint framebuffer, GLenum target);
+// typedef GLenum (APIENTRYP GPCHECKNAMEDFRAMEBUFFERSTATUSEXT)(GLuint framebuffer, GLenum target);
+// typedef void (APIENTRYP GPCLAMPCOLOR)(GLenum target, GLenum clamp);
+// typedef void (APIENTRYP GPCLEAR)(GLbitfield mask);
+// typedef void (APIENTRYP GPCLEARBUFFERDATA)(GLenum target, GLenum internalformat, GLenum format, GLenum type, const void * data);
+// typedef void (APIENTRYP GPCLEARBUFFERSUBDATA)(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data);
+// typedef void (APIENTRYP GPCLEARBUFFERFI)(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+// typedef void (APIENTRYP GPCLEARBUFFERFV)(GLenum buffer, GLint drawbuffer, const GLfloat * value);
+// typedef void (APIENTRYP GPCLEARBUFFERIV)(GLenum buffer, GLint drawbuffer, const GLint * value);
+// typedef void (APIENTRYP GPCLEARBUFFERUIV)(GLenum buffer, GLint drawbuffer, const GLuint * value);
+// typedef void (APIENTRYP GPCLEARCOLOR)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+// typedef void (APIENTRYP GPCLEARDEPTH)(GLdouble depth);
+// typedef void (APIENTRYP GPCLEARDEPTHDNV)(GLdouble depth);
+// typedef void (APIENTRYP GPCLEARDEPTHF)(GLfloat d);
+// typedef void (APIENTRYP GPCLEARNAMEDBUFFERDATA)(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void * data);
+// typedef void (APIENTRYP GPCLEARNAMEDBUFFERDATAEXT)(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void * data);
+// typedef void (APIENTRYP GPCLEARNAMEDBUFFERSUBDATA)(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data);
+// typedef void (APIENTRYP GPCLEARNAMEDBUFFERSUBDATAEXT)(GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data);
+// typedef void (APIENTRYP GPCLEARNAMEDFRAMEBUFFERFI)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+// typedef void (APIENTRYP GPCLEARNAMEDFRAMEBUFFERFV)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat * value);
+// typedef void (APIENTRYP GPCLEARNAMEDFRAMEBUFFERIV)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint * value);
+// typedef void (APIENTRYP GPCLEARNAMEDFRAMEBUFFERUIV)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint * value);
+// typedef void (APIENTRYP GPCLEARSTENCIL)(GLint s);
+// typedef void (APIENTRYP GPCLEARTEXIMAGE)(GLuint texture, GLint level, GLenum format, GLenum type, const void * data);
+// typedef void (APIENTRYP GPCLEARTEXSUBIMAGE)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
+// typedef void (APIENTRYP GPCLIENTATTRIBDEFAULTEXT)(GLbitfield mask);
+// typedef GLenum (APIENTRYP GPCLIENTWAITSYNC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
+// typedef void (APIENTRYP GPCLIPCONTROL)(GLenum origin, GLenum depth);
+// typedef void (APIENTRYP GPCOLORFORMATNV)(GLint size, GLenum type, GLsizei stride);
+// typedef void (APIENTRYP GPCOLORMASK)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+// typedef void (APIENTRYP GPCOLORMASKI)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+// typedef void (APIENTRYP GPCOMMANDLISTSEGMENTSNV)(GLuint list, GLuint segments);
+// typedef void (APIENTRYP GPCOMPILECOMMANDLISTNV)(GLuint list);
+// typedef void (APIENTRYP GPCOMPILESHADER)(GLuint shader);
+// typedef void (APIENTRYP GPCOMPILESHADERINCLUDEARB)(GLuint shader, GLsizei count, const GLchar *const* path, const GLint * length);
+// typedef void (APIENTRYP GPCOMPRESSEDMULTITEXIMAGE1DEXT)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * bits);
+// typedef void (APIENTRYP GPCOMPRESSEDMULTITEXIMAGE2DEXT)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * bits);
+// typedef void (APIENTRYP GPCOMPRESSEDMULTITEXIMAGE3DEXT)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * bits);
+// typedef void (APIENTRYP GPCOMPRESSEDMULTITEXSUBIMAGE1DEXT)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * bits);
+// typedef void (APIENTRYP GPCOMPRESSEDMULTITEXSUBIMAGE2DEXT)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * bits);
+// typedef void (APIENTRYP GPCOMPRESSEDMULTITEXSUBIMAGE3DEXT)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * bits);
+// typedef void (APIENTRYP GPCOMPRESSEDTEXIMAGE1D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * data);
+// typedef void (APIENTRYP GPCOMPRESSEDTEXIMAGE2D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data);
+// typedef void (APIENTRYP GPCOMPRESSEDTEXIMAGE3D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * data);
+// typedef void (APIENTRYP GPCOMPRESSEDTEXSUBIMAGE1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data);
+// typedef void (APIENTRYP GPCOMPRESSEDTEXSUBIMAGE2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data);
+// typedef void (APIENTRYP GPCOMPRESSEDTEXSUBIMAGE3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data);
+// typedef void (APIENTRYP GPCOMPRESSEDTEXTUREIMAGE1DEXT)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * bits);
+// typedef void (APIENTRYP GPCOMPRESSEDTEXTUREIMAGE2DEXT)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * bits);
+// typedef void (APIENTRYP GPCOMPRESSEDTEXTUREIMAGE3DEXT)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * bits);
+// typedef void (APIENTRYP GPCOMPRESSEDTEXTURESUBIMAGE1D)(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data);
+// typedef void (APIENTRYP GPCOMPRESSEDTEXTURESUBIMAGE1DEXT)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * bits);
+// typedef void (APIENTRYP GPCOMPRESSEDTEXTURESUBIMAGE2D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data);
+// typedef void (APIENTRYP GPCOMPRESSEDTEXTURESUBIMAGE2DEXT)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * bits);
+// typedef void (APIENTRYP GPCOMPRESSEDTEXTURESUBIMAGE3D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data);
+// typedef void (APIENTRYP GPCOMPRESSEDTEXTURESUBIMAGE3DEXT)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * bits);
+// typedef void (APIENTRYP GPCONSERVATIVERASTERPARAMETERFNV)(GLenum pname, GLfloat value);
+// typedef void (APIENTRYP GPCONSERVATIVERASTERPARAMETERINV)(GLenum pname, GLint param);
+// typedef void (APIENTRYP GPCOPYBUFFERSUBDATA)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+// typedef void (APIENTRYP GPCOPYIMAGESUBDATA)(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
+// typedef void (APIENTRYP GPCOPYMULTITEXIMAGE1DEXT)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+// typedef void (APIENTRYP GPCOPYMULTITEXIMAGE2DEXT)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+// typedef void (APIENTRYP GPCOPYMULTITEXSUBIMAGE1DEXT)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+// typedef void (APIENTRYP GPCOPYMULTITEXSUBIMAGE2DEXT)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPCOPYMULTITEXSUBIMAGE3DEXT)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPCOPYNAMEDBUFFERSUBDATA)(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+// typedef void (APIENTRYP GPCOPYPATHNV)(GLuint resultPath, GLuint srcPath);
+// typedef void (APIENTRYP GPCOPYTEXIMAGE1D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+// typedef void (APIENTRYP GPCOPYTEXIMAGE2D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+// typedef void (APIENTRYP GPCOPYTEXSUBIMAGE1D)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+// typedef void (APIENTRYP GPCOPYTEXSUBIMAGE2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPCOPYTEXSUBIMAGE3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPCOPYTEXTUREIMAGE1DEXT)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+// typedef void (APIENTRYP GPCOPYTEXTUREIMAGE2DEXT)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+// typedef void (APIENTRYP GPCOPYTEXTURESUBIMAGE1D)(GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+// typedef void (APIENTRYP GPCOPYTEXTURESUBIMAGE1DEXT)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+// typedef void (APIENTRYP GPCOPYTEXTURESUBIMAGE2D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPCOPYTEXTURESUBIMAGE2DEXT)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPCOPYTEXTURESUBIMAGE3D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPCOPYTEXTURESUBIMAGE3DEXT)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPCOVERFILLPATHINSTANCEDNV)(GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat * transformValues);
+// typedef void (APIENTRYP GPCOVERFILLPATHNV)(GLuint path, GLenum coverMode);
+// typedef void (APIENTRYP GPCOVERSTROKEPATHINSTANCEDNV)(GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat * transformValues);
+// typedef void (APIENTRYP GPCOVERSTROKEPATHNV)(GLuint path, GLenum coverMode);
+// typedef void (APIENTRYP GPCOVERAGEMODULATIONNV)(GLenum components);
+// typedef void (APIENTRYP GPCOVERAGEMODULATIONTABLENV)(GLsizei n, const GLfloat * v);
+// typedef void (APIENTRYP GPCREATEBUFFERS)(GLsizei n, GLuint * buffers);
+// typedef void (APIENTRYP GPCREATECOMMANDLISTSNV)(GLsizei n, GLuint * lists);
+// typedef void (APIENTRYP GPCREATEFRAMEBUFFERS)(GLsizei n, GLuint * framebuffers);
+// typedef void (APIENTRYP GPCREATEPERFQUERYINTEL)(GLuint queryId, GLuint * queryHandle);
+// typedef GLuint (APIENTRYP GPCREATEPROGRAM)();
+// typedef void (APIENTRYP GPCREATEPROGRAMPIPELINES)(GLsizei n, GLuint * pipelines);
+// typedef void (APIENTRYP GPCREATEQUERIES)(GLenum target, GLsizei n, GLuint * ids);
+// typedef void (APIENTRYP GPCREATERENDERBUFFERS)(GLsizei n, GLuint * renderbuffers);
+// typedef void (APIENTRYP GPCREATESAMPLERS)(GLsizei n, GLuint * samplers);
+// typedef GLuint (APIENTRYP GPCREATESHADER)(GLenum type);
+// typedef GLuint (APIENTRYP GPCREATESHADERPROGRAMEXT)(GLenum type, const GLchar * string);
+// typedef GLuint (APIENTRYP GPCREATESHADERPROGRAMV)(GLenum type, GLsizei count, const GLchar *const* strings);
+// typedef GLuint (APIENTRYP GPCREATESHADERPROGRAMVEXT)(GLenum type, GLsizei count, const GLchar *const* strings);
+// typedef void (APIENTRYP GPCREATESTATESNV)(GLsizei n, GLuint * states);
+// typedef GLsync (APIENTRYP GPCREATESYNCFROMCLEVENTARB)(struct _cl_context * context, struct _cl_event * event, GLbitfield flags);
+// typedef void (APIENTRYP GPCREATETEXTURES)(GLenum target, GLsizei n, GLuint * textures);
+// typedef void (APIENTRYP GPCREATETRANSFORMFEEDBACKS)(GLsizei n, GLuint * ids);
+// typedef void (APIENTRYP GPCREATEVERTEXARRAYS)(GLsizei n, GLuint * arrays);
+// typedef void (APIENTRYP GPCULLFACE)(GLenum mode);
+// typedef void (APIENTRYP GPDEBUGMESSAGECALLBACK)(GLDEBUGPROC callback, const void * userParam);
+// typedef void (APIENTRYP GPDEBUGMESSAGECALLBACKARB)(GLDEBUGPROCARB callback, const void * userParam);
+// typedef void (APIENTRYP GPDEBUGMESSAGECALLBACKKHR)(GLDEBUGPROCKHR callback, const void * userParam);
+// typedef void (APIENTRYP GPDEBUGMESSAGECONTROL)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled);
+// typedef void (APIENTRYP GPDEBUGMESSAGECONTROLARB)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled);
+// typedef void (APIENTRYP GPDEBUGMESSAGECONTROLKHR)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled);
+// typedef void (APIENTRYP GPDEBUGMESSAGEINSERT)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf);
+// typedef void (APIENTRYP GPDEBUGMESSAGEINSERTARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf);
+// typedef void (APIENTRYP GPDEBUGMESSAGEINSERTKHR)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf);
+// typedef void (APIENTRYP GPDELETEBUFFERS)(GLsizei n, const GLuint * buffers);
+// typedef void (APIENTRYP GPDELETECOMMANDLISTSNV)(GLsizei n, const GLuint * lists);
+// typedef void (APIENTRYP GPDELETEFRAMEBUFFERS)(GLsizei n, const GLuint * framebuffers);
+// typedef void (APIENTRYP GPDELETENAMEDSTRINGARB)(GLint namelen, const GLchar * name);
+// typedef void (APIENTRYP GPDELETEPATHSNV)(GLuint path, GLsizei range);
+// typedef void (APIENTRYP GPDELETEPERFMONITORSAMD)(GLsizei n, GLuint * monitors);
+// typedef void (APIENTRYP GPDELETEPERFQUERYINTEL)(GLuint queryHandle);
+// typedef void (APIENTRYP GPDELETEPROGRAM)(GLuint program);
+// typedef void (APIENTRYP GPDELETEPROGRAMPIPELINES)(GLsizei n, const GLuint * pipelines);
+// typedef void (APIENTRYP GPDELETEPROGRAMPIPELINESEXT)(GLsizei n, const GLuint * pipelines);
+// typedef void (APIENTRYP GPDELETEQUERIES)(GLsizei n, const GLuint * ids);
+// typedef void (APIENTRYP GPDELETERENDERBUFFERS)(GLsizei n, const GLuint * renderbuffers);
+// typedef void (APIENTRYP GPDELETESAMPLERS)(GLsizei count, const GLuint * samplers);
+// typedef void (APIENTRYP GPDELETESHADER)(GLuint shader);
+// typedef void (APIENTRYP GPDELETESTATESNV)(GLsizei n, const GLuint * states);
+// typedef void (APIENTRYP GPDELETESYNC)(GLsync sync);
+// typedef void (APIENTRYP GPDELETETEXTURES)(GLsizei n, const GLuint * textures);
+// typedef void (APIENTRYP GPDELETETRANSFORMFEEDBACKS)(GLsizei n, const GLuint * ids);
+// typedef void (APIENTRYP GPDELETEVERTEXARRAYS)(GLsizei n, const GLuint * arrays);
+// typedef void (APIENTRYP GPDEPTHBOUNDSDNV)(GLdouble zmin, GLdouble zmax);
+// typedef void (APIENTRYP GPDEPTHFUNC)(GLenum func);
+// typedef void (APIENTRYP GPDEPTHMASK)(GLboolean flag);
+// typedef void (APIENTRYP GPDEPTHRANGE)(GLdouble n, GLdouble f);
+// typedef void (APIENTRYP GPDEPTHRANGEARRAYDVNV)(GLuint first, GLsizei count, const GLdouble * v);
+// typedef void (APIENTRYP GPDEPTHRANGEARRAYV)(GLuint first, GLsizei count, const GLdouble * v);
+// typedef void (APIENTRYP GPDEPTHRANGEINDEXED)(GLuint index, GLdouble n, GLdouble f);
+// typedef void (APIENTRYP GPDEPTHRANGEINDEXEDDNV)(GLuint index, GLdouble n, GLdouble f);
+// typedef void (APIENTRYP GPDEPTHRANGEDNV)(GLdouble zNear, GLdouble zFar);
+// typedef void (APIENTRYP GPDEPTHRANGEF)(GLfloat n, GLfloat f);
+// typedef void (APIENTRYP GPDETACHSHADER)(GLuint program, GLuint shader);
+// typedef void (APIENTRYP GPDISABLE)(GLenum cap);
+// typedef void (APIENTRYP GPDISABLECLIENTSTATEINDEXEDEXT)(GLenum array, GLuint index);
+// typedef void (APIENTRYP GPDISABLECLIENTSTATEIEXT)(GLenum array, GLuint index);
+// typedef void (APIENTRYP GPDISABLEINDEXEDEXT)(GLenum target, GLuint index);
+// typedef void (APIENTRYP GPDISABLEVERTEXARRAYATTRIB)(GLuint vaobj, GLuint index);
+// typedef void (APIENTRYP GPDISABLEVERTEXARRAYATTRIBEXT)(GLuint vaobj, GLuint index);
+// typedef void (APIENTRYP GPDISABLEVERTEXARRAYEXT)(GLuint vaobj, GLenum array);
+// typedef void (APIENTRYP GPDISABLEVERTEXATTRIBARRAY)(GLuint index);
+// typedef void (APIENTRYP GPDISABLEI)(GLenum target, GLuint index);
+// typedef void (APIENTRYP GPDISPATCHCOMPUTE)(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
+// typedef void (APIENTRYP GPDISPATCHCOMPUTEGROUPSIZEARB)(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z);
+// typedef void (APIENTRYP GPDISPATCHCOMPUTEINDIRECT)(GLintptr indirect);
+// typedef void (APIENTRYP GPDRAWARRAYS)(GLenum mode, GLint first, GLsizei count);
+// typedef void (APIENTRYP GPDRAWARRAYSINDIRECT)(GLenum mode, const void * indirect);
+// typedef void (APIENTRYP GPDRAWARRAYSINSTANCED)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
+// typedef void (APIENTRYP GPDRAWARRAYSINSTANCEDARB)(GLenum mode, GLint first, GLsizei count, GLsizei primcount);
+// typedef void (APIENTRYP GPDRAWARRAYSINSTANCEDBASEINSTANCE)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
+// typedef void (APIENTRYP GPDRAWARRAYSINSTANCEDEXT)(GLenum mode, GLint start, GLsizei count, GLsizei primcount);
+// typedef void (APIENTRYP GPDRAWBUFFER)(GLenum buf);
+// typedef void (APIENTRYP GPDRAWBUFFERS)(GLsizei n, const GLenum * bufs);
+// typedef void (APIENTRYP GPDRAWCOMMANDSADDRESSNV)(GLenum primitiveMode, const GLuint64 * indirects, const GLsizei * sizes, GLuint count);
+// typedef void (APIENTRYP GPDRAWCOMMANDSNV)(GLenum primitiveMode, GLuint buffer, const GLintptr * indirects, const GLsizei * sizes, GLuint count);
+// typedef void (APIENTRYP GPDRAWCOMMANDSSTATESADDRESSNV)(const GLuint64 * indirects, const GLsizei * sizes, const GLuint * states, const GLuint * fbos, GLuint count);
+// typedef void (APIENTRYP GPDRAWCOMMANDSSTATESNV)(GLuint buffer, const GLintptr * indirects, const GLsizei * sizes, const GLuint * states, const GLuint * fbos, GLuint count);
+// typedef void (APIENTRYP GPDRAWELEMENTS)(GLenum mode, GLsizei count, GLenum type, const void * indices);
+// typedef void (APIENTRYP GPDRAWELEMENTSBASEVERTEX)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLint basevertex);
+// typedef void (APIENTRYP GPDRAWELEMENTSINDIRECT)(GLenum mode, GLenum type, const void * indirect);
+// typedef void (APIENTRYP GPDRAWELEMENTSINSTANCED)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount);
+// typedef void (APIENTRYP GPDRAWELEMENTSINSTANCEDARB)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei primcount);
+// typedef void (APIENTRYP GPDRAWELEMENTSINSTANCEDBASEINSTANCE)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLuint baseinstance);
+// typedef void (APIENTRYP GPDRAWELEMENTSINSTANCEDBASEVERTEX)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex);
+// typedef void (APIENTRYP GPDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCE)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
+// typedef void (APIENTRYP GPDRAWELEMENTSINSTANCEDEXT)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei primcount);
+// typedef void (APIENTRYP GPDRAWMESHTASKSINDIRECTNV)(GLintptr indirect);
+// typedef void (APIENTRYP GPDRAWMESHTASKSNV)(GLuint first, GLuint count);
+// typedef void (APIENTRYP GPDRAWRANGEELEMENTS)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices);
+// typedef void (APIENTRYP GPDRAWRANGEELEMENTSBASEVERTEX)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices, GLint basevertex);
+// typedef void (APIENTRYP GPDRAWTRANSFORMFEEDBACK)(GLenum mode, GLuint id);
+// typedef void (APIENTRYP GPDRAWTRANSFORMFEEDBACKINSTANCED)(GLenum mode, GLuint id, GLsizei instancecount);
+// typedef void (APIENTRYP GPDRAWTRANSFORMFEEDBACKSTREAM)(GLenum mode, GLuint id, GLuint stream);
+// typedef void (APIENTRYP GPDRAWTRANSFORMFEEDBACKSTREAMINSTANCED)(GLenum mode, GLuint id, GLuint stream, GLsizei instancecount);
+// typedef void (APIENTRYP GPDRAWVKIMAGENV)(GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1);
+// typedef void (APIENTRYP GPEGLIMAGETARGETTEXSTORAGEEXT)(GLenum target, GLeglImageOES image, const GLint* attrib_list);
+// typedef void (APIENTRYP GPEGLIMAGETARGETTEXTURESTORAGEEXT)(GLuint texture, GLeglImageOES image, const GLint* attrib_list);
+// typedef void (APIENTRYP GPEDGEFLAGFORMATNV)(GLsizei stride);
+// typedef void (APIENTRYP GPENABLE)(GLenum cap);
+// typedef void (APIENTRYP GPENABLECLIENTSTATEINDEXEDEXT)(GLenum array, GLuint index);
+// typedef void (APIENTRYP GPENABLECLIENTSTATEIEXT)(GLenum array, GLuint index);
+// typedef void (APIENTRYP GPENABLEINDEXEDEXT)(GLenum target, GLuint index);
+// typedef void (APIENTRYP GPENABLEVERTEXARRAYATTRIB)(GLuint vaobj, GLuint index);
+// typedef void (APIENTRYP GPENABLEVERTEXARRAYATTRIBEXT)(GLuint vaobj, GLuint index);
+// typedef void (APIENTRYP GPENABLEVERTEXARRAYEXT)(GLuint vaobj, GLenum array);
+// typedef void (APIENTRYP GPENABLEVERTEXATTRIBARRAY)(GLuint index);
+// typedef void (APIENTRYP GPENABLEI)(GLenum target, GLuint index);
+// typedef void (APIENTRYP GPENDCONDITIONALRENDER)();
+// typedef void (APIENTRYP GPENDCONDITIONALRENDERNV)();
+// typedef void (APIENTRYP GPENDPERFMONITORAMD)(GLuint monitor);
+// typedef void (APIENTRYP GPENDPERFQUERYINTEL)(GLuint queryHandle);
+// typedef void (APIENTRYP GPENDQUERY)(GLenum target);
+// typedef void (APIENTRYP GPENDQUERYINDEXED)(GLenum target, GLuint index);
+// typedef void (APIENTRYP GPENDTRANSFORMFEEDBACK)();
+// typedef void (APIENTRYP GPEVALUATEDEPTHVALUESARB)();
+// typedef GLsync (APIENTRYP GPFENCESYNC)(GLenum condition, GLbitfield flags);
+// typedef void (APIENTRYP GPFINISH)();
+// typedef void (APIENTRYP GPFLUSH)();
+// typedef void (APIENTRYP GPFLUSHMAPPEDBUFFERRANGE)(GLenum target, GLintptr offset, GLsizeiptr length);
+// typedef void (APIENTRYP GPFLUSHMAPPEDNAMEDBUFFERRANGE)(GLuint buffer, GLintptr offset, GLsizeiptr length);
+// typedef void (APIENTRYP GPFLUSHMAPPEDNAMEDBUFFERRANGEEXT)(GLuint buffer, GLintptr offset, GLsizeiptr length);
+// typedef void (APIENTRYP GPFOGCOORDFORMATNV)(GLenum type, GLsizei stride);
+// typedef void (APIENTRYP GPFRAGMENTCOVERAGECOLORNV)(GLuint color);
+// typedef void (APIENTRYP GPFRAMEBUFFERDRAWBUFFEREXT)(GLuint framebuffer, GLenum mode);
+// typedef void (APIENTRYP GPFRAMEBUFFERDRAWBUFFERSEXT)(GLuint framebuffer, GLsizei n, const GLenum * bufs);
+// typedef void (APIENTRYP GPFRAMEBUFFERFETCHBARRIEREXT)();
+// typedef void (APIENTRYP GPFRAMEBUFFERPARAMETERI)(GLenum target, GLenum pname, GLint param);
+// typedef void (APIENTRYP GPFRAMEBUFFERPARAMETERIMESA)(GLenum target, GLenum pname, GLint param);
+// typedef void (APIENTRYP GPFRAMEBUFFERREADBUFFEREXT)(GLuint framebuffer, GLenum mode);
+// typedef void (APIENTRYP GPFRAMEBUFFERRENDERBUFFER)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+// typedef void (APIENTRYP GPFRAMEBUFFERSAMPLELOCATIONSFVARB)(GLenum target, GLuint start, GLsizei count, const GLfloat * v);
+// typedef void (APIENTRYP GPFRAMEBUFFERSAMPLELOCATIONSFVNV)(GLenum target, GLuint start, GLsizei count, const GLfloat * v);
+// typedef void (APIENTRYP GPFRAMEBUFFERTEXTURE)(GLenum target, GLenum attachment, GLuint texture, GLint level);
+// typedef void (APIENTRYP GPFRAMEBUFFERTEXTURE1D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+// typedef void (APIENTRYP GPFRAMEBUFFERTEXTURE2D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+// typedef void (APIENTRYP GPFRAMEBUFFERTEXTURE3D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+// typedef void (APIENTRYP GPFRAMEBUFFERTEXTUREARB)(GLenum target, GLenum attachment, GLuint texture, GLint level);
+// typedef void (APIENTRYP GPFRAMEBUFFERTEXTUREFACEARB)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
+// typedef void (APIENTRYP GPFRAMEBUFFERTEXTURELAYER)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+// typedef void (APIENTRYP GPFRAMEBUFFERTEXTURELAYERARB)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+// typedef void (APIENTRYP GPFRAMEBUFFERTEXTUREMULTIVIEWOVR)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews);
+// typedef void (APIENTRYP GPFRONTFACE)(GLenum mode);
+// typedef void (APIENTRYP GPGENBUFFERS)(GLsizei n, GLuint * buffers);
+// typedef void (APIENTRYP GPGENFRAMEBUFFERS)(GLsizei n, GLuint * framebuffers);
+// typedef GLuint (APIENTRYP GPGENPATHSNV)(GLsizei range);
+// typedef void (APIENTRYP GPGENPERFMONITORSAMD)(GLsizei n, GLuint * monitors);
+// typedef void (APIENTRYP GPGENPROGRAMPIPELINES)(GLsizei n, GLuint * pipelines);
+// typedef void (APIENTRYP GPGENPROGRAMPIPELINESEXT)(GLsizei n, GLuint * pipelines);
+// typedef void (APIENTRYP GPGENQUERIES)(GLsizei n, GLuint * ids);
+// typedef void (APIENTRYP GPGENRENDERBUFFERS)(GLsizei n, GLuint * renderbuffers);
+// typedef void (APIENTRYP GPGENSAMPLERS)(GLsizei count, GLuint * samplers);
+// typedef void (APIENTRYP GPGENTEXTURES)(GLsizei n, GLuint * textures);
+// typedef void (APIENTRYP GPGENTRANSFORMFEEDBACKS)(GLsizei n, GLuint * ids);
+// typedef void (APIENTRYP GPGENVERTEXARRAYS)(GLsizei n, GLuint * arrays);
+// typedef void (APIENTRYP GPGENERATEMIPMAP)(GLenum target);
+// typedef void (APIENTRYP GPGENERATEMULTITEXMIPMAPEXT)(GLenum texunit, GLenum target);
+// typedef void (APIENTRYP GPGENERATETEXTUREMIPMAP)(GLuint texture);
+// typedef void (APIENTRYP GPGENERATETEXTUREMIPMAPEXT)(GLuint texture, GLenum target);
+// typedef void (APIENTRYP GPGETACTIVEATOMICCOUNTERBUFFERIV)(GLuint program, GLuint bufferIndex, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETACTIVEATTRIB)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name);
+// typedef void (APIENTRYP GPGETACTIVESUBROUTINENAME)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name);
+// typedef void (APIENTRYP GPGETACTIVESUBROUTINEUNIFORMNAME)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name);
+// typedef void (APIENTRYP GPGETACTIVESUBROUTINEUNIFORMIV)(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint * values);
+// typedef void (APIENTRYP GPGETACTIVEUNIFORM)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name);
+// typedef void (APIENTRYP GPGETACTIVEUNIFORMBLOCKNAME)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformBlockName);
+// typedef void (APIENTRYP GPGETACTIVEUNIFORMBLOCKIV)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETACTIVEUNIFORMNAME)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformName);
+// typedef void (APIENTRYP GPGETACTIVEUNIFORMSIV)(GLuint program, GLsizei uniformCount, const GLuint * uniformIndices, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETATTACHEDSHADERS)(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * shaders);
+// typedef GLint (APIENTRYP GPGETATTRIBLOCATION)(GLuint program, const GLchar * name);
+// typedef void (APIENTRYP GPGETBOOLEANINDEXEDVEXT)(GLenum target, GLuint index, GLboolean * data);
+// typedef void (APIENTRYP GPGETBOOLEANI_V)(GLenum target, GLuint index, GLboolean * data);
+// typedef void (APIENTRYP GPGETBOOLEANV)(GLenum pname, GLboolean * data);
+// typedef void (APIENTRYP GPGETBUFFERPARAMETERI64V)(GLenum target, GLenum pname, GLint64 * params);
+// typedef void (APIENTRYP GPGETBUFFERPARAMETERIV)(GLenum target, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETBUFFERPARAMETERUI64VNV)(GLenum target, GLenum pname, GLuint64EXT * params);
+// typedef void (APIENTRYP GPGETBUFFERPOINTERV)(GLenum target, GLenum pname, void ** params);
+// typedef void (APIENTRYP GPGETBUFFERSUBDATA)(GLenum target, GLintptr offset, GLsizeiptr size, void * data);
+// typedef GLuint (APIENTRYP GPGETCOMMANDHEADERNV)(GLenum tokenID, GLuint size);
+// typedef void (APIENTRYP GPGETCOMPRESSEDMULTITEXIMAGEEXT)(GLenum texunit, GLenum target, GLint lod, void * img);
+// typedef void (APIENTRYP GPGETCOMPRESSEDTEXIMAGE)(GLenum target, GLint level, void * img);
+// typedef void (APIENTRYP GPGETCOMPRESSEDTEXTUREIMAGE)(GLuint texture, GLint level, GLsizei bufSize, void * pixels);
+// typedef void (APIENTRYP GPGETCOMPRESSEDTEXTUREIMAGEEXT)(GLuint texture, GLenum target, GLint lod, void * img);
+// typedef void (APIENTRYP GPGETCOMPRESSEDTEXTURESUBIMAGE)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void * pixels);
+// typedef void (APIENTRYP GPGETCOVERAGEMODULATIONTABLENV)(GLsizei bufSize, GLfloat * v);
+// typedef GLuint (APIENTRYP GPGETDEBUGMESSAGELOG)(GLuint count, GLsizei bufSize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog);
+// typedef GLuint (APIENTRYP GPGETDEBUGMESSAGELOGARB)(GLuint count, GLsizei bufSize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog);
+// typedef GLuint (APIENTRYP GPGETDEBUGMESSAGELOGKHR)(GLuint count, GLsizei bufSize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog);
+// typedef void (APIENTRYP GPGETDOUBLEINDEXEDVEXT)(GLenum target, GLuint index, GLdouble * data);
+// typedef void (APIENTRYP GPGETDOUBLEI_V)(GLenum target, GLuint index, GLdouble * data);
+// typedef void (APIENTRYP GPGETDOUBLEI_VEXT)(GLenum pname, GLuint index, GLdouble * params);
+// typedef void (APIENTRYP GPGETDOUBLEV)(GLenum pname, GLdouble * data);
+// typedef GLenum (APIENTRYP GPGETERROR)();
+// typedef void (APIENTRYP GPGETFIRSTPERFQUERYIDINTEL)(GLuint * queryId);
+// typedef void (APIENTRYP GPGETFLOATINDEXEDVEXT)(GLenum target, GLuint index, GLfloat * data);
+// typedef void (APIENTRYP GPGETFLOATI_V)(GLenum target, GLuint index, GLfloat * data);
+// typedef void (APIENTRYP GPGETFLOATI_VEXT)(GLenum pname, GLuint index, GLfloat * params);
+// typedef void (APIENTRYP GPGETFLOATV)(GLenum pname, GLfloat * data);
+// typedef GLint (APIENTRYP GPGETFRAGDATAINDEX)(GLuint program, const GLchar * name);
+// typedef GLint (APIENTRYP GPGETFRAGDATALOCATION)(GLuint program, const GLchar * name);
+// typedef void (APIENTRYP GPGETFRAMEBUFFERATTACHMENTPARAMETERIV)(GLenum target, GLenum attachment, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETFRAMEBUFFERPARAMETERIV)(GLenum target, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETFRAMEBUFFERPARAMETERIVEXT)(GLuint framebuffer, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETFRAMEBUFFERPARAMETERIVMESA)(GLenum target, GLenum pname, GLint * params);
+// typedef GLenum (APIENTRYP GPGETGRAPHICSRESETSTATUS)();
+// typedef GLenum (APIENTRYP GPGETGRAPHICSRESETSTATUSARB)();
+// typedef GLenum (APIENTRYP GPGETGRAPHICSRESETSTATUSKHR)();
+// typedef GLuint64 (APIENTRYP GPGETIMAGEHANDLEARB)(GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format);
+// typedef GLuint64 (APIENTRYP GPGETIMAGEHANDLENV)(GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format);
+// typedef void (APIENTRYP GPGETINTEGER64I_V)(GLenum target, GLuint index, GLint64 * data);
+// typedef void (APIENTRYP GPGETINTEGER64V)(GLenum pname, GLint64 * data);
+// typedef void (APIENTRYP GPGETINTEGERINDEXEDVEXT)(GLenum target, GLuint index, GLint * data);
+// typedef void (APIENTRYP GPGETINTEGERI_V)(GLenum target, GLuint index, GLint * data);
+// typedef void (APIENTRYP GPGETINTEGERUI64I_VNV)(GLenum value, GLuint index, GLuint64EXT * result);
+// typedef void (APIENTRYP GPGETINTEGERUI64VNV)(GLenum value, GLuint64EXT * result);
+// typedef void (APIENTRYP GPGETINTEGERV)(GLenum pname, GLint * data);
+// typedef void (APIENTRYP GPGETINTERNALFORMATSAMPLEIVNV)(GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint * params);
+// typedef void (APIENTRYP GPGETINTERNALFORMATI64V)(GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint64 * params);
+// typedef void (APIENTRYP GPGETINTERNALFORMATIV)(GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint * params);
+// typedef void (APIENTRYP GPGETMEMORYOBJECTDETACHEDRESOURCESUIVNV)(GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint * params);
+// typedef void (APIENTRYP GPGETMULTITEXENVFVEXT)(GLenum texunit, GLenum target, GLenum pname, GLfloat * params);
+// typedef void (APIENTRYP GPGETMULTITEXENVIVEXT)(GLenum texunit, GLenum target, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETMULTITEXGENDVEXT)(GLenum texunit, GLenum coord, GLenum pname, GLdouble * params);
+// typedef void (APIENTRYP GPGETMULTITEXGENFVEXT)(GLenum texunit, GLenum coord, GLenum pname, GLfloat * params);
+// typedef void (APIENTRYP GPGETMULTITEXGENIVEXT)(GLenum texunit, GLenum coord, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETMULTITEXIMAGEEXT)(GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void * pixels);
+// typedef void (APIENTRYP GPGETMULTITEXLEVELPARAMETERFVEXT)(GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat * params);
+// typedef void (APIENTRYP GPGETMULTITEXLEVELPARAMETERIVEXT)(GLenum texunit, GLenum target, GLint level, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETMULTITEXPARAMETERIIVEXT)(GLenum texunit, GLenum target, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETMULTITEXPARAMETERIUIVEXT)(GLenum texunit, GLenum target, GLenum pname, GLuint * params);
+// typedef void (APIENTRYP GPGETMULTITEXPARAMETERFVEXT)(GLenum texunit, GLenum target, GLenum pname, GLfloat * params);
+// typedef void (APIENTRYP GPGETMULTITEXPARAMETERIVEXT)(GLenum texunit, GLenum target, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETMULTISAMPLEFV)(GLenum pname, GLuint index, GLfloat * val);
+// typedef void (APIENTRYP GPGETNAMEDBUFFERPARAMETERI64V)(GLuint buffer, GLenum pname, GLint64 * params);
+// typedef void (APIENTRYP GPGETNAMEDBUFFERPARAMETERIV)(GLuint buffer, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETNAMEDBUFFERPARAMETERIVEXT)(GLuint buffer, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETNAMEDBUFFERPARAMETERUI64VNV)(GLuint buffer, GLenum pname, GLuint64EXT * params);
+// typedef void (APIENTRYP GPGETNAMEDBUFFERPOINTERV)(GLuint buffer, GLenum pname, void ** params);
+// typedef void (APIENTRYP GPGETNAMEDBUFFERPOINTERVEXT)(GLuint buffer, GLenum pname, void ** params);
+// typedef void (APIENTRYP GPGETNAMEDBUFFERSUBDATA)(GLuint buffer, GLintptr offset, GLsizeiptr size, void * data);
+// typedef void (APIENTRYP GPGETNAMEDBUFFERSUBDATAEXT)(GLuint buffer, GLintptr offset, GLsizeiptr size, void * data);
+// typedef void (APIENTRYP GPGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIV)(GLuint framebuffer, GLenum attachment, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXT)(GLuint framebuffer, GLenum attachment, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETNAMEDFRAMEBUFFERPARAMETERIV)(GLuint framebuffer, GLenum pname, GLint * param);
+// typedef void (APIENTRYP GPGETNAMEDFRAMEBUFFERPARAMETERIVEXT)(GLuint framebuffer, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETNAMEDPROGRAMLOCALPARAMETERIIVEXT)(GLuint program, GLenum target, GLuint index, GLint * params);
+// typedef void (APIENTRYP GPGETNAMEDPROGRAMLOCALPARAMETERIUIVEXT)(GLuint program, GLenum target, GLuint index, GLuint * params);
+// typedef void (APIENTRYP GPGETNAMEDPROGRAMLOCALPARAMETERDVEXT)(GLuint program, GLenum target, GLuint index, GLdouble * params);
+// typedef void (APIENTRYP GPGETNAMEDPROGRAMLOCALPARAMETERFVEXT)(GLuint program, GLenum target, GLuint index, GLfloat * params);
+// typedef void (APIENTRYP GPGETNAMEDPROGRAMSTRINGEXT)(GLuint program, GLenum target, GLenum pname, void * string);
+// typedef void (APIENTRYP GPGETNAMEDPROGRAMIVEXT)(GLuint program, GLenum target, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETNAMEDRENDERBUFFERPARAMETERIV)(GLuint renderbuffer, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETNAMEDRENDERBUFFERPARAMETERIVEXT)(GLuint renderbuffer, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETNAMEDSTRINGARB)(GLint namelen, const GLchar * name, GLsizei bufSize, GLint * stringlen, GLchar * string);
+// typedef void (APIENTRYP GPGETNAMEDSTRINGIVARB)(GLint namelen, const GLchar * name, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETNEXTPERFQUERYIDINTEL)(GLuint queryId, GLuint * nextQueryId);
+// typedef void (APIENTRYP GPGETOBJECTLABEL)(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei * length, GLchar * label);
+// typedef void (APIENTRYP GPGETOBJECTLABELEXT)(GLenum type, GLuint object, GLsizei bufSize, GLsizei * length, GLchar * label);
+// typedef void (APIENTRYP GPGETOBJECTLABELKHR)(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei * length, GLchar * label);
+// typedef void (APIENTRYP GPGETOBJECTPTRLABEL)(const void * ptr, GLsizei bufSize, GLsizei * length, GLchar * label);
+// typedef void (APIENTRYP GPGETOBJECTPTRLABELKHR)(const void * ptr, GLsizei bufSize, GLsizei * length, GLchar * label);
+// typedef void (APIENTRYP GPGETPATHCOMMANDSNV)(GLuint path, GLubyte * commands);
+// typedef void (APIENTRYP GPGETPATHCOORDSNV)(GLuint path, GLfloat * coords);
+// typedef void (APIENTRYP GPGETPATHDASHARRAYNV)(GLuint path, GLfloat * dashArray);
+// typedef GLfloat (APIENTRYP GPGETPATHLENGTHNV)(GLuint path, GLsizei startSegment, GLsizei numSegments);
+// typedef void (APIENTRYP GPGETPATHMETRICRANGENV)(GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat * metrics);
+// typedef void (APIENTRYP GPGETPATHMETRICSNV)(GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLsizei stride, GLfloat * metrics);
+// typedef void (APIENTRYP GPGETPATHPARAMETERFVNV)(GLuint path, GLenum pname, GLfloat * value);
+// typedef void (APIENTRYP GPGETPATHPARAMETERIVNV)(GLuint path, GLenum pname, GLint * value);
+// typedef void (APIENTRYP GPGETPATHSPACINGNV)(GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat * returnedSpacing);
+// typedef void (APIENTRYP GPGETPERFCOUNTERINFOINTEL)(GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar * counterName, GLuint counterDescLength, GLchar * counterDesc, GLuint * counterOffset, GLuint * counterDataSize, GLuint * counterTypeEnum, GLuint * counterDataTypeEnum, GLuint64 * rawCounterMaxValue);
+// typedef void (APIENTRYP GPGETPERFMONITORCOUNTERDATAAMD)(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint * data, GLint * bytesWritten);
+// typedef void (APIENTRYP GPGETPERFMONITORCOUNTERINFOAMD)(GLuint group, GLuint counter, GLenum pname, void * data);
+// typedef void (APIENTRYP GPGETPERFMONITORCOUNTERSTRINGAMD)(GLuint group, GLuint counter, GLsizei bufSize, GLsizei * length, GLchar * counterString);
+// typedef void (APIENTRYP GPGETPERFMONITORCOUNTERSAMD)(GLuint group, GLint * numCounters, GLint * maxActiveCounters, GLsizei counterSize, GLuint * counters);
+// typedef void (APIENTRYP GPGETPERFMONITORGROUPSTRINGAMD)(GLuint group, GLsizei bufSize, GLsizei * length, GLchar * groupString);
+// typedef void (APIENTRYP GPGETPERFMONITORGROUPSAMD)(GLint * numGroups, GLsizei groupsSize, GLuint * groups);
+// typedef void (APIENTRYP GPGETPERFQUERYDATAINTEL)(GLuint queryHandle, GLuint flags, GLsizei dataSize, void * data, GLuint * bytesWritten);
+// typedef void (APIENTRYP GPGETPERFQUERYIDBYNAMEINTEL)(GLchar * queryName, GLuint * queryId);
+// typedef void (APIENTRYP GPGETPERFQUERYINFOINTEL)(GLuint queryId, GLuint queryNameLength, GLchar * queryName, GLuint * dataSize, GLuint * noCounters, GLuint * noInstances, GLuint * capsMask);
+// typedef void (APIENTRYP GPGETPOINTERINDEXEDVEXT)(GLenum target, GLuint index, void ** data);
+// typedef void (APIENTRYP GPGETPOINTERI_VEXT)(GLenum pname, GLuint index, void ** params);
+// typedef void (APIENTRYP GPGETPOINTERV)(GLenum pname, void ** params);
+// typedef void (APIENTRYP GPGETPOINTERVKHR)(GLenum pname, void ** params);
+// typedef void (APIENTRYP GPGETPROGRAMBINARY)(GLuint program, GLsizei bufSize, GLsizei * length, GLenum * binaryFormat, void * binary);
+// typedef void (APIENTRYP GPGETPROGRAMINFOLOG)(GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
+// typedef void (APIENTRYP GPGETPROGRAMINTERFACEIV)(GLuint program, GLenum programInterface, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETPROGRAMPIPELINEINFOLOG)(GLuint pipeline, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
+// typedef void (APIENTRYP GPGETPROGRAMPIPELINEINFOLOGEXT)(GLuint pipeline, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
+// typedef void (APIENTRYP GPGETPROGRAMPIPELINEIV)(GLuint pipeline, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETPROGRAMPIPELINEIVEXT)(GLuint pipeline, GLenum pname, GLint * params);
+// typedef GLuint (APIENTRYP GPGETPROGRAMRESOURCEINDEX)(GLuint program, GLenum programInterface, const GLchar * name);
+// typedef GLint (APIENTRYP GPGETPROGRAMRESOURCELOCATION)(GLuint program, GLenum programInterface, const GLchar * name);
+// typedef GLint (APIENTRYP GPGETPROGRAMRESOURCELOCATIONINDEX)(GLuint program, GLenum programInterface, const GLchar * name);
+// typedef void (APIENTRYP GPGETPROGRAMRESOURCENAME)(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name);
+// typedef void (APIENTRYP GPGETPROGRAMRESOURCEFVNV)(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum * props, GLsizei count, GLsizei * length, GLfloat * params);
+// typedef void (APIENTRYP GPGETPROGRAMRESOURCEIV)(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum * props, GLsizei count, GLsizei * length, GLint * params);
+// typedef void (APIENTRYP GPGETPROGRAMSTAGEIV)(GLuint program, GLenum shadertype, GLenum pname, GLint * values);
+// typedef void (APIENTRYP GPGETPROGRAMIV)(GLuint program, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETQUERYBUFFEROBJECTI64V)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
+// typedef void (APIENTRYP GPGETQUERYBUFFEROBJECTIV)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
+// typedef void (APIENTRYP GPGETQUERYBUFFEROBJECTUI64V)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
+// typedef void (APIENTRYP GPGETQUERYBUFFEROBJECTUIV)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
+// typedef void (APIENTRYP GPGETQUERYINDEXEDIV)(GLenum target, GLuint index, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETQUERYOBJECTI64V)(GLuint id, GLenum pname, GLint64 * params);
+// typedef void (APIENTRYP GPGETQUERYOBJECTIV)(GLuint id, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETQUERYOBJECTUI64V)(GLuint id, GLenum pname, GLuint64 * params);
+// typedef void (APIENTRYP GPGETQUERYOBJECTUIV)(GLuint id, GLenum pname, GLuint * params);
+// typedef void (APIENTRYP GPGETQUERYIV)(GLenum target, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETRENDERBUFFERPARAMETERIV)(GLenum target, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETSAMPLERPARAMETERIIV)(GLuint sampler, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETSAMPLERPARAMETERIUIV)(GLuint sampler, GLenum pname, GLuint * params);
+// typedef void (APIENTRYP GPGETSAMPLERPARAMETERFV)(GLuint sampler, GLenum pname, GLfloat * params);
+// typedef void (APIENTRYP GPGETSAMPLERPARAMETERIV)(GLuint sampler, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETSHADERINFOLOG)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
+// typedef void (APIENTRYP GPGETSHADERPRECISIONFORMAT)(GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision);
+// typedef void (APIENTRYP GPGETSHADERSOURCE)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source);
+// typedef void (APIENTRYP GPGETSHADERIV)(GLuint shader, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETSHADINGRATEIMAGEPALETTENV)(GLuint viewport, GLuint entry, GLenum * rate);
+// typedef void (APIENTRYP GPGETSHADINGRATESAMPLELOCATIONIVNV)(GLenum rate, GLuint samples, GLuint index, GLint * location);
+// typedef GLushort (APIENTRYP GPGETSTAGEINDEXNV)(GLenum shadertype);
+// typedef const GLubyte * (APIENTRYP GPGETSTRING)(GLenum name);
+// typedef const GLubyte * (APIENTRYP GPGETSTRINGI)(GLenum name, GLuint index);
+// typedef GLuint (APIENTRYP GPGETSUBROUTINEINDEX)(GLuint program, GLenum shadertype, const GLchar * name);
+// typedef GLint (APIENTRYP GPGETSUBROUTINEUNIFORMLOCATION)(GLuint program, GLenum shadertype, const GLchar * name);
+// typedef void (APIENTRYP GPGETSYNCIV)(GLsync sync, GLenum pname, GLsizei count, GLsizei * length, GLint * values);
+// typedef void (APIENTRYP GPGETTEXIMAGE)(GLenum target, GLint level, GLenum format, GLenum type, void * pixels);
+// typedef void (APIENTRYP GPGETTEXLEVELPARAMETERFV)(GLenum target, GLint level, GLenum pname, GLfloat * params);
+// typedef void (APIENTRYP GPGETTEXLEVELPARAMETERIV)(GLenum target, GLint level, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETTEXPARAMETERIIV)(GLenum target, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETTEXPARAMETERIUIV)(GLenum target, GLenum pname, GLuint * params);
+// typedef void (APIENTRYP GPGETTEXPARAMETERFV)(GLenum target, GLenum pname, GLfloat * params);
+// typedef void (APIENTRYP GPGETTEXPARAMETERIV)(GLenum target, GLenum pname, GLint * params);
+// typedef GLuint64 (APIENTRYP GPGETTEXTUREHANDLEARB)(GLuint texture);
+// typedef GLuint64 (APIENTRYP GPGETTEXTUREHANDLENV)(GLuint texture);
+// typedef void (APIENTRYP GPGETTEXTUREIMAGE)(GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void * pixels);
+// typedef void (APIENTRYP GPGETTEXTUREIMAGEEXT)(GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void * pixels);
+// typedef void (APIENTRYP GPGETTEXTURELEVELPARAMETERFV)(GLuint texture, GLint level, GLenum pname, GLfloat * params);
+// typedef void (APIENTRYP GPGETTEXTURELEVELPARAMETERFVEXT)(GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat * params);
+// typedef void (APIENTRYP GPGETTEXTURELEVELPARAMETERIV)(GLuint texture, GLint level, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETTEXTURELEVELPARAMETERIVEXT)(GLuint texture, GLenum target, GLint level, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETTEXTUREPARAMETERIIV)(GLuint texture, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETTEXTUREPARAMETERIIVEXT)(GLuint texture, GLenum target, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETTEXTUREPARAMETERIUIV)(GLuint texture, GLenum pname, GLuint * params);
+// typedef void (APIENTRYP GPGETTEXTUREPARAMETERIUIVEXT)(GLuint texture, GLenum target, GLenum pname, GLuint * params);
+// typedef void (APIENTRYP GPGETTEXTUREPARAMETERFV)(GLuint texture, GLenum pname, GLfloat * params);
+// typedef void (APIENTRYP GPGETTEXTUREPARAMETERFVEXT)(GLuint texture, GLenum target, GLenum pname, GLfloat * params);
+// typedef void (APIENTRYP GPGETTEXTUREPARAMETERIV)(GLuint texture, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETTEXTUREPARAMETERIVEXT)(GLuint texture, GLenum target, GLenum pname, GLint * params);
+// typedef GLuint64 (APIENTRYP GPGETTEXTURESAMPLERHANDLEARB)(GLuint texture, GLuint sampler);
+// typedef GLuint64 (APIENTRYP GPGETTEXTURESAMPLERHANDLENV)(GLuint texture, GLuint sampler);
+// typedef void (APIENTRYP GPGETTEXTURESUBIMAGE)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void * pixels);
+// typedef void (APIENTRYP GPGETTRANSFORMFEEDBACKVARYING)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name);
+// typedef void (APIENTRYP GPGETTRANSFORMFEEDBACKI64_V)(GLuint xfb, GLenum pname, GLuint index, GLint64 * param);
+// typedef void (APIENTRYP GPGETTRANSFORMFEEDBACKI_V)(GLuint xfb, GLenum pname, GLuint index, GLint * param);
+// typedef void (APIENTRYP GPGETTRANSFORMFEEDBACKIV)(GLuint xfb, GLenum pname, GLint * param);
+// typedef GLuint (APIENTRYP GPGETUNIFORMBLOCKINDEX)(GLuint program, const GLchar * uniformBlockName);
+// typedef void (APIENTRYP GPGETUNIFORMINDICES)(GLuint program, GLsizei uniformCount, const GLchar *const* uniformNames, GLuint * uniformIndices);
+// typedef GLint (APIENTRYP GPGETUNIFORMLOCATION)(GLuint program, const GLchar * name);
+// typedef void (APIENTRYP GPGETUNIFORMSUBROUTINEUIV)(GLenum shadertype, GLint location, GLuint * params);
+// typedef void (APIENTRYP GPGETUNIFORMDV)(GLuint program, GLint location, GLdouble * params);
+// typedef void (APIENTRYP GPGETUNIFORMFV)(GLuint program, GLint location, GLfloat * params);
+// typedef void (APIENTRYP GPGETUNIFORMI64VARB)(GLuint program, GLint location, GLint64 * params);
+// typedef void (APIENTRYP GPGETUNIFORMI64VNV)(GLuint program, GLint location, GLint64EXT * params);
+// typedef void (APIENTRYP GPGETUNIFORMIV)(GLuint program, GLint location, GLint * params);
+// typedef void (APIENTRYP GPGETUNIFORMUI64VARB)(GLuint program, GLint location, GLuint64 * params);
+// typedef void (APIENTRYP GPGETUNIFORMUI64VNV)(GLuint program, GLint location, GLuint64EXT * params);
+// typedef void (APIENTRYP GPGETUNIFORMUIV)(GLuint program, GLint location, GLuint * params);
+// typedef void (APIENTRYP GPGETVERTEXARRAYINDEXED64IV)(GLuint vaobj, GLuint index, GLenum pname, GLint64 * param);
+// typedef void (APIENTRYP GPGETVERTEXARRAYINDEXEDIV)(GLuint vaobj, GLuint index, GLenum pname, GLint * param);
+// typedef void (APIENTRYP GPGETVERTEXARRAYINTEGERI_VEXT)(GLuint vaobj, GLuint index, GLenum pname, GLint * param);
+// typedef void (APIENTRYP GPGETVERTEXARRAYINTEGERVEXT)(GLuint vaobj, GLenum pname, GLint * param);
+// typedef void (APIENTRYP GPGETVERTEXARRAYPOINTERI_VEXT)(GLuint vaobj, GLuint index, GLenum pname, void ** param);
+// typedef void (APIENTRYP GPGETVERTEXARRAYPOINTERVEXT)(GLuint vaobj, GLenum pname, void ** param);
+// typedef void (APIENTRYP GPGETVERTEXARRAYIV)(GLuint vaobj, GLenum pname, GLint * param);
+// typedef void (APIENTRYP GPGETVERTEXATTRIBIIV)(GLuint index, GLenum pname, GLint * params);
+// typedef void (APIENTRYP GPGETVERTEXATTRIBIUIV)(GLuint index, GLenum pname, GLuint * params);
+// typedef void (APIENTRYP GPGETVERTEXATTRIBLDV)(GLuint index, GLenum pname, GLdouble * params);
+// typedef void (APIENTRYP GPGETVERTEXATTRIBLI64VNV)(GLuint index, GLenum pname, GLint64EXT * params);
+// typedef void (APIENTRYP GPGETVERTEXATTRIBLUI64VARB)(GLuint index, GLenum pname, GLuint64EXT * params);
+// typedef void (APIENTRYP GPGETVERTEXATTRIBLUI64VNV)(GLuint index, GLenum pname, GLuint64EXT * params);
+// typedef void (APIENTRYP GPGETVERTEXATTRIBPOINTERV)(GLuint index, GLenum pname, void ** pointer);
+// typedef void (APIENTRYP GPGETVERTEXATTRIBDV)(GLuint index, GLenum pname, GLdouble * params);
+// typedef void (APIENTRYP GPGETVERTEXATTRIBFV)(GLuint index, GLenum pname, GLfloat * params);
+// typedef void (APIENTRYP GPGETVERTEXATTRIBIV)(GLuint index, GLenum pname, GLint * params);
+// typedef GLVULKANPROCNV (APIENTRYP GPGETVKPROCADDRNV)(const GLchar * name);
+// typedef void (APIENTRYP GPGETNCOMPRESSEDTEXIMAGEARB)(GLenum target, GLint lod, GLsizei bufSize, void * img);
+// typedef void (APIENTRYP GPGETNTEXIMAGEARB)(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void * img);
+// typedef void (APIENTRYP GPGETNUNIFORMDVARB)(GLuint program, GLint location, GLsizei bufSize, GLdouble * params);
+// typedef void (APIENTRYP GPGETNUNIFORMFV)(GLuint program, GLint location, GLsizei bufSize, GLfloat * params);
+// typedef void (APIENTRYP GPGETNUNIFORMFVARB)(GLuint program, GLint location, GLsizei bufSize, GLfloat * params);
+// typedef void (APIENTRYP GPGETNUNIFORMFVKHR)(GLuint program, GLint location, GLsizei bufSize, GLfloat * params);
+// typedef void (APIENTRYP GPGETNUNIFORMI64VARB)(GLuint program, GLint location, GLsizei bufSize, GLint64 * params);
+// typedef void (APIENTRYP GPGETNUNIFORMIV)(GLuint program, GLint location, GLsizei bufSize, GLint * params);
+// typedef void (APIENTRYP GPGETNUNIFORMIVARB)(GLuint program, GLint location, GLsizei bufSize, GLint * params);
+// typedef void (APIENTRYP GPGETNUNIFORMIVKHR)(GLuint program, GLint location, GLsizei bufSize, GLint * params);
+// typedef void (APIENTRYP GPGETNUNIFORMUI64VARB)(GLuint program, GLint location, GLsizei bufSize, GLuint64 * params);
+// typedef void (APIENTRYP GPGETNUNIFORMUIV)(GLuint program, GLint location, GLsizei bufSize, GLuint * params);
+// typedef void (APIENTRYP GPGETNUNIFORMUIVARB)(GLuint program, GLint location, GLsizei bufSize, GLuint * params);
+// typedef void (APIENTRYP GPGETNUNIFORMUIVKHR)(GLuint program, GLint location, GLsizei bufSize, GLuint * params);
+// typedef void (APIENTRYP GPHINT)(GLenum target, GLenum mode);
+// typedef void (APIENTRYP GPINDEXFORMATNV)(GLenum type, GLsizei stride);
+// typedef void (APIENTRYP GPINSERTEVENTMARKEREXT)(GLsizei length, const GLchar * marker);
+// typedef void (APIENTRYP GPINTERPOLATEPATHSNV)(GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight);
+// typedef void (APIENTRYP GPINVALIDATEBUFFERDATA)(GLuint buffer);
+// typedef void (APIENTRYP GPINVALIDATEBUFFERSUBDATA)(GLuint buffer, GLintptr offset, GLsizeiptr length);
+// typedef void (APIENTRYP GPINVALIDATEFRAMEBUFFER)(GLenum target, GLsizei numAttachments, const GLenum * attachments);
+// typedef void (APIENTRYP GPINVALIDATENAMEDFRAMEBUFFERDATA)(GLuint framebuffer, GLsizei numAttachments, const GLenum * attachments);
+// typedef void (APIENTRYP GPINVALIDATENAMEDFRAMEBUFFERSUBDATA)(GLuint framebuffer, GLsizei numAttachments, const GLenum * attachments, GLint x, GLint y, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPINVALIDATESUBFRAMEBUFFER)(GLenum target, GLsizei numAttachments, const GLenum * attachments, GLint x, GLint y, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPINVALIDATETEXIMAGE)(GLuint texture, GLint level);
+// typedef void (APIENTRYP GPINVALIDATETEXSUBIMAGE)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
+// typedef GLboolean (APIENTRYP GPISBUFFER)(GLuint buffer);
+// typedef GLboolean (APIENTRYP GPISBUFFERRESIDENTNV)(GLenum target);
+// typedef GLboolean (APIENTRYP GPISCOMMANDLISTNV)(GLuint list);
+// typedef GLboolean (APIENTRYP GPISENABLED)(GLenum cap);
+// typedef GLboolean (APIENTRYP GPISENABLEDINDEXEDEXT)(GLenum target, GLuint index);
+// typedef GLboolean (APIENTRYP GPISENABLEDI)(GLenum target, GLuint index);
+// typedef GLboolean (APIENTRYP GPISFRAMEBUFFER)(GLuint framebuffer);
+// typedef GLboolean (APIENTRYP GPISIMAGEHANDLERESIDENTARB)(GLuint64 handle);
+// typedef GLboolean (APIENTRYP GPISIMAGEHANDLERESIDENTNV)(GLuint64 handle);
+// typedef GLboolean (APIENTRYP GPISNAMEDBUFFERRESIDENTNV)(GLuint buffer);
+// typedef GLboolean (APIENTRYP GPISNAMEDSTRINGARB)(GLint namelen, const GLchar * name);
+// typedef GLboolean (APIENTRYP GPISPATHNV)(GLuint path);
+// typedef GLboolean (APIENTRYP GPISPOINTINFILLPATHNV)(GLuint path, GLuint mask, GLfloat x, GLfloat y);
+// typedef GLboolean (APIENTRYP GPISPOINTINSTROKEPATHNV)(GLuint path, GLfloat x, GLfloat y);
+// typedef GLboolean (APIENTRYP GPISPROGRAM)(GLuint program);
+// typedef GLboolean (APIENTRYP GPISPROGRAMPIPELINE)(GLuint pipeline);
+// typedef GLboolean (APIENTRYP GPISPROGRAMPIPELINEEXT)(GLuint pipeline);
+// typedef GLboolean (APIENTRYP GPISQUERY)(GLuint id);
+// typedef GLboolean (APIENTRYP GPISRENDERBUFFER)(GLuint renderbuffer);
+// typedef GLboolean (APIENTRYP GPISSAMPLER)(GLuint sampler);
+// typedef GLboolean (APIENTRYP GPISSHADER)(GLuint shader);
+// typedef GLboolean (APIENTRYP GPISSTATENV)(GLuint state);
+// typedef GLboolean (APIENTRYP GPISSYNC)(GLsync sync);
+// typedef GLboolean (APIENTRYP GPISTEXTURE)(GLuint texture);
+// typedef GLboolean (APIENTRYP GPISTEXTUREHANDLERESIDENTARB)(GLuint64 handle);
+// typedef GLboolean (APIENTRYP GPISTEXTUREHANDLERESIDENTNV)(GLuint64 handle);
+// typedef GLboolean (APIENTRYP GPISTRANSFORMFEEDBACK)(GLuint id);
+// typedef GLboolean (APIENTRYP GPISVERTEXARRAY)(GLuint array);
+// typedef void (APIENTRYP GPLABELOBJECTEXT)(GLenum type, GLuint object, GLsizei length, const GLchar * label);
+// typedef void (APIENTRYP GPLINEWIDTH)(GLfloat width);
+// typedef void (APIENTRYP GPLINKPROGRAM)(GLuint program);
+// typedef void (APIENTRYP GPLISTDRAWCOMMANDSSTATESCLIENTNV)(GLuint list, GLuint segment, const void ** indirects, const GLsizei * sizes, const GLuint * states, const GLuint * fbos, GLuint count);
+// typedef void (APIENTRYP GPLOGICOP)(GLenum opcode);
+// typedef void (APIENTRYP GPMAKEBUFFERNONRESIDENTNV)(GLenum target);
+// typedef void (APIENTRYP GPMAKEBUFFERRESIDENTNV)(GLenum target, GLenum access);
+// typedef void (APIENTRYP GPMAKEIMAGEHANDLENONRESIDENTARB)(GLuint64 handle);
+// typedef void (APIENTRYP GPMAKEIMAGEHANDLENONRESIDENTNV)(GLuint64 handle);
+// typedef void (APIENTRYP GPMAKEIMAGEHANDLERESIDENTARB)(GLuint64 handle, GLenum access);
+// typedef void (APIENTRYP GPMAKEIMAGEHANDLERESIDENTNV)(GLuint64 handle, GLenum access);
+// typedef void (APIENTRYP GPMAKENAMEDBUFFERNONRESIDENTNV)(GLuint buffer);
+// typedef void (APIENTRYP GPMAKENAMEDBUFFERRESIDENTNV)(GLuint buffer, GLenum access);
+// typedef void (APIENTRYP GPMAKETEXTUREHANDLENONRESIDENTARB)(GLuint64 handle);
+// typedef void (APIENTRYP GPMAKETEXTUREHANDLENONRESIDENTNV)(GLuint64 handle);
+// typedef void (APIENTRYP GPMAKETEXTUREHANDLERESIDENTARB)(GLuint64 handle);
+// typedef void (APIENTRYP GPMAKETEXTUREHANDLERESIDENTNV)(GLuint64 handle);
+// typedef void * (APIENTRYP GPMAPBUFFER)(GLenum target, GLenum access);
+// typedef void * (APIENTRYP GPMAPBUFFERRANGE)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
+// typedef void * (APIENTRYP GPMAPNAMEDBUFFER)(GLuint buffer, GLenum access);
+// typedef void * (APIENTRYP GPMAPNAMEDBUFFEREXT)(GLuint buffer, GLenum access);
+// typedef void * (APIENTRYP GPMAPNAMEDBUFFERRANGE)(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
+// typedef void * (APIENTRYP GPMAPNAMEDBUFFERRANGEEXT)(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
+// typedef void (APIENTRYP GPMATRIXFRUSTUMEXT)(GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+// typedef void (APIENTRYP GPMATRIXLOAD3X2FNV)(GLenum matrixMode, const GLfloat * m);
+// typedef void (APIENTRYP GPMATRIXLOAD3X3FNV)(GLenum matrixMode, const GLfloat * m);
+// typedef void (APIENTRYP GPMATRIXLOADIDENTITYEXT)(GLenum mode);
+// typedef void (APIENTRYP GPMATRIXLOADTRANSPOSE3X3FNV)(GLenum matrixMode, const GLfloat * m);
+// typedef void (APIENTRYP GPMATRIXLOADTRANSPOSEDEXT)(GLenum mode, const GLdouble * m);
+// typedef void (APIENTRYP GPMATRIXLOADTRANSPOSEFEXT)(GLenum mode, const GLfloat * m);
+// typedef void (APIENTRYP GPMATRIXLOADDEXT)(GLenum mode, const GLdouble * m);
+// typedef void (APIENTRYP GPMATRIXLOADFEXT)(GLenum mode, const GLfloat * m);
+// typedef void (APIENTRYP GPMATRIXMULT3X2FNV)(GLenum matrixMode, const GLfloat * m);
+// typedef void (APIENTRYP GPMATRIXMULT3X3FNV)(GLenum matrixMode, const GLfloat * m);
+// typedef void (APIENTRYP GPMATRIXMULTTRANSPOSE3X3FNV)(GLenum matrixMode, const GLfloat * m);
+// typedef void (APIENTRYP GPMATRIXMULTTRANSPOSEDEXT)(GLenum mode, const GLdouble * m);
+// typedef void (APIENTRYP GPMATRIXMULTTRANSPOSEFEXT)(GLenum mode, const GLfloat * m);
+// typedef void (APIENTRYP GPMATRIXMULTDEXT)(GLenum mode, const GLdouble * m);
+// typedef void (APIENTRYP GPMATRIXMULTFEXT)(GLenum mode, const GLfloat * m);
+// typedef void (APIENTRYP GPMATRIXORTHOEXT)(GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+// typedef void (APIENTRYP GPMATRIXPOPEXT)(GLenum mode);
+// typedef void (APIENTRYP GPMATRIXPUSHEXT)(GLenum mode);
+// typedef void (APIENTRYP GPMATRIXROTATEDEXT)(GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+// typedef void (APIENTRYP GPMATRIXROTATEFEXT)(GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+// typedef void (APIENTRYP GPMATRIXSCALEDEXT)(GLenum mode, GLdouble x, GLdouble y, GLdouble z);
+// typedef void (APIENTRYP GPMATRIXSCALEFEXT)(GLenum mode, GLfloat x, GLfloat y, GLfloat z);
+// typedef void (APIENTRYP GPMATRIXTRANSLATEDEXT)(GLenum mode, GLdouble x, GLdouble y, GLdouble z);
+// typedef void (APIENTRYP GPMATRIXTRANSLATEFEXT)(GLenum mode, GLfloat x, GLfloat y, GLfloat z);
+// typedef void (APIENTRYP GPMAXSHADERCOMPILERTHREADSARB)(GLuint count);
+// typedef void (APIENTRYP GPMAXSHADERCOMPILERTHREADSKHR)(GLuint count);
+// typedef void (APIENTRYP GPMEMORYBARRIER)(GLbitfield barriers);
+// typedef void (APIENTRYP GPMEMORYBARRIERBYREGION)(GLbitfield barriers);
+// typedef void (APIENTRYP GPMINSAMPLESHADINGARB)(GLfloat value);
+// typedef void (APIENTRYP GPMULTIDRAWARRAYS)(GLenum mode, const GLint * first, const GLsizei * count, GLsizei drawcount);
+// typedef void (APIENTRYP GPMULTIDRAWARRAYSINDIRECT)(GLenum mode, const void * indirect, GLsizei drawcount, GLsizei stride);
+// typedef void (APIENTRYP GPMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNV)(GLenum mode, const void * indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount);
+// typedef void (APIENTRYP GPMULTIDRAWARRAYSINDIRECTBINDLESSNV)(GLenum mode, const void * indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount);
+// typedef void (APIENTRYP GPMULTIDRAWARRAYSINDIRECTCOUNTARB)(GLenum mode, const void * indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
+// typedef void (APIENTRYP GPMULTIDRAWELEMENTS)(GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei drawcount);
+// typedef void (APIENTRYP GPMULTIDRAWELEMENTSBASEVERTEX)(GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei drawcount, const GLint * basevertex);
+// typedef void (APIENTRYP GPMULTIDRAWELEMENTSINDIRECT)(GLenum mode, GLenum type, const void * indirect, GLsizei drawcount, GLsizei stride);
+// typedef void (APIENTRYP GPMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNV)(GLenum mode, GLenum type, const void * indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount);
+// typedef void (APIENTRYP GPMULTIDRAWELEMENTSINDIRECTBINDLESSNV)(GLenum mode, GLenum type, const void * indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount);
+// typedef void (APIENTRYP GPMULTIDRAWELEMENTSINDIRECTCOUNTARB)(GLenum mode, GLenum type, const void * indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
+// typedef void (APIENTRYP GPMULTIDRAWMESHTASKSINDIRECTCOUNTNV)(GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
+// typedef void (APIENTRYP GPMULTIDRAWMESHTASKSINDIRECTNV)(GLintptr indirect, GLsizei drawcount, GLsizei stride);
+// typedef void (APIENTRYP GPMULTITEXBUFFEREXT)(GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer);
+// typedef void (APIENTRYP GPMULTITEXCOORDPOINTEREXT)(GLenum texunit, GLint size, GLenum type, GLsizei stride, const void * pointer);
+// typedef void (APIENTRYP GPMULTITEXENVFEXT)(GLenum texunit, GLenum target, GLenum pname, GLfloat param);
+// typedef void (APIENTRYP GPMULTITEXENVFVEXT)(GLenum texunit, GLenum target, GLenum pname, const GLfloat * params);
+// typedef void (APIENTRYP GPMULTITEXENVIEXT)(GLenum texunit, GLenum target, GLenum pname, GLint param);
+// typedef void (APIENTRYP GPMULTITEXENVIVEXT)(GLenum texunit, GLenum target, GLenum pname, const GLint * params);
+// typedef void (APIENTRYP GPMULTITEXGENDEXT)(GLenum texunit, GLenum coord, GLenum pname, GLdouble param);
+// typedef void (APIENTRYP GPMULTITEXGENDVEXT)(GLenum texunit, GLenum coord, GLenum pname, const GLdouble * params);
+// typedef void (APIENTRYP GPMULTITEXGENFEXT)(GLenum texunit, GLenum coord, GLenum pname, GLfloat param);
+// typedef void (APIENTRYP GPMULTITEXGENFVEXT)(GLenum texunit, GLenum coord, GLenum pname, const GLfloat * params);
+// typedef void (APIENTRYP GPMULTITEXGENIEXT)(GLenum texunit, GLenum coord, GLenum pname, GLint param);
+// typedef void (APIENTRYP GPMULTITEXGENIVEXT)(GLenum texunit, GLenum coord, GLenum pname, const GLint * params);
+// typedef void (APIENTRYP GPMULTITEXIMAGE1DEXT)(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void * pixels);
+// typedef void (APIENTRYP GPMULTITEXIMAGE2DEXT)(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels);
+// typedef void (APIENTRYP GPMULTITEXIMAGE3DEXT)(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels);
+// typedef void (APIENTRYP GPMULTITEXPARAMETERIIVEXT)(GLenum texunit, GLenum target, GLenum pname, const GLint * params);
+// typedef void (APIENTRYP GPMULTITEXPARAMETERIUIVEXT)(GLenum texunit, GLenum target, GLenum pname, const GLuint * params);
+// typedef void (APIENTRYP GPMULTITEXPARAMETERFEXT)(GLenum texunit, GLenum target, GLenum pname, GLfloat param);
+// typedef void (APIENTRYP GPMULTITEXPARAMETERFVEXT)(GLenum texunit, GLenum target, GLenum pname, const GLfloat * params);
+// typedef void (APIENTRYP GPMULTITEXPARAMETERIEXT)(GLenum texunit, GLenum target, GLenum pname, GLint param);
+// typedef void (APIENTRYP GPMULTITEXPARAMETERIVEXT)(GLenum texunit, GLenum target, GLenum pname, const GLint * params);
+// typedef void (APIENTRYP GPMULTITEXRENDERBUFFEREXT)(GLenum texunit, GLenum target, GLuint renderbuffer);
+// typedef void (APIENTRYP GPMULTITEXSUBIMAGE1DEXT)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels);
+// typedef void (APIENTRYP GPMULTITEXSUBIMAGE2DEXT)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels);
+// typedef void (APIENTRYP GPMULTITEXSUBIMAGE3DEXT)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels);
+// typedef void (APIENTRYP GPNAMEDBUFFERATTACHMEMORYNV)(GLuint buffer, GLuint memory, GLuint64 offset);
+// typedef void (APIENTRYP GPNAMEDBUFFERDATA)(GLuint buffer, GLsizeiptr size, const void * data, GLenum usage);
+// typedef void (APIENTRYP GPNAMEDBUFFERDATAEXT)(GLuint buffer, GLsizeiptr size, const void * data, GLenum usage);
+// typedef void (APIENTRYP GPNAMEDBUFFERPAGECOMMITMENTARB)(GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit);
+// typedef void (APIENTRYP GPNAMEDBUFFERPAGECOMMITMENTEXT)(GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit);
+// typedef void (APIENTRYP GPNAMEDBUFFERPAGECOMMITMENTMEMNV)(GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit);
+// typedef void (APIENTRYP GPNAMEDBUFFERSTORAGE)(GLuint buffer, GLsizeiptr size, const void * data, GLbitfield flags);
+// typedef void (APIENTRYP GPNAMEDBUFFERSTORAGEEXT)(GLuint buffer, GLsizeiptr size, const void * data, GLbitfield flags);
+// typedef void (APIENTRYP GPNAMEDBUFFERSUBDATA)(GLuint buffer, GLintptr offset, GLsizeiptr size, const void * data);
+// typedef void (APIENTRYP GPNAMEDBUFFERSUBDATAEXT)(GLuint buffer, GLintptr offset, GLsizeiptr size, const void * data);
+// typedef void (APIENTRYP GPNAMEDCOPYBUFFERSUBDATAEXT)(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+// typedef void (APIENTRYP GPNAMEDFRAMEBUFFERDRAWBUFFER)(GLuint framebuffer, GLenum buf);
+// typedef void (APIENTRYP GPNAMEDFRAMEBUFFERDRAWBUFFERS)(GLuint framebuffer, GLsizei n, const GLenum * bufs);
+// typedef void (APIENTRYP GPNAMEDFRAMEBUFFERPARAMETERI)(GLuint framebuffer, GLenum pname, GLint param);
+// typedef void (APIENTRYP GPNAMEDFRAMEBUFFERPARAMETERIEXT)(GLuint framebuffer, GLenum pname, GLint param);
+// typedef void (APIENTRYP GPNAMEDFRAMEBUFFERREADBUFFER)(GLuint framebuffer, GLenum src);
+// typedef void (APIENTRYP GPNAMEDFRAMEBUFFERRENDERBUFFER)(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+// typedef void (APIENTRYP GPNAMEDFRAMEBUFFERRENDERBUFFEREXT)(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+// typedef void (APIENTRYP GPNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARB)(GLuint framebuffer, GLuint start, GLsizei count, const GLfloat * v);
+// typedef void (APIENTRYP GPNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNV)(GLuint framebuffer, GLuint start, GLsizei count, const GLfloat * v);
+// typedef void (APIENTRYP GPNAMEDFRAMEBUFFERTEXTURE)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
+// typedef void (APIENTRYP GPNAMEDFRAMEBUFFERTEXTURE1DEXT)(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+// typedef void (APIENTRYP GPNAMEDFRAMEBUFFERTEXTURE2DEXT)(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+// typedef void (APIENTRYP GPNAMEDFRAMEBUFFERTEXTURE3DEXT)(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+// typedef void (APIENTRYP GPNAMEDFRAMEBUFFERTEXTUREEXT)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
+// typedef void (APIENTRYP GPNAMEDFRAMEBUFFERTEXTUREFACEEXT)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face);
+// typedef void (APIENTRYP GPNAMEDFRAMEBUFFERTEXTURELAYER)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
+// typedef void (APIENTRYP GPNAMEDFRAMEBUFFERTEXTURELAYEREXT)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
+// typedef void (APIENTRYP GPNAMEDFRAMEBUFFERTEXTUREMULTIVIEWOVR)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews);
+// typedef void (APIENTRYP GPNAMEDPROGRAMLOCALPARAMETER4DEXT)(GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+// typedef void (APIENTRYP GPNAMEDPROGRAMLOCALPARAMETER4DVEXT)(GLuint program, GLenum target, GLuint index, const GLdouble * params);
+// typedef void (APIENTRYP GPNAMEDPROGRAMLOCALPARAMETER4FEXT)(GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+// typedef void (APIENTRYP GPNAMEDPROGRAMLOCALPARAMETER4FVEXT)(GLuint program, GLenum target, GLuint index, const GLfloat * params);
+// typedef void (APIENTRYP GPNAMEDPROGRAMLOCALPARAMETERI4IEXT)(GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
+// typedef void (APIENTRYP GPNAMEDPROGRAMLOCALPARAMETERI4IVEXT)(GLuint program, GLenum target, GLuint index, const GLint * params);
+// typedef void (APIENTRYP GPNAMEDPROGRAMLOCALPARAMETERI4UIEXT)(GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+// typedef void (APIENTRYP GPNAMEDPROGRAMLOCALPARAMETERI4UIVEXT)(GLuint program, GLenum target, GLuint index, const GLuint * params);
+// typedef void (APIENTRYP GPNAMEDPROGRAMLOCALPARAMETERS4FVEXT)(GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat * params);
+// typedef void (APIENTRYP GPNAMEDPROGRAMLOCALPARAMETERSI4IVEXT)(GLuint program, GLenum target, GLuint index, GLsizei count, const GLint * params);
+// typedef void (APIENTRYP GPNAMEDPROGRAMLOCALPARAMETERSI4UIVEXT)(GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint * params);
+// typedef void (APIENTRYP GPNAMEDPROGRAMSTRINGEXT)(GLuint program, GLenum target, GLenum format, GLsizei len, const void * string);
+// typedef void (APIENTRYP GPNAMEDRENDERBUFFERSTORAGE)(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPNAMEDRENDERBUFFERSTORAGEEXT)(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPNAMEDRENDERBUFFERSTORAGEMULTISAMPLE)(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMD)(GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXT)(GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXT)(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPNAMEDSTRINGARB)(GLenum type, GLint namelen, const GLchar * name, GLint stringlen, const GLchar * string);
+// typedef void (APIENTRYP GPNORMALFORMATNV)(GLenum type, GLsizei stride);
+// typedef void (APIENTRYP GPOBJECTLABEL)(GLenum identifier, GLuint name, GLsizei length, const GLchar * label);
+// typedef void (APIENTRYP GPOBJECTLABELKHR)(GLenum identifier, GLuint name, GLsizei length, const GLchar * label);
+// typedef void (APIENTRYP GPOBJECTPTRLABEL)(const void * ptr, GLsizei length, const GLchar * label);
+// typedef void (APIENTRYP GPOBJECTPTRLABELKHR)(const void * ptr, GLsizei length, const GLchar * label);
+// typedef void (APIENTRYP GPPATCHPARAMETERFV)(GLenum pname, const GLfloat * values);
+// typedef void (APIENTRYP GPPATCHPARAMETERI)(GLenum pname, GLint value);
+// typedef void (APIENTRYP GPPATHCOMMANDSNV)(GLuint path, GLsizei numCommands, const GLubyte * commands, GLsizei numCoords, GLenum coordType, const void * coords);
+// typedef void (APIENTRYP GPPATHCOORDSNV)(GLuint path, GLsizei numCoords, GLenum coordType, const void * coords);
+// typedef void (APIENTRYP GPPATHCOVERDEPTHFUNCNV)(GLenum func);
+// typedef void (APIENTRYP GPPATHDASHARRAYNV)(GLuint path, GLsizei dashCount, const GLfloat * dashArray);
+// typedef GLenum (APIENTRYP GPPATHGLYPHINDEXARRAYNV)(GLuint firstPathName, GLenum fontTarget, const void * fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
+// typedef GLenum (APIENTRYP GPPATHGLYPHINDEXRANGENV)(GLenum fontTarget, const void * fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint * baseAndCount);
+// typedef void (APIENTRYP GPPATHGLYPHRANGENV)(GLuint firstPathName, GLenum fontTarget, const void * fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
+// typedef void (APIENTRYP GPPATHGLYPHSNV)(GLuint firstPathName, GLenum fontTarget, const void * fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void * charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
+// typedef GLenum (APIENTRYP GPPATHMEMORYGLYPHINDEXARRAYNV)(GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void * fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
+// typedef void (APIENTRYP GPPATHPARAMETERFNV)(GLuint path, GLenum pname, GLfloat value);
+// typedef void (APIENTRYP GPPATHPARAMETERFVNV)(GLuint path, GLenum pname, const GLfloat * value);
+// typedef void (APIENTRYP GPPATHPARAMETERINV)(GLuint path, GLenum pname, GLint value);
+// typedef void (APIENTRYP GPPATHPARAMETERIVNV)(GLuint path, GLenum pname, const GLint * value);
+// typedef void (APIENTRYP GPPATHSTENCILDEPTHOFFSETNV)(GLfloat factor, GLfloat units);
+// typedef void (APIENTRYP GPPATHSTENCILFUNCNV)(GLenum func, GLint ref, GLuint mask);
+// typedef void (APIENTRYP GPPATHSTRINGNV)(GLuint path, GLenum format, GLsizei length, const void * pathString);
+// typedef void (APIENTRYP GPPATHSUBCOMMANDSNV)(GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte * commands, GLsizei numCoords, GLenum coordType, const void * coords);
+// typedef void (APIENTRYP GPPATHSUBCOORDSNV)(GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void * coords);
+// typedef void (APIENTRYP GPPAUSETRANSFORMFEEDBACK)();
+// typedef void (APIENTRYP GPPIXELSTOREF)(GLenum pname, GLfloat param);
+// typedef void (APIENTRYP GPPIXELSTOREI)(GLenum pname, GLint param);
+// typedef GLboolean (APIENTRYP GPPOINTALONGPATHNV)(GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat * x, GLfloat * y, GLfloat * tangentX, GLfloat * tangentY);
+// typedef void (APIENTRYP GPPOINTPARAMETERF)(GLenum pname, GLfloat param);
+// typedef void (APIENTRYP GPPOINTPARAMETERFV)(GLenum pname, const GLfloat * params);
+// typedef void (APIENTRYP GPPOINTPARAMETERI)(GLenum pname, GLint param);
+// typedef void (APIENTRYP GPPOINTPARAMETERIV)(GLenum pname, const GLint * params);
+// typedef void (APIENTRYP GPPOINTSIZE)(GLfloat size);
+// typedef void (APIENTRYP GPPOLYGONMODE)(GLenum face, GLenum mode);
+// typedef void (APIENTRYP GPPOLYGONOFFSET)(GLfloat factor, GLfloat units);
+// typedef void (APIENTRYP GPPOLYGONOFFSETCLAMP)(GLfloat factor, GLfloat units, GLfloat clamp);
+// typedef void (APIENTRYP GPPOLYGONOFFSETCLAMPEXT)(GLfloat factor, GLfloat units, GLfloat clamp);
+// typedef void (APIENTRYP GPPOPDEBUGGROUP)();
+// typedef void (APIENTRYP GPPOPDEBUGGROUPKHR)();
+// typedef void (APIENTRYP GPPOPGROUPMARKEREXT)();
+// typedef void (APIENTRYP GPPRIMITIVEBOUNDINGBOXARB)(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
+// typedef void (APIENTRYP GPPRIMITIVERESTARTINDEX)(GLuint index);
+// typedef void (APIENTRYP GPPROGRAMBINARY)(GLuint program, GLenum binaryFormat, const void * binary, GLsizei length);
+// typedef void (APIENTRYP GPPROGRAMPARAMETERI)(GLuint program, GLenum pname, GLint value);
+// typedef void (APIENTRYP GPPROGRAMPARAMETERIARB)(GLuint program, GLenum pname, GLint value);
+// typedef void (APIENTRYP GPPROGRAMPARAMETERIEXT)(GLuint program, GLenum pname, GLint value);
+// typedef void (APIENTRYP GPPROGRAMPATHFRAGMENTINPUTGENNV)(GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat * coeffs);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1D)(GLuint program, GLint location, GLdouble v0);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1DEXT)(GLuint program, GLint location, GLdouble x);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1DV)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1DVEXT)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1F)(GLuint program, GLint location, GLfloat v0);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1FEXT)(GLuint program, GLint location, GLfloat v0);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1FV)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1FVEXT)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1I)(GLuint program, GLint location, GLint v0);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1I64ARB)(GLuint program, GLint location, GLint64 x);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1I64NV)(GLuint program, GLint location, GLint64EXT x);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1I64VARB)(GLuint program, GLint location, GLsizei count, const GLint64 * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1I64VNV)(GLuint program, GLint location, GLsizei count, const GLint64EXT * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1IEXT)(GLuint program, GLint location, GLint v0);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1IV)(GLuint program, GLint location, GLsizei count, const GLint * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1IVEXT)(GLuint program, GLint location, GLsizei count, const GLint * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1UI)(GLuint program, GLint location, GLuint v0);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1UI64ARB)(GLuint program, GLint location, GLuint64 x);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1UI64NV)(GLuint program, GLint location, GLuint64EXT x);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1UI64VARB)(GLuint program, GLint location, GLsizei count, const GLuint64 * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1UI64VNV)(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1UIEXT)(GLuint program, GLint location, GLuint v0);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1UIV)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM1UIVEXT)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2D)(GLuint program, GLint location, GLdouble v0, GLdouble v1);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2DEXT)(GLuint program, GLint location, GLdouble x, GLdouble y);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2DV)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2DVEXT)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2F)(GLuint program, GLint location, GLfloat v0, GLfloat v1);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2FEXT)(GLuint program, GLint location, GLfloat v0, GLfloat v1);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2FV)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2FVEXT)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2I)(GLuint program, GLint location, GLint v0, GLint v1);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2I64ARB)(GLuint program, GLint location, GLint64 x, GLint64 y);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2I64NV)(GLuint program, GLint location, GLint64EXT x, GLint64EXT y);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2I64VARB)(GLuint program, GLint location, GLsizei count, const GLint64 * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2I64VNV)(GLuint program, GLint location, GLsizei count, const GLint64EXT * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2IEXT)(GLuint program, GLint location, GLint v0, GLint v1);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2IV)(GLuint program, GLint location, GLsizei count, const GLint * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2IVEXT)(GLuint program, GLint location, GLsizei count, const GLint * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2UI)(GLuint program, GLint location, GLuint v0, GLuint v1);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2UI64ARB)(GLuint program, GLint location, GLuint64 x, GLuint64 y);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2UI64NV)(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2UI64VARB)(GLuint program, GLint location, GLsizei count, const GLuint64 * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2UI64VNV)(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2UIEXT)(GLuint program, GLint location, GLuint v0, GLuint v1);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2UIV)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM2UIVEXT)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3D)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3DEXT)(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3DV)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3DVEXT)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3F)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3FEXT)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3FV)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3FVEXT)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3I)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3I64ARB)(GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3I64NV)(GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3I64VARB)(GLuint program, GLint location, GLsizei count, const GLint64 * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3I64VNV)(GLuint program, GLint location, GLsizei count, const GLint64EXT * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3IEXT)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3IV)(GLuint program, GLint location, GLsizei count, const GLint * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3IVEXT)(GLuint program, GLint location, GLsizei count, const GLint * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3UI)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3UI64ARB)(GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3UI64NV)(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3UI64VARB)(GLuint program, GLint location, GLsizei count, const GLuint64 * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3UI64VNV)(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3UIEXT)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3UIV)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM3UIVEXT)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4D)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4DEXT)(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4DV)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4DVEXT)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4F)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4FEXT)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4FV)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4FVEXT)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4I)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4I64ARB)(GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4I64NV)(GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4I64VARB)(GLuint program, GLint location, GLsizei count, const GLint64 * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4I64VNV)(GLuint program, GLint location, GLsizei count, const GLint64EXT * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4IEXT)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4IV)(GLuint program, GLint location, GLsizei count, const GLint * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4IVEXT)(GLuint program, GLint location, GLsizei count, const GLint * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4UI)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4UI64ARB)(GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4UI64NV)(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4UI64VARB)(GLuint program, GLint location, GLsizei count, const GLuint64 * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4UI64VNV)(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4UIEXT)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4UIV)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORM4UIVEXT)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMHANDLEUI64ARB)(GLuint program, GLint location, GLuint64 value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMHANDLEUI64NV)(GLuint program, GLint location, GLuint64 value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMHANDLEUI64VARB)(GLuint program, GLint location, GLsizei count, const GLuint64 * values);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMHANDLEUI64VNV)(GLuint program, GLint location, GLsizei count, const GLuint64 * values);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX2DV)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX2DVEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX2FV)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX2FVEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX2X3DV)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX2X3DVEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX2X3FV)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX2X3FVEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX2X4DV)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX2X4DVEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX2X4FV)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX2X4FVEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX3DV)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX3DVEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX3FV)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX3FVEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX3X2DV)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX3X2DVEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX3X2FV)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX3X2FVEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX3X4DV)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX3X4DVEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX3X4FV)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX3X4FVEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX4DV)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX4DVEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX4FV)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX4FVEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX4X2DV)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX4X2DVEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX4X2FV)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX4X2FVEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX4X3DV)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX4X3DVEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX4X3FV)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMMATRIX4X3FVEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMUI64NV)(GLuint program, GLint location, GLuint64EXT value);
+// typedef void (APIENTRYP GPPROGRAMUNIFORMUI64VNV)(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value);
+// typedef void (APIENTRYP GPPROVOKINGVERTEX)(GLenum mode);
+// typedef void (APIENTRYP GPPUSHCLIENTATTRIBDEFAULTEXT)(GLbitfield mask);
+// typedef void (APIENTRYP GPPUSHDEBUGGROUP)(GLenum source, GLuint id, GLsizei length, const GLchar * message);
+// typedef void (APIENTRYP GPPUSHDEBUGGROUPKHR)(GLenum source, GLuint id, GLsizei length, const GLchar * message);
+// typedef void (APIENTRYP GPPUSHGROUPMARKEREXT)(GLsizei length, const GLchar * marker);
+// typedef void (APIENTRYP GPQUERYCOUNTER)(GLuint id, GLenum target);
+// typedef void (APIENTRYP GPRASTERSAMPLESEXT)(GLuint samples, GLboolean fixedsamplelocations);
+// typedef void (APIENTRYP GPREADBUFFER)(GLenum src);
+// typedef void (APIENTRYP GPREADPIXELS)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void * pixels);
+// typedef void (APIENTRYP GPREADNPIXELS)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void * data);
+// typedef void (APIENTRYP GPREADNPIXELSARB)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void * data);
+// typedef void (APIENTRYP GPREADNPIXELSKHR)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void * data);
+// typedef void (APIENTRYP GPRELEASESHADERCOMPILER)();
+// typedef void (APIENTRYP GPRENDERBUFFERSTORAGE)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPRENDERBUFFERSTORAGEMULTISAMPLE)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMD)(GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENV)(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPRESETMEMORYOBJECTPARAMETERNV)(GLuint memory, GLenum pname);
+// typedef void (APIENTRYP GPRESOLVEDEPTHVALUESNV)();
+// typedef void (APIENTRYP GPRESUMETRANSFORMFEEDBACK)();
+// typedef void (APIENTRYP GPSAMPLECOVERAGE)(GLfloat value, GLboolean invert);
+// typedef void (APIENTRYP GPSAMPLEMASKI)(GLuint maskNumber, GLbitfield mask);
+// typedef void (APIENTRYP GPSAMPLERPARAMETERIIV)(GLuint sampler, GLenum pname, const GLint * param);
+// typedef void (APIENTRYP GPSAMPLERPARAMETERIUIV)(GLuint sampler, GLenum pname, const GLuint * param);
+// typedef void (APIENTRYP GPSAMPLERPARAMETERF)(GLuint sampler, GLenum pname, GLfloat param);
+// typedef void (APIENTRYP GPSAMPLERPARAMETERFV)(GLuint sampler, GLenum pname, const GLfloat * param);
+// typedef void (APIENTRYP GPSAMPLERPARAMETERI)(GLuint sampler, GLenum pname, GLint param);
+// typedef void (APIENTRYP GPSAMPLERPARAMETERIV)(GLuint sampler, GLenum pname, const GLint * param);
+// typedef void (APIENTRYP GPSCISSOR)(GLint x, GLint y, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPSCISSORARRAYV)(GLuint first, GLsizei count, const GLint * v);
+// typedef void (APIENTRYP GPSCISSOREXCLUSIVEARRAYVNV)(GLuint first, GLsizei count, const GLint * v);
+// typedef void (APIENTRYP GPSCISSOREXCLUSIVENV)(GLint x, GLint y, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPSCISSORINDEXED)(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPSCISSORINDEXEDV)(GLuint index, const GLint * v);
+// typedef void (APIENTRYP GPSECONDARYCOLORFORMATNV)(GLint size, GLenum type, GLsizei stride);
+// typedef void (APIENTRYP GPSELECTPERFMONITORCOUNTERSAMD)(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint * counterList);
+// typedef void (APIENTRYP GPSHADERBINARY)(GLsizei count, const GLuint * shaders, GLenum binaryFormat, const void * binary, GLsizei length);
+// typedef void (APIENTRYP GPSHADERSOURCE)(GLuint shader, GLsizei count, const GLchar *const* string, const GLint * length);
+// typedef void (APIENTRYP GPSHADERSTORAGEBLOCKBINDING)(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding);
+// typedef void (APIENTRYP GPSHADINGRATEIMAGEBARRIERNV)(GLboolean synchronize);
+// typedef void (APIENTRYP GPSHADINGRATEIMAGEPALETTENV)(GLuint viewport, GLuint first, GLsizei count, const GLenum * rates);
+// typedef void (APIENTRYP GPSHADINGRATESAMPLEORDERCUSTOMNV)(GLenum rate, GLuint samples, const GLint * locations);
+// typedef void (APIENTRYP GPSHADINGRATESAMPLEORDERNV)(GLenum order);
+// typedef void (APIENTRYP GPSIGNALVKFENCENV)(GLuint64 vkFence);
+// typedef void (APIENTRYP GPSIGNALVKSEMAPHORENV)(GLuint64 vkSemaphore);
+// typedef void (APIENTRYP GPSPECIALIZESHADERARB)(GLuint shader, const GLchar * pEntryPoint, GLuint numSpecializationConstants, const GLuint * pConstantIndex, const GLuint * pConstantValue);
+// typedef void (APIENTRYP GPSTATECAPTURENV)(GLuint state, GLenum mode);
+// typedef void (APIENTRYP GPSTENCILFILLPATHINSTANCEDNV)(GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat * transformValues);
+// typedef void (APIENTRYP GPSTENCILFILLPATHNV)(GLuint path, GLenum fillMode, GLuint mask);
+// typedef void (APIENTRYP GPSTENCILFUNC)(GLenum func, GLint ref, GLuint mask);
+// typedef void (APIENTRYP GPSTENCILFUNCSEPARATE)(GLenum face, GLenum func, GLint ref, GLuint mask);
+// typedef void (APIENTRYP GPSTENCILMASK)(GLuint mask);
+// typedef void (APIENTRYP GPSTENCILMASKSEPARATE)(GLenum face, GLuint mask);
+// typedef void (APIENTRYP GPSTENCILOP)(GLenum fail, GLenum zfail, GLenum zpass);
+// typedef void (APIENTRYP GPSTENCILOPSEPARATE)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+// typedef void (APIENTRYP GPSTENCILSTROKEPATHINSTANCEDNV)(GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat * transformValues);
+// typedef void (APIENTRYP GPSTENCILSTROKEPATHNV)(GLuint path, GLint reference, GLuint mask);
+// typedef void (APIENTRYP GPSTENCILTHENCOVERFILLPATHINSTANCEDNV)(GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat * transformValues);
+// typedef void (APIENTRYP GPSTENCILTHENCOVERFILLPATHNV)(GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode);
+// typedef void (APIENTRYP GPSTENCILTHENCOVERSTROKEPATHINSTANCEDNV)(GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat * transformValues);
+// typedef void (APIENTRYP GPSTENCILTHENCOVERSTROKEPATHNV)(GLuint path, GLint reference, GLuint mask, GLenum coverMode);
+// typedef void (APIENTRYP GPSUBPIXELPRECISIONBIASNV)(GLuint xbits, GLuint ybits);
+// typedef void (APIENTRYP GPTEXATTACHMEMORYNV)(GLenum target, GLuint memory, GLuint64 offset);
+// typedef void (APIENTRYP GPTEXBUFFER)(GLenum target, GLenum internalformat, GLuint buffer);
+// typedef void (APIENTRYP GPTEXBUFFERARB)(GLenum target, GLenum internalformat, GLuint buffer);
+// typedef void (APIENTRYP GPTEXBUFFERRANGE)(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
+// typedef void (APIENTRYP GPTEXCOORDFORMATNV)(GLint size, GLenum type, GLsizei stride);
+// typedef void (APIENTRYP GPTEXIMAGE1D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void * pixels);
+// typedef void (APIENTRYP GPTEXIMAGE2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels);
+// typedef void (APIENTRYP GPTEXIMAGE2DMULTISAMPLE)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+// typedef void (APIENTRYP GPTEXIMAGE3D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels);
+// typedef void (APIENTRYP GPTEXIMAGE3DMULTISAMPLE)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+// typedef void (APIENTRYP GPTEXPAGECOMMITMENTARB)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
+// typedef void (APIENTRYP GPTEXPAGECOMMITMENTMEMNV)(GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit);
+// typedef void (APIENTRYP GPTEXPARAMETERIIV)(GLenum target, GLenum pname, const GLint * params);
+// typedef void (APIENTRYP GPTEXPARAMETERIUIV)(GLenum target, GLenum pname, const GLuint * params);
+// typedef void (APIENTRYP GPTEXPARAMETERF)(GLenum target, GLenum pname, GLfloat param);
+// typedef void (APIENTRYP GPTEXPARAMETERFV)(GLenum target, GLenum pname, const GLfloat * params);
+// typedef void (APIENTRYP GPTEXPARAMETERI)(GLenum target, GLenum pname, GLint param);
+// typedef void (APIENTRYP GPTEXPARAMETERIV)(GLenum target, GLenum pname, const GLint * params);
+// typedef void (APIENTRYP GPTEXSTORAGE1D)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
+// typedef void (APIENTRYP GPTEXSTORAGE1DEXT)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
+// typedef void (APIENTRYP GPTEXSTORAGE2D)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPTEXSTORAGE2DEXT)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPTEXSTORAGE2DMULTISAMPLE)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+// typedef void (APIENTRYP GPTEXSTORAGE3D)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
+// typedef void (APIENTRYP GPTEXSTORAGE3DEXT)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
+// typedef void (APIENTRYP GPTEXSTORAGE3DMULTISAMPLE)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+// typedef void (APIENTRYP GPTEXSUBIMAGE1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels);
+// typedef void (APIENTRYP GPTEXSUBIMAGE2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels);
+// typedef void (APIENTRYP GPTEXSUBIMAGE3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels);
+// typedef void (APIENTRYP GPTEXTUREATTACHMEMORYNV)(GLuint texture, GLuint memory, GLuint64 offset);
+// typedef void (APIENTRYP GPTEXTUREBARRIER)();
+// typedef void (APIENTRYP GPTEXTUREBARRIERNV)();
+// typedef void (APIENTRYP GPTEXTUREBUFFER)(GLuint texture, GLenum internalformat, GLuint buffer);
+// typedef void (APIENTRYP GPTEXTUREBUFFEREXT)(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer);
+// typedef void (APIENTRYP GPTEXTUREBUFFERRANGE)(GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
+// typedef void (APIENTRYP GPTEXTUREBUFFERRANGEEXT)(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
+// typedef void (APIENTRYP GPTEXTUREIMAGE1DEXT)(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void * pixels);
+// typedef void (APIENTRYP GPTEXTUREIMAGE2DEXT)(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels);
+// typedef void (APIENTRYP GPTEXTUREIMAGE3DEXT)(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels);
+// typedef void (APIENTRYP GPTEXTUREPAGECOMMITMENTEXT)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
+// typedef void (APIENTRYP GPTEXTUREPAGECOMMITMENTMEMNV)(GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit);
+// typedef void (APIENTRYP GPTEXTUREPARAMETERIIV)(GLuint texture, GLenum pname, const GLint * params);
+// typedef void (APIENTRYP GPTEXTUREPARAMETERIIVEXT)(GLuint texture, GLenum target, GLenum pname, const GLint * params);
+// typedef void (APIENTRYP GPTEXTUREPARAMETERIUIV)(GLuint texture, GLenum pname, const GLuint * params);
+// typedef void (APIENTRYP GPTEXTUREPARAMETERIUIVEXT)(GLuint texture, GLenum target, GLenum pname, const GLuint * params);
+// typedef void (APIENTRYP GPTEXTUREPARAMETERF)(GLuint texture, GLenum pname, GLfloat param);
+// typedef void (APIENTRYP GPTEXTUREPARAMETERFEXT)(GLuint texture, GLenum target, GLenum pname, GLfloat param);
+// typedef void (APIENTRYP GPTEXTUREPARAMETERFV)(GLuint texture, GLenum pname, const GLfloat * param);
+// typedef void (APIENTRYP GPTEXTUREPARAMETERFVEXT)(GLuint texture, GLenum target, GLenum pname, const GLfloat * params);
+// typedef void (APIENTRYP GPTEXTUREPARAMETERI)(GLuint texture, GLenum pname, GLint param);
+// typedef void (APIENTRYP GPTEXTUREPARAMETERIEXT)(GLuint texture, GLenum target, GLenum pname, GLint param);
+// typedef void (APIENTRYP GPTEXTUREPARAMETERIV)(GLuint texture, GLenum pname, const GLint * param);
+// typedef void (APIENTRYP GPTEXTUREPARAMETERIVEXT)(GLuint texture, GLenum target, GLenum pname, const GLint * params);
+// typedef void (APIENTRYP GPTEXTURERENDERBUFFEREXT)(GLuint texture, GLenum target, GLuint renderbuffer);
+// typedef void (APIENTRYP GPTEXTURESTORAGE1D)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width);
+// typedef void (APIENTRYP GPTEXTURESTORAGE1DEXT)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
+// typedef void (APIENTRYP GPTEXTURESTORAGE2D)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPTEXTURESTORAGE2DEXT)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPTEXTURESTORAGE2DMULTISAMPLE)(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+// typedef void (APIENTRYP GPTEXTURESTORAGE2DMULTISAMPLEEXT)(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+// typedef void (APIENTRYP GPTEXTURESTORAGE3D)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
+// typedef void (APIENTRYP GPTEXTURESTORAGE3DEXT)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
+// typedef void (APIENTRYP GPTEXTURESTORAGE3DMULTISAMPLE)(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+// typedef void (APIENTRYP GPTEXTURESTORAGE3DMULTISAMPLEEXT)(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+// typedef void (APIENTRYP GPTEXTURESUBIMAGE1D)(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels);
+// typedef void (APIENTRYP GPTEXTURESUBIMAGE1DEXT)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels);
+// typedef void (APIENTRYP GPTEXTURESUBIMAGE2D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels);
+// typedef void (APIENTRYP GPTEXTURESUBIMAGE2DEXT)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels);
+// typedef void (APIENTRYP GPTEXTURESUBIMAGE3D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels);
+// typedef void (APIENTRYP GPTEXTURESUBIMAGE3DEXT)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels);
+// typedef void (APIENTRYP GPTEXTUREVIEW)(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
+// typedef void (APIENTRYP GPTRANSFORMFEEDBACKBUFFERBASE)(GLuint xfb, GLuint index, GLuint buffer);
+// typedef void (APIENTRYP GPTRANSFORMFEEDBACKBUFFERRANGE)(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+// typedef void (APIENTRYP GPTRANSFORMFEEDBACKVARYINGS)(GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode);
+// typedef void (APIENTRYP GPTRANSFORMPATHNV)(GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat * transformValues);
+// typedef void (APIENTRYP GPUNIFORM1D)(GLint location, GLdouble x);
+// typedef void (APIENTRYP GPUNIFORM1DV)(GLint location, GLsizei count, const GLdouble * value);
+// typedef void (APIENTRYP GPUNIFORM1F)(GLint location, GLfloat v0);
+// typedef void (APIENTRYP GPUNIFORM1FV)(GLint location, GLsizei count, const GLfloat * value);
+// typedef void (APIENTRYP GPUNIFORM1I)(GLint location, GLint v0);
+// typedef void (APIENTRYP GPUNIFORM1I64ARB)(GLint location, GLint64 x);
+// typedef void (APIENTRYP GPUNIFORM1I64NV)(GLint location, GLint64EXT x);
+// typedef void (APIENTRYP GPUNIFORM1I64VARB)(GLint location, GLsizei count, const GLint64 * value);
+// typedef void (APIENTRYP GPUNIFORM1I64VNV)(GLint location, GLsizei count, const GLint64EXT * value);
+// typedef void (APIENTRYP GPUNIFORM1IV)(GLint location, GLsizei count, const GLint * value);
+// typedef void (APIENTRYP GPUNIFORM1UI)(GLint location, GLuint v0);
+// typedef void (APIENTRYP GPUNIFORM1UI64ARB)(GLint location, GLuint64 x);
+// typedef void (APIENTRYP GPUNIFORM1UI64NV)(GLint location, GLuint64EXT x);
+// typedef void (APIENTRYP GPUNIFORM1UI64VARB)(GLint location, GLsizei count, const GLuint64 * value);
+// typedef void (APIENTRYP GPUNIFORM1UI64VNV)(GLint location, GLsizei count, const GLuint64EXT * value);
+// typedef void (APIENTRYP GPUNIFORM1UIV)(GLint location, GLsizei count, const GLuint * value);
+// typedef void (APIENTRYP GPUNIFORM2D)(GLint location, GLdouble x, GLdouble y);
+// typedef void (APIENTRYP GPUNIFORM2DV)(GLint location, GLsizei count, const GLdouble * value);
+// typedef void (APIENTRYP GPUNIFORM2F)(GLint location, GLfloat v0, GLfloat v1);
+// typedef void (APIENTRYP GPUNIFORM2FV)(GLint location, GLsizei count, const GLfloat * value);
+// typedef void (APIENTRYP GPUNIFORM2I)(GLint location, GLint v0, GLint v1);
+// typedef void (APIENTRYP GPUNIFORM2I64ARB)(GLint location, GLint64 x, GLint64 y);
+// typedef void (APIENTRYP GPUNIFORM2I64NV)(GLint location, GLint64EXT x, GLint64EXT y);
+// typedef void (APIENTRYP GPUNIFORM2I64VARB)(GLint location, GLsizei count, const GLint64 * value);
+// typedef void (APIENTRYP GPUNIFORM2I64VNV)(GLint location, GLsizei count, const GLint64EXT * value);
+// typedef void (APIENTRYP GPUNIFORM2IV)(GLint location, GLsizei count, const GLint * value);
+// typedef void (APIENTRYP GPUNIFORM2UI)(GLint location, GLuint v0, GLuint v1);
+// typedef void (APIENTRYP GPUNIFORM2UI64ARB)(GLint location, GLuint64 x, GLuint64 y);
+// typedef void (APIENTRYP GPUNIFORM2UI64NV)(GLint location, GLuint64EXT x, GLuint64EXT y);
+// typedef void (APIENTRYP GPUNIFORM2UI64VARB)(GLint location, GLsizei count, const GLuint64 * value);
+// typedef void (APIENTRYP GPUNIFORM2UI64VNV)(GLint location, GLsizei count, const GLuint64EXT * value);
+// typedef void (APIENTRYP GPUNIFORM2UIV)(GLint location, GLsizei count, const GLuint * value);
+// typedef void (APIENTRYP GPUNIFORM3D)(GLint location, GLdouble x, GLdouble y, GLdouble z);
+// typedef void (APIENTRYP GPUNIFORM3DV)(GLint location, GLsizei count, const GLdouble * value);
+// typedef void (APIENTRYP GPUNIFORM3F)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+// typedef void (APIENTRYP GPUNIFORM3FV)(GLint location, GLsizei count, const GLfloat * value);
+// typedef void (APIENTRYP GPUNIFORM3I)(GLint location, GLint v0, GLint v1, GLint v2);
+// typedef void (APIENTRYP GPUNIFORM3I64ARB)(GLint location, GLint64 x, GLint64 y, GLint64 z);
+// typedef void (APIENTRYP GPUNIFORM3I64NV)(GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
+// typedef void (APIENTRYP GPUNIFORM3I64VARB)(GLint location, GLsizei count, const GLint64 * value);
+// typedef void (APIENTRYP GPUNIFORM3I64VNV)(GLint location, GLsizei count, const GLint64EXT * value);
+// typedef void (APIENTRYP GPUNIFORM3IV)(GLint location, GLsizei count, const GLint * value);
+// typedef void (APIENTRYP GPUNIFORM3UI)(GLint location, GLuint v0, GLuint v1, GLuint v2);
+// typedef void (APIENTRYP GPUNIFORM3UI64ARB)(GLint location, GLuint64 x, GLuint64 y, GLuint64 z);
+// typedef void (APIENTRYP GPUNIFORM3UI64NV)(GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
+// typedef void (APIENTRYP GPUNIFORM3UI64VARB)(GLint location, GLsizei count, const GLuint64 * value);
+// typedef void (APIENTRYP GPUNIFORM3UI64VNV)(GLint location, GLsizei count, const GLuint64EXT * value);
+// typedef void (APIENTRYP GPUNIFORM3UIV)(GLint location, GLsizei count, const GLuint * value);
+// typedef void (APIENTRYP GPUNIFORM4D)(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+// typedef void (APIENTRYP GPUNIFORM4DV)(GLint location, GLsizei count, const GLdouble * value);
+// typedef void (APIENTRYP GPUNIFORM4F)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+// typedef void (APIENTRYP GPUNIFORM4FV)(GLint location, GLsizei count, const GLfloat * value);
+// typedef void (APIENTRYP GPUNIFORM4I)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+// typedef void (APIENTRYP GPUNIFORM4I64ARB)(GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w);
+// typedef void (APIENTRYP GPUNIFORM4I64NV)(GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
+// typedef void (APIENTRYP GPUNIFORM4I64VARB)(GLint location, GLsizei count, const GLint64 * value);
+// typedef void (APIENTRYP GPUNIFORM4I64VNV)(GLint location, GLsizei count, const GLint64EXT * value);
+// typedef void (APIENTRYP GPUNIFORM4IV)(GLint location, GLsizei count, const GLint * value);
+// typedef void (APIENTRYP GPUNIFORM4UI)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+// typedef void (APIENTRYP GPUNIFORM4UI64ARB)(GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w);
+// typedef void (APIENTRYP GPUNIFORM4UI64NV)(GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
+// typedef void (APIENTRYP GPUNIFORM4UI64VARB)(GLint location, GLsizei count, const GLuint64 * value);
+// typedef void (APIENTRYP GPUNIFORM4UI64VNV)(GLint location, GLsizei count, const GLuint64EXT * value);
+// typedef void (APIENTRYP GPUNIFORM4UIV)(GLint location, GLsizei count, const GLuint * value);
+// typedef void (APIENTRYP GPUNIFORMBLOCKBINDING)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
+// typedef void (APIENTRYP GPUNIFORMHANDLEUI64ARB)(GLint location, GLuint64 value);
+// typedef void (APIENTRYP GPUNIFORMHANDLEUI64NV)(GLint location, GLuint64 value);
+// typedef void (APIENTRYP GPUNIFORMHANDLEUI64VARB)(GLint location, GLsizei count, const GLuint64 * value);
+// typedef void (APIENTRYP GPUNIFORMHANDLEUI64VNV)(GLint location, GLsizei count, const GLuint64 * value);
+// typedef void (APIENTRYP GPUNIFORMMATRIX2DV)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPUNIFORMMATRIX2FV)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPUNIFORMMATRIX2X3DV)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPUNIFORMMATRIX2X3FV)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPUNIFORMMATRIX2X4DV)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPUNIFORMMATRIX2X4FV)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPUNIFORMMATRIX3DV)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPUNIFORMMATRIX3FV)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPUNIFORMMATRIX3X2DV)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPUNIFORMMATRIX3X2FV)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPUNIFORMMATRIX3X4DV)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPUNIFORMMATRIX3X4FV)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPUNIFORMMATRIX4DV)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPUNIFORMMATRIX4FV)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPUNIFORMMATRIX4X2DV)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPUNIFORMMATRIX4X2FV)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPUNIFORMMATRIX4X3DV)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+// typedef void (APIENTRYP GPUNIFORMMATRIX4X3FV)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+// typedef void (APIENTRYP GPUNIFORMSUBROUTINESUIV)(GLenum shadertype, GLsizei count, const GLuint * indices);
+// typedef void (APIENTRYP GPUNIFORMUI64NV)(GLint location, GLuint64EXT value);
+// typedef void (APIENTRYP GPUNIFORMUI64VNV)(GLint location, GLsizei count, const GLuint64EXT * value);
+// typedef GLboolean (APIENTRYP GPUNMAPBUFFER)(GLenum target);
+// typedef GLboolean (APIENTRYP GPUNMAPNAMEDBUFFER)(GLuint buffer);
+// typedef GLboolean (APIENTRYP GPUNMAPNAMEDBUFFEREXT)(GLuint buffer);
+// typedef void (APIENTRYP GPUSEPROGRAM)(GLuint program);
+// typedef void (APIENTRYP GPUSEPROGRAMSTAGES)(GLuint pipeline, GLbitfield stages, GLuint program);
+// typedef void (APIENTRYP GPUSEPROGRAMSTAGESEXT)(GLuint pipeline, GLbitfield stages, GLuint program);
+// typedef void (APIENTRYP GPUSESHADERPROGRAMEXT)(GLenum type, GLuint program);
+// typedef void (APIENTRYP GPVALIDATEPROGRAM)(GLuint program);
+// typedef void (APIENTRYP GPVALIDATEPROGRAMPIPELINE)(GLuint pipeline);
+// typedef void (APIENTRYP GPVALIDATEPROGRAMPIPELINEEXT)(GLuint pipeline);
+// typedef void (APIENTRYP GPVERTEXARRAYATTRIBBINDING)(GLuint vaobj, GLuint attribindex, GLuint bindingindex);
+// typedef void (APIENTRYP GPVERTEXARRAYATTRIBFORMAT)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
+// typedef void (APIENTRYP GPVERTEXARRAYATTRIBIFORMAT)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+// typedef void (APIENTRYP GPVERTEXARRAYATTRIBLFORMAT)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+// typedef void (APIENTRYP GPVERTEXARRAYBINDVERTEXBUFFEREXT)(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
+// typedef void (APIENTRYP GPVERTEXARRAYBINDINGDIVISOR)(GLuint vaobj, GLuint bindingindex, GLuint divisor);
+// typedef void (APIENTRYP GPVERTEXARRAYCOLOROFFSETEXT)(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+// typedef void (APIENTRYP GPVERTEXARRAYEDGEFLAGOFFSETEXT)(GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset);
+// typedef void (APIENTRYP GPVERTEXARRAYELEMENTBUFFER)(GLuint vaobj, GLuint buffer);
+// typedef void (APIENTRYP GPVERTEXARRAYFOGCOORDOFFSETEXT)(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
+// typedef void (APIENTRYP GPVERTEXARRAYINDEXOFFSETEXT)(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
+// typedef void (APIENTRYP GPVERTEXARRAYMULTITEXCOORDOFFSETEXT)(GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+// typedef void (APIENTRYP GPVERTEXARRAYNORMALOFFSETEXT)(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
+// typedef void (APIENTRYP GPVERTEXARRAYSECONDARYCOLOROFFSETEXT)(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+// typedef void (APIENTRYP GPVERTEXARRAYTEXCOORDOFFSETEXT)(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+// typedef void (APIENTRYP GPVERTEXARRAYVERTEXATTRIBBINDINGEXT)(GLuint vaobj, GLuint attribindex, GLuint bindingindex);
+// typedef void (APIENTRYP GPVERTEXARRAYVERTEXATTRIBDIVISOREXT)(GLuint vaobj, GLuint index, GLuint divisor);
+// typedef void (APIENTRYP GPVERTEXARRAYVERTEXATTRIBFORMATEXT)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
+// typedef void (APIENTRYP GPVERTEXARRAYVERTEXATTRIBIFORMATEXT)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+// typedef void (APIENTRYP GPVERTEXARRAYVERTEXATTRIBIOFFSETEXT)(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+// typedef void (APIENTRYP GPVERTEXARRAYVERTEXATTRIBLFORMATEXT)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+// typedef void (APIENTRYP GPVERTEXARRAYVERTEXATTRIBLOFFSETEXT)(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+// typedef void (APIENTRYP GPVERTEXARRAYVERTEXATTRIBOFFSETEXT)(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset);
+// typedef void (APIENTRYP GPVERTEXARRAYVERTEXBINDINGDIVISOREXT)(GLuint vaobj, GLuint bindingindex, GLuint divisor);
+// typedef void (APIENTRYP GPVERTEXARRAYVERTEXBUFFER)(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
+// typedef void (APIENTRYP GPVERTEXARRAYVERTEXBUFFERS)(GLuint vaobj, GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizei * strides);
+// typedef void (APIENTRYP GPVERTEXARRAYVERTEXOFFSETEXT)(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+// typedef void (APIENTRYP GPVERTEXATTRIB1D)(GLuint index, GLdouble x);
+// typedef void (APIENTRYP GPVERTEXATTRIB1DV)(GLuint index, const GLdouble * v);
+// typedef void (APIENTRYP GPVERTEXATTRIB1F)(GLuint index, GLfloat x);
+// typedef void (APIENTRYP GPVERTEXATTRIB1FV)(GLuint index, const GLfloat * v);
+// typedef void (APIENTRYP GPVERTEXATTRIB1S)(GLuint index, GLshort x);
+// typedef void (APIENTRYP GPVERTEXATTRIB1SV)(GLuint index, const GLshort * v);
+// typedef void (APIENTRYP GPVERTEXATTRIB2D)(GLuint index, GLdouble x, GLdouble y);
+// typedef void (APIENTRYP GPVERTEXATTRIB2DV)(GLuint index, const GLdouble * v);
+// typedef void (APIENTRYP GPVERTEXATTRIB2F)(GLuint index, GLfloat x, GLfloat y);
+// typedef void (APIENTRYP GPVERTEXATTRIB2FV)(GLuint index, const GLfloat * v);
+// typedef void (APIENTRYP GPVERTEXATTRIB2S)(GLuint index, GLshort x, GLshort y);
+// typedef void (APIENTRYP GPVERTEXATTRIB2SV)(GLuint index, const GLshort * v);
+// typedef void (APIENTRYP GPVERTEXATTRIB3D)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
+// typedef void (APIENTRYP GPVERTEXATTRIB3DV)(GLuint index, const GLdouble * v);
+// typedef void (APIENTRYP GPVERTEXATTRIB3F)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
+// typedef void (APIENTRYP GPVERTEXATTRIB3FV)(GLuint index, const GLfloat * v);
+// typedef void (APIENTRYP GPVERTEXATTRIB3S)(GLuint index, GLshort x, GLshort y, GLshort z);
+// typedef void (APIENTRYP GPVERTEXATTRIB3SV)(GLuint index, const GLshort * v);
+// typedef void (APIENTRYP GPVERTEXATTRIB4NBV)(GLuint index, const GLbyte * v);
+// typedef void (APIENTRYP GPVERTEXATTRIB4NIV)(GLuint index, const GLint * v);
+// typedef void (APIENTRYP GPVERTEXATTRIB4NSV)(GLuint index, const GLshort * v);
+// typedef void (APIENTRYP GPVERTEXATTRIB4NUB)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+// typedef void (APIENTRYP GPVERTEXATTRIB4NUBV)(GLuint index, const GLubyte * v);
+// typedef void (APIENTRYP GPVERTEXATTRIB4NUIV)(GLuint index, const GLuint * v);
+// typedef void (APIENTRYP GPVERTEXATTRIB4NUSV)(GLuint index, const GLushort * v);
+// typedef void (APIENTRYP GPVERTEXATTRIB4BV)(GLuint index, const GLbyte * v);
+// typedef void (APIENTRYP GPVERTEXATTRIB4D)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+// typedef void (APIENTRYP GPVERTEXATTRIB4DV)(GLuint index, const GLdouble * v);
+// typedef void (APIENTRYP GPVERTEXATTRIB4F)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+// typedef void (APIENTRYP GPVERTEXATTRIB4FV)(GLuint index, const GLfloat * v);
+// typedef void (APIENTRYP GPVERTEXATTRIB4IV)(GLuint index, const GLint * v);
+// typedef void (APIENTRYP GPVERTEXATTRIB4S)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+// typedef void (APIENTRYP GPVERTEXATTRIB4SV)(GLuint index, const GLshort * v);
+// typedef void (APIENTRYP GPVERTEXATTRIB4UBV)(GLuint index, const GLubyte * v);
+// typedef void (APIENTRYP GPVERTEXATTRIB4UIV)(GLuint index, const GLuint * v);
+// typedef void (APIENTRYP GPVERTEXATTRIB4USV)(GLuint index, const GLushort * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBBINDING)(GLuint attribindex, GLuint bindingindex);
+// typedef void (APIENTRYP GPVERTEXATTRIBDIVISOR)(GLuint index, GLuint divisor);
+// typedef void (APIENTRYP GPVERTEXATTRIBDIVISORARB)(GLuint index, GLuint divisor);
+// typedef void (APIENTRYP GPVERTEXATTRIBFORMAT)(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
+// typedef void (APIENTRYP GPVERTEXATTRIBFORMATNV)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride);
+// typedef void (APIENTRYP GPVERTEXATTRIBI1I)(GLuint index, GLint x);
+// typedef void (APIENTRYP GPVERTEXATTRIBI1IV)(GLuint index, const GLint * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBI1UI)(GLuint index, GLuint x);
+// typedef void (APIENTRYP GPVERTEXATTRIBI1UIV)(GLuint index, const GLuint * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBI2I)(GLuint index, GLint x, GLint y);
+// typedef void (APIENTRYP GPVERTEXATTRIBI2IV)(GLuint index, const GLint * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBI2UI)(GLuint index, GLuint x, GLuint y);
+// typedef void (APIENTRYP GPVERTEXATTRIBI2UIV)(GLuint index, const GLuint * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBI3I)(GLuint index, GLint x, GLint y, GLint z);
+// typedef void (APIENTRYP GPVERTEXATTRIBI3IV)(GLuint index, const GLint * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBI3UI)(GLuint index, GLuint x, GLuint y, GLuint z);
+// typedef void (APIENTRYP GPVERTEXATTRIBI3UIV)(GLuint index, const GLuint * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBI4BV)(GLuint index, const GLbyte * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBI4I)(GLuint index, GLint x, GLint y, GLint z, GLint w);
+// typedef void (APIENTRYP GPVERTEXATTRIBI4IV)(GLuint index, const GLint * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBI4SV)(GLuint index, const GLshort * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBI4UBV)(GLuint index, const GLubyte * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBI4UI)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+// typedef void (APIENTRYP GPVERTEXATTRIBI4UIV)(GLuint index, const GLuint * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBI4USV)(GLuint index, const GLushort * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBIFORMAT)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+// typedef void (APIENTRYP GPVERTEXATTRIBIFORMATNV)(GLuint index, GLint size, GLenum type, GLsizei stride);
+// typedef void (APIENTRYP GPVERTEXATTRIBIPOINTER)(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer);
+// typedef void (APIENTRYP GPVERTEXATTRIBL1D)(GLuint index, GLdouble x);
+// typedef void (APIENTRYP GPVERTEXATTRIBL1DV)(GLuint index, const GLdouble * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBL1I64NV)(GLuint index, GLint64EXT x);
+// typedef void (APIENTRYP GPVERTEXATTRIBL1I64VNV)(GLuint index, const GLint64EXT * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBL1UI64ARB)(GLuint index, GLuint64EXT x);
+// typedef void (APIENTRYP GPVERTEXATTRIBL1UI64NV)(GLuint index, GLuint64EXT x);
+// typedef void (APIENTRYP GPVERTEXATTRIBL1UI64VARB)(GLuint index, const GLuint64EXT * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBL1UI64VNV)(GLuint index, const GLuint64EXT * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBL2D)(GLuint index, GLdouble x, GLdouble y);
+// typedef void (APIENTRYP GPVERTEXATTRIBL2DV)(GLuint index, const GLdouble * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBL2I64NV)(GLuint index, GLint64EXT x, GLint64EXT y);
+// typedef void (APIENTRYP GPVERTEXATTRIBL2I64VNV)(GLuint index, const GLint64EXT * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBL2UI64NV)(GLuint index, GLuint64EXT x, GLuint64EXT y);
+// typedef void (APIENTRYP GPVERTEXATTRIBL2UI64VNV)(GLuint index, const GLuint64EXT * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBL3D)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
+// typedef void (APIENTRYP GPVERTEXATTRIBL3DV)(GLuint index, const GLdouble * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBL3I64NV)(GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z);
+// typedef void (APIENTRYP GPVERTEXATTRIBL3I64VNV)(GLuint index, const GLint64EXT * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBL3UI64NV)(GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
+// typedef void (APIENTRYP GPVERTEXATTRIBL3UI64VNV)(GLuint index, const GLuint64EXT * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBL4D)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+// typedef void (APIENTRYP GPVERTEXATTRIBL4DV)(GLuint index, const GLdouble * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBL4I64NV)(GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
+// typedef void (APIENTRYP GPVERTEXATTRIBL4I64VNV)(GLuint index, const GLint64EXT * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBL4UI64NV)(GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
+// typedef void (APIENTRYP GPVERTEXATTRIBL4UI64VNV)(GLuint index, const GLuint64EXT * v);
+// typedef void (APIENTRYP GPVERTEXATTRIBLFORMAT)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+// typedef void (APIENTRYP GPVERTEXATTRIBLFORMATNV)(GLuint index, GLint size, GLenum type, GLsizei stride);
+// typedef void (APIENTRYP GPVERTEXATTRIBLPOINTER)(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer);
+// typedef void (APIENTRYP GPVERTEXATTRIBP1UI)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
+// typedef void (APIENTRYP GPVERTEXATTRIBP1UIV)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
+// typedef void (APIENTRYP GPVERTEXATTRIBP2UI)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
+// typedef void (APIENTRYP GPVERTEXATTRIBP2UIV)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
+// typedef void (APIENTRYP GPVERTEXATTRIBP3UI)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
+// typedef void (APIENTRYP GPVERTEXATTRIBP3UIV)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
+// typedef void (APIENTRYP GPVERTEXATTRIBP4UI)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
+// typedef void (APIENTRYP GPVERTEXATTRIBP4UIV)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
+// typedef void (APIENTRYP GPVERTEXATTRIBPOINTER)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * pointer);
+// typedef void (APIENTRYP GPVERTEXBINDINGDIVISOR)(GLuint bindingindex, GLuint divisor);
+// typedef void (APIENTRYP GPVERTEXFORMATNV)(GLint size, GLenum type, GLsizei stride);
+// typedef void (APIENTRYP GPVIEWPORT)(GLint x, GLint y, GLsizei width, GLsizei height);
+// typedef void (APIENTRYP GPVIEWPORTARRAYV)(GLuint first, GLsizei count, const GLfloat * v);
+// typedef void (APIENTRYP GPVIEWPORTINDEXEDF)(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
+// typedef void (APIENTRYP GPVIEWPORTINDEXEDFV)(GLuint index, const GLfloat * v);
+// typedef void (APIENTRYP GPVIEWPORTPOSITIONWSCALENV)(GLuint index, GLfloat xcoeff, GLfloat ycoeff);
+// typedef void (APIENTRYP GPVIEWPORTSWIZZLENV)(GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew);
+// typedef void (APIENTRYP GPWAITSYNC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
+// typedef void (APIENTRYP GPWAITVKSEMAPHORENV)(GLuint64 vkSemaphore);
+// typedef void (APIENTRYP GPWEIGHTPATHSNV)(GLuint resultPath, GLsizei numPaths, const GLuint * paths, const GLfloat * weights);
+// typedef void (APIENTRYP GPWINDOWRECTANGLESEXT)(GLenum mode, GLsizei count, const GLint * box);
+// static void glowActiveProgramEXT(GPACTIVEPROGRAMEXT fnptr, GLuint program) {
+// (*fnptr)(program);
+// }
+// static void glowActiveShaderProgram(GPACTIVESHADERPROGRAM fnptr, GLuint pipeline, GLuint program) {
+// (*fnptr)(pipeline, program);
+// }
+// static void glowActiveShaderProgramEXT(GPACTIVESHADERPROGRAMEXT fnptr, GLuint pipeline, GLuint program) {
+// (*fnptr)(pipeline, program);
+// }
+// static void glowActiveTexture(GPACTIVETEXTURE fnptr, GLenum texture) {
+// (*fnptr)(texture);
+// }
+// static void glowApplyFramebufferAttachmentCMAAINTEL(GPAPPLYFRAMEBUFFERATTACHMENTCMAAINTEL fnptr) {
+// (*fnptr)();
+// }
+// static void glowAttachShader(GPATTACHSHADER fnptr, GLuint program, GLuint shader) {
+// (*fnptr)(program, shader);
+// }
+// static void glowBeginConditionalRender(GPBEGINCONDITIONALRENDER fnptr, GLuint id, GLenum mode) {
+// (*fnptr)(id, mode);
+// }
+// static void glowBeginConditionalRenderNV(GPBEGINCONDITIONALRENDERNV fnptr, GLuint id, GLenum mode) {
+// (*fnptr)(id, mode);
+// }
+// static void glowBeginPerfMonitorAMD(GPBEGINPERFMONITORAMD fnptr, GLuint monitor) {
+// (*fnptr)(monitor);
+// }
+// static void glowBeginPerfQueryINTEL(GPBEGINPERFQUERYINTEL fnptr, GLuint queryHandle) {
+// (*fnptr)(queryHandle);
+// }
+// static void glowBeginQuery(GPBEGINQUERY fnptr, GLenum target, GLuint id) {
+// (*fnptr)(target, id);
+// }
+// static void glowBeginQueryIndexed(GPBEGINQUERYINDEXED fnptr, GLenum target, GLuint index, GLuint id) {
+// (*fnptr)(target, index, id);
+// }
+// static void glowBeginTransformFeedback(GPBEGINTRANSFORMFEEDBACK fnptr, GLenum primitiveMode) {
+// (*fnptr)(primitiveMode);
+// }
+// static void glowBindAttribLocation(GPBINDATTRIBLOCATION fnptr, GLuint program, GLuint index, const GLchar * name) {
+// (*fnptr)(program, index, name);
+// }
+// static void glowBindBuffer(GPBINDBUFFER fnptr, GLenum target, GLuint buffer) {
+// (*fnptr)(target, buffer);
+// }
+// static void glowBindBufferBase(GPBINDBUFFERBASE fnptr, GLenum target, GLuint index, GLuint buffer) {
+// (*fnptr)(target, index, buffer);
+// }
+// static void glowBindBufferRange(GPBINDBUFFERRANGE fnptr, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) {
+// (*fnptr)(target, index, buffer, offset, size);
+// }
+// static void glowBindBuffersBase(GPBINDBUFFERSBASE fnptr, GLenum target, GLuint first, GLsizei count, const GLuint * buffers) {
+// (*fnptr)(target, first, count, buffers);
+// }
+// static void glowBindBuffersRange(GPBINDBUFFERSRANGE fnptr, GLenum target, GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizeiptr * sizes) {
+// (*fnptr)(target, first, count, buffers, offsets, sizes);
+// }
+// static void glowBindFragDataLocation(GPBINDFRAGDATALOCATION fnptr, GLuint program, GLuint color, const GLchar * name) {
+// (*fnptr)(program, color, name);
+// }
+// static void glowBindFragDataLocationIndexed(GPBINDFRAGDATALOCATIONINDEXED fnptr, GLuint program, GLuint colorNumber, GLuint index, const GLchar * name) {
+// (*fnptr)(program, colorNumber, index, name);
+// }
+// static void glowBindFramebuffer(GPBINDFRAMEBUFFER fnptr, GLenum target, GLuint framebuffer) {
+// (*fnptr)(target, framebuffer);
+// }
+// static void glowBindImageTexture(GPBINDIMAGETEXTURE fnptr, GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format) {
+// (*fnptr)(unit, texture, level, layered, layer, access, format);
+// }
+// static void glowBindImageTextures(GPBINDIMAGETEXTURES fnptr, GLuint first, GLsizei count, const GLuint * textures) {
+// (*fnptr)(first, count, textures);
+// }
+// static void glowBindMultiTextureEXT(GPBINDMULTITEXTUREEXT fnptr, GLenum texunit, GLenum target, GLuint texture) {
+// (*fnptr)(texunit, target, texture);
+// }
+// static void glowBindProgramPipeline(GPBINDPROGRAMPIPELINE fnptr, GLuint pipeline) {
+// (*fnptr)(pipeline);
+// }
+// static void glowBindProgramPipelineEXT(GPBINDPROGRAMPIPELINEEXT fnptr, GLuint pipeline) {
+// (*fnptr)(pipeline);
+// }
+// static void glowBindRenderbuffer(GPBINDRENDERBUFFER fnptr, GLenum target, GLuint renderbuffer) {
+// (*fnptr)(target, renderbuffer);
+// }
+// static void glowBindSampler(GPBINDSAMPLER fnptr, GLuint unit, GLuint sampler) {
+// (*fnptr)(unit, sampler);
+// }
+// static void glowBindSamplers(GPBINDSAMPLERS fnptr, GLuint first, GLsizei count, const GLuint * samplers) {
+// (*fnptr)(first, count, samplers);
+// }
+// static void glowBindShadingRateImageNV(GPBINDSHADINGRATEIMAGENV fnptr, GLuint texture) {
+// (*fnptr)(texture);
+// }
+// static void glowBindTexture(GPBINDTEXTURE fnptr, GLenum target, GLuint texture) {
+// (*fnptr)(target, texture);
+// }
+// static void glowBindTextureUnit(GPBINDTEXTUREUNIT fnptr, GLuint unit, GLuint texture) {
+// (*fnptr)(unit, texture);
+// }
+// static void glowBindTextures(GPBINDTEXTURES fnptr, GLuint first, GLsizei count, const GLuint * textures) {
+// (*fnptr)(first, count, textures);
+// }
+// static void glowBindTransformFeedback(GPBINDTRANSFORMFEEDBACK fnptr, GLenum target, GLuint id) {
+// (*fnptr)(target, id);
+// }
+// static void glowBindVertexArray(GPBINDVERTEXARRAY fnptr, GLuint array) {
+// (*fnptr)(array);
+// }
+// static void glowBindVertexBuffer(GPBINDVERTEXBUFFER fnptr, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride) {
+// (*fnptr)(bindingindex, buffer, offset, stride);
+// }
+// static void glowBindVertexBuffers(GPBINDVERTEXBUFFERS fnptr, GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizei * strides) {
+// (*fnptr)(first, count, buffers, offsets, strides);
+// }
+// static void glowBlendBarrierKHR(GPBLENDBARRIERKHR fnptr) {
+// (*fnptr)();
+// }
+// static void glowBlendBarrierNV(GPBLENDBARRIERNV fnptr) {
+// (*fnptr)();
+// }
+// static void glowBlendColor(GPBLENDCOLOR fnptr, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {
+// (*fnptr)(red, green, blue, alpha);
+// }
+// static void glowBlendEquation(GPBLENDEQUATION fnptr, GLenum mode) {
+// (*fnptr)(mode);
+// }
+// static void glowBlendEquationSeparate(GPBLENDEQUATIONSEPARATE fnptr, GLenum modeRGB, GLenum modeAlpha) {
+// (*fnptr)(modeRGB, modeAlpha);
+// }
+// static void glowBlendEquationSeparateiARB(GPBLENDEQUATIONSEPARATEIARB fnptr, GLuint buf, GLenum modeRGB, GLenum modeAlpha) {
+// (*fnptr)(buf, modeRGB, modeAlpha);
+// }
+// static void glowBlendEquationiARB(GPBLENDEQUATIONIARB fnptr, GLuint buf, GLenum mode) {
+// (*fnptr)(buf, mode);
+// }
+// static void glowBlendFunc(GPBLENDFUNC fnptr, GLenum sfactor, GLenum dfactor) {
+// (*fnptr)(sfactor, dfactor);
+// }
+// static void glowBlendFuncSeparate(GPBLENDFUNCSEPARATE fnptr, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) {
+// (*fnptr)(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
+// }
+// static void glowBlendFuncSeparateiARB(GPBLENDFUNCSEPARATEIARB fnptr, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) {
+// (*fnptr)(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
+// }
+// static void glowBlendFunciARB(GPBLENDFUNCIARB fnptr, GLuint buf, GLenum src, GLenum dst) {
+// (*fnptr)(buf, src, dst);
+// }
+// static void glowBlendParameteriNV(GPBLENDPARAMETERINV fnptr, GLenum pname, GLint value) {
+// (*fnptr)(pname, value);
+// }
+// static void glowBlitFramebuffer(GPBLITFRAMEBUFFER fnptr, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) {
+// (*fnptr)(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+// }
+// static void glowBlitNamedFramebuffer(GPBLITNAMEDFRAMEBUFFER fnptr, GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) {
+// (*fnptr)(readFramebuffer, drawFramebuffer, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+// }
+// static void glowBufferAddressRangeNV(GPBUFFERADDRESSRANGENV fnptr, GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length) {
+// (*fnptr)(pname, index, address, length);
+// }
+// static void glowBufferAttachMemoryNV(GPBUFFERATTACHMEMORYNV fnptr, GLenum target, GLuint memory, GLuint64 offset) {
+// (*fnptr)(target, memory, offset);
+// }
+// static void glowBufferData(GPBUFFERDATA fnptr, GLenum target, GLsizeiptr size, const void * data, GLenum usage) {
+// (*fnptr)(target, size, data, usage);
+// }
+// static void glowBufferPageCommitmentARB(GPBUFFERPAGECOMMITMENTARB fnptr, GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit) {
+// (*fnptr)(target, offset, size, commit);
+// }
+// static void glowBufferPageCommitmentMemNV(GPBUFFERPAGECOMMITMENTMEMNV fnptr, GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit) {
+// (*fnptr)(target, offset, size, memory, memOffset, commit);
+// }
+// static void glowBufferStorage(GPBUFFERSTORAGE fnptr, GLenum target, GLsizeiptr size, const void * data, GLbitfield flags) {
+// (*fnptr)(target, size, data, flags);
+// }
+// static void glowBufferSubData(GPBUFFERSUBDATA fnptr, GLenum target, GLintptr offset, GLsizeiptr size, const void * data) {
+// (*fnptr)(target, offset, size, data);
+// }
+// static void glowCallCommandListNV(GPCALLCOMMANDLISTNV fnptr, GLuint list) {
+// (*fnptr)(list);
+// }
+// static GLenum glowCheckFramebufferStatus(GPCHECKFRAMEBUFFERSTATUS fnptr, GLenum target) {
+// return (*fnptr)(target);
+// }
+// static GLenum glowCheckNamedFramebufferStatus(GPCHECKNAMEDFRAMEBUFFERSTATUS fnptr, GLuint framebuffer, GLenum target) {
+// return (*fnptr)(framebuffer, target);
+// }
+// static GLenum glowCheckNamedFramebufferStatusEXT(GPCHECKNAMEDFRAMEBUFFERSTATUSEXT fnptr, GLuint framebuffer, GLenum target) {
+// return (*fnptr)(framebuffer, target);
+// }
+// static void glowClampColor(GPCLAMPCOLOR fnptr, GLenum target, GLenum clamp) {
+// (*fnptr)(target, clamp);
+// }
+// static void glowClear(GPCLEAR fnptr, GLbitfield mask) {
+// (*fnptr)(mask);
+// }
+// static void glowClearBufferData(GPCLEARBUFFERDATA fnptr, GLenum target, GLenum internalformat, GLenum format, GLenum type, const void * data) {
+// (*fnptr)(target, internalformat, format, type, data);
+// }
+// static void glowClearBufferSubData(GPCLEARBUFFERSUBDATA fnptr, GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data) {
+// (*fnptr)(target, internalformat, offset, size, format, type, data);
+// }
+// static void glowClearBufferfi(GPCLEARBUFFERFI fnptr, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) {
+// (*fnptr)(buffer, drawbuffer, depth, stencil);
+// }
+// static void glowClearBufferfv(GPCLEARBUFFERFV fnptr, GLenum buffer, GLint drawbuffer, const GLfloat * value) {
+// (*fnptr)(buffer, drawbuffer, value);
+// }
+// static void glowClearBufferiv(GPCLEARBUFFERIV fnptr, GLenum buffer, GLint drawbuffer, const GLint * value) {
+// (*fnptr)(buffer, drawbuffer, value);
+// }
+// static void glowClearBufferuiv(GPCLEARBUFFERUIV fnptr, GLenum buffer, GLint drawbuffer, const GLuint * value) {
+// (*fnptr)(buffer, drawbuffer, value);
+// }
+// static void glowClearColor(GPCLEARCOLOR fnptr, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {
+// (*fnptr)(red, green, blue, alpha);
+// }
+// static void glowClearDepth(GPCLEARDEPTH fnptr, GLdouble depth) {
+// (*fnptr)(depth);
+// }
+// static void glowClearDepthdNV(GPCLEARDEPTHDNV fnptr, GLdouble depth) {
+// (*fnptr)(depth);
+// }
+// static void glowClearDepthf(GPCLEARDEPTHF fnptr, GLfloat d) {
+// (*fnptr)(d);
+// }
+// static void glowClearNamedBufferData(GPCLEARNAMEDBUFFERDATA fnptr, GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void * data) {
+// (*fnptr)(buffer, internalformat, format, type, data);
+// }
+// static void glowClearNamedBufferDataEXT(GPCLEARNAMEDBUFFERDATAEXT fnptr, GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void * data) {
+// (*fnptr)(buffer, internalformat, format, type, data);
+// }
+// static void glowClearNamedBufferSubData(GPCLEARNAMEDBUFFERSUBDATA fnptr, GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data) {
+// (*fnptr)(buffer, internalformat, offset, size, format, type, data);
+// }
+// static void glowClearNamedBufferSubDataEXT(GPCLEARNAMEDBUFFERSUBDATAEXT fnptr, GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data) {
+// (*fnptr)(buffer, internalformat, offset, size, format, type, data);
+// }
+// static void glowClearNamedFramebufferfi(GPCLEARNAMEDFRAMEBUFFERFI fnptr, GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) {
+// (*fnptr)(framebuffer, buffer, drawbuffer, depth, stencil);
+// }
+// static void glowClearNamedFramebufferfv(GPCLEARNAMEDFRAMEBUFFERFV fnptr, GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat * value) {
+// (*fnptr)(framebuffer, buffer, drawbuffer, value);
+// }
+// static void glowClearNamedFramebufferiv(GPCLEARNAMEDFRAMEBUFFERIV fnptr, GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint * value) {
+// (*fnptr)(framebuffer, buffer, drawbuffer, value);
+// }
+// static void glowClearNamedFramebufferuiv(GPCLEARNAMEDFRAMEBUFFERUIV fnptr, GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint * value) {
+// (*fnptr)(framebuffer, buffer, drawbuffer, value);
+// }
+// static void glowClearStencil(GPCLEARSTENCIL fnptr, GLint s) {
+// (*fnptr)(s);
+// }
+// static void glowClearTexImage(GPCLEARTEXIMAGE fnptr, GLuint texture, GLint level, GLenum format, GLenum type, const void * data) {
+// (*fnptr)(texture, level, format, type, data);
+// }
+// static void glowClearTexSubImage(GPCLEARTEXSUBIMAGE fnptr, GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data) {
+// (*fnptr)(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, data);
+// }
+// static void glowClientAttribDefaultEXT(GPCLIENTATTRIBDEFAULTEXT fnptr, GLbitfield mask) {
+// (*fnptr)(mask);
+// }
+// static GLenum glowClientWaitSync(GPCLIENTWAITSYNC fnptr, GLsync sync, GLbitfield flags, GLuint64 timeout) {
+// return (*fnptr)(sync, flags, timeout);
+// }
+// static void glowClipControl(GPCLIPCONTROL fnptr, GLenum origin, GLenum depth) {
+// (*fnptr)(origin, depth);
+// }
+// static void glowColorFormatNV(GPCOLORFORMATNV fnptr, GLint size, GLenum type, GLsizei stride) {
+// (*fnptr)(size, type, stride);
+// }
+// static void glowColorMask(GPCOLORMASK fnptr, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) {
+// (*fnptr)(red, green, blue, alpha);
+// }
+// static void glowColorMaski(GPCOLORMASKI fnptr, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a) {
+// (*fnptr)(index, r, g, b, a);
+// }
+// static void glowCommandListSegmentsNV(GPCOMMANDLISTSEGMENTSNV fnptr, GLuint list, GLuint segments) {
+// (*fnptr)(list, segments);
+// }
+// static void glowCompileCommandListNV(GPCOMPILECOMMANDLISTNV fnptr, GLuint list) {
+// (*fnptr)(list);
+// }
+// static void glowCompileShader(GPCOMPILESHADER fnptr, GLuint shader) {
+// (*fnptr)(shader);
+// }
+// static void glowCompileShaderIncludeARB(GPCOMPILESHADERINCLUDEARB fnptr, GLuint shader, GLsizei count, const GLchar *const* path, const GLint * length) {
+// (*fnptr)(shader, count, path, length);
+// }
+// static void glowCompressedMultiTexImage1DEXT(GPCOMPRESSEDMULTITEXIMAGE1DEXT fnptr, GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * bits) {
+// (*fnptr)(texunit, target, level, internalformat, width, border, imageSize, bits);
+// }
+// static void glowCompressedMultiTexImage2DEXT(GPCOMPRESSEDMULTITEXIMAGE2DEXT fnptr, GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * bits) {
+// (*fnptr)(texunit, target, level, internalformat, width, height, border, imageSize, bits);
+// }
+// static void glowCompressedMultiTexImage3DEXT(GPCOMPRESSEDMULTITEXIMAGE3DEXT fnptr, GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * bits) {
+// (*fnptr)(texunit, target, level, internalformat, width, height, depth, border, imageSize, bits);
+// }
+// static void glowCompressedMultiTexSubImage1DEXT(GPCOMPRESSEDMULTITEXSUBIMAGE1DEXT fnptr, GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * bits) {
+// (*fnptr)(texunit, target, level, xoffset, width, format, imageSize, bits);
+// }
+// static void glowCompressedMultiTexSubImage2DEXT(GPCOMPRESSEDMULTITEXSUBIMAGE2DEXT fnptr, GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * bits) {
+// (*fnptr)(texunit, target, level, xoffset, yoffset, width, height, format, imageSize, bits);
+// }
+// static void glowCompressedMultiTexSubImage3DEXT(GPCOMPRESSEDMULTITEXSUBIMAGE3DEXT fnptr, GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * bits) {
+// (*fnptr)(texunit, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, bits);
+// }
+// static void glowCompressedTexImage1D(GPCOMPRESSEDTEXIMAGE1D fnptr, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * data) {
+// (*fnptr)(target, level, internalformat, width, border, imageSize, data);
+// }
+// static void glowCompressedTexImage2D(GPCOMPRESSEDTEXIMAGE2D fnptr, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data) {
+// (*fnptr)(target, level, internalformat, width, height, border, imageSize, data);
+// }
+// static void glowCompressedTexImage3D(GPCOMPRESSEDTEXIMAGE3D fnptr, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * data) {
+// (*fnptr)(target, level, internalformat, width, height, depth, border, imageSize, data);
+// }
+// static void glowCompressedTexSubImage1D(GPCOMPRESSEDTEXSUBIMAGE1D fnptr, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data) {
+// (*fnptr)(target, level, xoffset, width, format, imageSize, data);
+// }
+// static void glowCompressedTexSubImage2D(GPCOMPRESSEDTEXSUBIMAGE2D fnptr, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data) {
+// (*fnptr)(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+// }
+// static void glowCompressedTexSubImage3D(GPCOMPRESSEDTEXSUBIMAGE3D fnptr, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data) {
+// (*fnptr)(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+// }
+// static void glowCompressedTextureImage1DEXT(GPCOMPRESSEDTEXTUREIMAGE1DEXT fnptr, GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * bits) {
+// (*fnptr)(texture, target, level, internalformat, width, border, imageSize, bits);
+// }
+// static void glowCompressedTextureImage2DEXT(GPCOMPRESSEDTEXTUREIMAGE2DEXT fnptr, GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * bits) {
+// (*fnptr)(texture, target, level, internalformat, width, height, border, imageSize, bits);
+// }
+// static void glowCompressedTextureImage3DEXT(GPCOMPRESSEDTEXTUREIMAGE3DEXT fnptr, GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * bits) {
+// (*fnptr)(texture, target, level, internalformat, width, height, depth, border, imageSize, bits);
+// }
+// static void glowCompressedTextureSubImage1D(GPCOMPRESSEDTEXTURESUBIMAGE1D fnptr, GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data) {
+// (*fnptr)(texture, level, xoffset, width, format, imageSize, data);
+// }
+// static void glowCompressedTextureSubImage1DEXT(GPCOMPRESSEDTEXTURESUBIMAGE1DEXT fnptr, GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * bits) {
+// (*fnptr)(texture, target, level, xoffset, width, format, imageSize, bits);
+// }
+// static void glowCompressedTextureSubImage2D(GPCOMPRESSEDTEXTURESUBIMAGE2D fnptr, GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data) {
+// (*fnptr)(texture, level, xoffset, yoffset, width, height, format, imageSize, data);
+// }
+// static void glowCompressedTextureSubImage2DEXT(GPCOMPRESSEDTEXTURESUBIMAGE2DEXT fnptr, GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * bits) {
+// (*fnptr)(texture, target, level, xoffset, yoffset, width, height, format, imageSize, bits);
+// }
+// static void glowCompressedTextureSubImage3D(GPCOMPRESSEDTEXTURESUBIMAGE3D fnptr, GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data) {
+// (*fnptr)(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+// }
+// static void glowCompressedTextureSubImage3DEXT(GPCOMPRESSEDTEXTURESUBIMAGE3DEXT fnptr, GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * bits) {
+// (*fnptr)(texture, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, bits);
+// }
+// static void glowConservativeRasterParameterfNV(GPCONSERVATIVERASTERPARAMETERFNV fnptr, GLenum pname, GLfloat value) {
+// (*fnptr)(pname, value);
+// }
+// static void glowConservativeRasterParameteriNV(GPCONSERVATIVERASTERPARAMETERINV fnptr, GLenum pname, GLint param) {
+// (*fnptr)(pname, param);
+// }
+// static void glowCopyBufferSubData(GPCOPYBUFFERSUBDATA fnptr, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) {
+// (*fnptr)(readTarget, writeTarget, readOffset, writeOffset, size);
+// }
+// static void glowCopyImageSubData(GPCOPYIMAGESUBDATA fnptr, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth) {
+// (*fnptr)(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth);
+// }
+// static void glowCopyMultiTexImage1DEXT(GPCOPYMULTITEXIMAGE1DEXT fnptr, GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border) {
+// (*fnptr)(texunit, target, level, internalformat, x, y, width, border);
+// }
+// static void glowCopyMultiTexImage2DEXT(GPCOPYMULTITEXIMAGE2DEXT fnptr, GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) {
+// (*fnptr)(texunit, target, level, internalformat, x, y, width, height, border);
+// }
+// static void glowCopyMultiTexSubImage1DEXT(GPCOPYMULTITEXSUBIMAGE1DEXT fnptr, GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) {
+// (*fnptr)(texunit, target, level, xoffset, x, y, width);
+// }
+// static void glowCopyMultiTexSubImage2DEXT(GPCOPYMULTITEXSUBIMAGE2DEXT fnptr, GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
+// (*fnptr)(texunit, target, level, xoffset, yoffset, x, y, width, height);
+// }
+// static void glowCopyMultiTexSubImage3DEXT(GPCOPYMULTITEXSUBIMAGE3DEXT fnptr, GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
+// (*fnptr)(texunit, target, level, xoffset, yoffset, zoffset, x, y, width, height);
+// }
+// static void glowCopyNamedBufferSubData(GPCOPYNAMEDBUFFERSUBDATA fnptr, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) {
+// (*fnptr)(readBuffer, writeBuffer, readOffset, writeOffset, size);
+// }
+// static void glowCopyPathNV(GPCOPYPATHNV fnptr, GLuint resultPath, GLuint srcPath) {
+// (*fnptr)(resultPath, srcPath);
+// }
+// static void glowCopyTexImage1D(GPCOPYTEXIMAGE1D fnptr, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border) {
+// (*fnptr)(target, level, internalformat, x, y, width, border);
+// }
+// static void glowCopyTexImage2D(GPCOPYTEXIMAGE2D fnptr, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) {
+// (*fnptr)(target, level, internalformat, x, y, width, height, border);
+// }
+// static void glowCopyTexSubImage1D(GPCOPYTEXSUBIMAGE1D fnptr, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) {
+// (*fnptr)(target, level, xoffset, x, y, width);
+// }
+// static void glowCopyTexSubImage2D(GPCOPYTEXSUBIMAGE2D fnptr, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
+// (*fnptr)(target, level, xoffset, yoffset, x, y, width, height);
+// }
+// static void glowCopyTexSubImage3D(GPCOPYTEXSUBIMAGE3D fnptr, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
+// (*fnptr)(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+// }
+// static void glowCopyTextureImage1DEXT(GPCOPYTEXTUREIMAGE1DEXT fnptr, GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border) {
+// (*fnptr)(texture, target, level, internalformat, x, y, width, border);
+// }
+// static void glowCopyTextureImage2DEXT(GPCOPYTEXTUREIMAGE2DEXT fnptr, GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) {
+// (*fnptr)(texture, target, level, internalformat, x, y, width, height, border);
+// }
+// static void glowCopyTextureSubImage1D(GPCOPYTEXTURESUBIMAGE1D fnptr, GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) {
+// (*fnptr)(texture, level, xoffset, x, y, width);
+// }
+// static void glowCopyTextureSubImage1DEXT(GPCOPYTEXTURESUBIMAGE1DEXT fnptr, GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) {
+// (*fnptr)(texture, target, level, xoffset, x, y, width);
+// }
+// static void glowCopyTextureSubImage2D(GPCOPYTEXTURESUBIMAGE2D fnptr, GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
+// (*fnptr)(texture, level, xoffset, yoffset, x, y, width, height);
+// }
+// static void glowCopyTextureSubImage2DEXT(GPCOPYTEXTURESUBIMAGE2DEXT fnptr, GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
+// (*fnptr)(texture, target, level, xoffset, yoffset, x, y, width, height);
+// }
+// static void glowCopyTextureSubImage3D(GPCOPYTEXTURESUBIMAGE3D fnptr, GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
+// (*fnptr)(texture, level, xoffset, yoffset, zoffset, x, y, width, height);
+// }
+// static void glowCopyTextureSubImage3DEXT(GPCOPYTEXTURESUBIMAGE3DEXT fnptr, GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
+// (*fnptr)(texture, target, level, xoffset, yoffset, zoffset, x, y, width, height);
+// }
+// static void glowCoverFillPathInstancedNV(GPCOVERFILLPATHINSTANCEDNV fnptr, GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat * transformValues) {
+// (*fnptr)(numPaths, pathNameType, paths, pathBase, coverMode, transformType, transformValues);
+// }
+// static void glowCoverFillPathNV(GPCOVERFILLPATHNV fnptr, GLuint path, GLenum coverMode) {
+// (*fnptr)(path, coverMode);
+// }
+// static void glowCoverStrokePathInstancedNV(GPCOVERSTROKEPATHINSTANCEDNV fnptr, GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat * transformValues) {
+// (*fnptr)(numPaths, pathNameType, paths, pathBase, coverMode, transformType, transformValues);
+// }
+// static void glowCoverStrokePathNV(GPCOVERSTROKEPATHNV fnptr, GLuint path, GLenum coverMode) {
+// (*fnptr)(path, coverMode);
+// }
+// static void glowCoverageModulationNV(GPCOVERAGEMODULATIONNV fnptr, GLenum components) {
+// (*fnptr)(components);
+// }
+// static void glowCoverageModulationTableNV(GPCOVERAGEMODULATIONTABLENV fnptr, GLsizei n, const GLfloat * v) {
+// (*fnptr)(n, v);
+// }
+// static void glowCreateBuffers(GPCREATEBUFFERS fnptr, GLsizei n, GLuint * buffers) {
+// (*fnptr)(n, buffers);
+// }
+// static void glowCreateCommandListsNV(GPCREATECOMMANDLISTSNV fnptr, GLsizei n, GLuint * lists) {
+// (*fnptr)(n, lists);
+// }
+// static void glowCreateFramebuffers(GPCREATEFRAMEBUFFERS fnptr, GLsizei n, GLuint * framebuffers) {
+// (*fnptr)(n, framebuffers);
+// }
+// static void glowCreatePerfQueryINTEL(GPCREATEPERFQUERYINTEL fnptr, GLuint queryId, GLuint * queryHandle) {
+// (*fnptr)(queryId, queryHandle);
+// }
+// static GLuint glowCreateProgram(GPCREATEPROGRAM fnptr) {
+// return (*fnptr)();
+// }
+// static void glowCreateProgramPipelines(GPCREATEPROGRAMPIPELINES fnptr, GLsizei n, GLuint * pipelines) {
+// (*fnptr)(n, pipelines);
+// }
+// static void glowCreateQueries(GPCREATEQUERIES fnptr, GLenum target, GLsizei n, GLuint * ids) {
+// (*fnptr)(target, n, ids);
+// }
+// static void glowCreateRenderbuffers(GPCREATERENDERBUFFERS fnptr, GLsizei n, GLuint * renderbuffers) {
+// (*fnptr)(n, renderbuffers);
+// }
+// static void glowCreateSamplers(GPCREATESAMPLERS fnptr, GLsizei n, GLuint * samplers) {
+// (*fnptr)(n, samplers);
+// }
+// static GLuint glowCreateShader(GPCREATESHADER fnptr, GLenum type) {
+// return (*fnptr)(type);
+// }
+// static GLuint glowCreateShaderProgramEXT(GPCREATESHADERPROGRAMEXT fnptr, GLenum type, const GLchar * string) {
+// return (*fnptr)(type, string);
+// }
+// static GLuint glowCreateShaderProgramv(GPCREATESHADERPROGRAMV fnptr, GLenum type, GLsizei count, const GLchar *const* strings) {
+// return (*fnptr)(type, count, strings);
+// }
+// static GLuint glowCreateShaderProgramvEXT(GPCREATESHADERPROGRAMVEXT fnptr, GLenum type, GLsizei count, const GLchar *const* strings) {
+// return (*fnptr)(type, count, strings);
+// }
+// static void glowCreateStatesNV(GPCREATESTATESNV fnptr, GLsizei n, GLuint * states) {
+// (*fnptr)(n, states);
+// }
+// static GLsync glowCreateSyncFromCLeventARB(GPCREATESYNCFROMCLEVENTARB fnptr, struct _cl_context * context, struct _cl_event * event, GLbitfield flags) {
+// return (*fnptr)(context, event, flags);
+// }
+// static void glowCreateTextures(GPCREATETEXTURES fnptr, GLenum target, GLsizei n, GLuint * textures) {
+// (*fnptr)(target, n, textures);
+// }
+// static void glowCreateTransformFeedbacks(GPCREATETRANSFORMFEEDBACKS fnptr, GLsizei n, GLuint * ids) {
+// (*fnptr)(n, ids);
+// }
+// static void glowCreateVertexArrays(GPCREATEVERTEXARRAYS fnptr, GLsizei n, GLuint * arrays) {
+// (*fnptr)(n, arrays);
+// }
+// static void glowCullFace(GPCULLFACE fnptr, GLenum mode) {
+// (*fnptr)(mode);
+// }
+// static void glowDebugMessageCallback(GPDEBUGMESSAGECALLBACK fnptr, GLDEBUGPROC callback, const void * userParam) {
+// (*fnptr)(glowCDebugCallback, userParam);
+// }
+// static void glowDebugMessageCallbackARB(GPDEBUGMESSAGECALLBACKARB fnptr, GLDEBUGPROCARB callback, const void * userParam) {
+// (*fnptr)(glowCDebugCallback, userParam);
+// }
+// static void glowDebugMessageCallbackKHR(GPDEBUGMESSAGECALLBACKKHR fnptr, GLDEBUGPROCKHR callback, const void * userParam) {
+// (*fnptr)(glowCDebugCallback, userParam);
+// }
+// static void glowDebugMessageControl(GPDEBUGMESSAGECONTROL fnptr, GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled) {
+// (*fnptr)(source, type, severity, count, ids, enabled);
+// }
+// static void glowDebugMessageControlARB(GPDEBUGMESSAGECONTROLARB fnptr, GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled) {
+// (*fnptr)(source, type, severity, count, ids, enabled);
+// }
+// static void glowDebugMessageControlKHR(GPDEBUGMESSAGECONTROLKHR fnptr, GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled) {
+// (*fnptr)(source, type, severity, count, ids, enabled);
+// }
+// static void glowDebugMessageInsert(GPDEBUGMESSAGEINSERT fnptr, GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf) {
+// (*fnptr)(source, type, id, severity, length, buf);
+// }
+// static void glowDebugMessageInsertARB(GPDEBUGMESSAGEINSERTARB fnptr, GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf) {
+// (*fnptr)(source, type, id, severity, length, buf);
+// }
+// static void glowDebugMessageInsertKHR(GPDEBUGMESSAGEINSERTKHR fnptr, GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf) {
+// (*fnptr)(source, type, id, severity, length, buf);
+// }
+// static void glowDeleteBuffers(GPDELETEBUFFERS fnptr, GLsizei n, const GLuint * buffers) {
+// (*fnptr)(n, buffers);
+// }
+// static void glowDeleteCommandListsNV(GPDELETECOMMANDLISTSNV fnptr, GLsizei n, const GLuint * lists) {
+// (*fnptr)(n, lists);
+// }
+// static void glowDeleteFramebuffers(GPDELETEFRAMEBUFFERS fnptr, GLsizei n, const GLuint * framebuffers) {
+// (*fnptr)(n, framebuffers);
+// }
+// static void glowDeleteNamedStringARB(GPDELETENAMEDSTRINGARB fnptr, GLint namelen, const GLchar * name) {
+// (*fnptr)(namelen, name);
+// }
+// static void glowDeletePathsNV(GPDELETEPATHSNV fnptr, GLuint path, GLsizei range) {
+// (*fnptr)(path, range);
+// }
+// static void glowDeletePerfMonitorsAMD(GPDELETEPERFMONITORSAMD fnptr, GLsizei n, GLuint * monitors) {
+// (*fnptr)(n, monitors);
+// }
+// static void glowDeletePerfQueryINTEL(GPDELETEPERFQUERYINTEL fnptr, GLuint queryHandle) {
+// (*fnptr)(queryHandle);
+// }
+// static void glowDeleteProgram(GPDELETEPROGRAM fnptr, GLuint program) {
+// (*fnptr)(program);
+// }
+// static void glowDeleteProgramPipelines(GPDELETEPROGRAMPIPELINES fnptr, GLsizei n, const GLuint * pipelines) {
+// (*fnptr)(n, pipelines);
+// }
+// static void glowDeleteProgramPipelinesEXT(GPDELETEPROGRAMPIPELINESEXT fnptr, GLsizei n, const GLuint * pipelines) {
+// (*fnptr)(n, pipelines);
+// }
+// static void glowDeleteQueries(GPDELETEQUERIES fnptr, GLsizei n, const GLuint * ids) {
+// (*fnptr)(n, ids);
+// }
+// static void glowDeleteRenderbuffers(GPDELETERENDERBUFFERS fnptr, GLsizei n, const GLuint * renderbuffers) {
+// (*fnptr)(n, renderbuffers);
+// }
+// static void glowDeleteSamplers(GPDELETESAMPLERS fnptr, GLsizei count, const GLuint * samplers) {
+// (*fnptr)(count, samplers);
+// }
+// static void glowDeleteShader(GPDELETESHADER fnptr, GLuint shader) {
+// (*fnptr)(shader);
+// }
+// static void glowDeleteStatesNV(GPDELETESTATESNV fnptr, GLsizei n, const GLuint * states) {
+// (*fnptr)(n, states);
+// }
+// static void glowDeleteSync(GPDELETESYNC fnptr, GLsync sync) {
+// (*fnptr)(sync);
+// }
+// static void glowDeleteTextures(GPDELETETEXTURES fnptr, GLsizei n, const GLuint * textures) {
+// (*fnptr)(n, textures);
+// }
+// static void glowDeleteTransformFeedbacks(GPDELETETRANSFORMFEEDBACKS fnptr, GLsizei n, const GLuint * ids) {
+// (*fnptr)(n, ids);
+// }
+// static void glowDeleteVertexArrays(GPDELETEVERTEXARRAYS fnptr, GLsizei n, const GLuint * arrays) {
+// (*fnptr)(n, arrays);
+// }
+// static void glowDepthBoundsdNV(GPDEPTHBOUNDSDNV fnptr, GLdouble zmin, GLdouble zmax) {
+// (*fnptr)(zmin, zmax);
+// }
+// static void glowDepthFunc(GPDEPTHFUNC fnptr, GLenum func) {
+// (*fnptr)(func);
+// }
+// static void glowDepthMask(GPDEPTHMASK fnptr, GLboolean flag) {
+// (*fnptr)(flag);
+// }
+// static void glowDepthRange(GPDEPTHRANGE fnptr, GLdouble n, GLdouble f) {
+// (*fnptr)(n, f);
+// }
+// static void glowDepthRangeArraydvNV(GPDEPTHRANGEARRAYDVNV fnptr, GLuint first, GLsizei count, const GLdouble * v) {
+// (*fnptr)(first, count, v);
+// }
+// static void glowDepthRangeArrayv(GPDEPTHRANGEARRAYV fnptr, GLuint first, GLsizei count, const GLdouble * v) {
+// (*fnptr)(first, count, v);
+// }
+// static void glowDepthRangeIndexed(GPDEPTHRANGEINDEXED fnptr, GLuint index, GLdouble n, GLdouble f) {
+// (*fnptr)(index, n, f);
+// }
+// static void glowDepthRangeIndexeddNV(GPDEPTHRANGEINDEXEDDNV fnptr, GLuint index, GLdouble n, GLdouble f) {
+// (*fnptr)(index, n, f);
+// }
+// static void glowDepthRangedNV(GPDEPTHRANGEDNV fnptr, GLdouble zNear, GLdouble zFar) {
+// (*fnptr)(zNear, zFar);
+// }
+// static void glowDepthRangef(GPDEPTHRANGEF fnptr, GLfloat n, GLfloat f) {
+// (*fnptr)(n, f);
+// }
+// static void glowDetachShader(GPDETACHSHADER fnptr, GLuint program, GLuint shader) {
+// (*fnptr)(program, shader);
+// }
+// static void glowDisable(GPDISABLE fnptr, GLenum cap) {
+// (*fnptr)(cap);
+// }
+// static void glowDisableClientStateIndexedEXT(GPDISABLECLIENTSTATEINDEXEDEXT fnptr, GLenum array, GLuint index) {
+// (*fnptr)(array, index);
+// }
+// static void glowDisableClientStateiEXT(GPDISABLECLIENTSTATEIEXT fnptr, GLenum array, GLuint index) {
+// (*fnptr)(array, index);
+// }
+// static void glowDisableIndexedEXT(GPDISABLEINDEXEDEXT fnptr, GLenum target, GLuint index) {
+// (*fnptr)(target, index);
+// }
+// static void glowDisableVertexArrayAttrib(GPDISABLEVERTEXARRAYATTRIB fnptr, GLuint vaobj, GLuint index) {
+// (*fnptr)(vaobj, index);
+// }
+// static void glowDisableVertexArrayAttribEXT(GPDISABLEVERTEXARRAYATTRIBEXT fnptr, GLuint vaobj, GLuint index) {
+// (*fnptr)(vaobj, index);
+// }
+// static void glowDisableVertexArrayEXT(GPDISABLEVERTEXARRAYEXT fnptr, GLuint vaobj, GLenum array) {
+// (*fnptr)(vaobj, array);
+// }
+// static void glowDisableVertexAttribArray(GPDISABLEVERTEXATTRIBARRAY fnptr, GLuint index) {
+// (*fnptr)(index);
+// }
+// static void glowDisablei(GPDISABLEI fnptr, GLenum target, GLuint index) {
+// (*fnptr)(target, index);
+// }
+// static void glowDispatchCompute(GPDISPATCHCOMPUTE fnptr, GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z) {
+// (*fnptr)(num_groups_x, num_groups_y, num_groups_z);
+// }
+// static void glowDispatchComputeGroupSizeARB(GPDISPATCHCOMPUTEGROUPSIZEARB fnptr, GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z) {
+// (*fnptr)(num_groups_x, num_groups_y, num_groups_z, group_size_x, group_size_y, group_size_z);
+// }
+// static void glowDispatchComputeIndirect(GPDISPATCHCOMPUTEINDIRECT fnptr, GLintptr indirect) {
+// (*fnptr)(indirect);
+// }
+// static void glowDrawArrays(GPDRAWARRAYS fnptr, GLenum mode, GLint first, GLsizei count) {
+// (*fnptr)(mode, first, count);
+// }
+// static void glowDrawArraysIndirect(GPDRAWARRAYSINDIRECT fnptr, GLenum mode, const void * indirect) {
+// (*fnptr)(mode, indirect);
+// }
+// static void glowDrawArraysInstanced(GPDRAWARRAYSINSTANCED fnptr, GLenum mode, GLint first, GLsizei count, GLsizei instancecount) {
+// (*fnptr)(mode, first, count, instancecount);
+// }
+// static void glowDrawArraysInstancedARB(GPDRAWARRAYSINSTANCEDARB fnptr, GLenum mode, GLint first, GLsizei count, GLsizei primcount) {
+// (*fnptr)(mode, first, count, primcount);
+// }
+// static void glowDrawArraysInstancedBaseInstance(GPDRAWARRAYSINSTANCEDBASEINSTANCE fnptr, GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance) {
+// (*fnptr)(mode, first, count, instancecount, baseinstance);
+// }
+// static void glowDrawArraysInstancedEXT(GPDRAWARRAYSINSTANCEDEXT fnptr, GLenum mode, GLint start, GLsizei count, GLsizei primcount) {
+// (*fnptr)(mode, start, count, primcount);
+// }
+// static void glowDrawBuffer(GPDRAWBUFFER fnptr, GLenum buf) {
+// (*fnptr)(buf);
+// }
+// static void glowDrawBuffers(GPDRAWBUFFERS fnptr, GLsizei n, const GLenum * bufs) {
+// (*fnptr)(n, bufs);
+// }
+// static void glowDrawCommandsAddressNV(GPDRAWCOMMANDSADDRESSNV fnptr, GLenum primitiveMode, const GLuint64 * indirects, const GLsizei * sizes, GLuint count) {
+// (*fnptr)(primitiveMode, indirects, sizes, count);
+// }
+// static void glowDrawCommandsNV(GPDRAWCOMMANDSNV fnptr, GLenum primitiveMode, GLuint buffer, const GLintptr * indirects, const GLsizei * sizes, GLuint count) {
+// (*fnptr)(primitiveMode, buffer, indirects, sizes, count);
+// }
+// static void glowDrawCommandsStatesAddressNV(GPDRAWCOMMANDSSTATESADDRESSNV fnptr, const GLuint64 * indirects, const GLsizei * sizes, const GLuint * states, const GLuint * fbos, GLuint count) {
+// (*fnptr)(indirects, sizes, states, fbos, count);
+// }
+// static void glowDrawCommandsStatesNV(GPDRAWCOMMANDSSTATESNV fnptr, GLuint buffer, const GLintptr * indirects, const GLsizei * sizes, const GLuint * states, const GLuint * fbos, GLuint count) {
+// (*fnptr)(buffer, indirects, sizes, states, fbos, count);
+// }
+// static void glowDrawElements(GPDRAWELEMENTS fnptr, GLenum mode, GLsizei count, GLenum type, const void * indices) {
+// (*fnptr)(mode, count, type, indices);
+// }
+// static void glowDrawElementsWithOffset(GPDRAWELEMENTS fnptr, GLenum mode, GLsizei count, GLenum type, uintptr_t indices) {
+// (*fnptr)(mode, count, type, (const void *)(indices));
+// }
+// static void glowDrawElementsBaseVertex(GPDRAWELEMENTSBASEVERTEX fnptr, GLenum mode, GLsizei count, GLenum type, const void * indices, GLint basevertex) {
+// (*fnptr)(mode, count, type, indices, basevertex);
+// }
+// static void glowDrawElementsBaseVertexWithOffset(GPDRAWELEMENTSBASEVERTEX fnptr, GLenum mode, GLsizei count, GLenum type, uintptr_t indices, GLint basevertex) {
+// (*fnptr)(mode, count, type, (const void *)(indices), basevertex);
+// }
+// static void glowDrawElementsIndirect(GPDRAWELEMENTSINDIRECT fnptr, GLenum mode, GLenum type, const void * indirect) {
+// (*fnptr)(mode, type, indirect);
+// }
+// static void glowDrawElementsInstanced(GPDRAWELEMENTSINSTANCED fnptr, GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount) {
+// (*fnptr)(mode, count, type, indices, instancecount);
+// }
+// static void glowDrawElementsInstancedARB(GPDRAWELEMENTSINSTANCEDARB fnptr, GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei primcount) {
+// (*fnptr)(mode, count, type, indices, primcount);
+// }
+// static void glowDrawElementsInstancedBaseInstance(GPDRAWELEMENTSINSTANCEDBASEINSTANCE fnptr, GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLuint baseinstance) {
+// (*fnptr)(mode, count, type, indices, instancecount, baseinstance);
+// }
+// static void glowDrawElementsInstancedBaseVertex(GPDRAWELEMENTSINSTANCEDBASEVERTEX fnptr, GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex) {
+// (*fnptr)(mode, count, type, indices, instancecount, basevertex);
+// }
+// static void glowDrawElementsInstancedBaseVertexBaseInstance(GPDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCE fnptr, GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance) {
+// (*fnptr)(mode, count, type, indices, instancecount, basevertex, baseinstance);
+// }
+// static void glowDrawElementsInstancedEXT(GPDRAWELEMENTSINSTANCEDEXT fnptr, GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei primcount) {
+// (*fnptr)(mode, count, type, indices, primcount);
+// }
+// static void glowDrawMeshTasksIndirectNV(GPDRAWMESHTASKSINDIRECTNV fnptr, GLintptr indirect) {
+// (*fnptr)(indirect);
+// }
+// static void glowDrawMeshTasksNV(GPDRAWMESHTASKSNV fnptr, GLuint first, GLuint count) {
+// (*fnptr)(first, count);
+// }
+// static void glowDrawRangeElements(GPDRAWRANGEELEMENTS fnptr, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices) {
+// (*fnptr)(mode, start, end, count, type, indices);
+// }
+// static void glowDrawRangeElementsBaseVertex(GPDRAWRANGEELEMENTSBASEVERTEX fnptr, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices, GLint basevertex) {
+// (*fnptr)(mode, start, end, count, type, indices, basevertex);
+// }
+// static void glowDrawTransformFeedback(GPDRAWTRANSFORMFEEDBACK fnptr, GLenum mode, GLuint id) {
+// (*fnptr)(mode, id);
+// }
+// static void glowDrawTransformFeedbackInstanced(GPDRAWTRANSFORMFEEDBACKINSTANCED fnptr, GLenum mode, GLuint id, GLsizei instancecount) {
+// (*fnptr)(mode, id, instancecount);
+// }
+// static void glowDrawTransformFeedbackStream(GPDRAWTRANSFORMFEEDBACKSTREAM fnptr, GLenum mode, GLuint id, GLuint stream) {
+// (*fnptr)(mode, id, stream);
+// }
+// static void glowDrawTransformFeedbackStreamInstanced(GPDRAWTRANSFORMFEEDBACKSTREAMINSTANCED fnptr, GLenum mode, GLuint id, GLuint stream, GLsizei instancecount) {
+// (*fnptr)(mode, id, stream, instancecount);
+// }
+// static void glowDrawVkImageNV(GPDRAWVKIMAGENV fnptr, GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1) {
+// (*fnptr)(vkImage, sampler, x0, y0, x1, y1, z, s0, t0, s1, t1);
+// }
+// static void glowEGLImageTargetTexStorageEXT(GPEGLIMAGETARGETTEXSTORAGEEXT fnptr, GLenum target, GLeglImageOES image, const GLint* attrib_list) {
+// (*fnptr)(target, image, attrib_list);
+// }
+// static void glowEGLImageTargetTextureStorageEXT(GPEGLIMAGETARGETTEXTURESTORAGEEXT fnptr, GLuint texture, GLeglImageOES image, const GLint* attrib_list) {
+// (*fnptr)(texture, image, attrib_list);
+// }
+// static void glowEdgeFlagFormatNV(GPEDGEFLAGFORMATNV fnptr, GLsizei stride) {
+// (*fnptr)(stride);
+// }
+// static void glowEnable(GPENABLE fnptr, GLenum cap) {
+// (*fnptr)(cap);
+// }
+// static void glowEnableClientStateIndexedEXT(GPENABLECLIENTSTATEINDEXEDEXT fnptr, GLenum array, GLuint index) {
+// (*fnptr)(array, index);
+// }
+// static void glowEnableClientStateiEXT(GPENABLECLIENTSTATEIEXT fnptr, GLenum array, GLuint index) {
+// (*fnptr)(array, index);
+// }
+// static void glowEnableIndexedEXT(GPENABLEINDEXEDEXT fnptr, GLenum target, GLuint index) {
+// (*fnptr)(target, index);
+// }
+// static void glowEnableVertexArrayAttrib(GPENABLEVERTEXARRAYATTRIB fnptr, GLuint vaobj, GLuint index) {
+// (*fnptr)(vaobj, index);
+// }
+// static void glowEnableVertexArrayAttribEXT(GPENABLEVERTEXARRAYATTRIBEXT fnptr, GLuint vaobj, GLuint index) {
+// (*fnptr)(vaobj, index);
+// }
+// static void glowEnableVertexArrayEXT(GPENABLEVERTEXARRAYEXT fnptr, GLuint vaobj, GLenum array) {
+// (*fnptr)(vaobj, array);
+// }
+// static void glowEnableVertexAttribArray(GPENABLEVERTEXATTRIBARRAY fnptr, GLuint index) {
+// (*fnptr)(index);
+// }
+// static void glowEnablei(GPENABLEI fnptr, GLenum target, GLuint index) {
+// (*fnptr)(target, index);
+// }
+// static void glowEndConditionalRender(GPENDCONDITIONALRENDER fnptr) {
+// (*fnptr)();
+// }
+// static void glowEndConditionalRenderNV(GPENDCONDITIONALRENDERNV fnptr) {
+// (*fnptr)();
+// }
+// static void glowEndPerfMonitorAMD(GPENDPERFMONITORAMD fnptr, GLuint monitor) {
+// (*fnptr)(monitor);
+// }
+// static void glowEndPerfQueryINTEL(GPENDPERFQUERYINTEL fnptr, GLuint queryHandle) {
+// (*fnptr)(queryHandle);
+// }
+// static void glowEndQuery(GPENDQUERY fnptr, GLenum target) {
+// (*fnptr)(target);
+// }
+// static void glowEndQueryIndexed(GPENDQUERYINDEXED fnptr, GLenum target, GLuint index) {
+// (*fnptr)(target, index);
+// }
+// static void glowEndTransformFeedback(GPENDTRANSFORMFEEDBACK fnptr) {
+// (*fnptr)();
+// }
+// static void glowEvaluateDepthValuesARB(GPEVALUATEDEPTHVALUESARB fnptr) {
+// (*fnptr)();
+// }
+// static GLsync glowFenceSync(GPFENCESYNC fnptr, GLenum condition, GLbitfield flags) {
+// return (*fnptr)(condition, flags);
+// }
+// static void glowFinish(GPFINISH fnptr) {
+// (*fnptr)();
+// }
+// static void glowFlush(GPFLUSH fnptr) {
+// (*fnptr)();
+// }
+// static void glowFlushMappedBufferRange(GPFLUSHMAPPEDBUFFERRANGE fnptr, GLenum target, GLintptr offset, GLsizeiptr length) {
+// (*fnptr)(target, offset, length);
+// }
+// static void glowFlushMappedNamedBufferRange(GPFLUSHMAPPEDNAMEDBUFFERRANGE fnptr, GLuint buffer, GLintptr offset, GLsizeiptr length) {
+// (*fnptr)(buffer, offset, length);
+// }
+// static void glowFlushMappedNamedBufferRangeEXT(GPFLUSHMAPPEDNAMEDBUFFERRANGEEXT fnptr, GLuint buffer, GLintptr offset, GLsizeiptr length) {
+// (*fnptr)(buffer, offset, length);
+// }
+// static void glowFogCoordFormatNV(GPFOGCOORDFORMATNV fnptr, GLenum type, GLsizei stride) {
+// (*fnptr)(type, stride);
+// }
+// static void glowFragmentCoverageColorNV(GPFRAGMENTCOVERAGECOLORNV fnptr, GLuint color) {
+// (*fnptr)(color);
+// }
+// static void glowFramebufferDrawBufferEXT(GPFRAMEBUFFERDRAWBUFFEREXT fnptr, GLuint framebuffer, GLenum mode) {
+// (*fnptr)(framebuffer, mode);
+// }
+// static void glowFramebufferDrawBuffersEXT(GPFRAMEBUFFERDRAWBUFFERSEXT fnptr, GLuint framebuffer, GLsizei n, const GLenum * bufs) {
+// (*fnptr)(framebuffer, n, bufs);
+// }
+// static void glowFramebufferFetchBarrierEXT(GPFRAMEBUFFERFETCHBARRIEREXT fnptr) {
+// (*fnptr)();
+// }
+// static void glowFramebufferParameteri(GPFRAMEBUFFERPARAMETERI fnptr, GLenum target, GLenum pname, GLint param) {
+// (*fnptr)(target, pname, param);
+// }
+// static void glowFramebufferParameteriMESA(GPFRAMEBUFFERPARAMETERIMESA fnptr, GLenum target, GLenum pname, GLint param) {
+// (*fnptr)(target, pname, param);
+// }
+// static void glowFramebufferReadBufferEXT(GPFRAMEBUFFERREADBUFFEREXT fnptr, GLuint framebuffer, GLenum mode) {
+// (*fnptr)(framebuffer, mode);
+// }
+// static void glowFramebufferRenderbuffer(GPFRAMEBUFFERRENDERBUFFER fnptr, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) {
+// (*fnptr)(target, attachment, renderbuffertarget, renderbuffer);
+// }
+// static void glowFramebufferSampleLocationsfvARB(GPFRAMEBUFFERSAMPLELOCATIONSFVARB fnptr, GLenum target, GLuint start, GLsizei count, const GLfloat * v) {
+// (*fnptr)(target, start, count, v);
+// }
+// static void glowFramebufferSampleLocationsfvNV(GPFRAMEBUFFERSAMPLELOCATIONSFVNV fnptr, GLenum target, GLuint start, GLsizei count, const GLfloat * v) {
+// (*fnptr)(target, start, count, v);
+// }
+// static void glowFramebufferTexture(GPFRAMEBUFFERTEXTURE fnptr, GLenum target, GLenum attachment, GLuint texture, GLint level) {
+// (*fnptr)(target, attachment, texture, level);
+// }
+// static void glowFramebufferTexture1D(GPFRAMEBUFFERTEXTURE1D fnptr, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) {
+// (*fnptr)(target, attachment, textarget, texture, level);
+// }
+// static void glowFramebufferTexture2D(GPFRAMEBUFFERTEXTURE2D fnptr, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) {
+// (*fnptr)(target, attachment, textarget, texture, level);
+// }
+// static void glowFramebufferTexture3D(GPFRAMEBUFFERTEXTURE3D fnptr, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) {
+// (*fnptr)(target, attachment, textarget, texture, level, zoffset);
+// }
+// static void glowFramebufferTextureARB(GPFRAMEBUFFERTEXTUREARB fnptr, GLenum target, GLenum attachment, GLuint texture, GLint level) {
+// (*fnptr)(target, attachment, texture, level);
+// }
+// static void glowFramebufferTextureFaceARB(GPFRAMEBUFFERTEXTUREFACEARB fnptr, GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face) {
+// (*fnptr)(target, attachment, texture, level, face);
+// }
+// static void glowFramebufferTextureLayer(GPFRAMEBUFFERTEXTURELAYER fnptr, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer) {
+// (*fnptr)(target, attachment, texture, level, layer);
+// }
+// static void glowFramebufferTextureLayerARB(GPFRAMEBUFFERTEXTURELAYERARB fnptr, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer) {
+// (*fnptr)(target, attachment, texture, level, layer);
+// }
+// static void glowFramebufferTextureMultiviewOVR(GPFRAMEBUFFERTEXTUREMULTIVIEWOVR fnptr, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews) {
+// (*fnptr)(target, attachment, texture, level, baseViewIndex, numViews);
+// }
+// static void glowFrontFace(GPFRONTFACE fnptr, GLenum mode) {
+// (*fnptr)(mode);
+// }
+// static void glowGenBuffers(GPGENBUFFERS fnptr, GLsizei n, GLuint * buffers) {
+// (*fnptr)(n, buffers);
+// }
+// static void glowGenFramebuffers(GPGENFRAMEBUFFERS fnptr, GLsizei n, GLuint * framebuffers) {
+// (*fnptr)(n, framebuffers);
+// }
+// static GLuint glowGenPathsNV(GPGENPATHSNV fnptr, GLsizei range) {
+// return (*fnptr)(range);
+// }
+// static void glowGenPerfMonitorsAMD(GPGENPERFMONITORSAMD fnptr, GLsizei n, GLuint * monitors) {
+// (*fnptr)(n, monitors);
+// }
+// static void glowGenProgramPipelines(GPGENPROGRAMPIPELINES fnptr, GLsizei n, GLuint * pipelines) {
+// (*fnptr)(n, pipelines);
+// }
+// static void glowGenProgramPipelinesEXT(GPGENPROGRAMPIPELINESEXT fnptr, GLsizei n, GLuint * pipelines) {
+// (*fnptr)(n, pipelines);
+// }
+// static void glowGenQueries(GPGENQUERIES fnptr, GLsizei n, GLuint * ids) {
+// (*fnptr)(n, ids);
+// }
+// static void glowGenRenderbuffers(GPGENRENDERBUFFERS fnptr, GLsizei n, GLuint * renderbuffers) {
+// (*fnptr)(n, renderbuffers);
+// }
+// static void glowGenSamplers(GPGENSAMPLERS fnptr, GLsizei count, GLuint * samplers) {
+// (*fnptr)(count, samplers);
+// }
+// static void glowGenTextures(GPGENTEXTURES fnptr, GLsizei n, GLuint * textures) {
+// (*fnptr)(n, textures);
+// }
+// static void glowGenTransformFeedbacks(GPGENTRANSFORMFEEDBACKS fnptr, GLsizei n, GLuint * ids) {
+// (*fnptr)(n, ids);
+// }
+// static void glowGenVertexArrays(GPGENVERTEXARRAYS fnptr, GLsizei n, GLuint * arrays) {
+// (*fnptr)(n, arrays);
+// }
+// static void glowGenerateMipmap(GPGENERATEMIPMAP fnptr, GLenum target) {
+// (*fnptr)(target);
+// }
+// static void glowGenerateMultiTexMipmapEXT(GPGENERATEMULTITEXMIPMAPEXT fnptr, GLenum texunit, GLenum target) {
+// (*fnptr)(texunit, target);
+// }
+// static void glowGenerateTextureMipmap(GPGENERATETEXTUREMIPMAP fnptr, GLuint texture) {
+// (*fnptr)(texture);
+// }
+// static void glowGenerateTextureMipmapEXT(GPGENERATETEXTUREMIPMAPEXT fnptr, GLuint texture, GLenum target) {
+// (*fnptr)(texture, target);
+// }
+// static void glowGetActiveAtomicCounterBufferiv(GPGETACTIVEATOMICCOUNTERBUFFERIV fnptr, GLuint program, GLuint bufferIndex, GLenum pname, GLint * params) {
+// (*fnptr)(program, bufferIndex, pname, params);
+// }
+// static void glowGetActiveAttrib(GPGETACTIVEATTRIB fnptr, GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name) {
+// (*fnptr)(program, index, bufSize, length, size, type, name);
+// }
+// static void glowGetActiveSubroutineName(GPGETACTIVESUBROUTINENAME fnptr, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name) {
+// (*fnptr)(program, shadertype, index, bufSize, length, name);
+// }
+// static void glowGetActiveSubroutineUniformName(GPGETACTIVESUBROUTINEUNIFORMNAME fnptr, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name) {
+// (*fnptr)(program, shadertype, index, bufSize, length, name);
+// }
+// static void glowGetActiveSubroutineUniformiv(GPGETACTIVESUBROUTINEUNIFORMIV fnptr, GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint * values) {
+// (*fnptr)(program, shadertype, index, pname, values);
+// }
+// static void glowGetActiveUniform(GPGETACTIVEUNIFORM fnptr, GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name) {
+// (*fnptr)(program, index, bufSize, length, size, type, name);
+// }
+// static void glowGetActiveUniformBlockName(GPGETACTIVEUNIFORMBLOCKNAME fnptr, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformBlockName) {
+// (*fnptr)(program, uniformBlockIndex, bufSize, length, uniformBlockName);
+// }
+// static void glowGetActiveUniformBlockiv(GPGETACTIVEUNIFORMBLOCKIV fnptr, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint * params) {
+// (*fnptr)(program, uniformBlockIndex, pname, params);
+// }
+// static void glowGetActiveUniformName(GPGETACTIVEUNIFORMNAME fnptr, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformName) {
+// (*fnptr)(program, uniformIndex, bufSize, length, uniformName);
+// }
+// static void glowGetActiveUniformsiv(GPGETACTIVEUNIFORMSIV fnptr, GLuint program, GLsizei uniformCount, const GLuint * uniformIndices, GLenum pname, GLint * params) {
+// (*fnptr)(program, uniformCount, uniformIndices, pname, params);
+// }
+// static void glowGetAttachedShaders(GPGETATTACHEDSHADERS fnptr, GLuint program, GLsizei maxCount, GLsizei * count, GLuint * shaders) {
+// (*fnptr)(program, maxCount, count, shaders);
+// }
+// static GLint glowGetAttribLocation(GPGETATTRIBLOCATION fnptr, GLuint program, const GLchar * name) {
+// return (*fnptr)(program, name);
+// }
+// static void glowGetBooleanIndexedvEXT(GPGETBOOLEANINDEXEDVEXT fnptr, GLenum target, GLuint index, GLboolean * data) {
+// (*fnptr)(target, index, data);
+// }
+// static void glowGetBooleani_v(GPGETBOOLEANI_V fnptr, GLenum target, GLuint index, GLboolean * data) {
+// (*fnptr)(target, index, data);
+// }
+// static void glowGetBooleanv(GPGETBOOLEANV fnptr, GLenum pname, GLboolean * data) {
+// (*fnptr)(pname, data);
+// }
+// static void glowGetBufferParameteri64v(GPGETBUFFERPARAMETERI64V fnptr, GLenum target, GLenum pname, GLint64 * params) {
+// (*fnptr)(target, pname, params);
+// }
+// static void glowGetBufferParameteriv(GPGETBUFFERPARAMETERIV fnptr, GLenum target, GLenum pname, GLint * params) {
+// (*fnptr)(target, pname, params);
+// }
+// static void glowGetBufferParameterui64vNV(GPGETBUFFERPARAMETERUI64VNV fnptr, GLenum target, GLenum pname, GLuint64EXT * params) {
+// (*fnptr)(target, pname, params);
+// }
+// static void glowGetBufferPointerv(GPGETBUFFERPOINTERV fnptr, GLenum target, GLenum pname, void ** params) {
+// (*fnptr)(target, pname, params);
+// }
+// static void glowGetBufferSubData(GPGETBUFFERSUBDATA fnptr, GLenum target, GLintptr offset, GLsizeiptr size, void * data) {
+// (*fnptr)(target, offset, size, data);
+// }
+// static GLuint glowGetCommandHeaderNV(GPGETCOMMANDHEADERNV fnptr, GLenum tokenID, GLuint size) {
+// return (*fnptr)(tokenID, size);
+// }
+// static void glowGetCompressedMultiTexImageEXT(GPGETCOMPRESSEDMULTITEXIMAGEEXT fnptr, GLenum texunit, GLenum target, GLint lod, void * img) {
+// (*fnptr)(texunit, target, lod, img);
+// }
+// static void glowGetCompressedTexImage(GPGETCOMPRESSEDTEXIMAGE fnptr, GLenum target, GLint level, void * img) {
+// (*fnptr)(target, level, img);
+// }
+// static void glowGetCompressedTextureImage(GPGETCOMPRESSEDTEXTUREIMAGE fnptr, GLuint texture, GLint level, GLsizei bufSize, void * pixels) {
+// (*fnptr)(texture, level, bufSize, pixels);
+// }
+// static void glowGetCompressedTextureImageEXT(GPGETCOMPRESSEDTEXTUREIMAGEEXT fnptr, GLuint texture, GLenum target, GLint lod, void * img) {
+// (*fnptr)(texture, target, lod, img);
+// }
+// static void glowGetCompressedTextureSubImage(GPGETCOMPRESSEDTEXTURESUBIMAGE fnptr, GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void * pixels) {
+// (*fnptr)(texture, level, xoffset, yoffset, zoffset, width, height, depth, bufSize, pixels);
+// }
+// static void glowGetCoverageModulationTableNV(GPGETCOVERAGEMODULATIONTABLENV fnptr, GLsizei bufSize, GLfloat * v) {
+// (*fnptr)(bufSize, v);
+// }
+// static GLuint glowGetDebugMessageLog(GPGETDEBUGMESSAGELOG fnptr, GLuint count, GLsizei bufSize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog) {
+// return (*fnptr)(count, bufSize, sources, types, ids, severities, lengths, messageLog);
+// }
+// static GLuint glowGetDebugMessageLogARB(GPGETDEBUGMESSAGELOGARB fnptr, GLuint count, GLsizei bufSize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog) {
+// return (*fnptr)(count, bufSize, sources, types, ids, severities, lengths, messageLog);
+// }
+// static GLuint glowGetDebugMessageLogKHR(GPGETDEBUGMESSAGELOGKHR fnptr, GLuint count, GLsizei bufSize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog) {
+// return (*fnptr)(count, bufSize, sources, types, ids, severities, lengths, messageLog);
+// }
+// static void glowGetDoubleIndexedvEXT(GPGETDOUBLEINDEXEDVEXT fnptr, GLenum target, GLuint index, GLdouble * data) {
+// (*fnptr)(target, index, data);
+// }
+// static void glowGetDoublei_v(GPGETDOUBLEI_V fnptr, GLenum target, GLuint index, GLdouble * data) {
+// (*fnptr)(target, index, data);
+// }
+// static void glowGetDoublei_vEXT(GPGETDOUBLEI_VEXT fnptr, GLenum pname, GLuint index, GLdouble * params) {
+// (*fnptr)(pname, index, params);
+// }
+// static void glowGetDoublev(GPGETDOUBLEV fnptr, GLenum pname, GLdouble * data) {
+// (*fnptr)(pname, data);
+// }
+// static GLenum glowGetError(GPGETERROR fnptr) {
+// return (*fnptr)();
+// }
+// static void glowGetFirstPerfQueryIdINTEL(GPGETFIRSTPERFQUERYIDINTEL fnptr, GLuint * queryId) {
+// (*fnptr)(queryId);
+// }
+// static void glowGetFloatIndexedvEXT(GPGETFLOATINDEXEDVEXT fnptr, GLenum target, GLuint index, GLfloat * data) {
+// (*fnptr)(target, index, data);
+// }
+// static void glowGetFloati_v(GPGETFLOATI_V fnptr, GLenum target, GLuint index, GLfloat * data) {
+// (*fnptr)(target, index, data);
+// }
+// static void glowGetFloati_vEXT(GPGETFLOATI_VEXT fnptr, GLenum pname, GLuint index, GLfloat * params) {
+// (*fnptr)(pname, index, params);
+// }
+// static void glowGetFloatv(GPGETFLOATV fnptr, GLenum pname, GLfloat * data) {
+// (*fnptr)(pname, data);
+// }
+// static GLint glowGetFragDataIndex(GPGETFRAGDATAINDEX fnptr, GLuint program, const GLchar * name) {
+// return (*fnptr)(program, name);
+// }
+// static GLint glowGetFragDataLocation(GPGETFRAGDATALOCATION fnptr, GLuint program, const GLchar * name) {
+// return (*fnptr)(program, name);
+// }
+// static void glowGetFramebufferAttachmentParameteriv(GPGETFRAMEBUFFERATTACHMENTPARAMETERIV fnptr, GLenum target, GLenum attachment, GLenum pname, GLint * params) {
+// (*fnptr)(target, attachment, pname, params);
+// }
+// static void glowGetFramebufferParameteriv(GPGETFRAMEBUFFERPARAMETERIV fnptr, GLenum target, GLenum pname, GLint * params) {
+// (*fnptr)(target, pname, params);
+// }
+// static void glowGetFramebufferParameterivEXT(GPGETFRAMEBUFFERPARAMETERIVEXT fnptr, GLuint framebuffer, GLenum pname, GLint * params) {
+// (*fnptr)(framebuffer, pname, params);
+// }
+// static void glowGetFramebufferParameterivMESA(GPGETFRAMEBUFFERPARAMETERIVMESA fnptr, GLenum target, GLenum pname, GLint * params) {
+// (*fnptr)(target, pname, params);
+// }
+// static GLenum glowGetGraphicsResetStatus(GPGETGRAPHICSRESETSTATUS fnptr) {
+// return (*fnptr)();
+// }
+// static GLenum glowGetGraphicsResetStatusARB(GPGETGRAPHICSRESETSTATUSARB fnptr) {
+// return (*fnptr)();
+// }
+// static GLenum glowGetGraphicsResetStatusKHR(GPGETGRAPHICSRESETSTATUSKHR fnptr) {
+// return (*fnptr)();
+// }
+// static GLuint64 glowGetImageHandleARB(GPGETIMAGEHANDLEARB fnptr, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format) {
+// return (*fnptr)(texture, level, layered, layer, format);
+// }
+// static GLuint64 glowGetImageHandleNV(GPGETIMAGEHANDLENV fnptr, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format) {
+// return (*fnptr)(texture, level, layered, layer, format);
+// }
+// static void glowGetInteger64i_v(GPGETINTEGER64I_V fnptr, GLenum target, GLuint index, GLint64 * data) {
+// (*fnptr)(target, index, data);
+// }
+// static void glowGetInteger64v(GPGETINTEGER64V fnptr, GLenum pname, GLint64 * data) {
+// (*fnptr)(pname, data);
+// }
+// static void glowGetIntegerIndexedvEXT(GPGETINTEGERINDEXEDVEXT fnptr, GLenum target, GLuint index, GLint * data) {
+// (*fnptr)(target, index, data);
+// }
+// static void glowGetIntegeri_v(GPGETINTEGERI_V fnptr, GLenum target, GLuint index, GLint * data) {
+// (*fnptr)(target, index, data);
+// }
+// static void glowGetIntegerui64i_vNV(GPGETINTEGERUI64I_VNV fnptr, GLenum value, GLuint index, GLuint64EXT * result) {
+// (*fnptr)(value, index, result);
+// }
+// static void glowGetIntegerui64vNV(GPGETINTEGERUI64VNV fnptr, GLenum value, GLuint64EXT * result) {
+// (*fnptr)(value, result);
+// }
+// static void glowGetIntegerv(GPGETINTEGERV fnptr, GLenum pname, GLint * data) {
+// (*fnptr)(pname, data);
+// }
+// static void glowGetInternalformatSampleivNV(GPGETINTERNALFORMATSAMPLEIVNV fnptr, GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint * params) {
+// (*fnptr)(target, internalformat, samples, pname, count, params);
+// }
+// static void glowGetInternalformati64v(GPGETINTERNALFORMATI64V fnptr, GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint64 * params) {
+// (*fnptr)(target, internalformat, pname, count, params);
+// }
+// static void glowGetInternalformativ(GPGETINTERNALFORMATIV fnptr, GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint * params) {
+// (*fnptr)(target, internalformat, pname, count, params);
+// }
+// static void glowGetMemoryObjectDetachedResourcesuivNV(GPGETMEMORYOBJECTDETACHEDRESOURCESUIVNV fnptr, GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint * params) {
+// (*fnptr)(memory, pname, first, count, params);
+// }
+// static void glowGetMultiTexEnvfvEXT(GPGETMULTITEXENVFVEXT fnptr, GLenum texunit, GLenum target, GLenum pname, GLfloat * params) {
+// (*fnptr)(texunit, target, pname, params);
+// }
+// static void glowGetMultiTexEnvivEXT(GPGETMULTITEXENVIVEXT fnptr, GLenum texunit, GLenum target, GLenum pname, GLint * params) {
+// (*fnptr)(texunit, target, pname, params);
+// }
+// static void glowGetMultiTexGendvEXT(GPGETMULTITEXGENDVEXT fnptr, GLenum texunit, GLenum coord, GLenum pname, GLdouble * params) {
+// (*fnptr)(texunit, coord, pname, params);
+// }
+// static void glowGetMultiTexGenfvEXT(GPGETMULTITEXGENFVEXT fnptr, GLenum texunit, GLenum coord, GLenum pname, GLfloat * params) {
+// (*fnptr)(texunit, coord, pname, params);
+// }
+// static void glowGetMultiTexGenivEXT(GPGETMULTITEXGENIVEXT fnptr, GLenum texunit, GLenum coord, GLenum pname, GLint * params) {
+// (*fnptr)(texunit, coord, pname, params);
+// }
+// static void glowGetMultiTexImageEXT(GPGETMULTITEXIMAGEEXT fnptr, GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void * pixels) {
+// (*fnptr)(texunit, target, level, format, type, pixels);
+// }
+// static void glowGetMultiTexLevelParameterfvEXT(GPGETMULTITEXLEVELPARAMETERFVEXT fnptr, GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat * params) {
+// (*fnptr)(texunit, target, level, pname, params);
+// }
+// static void glowGetMultiTexLevelParameterivEXT(GPGETMULTITEXLEVELPARAMETERIVEXT fnptr, GLenum texunit, GLenum target, GLint level, GLenum pname, GLint * params) {
+// (*fnptr)(texunit, target, level, pname, params);
+// }
+// static void glowGetMultiTexParameterIivEXT(GPGETMULTITEXPARAMETERIIVEXT fnptr, GLenum texunit, GLenum target, GLenum pname, GLint * params) {
+// (*fnptr)(texunit, target, pname, params);
+// }
+// static void glowGetMultiTexParameterIuivEXT(GPGETMULTITEXPARAMETERIUIVEXT fnptr, GLenum texunit, GLenum target, GLenum pname, GLuint * params) {
+// (*fnptr)(texunit, target, pname, params);
+// }
+// static void glowGetMultiTexParameterfvEXT(GPGETMULTITEXPARAMETERFVEXT fnptr, GLenum texunit, GLenum target, GLenum pname, GLfloat * params) {
+// (*fnptr)(texunit, target, pname, params);
+// }
+// static void glowGetMultiTexParameterivEXT(GPGETMULTITEXPARAMETERIVEXT fnptr, GLenum texunit, GLenum target, GLenum pname, GLint * params) {
+// (*fnptr)(texunit, target, pname, params);
+// }
+// static void glowGetMultisamplefv(GPGETMULTISAMPLEFV fnptr, GLenum pname, GLuint index, GLfloat * val) {
+// (*fnptr)(pname, index, val);
+// }
+// static void glowGetNamedBufferParameteri64v(GPGETNAMEDBUFFERPARAMETERI64V fnptr, GLuint buffer, GLenum pname, GLint64 * params) {
+// (*fnptr)(buffer, pname, params);
+// }
+// static void glowGetNamedBufferParameteriv(GPGETNAMEDBUFFERPARAMETERIV fnptr, GLuint buffer, GLenum pname, GLint * params) {
+// (*fnptr)(buffer, pname, params);
+// }
+// static void glowGetNamedBufferParameterivEXT(GPGETNAMEDBUFFERPARAMETERIVEXT fnptr, GLuint buffer, GLenum pname, GLint * params) {
+// (*fnptr)(buffer, pname, params);
+// }
+// static void glowGetNamedBufferParameterui64vNV(GPGETNAMEDBUFFERPARAMETERUI64VNV fnptr, GLuint buffer, GLenum pname, GLuint64EXT * params) {
+// (*fnptr)(buffer, pname, params);
+// }
+// static void glowGetNamedBufferPointerv(GPGETNAMEDBUFFERPOINTERV fnptr, GLuint buffer, GLenum pname, void ** params) {
+// (*fnptr)(buffer, pname, params);
+// }
+// static void glowGetNamedBufferPointervEXT(GPGETNAMEDBUFFERPOINTERVEXT fnptr, GLuint buffer, GLenum pname, void ** params) {
+// (*fnptr)(buffer, pname, params);
+// }
+// static void glowGetNamedBufferSubData(GPGETNAMEDBUFFERSUBDATA fnptr, GLuint buffer, GLintptr offset, GLsizeiptr size, void * data) {
+// (*fnptr)(buffer, offset, size, data);
+// }
+// static void glowGetNamedBufferSubDataEXT(GPGETNAMEDBUFFERSUBDATAEXT fnptr, GLuint buffer, GLintptr offset, GLsizeiptr size, void * data) {
+// (*fnptr)(buffer, offset, size, data);
+// }
+// static void glowGetNamedFramebufferAttachmentParameteriv(GPGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIV fnptr, GLuint framebuffer, GLenum attachment, GLenum pname, GLint * params) {
+// (*fnptr)(framebuffer, attachment, pname, params);
+// }
+// static void glowGetNamedFramebufferAttachmentParameterivEXT(GPGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXT fnptr, GLuint framebuffer, GLenum attachment, GLenum pname, GLint * params) {
+// (*fnptr)(framebuffer, attachment, pname, params);
+// }
+// static void glowGetNamedFramebufferParameteriv(GPGETNAMEDFRAMEBUFFERPARAMETERIV fnptr, GLuint framebuffer, GLenum pname, GLint * param) {
+// (*fnptr)(framebuffer, pname, param);
+// }
+// static void glowGetNamedFramebufferParameterivEXT(GPGETNAMEDFRAMEBUFFERPARAMETERIVEXT fnptr, GLuint framebuffer, GLenum pname, GLint * params) {
+// (*fnptr)(framebuffer, pname, params);
+// }
+// static void glowGetNamedProgramLocalParameterIivEXT(GPGETNAMEDPROGRAMLOCALPARAMETERIIVEXT fnptr, GLuint program, GLenum target, GLuint index, GLint * params) {
+// (*fnptr)(program, target, index, params);
+// }
+// static void glowGetNamedProgramLocalParameterIuivEXT(GPGETNAMEDPROGRAMLOCALPARAMETERIUIVEXT fnptr, GLuint program, GLenum target, GLuint index, GLuint * params) {
+// (*fnptr)(program, target, index, params);
+// }
+// static void glowGetNamedProgramLocalParameterdvEXT(GPGETNAMEDPROGRAMLOCALPARAMETERDVEXT fnptr, GLuint program, GLenum target, GLuint index, GLdouble * params) {
+// (*fnptr)(program, target, index, params);
+// }
+// static void glowGetNamedProgramLocalParameterfvEXT(GPGETNAMEDPROGRAMLOCALPARAMETERFVEXT fnptr, GLuint program, GLenum target, GLuint index, GLfloat * params) {
+// (*fnptr)(program, target, index, params);
+// }
+// static void glowGetNamedProgramStringEXT(GPGETNAMEDPROGRAMSTRINGEXT fnptr, GLuint program, GLenum target, GLenum pname, void * string) {
+// (*fnptr)(program, target, pname, string);
+// }
+// static void glowGetNamedProgramivEXT(GPGETNAMEDPROGRAMIVEXT fnptr, GLuint program, GLenum target, GLenum pname, GLint * params) {
+// (*fnptr)(program, target, pname, params);
+// }
+// static void glowGetNamedRenderbufferParameteriv(GPGETNAMEDRENDERBUFFERPARAMETERIV fnptr, GLuint renderbuffer, GLenum pname, GLint * params) {
+// (*fnptr)(renderbuffer, pname, params);
+// }
+// static void glowGetNamedRenderbufferParameterivEXT(GPGETNAMEDRENDERBUFFERPARAMETERIVEXT fnptr, GLuint renderbuffer, GLenum pname, GLint * params) {
+// (*fnptr)(renderbuffer, pname, params);
+// }
+// static void glowGetNamedStringARB(GPGETNAMEDSTRINGARB fnptr, GLint namelen, const GLchar * name, GLsizei bufSize, GLint * stringlen, GLchar * string) {
+// (*fnptr)(namelen, name, bufSize, stringlen, string);
+// }
+// static void glowGetNamedStringivARB(GPGETNAMEDSTRINGIVARB fnptr, GLint namelen, const GLchar * name, GLenum pname, GLint * params) {
+// (*fnptr)(namelen, name, pname, params);
+// }
+// static void glowGetNextPerfQueryIdINTEL(GPGETNEXTPERFQUERYIDINTEL fnptr, GLuint queryId, GLuint * nextQueryId) {
+// (*fnptr)(queryId, nextQueryId);
+// }
+// static void glowGetObjectLabel(GPGETOBJECTLABEL fnptr, GLenum identifier, GLuint name, GLsizei bufSize, GLsizei * length, GLchar * label) {
+// (*fnptr)(identifier, name, bufSize, length, label);
+// }
+// static void glowGetObjectLabelEXT(GPGETOBJECTLABELEXT fnptr, GLenum type, GLuint object, GLsizei bufSize, GLsizei * length, GLchar * label) {
+// (*fnptr)(type, object, bufSize, length, label);
+// }
+// static void glowGetObjectLabelKHR(GPGETOBJECTLABELKHR fnptr, GLenum identifier, GLuint name, GLsizei bufSize, GLsizei * length, GLchar * label) {
+// (*fnptr)(identifier, name, bufSize, length, label);
+// }
+// static void glowGetObjectPtrLabel(GPGETOBJECTPTRLABEL fnptr, const void * ptr, GLsizei bufSize, GLsizei * length, GLchar * label) {
+// (*fnptr)(ptr, bufSize, length, label);
+// }
+// static void glowGetObjectPtrLabelKHR(GPGETOBJECTPTRLABELKHR fnptr, const void * ptr, GLsizei bufSize, GLsizei * length, GLchar * label) {
+// (*fnptr)(ptr, bufSize, length, label);
+// }
+// static void glowGetPathCommandsNV(GPGETPATHCOMMANDSNV fnptr, GLuint path, GLubyte * commands) {
+// (*fnptr)(path, commands);
+// }
+// static void glowGetPathCoordsNV(GPGETPATHCOORDSNV fnptr, GLuint path, GLfloat * coords) {
+// (*fnptr)(path, coords);
+// }
+// static void glowGetPathDashArrayNV(GPGETPATHDASHARRAYNV fnptr, GLuint path, GLfloat * dashArray) {
+// (*fnptr)(path, dashArray);
+// }
+// static GLfloat glowGetPathLengthNV(GPGETPATHLENGTHNV fnptr, GLuint path, GLsizei startSegment, GLsizei numSegments) {
+// return (*fnptr)(path, startSegment, numSegments);
+// }
+// static void glowGetPathMetricRangeNV(GPGETPATHMETRICRANGENV fnptr, GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat * metrics) {
+// (*fnptr)(metricQueryMask, firstPathName, numPaths, stride, metrics);
+// }
+// static void glowGetPathMetricsNV(GPGETPATHMETRICSNV fnptr, GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLsizei stride, GLfloat * metrics) {
+// (*fnptr)(metricQueryMask, numPaths, pathNameType, paths, pathBase, stride, metrics);
+// }
+// static void glowGetPathParameterfvNV(GPGETPATHPARAMETERFVNV fnptr, GLuint path, GLenum pname, GLfloat * value) {
+// (*fnptr)(path, pname, value);
+// }
+// static void glowGetPathParameterivNV(GPGETPATHPARAMETERIVNV fnptr, GLuint path, GLenum pname, GLint * value) {
+// (*fnptr)(path, pname, value);
+// }
+// static void glowGetPathSpacingNV(GPGETPATHSPACINGNV fnptr, GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat * returnedSpacing) {
+// (*fnptr)(pathListMode, numPaths, pathNameType, paths, pathBase, advanceScale, kerningScale, transformType, returnedSpacing);
+// }
+// static void glowGetPerfCounterInfoINTEL(GPGETPERFCOUNTERINFOINTEL fnptr, GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar * counterName, GLuint counterDescLength, GLchar * counterDesc, GLuint * counterOffset, GLuint * counterDataSize, GLuint * counterTypeEnum, GLuint * counterDataTypeEnum, GLuint64 * rawCounterMaxValue) {
+// (*fnptr)(queryId, counterId, counterNameLength, counterName, counterDescLength, counterDesc, counterOffset, counterDataSize, counterTypeEnum, counterDataTypeEnum, rawCounterMaxValue);
+// }
+// static void glowGetPerfMonitorCounterDataAMD(GPGETPERFMONITORCOUNTERDATAAMD fnptr, GLuint monitor, GLenum pname, GLsizei dataSize, GLuint * data, GLint * bytesWritten) {
+// (*fnptr)(monitor, pname, dataSize, data, bytesWritten);
+// }
+// static void glowGetPerfMonitorCounterInfoAMD(GPGETPERFMONITORCOUNTERINFOAMD fnptr, GLuint group, GLuint counter, GLenum pname, void * data) {
+// (*fnptr)(group, counter, pname, data);
+// }
+// static void glowGetPerfMonitorCounterStringAMD(GPGETPERFMONITORCOUNTERSTRINGAMD fnptr, GLuint group, GLuint counter, GLsizei bufSize, GLsizei * length, GLchar * counterString) {
+// (*fnptr)(group, counter, bufSize, length, counterString);
+// }
+// static void glowGetPerfMonitorCountersAMD(GPGETPERFMONITORCOUNTERSAMD fnptr, GLuint group, GLint * numCounters, GLint * maxActiveCounters, GLsizei counterSize, GLuint * counters) {
+// (*fnptr)(group, numCounters, maxActiveCounters, counterSize, counters);
+// }
+// static void glowGetPerfMonitorGroupStringAMD(GPGETPERFMONITORGROUPSTRINGAMD fnptr, GLuint group, GLsizei bufSize, GLsizei * length, GLchar * groupString) {
+// (*fnptr)(group, bufSize, length, groupString);
+// }
+// static void glowGetPerfMonitorGroupsAMD(GPGETPERFMONITORGROUPSAMD fnptr, GLint * numGroups, GLsizei groupsSize, GLuint * groups) {
+// (*fnptr)(numGroups, groupsSize, groups);
+// }
+// static void glowGetPerfQueryDataINTEL(GPGETPERFQUERYDATAINTEL fnptr, GLuint queryHandle, GLuint flags, GLsizei dataSize, void * data, GLuint * bytesWritten) {
+// (*fnptr)(queryHandle, flags, dataSize, data, bytesWritten);
+// }
+// static void glowGetPerfQueryIdByNameINTEL(GPGETPERFQUERYIDBYNAMEINTEL fnptr, GLchar * queryName, GLuint * queryId) {
+// (*fnptr)(queryName, queryId);
+// }
+// static void glowGetPerfQueryInfoINTEL(GPGETPERFQUERYINFOINTEL fnptr, GLuint queryId, GLuint queryNameLength, GLchar * queryName, GLuint * dataSize, GLuint * noCounters, GLuint * noInstances, GLuint * capsMask) {
+// (*fnptr)(queryId, queryNameLength, queryName, dataSize, noCounters, noInstances, capsMask);
+// }
+// static void glowGetPointerIndexedvEXT(GPGETPOINTERINDEXEDVEXT fnptr, GLenum target, GLuint index, void ** data) {
+// (*fnptr)(target, index, data);
+// }
+// static void glowGetPointeri_vEXT(GPGETPOINTERI_VEXT fnptr, GLenum pname, GLuint index, void ** params) {
+// (*fnptr)(pname, index, params);
+// }
+// static void glowGetPointerv(GPGETPOINTERV fnptr, GLenum pname, void ** params) {
+// (*fnptr)(pname, params);
+// }
+// static void glowGetPointervKHR(GPGETPOINTERVKHR fnptr, GLenum pname, void ** params) {
+// (*fnptr)(pname, params);
+// }
+// static void glowGetProgramBinary(GPGETPROGRAMBINARY fnptr, GLuint program, GLsizei bufSize, GLsizei * length, GLenum * binaryFormat, void * binary) {
+// (*fnptr)(program, bufSize, length, binaryFormat, binary);
+// }
+// static void glowGetProgramInfoLog(GPGETPROGRAMINFOLOG fnptr, GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog) {
+// (*fnptr)(program, bufSize, length, infoLog);
+// }
+// static void glowGetProgramInterfaceiv(GPGETPROGRAMINTERFACEIV fnptr, GLuint program, GLenum programInterface, GLenum pname, GLint * params) {
+// (*fnptr)(program, programInterface, pname, params);
+// }
+// static void glowGetProgramPipelineInfoLog(GPGETPROGRAMPIPELINEINFOLOG fnptr, GLuint pipeline, GLsizei bufSize, GLsizei * length, GLchar * infoLog) {
+// (*fnptr)(pipeline, bufSize, length, infoLog);
+// }
+// static void glowGetProgramPipelineInfoLogEXT(GPGETPROGRAMPIPELINEINFOLOGEXT fnptr, GLuint pipeline, GLsizei bufSize, GLsizei * length, GLchar * infoLog) {
+// (*fnptr)(pipeline, bufSize, length, infoLog);
+// }
+// static void glowGetProgramPipelineiv(GPGETPROGRAMPIPELINEIV fnptr, GLuint pipeline, GLenum pname, GLint * params) {
+// (*fnptr)(pipeline, pname, params);
+// }
+// static void glowGetProgramPipelineivEXT(GPGETPROGRAMPIPELINEIVEXT fnptr, GLuint pipeline, GLenum pname, GLint * params) {
+// (*fnptr)(pipeline, pname, params);
+// }
+// static GLuint glowGetProgramResourceIndex(GPGETPROGRAMRESOURCEINDEX fnptr, GLuint program, GLenum programInterface, const GLchar * name) {
+// return (*fnptr)(program, programInterface, name);
+// }
+// static GLint glowGetProgramResourceLocation(GPGETPROGRAMRESOURCELOCATION fnptr, GLuint program, GLenum programInterface, const GLchar * name) {
+// return (*fnptr)(program, programInterface, name);
+// }
+// static GLint glowGetProgramResourceLocationIndex(GPGETPROGRAMRESOURCELOCATIONINDEX fnptr, GLuint program, GLenum programInterface, const GLchar * name) {
+// return (*fnptr)(program, programInterface, name);
+// }
+// static void glowGetProgramResourceName(GPGETPROGRAMRESOURCENAME fnptr, GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name) {
+// (*fnptr)(program, programInterface, index, bufSize, length, name);
+// }
+// static void glowGetProgramResourcefvNV(GPGETPROGRAMRESOURCEFVNV fnptr, GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum * props, GLsizei count, GLsizei * length, GLfloat * params) {
+// (*fnptr)(program, programInterface, index, propCount, props, count, length, params);
+// }
+// static void glowGetProgramResourceiv(GPGETPROGRAMRESOURCEIV fnptr, GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum * props, GLsizei count, GLsizei * length, GLint * params) {
+// (*fnptr)(program, programInterface, index, propCount, props, count, length, params);
+// }
+// static void glowGetProgramStageiv(GPGETPROGRAMSTAGEIV fnptr, GLuint program, GLenum shadertype, GLenum pname, GLint * values) {
+// (*fnptr)(program, shadertype, pname, values);
+// }
+// static void glowGetProgramiv(GPGETPROGRAMIV fnptr, GLuint program, GLenum pname, GLint * params) {
+// (*fnptr)(program, pname, params);
+// }
+// static void glowGetQueryBufferObjecti64v(GPGETQUERYBUFFEROBJECTI64V fnptr, GLuint id, GLuint buffer, GLenum pname, GLintptr offset) {
+// (*fnptr)(id, buffer, pname, offset);
+// }
+// static void glowGetQueryBufferObjectiv(GPGETQUERYBUFFEROBJECTIV fnptr, GLuint id, GLuint buffer, GLenum pname, GLintptr offset) {
+// (*fnptr)(id, buffer, pname, offset);
+// }
+// static void glowGetQueryBufferObjectui64v(GPGETQUERYBUFFEROBJECTUI64V fnptr, GLuint id, GLuint buffer, GLenum pname, GLintptr offset) {
+// (*fnptr)(id, buffer, pname, offset);
+// }
+// static void glowGetQueryBufferObjectuiv(GPGETQUERYBUFFEROBJECTUIV fnptr, GLuint id, GLuint buffer, GLenum pname, GLintptr offset) {
+// (*fnptr)(id, buffer, pname, offset);
+// }
+// static void glowGetQueryIndexediv(GPGETQUERYINDEXEDIV fnptr, GLenum target, GLuint index, GLenum pname, GLint * params) {
+// (*fnptr)(target, index, pname, params);
+// }
+// static void glowGetQueryObjecti64v(GPGETQUERYOBJECTI64V fnptr, GLuint id, GLenum pname, GLint64 * params) {
+// (*fnptr)(id, pname, params);
+// }
+// static void glowGetQueryObjectiv(GPGETQUERYOBJECTIV fnptr, GLuint id, GLenum pname, GLint * params) {
+// (*fnptr)(id, pname, params);
+// }
+// static void glowGetQueryObjectui64v(GPGETQUERYOBJECTUI64V fnptr, GLuint id, GLenum pname, GLuint64 * params) {
+// (*fnptr)(id, pname, params);
+// }
+// static void glowGetQueryObjectuiv(GPGETQUERYOBJECTUIV fnptr, GLuint id, GLenum pname, GLuint * params) {
+// (*fnptr)(id, pname, params);
+// }
+// static void glowGetQueryiv(GPGETQUERYIV fnptr, GLenum target, GLenum pname, GLint * params) {
+// (*fnptr)(target, pname, params);
+// }
+// static void glowGetRenderbufferParameteriv(GPGETRENDERBUFFERPARAMETERIV fnptr, GLenum target, GLenum pname, GLint * params) {
+// (*fnptr)(target, pname, params);
+// }
+// static void glowGetSamplerParameterIiv(GPGETSAMPLERPARAMETERIIV fnptr, GLuint sampler, GLenum pname, GLint * params) {
+// (*fnptr)(sampler, pname, params);
+// }
+// static void glowGetSamplerParameterIuiv(GPGETSAMPLERPARAMETERIUIV fnptr, GLuint sampler, GLenum pname, GLuint * params) {
+// (*fnptr)(sampler, pname, params);
+// }
+// static void glowGetSamplerParameterfv(GPGETSAMPLERPARAMETERFV fnptr, GLuint sampler, GLenum pname, GLfloat * params) {
+// (*fnptr)(sampler, pname, params);
+// }
+// static void glowGetSamplerParameteriv(GPGETSAMPLERPARAMETERIV fnptr, GLuint sampler, GLenum pname, GLint * params) {
+// (*fnptr)(sampler, pname, params);
+// }
+// static void glowGetShaderInfoLog(GPGETSHADERINFOLOG fnptr, GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog) {
+// (*fnptr)(shader, bufSize, length, infoLog);
+// }
+// static void glowGetShaderPrecisionFormat(GPGETSHADERPRECISIONFORMAT fnptr, GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision) {
+// (*fnptr)(shadertype, precisiontype, range, precision);
+// }
+// static void glowGetShaderSource(GPGETSHADERSOURCE fnptr, GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source) {
+// (*fnptr)(shader, bufSize, length, source);
+// }
+// static void glowGetShaderiv(GPGETSHADERIV fnptr, GLuint shader, GLenum pname, GLint * params) {
+// (*fnptr)(shader, pname, params);
+// }
+// static void glowGetShadingRateImagePaletteNV(GPGETSHADINGRATEIMAGEPALETTENV fnptr, GLuint viewport, GLuint entry, GLenum * rate) {
+// (*fnptr)(viewport, entry, rate);
+// }
+// static void glowGetShadingRateSampleLocationivNV(GPGETSHADINGRATESAMPLELOCATIONIVNV fnptr, GLenum rate, GLuint samples, GLuint index, GLint * location) {
+// (*fnptr)(rate, samples, index, location);
+// }
+// static GLushort glowGetStageIndexNV(GPGETSTAGEINDEXNV fnptr, GLenum shadertype) {
+// return (*fnptr)(shadertype);
+// }
+// static const GLubyte * glowGetString(GPGETSTRING fnptr, GLenum name) {
+// return (*fnptr)(name);
+// }
+// static const GLubyte * glowGetStringi(GPGETSTRINGI fnptr, GLenum name, GLuint index) {
+// return (*fnptr)(name, index);
+// }
+// static GLuint glowGetSubroutineIndex(GPGETSUBROUTINEINDEX fnptr, GLuint program, GLenum shadertype, const GLchar * name) {
+// return (*fnptr)(program, shadertype, name);
+// }
+// static GLint glowGetSubroutineUniformLocation(GPGETSUBROUTINEUNIFORMLOCATION fnptr, GLuint program, GLenum shadertype, const GLchar * name) {
+// return (*fnptr)(program, shadertype, name);
+// }
+// static void glowGetSynciv(GPGETSYNCIV fnptr, GLsync sync, GLenum pname, GLsizei count, GLsizei * length, GLint * values) {
+// (*fnptr)(sync, pname, count, length, values);
+// }
+// static void glowGetTexImage(GPGETTEXIMAGE fnptr, GLenum target, GLint level, GLenum format, GLenum type, void * pixels) {
+// (*fnptr)(target, level, format, type, pixels);
+// }
+// static void glowGetTexLevelParameterfv(GPGETTEXLEVELPARAMETERFV fnptr, GLenum target, GLint level, GLenum pname, GLfloat * params) {
+// (*fnptr)(target, level, pname, params);
+// }
+// static void glowGetTexLevelParameteriv(GPGETTEXLEVELPARAMETERIV fnptr, GLenum target, GLint level, GLenum pname, GLint * params) {
+// (*fnptr)(target, level, pname, params);
+// }
+// static void glowGetTexParameterIiv(GPGETTEXPARAMETERIIV fnptr, GLenum target, GLenum pname, GLint * params) {
+// (*fnptr)(target, pname, params);
+// }
+// static void glowGetTexParameterIuiv(GPGETTEXPARAMETERIUIV fnptr, GLenum target, GLenum pname, GLuint * params) {
+// (*fnptr)(target, pname, params);
+// }
+// static void glowGetTexParameterfv(GPGETTEXPARAMETERFV fnptr, GLenum target, GLenum pname, GLfloat * params) {
+// (*fnptr)(target, pname, params);
+// }
+// static void glowGetTexParameteriv(GPGETTEXPARAMETERIV fnptr, GLenum target, GLenum pname, GLint * params) {
+// (*fnptr)(target, pname, params);
+// }
+// static GLuint64 glowGetTextureHandleARB(GPGETTEXTUREHANDLEARB fnptr, GLuint texture) {
+// return (*fnptr)(texture);
+// }
+// static GLuint64 glowGetTextureHandleNV(GPGETTEXTUREHANDLENV fnptr, GLuint texture) {
+// return (*fnptr)(texture);
+// }
+// static void glowGetTextureImage(GPGETTEXTUREIMAGE fnptr, GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void * pixels) {
+// (*fnptr)(texture, level, format, type, bufSize, pixels);
+// }
+// static void glowGetTextureImageEXT(GPGETTEXTUREIMAGEEXT fnptr, GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void * pixels) {
+// (*fnptr)(texture, target, level, format, type, pixels);
+// }
+// static void glowGetTextureLevelParameterfv(GPGETTEXTURELEVELPARAMETERFV fnptr, GLuint texture, GLint level, GLenum pname, GLfloat * params) {
+// (*fnptr)(texture, level, pname, params);
+// }
+// static void glowGetTextureLevelParameterfvEXT(GPGETTEXTURELEVELPARAMETERFVEXT fnptr, GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat * params) {
+// (*fnptr)(texture, target, level, pname, params);
+// }
+// static void glowGetTextureLevelParameteriv(GPGETTEXTURELEVELPARAMETERIV fnptr, GLuint texture, GLint level, GLenum pname, GLint * params) {
+// (*fnptr)(texture, level, pname, params);
+// }
+// static void glowGetTextureLevelParameterivEXT(GPGETTEXTURELEVELPARAMETERIVEXT fnptr, GLuint texture, GLenum target, GLint level, GLenum pname, GLint * params) {
+// (*fnptr)(texture, target, level, pname, params);
+// }
+// static void glowGetTextureParameterIiv(GPGETTEXTUREPARAMETERIIV fnptr, GLuint texture, GLenum pname, GLint * params) {
+// (*fnptr)(texture, pname, params);
+// }
+// static void glowGetTextureParameterIivEXT(GPGETTEXTUREPARAMETERIIVEXT fnptr, GLuint texture, GLenum target, GLenum pname, GLint * params) {
+// (*fnptr)(texture, target, pname, params);
+// }
+// static void glowGetTextureParameterIuiv(GPGETTEXTUREPARAMETERIUIV fnptr, GLuint texture, GLenum pname, GLuint * params) {
+// (*fnptr)(texture, pname, params);
+// }
+// static void glowGetTextureParameterIuivEXT(GPGETTEXTUREPARAMETERIUIVEXT fnptr, GLuint texture, GLenum target, GLenum pname, GLuint * params) {
+// (*fnptr)(texture, target, pname, params);
+// }
+// static void glowGetTextureParameterfv(GPGETTEXTUREPARAMETERFV fnptr, GLuint texture, GLenum pname, GLfloat * params) {
+// (*fnptr)(texture, pname, params);
+// }
+// static void glowGetTextureParameterfvEXT(GPGETTEXTUREPARAMETERFVEXT fnptr, GLuint texture, GLenum target, GLenum pname, GLfloat * params) {
+// (*fnptr)(texture, target, pname, params);
+// }
+// static void glowGetTextureParameteriv(GPGETTEXTUREPARAMETERIV fnptr, GLuint texture, GLenum pname, GLint * params) {
+// (*fnptr)(texture, pname, params);
+// }
+// static void glowGetTextureParameterivEXT(GPGETTEXTUREPARAMETERIVEXT fnptr, GLuint texture, GLenum target, GLenum pname, GLint * params) {
+// (*fnptr)(texture, target, pname, params);
+// }
+// static GLuint64 glowGetTextureSamplerHandleARB(GPGETTEXTURESAMPLERHANDLEARB fnptr, GLuint texture, GLuint sampler) {
+// return (*fnptr)(texture, sampler);
+// }
+// static GLuint64 glowGetTextureSamplerHandleNV(GPGETTEXTURESAMPLERHANDLENV fnptr, GLuint texture, GLuint sampler) {
+// return (*fnptr)(texture, sampler);
+// }
+// static void glowGetTextureSubImage(GPGETTEXTURESUBIMAGE fnptr, GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void * pixels) {
+// (*fnptr)(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bufSize, pixels);
+// }
+// static void glowGetTransformFeedbackVarying(GPGETTRANSFORMFEEDBACKVARYING fnptr, GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name) {
+// (*fnptr)(program, index, bufSize, length, size, type, name);
+// }
+// static void glowGetTransformFeedbacki64_v(GPGETTRANSFORMFEEDBACKI64_V fnptr, GLuint xfb, GLenum pname, GLuint index, GLint64 * param) {
+// (*fnptr)(xfb, pname, index, param);
+// }
+// static void glowGetTransformFeedbacki_v(GPGETTRANSFORMFEEDBACKI_V fnptr, GLuint xfb, GLenum pname, GLuint index, GLint * param) {
+// (*fnptr)(xfb, pname, index, param);
+// }
+// static void glowGetTransformFeedbackiv(GPGETTRANSFORMFEEDBACKIV fnptr, GLuint xfb, GLenum pname, GLint * param) {
+// (*fnptr)(xfb, pname, param);
+// }
+// static GLuint glowGetUniformBlockIndex(GPGETUNIFORMBLOCKINDEX fnptr, GLuint program, const GLchar * uniformBlockName) {
+// return (*fnptr)(program, uniformBlockName);
+// }
+// static void glowGetUniformIndices(GPGETUNIFORMINDICES fnptr, GLuint program, GLsizei uniformCount, const GLchar *const* uniformNames, GLuint * uniformIndices) {
+// (*fnptr)(program, uniformCount, uniformNames, uniformIndices);
+// }
+// static GLint glowGetUniformLocation(GPGETUNIFORMLOCATION fnptr, GLuint program, const GLchar * name) {
+// return (*fnptr)(program, name);
+// }
+// static void glowGetUniformSubroutineuiv(GPGETUNIFORMSUBROUTINEUIV fnptr, GLenum shadertype, GLint location, GLuint * params) {
+// (*fnptr)(shadertype, location, params);
+// }
+// static void glowGetUniformdv(GPGETUNIFORMDV fnptr, GLuint program, GLint location, GLdouble * params) {
+// (*fnptr)(program, location, params);
+// }
+// static void glowGetUniformfv(GPGETUNIFORMFV fnptr, GLuint program, GLint location, GLfloat * params) {
+// (*fnptr)(program, location, params);
+// }
+// static void glowGetUniformi64vARB(GPGETUNIFORMI64VARB fnptr, GLuint program, GLint location, GLint64 * params) {
+// (*fnptr)(program, location, params);
+// }
+// static void glowGetUniformi64vNV(GPGETUNIFORMI64VNV fnptr, GLuint program, GLint location, GLint64EXT * params) {
+// (*fnptr)(program, location, params);
+// }
+// static void glowGetUniformiv(GPGETUNIFORMIV fnptr, GLuint program, GLint location, GLint * params) {
+// (*fnptr)(program, location, params);
+// }
+// static void glowGetUniformui64vARB(GPGETUNIFORMUI64VARB fnptr, GLuint program, GLint location, GLuint64 * params) {
+// (*fnptr)(program, location, params);
+// }
+// static void glowGetUniformui64vNV(GPGETUNIFORMUI64VNV fnptr, GLuint program, GLint location, GLuint64EXT * params) {
+// (*fnptr)(program, location, params);
+// }
+// static void glowGetUniformuiv(GPGETUNIFORMUIV fnptr, GLuint program, GLint location, GLuint * params) {
+// (*fnptr)(program, location, params);
+// }
+// static void glowGetVertexArrayIndexed64iv(GPGETVERTEXARRAYINDEXED64IV fnptr, GLuint vaobj, GLuint index, GLenum pname, GLint64 * param) {
+// (*fnptr)(vaobj, index, pname, param);
+// }
+// static void glowGetVertexArrayIndexediv(GPGETVERTEXARRAYINDEXEDIV fnptr, GLuint vaobj, GLuint index, GLenum pname, GLint * param) {
+// (*fnptr)(vaobj, index, pname, param);
+// }
+// static void glowGetVertexArrayIntegeri_vEXT(GPGETVERTEXARRAYINTEGERI_VEXT fnptr, GLuint vaobj, GLuint index, GLenum pname, GLint * param) {
+// (*fnptr)(vaobj, index, pname, param);
+// }
+// static void glowGetVertexArrayIntegervEXT(GPGETVERTEXARRAYINTEGERVEXT fnptr, GLuint vaobj, GLenum pname, GLint * param) {
+// (*fnptr)(vaobj, pname, param);
+// }
+// static void glowGetVertexArrayPointeri_vEXT(GPGETVERTEXARRAYPOINTERI_VEXT fnptr, GLuint vaobj, GLuint index, GLenum pname, void ** param) {
+// (*fnptr)(vaobj, index, pname, param);
+// }
+// static void glowGetVertexArrayPointervEXT(GPGETVERTEXARRAYPOINTERVEXT fnptr, GLuint vaobj, GLenum pname, void ** param) {
+// (*fnptr)(vaobj, pname, param);
+// }
+// static void glowGetVertexArrayiv(GPGETVERTEXARRAYIV fnptr, GLuint vaobj, GLenum pname, GLint * param) {
+// (*fnptr)(vaobj, pname, param);
+// }
+// static void glowGetVertexAttribIiv(GPGETVERTEXATTRIBIIV fnptr, GLuint index, GLenum pname, GLint * params) {
+// (*fnptr)(index, pname, params);
+// }
+// static void glowGetVertexAttribIuiv(GPGETVERTEXATTRIBIUIV fnptr, GLuint index, GLenum pname, GLuint * params) {
+// (*fnptr)(index, pname, params);
+// }
+// static void glowGetVertexAttribLdv(GPGETVERTEXATTRIBLDV fnptr, GLuint index, GLenum pname, GLdouble * params) {
+// (*fnptr)(index, pname, params);
+// }
+// static void glowGetVertexAttribLi64vNV(GPGETVERTEXATTRIBLI64VNV fnptr, GLuint index, GLenum pname, GLint64EXT * params) {
+// (*fnptr)(index, pname, params);
+// }
+// static void glowGetVertexAttribLui64vARB(GPGETVERTEXATTRIBLUI64VARB fnptr, GLuint index, GLenum pname, GLuint64EXT * params) {
+// (*fnptr)(index, pname, params);
+// }
+// static void glowGetVertexAttribLui64vNV(GPGETVERTEXATTRIBLUI64VNV fnptr, GLuint index, GLenum pname, GLuint64EXT * params) {
+// (*fnptr)(index, pname, params);
+// }
+// static void glowGetVertexAttribPointerv(GPGETVERTEXATTRIBPOINTERV fnptr, GLuint index, GLenum pname, void ** pointer) {
+// (*fnptr)(index, pname, pointer);
+// }
+// static void glowGetVertexAttribPointerWithOffsetv(GPGETVERTEXATTRIBPOINTERV fnptr, GLuint index, GLenum pname, uintptr_t ** offset) {
+// (*fnptr)(index, pname, (void **)(offset));
+// }
+// static void glowGetVertexAttribdv(GPGETVERTEXATTRIBDV fnptr, GLuint index, GLenum pname, GLdouble * params) {
+// (*fnptr)(index, pname, params);
+// }
+// static void glowGetVertexAttribfv(GPGETVERTEXATTRIBFV fnptr, GLuint index, GLenum pname, GLfloat * params) {
+// (*fnptr)(index, pname, params);
+// }
+// static void glowGetVertexAttribiv(GPGETVERTEXATTRIBIV fnptr, GLuint index, GLenum pname, GLint * params) {
+// (*fnptr)(index, pname, params);
+// }
+// static GLVULKANPROCNV glowGetVkProcAddrNV(GPGETVKPROCADDRNV fnptr, const GLchar * name) {
+// return (*fnptr)(name);
+// }
+// static void glowGetnCompressedTexImageARB(GPGETNCOMPRESSEDTEXIMAGEARB fnptr, GLenum target, GLint lod, GLsizei bufSize, void * img) {
+// (*fnptr)(target, lod, bufSize, img);
+// }
+// static void glowGetnTexImageARB(GPGETNTEXIMAGEARB fnptr, GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void * img) {
+// (*fnptr)(target, level, format, type, bufSize, img);
+// }
+// static void glowGetnUniformdvARB(GPGETNUNIFORMDVARB fnptr, GLuint program, GLint location, GLsizei bufSize, GLdouble * params) {
+// (*fnptr)(program, location, bufSize, params);
+// }
+// static void glowGetnUniformfv(GPGETNUNIFORMFV fnptr, GLuint program, GLint location, GLsizei bufSize, GLfloat * params) {
+// (*fnptr)(program, location, bufSize, params);
+// }
+// static void glowGetnUniformfvARB(GPGETNUNIFORMFVARB fnptr, GLuint program, GLint location, GLsizei bufSize, GLfloat * params) {
+// (*fnptr)(program, location, bufSize, params);
+// }
+// static void glowGetnUniformfvKHR(GPGETNUNIFORMFVKHR fnptr, GLuint program, GLint location, GLsizei bufSize, GLfloat * params) {
+// (*fnptr)(program, location, bufSize, params);
+// }
+// static void glowGetnUniformi64vARB(GPGETNUNIFORMI64VARB fnptr, GLuint program, GLint location, GLsizei bufSize, GLint64 * params) {
+// (*fnptr)(program, location, bufSize, params);
+// }
+// static void glowGetnUniformiv(GPGETNUNIFORMIV fnptr, GLuint program, GLint location, GLsizei bufSize, GLint * params) {
+// (*fnptr)(program, location, bufSize, params);
+// }
+// static void glowGetnUniformivARB(GPGETNUNIFORMIVARB fnptr, GLuint program, GLint location, GLsizei bufSize, GLint * params) {
+// (*fnptr)(program, location, bufSize, params);
+// }
+// static void glowGetnUniformivKHR(GPGETNUNIFORMIVKHR fnptr, GLuint program, GLint location, GLsizei bufSize, GLint * params) {
+// (*fnptr)(program, location, bufSize, params);
+// }
+// static void glowGetnUniformui64vARB(GPGETNUNIFORMUI64VARB fnptr, GLuint program, GLint location, GLsizei bufSize, GLuint64 * params) {
+// (*fnptr)(program, location, bufSize, params);
+// }
+// static void glowGetnUniformuiv(GPGETNUNIFORMUIV fnptr, GLuint program, GLint location, GLsizei bufSize, GLuint * params) {
+// (*fnptr)(program, location, bufSize, params);
+// }
+// static void glowGetnUniformuivARB(GPGETNUNIFORMUIVARB fnptr, GLuint program, GLint location, GLsizei bufSize, GLuint * params) {
+// (*fnptr)(program, location, bufSize, params);
+// }
+// static void glowGetnUniformuivKHR(GPGETNUNIFORMUIVKHR fnptr, GLuint program, GLint location, GLsizei bufSize, GLuint * params) {
+// (*fnptr)(program, location, bufSize, params);
+// }
+// static void glowHint(GPHINT fnptr, GLenum target, GLenum mode) {
+// (*fnptr)(target, mode);
+// }
+// static void glowIndexFormatNV(GPINDEXFORMATNV fnptr, GLenum type, GLsizei stride) {
+// (*fnptr)(type, stride);
+// }
+// static void glowInsertEventMarkerEXT(GPINSERTEVENTMARKEREXT fnptr, GLsizei length, const GLchar * marker) {
+// (*fnptr)(length, marker);
+// }
+// static void glowInterpolatePathsNV(GPINTERPOLATEPATHSNV fnptr, GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight) {
+// (*fnptr)(resultPath, pathA, pathB, weight);
+// }
+// static void glowInvalidateBufferData(GPINVALIDATEBUFFERDATA fnptr, GLuint buffer) {
+// (*fnptr)(buffer);
+// }
+// static void glowInvalidateBufferSubData(GPINVALIDATEBUFFERSUBDATA fnptr, GLuint buffer, GLintptr offset, GLsizeiptr length) {
+// (*fnptr)(buffer, offset, length);
+// }
+// static void glowInvalidateFramebuffer(GPINVALIDATEFRAMEBUFFER fnptr, GLenum target, GLsizei numAttachments, const GLenum * attachments) {
+// (*fnptr)(target, numAttachments, attachments);
+// }
+// static void glowInvalidateNamedFramebufferData(GPINVALIDATENAMEDFRAMEBUFFERDATA fnptr, GLuint framebuffer, GLsizei numAttachments, const GLenum * attachments) {
+// (*fnptr)(framebuffer, numAttachments, attachments);
+// }
+// static void glowInvalidateNamedFramebufferSubData(GPINVALIDATENAMEDFRAMEBUFFERSUBDATA fnptr, GLuint framebuffer, GLsizei numAttachments, const GLenum * attachments, GLint x, GLint y, GLsizei width, GLsizei height) {
+// (*fnptr)(framebuffer, numAttachments, attachments, x, y, width, height);
+// }
+// static void glowInvalidateSubFramebuffer(GPINVALIDATESUBFRAMEBUFFER fnptr, GLenum target, GLsizei numAttachments, const GLenum * attachments, GLint x, GLint y, GLsizei width, GLsizei height) {
+// (*fnptr)(target, numAttachments, attachments, x, y, width, height);
+// }
+// static void glowInvalidateTexImage(GPINVALIDATETEXIMAGE fnptr, GLuint texture, GLint level) {
+// (*fnptr)(texture, level);
+// }
+// static void glowInvalidateTexSubImage(GPINVALIDATETEXSUBIMAGE fnptr, GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth) {
+// (*fnptr)(texture, level, xoffset, yoffset, zoffset, width, height, depth);
+// }
+// static GLboolean glowIsBuffer(GPISBUFFER fnptr, GLuint buffer) {
+// return (*fnptr)(buffer);
+// }
+// static GLboolean glowIsBufferResidentNV(GPISBUFFERRESIDENTNV fnptr, GLenum target) {
+// return (*fnptr)(target);
+// }
+// static GLboolean glowIsCommandListNV(GPISCOMMANDLISTNV fnptr, GLuint list) {
+// return (*fnptr)(list);
+// }
+// static GLboolean glowIsEnabled(GPISENABLED fnptr, GLenum cap) {
+// return (*fnptr)(cap);
+// }
+// static GLboolean glowIsEnabledIndexedEXT(GPISENABLEDINDEXEDEXT fnptr, GLenum target, GLuint index) {
+// return (*fnptr)(target, index);
+// }
+// static GLboolean glowIsEnabledi(GPISENABLEDI fnptr, GLenum target, GLuint index) {
+// return (*fnptr)(target, index);
+// }
+// static GLboolean glowIsFramebuffer(GPISFRAMEBUFFER fnptr, GLuint framebuffer) {
+// return (*fnptr)(framebuffer);
+// }
+// static GLboolean glowIsImageHandleResidentARB(GPISIMAGEHANDLERESIDENTARB fnptr, GLuint64 handle) {
+// return (*fnptr)(handle);
+// }
+// static GLboolean glowIsImageHandleResidentNV(GPISIMAGEHANDLERESIDENTNV fnptr, GLuint64 handle) {
+// return (*fnptr)(handle);
+// }
+// static GLboolean glowIsNamedBufferResidentNV(GPISNAMEDBUFFERRESIDENTNV fnptr, GLuint buffer) {
+// return (*fnptr)(buffer);
+// }
+// static GLboolean glowIsNamedStringARB(GPISNAMEDSTRINGARB fnptr, GLint namelen, const GLchar * name) {
+// return (*fnptr)(namelen, name);
+// }
+// static GLboolean glowIsPathNV(GPISPATHNV fnptr, GLuint path) {
+// return (*fnptr)(path);
+// }
+// static GLboolean glowIsPointInFillPathNV(GPISPOINTINFILLPATHNV fnptr, GLuint path, GLuint mask, GLfloat x, GLfloat y) {
+// return (*fnptr)(path, mask, x, y);
+// }
+// static GLboolean glowIsPointInStrokePathNV(GPISPOINTINSTROKEPATHNV fnptr, GLuint path, GLfloat x, GLfloat y) {
+// return (*fnptr)(path, x, y);
+// }
+// static GLboolean glowIsProgram(GPISPROGRAM fnptr, GLuint program) {
+// return (*fnptr)(program);
+// }
+// static GLboolean glowIsProgramPipeline(GPISPROGRAMPIPELINE fnptr, GLuint pipeline) {
+// return (*fnptr)(pipeline);
+// }
+// static GLboolean glowIsProgramPipelineEXT(GPISPROGRAMPIPELINEEXT fnptr, GLuint pipeline) {
+// return (*fnptr)(pipeline);
+// }
+// static GLboolean glowIsQuery(GPISQUERY fnptr, GLuint id) {
+// return (*fnptr)(id);
+// }
+// static GLboolean glowIsRenderbuffer(GPISRENDERBUFFER fnptr, GLuint renderbuffer) {
+// return (*fnptr)(renderbuffer);
+// }
+// static GLboolean glowIsSampler(GPISSAMPLER fnptr, GLuint sampler) {
+// return (*fnptr)(sampler);
+// }
+// static GLboolean glowIsShader(GPISSHADER fnptr, GLuint shader) {
+// return (*fnptr)(shader);
+// }
+// static GLboolean glowIsStateNV(GPISSTATENV fnptr, GLuint state) {
+// return (*fnptr)(state);
+// }
+// static GLboolean glowIsSync(GPISSYNC fnptr, GLsync sync) {
+// return (*fnptr)(sync);
+// }
+// static GLboolean glowIsTexture(GPISTEXTURE fnptr, GLuint texture) {
+// return (*fnptr)(texture);
+// }
+// static GLboolean glowIsTextureHandleResidentARB(GPISTEXTUREHANDLERESIDENTARB fnptr, GLuint64 handle) {
+// return (*fnptr)(handle);
+// }
+// static GLboolean glowIsTextureHandleResidentNV(GPISTEXTUREHANDLERESIDENTNV fnptr, GLuint64 handle) {
+// return (*fnptr)(handle);
+// }
+// static GLboolean glowIsTransformFeedback(GPISTRANSFORMFEEDBACK fnptr, GLuint id) {
+// return (*fnptr)(id);
+// }
+// static GLboolean glowIsVertexArray(GPISVERTEXARRAY fnptr, GLuint array) {
+// return (*fnptr)(array);
+// }
+// static void glowLabelObjectEXT(GPLABELOBJECTEXT fnptr, GLenum type, GLuint object, GLsizei length, const GLchar * label) {
+// (*fnptr)(type, object, length, label);
+// }
+// static void glowLineWidth(GPLINEWIDTH fnptr, GLfloat width) {
+// (*fnptr)(width);
+// }
+// static void glowLinkProgram(GPLINKPROGRAM fnptr, GLuint program) {
+// (*fnptr)(program);
+// }
+// static void glowListDrawCommandsStatesClientNV(GPLISTDRAWCOMMANDSSTATESCLIENTNV fnptr, GLuint list, GLuint segment, const void ** indirects, const GLsizei * sizes, const GLuint * states, const GLuint * fbos, GLuint count) {
+// (*fnptr)(list, segment, indirects, sizes, states, fbos, count);
+// }
+// static void glowLogicOp(GPLOGICOP fnptr, GLenum opcode) {
+// (*fnptr)(opcode);
+// }
+// static void glowMakeBufferNonResidentNV(GPMAKEBUFFERNONRESIDENTNV fnptr, GLenum target) {
+// (*fnptr)(target);
+// }
+// static void glowMakeBufferResidentNV(GPMAKEBUFFERRESIDENTNV fnptr, GLenum target, GLenum access) {
+// (*fnptr)(target, access);
+// }
+// static void glowMakeImageHandleNonResidentARB(GPMAKEIMAGEHANDLENONRESIDENTARB fnptr, GLuint64 handle) {
+// (*fnptr)(handle);
+// }
+// static void glowMakeImageHandleNonResidentNV(GPMAKEIMAGEHANDLENONRESIDENTNV fnptr, GLuint64 handle) {
+// (*fnptr)(handle);
+// }
+// static void glowMakeImageHandleResidentARB(GPMAKEIMAGEHANDLERESIDENTARB fnptr, GLuint64 handle, GLenum access) {
+// (*fnptr)(handle, access);
+// }
+// static void glowMakeImageHandleResidentNV(GPMAKEIMAGEHANDLERESIDENTNV fnptr, GLuint64 handle, GLenum access) {
+// (*fnptr)(handle, access);
+// }
+// static void glowMakeNamedBufferNonResidentNV(GPMAKENAMEDBUFFERNONRESIDENTNV fnptr, GLuint buffer) {
+// (*fnptr)(buffer);
+// }
+// static void glowMakeNamedBufferResidentNV(GPMAKENAMEDBUFFERRESIDENTNV fnptr, GLuint buffer, GLenum access) {
+// (*fnptr)(buffer, access);
+// }
+// static void glowMakeTextureHandleNonResidentARB(GPMAKETEXTUREHANDLENONRESIDENTARB fnptr, GLuint64 handle) {
+// (*fnptr)(handle);
+// }
+// static void glowMakeTextureHandleNonResidentNV(GPMAKETEXTUREHANDLENONRESIDENTNV fnptr, GLuint64 handle) {
+// (*fnptr)(handle);
+// }
+// static void glowMakeTextureHandleResidentARB(GPMAKETEXTUREHANDLERESIDENTARB fnptr, GLuint64 handle) {
+// (*fnptr)(handle);
+// }
+// static void glowMakeTextureHandleResidentNV(GPMAKETEXTUREHANDLERESIDENTNV fnptr, GLuint64 handle) {
+// (*fnptr)(handle);
+// }
+// static void * glowMapBuffer(GPMAPBUFFER fnptr, GLenum target, GLenum access) {
+// return (*fnptr)(target, access);
+// }
+// static void * glowMapBufferRange(GPMAPBUFFERRANGE fnptr, GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access) {
+// return (*fnptr)(target, offset, length, access);
+// }
+// static void * glowMapNamedBuffer(GPMAPNAMEDBUFFER fnptr, GLuint buffer, GLenum access) {
+// return (*fnptr)(buffer, access);
+// }
+// static void * glowMapNamedBufferEXT(GPMAPNAMEDBUFFEREXT fnptr, GLuint buffer, GLenum access) {
+// return (*fnptr)(buffer, access);
+// }
+// static void * glowMapNamedBufferRange(GPMAPNAMEDBUFFERRANGE fnptr, GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access) {
+// return (*fnptr)(buffer, offset, length, access);
+// }
+// static void * glowMapNamedBufferRangeEXT(GPMAPNAMEDBUFFERRANGEEXT fnptr, GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access) {
+// return (*fnptr)(buffer, offset, length, access);
+// }
+// static void glowMatrixFrustumEXT(GPMATRIXFRUSTUMEXT fnptr, GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar) {
+// (*fnptr)(mode, left, right, bottom, top, zNear, zFar);
+// }
+// static void glowMatrixLoad3x2fNV(GPMATRIXLOAD3X2FNV fnptr, GLenum matrixMode, const GLfloat * m) {
+// (*fnptr)(matrixMode, m);
+// }
+// static void glowMatrixLoad3x3fNV(GPMATRIXLOAD3X3FNV fnptr, GLenum matrixMode, const GLfloat * m) {
+// (*fnptr)(matrixMode, m);
+// }
+// static void glowMatrixLoadIdentityEXT(GPMATRIXLOADIDENTITYEXT fnptr, GLenum mode) {
+// (*fnptr)(mode);
+// }
+// static void glowMatrixLoadTranspose3x3fNV(GPMATRIXLOADTRANSPOSE3X3FNV fnptr, GLenum matrixMode, const GLfloat * m) {
+// (*fnptr)(matrixMode, m);
+// }
+// static void glowMatrixLoadTransposedEXT(GPMATRIXLOADTRANSPOSEDEXT fnptr, GLenum mode, const GLdouble * m) {
+// (*fnptr)(mode, m);
+// }
+// static void glowMatrixLoadTransposefEXT(GPMATRIXLOADTRANSPOSEFEXT fnptr, GLenum mode, const GLfloat * m) {
+// (*fnptr)(mode, m);
+// }
+// static void glowMatrixLoaddEXT(GPMATRIXLOADDEXT fnptr, GLenum mode, const GLdouble * m) {
+// (*fnptr)(mode, m);
+// }
+// static void glowMatrixLoadfEXT(GPMATRIXLOADFEXT fnptr, GLenum mode, const GLfloat * m) {
+// (*fnptr)(mode, m);
+// }
+// static void glowMatrixMult3x2fNV(GPMATRIXMULT3X2FNV fnptr, GLenum matrixMode, const GLfloat * m) {
+// (*fnptr)(matrixMode, m);
+// }
+// static void glowMatrixMult3x3fNV(GPMATRIXMULT3X3FNV fnptr, GLenum matrixMode, const GLfloat * m) {
+// (*fnptr)(matrixMode, m);
+// }
+// static void glowMatrixMultTranspose3x3fNV(GPMATRIXMULTTRANSPOSE3X3FNV fnptr, GLenum matrixMode, const GLfloat * m) {
+// (*fnptr)(matrixMode, m);
+// }
+// static void glowMatrixMultTransposedEXT(GPMATRIXMULTTRANSPOSEDEXT fnptr, GLenum mode, const GLdouble * m) {
+// (*fnptr)(mode, m);
+// }
+// static void glowMatrixMultTransposefEXT(GPMATRIXMULTTRANSPOSEFEXT fnptr, GLenum mode, const GLfloat * m) {
+// (*fnptr)(mode, m);
+// }
+// static void glowMatrixMultdEXT(GPMATRIXMULTDEXT fnptr, GLenum mode, const GLdouble * m) {
+// (*fnptr)(mode, m);
+// }
+// static void glowMatrixMultfEXT(GPMATRIXMULTFEXT fnptr, GLenum mode, const GLfloat * m) {
+// (*fnptr)(mode, m);
+// }
+// static void glowMatrixOrthoEXT(GPMATRIXORTHOEXT fnptr, GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar) {
+// (*fnptr)(mode, left, right, bottom, top, zNear, zFar);
+// }
+// static void glowMatrixPopEXT(GPMATRIXPOPEXT fnptr, GLenum mode) {
+// (*fnptr)(mode);
+// }
+// static void glowMatrixPushEXT(GPMATRIXPUSHEXT fnptr, GLenum mode) {
+// (*fnptr)(mode);
+// }
+// static void glowMatrixRotatedEXT(GPMATRIXROTATEDEXT fnptr, GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z) {
+// (*fnptr)(mode, angle, x, y, z);
+// }
+// static void glowMatrixRotatefEXT(GPMATRIXROTATEFEXT fnptr, GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z) {
+// (*fnptr)(mode, angle, x, y, z);
+// }
+// static void glowMatrixScaledEXT(GPMATRIXSCALEDEXT fnptr, GLenum mode, GLdouble x, GLdouble y, GLdouble z) {
+// (*fnptr)(mode, x, y, z);
+// }
+// static void glowMatrixScalefEXT(GPMATRIXSCALEFEXT fnptr, GLenum mode, GLfloat x, GLfloat y, GLfloat z) {
+// (*fnptr)(mode, x, y, z);
+// }
+// static void glowMatrixTranslatedEXT(GPMATRIXTRANSLATEDEXT fnptr, GLenum mode, GLdouble x, GLdouble y, GLdouble z) {
+// (*fnptr)(mode, x, y, z);
+// }
+// static void glowMatrixTranslatefEXT(GPMATRIXTRANSLATEFEXT fnptr, GLenum mode, GLfloat x, GLfloat y, GLfloat z) {
+// (*fnptr)(mode, x, y, z);
+// }
+// static void glowMaxShaderCompilerThreadsARB(GPMAXSHADERCOMPILERTHREADSARB fnptr, GLuint count) {
+// (*fnptr)(count);
+// }
+// static void glowMaxShaderCompilerThreadsKHR(GPMAXSHADERCOMPILERTHREADSKHR fnptr, GLuint count) {
+// (*fnptr)(count);
+// }
+// static void glowMemoryBarrier(GPMEMORYBARRIER fnptr, GLbitfield barriers) {
+// (*fnptr)(barriers);
+// }
+// static void glowMemoryBarrierByRegion(GPMEMORYBARRIERBYREGION fnptr, GLbitfield barriers) {
+// (*fnptr)(barriers);
+// }
+// static void glowMinSampleShadingARB(GPMINSAMPLESHADINGARB fnptr, GLfloat value) {
+// (*fnptr)(value);
+// }
+// static void glowMultiDrawArrays(GPMULTIDRAWARRAYS fnptr, GLenum mode, const GLint * first, const GLsizei * count, GLsizei drawcount) {
+// (*fnptr)(mode, first, count, drawcount);
+// }
+// static void glowMultiDrawArraysIndirect(GPMULTIDRAWARRAYSINDIRECT fnptr, GLenum mode, const void * indirect, GLsizei drawcount, GLsizei stride) {
+// (*fnptr)(mode, indirect, drawcount, stride);
+// }
+// static void glowMultiDrawArraysIndirectBindlessCountNV(GPMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNV fnptr, GLenum mode, const void * indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount) {
+// (*fnptr)(mode, indirect, drawCount, maxDrawCount, stride, vertexBufferCount);
+// }
+// static void glowMultiDrawArraysIndirectBindlessNV(GPMULTIDRAWARRAYSINDIRECTBINDLESSNV fnptr, GLenum mode, const void * indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount) {
+// (*fnptr)(mode, indirect, drawCount, stride, vertexBufferCount);
+// }
+// static void glowMultiDrawArraysIndirectCountARB(GPMULTIDRAWARRAYSINDIRECTCOUNTARB fnptr, GLenum mode, const void * indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride) {
+// (*fnptr)(mode, indirect, drawcount, maxdrawcount, stride);
+// }
+// static void glowMultiDrawElements(GPMULTIDRAWELEMENTS fnptr, GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei drawcount) {
+// (*fnptr)(mode, count, type, indices, drawcount);
+// }
+// static void glowMultiDrawElementsBaseVertex(GPMULTIDRAWELEMENTSBASEVERTEX fnptr, GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei drawcount, const GLint * basevertex) {
+// (*fnptr)(mode, count, type, indices, drawcount, basevertex);
+// }
+// static void glowMultiDrawElementsIndirect(GPMULTIDRAWELEMENTSINDIRECT fnptr, GLenum mode, GLenum type, const void * indirect, GLsizei drawcount, GLsizei stride) {
+// (*fnptr)(mode, type, indirect, drawcount, stride);
+// }
+// static void glowMultiDrawElementsIndirectBindlessCountNV(GPMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNV fnptr, GLenum mode, GLenum type, const void * indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount) {
+// (*fnptr)(mode, type, indirect, drawCount, maxDrawCount, stride, vertexBufferCount);
+// }
+// static void glowMultiDrawElementsIndirectBindlessNV(GPMULTIDRAWELEMENTSINDIRECTBINDLESSNV fnptr, GLenum mode, GLenum type, const void * indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount) {
+// (*fnptr)(mode, type, indirect, drawCount, stride, vertexBufferCount);
+// }
+// static void glowMultiDrawElementsIndirectCountARB(GPMULTIDRAWELEMENTSINDIRECTCOUNTARB fnptr, GLenum mode, GLenum type, const void * indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride) {
+// (*fnptr)(mode, type, indirect, drawcount, maxdrawcount, stride);
+// }
+// static void glowMultiDrawMeshTasksIndirectCountNV(GPMULTIDRAWMESHTASKSINDIRECTCOUNTNV fnptr, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride) {
+// (*fnptr)(indirect, drawcount, maxdrawcount, stride);
+// }
+// static void glowMultiDrawMeshTasksIndirectNV(GPMULTIDRAWMESHTASKSINDIRECTNV fnptr, GLintptr indirect, GLsizei drawcount, GLsizei stride) {
+// (*fnptr)(indirect, drawcount, stride);
+// }
+// static void glowMultiTexBufferEXT(GPMULTITEXBUFFEREXT fnptr, GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer) {
+// (*fnptr)(texunit, target, internalformat, buffer);
+// }
+// static void glowMultiTexCoordPointerEXT(GPMULTITEXCOORDPOINTEREXT fnptr, GLenum texunit, GLint size, GLenum type, GLsizei stride, const void * pointer) {
+// (*fnptr)(texunit, size, type, stride, pointer);
+// }
+// static void glowMultiTexEnvfEXT(GPMULTITEXENVFEXT fnptr, GLenum texunit, GLenum target, GLenum pname, GLfloat param) {
+// (*fnptr)(texunit, target, pname, param);
+// }
+// static void glowMultiTexEnvfvEXT(GPMULTITEXENVFVEXT fnptr, GLenum texunit, GLenum target, GLenum pname, const GLfloat * params) {
+// (*fnptr)(texunit, target, pname, params);
+// }
+// static void glowMultiTexEnviEXT(GPMULTITEXENVIEXT fnptr, GLenum texunit, GLenum target, GLenum pname, GLint param) {
+// (*fnptr)(texunit, target, pname, param);
+// }
+// static void glowMultiTexEnvivEXT(GPMULTITEXENVIVEXT fnptr, GLenum texunit, GLenum target, GLenum pname, const GLint * params) {
+// (*fnptr)(texunit, target, pname, params);
+// }
+// static void glowMultiTexGendEXT(GPMULTITEXGENDEXT fnptr, GLenum texunit, GLenum coord, GLenum pname, GLdouble param) {
+// (*fnptr)(texunit, coord, pname, param);
+// }
+// static void glowMultiTexGendvEXT(GPMULTITEXGENDVEXT fnptr, GLenum texunit, GLenum coord, GLenum pname, const GLdouble * params) {
+// (*fnptr)(texunit, coord, pname, params);
+// }
+// static void glowMultiTexGenfEXT(GPMULTITEXGENFEXT fnptr, GLenum texunit, GLenum coord, GLenum pname, GLfloat param) {
+// (*fnptr)(texunit, coord, pname, param);
+// }
+// static void glowMultiTexGenfvEXT(GPMULTITEXGENFVEXT fnptr, GLenum texunit, GLenum coord, GLenum pname, const GLfloat * params) {
+// (*fnptr)(texunit, coord, pname, params);
+// }
+// static void glowMultiTexGeniEXT(GPMULTITEXGENIEXT fnptr, GLenum texunit, GLenum coord, GLenum pname, GLint param) {
+// (*fnptr)(texunit, coord, pname, param);
+// }
+// static void glowMultiTexGenivEXT(GPMULTITEXGENIVEXT fnptr, GLenum texunit, GLenum coord, GLenum pname, const GLint * params) {
+// (*fnptr)(texunit, coord, pname, params);
+// }
+// static void glowMultiTexImage1DEXT(GPMULTITEXIMAGE1DEXT fnptr, GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void * pixels) {
+// (*fnptr)(texunit, target, level, internalformat, width, border, format, type, pixels);
+// }
+// static void glowMultiTexImage2DEXT(GPMULTITEXIMAGE2DEXT fnptr, GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels) {
+// (*fnptr)(texunit, target, level, internalformat, width, height, border, format, type, pixels);
+// }
+// static void glowMultiTexImage3DEXT(GPMULTITEXIMAGE3DEXT fnptr, GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels) {
+// (*fnptr)(texunit, target, level, internalformat, width, height, depth, border, format, type, pixels);
+// }
+// static void glowMultiTexParameterIivEXT(GPMULTITEXPARAMETERIIVEXT fnptr, GLenum texunit, GLenum target, GLenum pname, const GLint * params) {
+// (*fnptr)(texunit, target, pname, params);
+// }
+// static void glowMultiTexParameterIuivEXT(GPMULTITEXPARAMETERIUIVEXT fnptr, GLenum texunit, GLenum target, GLenum pname, const GLuint * params) {
+// (*fnptr)(texunit, target, pname, params);
+// }
+// static void glowMultiTexParameterfEXT(GPMULTITEXPARAMETERFEXT fnptr, GLenum texunit, GLenum target, GLenum pname, GLfloat param) {
+// (*fnptr)(texunit, target, pname, param);
+// }
+// static void glowMultiTexParameterfvEXT(GPMULTITEXPARAMETERFVEXT fnptr, GLenum texunit, GLenum target, GLenum pname, const GLfloat * params) {
+// (*fnptr)(texunit, target, pname, params);
+// }
+// static void glowMultiTexParameteriEXT(GPMULTITEXPARAMETERIEXT fnptr, GLenum texunit, GLenum target, GLenum pname, GLint param) {
+// (*fnptr)(texunit, target, pname, param);
+// }
+// static void glowMultiTexParameterivEXT(GPMULTITEXPARAMETERIVEXT fnptr, GLenum texunit, GLenum target, GLenum pname, const GLint * params) {
+// (*fnptr)(texunit, target, pname, params);
+// }
+// static void glowMultiTexRenderbufferEXT(GPMULTITEXRENDERBUFFEREXT fnptr, GLenum texunit, GLenum target, GLuint renderbuffer) {
+// (*fnptr)(texunit, target, renderbuffer);
+// }
+// static void glowMultiTexSubImage1DEXT(GPMULTITEXSUBIMAGE1DEXT fnptr, GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels) {
+// (*fnptr)(texunit, target, level, xoffset, width, format, type, pixels);
+// }
+// static void glowMultiTexSubImage2DEXT(GPMULTITEXSUBIMAGE2DEXT fnptr, GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels) {
+// (*fnptr)(texunit, target, level, xoffset, yoffset, width, height, format, type, pixels);
+// }
+// static void glowMultiTexSubImage3DEXT(GPMULTITEXSUBIMAGE3DEXT fnptr, GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels) {
+// (*fnptr)(texunit, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
+// }
+// static void glowNamedBufferAttachMemoryNV(GPNAMEDBUFFERATTACHMEMORYNV fnptr, GLuint buffer, GLuint memory, GLuint64 offset) {
+// (*fnptr)(buffer, memory, offset);
+// }
+// static void glowNamedBufferData(GPNAMEDBUFFERDATA fnptr, GLuint buffer, GLsizeiptr size, const void * data, GLenum usage) {
+// (*fnptr)(buffer, size, data, usage);
+// }
+// static void glowNamedBufferDataEXT(GPNAMEDBUFFERDATAEXT fnptr, GLuint buffer, GLsizeiptr size, const void * data, GLenum usage) {
+// (*fnptr)(buffer, size, data, usage);
+// }
+// static void glowNamedBufferPageCommitmentARB(GPNAMEDBUFFERPAGECOMMITMENTARB fnptr, GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit) {
+// (*fnptr)(buffer, offset, size, commit);
+// }
+// static void glowNamedBufferPageCommitmentEXT(GPNAMEDBUFFERPAGECOMMITMENTEXT fnptr, GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit) {
+// (*fnptr)(buffer, offset, size, commit);
+// }
+// static void glowNamedBufferPageCommitmentMemNV(GPNAMEDBUFFERPAGECOMMITMENTMEMNV fnptr, GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit) {
+// (*fnptr)(buffer, offset, size, memory, memOffset, commit);
+// }
+// static void glowNamedBufferStorage(GPNAMEDBUFFERSTORAGE fnptr, GLuint buffer, GLsizeiptr size, const void * data, GLbitfield flags) {
+// (*fnptr)(buffer, size, data, flags);
+// }
+// static void glowNamedBufferStorageEXT(GPNAMEDBUFFERSTORAGEEXT fnptr, GLuint buffer, GLsizeiptr size, const void * data, GLbitfield flags) {
+// (*fnptr)(buffer, size, data, flags);
+// }
+// static void glowNamedBufferSubData(GPNAMEDBUFFERSUBDATA fnptr, GLuint buffer, GLintptr offset, GLsizeiptr size, const void * data) {
+// (*fnptr)(buffer, offset, size, data);
+// }
+// static void glowNamedBufferSubDataEXT(GPNAMEDBUFFERSUBDATAEXT fnptr, GLuint buffer, GLintptr offset, GLsizeiptr size, const void * data) {
+// (*fnptr)(buffer, offset, size, data);
+// }
+// static void glowNamedCopyBufferSubDataEXT(GPNAMEDCOPYBUFFERSUBDATAEXT fnptr, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) {
+// (*fnptr)(readBuffer, writeBuffer, readOffset, writeOffset, size);
+// }
+// static void glowNamedFramebufferDrawBuffer(GPNAMEDFRAMEBUFFERDRAWBUFFER fnptr, GLuint framebuffer, GLenum buf) {
+// (*fnptr)(framebuffer, buf);
+// }
+// static void glowNamedFramebufferDrawBuffers(GPNAMEDFRAMEBUFFERDRAWBUFFERS fnptr, GLuint framebuffer, GLsizei n, const GLenum * bufs) {
+// (*fnptr)(framebuffer, n, bufs);
+// }
+// static void glowNamedFramebufferParameteri(GPNAMEDFRAMEBUFFERPARAMETERI fnptr, GLuint framebuffer, GLenum pname, GLint param) {
+// (*fnptr)(framebuffer, pname, param);
+// }
+// static void glowNamedFramebufferParameteriEXT(GPNAMEDFRAMEBUFFERPARAMETERIEXT fnptr, GLuint framebuffer, GLenum pname, GLint param) {
+// (*fnptr)(framebuffer, pname, param);
+// }
+// static void glowNamedFramebufferReadBuffer(GPNAMEDFRAMEBUFFERREADBUFFER fnptr, GLuint framebuffer, GLenum src) {
+// (*fnptr)(framebuffer, src);
+// }
+// static void glowNamedFramebufferRenderbuffer(GPNAMEDFRAMEBUFFERRENDERBUFFER fnptr, GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) {
+// (*fnptr)(framebuffer, attachment, renderbuffertarget, renderbuffer);
+// }
+// static void glowNamedFramebufferRenderbufferEXT(GPNAMEDFRAMEBUFFERRENDERBUFFEREXT fnptr, GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) {
+// (*fnptr)(framebuffer, attachment, renderbuffertarget, renderbuffer);
+// }
+// static void glowNamedFramebufferSampleLocationsfvARB(GPNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARB fnptr, GLuint framebuffer, GLuint start, GLsizei count, const GLfloat * v) {
+// (*fnptr)(framebuffer, start, count, v);
+// }
+// static void glowNamedFramebufferSampleLocationsfvNV(GPNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNV fnptr, GLuint framebuffer, GLuint start, GLsizei count, const GLfloat * v) {
+// (*fnptr)(framebuffer, start, count, v);
+// }
+// static void glowNamedFramebufferTexture(GPNAMEDFRAMEBUFFERTEXTURE fnptr, GLuint framebuffer, GLenum attachment, GLuint texture, GLint level) {
+// (*fnptr)(framebuffer, attachment, texture, level);
+// }
+// static void glowNamedFramebufferTexture1DEXT(GPNAMEDFRAMEBUFFERTEXTURE1DEXT fnptr, GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level) {
+// (*fnptr)(framebuffer, attachment, textarget, texture, level);
+// }
+// static void glowNamedFramebufferTexture2DEXT(GPNAMEDFRAMEBUFFERTEXTURE2DEXT fnptr, GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level) {
+// (*fnptr)(framebuffer, attachment, textarget, texture, level);
+// }
+// static void glowNamedFramebufferTexture3DEXT(GPNAMEDFRAMEBUFFERTEXTURE3DEXT fnptr, GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) {
+// (*fnptr)(framebuffer, attachment, textarget, texture, level, zoffset);
+// }
+// static void glowNamedFramebufferTextureEXT(GPNAMEDFRAMEBUFFERTEXTUREEXT fnptr, GLuint framebuffer, GLenum attachment, GLuint texture, GLint level) {
+// (*fnptr)(framebuffer, attachment, texture, level);
+// }
+// static void glowNamedFramebufferTextureFaceEXT(GPNAMEDFRAMEBUFFERTEXTUREFACEEXT fnptr, GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face) {
+// (*fnptr)(framebuffer, attachment, texture, level, face);
+// }
+// static void glowNamedFramebufferTextureLayer(GPNAMEDFRAMEBUFFERTEXTURELAYER fnptr, GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer) {
+// (*fnptr)(framebuffer, attachment, texture, level, layer);
+// }
+// static void glowNamedFramebufferTextureLayerEXT(GPNAMEDFRAMEBUFFERTEXTURELAYEREXT fnptr, GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer) {
+// (*fnptr)(framebuffer, attachment, texture, level, layer);
+// }
+// static void glowNamedFramebufferTextureMultiviewOVR(GPNAMEDFRAMEBUFFERTEXTUREMULTIVIEWOVR fnptr, GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews) {
+// (*fnptr)(framebuffer, attachment, texture, level, baseViewIndex, numViews);
+// }
+// static void glowNamedProgramLocalParameter4dEXT(GPNAMEDPROGRAMLOCALPARAMETER4DEXT fnptr, GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) {
+// (*fnptr)(program, target, index, x, y, z, w);
+// }
+// static void glowNamedProgramLocalParameter4dvEXT(GPNAMEDPROGRAMLOCALPARAMETER4DVEXT fnptr, GLuint program, GLenum target, GLuint index, const GLdouble * params) {
+// (*fnptr)(program, target, index, params);
+// }
+// static void glowNamedProgramLocalParameter4fEXT(GPNAMEDPROGRAMLOCALPARAMETER4FEXT fnptr, GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
+// (*fnptr)(program, target, index, x, y, z, w);
+// }
+// static void glowNamedProgramLocalParameter4fvEXT(GPNAMEDPROGRAMLOCALPARAMETER4FVEXT fnptr, GLuint program, GLenum target, GLuint index, const GLfloat * params) {
+// (*fnptr)(program, target, index, params);
+// }
+// static void glowNamedProgramLocalParameterI4iEXT(GPNAMEDPROGRAMLOCALPARAMETERI4IEXT fnptr, GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w) {
+// (*fnptr)(program, target, index, x, y, z, w);
+// }
+// static void glowNamedProgramLocalParameterI4ivEXT(GPNAMEDPROGRAMLOCALPARAMETERI4IVEXT fnptr, GLuint program, GLenum target, GLuint index, const GLint * params) {
+// (*fnptr)(program, target, index, params);
+// }
+// static void glowNamedProgramLocalParameterI4uiEXT(GPNAMEDPROGRAMLOCALPARAMETERI4UIEXT fnptr, GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) {
+// (*fnptr)(program, target, index, x, y, z, w);
+// }
+// static void glowNamedProgramLocalParameterI4uivEXT(GPNAMEDPROGRAMLOCALPARAMETERI4UIVEXT fnptr, GLuint program, GLenum target, GLuint index, const GLuint * params) {
+// (*fnptr)(program, target, index, params);
+// }
+// static void glowNamedProgramLocalParameters4fvEXT(GPNAMEDPROGRAMLOCALPARAMETERS4FVEXT fnptr, GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat * params) {
+// (*fnptr)(program, target, index, count, params);
+// }
+// static void glowNamedProgramLocalParametersI4ivEXT(GPNAMEDPROGRAMLOCALPARAMETERSI4IVEXT fnptr, GLuint program, GLenum target, GLuint index, GLsizei count, const GLint * params) {
+// (*fnptr)(program, target, index, count, params);
+// }
+// static void glowNamedProgramLocalParametersI4uivEXT(GPNAMEDPROGRAMLOCALPARAMETERSI4UIVEXT fnptr, GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint * params) {
+// (*fnptr)(program, target, index, count, params);
+// }
+// static void glowNamedProgramStringEXT(GPNAMEDPROGRAMSTRINGEXT fnptr, GLuint program, GLenum target, GLenum format, GLsizei len, const void * string) {
+// (*fnptr)(program, target, format, len, string);
+// }
+// static void glowNamedRenderbufferStorage(GPNAMEDRENDERBUFFERSTORAGE fnptr, GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height) {
+// (*fnptr)(renderbuffer, internalformat, width, height);
+// }
+// static void glowNamedRenderbufferStorageEXT(GPNAMEDRENDERBUFFERSTORAGEEXT fnptr, GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height) {
+// (*fnptr)(renderbuffer, internalformat, width, height);
+// }
+// static void glowNamedRenderbufferStorageMultisample(GPNAMEDRENDERBUFFERSTORAGEMULTISAMPLE fnptr, GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) {
+// (*fnptr)(renderbuffer, samples, internalformat, width, height);
+// }
+// static void glowNamedRenderbufferStorageMultisampleAdvancedAMD(GPNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMD fnptr, GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height) {
+// (*fnptr)(renderbuffer, samples, storageSamples, internalformat, width, height);
+// }
+// static void glowNamedRenderbufferStorageMultisampleCoverageEXT(GPNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXT fnptr, GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height) {
+// (*fnptr)(renderbuffer, coverageSamples, colorSamples, internalformat, width, height);
+// }
+// static void glowNamedRenderbufferStorageMultisampleEXT(GPNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXT fnptr, GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) {
+// (*fnptr)(renderbuffer, samples, internalformat, width, height);
+// }
+// static void glowNamedStringARB(GPNAMEDSTRINGARB fnptr, GLenum type, GLint namelen, const GLchar * name, GLint stringlen, const GLchar * string) {
+// (*fnptr)(type, namelen, name, stringlen, string);
+// }
+// static void glowNormalFormatNV(GPNORMALFORMATNV fnptr, GLenum type, GLsizei stride) {
+// (*fnptr)(type, stride);
+// }
+// static void glowObjectLabel(GPOBJECTLABEL fnptr, GLenum identifier, GLuint name, GLsizei length, const GLchar * label) {
+// (*fnptr)(identifier, name, length, label);
+// }
+// static void glowObjectLabelKHR(GPOBJECTLABELKHR fnptr, GLenum identifier, GLuint name, GLsizei length, const GLchar * label) {
+// (*fnptr)(identifier, name, length, label);
+// }
+// static void glowObjectPtrLabel(GPOBJECTPTRLABEL fnptr, const void * ptr, GLsizei length, const GLchar * label) {
+// (*fnptr)(ptr, length, label);
+// }
+// static void glowObjectPtrLabelKHR(GPOBJECTPTRLABELKHR fnptr, const void * ptr, GLsizei length, const GLchar * label) {
+// (*fnptr)(ptr, length, label);
+// }
+// static void glowPatchParameterfv(GPPATCHPARAMETERFV fnptr, GLenum pname, const GLfloat * values) {
+// (*fnptr)(pname, values);
+// }
+// static void glowPatchParameteri(GPPATCHPARAMETERI fnptr, GLenum pname, GLint value) {
+// (*fnptr)(pname, value);
+// }
+// static void glowPathCommandsNV(GPPATHCOMMANDSNV fnptr, GLuint path, GLsizei numCommands, const GLubyte * commands, GLsizei numCoords, GLenum coordType, const void * coords) {
+// (*fnptr)(path, numCommands, commands, numCoords, coordType, coords);
+// }
+// static void glowPathCoordsNV(GPPATHCOORDSNV fnptr, GLuint path, GLsizei numCoords, GLenum coordType, const void * coords) {
+// (*fnptr)(path, numCoords, coordType, coords);
+// }
+// static void glowPathCoverDepthFuncNV(GPPATHCOVERDEPTHFUNCNV fnptr, GLenum func) {
+// (*fnptr)(func);
+// }
+// static void glowPathDashArrayNV(GPPATHDASHARRAYNV fnptr, GLuint path, GLsizei dashCount, const GLfloat * dashArray) {
+// (*fnptr)(path, dashCount, dashArray);
+// }
+// static GLenum glowPathGlyphIndexArrayNV(GPPATHGLYPHINDEXARRAYNV fnptr, GLuint firstPathName, GLenum fontTarget, const void * fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale) {
+// return (*fnptr)(firstPathName, fontTarget, fontName, fontStyle, firstGlyphIndex, numGlyphs, pathParameterTemplate, emScale);
+// }
+// static GLenum glowPathGlyphIndexRangeNV(GPPATHGLYPHINDEXRANGENV fnptr, GLenum fontTarget, const void * fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint * baseAndCount) {
+// return (*fnptr)(fontTarget, fontName, fontStyle, pathParameterTemplate, emScale, baseAndCount);
+// }
+// static void glowPathGlyphRangeNV(GPPATHGLYPHRANGENV fnptr, GLuint firstPathName, GLenum fontTarget, const void * fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale) {
+// (*fnptr)(firstPathName, fontTarget, fontName, fontStyle, firstGlyph, numGlyphs, handleMissingGlyphs, pathParameterTemplate, emScale);
+// }
+// static void glowPathGlyphsNV(GPPATHGLYPHSNV fnptr, GLuint firstPathName, GLenum fontTarget, const void * fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void * charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale) {
+// (*fnptr)(firstPathName, fontTarget, fontName, fontStyle, numGlyphs, type, charcodes, handleMissingGlyphs, pathParameterTemplate, emScale);
+// }
+// static GLenum glowPathMemoryGlyphIndexArrayNV(GPPATHMEMORYGLYPHINDEXARRAYNV fnptr, GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void * fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale) {
+// return (*fnptr)(firstPathName, fontTarget, fontSize, fontData, faceIndex, firstGlyphIndex, numGlyphs, pathParameterTemplate, emScale);
+// }
+// static void glowPathParameterfNV(GPPATHPARAMETERFNV fnptr, GLuint path, GLenum pname, GLfloat value) {
+// (*fnptr)(path, pname, value);
+// }
+// static void glowPathParameterfvNV(GPPATHPARAMETERFVNV fnptr, GLuint path, GLenum pname, const GLfloat * value) {
+// (*fnptr)(path, pname, value);
+// }
+// static void glowPathParameteriNV(GPPATHPARAMETERINV fnptr, GLuint path, GLenum pname, GLint value) {
+// (*fnptr)(path, pname, value);
+// }
+// static void glowPathParameterivNV(GPPATHPARAMETERIVNV fnptr, GLuint path, GLenum pname, const GLint * value) {
+// (*fnptr)(path, pname, value);
+// }
+// static void glowPathStencilDepthOffsetNV(GPPATHSTENCILDEPTHOFFSETNV fnptr, GLfloat factor, GLfloat units) {
+// (*fnptr)(factor, units);
+// }
+// static void glowPathStencilFuncNV(GPPATHSTENCILFUNCNV fnptr, GLenum func, GLint ref, GLuint mask) {
+// (*fnptr)(func, ref, mask);
+// }
+// static void glowPathStringNV(GPPATHSTRINGNV fnptr, GLuint path, GLenum format, GLsizei length, const void * pathString) {
+// (*fnptr)(path, format, length, pathString);
+// }
+// static void glowPathSubCommandsNV(GPPATHSUBCOMMANDSNV fnptr, GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte * commands, GLsizei numCoords, GLenum coordType, const void * coords) {
+// (*fnptr)(path, commandStart, commandsToDelete, numCommands, commands, numCoords, coordType, coords);
+// }
+// static void glowPathSubCoordsNV(GPPATHSUBCOORDSNV fnptr, GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void * coords) {
+// (*fnptr)(path, coordStart, numCoords, coordType, coords);
+// }
+// static void glowPauseTransformFeedback(GPPAUSETRANSFORMFEEDBACK fnptr) {
+// (*fnptr)();
+// }
+// static void glowPixelStoref(GPPIXELSTOREF fnptr, GLenum pname, GLfloat param) {
+// (*fnptr)(pname, param);
+// }
+// static void glowPixelStorei(GPPIXELSTOREI fnptr, GLenum pname, GLint param) {
+// (*fnptr)(pname, param);
+// }
+// static GLboolean glowPointAlongPathNV(GPPOINTALONGPATHNV fnptr, GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat * x, GLfloat * y, GLfloat * tangentX, GLfloat * tangentY) {
+// return (*fnptr)(path, startSegment, numSegments, distance, x, y, tangentX, tangentY);
+// }
+// static void glowPointParameterf(GPPOINTPARAMETERF fnptr, GLenum pname, GLfloat param) {
+// (*fnptr)(pname, param);
+// }
+// static void glowPointParameterfv(GPPOINTPARAMETERFV fnptr, GLenum pname, const GLfloat * params) {
+// (*fnptr)(pname, params);
+// }
+// static void glowPointParameteri(GPPOINTPARAMETERI fnptr, GLenum pname, GLint param) {
+// (*fnptr)(pname, param);
+// }
+// static void glowPointParameteriv(GPPOINTPARAMETERIV fnptr, GLenum pname, const GLint * params) {
+// (*fnptr)(pname, params);
+// }
+// static void glowPointSize(GPPOINTSIZE fnptr, GLfloat size) {
+// (*fnptr)(size);
+// }
+// static void glowPolygonMode(GPPOLYGONMODE fnptr, GLenum face, GLenum mode) {
+// (*fnptr)(face, mode);
+// }
+// static void glowPolygonOffset(GPPOLYGONOFFSET fnptr, GLfloat factor, GLfloat units) {
+// (*fnptr)(factor, units);
+// }
+// static void glowPolygonOffsetClamp(GPPOLYGONOFFSETCLAMP fnptr, GLfloat factor, GLfloat units, GLfloat clamp) {
+// (*fnptr)(factor, units, clamp);
+// }
+// static void glowPolygonOffsetClampEXT(GPPOLYGONOFFSETCLAMPEXT fnptr, GLfloat factor, GLfloat units, GLfloat clamp) {
+// (*fnptr)(factor, units, clamp);
+// }
+// static void glowPopDebugGroup(GPPOPDEBUGGROUP fnptr) {
+// (*fnptr)();
+// }
+// static void glowPopDebugGroupKHR(GPPOPDEBUGGROUPKHR fnptr) {
+// (*fnptr)();
+// }
+// static void glowPopGroupMarkerEXT(GPPOPGROUPMARKEREXT fnptr) {
+// (*fnptr)();
+// }
+// static void glowPrimitiveBoundingBoxARB(GPPRIMITIVEBOUNDINGBOXARB fnptr, GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW) {
+// (*fnptr)(minX, minY, minZ, minW, maxX, maxY, maxZ, maxW);
+// }
+// static void glowPrimitiveRestartIndex(GPPRIMITIVERESTARTINDEX fnptr, GLuint index) {
+// (*fnptr)(index);
+// }
+// static void glowProgramBinary(GPPROGRAMBINARY fnptr, GLuint program, GLenum binaryFormat, const void * binary, GLsizei length) {
+// (*fnptr)(program, binaryFormat, binary, length);
+// }
+// static void glowProgramParameteri(GPPROGRAMPARAMETERI fnptr, GLuint program, GLenum pname, GLint value) {
+// (*fnptr)(program, pname, value);
+// }
+// static void glowProgramParameteriARB(GPPROGRAMPARAMETERIARB fnptr, GLuint program, GLenum pname, GLint value) {
+// (*fnptr)(program, pname, value);
+// }
+// static void glowProgramParameteriEXT(GPPROGRAMPARAMETERIEXT fnptr, GLuint program, GLenum pname, GLint value) {
+// (*fnptr)(program, pname, value);
+// }
+// static void glowProgramPathFragmentInputGenNV(GPPROGRAMPATHFRAGMENTINPUTGENNV fnptr, GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat * coeffs) {
+// (*fnptr)(program, location, genMode, components, coeffs);
+// }
+// static void glowProgramUniform1d(GPPROGRAMUNIFORM1D fnptr, GLuint program, GLint location, GLdouble v0) {
+// (*fnptr)(program, location, v0);
+// }
+// static void glowProgramUniform1dEXT(GPPROGRAMUNIFORM1DEXT fnptr, GLuint program, GLint location, GLdouble x) {
+// (*fnptr)(program, location, x);
+// }
+// static void glowProgramUniform1dv(GPPROGRAMUNIFORM1DV fnptr, GLuint program, GLint location, GLsizei count, const GLdouble * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform1dvEXT(GPPROGRAMUNIFORM1DVEXT fnptr, GLuint program, GLint location, GLsizei count, const GLdouble * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform1f(GPPROGRAMUNIFORM1F fnptr, GLuint program, GLint location, GLfloat v0) {
+// (*fnptr)(program, location, v0);
+// }
+// static void glowProgramUniform1fEXT(GPPROGRAMUNIFORM1FEXT fnptr, GLuint program, GLint location, GLfloat v0) {
+// (*fnptr)(program, location, v0);
+// }
+// static void glowProgramUniform1fv(GPPROGRAMUNIFORM1FV fnptr, GLuint program, GLint location, GLsizei count, const GLfloat * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform1fvEXT(GPPROGRAMUNIFORM1FVEXT fnptr, GLuint program, GLint location, GLsizei count, const GLfloat * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform1i(GPPROGRAMUNIFORM1I fnptr, GLuint program, GLint location, GLint v0) {
+// (*fnptr)(program, location, v0);
+// }
+// static void glowProgramUniform1i64ARB(GPPROGRAMUNIFORM1I64ARB fnptr, GLuint program, GLint location, GLint64 x) {
+// (*fnptr)(program, location, x);
+// }
+// static void glowProgramUniform1i64NV(GPPROGRAMUNIFORM1I64NV fnptr, GLuint program, GLint location, GLint64EXT x) {
+// (*fnptr)(program, location, x);
+// }
+// static void glowProgramUniform1i64vARB(GPPROGRAMUNIFORM1I64VARB fnptr, GLuint program, GLint location, GLsizei count, const GLint64 * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform1i64vNV(GPPROGRAMUNIFORM1I64VNV fnptr, GLuint program, GLint location, GLsizei count, const GLint64EXT * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform1iEXT(GPPROGRAMUNIFORM1IEXT fnptr, GLuint program, GLint location, GLint v0) {
+// (*fnptr)(program, location, v0);
+// }
+// static void glowProgramUniform1iv(GPPROGRAMUNIFORM1IV fnptr, GLuint program, GLint location, GLsizei count, const GLint * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform1ivEXT(GPPROGRAMUNIFORM1IVEXT fnptr, GLuint program, GLint location, GLsizei count, const GLint * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform1ui(GPPROGRAMUNIFORM1UI fnptr, GLuint program, GLint location, GLuint v0) {
+// (*fnptr)(program, location, v0);
+// }
+// static void glowProgramUniform1ui64ARB(GPPROGRAMUNIFORM1UI64ARB fnptr, GLuint program, GLint location, GLuint64 x) {
+// (*fnptr)(program, location, x);
+// }
+// static void glowProgramUniform1ui64NV(GPPROGRAMUNIFORM1UI64NV fnptr, GLuint program, GLint location, GLuint64EXT x) {
+// (*fnptr)(program, location, x);
+// }
+// static void glowProgramUniform1ui64vARB(GPPROGRAMUNIFORM1UI64VARB fnptr, GLuint program, GLint location, GLsizei count, const GLuint64 * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform1ui64vNV(GPPROGRAMUNIFORM1UI64VNV fnptr, GLuint program, GLint location, GLsizei count, const GLuint64EXT * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform1uiEXT(GPPROGRAMUNIFORM1UIEXT fnptr, GLuint program, GLint location, GLuint v0) {
+// (*fnptr)(program, location, v0);
+// }
+// static void glowProgramUniform1uiv(GPPROGRAMUNIFORM1UIV fnptr, GLuint program, GLint location, GLsizei count, const GLuint * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform1uivEXT(GPPROGRAMUNIFORM1UIVEXT fnptr, GLuint program, GLint location, GLsizei count, const GLuint * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform2d(GPPROGRAMUNIFORM2D fnptr, GLuint program, GLint location, GLdouble v0, GLdouble v1) {
+// (*fnptr)(program, location, v0, v1);
+// }
+// static void glowProgramUniform2dEXT(GPPROGRAMUNIFORM2DEXT fnptr, GLuint program, GLint location, GLdouble x, GLdouble y) {
+// (*fnptr)(program, location, x, y);
+// }
+// static void glowProgramUniform2dv(GPPROGRAMUNIFORM2DV fnptr, GLuint program, GLint location, GLsizei count, const GLdouble * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform2dvEXT(GPPROGRAMUNIFORM2DVEXT fnptr, GLuint program, GLint location, GLsizei count, const GLdouble * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform2f(GPPROGRAMUNIFORM2F fnptr, GLuint program, GLint location, GLfloat v0, GLfloat v1) {
+// (*fnptr)(program, location, v0, v1);
+// }
+// static void glowProgramUniform2fEXT(GPPROGRAMUNIFORM2FEXT fnptr, GLuint program, GLint location, GLfloat v0, GLfloat v1) {
+// (*fnptr)(program, location, v0, v1);
+// }
+// static void glowProgramUniform2fv(GPPROGRAMUNIFORM2FV fnptr, GLuint program, GLint location, GLsizei count, const GLfloat * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform2fvEXT(GPPROGRAMUNIFORM2FVEXT fnptr, GLuint program, GLint location, GLsizei count, const GLfloat * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform2i(GPPROGRAMUNIFORM2I fnptr, GLuint program, GLint location, GLint v0, GLint v1) {
+// (*fnptr)(program, location, v0, v1);
+// }
+// static void glowProgramUniform2i64ARB(GPPROGRAMUNIFORM2I64ARB fnptr, GLuint program, GLint location, GLint64 x, GLint64 y) {
+// (*fnptr)(program, location, x, y);
+// }
+// static void glowProgramUniform2i64NV(GPPROGRAMUNIFORM2I64NV fnptr, GLuint program, GLint location, GLint64EXT x, GLint64EXT y) {
+// (*fnptr)(program, location, x, y);
+// }
+// static void glowProgramUniform2i64vARB(GPPROGRAMUNIFORM2I64VARB fnptr, GLuint program, GLint location, GLsizei count, const GLint64 * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform2i64vNV(GPPROGRAMUNIFORM2I64VNV fnptr, GLuint program, GLint location, GLsizei count, const GLint64EXT * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform2iEXT(GPPROGRAMUNIFORM2IEXT fnptr, GLuint program, GLint location, GLint v0, GLint v1) {
+// (*fnptr)(program, location, v0, v1);
+// }
+// static void glowProgramUniform2iv(GPPROGRAMUNIFORM2IV fnptr, GLuint program, GLint location, GLsizei count, const GLint * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform2ivEXT(GPPROGRAMUNIFORM2IVEXT fnptr, GLuint program, GLint location, GLsizei count, const GLint * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform2ui(GPPROGRAMUNIFORM2UI fnptr, GLuint program, GLint location, GLuint v0, GLuint v1) {
+// (*fnptr)(program, location, v0, v1);
+// }
+// static void glowProgramUniform2ui64ARB(GPPROGRAMUNIFORM2UI64ARB fnptr, GLuint program, GLint location, GLuint64 x, GLuint64 y) {
+// (*fnptr)(program, location, x, y);
+// }
+// static void glowProgramUniform2ui64NV(GPPROGRAMUNIFORM2UI64NV fnptr, GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y) {
+// (*fnptr)(program, location, x, y);
+// }
+// static void glowProgramUniform2ui64vARB(GPPROGRAMUNIFORM2UI64VARB fnptr, GLuint program, GLint location, GLsizei count, const GLuint64 * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform2ui64vNV(GPPROGRAMUNIFORM2UI64VNV fnptr, GLuint program, GLint location, GLsizei count, const GLuint64EXT * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform2uiEXT(GPPROGRAMUNIFORM2UIEXT fnptr, GLuint program, GLint location, GLuint v0, GLuint v1) {
+// (*fnptr)(program, location, v0, v1);
+// }
+// static void glowProgramUniform2uiv(GPPROGRAMUNIFORM2UIV fnptr, GLuint program, GLint location, GLsizei count, const GLuint * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform2uivEXT(GPPROGRAMUNIFORM2UIVEXT fnptr, GLuint program, GLint location, GLsizei count, const GLuint * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform3d(GPPROGRAMUNIFORM3D fnptr, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2) {
+// (*fnptr)(program, location, v0, v1, v2);
+// }
+// static void glowProgramUniform3dEXT(GPPROGRAMUNIFORM3DEXT fnptr, GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z) {
+// (*fnptr)(program, location, x, y, z);
+// }
+// static void glowProgramUniform3dv(GPPROGRAMUNIFORM3DV fnptr, GLuint program, GLint location, GLsizei count, const GLdouble * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform3dvEXT(GPPROGRAMUNIFORM3DVEXT fnptr, GLuint program, GLint location, GLsizei count, const GLdouble * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform3f(GPPROGRAMUNIFORM3F fnptr, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2) {
+// (*fnptr)(program, location, v0, v1, v2);
+// }
+// static void glowProgramUniform3fEXT(GPPROGRAMUNIFORM3FEXT fnptr, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2) {
+// (*fnptr)(program, location, v0, v1, v2);
+// }
+// static void glowProgramUniform3fv(GPPROGRAMUNIFORM3FV fnptr, GLuint program, GLint location, GLsizei count, const GLfloat * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform3fvEXT(GPPROGRAMUNIFORM3FVEXT fnptr, GLuint program, GLint location, GLsizei count, const GLfloat * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform3i(GPPROGRAMUNIFORM3I fnptr, GLuint program, GLint location, GLint v0, GLint v1, GLint v2) {
+// (*fnptr)(program, location, v0, v1, v2);
+// }
+// static void glowProgramUniform3i64ARB(GPPROGRAMUNIFORM3I64ARB fnptr, GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z) {
+// (*fnptr)(program, location, x, y, z);
+// }
+// static void glowProgramUniform3i64NV(GPPROGRAMUNIFORM3I64NV fnptr, GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z) {
+// (*fnptr)(program, location, x, y, z);
+// }
+// static void glowProgramUniform3i64vARB(GPPROGRAMUNIFORM3I64VARB fnptr, GLuint program, GLint location, GLsizei count, const GLint64 * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform3i64vNV(GPPROGRAMUNIFORM3I64VNV fnptr, GLuint program, GLint location, GLsizei count, const GLint64EXT * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform3iEXT(GPPROGRAMUNIFORM3IEXT fnptr, GLuint program, GLint location, GLint v0, GLint v1, GLint v2) {
+// (*fnptr)(program, location, v0, v1, v2);
+// }
+// static void glowProgramUniform3iv(GPPROGRAMUNIFORM3IV fnptr, GLuint program, GLint location, GLsizei count, const GLint * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform3ivEXT(GPPROGRAMUNIFORM3IVEXT fnptr, GLuint program, GLint location, GLsizei count, const GLint * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform3ui(GPPROGRAMUNIFORM3UI fnptr, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2) {
+// (*fnptr)(program, location, v0, v1, v2);
+// }
+// static void glowProgramUniform3ui64ARB(GPPROGRAMUNIFORM3UI64ARB fnptr, GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z) {
+// (*fnptr)(program, location, x, y, z);
+// }
+// static void glowProgramUniform3ui64NV(GPPROGRAMUNIFORM3UI64NV fnptr, GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z) {
+// (*fnptr)(program, location, x, y, z);
+// }
+// static void glowProgramUniform3ui64vARB(GPPROGRAMUNIFORM3UI64VARB fnptr, GLuint program, GLint location, GLsizei count, const GLuint64 * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform3ui64vNV(GPPROGRAMUNIFORM3UI64VNV fnptr, GLuint program, GLint location, GLsizei count, const GLuint64EXT * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform3uiEXT(GPPROGRAMUNIFORM3UIEXT fnptr, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2) {
+// (*fnptr)(program, location, v0, v1, v2);
+// }
+// static void glowProgramUniform3uiv(GPPROGRAMUNIFORM3UIV fnptr, GLuint program, GLint location, GLsizei count, const GLuint * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform3uivEXT(GPPROGRAMUNIFORM3UIVEXT fnptr, GLuint program, GLint location, GLsizei count, const GLuint * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform4d(GPPROGRAMUNIFORM4D fnptr, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3) {
+// (*fnptr)(program, location, v0, v1, v2, v3);
+// }
+// static void glowProgramUniform4dEXT(GPPROGRAMUNIFORM4DEXT fnptr, GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w) {
+// (*fnptr)(program, location, x, y, z, w);
+// }
+// static void glowProgramUniform4dv(GPPROGRAMUNIFORM4DV fnptr, GLuint program, GLint location, GLsizei count, const GLdouble * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform4dvEXT(GPPROGRAMUNIFORM4DVEXT fnptr, GLuint program, GLint location, GLsizei count, const GLdouble * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform4f(GPPROGRAMUNIFORM4F fnptr, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) {
+// (*fnptr)(program, location, v0, v1, v2, v3);
+// }
+// static void glowProgramUniform4fEXT(GPPROGRAMUNIFORM4FEXT fnptr, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) {
+// (*fnptr)(program, location, v0, v1, v2, v3);
+// }
+// static void glowProgramUniform4fv(GPPROGRAMUNIFORM4FV fnptr, GLuint program, GLint location, GLsizei count, const GLfloat * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform4fvEXT(GPPROGRAMUNIFORM4FVEXT fnptr, GLuint program, GLint location, GLsizei count, const GLfloat * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform4i(GPPROGRAMUNIFORM4I fnptr, GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3) {
+// (*fnptr)(program, location, v0, v1, v2, v3);
+// }
+// static void glowProgramUniform4i64ARB(GPPROGRAMUNIFORM4I64ARB fnptr, GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w) {
+// (*fnptr)(program, location, x, y, z, w);
+// }
+// static void glowProgramUniform4i64NV(GPPROGRAMUNIFORM4I64NV fnptr, GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w) {
+// (*fnptr)(program, location, x, y, z, w);
+// }
+// static void glowProgramUniform4i64vARB(GPPROGRAMUNIFORM4I64VARB fnptr, GLuint program, GLint location, GLsizei count, const GLint64 * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform4i64vNV(GPPROGRAMUNIFORM4I64VNV fnptr, GLuint program, GLint location, GLsizei count, const GLint64EXT * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform4iEXT(GPPROGRAMUNIFORM4IEXT fnptr, GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3) {
+// (*fnptr)(program, location, v0, v1, v2, v3);
+// }
+// static void glowProgramUniform4iv(GPPROGRAMUNIFORM4IV fnptr, GLuint program, GLint location, GLsizei count, const GLint * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform4ivEXT(GPPROGRAMUNIFORM4IVEXT fnptr, GLuint program, GLint location, GLsizei count, const GLint * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform4ui(GPPROGRAMUNIFORM4UI fnptr, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) {
+// (*fnptr)(program, location, v0, v1, v2, v3);
+// }
+// static void glowProgramUniform4ui64ARB(GPPROGRAMUNIFORM4UI64ARB fnptr, GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w) {
+// (*fnptr)(program, location, x, y, z, w);
+// }
+// static void glowProgramUniform4ui64NV(GPPROGRAMUNIFORM4UI64NV fnptr, GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w) {
+// (*fnptr)(program, location, x, y, z, w);
+// }
+// static void glowProgramUniform4ui64vARB(GPPROGRAMUNIFORM4UI64VARB fnptr, GLuint program, GLint location, GLsizei count, const GLuint64 * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform4ui64vNV(GPPROGRAMUNIFORM4UI64VNV fnptr, GLuint program, GLint location, GLsizei count, const GLuint64EXT * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform4uiEXT(GPPROGRAMUNIFORM4UIEXT fnptr, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) {
+// (*fnptr)(program, location, v0, v1, v2, v3);
+// }
+// static void glowProgramUniform4uiv(GPPROGRAMUNIFORM4UIV fnptr, GLuint program, GLint location, GLsizei count, const GLuint * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniform4uivEXT(GPPROGRAMUNIFORM4UIVEXT fnptr, GLuint program, GLint location, GLsizei count, const GLuint * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProgramUniformHandleui64ARB(GPPROGRAMUNIFORMHANDLEUI64ARB fnptr, GLuint program, GLint location, GLuint64 value) {
+// (*fnptr)(program, location, value);
+// }
+// static void glowProgramUniformHandleui64NV(GPPROGRAMUNIFORMHANDLEUI64NV fnptr, GLuint program, GLint location, GLuint64 value) {
+// (*fnptr)(program, location, value);
+// }
+// static void glowProgramUniformHandleui64vARB(GPPROGRAMUNIFORMHANDLEUI64VARB fnptr, GLuint program, GLint location, GLsizei count, const GLuint64 * values) {
+// (*fnptr)(program, location, count, values);
+// }
+// static void glowProgramUniformHandleui64vNV(GPPROGRAMUNIFORMHANDLEUI64VNV fnptr, GLuint program, GLint location, GLsizei count, const GLuint64 * values) {
+// (*fnptr)(program, location, count, values);
+// }
+// static void glowProgramUniformMatrix2dv(GPPROGRAMUNIFORMMATRIX2DV fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix2dvEXT(GPPROGRAMUNIFORMMATRIX2DVEXT fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix2fv(GPPROGRAMUNIFORMMATRIX2FV fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix2fvEXT(GPPROGRAMUNIFORMMATRIX2FVEXT fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix2x3dv(GPPROGRAMUNIFORMMATRIX2X3DV fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix2x3dvEXT(GPPROGRAMUNIFORMMATRIX2X3DVEXT fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix2x3fv(GPPROGRAMUNIFORMMATRIX2X3FV fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix2x3fvEXT(GPPROGRAMUNIFORMMATRIX2X3FVEXT fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix2x4dv(GPPROGRAMUNIFORMMATRIX2X4DV fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix2x4dvEXT(GPPROGRAMUNIFORMMATRIX2X4DVEXT fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix2x4fv(GPPROGRAMUNIFORMMATRIX2X4FV fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix2x4fvEXT(GPPROGRAMUNIFORMMATRIX2X4FVEXT fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix3dv(GPPROGRAMUNIFORMMATRIX3DV fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix3dvEXT(GPPROGRAMUNIFORMMATRIX3DVEXT fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix3fv(GPPROGRAMUNIFORMMATRIX3FV fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix3fvEXT(GPPROGRAMUNIFORMMATRIX3FVEXT fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix3x2dv(GPPROGRAMUNIFORMMATRIX3X2DV fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix3x2dvEXT(GPPROGRAMUNIFORMMATRIX3X2DVEXT fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix3x2fv(GPPROGRAMUNIFORMMATRIX3X2FV fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix3x2fvEXT(GPPROGRAMUNIFORMMATRIX3X2FVEXT fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix3x4dv(GPPROGRAMUNIFORMMATRIX3X4DV fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix3x4dvEXT(GPPROGRAMUNIFORMMATRIX3X4DVEXT fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix3x4fv(GPPROGRAMUNIFORMMATRIX3X4FV fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix3x4fvEXT(GPPROGRAMUNIFORMMATRIX3X4FVEXT fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix4dv(GPPROGRAMUNIFORMMATRIX4DV fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix4dvEXT(GPPROGRAMUNIFORMMATRIX4DVEXT fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix4fv(GPPROGRAMUNIFORMMATRIX4FV fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix4fvEXT(GPPROGRAMUNIFORMMATRIX4FVEXT fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix4x2dv(GPPROGRAMUNIFORMMATRIX4X2DV fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix4x2dvEXT(GPPROGRAMUNIFORMMATRIX4X2DVEXT fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix4x2fv(GPPROGRAMUNIFORMMATRIX4X2FV fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix4x2fvEXT(GPPROGRAMUNIFORMMATRIX4X2FVEXT fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix4x3dv(GPPROGRAMUNIFORMMATRIX4X3DV fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix4x3dvEXT(GPPROGRAMUNIFORMMATRIX4X3DVEXT fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix4x3fv(GPPROGRAMUNIFORMMATRIX4X3FV fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformMatrix4x3fvEXT(GPPROGRAMUNIFORMMATRIX4X3FVEXT fnptr, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(program, location, count, transpose, value);
+// }
+// static void glowProgramUniformui64NV(GPPROGRAMUNIFORMUI64NV fnptr, GLuint program, GLint location, GLuint64EXT value) {
+// (*fnptr)(program, location, value);
+// }
+// static void glowProgramUniformui64vNV(GPPROGRAMUNIFORMUI64VNV fnptr, GLuint program, GLint location, GLsizei count, const GLuint64EXT * value) {
+// (*fnptr)(program, location, count, value);
+// }
+// static void glowProvokingVertex(GPPROVOKINGVERTEX fnptr, GLenum mode) {
+// (*fnptr)(mode);
+// }
+// static void glowPushClientAttribDefaultEXT(GPPUSHCLIENTATTRIBDEFAULTEXT fnptr, GLbitfield mask) {
+// (*fnptr)(mask);
+// }
+// static void glowPushDebugGroup(GPPUSHDEBUGGROUP fnptr, GLenum source, GLuint id, GLsizei length, const GLchar * message) {
+// (*fnptr)(source, id, length, message);
+// }
+// static void glowPushDebugGroupKHR(GPPUSHDEBUGGROUPKHR fnptr, GLenum source, GLuint id, GLsizei length, const GLchar * message) {
+// (*fnptr)(source, id, length, message);
+// }
+// static void glowPushGroupMarkerEXT(GPPUSHGROUPMARKEREXT fnptr, GLsizei length, const GLchar * marker) {
+// (*fnptr)(length, marker);
+// }
+// static void glowQueryCounter(GPQUERYCOUNTER fnptr, GLuint id, GLenum target) {
+// (*fnptr)(id, target);
+// }
+// static void glowRasterSamplesEXT(GPRASTERSAMPLESEXT fnptr, GLuint samples, GLboolean fixedsamplelocations) {
+// (*fnptr)(samples, fixedsamplelocations);
+// }
+// static void glowReadBuffer(GPREADBUFFER fnptr, GLenum src) {
+// (*fnptr)(src);
+// }
+// static void glowReadPixels(GPREADPIXELS fnptr, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void * pixels) {
+// (*fnptr)(x, y, width, height, format, type, pixels);
+// }
+// static void glowReadnPixels(GPREADNPIXELS fnptr, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void * data) {
+// (*fnptr)(x, y, width, height, format, type, bufSize, data);
+// }
+// static void glowReadnPixelsARB(GPREADNPIXELSARB fnptr, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void * data) {
+// (*fnptr)(x, y, width, height, format, type, bufSize, data);
+// }
+// static void glowReadnPixelsKHR(GPREADNPIXELSKHR fnptr, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void * data) {
+// (*fnptr)(x, y, width, height, format, type, bufSize, data);
+// }
+// static void glowReleaseShaderCompiler(GPRELEASESHADERCOMPILER fnptr) {
+// (*fnptr)();
+// }
+// static void glowRenderbufferStorage(GPRENDERBUFFERSTORAGE fnptr, GLenum target, GLenum internalformat, GLsizei width, GLsizei height) {
+// (*fnptr)(target, internalformat, width, height);
+// }
+// static void glowRenderbufferStorageMultisample(GPRENDERBUFFERSTORAGEMULTISAMPLE fnptr, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) {
+// (*fnptr)(target, samples, internalformat, width, height);
+// }
+// static void glowRenderbufferStorageMultisampleAdvancedAMD(GPRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMD fnptr, GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height) {
+// (*fnptr)(target, samples, storageSamples, internalformat, width, height);
+// }
+// static void glowRenderbufferStorageMultisampleCoverageNV(GPRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENV fnptr, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height) {
+// (*fnptr)(target, coverageSamples, colorSamples, internalformat, width, height);
+// }
+// static void glowResetMemoryObjectParameterNV(GPRESETMEMORYOBJECTPARAMETERNV fnptr, GLuint memory, GLenum pname) {
+// (*fnptr)(memory, pname);
+// }
+// static void glowResolveDepthValuesNV(GPRESOLVEDEPTHVALUESNV fnptr) {
+// (*fnptr)();
+// }
+// static void glowResumeTransformFeedback(GPRESUMETRANSFORMFEEDBACK fnptr) {
+// (*fnptr)();
+// }
+// static void glowSampleCoverage(GPSAMPLECOVERAGE fnptr, GLfloat value, GLboolean invert) {
+// (*fnptr)(value, invert);
+// }
+// static void glowSampleMaski(GPSAMPLEMASKI fnptr, GLuint maskNumber, GLbitfield mask) {
+// (*fnptr)(maskNumber, mask);
+// }
+// static void glowSamplerParameterIiv(GPSAMPLERPARAMETERIIV fnptr, GLuint sampler, GLenum pname, const GLint * param) {
+// (*fnptr)(sampler, pname, param);
+// }
+// static void glowSamplerParameterIuiv(GPSAMPLERPARAMETERIUIV fnptr, GLuint sampler, GLenum pname, const GLuint * param) {
+// (*fnptr)(sampler, pname, param);
+// }
+// static void glowSamplerParameterf(GPSAMPLERPARAMETERF fnptr, GLuint sampler, GLenum pname, GLfloat param) {
+// (*fnptr)(sampler, pname, param);
+// }
+// static void glowSamplerParameterfv(GPSAMPLERPARAMETERFV fnptr, GLuint sampler, GLenum pname, const GLfloat * param) {
+// (*fnptr)(sampler, pname, param);
+// }
+// static void glowSamplerParameteri(GPSAMPLERPARAMETERI fnptr, GLuint sampler, GLenum pname, GLint param) {
+// (*fnptr)(sampler, pname, param);
+// }
+// static void glowSamplerParameteriv(GPSAMPLERPARAMETERIV fnptr, GLuint sampler, GLenum pname, const GLint * param) {
+// (*fnptr)(sampler, pname, param);
+// }
+// static void glowScissor(GPSCISSOR fnptr, GLint x, GLint y, GLsizei width, GLsizei height) {
+// (*fnptr)(x, y, width, height);
+// }
+// static void glowScissorArrayv(GPSCISSORARRAYV fnptr, GLuint first, GLsizei count, const GLint * v) {
+// (*fnptr)(first, count, v);
+// }
+// static void glowScissorExclusiveArrayvNV(GPSCISSOREXCLUSIVEARRAYVNV fnptr, GLuint first, GLsizei count, const GLint * v) {
+// (*fnptr)(first, count, v);
+// }
+// static void glowScissorExclusiveNV(GPSCISSOREXCLUSIVENV fnptr, GLint x, GLint y, GLsizei width, GLsizei height) {
+// (*fnptr)(x, y, width, height);
+// }
+// static void glowScissorIndexed(GPSCISSORINDEXED fnptr, GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height) {
+// (*fnptr)(index, left, bottom, width, height);
+// }
+// static void glowScissorIndexedv(GPSCISSORINDEXEDV fnptr, GLuint index, const GLint * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowSecondaryColorFormatNV(GPSECONDARYCOLORFORMATNV fnptr, GLint size, GLenum type, GLsizei stride) {
+// (*fnptr)(size, type, stride);
+// }
+// static void glowSelectPerfMonitorCountersAMD(GPSELECTPERFMONITORCOUNTERSAMD fnptr, GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint * counterList) {
+// (*fnptr)(monitor, enable, group, numCounters, counterList);
+// }
+// static void glowShaderBinary(GPSHADERBINARY fnptr, GLsizei count, const GLuint * shaders, GLenum binaryFormat, const void * binary, GLsizei length) {
+// (*fnptr)(count, shaders, binaryFormat, binary, length);
+// }
+// static void glowShaderSource(GPSHADERSOURCE fnptr, GLuint shader, GLsizei count, const GLchar *const* string, const GLint * length) {
+// (*fnptr)(shader, count, string, length);
+// }
+// static void glowShaderStorageBlockBinding(GPSHADERSTORAGEBLOCKBINDING fnptr, GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding) {
+// (*fnptr)(program, storageBlockIndex, storageBlockBinding);
+// }
+// static void glowShadingRateImageBarrierNV(GPSHADINGRATEIMAGEBARRIERNV fnptr, GLboolean synchronize) {
+// (*fnptr)(synchronize);
+// }
+// static void glowShadingRateImagePaletteNV(GPSHADINGRATEIMAGEPALETTENV fnptr, GLuint viewport, GLuint first, GLsizei count, const GLenum * rates) {
+// (*fnptr)(viewport, first, count, rates);
+// }
+// static void glowShadingRateSampleOrderCustomNV(GPSHADINGRATESAMPLEORDERCUSTOMNV fnptr, GLenum rate, GLuint samples, const GLint * locations) {
+// (*fnptr)(rate, samples, locations);
+// }
+// static void glowShadingRateSampleOrderNV(GPSHADINGRATESAMPLEORDERNV fnptr, GLenum order) {
+// (*fnptr)(order);
+// }
+// static void glowSignalVkFenceNV(GPSIGNALVKFENCENV fnptr, GLuint64 vkFence) {
+// (*fnptr)(vkFence);
+// }
+// static void glowSignalVkSemaphoreNV(GPSIGNALVKSEMAPHORENV fnptr, GLuint64 vkSemaphore) {
+// (*fnptr)(vkSemaphore);
+// }
+// static void glowSpecializeShaderARB(GPSPECIALIZESHADERARB fnptr, GLuint shader, const GLchar * pEntryPoint, GLuint numSpecializationConstants, const GLuint * pConstantIndex, const GLuint * pConstantValue) {
+// (*fnptr)(shader, pEntryPoint, numSpecializationConstants, pConstantIndex, pConstantValue);
+// }
+// static void glowStateCaptureNV(GPSTATECAPTURENV fnptr, GLuint state, GLenum mode) {
+// (*fnptr)(state, mode);
+// }
+// static void glowStencilFillPathInstancedNV(GPSTENCILFILLPATHINSTANCEDNV fnptr, GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat * transformValues) {
+// (*fnptr)(numPaths, pathNameType, paths, pathBase, fillMode, mask, transformType, transformValues);
+// }
+// static void glowStencilFillPathNV(GPSTENCILFILLPATHNV fnptr, GLuint path, GLenum fillMode, GLuint mask) {
+// (*fnptr)(path, fillMode, mask);
+// }
+// static void glowStencilFunc(GPSTENCILFUNC fnptr, GLenum func, GLint ref, GLuint mask) {
+// (*fnptr)(func, ref, mask);
+// }
+// static void glowStencilFuncSeparate(GPSTENCILFUNCSEPARATE fnptr, GLenum face, GLenum func, GLint ref, GLuint mask) {
+// (*fnptr)(face, func, ref, mask);
+// }
+// static void glowStencilMask(GPSTENCILMASK fnptr, GLuint mask) {
+// (*fnptr)(mask);
+// }
+// static void glowStencilMaskSeparate(GPSTENCILMASKSEPARATE fnptr, GLenum face, GLuint mask) {
+// (*fnptr)(face, mask);
+// }
+// static void glowStencilOp(GPSTENCILOP fnptr, GLenum fail, GLenum zfail, GLenum zpass) {
+// (*fnptr)(fail, zfail, zpass);
+// }
+// static void glowStencilOpSeparate(GPSTENCILOPSEPARATE fnptr, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass) {
+// (*fnptr)(face, sfail, dpfail, dppass);
+// }
+// static void glowStencilStrokePathInstancedNV(GPSTENCILSTROKEPATHINSTANCEDNV fnptr, GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat * transformValues) {
+// (*fnptr)(numPaths, pathNameType, paths, pathBase, reference, mask, transformType, transformValues);
+// }
+// static void glowStencilStrokePathNV(GPSTENCILSTROKEPATHNV fnptr, GLuint path, GLint reference, GLuint mask) {
+// (*fnptr)(path, reference, mask);
+// }
+// static void glowStencilThenCoverFillPathInstancedNV(GPSTENCILTHENCOVERFILLPATHINSTANCEDNV fnptr, GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat * transformValues) {
+// (*fnptr)(numPaths, pathNameType, paths, pathBase, fillMode, mask, coverMode, transformType, transformValues);
+// }
+// static void glowStencilThenCoverFillPathNV(GPSTENCILTHENCOVERFILLPATHNV fnptr, GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode) {
+// (*fnptr)(path, fillMode, mask, coverMode);
+// }
+// static void glowStencilThenCoverStrokePathInstancedNV(GPSTENCILTHENCOVERSTROKEPATHINSTANCEDNV fnptr, GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat * transformValues) {
+// (*fnptr)(numPaths, pathNameType, paths, pathBase, reference, mask, coverMode, transformType, transformValues);
+// }
+// static void glowStencilThenCoverStrokePathNV(GPSTENCILTHENCOVERSTROKEPATHNV fnptr, GLuint path, GLint reference, GLuint mask, GLenum coverMode) {
+// (*fnptr)(path, reference, mask, coverMode);
+// }
+// static void glowSubpixelPrecisionBiasNV(GPSUBPIXELPRECISIONBIASNV fnptr, GLuint xbits, GLuint ybits) {
+// (*fnptr)(xbits, ybits);
+// }
+// static void glowTexAttachMemoryNV(GPTEXATTACHMEMORYNV fnptr, GLenum target, GLuint memory, GLuint64 offset) {
+// (*fnptr)(target, memory, offset);
+// }
+// static void glowTexBuffer(GPTEXBUFFER fnptr, GLenum target, GLenum internalformat, GLuint buffer) {
+// (*fnptr)(target, internalformat, buffer);
+// }
+// static void glowTexBufferARB(GPTEXBUFFERARB fnptr, GLenum target, GLenum internalformat, GLuint buffer) {
+// (*fnptr)(target, internalformat, buffer);
+// }
+// static void glowTexBufferRange(GPTEXBUFFERRANGE fnptr, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size) {
+// (*fnptr)(target, internalformat, buffer, offset, size);
+// }
+// static void glowTexCoordFormatNV(GPTEXCOORDFORMATNV fnptr, GLint size, GLenum type, GLsizei stride) {
+// (*fnptr)(size, type, stride);
+// }
+// static void glowTexImage1D(GPTEXIMAGE1D fnptr, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void * pixels) {
+// (*fnptr)(target, level, internalformat, width, border, format, type, pixels);
+// }
+// static void glowTexImage2D(GPTEXIMAGE2D fnptr, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels) {
+// (*fnptr)(target, level, internalformat, width, height, border, format, type, pixels);
+// }
+// static void glowTexImage2DMultisample(GPTEXIMAGE2DMULTISAMPLE fnptr, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations) {
+// (*fnptr)(target, samples, internalformat, width, height, fixedsamplelocations);
+// }
+// static void glowTexImage3D(GPTEXIMAGE3D fnptr, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels) {
+// (*fnptr)(target, level, internalformat, width, height, depth, border, format, type, pixels);
+// }
+// static void glowTexImage3DMultisample(GPTEXIMAGE3DMULTISAMPLE fnptr, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations) {
+// (*fnptr)(target, samples, internalformat, width, height, depth, fixedsamplelocations);
+// }
+// static void glowTexPageCommitmentARB(GPTEXPAGECOMMITMENTARB fnptr, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit) {
+// (*fnptr)(target, level, xoffset, yoffset, zoffset, width, height, depth, commit);
+// }
+// static void glowTexPageCommitmentMemNV(GPTEXPAGECOMMITMENTMEMNV fnptr, GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit) {
+// (*fnptr)(target, layer, level, xoffset, yoffset, zoffset, width, height, depth, memory, offset, commit);
+// }
+// static void glowTexParameterIiv(GPTEXPARAMETERIIV fnptr, GLenum target, GLenum pname, const GLint * params) {
+// (*fnptr)(target, pname, params);
+// }
+// static void glowTexParameterIuiv(GPTEXPARAMETERIUIV fnptr, GLenum target, GLenum pname, const GLuint * params) {
+// (*fnptr)(target, pname, params);
+// }
+// static void glowTexParameterf(GPTEXPARAMETERF fnptr, GLenum target, GLenum pname, GLfloat param) {
+// (*fnptr)(target, pname, param);
+// }
+// static void glowTexParameterfv(GPTEXPARAMETERFV fnptr, GLenum target, GLenum pname, const GLfloat * params) {
+// (*fnptr)(target, pname, params);
+// }
+// static void glowTexParameteri(GPTEXPARAMETERI fnptr, GLenum target, GLenum pname, GLint param) {
+// (*fnptr)(target, pname, param);
+// }
+// static void glowTexParameteriv(GPTEXPARAMETERIV fnptr, GLenum target, GLenum pname, const GLint * params) {
+// (*fnptr)(target, pname, params);
+// }
+// static void glowTexStorage1D(GPTEXSTORAGE1D fnptr, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width) {
+// (*fnptr)(target, levels, internalformat, width);
+// }
+// static void glowTexStorage1DEXT(GPTEXSTORAGE1DEXT fnptr, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width) {
+// (*fnptr)(target, levels, internalformat, width);
+// }
+// static void glowTexStorage2D(GPTEXSTORAGE2D fnptr, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) {
+// (*fnptr)(target, levels, internalformat, width, height);
+// }
+// static void glowTexStorage2DEXT(GPTEXSTORAGE2DEXT fnptr, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) {
+// (*fnptr)(target, levels, internalformat, width, height);
+// }
+// static void glowTexStorage2DMultisample(GPTEXSTORAGE2DMULTISAMPLE fnptr, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations) {
+// (*fnptr)(target, samples, internalformat, width, height, fixedsamplelocations);
+// }
+// static void glowTexStorage3D(GPTEXSTORAGE3D fnptr, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) {
+// (*fnptr)(target, levels, internalformat, width, height, depth);
+// }
+// static void glowTexStorage3DEXT(GPTEXSTORAGE3DEXT fnptr, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) {
+// (*fnptr)(target, levels, internalformat, width, height, depth);
+// }
+// static void glowTexStorage3DMultisample(GPTEXSTORAGE3DMULTISAMPLE fnptr, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations) {
+// (*fnptr)(target, samples, internalformat, width, height, depth, fixedsamplelocations);
+// }
+// static void glowTexSubImage1D(GPTEXSUBIMAGE1D fnptr, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels) {
+// (*fnptr)(target, level, xoffset, width, format, type, pixels);
+// }
+// static void glowTexSubImage2D(GPTEXSUBIMAGE2D fnptr, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels) {
+// (*fnptr)(target, level, xoffset, yoffset, width, height, format, type, pixels);
+// }
+// static void glowTexSubImage3D(GPTEXSUBIMAGE3D fnptr, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels) {
+// (*fnptr)(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
+// }
+// static void glowTextureAttachMemoryNV(GPTEXTUREATTACHMEMORYNV fnptr, GLuint texture, GLuint memory, GLuint64 offset) {
+// (*fnptr)(texture, memory, offset);
+// }
+// static void glowTextureBarrier(GPTEXTUREBARRIER fnptr) {
+// (*fnptr)();
+// }
+// static void glowTextureBarrierNV(GPTEXTUREBARRIERNV fnptr) {
+// (*fnptr)();
+// }
+// static void glowTextureBuffer(GPTEXTUREBUFFER fnptr, GLuint texture, GLenum internalformat, GLuint buffer) {
+// (*fnptr)(texture, internalformat, buffer);
+// }
+// static void glowTextureBufferEXT(GPTEXTUREBUFFEREXT fnptr, GLuint texture, GLenum target, GLenum internalformat, GLuint buffer) {
+// (*fnptr)(texture, target, internalformat, buffer);
+// }
+// static void glowTextureBufferRange(GPTEXTUREBUFFERRANGE fnptr, GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size) {
+// (*fnptr)(texture, internalformat, buffer, offset, size);
+// }
+// static void glowTextureBufferRangeEXT(GPTEXTUREBUFFERRANGEEXT fnptr, GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size) {
+// (*fnptr)(texture, target, internalformat, buffer, offset, size);
+// }
+// static void glowTextureImage1DEXT(GPTEXTUREIMAGE1DEXT fnptr, GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void * pixels) {
+// (*fnptr)(texture, target, level, internalformat, width, border, format, type, pixels);
+// }
+// static void glowTextureImage2DEXT(GPTEXTUREIMAGE2DEXT fnptr, GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels) {
+// (*fnptr)(texture, target, level, internalformat, width, height, border, format, type, pixels);
+// }
+// static void glowTextureImage3DEXT(GPTEXTUREIMAGE3DEXT fnptr, GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels) {
+// (*fnptr)(texture, target, level, internalformat, width, height, depth, border, format, type, pixels);
+// }
+// static void glowTexturePageCommitmentEXT(GPTEXTUREPAGECOMMITMENTEXT fnptr, GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit) {
+// (*fnptr)(texture, level, xoffset, yoffset, zoffset, width, height, depth, commit);
+// }
+// static void glowTexturePageCommitmentMemNV(GPTEXTUREPAGECOMMITMENTMEMNV fnptr, GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit) {
+// (*fnptr)(texture, layer, level, xoffset, yoffset, zoffset, width, height, depth, memory, offset, commit);
+// }
+// static void glowTextureParameterIiv(GPTEXTUREPARAMETERIIV fnptr, GLuint texture, GLenum pname, const GLint * params) {
+// (*fnptr)(texture, pname, params);
+// }
+// static void glowTextureParameterIivEXT(GPTEXTUREPARAMETERIIVEXT fnptr, GLuint texture, GLenum target, GLenum pname, const GLint * params) {
+// (*fnptr)(texture, target, pname, params);
+// }
+// static void glowTextureParameterIuiv(GPTEXTUREPARAMETERIUIV fnptr, GLuint texture, GLenum pname, const GLuint * params) {
+// (*fnptr)(texture, pname, params);
+// }
+// static void glowTextureParameterIuivEXT(GPTEXTUREPARAMETERIUIVEXT fnptr, GLuint texture, GLenum target, GLenum pname, const GLuint * params) {
+// (*fnptr)(texture, target, pname, params);
+// }
+// static void glowTextureParameterf(GPTEXTUREPARAMETERF fnptr, GLuint texture, GLenum pname, GLfloat param) {
+// (*fnptr)(texture, pname, param);
+// }
+// static void glowTextureParameterfEXT(GPTEXTUREPARAMETERFEXT fnptr, GLuint texture, GLenum target, GLenum pname, GLfloat param) {
+// (*fnptr)(texture, target, pname, param);
+// }
+// static void glowTextureParameterfv(GPTEXTUREPARAMETERFV fnptr, GLuint texture, GLenum pname, const GLfloat * param) {
+// (*fnptr)(texture, pname, param);
+// }
+// static void glowTextureParameterfvEXT(GPTEXTUREPARAMETERFVEXT fnptr, GLuint texture, GLenum target, GLenum pname, const GLfloat * params) {
+// (*fnptr)(texture, target, pname, params);
+// }
+// static void glowTextureParameteri(GPTEXTUREPARAMETERI fnptr, GLuint texture, GLenum pname, GLint param) {
+// (*fnptr)(texture, pname, param);
+// }
+// static void glowTextureParameteriEXT(GPTEXTUREPARAMETERIEXT fnptr, GLuint texture, GLenum target, GLenum pname, GLint param) {
+// (*fnptr)(texture, target, pname, param);
+// }
+// static void glowTextureParameteriv(GPTEXTUREPARAMETERIV fnptr, GLuint texture, GLenum pname, const GLint * param) {
+// (*fnptr)(texture, pname, param);
+// }
+// static void glowTextureParameterivEXT(GPTEXTUREPARAMETERIVEXT fnptr, GLuint texture, GLenum target, GLenum pname, const GLint * params) {
+// (*fnptr)(texture, target, pname, params);
+// }
+// static void glowTextureRenderbufferEXT(GPTEXTURERENDERBUFFEREXT fnptr, GLuint texture, GLenum target, GLuint renderbuffer) {
+// (*fnptr)(texture, target, renderbuffer);
+// }
+// static void glowTextureStorage1D(GPTEXTURESTORAGE1D fnptr, GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width) {
+// (*fnptr)(texture, levels, internalformat, width);
+// }
+// static void glowTextureStorage1DEXT(GPTEXTURESTORAGE1DEXT fnptr, GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width) {
+// (*fnptr)(texture, target, levels, internalformat, width);
+// }
+// static void glowTextureStorage2D(GPTEXTURESTORAGE2D fnptr, GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) {
+// (*fnptr)(texture, levels, internalformat, width, height);
+// }
+// static void glowTextureStorage2DEXT(GPTEXTURESTORAGE2DEXT fnptr, GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) {
+// (*fnptr)(texture, target, levels, internalformat, width, height);
+// }
+// static void glowTextureStorage2DMultisample(GPTEXTURESTORAGE2DMULTISAMPLE fnptr, GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations) {
+// (*fnptr)(texture, samples, internalformat, width, height, fixedsamplelocations);
+// }
+// static void glowTextureStorage2DMultisampleEXT(GPTEXTURESTORAGE2DMULTISAMPLEEXT fnptr, GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations) {
+// (*fnptr)(texture, target, samples, internalformat, width, height, fixedsamplelocations);
+// }
+// static void glowTextureStorage3D(GPTEXTURESTORAGE3D fnptr, GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) {
+// (*fnptr)(texture, levels, internalformat, width, height, depth);
+// }
+// static void glowTextureStorage3DEXT(GPTEXTURESTORAGE3DEXT fnptr, GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) {
+// (*fnptr)(texture, target, levels, internalformat, width, height, depth);
+// }
+// static void glowTextureStorage3DMultisample(GPTEXTURESTORAGE3DMULTISAMPLE fnptr, GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations) {
+// (*fnptr)(texture, samples, internalformat, width, height, depth, fixedsamplelocations);
+// }
+// static void glowTextureStorage3DMultisampleEXT(GPTEXTURESTORAGE3DMULTISAMPLEEXT fnptr, GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations) {
+// (*fnptr)(texture, target, samples, internalformat, width, height, depth, fixedsamplelocations);
+// }
+// static void glowTextureSubImage1D(GPTEXTURESUBIMAGE1D fnptr, GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels) {
+// (*fnptr)(texture, level, xoffset, width, format, type, pixels);
+// }
+// static void glowTextureSubImage1DEXT(GPTEXTURESUBIMAGE1DEXT fnptr, GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels) {
+// (*fnptr)(texture, target, level, xoffset, width, format, type, pixels);
+// }
+// static void glowTextureSubImage2D(GPTEXTURESUBIMAGE2D fnptr, GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels) {
+// (*fnptr)(texture, level, xoffset, yoffset, width, height, format, type, pixels);
+// }
+// static void glowTextureSubImage2DEXT(GPTEXTURESUBIMAGE2DEXT fnptr, GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels) {
+// (*fnptr)(texture, target, level, xoffset, yoffset, width, height, format, type, pixels);
+// }
+// static void glowTextureSubImage3D(GPTEXTURESUBIMAGE3D fnptr, GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels) {
+// (*fnptr)(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
+// }
+// static void glowTextureSubImage3DEXT(GPTEXTURESUBIMAGE3DEXT fnptr, GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels) {
+// (*fnptr)(texture, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
+// }
+// static void glowTextureView(GPTEXTUREVIEW fnptr, GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers) {
+// (*fnptr)(texture, target, origtexture, internalformat, minlevel, numlevels, minlayer, numlayers);
+// }
+// static void glowTransformFeedbackBufferBase(GPTRANSFORMFEEDBACKBUFFERBASE fnptr, GLuint xfb, GLuint index, GLuint buffer) {
+// (*fnptr)(xfb, index, buffer);
+// }
+// static void glowTransformFeedbackBufferRange(GPTRANSFORMFEEDBACKBUFFERRANGE fnptr, GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) {
+// (*fnptr)(xfb, index, buffer, offset, size);
+// }
+// static void glowTransformFeedbackVaryings(GPTRANSFORMFEEDBACKVARYINGS fnptr, GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode) {
+// (*fnptr)(program, count, varyings, bufferMode);
+// }
+// static void glowTransformPathNV(GPTRANSFORMPATHNV fnptr, GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat * transformValues) {
+// (*fnptr)(resultPath, srcPath, transformType, transformValues);
+// }
+// static void glowUniform1d(GPUNIFORM1D fnptr, GLint location, GLdouble x) {
+// (*fnptr)(location, x);
+// }
+// static void glowUniform1dv(GPUNIFORM1DV fnptr, GLint location, GLsizei count, const GLdouble * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform1f(GPUNIFORM1F fnptr, GLint location, GLfloat v0) {
+// (*fnptr)(location, v0);
+// }
+// static void glowUniform1fv(GPUNIFORM1FV fnptr, GLint location, GLsizei count, const GLfloat * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform1i(GPUNIFORM1I fnptr, GLint location, GLint v0) {
+// (*fnptr)(location, v0);
+// }
+// static void glowUniform1i64ARB(GPUNIFORM1I64ARB fnptr, GLint location, GLint64 x) {
+// (*fnptr)(location, x);
+// }
+// static void glowUniform1i64NV(GPUNIFORM1I64NV fnptr, GLint location, GLint64EXT x) {
+// (*fnptr)(location, x);
+// }
+// static void glowUniform1i64vARB(GPUNIFORM1I64VARB fnptr, GLint location, GLsizei count, const GLint64 * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform1i64vNV(GPUNIFORM1I64VNV fnptr, GLint location, GLsizei count, const GLint64EXT * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform1iv(GPUNIFORM1IV fnptr, GLint location, GLsizei count, const GLint * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform1ui(GPUNIFORM1UI fnptr, GLint location, GLuint v0) {
+// (*fnptr)(location, v0);
+// }
+// static void glowUniform1ui64ARB(GPUNIFORM1UI64ARB fnptr, GLint location, GLuint64 x) {
+// (*fnptr)(location, x);
+// }
+// static void glowUniform1ui64NV(GPUNIFORM1UI64NV fnptr, GLint location, GLuint64EXT x) {
+// (*fnptr)(location, x);
+// }
+// static void glowUniform1ui64vARB(GPUNIFORM1UI64VARB fnptr, GLint location, GLsizei count, const GLuint64 * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform1ui64vNV(GPUNIFORM1UI64VNV fnptr, GLint location, GLsizei count, const GLuint64EXT * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform1uiv(GPUNIFORM1UIV fnptr, GLint location, GLsizei count, const GLuint * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform2d(GPUNIFORM2D fnptr, GLint location, GLdouble x, GLdouble y) {
+// (*fnptr)(location, x, y);
+// }
+// static void glowUniform2dv(GPUNIFORM2DV fnptr, GLint location, GLsizei count, const GLdouble * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform2f(GPUNIFORM2F fnptr, GLint location, GLfloat v0, GLfloat v1) {
+// (*fnptr)(location, v0, v1);
+// }
+// static void glowUniform2fv(GPUNIFORM2FV fnptr, GLint location, GLsizei count, const GLfloat * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform2i(GPUNIFORM2I fnptr, GLint location, GLint v0, GLint v1) {
+// (*fnptr)(location, v0, v1);
+// }
+// static void glowUniform2i64ARB(GPUNIFORM2I64ARB fnptr, GLint location, GLint64 x, GLint64 y) {
+// (*fnptr)(location, x, y);
+// }
+// static void glowUniform2i64NV(GPUNIFORM2I64NV fnptr, GLint location, GLint64EXT x, GLint64EXT y) {
+// (*fnptr)(location, x, y);
+// }
+// static void glowUniform2i64vARB(GPUNIFORM2I64VARB fnptr, GLint location, GLsizei count, const GLint64 * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform2i64vNV(GPUNIFORM2I64VNV fnptr, GLint location, GLsizei count, const GLint64EXT * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform2iv(GPUNIFORM2IV fnptr, GLint location, GLsizei count, const GLint * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform2ui(GPUNIFORM2UI fnptr, GLint location, GLuint v0, GLuint v1) {
+// (*fnptr)(location, v0, v1);
+// }
+// static void glowUniform2ui64ARB(GPUNIFORM2UI64ARB fnptr, GLint location, GLuint64 x, GLuint64 y) {
+// (*fnptr)(location, x, y);
+// }
+// static void glowUniform2ui64NV(GPUNIFORM2UI64NV fnptr, GLint location, GLuint64EXT x, GLuint64EXT y) {
+// (*fnptr)(location, x, y);
+// }
+// static void glowUniform2ui64vARB(GPUNIFORM2UI64VARB fnptr, GLint location, GLsizei count, const GLuint64 * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform2ui64vNV(GPUNIFORM2UI64VNV fnptr, GLint location, GLsizei count, const GLuint64EXT * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform2uiv(GPUNIFORM2UIV fnptr, GLint location, GLsizei count, const GLuint * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform3d(GPUNIFORM3D fnptr, GLint location, GLdouble x, GLdouble y, GLdouble z) {
+// (*fnptr)(location, x, y, z);
+// }
+// static void glowUniform3dv(GPUNIFORM3DV fnptr, GLint location, GLsizei count, const GLdouble * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform3f(GPUNIFORM3F fnptr, GLint location, GLfloat v0, GLfloat v1, GLfloat v2) {
+// (*fnptr)(location, v0, v1, v2);
+// }
+// static void glowUniform3fv(GPUNIFORM3FV fnptr, GLint location, GLsizei count, const GLfloat * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform3i(GPUNIFORM3I fnptr, GLint location, GLint v0, GLint v1, GLint v2) {
+// (*fnptr)(location, v0, v1, v2);
+// }
+// static void glowUniform3i64ARB(GPUNIFORM3I64ARB fnptr, GLint location, GLint64 x, GLint64 y, GLint64 z) {
+// (*fnptr)(location, x, y, z);
+// }
+// static void glowUniform3i64NV(GPUNIFORM3I64NV fnptr, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z) {
+// (*fnptr)(location, x, y, z);
+// }
+// static void glowUniform3i64vARB(GPUNIFORM3I64VARB fnptr, GLint location, GLsizei count, const GLint64 * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform3i64vNV(GPUNIFORM3I64VNV fnptr, GLint location, GLsizei count, const GLint64EXT * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform3iv(GPUNIFORM3IV fnptr, GLint location, GLsizei count, const GLint * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform3ui(GPUNIFORM3UI fnptr, GLint location, GLuint v0, GLuint v1, GLuint v2) {
+// (*fnptr)(location, v0, v1, v2);
+// }
+// static void glowUniform3ui64ARB(GPUNIFORM3UI64ARB fnptr, GLint location, GLuint64 x, GLuint64 y, GLuint64 z) {
+// (*fnptr)(location, x, y, z);
+// }
+// static void glowUniform3ui64NV(GPUNIFORM3UI64NV fnptr, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z) {
+// (*fnptr)(location, x, y, z);
+// }
+// static void glowUniform3ui64vARB(GPUNIFORM3UI64VARB fnptr, GLint location, GLsizei count, const GLuint64 * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform3ui64vNV(GPUNIFORM3UI64VNV fnptr, GLint location, GLsizei count, const GLuint64EXT * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform3uiv(GPUNIFORM3UIV fnptr, GLint location, GLsizei count, const GLuint * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform4d(GPUNIFORM4D fnptr, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w) {
+// (*fnptr)(location, x, y, z, w);
+// }
+// static void glowUniform4dv(GPUNIFORM4DV fnptr, GLint location, GLsizei count, const GLdouble * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform4f(GPUNIFORM4F fnptr, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) {
+// (*fnptr)(location, v0, v1, v2, v3);
+// }
+// static void glowUniform4fv(GPUNIFORM4FV fnptr, GLint location, GLsizei count, const GLfloat * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform4i(GPUNIFORM4I fnptr, GLint location, GLint v0, GLint v1, GLint v2, GLint v3) {
+// (*fnptr)(location, v0, v1, v2, v3);
+// }
+// static void glowUniform4i64ARB(GPUNIFORM4I64ARB fnptr, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w) {
+// (*fnptr)(location, x, y, z, w);
+// }
+// static void glowUniform4i64NV(GPUNIFORM4I64NV fnptr, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w) {
+// (*fnptr)(location, x, y, z, w);
+// }
+// static void glowUniform4i64vARB(GPUNIFORM4I64VARB fnptr, GLint location, GLsizei count, const GLint64 * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform4i64vNV(GPUNIFORM4I64VNV fnptr, GLint location, GLsizei count, const GLint64EXT * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform4iv(GPUNIFORM4IV fnptr, GLint location, GLsizei count, const GLint * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform4ui(GPUNIFORM4UI fnptr, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) {
+// (*fnptr)(location, v0, v1, v2, v3);
+// }
+// static void glowUniform4ui64ARB(GPUNIFORM4UI64ARB fnptr, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w) {
+// (*fnptr)(location, x, y, z, w);
+// }
+// static void glowUniform4ui64NV(GPUNIFORM4UI64NV fnptr, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w) {
+// (*fnptr)(location, x, y, z, w);
+// }
+// static void glowUniform4ui64vARB(GPUNIFORM4UI64VARB fnptr, GLint location, GLsizei count, const GLuint64 * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform4ui64vNV(GPUNIFORM4UI64VNV fnptr, GLint location, GLsizei count, const GLuint64EXT * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniform4uiv(GPUNIFORM4UIV fnptr, GLint location, GLsizei count, const GLuint * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniformBlockBinding(GPUNIFORMBLOCKBINDING fnptr, GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding) {
+// (*fnptr)(program, uniformBlockIndex, uniformBlockBinding);
+// }
+// static void glowUniformHandleui64ARB(GPUNIFORMHANDLEUI64ARB fnptr, GLint location, GLuint64 value) {
+// (*fnptr)(location, value);
+// }
+// static void glowUniformHandleui64NV(GPUNIFORMHANDLEUI64NV fnptr, GLint location, GLuint64 value) {
+// (*fnptr)(location, value);
+// }
+// static void glowUniformHandleui64vARB(GPUNIFORMHANDLEUI64VARB fnptr, GLint location, GLsizei count, const GLuint64 * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniformHandleui64vNV(GPUNIFORMHANDLEUI64VNV fnptr, GLint location, GLsizei count, const GLuint64 * value) {
+// (*fnptr)(location, count, value);
+// }
+// static void glowUniformMatrix2dv(GPUNIFORMMATRIX2DV fnptr, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(location, count, transpose, value);
+// }
+// static void glowUniformMatrix2fv(GPUNIFORMMATRIX2FV fnptr, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(location, count, transpose, value);
+// }
+// static void glowUniformMatrix2x3dv(GPUNIFORMMATRIX2X3DV fnptr, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(location, count, transpose, value);
+// }
+// static void glowUniformMatrix2x3fv(GPUNIFORMMATRIX2X3FV fnptr, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(location, count, transpose, value);
+// }
+// static void glowUniformMatrix2x4dv(GPUNIFORMMATRIX2X4DV fnptr, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(location, count, transpose, value);
+// }
+// static void glowUniformMatrix2x4fv(GPUNIFORMMATRIX2X4FV fnptr, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(location, count, transpose, value);
+// }
+// static void glowUniformMatrix3dv(GPUNIFORMMATRIX3DV fnptr, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(location, count, transpose, value);
+// }
+// static void glowUniformMatrix3fv(GPUNIFORMMATRIX3FV fnptr, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(location, count, transpose, value);
+// }
+// static void glowUniformMatrix3x2dv(GPUNIFORMMATRIX3X2DV fnptr, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(location, count, transpose, value);
+// }
+// static void glowUniformMatrix3x2fv(GPUNIFORMMATRIX3X2FV fnptr, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(location, count, transpose, value);
+// }
+// static void glowUniformMatrix3x4dv(GPUNIFORMMATRIX3X4DV fnptr, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(location, count, transpose, value);
+// }
+// static void glowUniformMatrix3x4fv(GPUNIFORMMATRIX3X4FV fnptr, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(location, count, transpose, value);
+// }
+// static void glowUniformMatrix4dv(GPUNIFORMMATRIX4DV fnptr, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(location, count, transpose, value);
+// }
+// static void glowUniformMatrix4fv(GPUNIFORMMATRIX4FV fnptr, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(location, count, transpose, value);
+// }
+// static void glowUniformMatrix4x2dv(GPUNIFORMMATRIX4X2DV fnptr, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(location, count, transpose, value);
+// }
+// static void glowUniformMatrix4x2fv(GPUNIFORMMATRIX4X2FV fnptr, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(location, count, transpose, value);
+// }
+// static void glowUniformMatrix4x3dv(GPUNIFORMMATRIX4X3DV fnptr, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value) {
+// (*fnptr)(location, count, transpose, value);
+// }
+// static void glowUniformMatrix4x3fv(GPUNIFORMMATRIX4X3FV fnptr, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) {
+// (*fnptr)(location, count, transpose, value);
+// }
+// static void glowUniformSubroutinesuiv(GPUNIFORMSUBROUTINESUIV fnptr, GLenum shadertype, GLsizei count, const GLuint * indices) {
+// (*fnptr)(shadertype, count, indices);
+// }
+// static void glowUniformui64NV(GPUNIFORMUI64NV fnptr, GLint location, GLuint64EXT value) {
+// (*fnptr)(location, value);
+// }
+// static void glowUniformui64vNV(GPUNIFORMUI64VNV fnptr, GLint location, GLsizei count, const GLuint64EXT * value) {
+// (*fnptr)(location, count, value);
+// }
+// static GLboolean glowUnmapBuffer(GPUNMAPBUFFER fnptr, GLenum target) {
+// return (*fnptr)(target);
+// }
+// static GLboolean glowUnmapNamedBuffer(GPUNMAPNAMEDBUFFER fnptr, GLuint buffer) {
+// return (*fnptr)(buffer);
+// }
+// static GLboolean glowUnmapNamedBufferEXT(GPUNMAPNAMEDBUFFEREXT fnptr, GLuint buffer) {
+// return (*fnptr)(buffer);
+// }
+// static void glowUseProgram(GPUSEPROGRAM fnptr, GLuint program) {
+// (*fnptr)(program);
+// }
+// static void glowUseProgramStages(GPUSEPROGRAMSTAGES fnptr, GLuint pipeline, GLbitfield stages, GLuint program) {
+// (*fnptr)(pipeline, stages, program);
+// }
+// static void glowUseProgramStagesEXT(GPUSEPROGRAMSTAGESEXT fnptr, GLuint pipeline, GLbitfield stages, GLuint program) {
+// (*fnptr)(pipeline, stages, program);
+// }
+// static void glowUseShaderProgramEXT(GPUSESHADERPROGRAMEXT fnptr, GLenum type, GLuint program) {
+// (*fnptr)(type, program);
+// }
+// static void glowValidateProgram(GPVALIDATEPROGRAM fnptr, GLuint program) {
+// (*fnptr)(program);
+// }
+// static void glowValidateProgramPipeline(GPVALIDATEPROGRAMPIPELINE fnptr, GLuint pipeline) {
+// (*fnptr)(pipeline);
+// }
+// static void glowValidateProgramPipelineEXT(GPVALIDATEPROGRAMPIPELINEEXT fnptr, GLuint pipeline) {
+// (*fnptr)(pipeline);
+// }
+// static void glowVertexArrayAttribBinding(GPVERTEXARRAYATTRIBBINDING fnptr, GLuint vaobj, GLuint attribindex, GLuint bindingindex) {
+// (*fnptr)(vaobj, attribindex, bindingindex);
+// }
+// static void glowVertexArrayAttribFormat(GPVERTEXARRAYATTRIBFORMAT fnptr, GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset) {
+// (*fnptr)(vaobj, attribindex, size, type, normalized, relativeoffset);
+// }
+// static void glowVertexArrayAttribIFormat(GPVERTEXARRAYATTRIBIFORMAT fnptr, GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) {
+// (*fnptr)(vaobj, attribindex, size, type, relativeoffset);
+// }
+// static void glowVertexArrayAttribLFormat(GPVERTEXARRAYATTRIBLFORMAT fnptr, GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) {
+// (*fnptr)(vaobj, attribindex, size, type, relativeoffset);
+// }
+// static void glowVertexArrayBindVertexBufferEXT(GPVERTEXARRAYBINDVERTEXBUFFEREXT fnptr, GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride) {
+// (*fnptr)(vaobj, bindingindex, buffer, offset, stride);
+// }
+// static void glowVertexArrayBindingDivisor(GPVERTEXARRAYBINDINGDIVISOR fnptr, GLuint vaobj, GLuint bindingindex, GLuint divisor) {
+// (*fnptr)(vaobj, bindingindex, divisor);
+// }
+// static void glowVertexArrayColorOffsetEXT(GPVERTEXARRAYCOLOROFFSETEXT fnptr, GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset) {
+// (*fnptr)(vaobj, buffer, size, type, stride, offset);
+// }
+// static void glowVertexArrayEdgeFlagOffsetEXT(GPVERTEXARRAYEDGEFLAGOFFSETEXT fnptr, GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset) {
+// (*fnptr)(vaobj, buffer, stride, offset);
+// }
+// static void glowVertexArrayElementBuffer(GPVERTEXARRAYELEMENTBUFFER fnptr, GLuint vaobj, GLuint buffer) {
+// (*fnptr)(vaobj, buffer);
+// }
+// static void glowVertexArrayFogCoordOffsetEXT(GPVERTEXARRAYFOGCOORDOFFSETEXT fnptr, GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset) {
+// (*fnptr)(vaobj, buffer, type, stride, offset);
+// }
+// static void glowVertexArrayIndexOffsetEXT(GPVERTEXARRAYINDEXOFFSETEXT fnptr, GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset) {
+// (*fnptr)(vaobj, buffer, type, stride, offset);
+// }
+// static void glowVertexArrayMultiTexCoordOffsetEXT(GPVERTEXARRAYMULTITEXCOORDOFFSETEXT fnptr, GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset) {
+// (*fnptr)(vaobj, buffer, texunit, size, type, stride, offset);
+// }
+// static void glowVertexArrayNormalOffsetEXT(GPVERTEXARRAYNORMALOFFSETEXT fnptr, GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset) {
+// (*fnptr)(vaobj, buffer, type, stride, offset);
+// }
+// static void glowVertexArraySecondaryColorOffsetEXT(GPVERTEXARRAYSECONDARYCOLOROFFSETEXT fnptr, GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset) {
+// (*fnptr)(vaobj, buffer, size, type, stride, offset);
+// }
+// static void glowVertexArrayTexCoordOffsetEXT(GPVERTEXARRAYTEXCOORDOFFSETEXT fnptr, GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset) {
+// (*fnptr)(vaobj, buffer, size, type, stride, offset);
+// }
+// static void glowVertexArrayVertexAttribBindingEXT(GPVERTEXARRAYVERTEXATTRIBBINDINGEXT fnptr, GLuint vaobj, GLuint attribindex, GLuint bindingindex) {
+// (*fnptr)(vaobj, attribindex, bindingindex);
+// }
+// static void glowVertexArrayVertexAttribDivisorEXT(GPVERTEXARRAYVERTEXATTRIBDIVISOREXT fnptr, GLuint vaobj, GLuint index, GLuint divisor) {
+// (*fnptr)(vaobj, index, divisor);
+// }
+// static void glowVertexArrayVertexAttribFormatEXT(GPVERTEXARRAYVERTEXATTRIBFORMATEXT fnptr, GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset) {
+// (*fnptr)(vaobj, attribindex, size, type, normalized, relativeoffset);
+// }
+// static void glowVertexArrayVertexAttribIFormatEXT(GPVERTEXARRAYVERTEXATTRIBIFORMATEXT fnptr, GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) {
+// (*fnptr)(vaobj, attribindex, size, type, relativeoffset);
+// }
+// static void glowVertexArrayVertexAttribIOffsetEXT(GPVERTEXARRAYVERTEXATTRIBIOFFSETEXT fnptr, GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset) {
+// (*fnptr)(vaobj, buffer, index, size, type, stride, offset);
+// }
+// static void glowVertexArrayVertexAttribLFormatEXT(GPVERTEXARRAYVERTEXATTRIBLFORMATEXT fnptr, GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) {
+// (*fnptr)(vaobj, attribindex, size, type, relativeoffset);
+// }
+// static void glowVertexArrayVertexAttribLOffsetEXT(GPVERTEXARRAYVERTEXATTRIBLOFFSETEXT fnptr, GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset) {
+// (*fnptr)(vaobj, buffer, index, size, type, stride, offset);
+// }
+// static void glowVertexArrayVertexAttribOffsetEXT(GPVERTEXARRAYVERTEXATTRIBOFFSETEXT fnptr, GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset) {
+// (*fnptr)(vaobj, buffer, index, size, type, normalized, stride, offset);
+// }
+// static void glowVertexArrayVertexBindingDivisorEXT(GPVERTEXARRAYVERTEXBINDINGDIVISOREXT fnptr, GLuint vaobj, GLuint bindingindex, GLuint divisor) {
+// (*fnptr)(vaobj, bindingindex, divisor);
+// }
+// static void glowVertexArrayVertexBuffer(GPVERTEXARRAYVERTEXBUFFER fnptr, GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride) {
+// (*fnptr)(vaobj, bindingindex, buffer, offset, stride);
+// }
+// static void glowVertexArrayVertexBuffers(GPVERTEXARRAYVERTEXBUFFERS fnptr, GLuint vaobj, GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizei * strides) {
+// (*fnptr)(vaobj, first, count, buffers, offsets, strides);
+// }
+// static void glowVertexArrayVertexOffsetEXT(GPVERTEXARRAYVERTEXOFFSETEXT fnptr, GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset) {
+// (*fnptr)(vaobj, buffer, size, type, stride, offset);
+// }
+// static void glowVertexAttrib1d(GPVERTEXATTRIB1D fnptr, GLuint index, GLdouble x) {
+// (*fnptr)(index, x);
+// }
+// static void glowVertexAttrib1dv(GPVERTEXATTRIB1DV fnptr, GLuint index, const GLdouble * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttrib1f(GPVERTEXATTRIB1F fnptr, GLuint index, GLfloat x) {
+// (*fnptr)(index, x);
+// }
+// static void glowVertexAttrib1fv(GPVERTEXATTRIB1FV fnptr, GLuint index, const GLfloat * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttrib1s(GPVERTEXATTRIB1S fnptr, GLuint index, GLshort x) {
+// (*fnptr)(index, x);
+// }
+// static void glowVertexAttrib1sv(GPVERTEXATTRIB1SV fnptr, GLuint index, const GLshort * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttrib2d(GPVERTEXATTRIB2D fnptr, GLuint index, GLdouble x, GLdouble y) {
+// (*fnptr)(index, x, y);
+// }
+// static void glowVertexAttrib2dv(GPVERTEXATTRIB2DV fnptr, GLuint index, const GLdouble * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttrib2f(GPVERTEXATTRIB2F fnptr, GLuint index, GLfloat x, GLfloat y) {
+// (*fnptr)(index, x, y);
+// }
+// static void glowVertexAttrib2fv(GPVERTEXATTRIB2FV fnptr, GLuint index, const GLfloat * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttrib2s(GPVERTEXATTRIB2S fnptr, GLuint index, GLshort x, GLshort y) {
+// (*fnptr)(index, x, y);
+// }
+// static void glowVertexAttrib2sv(GPVERTEXATTRIB2SV fnptr, GLuint index, const GLshort * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttrib3d(GPVERTEXATTRIB3D fnptr, GLuint index, GLdouble x, GLdouble y, GLdouble z) {
+// (*fnptr)(index, x, y, z);
+// }
+// static void glowVertexAttrib3dv(GPVERTEXATTRIB3DV fnptr, GLuint index, const GLdouble * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttrib3f(GPVERTEXATTRIB3F fnptr, GLuint index, GLfloat x, GLfloat y, GLfloat z) {
+// (*fnptr)(index, x, y, z);
+// }
+// static void glowVertexAttrib3fv(GPVERTEXATTRIB3FV fnptr, GLuint index, const GLfloat * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttrib3s(GPVERTEXATTRIB3S fnptr, GLuint index, GLshort x, GLshort y, GLshort z) {
+// (*fnptr)(index, x, y, z);
+// }
+// static void glowVertexAttrib3sv(GPVERTEXATTRIB3SV fnptr, GLuint index, const GLshort * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttrib4Nbv(GPVERTEXATTRIB4NBV fnptr, GLuint index, const GLbyte * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttrib4Niv(GPVERTEXATTRIB4NIV fnptr, GLuint index, const GLint * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttrib4Nsv(GPVERTEXATTRIB4NSV fnptr, GLuint index, const GLshort * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttrib4Nub(GPVERTEXATTRIB4NUB fnptr, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) {
+// (*fnptr)(index, x, y, z, w);
+// }
+// static void glowVertexAttrib4Nubv(GPVERTEXATTRIB4NUBV fnptr, GLuint index, const GLubyte * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttrib4Nuiv(GPVERTEXATTRIB4NUIV fnptr, GLuint index, const GLuint * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttrib4Nusv(GPVERTEXATTRIB4NUSV fnptr, GLuint index, const GLushort * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttrib4bv(GPVERTEXATTRIB4BV fnptr, GLuint index, const GLbyte * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttrib4d(GPVERTEXATTRIB4D fnptr, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) {
+// (*fnptr)(index, x, y, z, w);
+// }
+// static void glowVertexAttrib4dv(GPVERTEXATTRIB4DV fnptr, GLuint index, const GLdouble * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttrib4f(GPVERTEXATTRIB4F fnptr, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
+// (*fnptr)(index, x, y, z, w);
+// }
+// static void glowVertexAttrib4fv(GPVERTEXATTRIB4FV fnptr, GLuint index, const GLfloat * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttrib4iv(GPVERTEXATTRIB4IV fnptr, GLuint index, const GLint * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttrib4s(GPVERTEXATTRIB4S fnptr, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) {
+// (*fnptr)(index, x, y, z, w);
+// }
+// static void glowVertexAttrib4sv(GPVERTEXATTRIB4SV fnptr, GLuint index, const GLshort * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttrib4ubv(GPVERTEXATTRIB4UBV fnptr, GLuint index, const GLubyte * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttrib4uiv(GPVERTEXATTRIB4UIV fnptr, GLuint index, const GLuint * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttrib4usv(GPVERTEXATTRIB4USV fnptr, GLuint index, const GLushort * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribBinding(GPVERTEXATTRIBBINDING fnptr, GLuint attribindex, GLuint bindingindex) {
+// (*fnptr)(attribindex, bindingindex);
+// }
+// static void glowVertexAttribDivisor(GPVERTEXATTRIBDIVISOR fnptr, GLuint index, GLuint divisor) {
+// (*fnptr)(index, divisor);
+// }
+// static void glowVertexAttribDivisorARB(GPVERTEXATTRIBDIVISORARB fnptr, GLuint index, GLuint divisor) {
+// (*fnptr)(index, divisor);
+// }
+// static void glowVertexAttribFormat(GPVERTEXATTRIBFORMAT fnptr, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset) {
+// (*fnptr)(attribindex, size, type, normalized, relativeoffset);
+// }
+// static void glowVertexAttribFormatNV(GPVERTEXATTRIBFORMATNV fnptr, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride) {
+// (*fnptr)(index, size, type, normalized, stride);
+// }
+// static void glowVertexAttribI1i(GPVERTEXATTRIBI1I fnptr, GLuint index, GLint x) {
+// (*fnptr)(index, x);
+// }
+// static void glowVertexAttribI1iv(GPVERTEXATTRIBI1IV fnptr, GLuint index, const GLint * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribI1ui(GPVERTEXATTRIBI1UI fnptr, GLuint index, GLuint x) {
+// (*fnptr)(index, x);
+// }
+// static void glowVertexAttribI1uiv(GPVERTEXATTRIBI1UIV fnptr, GLuint index, const GLuint * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribI2i(GPVERTEXATTRIBI2I fnptr, GLuint index, GLint x, GLint y) {
+// (*fnptr)(index, x, y);
+// }
+// static void glowVertexAttribI2iv(GPVERTEXATTRIBI2IV fnptr, GLuint index, const GLint * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribI2ui(GPVERTEXATTRIBI2UI fnptr, GLuint index, GLuint x, GLuint y) {
+// (*fnptr)(index, x, y);
+// }
+// static void glowVertexAttribI2uiv(GPVERTEXATTRIBI2UIV fnptr, GLuint index, const GLuint * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribI3i(GPVERTEXATTRIBI3I fnptr, GLuint index, GLint x, GLint y, GLint z) {
+// (*fnptr)(index, x, y, z);
+// }
+// static void glowVertexAttribI3iv(GPVERTEXATTRIBI3IV fnptr, GLuint index, const GLint * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribI3ui(GPVERTEXATTRIBI3UI fnptr, GLuint index, GLuint x, GLuint y, GLuint z) {
+// (*fnptr)(index, x, y, z);
+// }
+// static void glowVertexAttribI3uiv(GPVERTEXATTRIBI3UIV fnptr, GLuint index, const GLuint * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribI4bv(GPVERTEXATTRIBI4BV fnptr, GLuint index, const GLbyte * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribI4i(GPVERTEXATTRIBI4I fnptr, GLuint index, GLint x, GLint y, GLint z, GLint w) {
+// (*fnptr)(index, x, y, z, w);
+// }
+// static void glowVertexAttribI4iv(GPVERTEXATTRIBI4IV fnptr, GLuint index, const GLint * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribI4sv(GPVERTEXATTRIBI4SV fnptr, GLuint index, const GLshort * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribI4ubv(GPVERTEXATTRIBI4UBV fnptr, GLuint index, const GLubyte * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribI4ui(GPVERTEXATTRIBI4UI fnptr, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) {
+// (*fnptr)(index, x, y, z, w);
+// }
+// static void glowVertexAttribI4uiv(GPVERTEXATTRIBI4UIV fnptr, GLuint index, const GLuint * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribI4usv(GPVERTEXATTRIBI4USV fnptr, GLuint index, const GLushort * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribIFormat(GPVERTEXATTRIBIFORMAT fnptr, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) {
+// (*fnptr)(attribindex, size, type, relativeoffset);
+// }
+// static void glowVertexAttribIFormatNV(GPVERTEXATTRIBIFORMATNV fnptr, GLuint index, GLint size, GLenum type, GLsizei stride) {
+// (*fnptr)(index, size, type, stride);
+// }
+// static void glowVertexAttribIPointer(GPVERTEXATTRIBIPOINTER fnptr, GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer) {
+// (*fnptr)(index, size, type, stride, pointer);
+// }
+// static void glowVertexAttribIPointerWithOffset(GPVERTEXATTRIBIPOINTER fnptr, GLuint index, GLint size, GLenum type, GLsizei stride, uintptr_t offset) {
+// (*fnptr)(index, size, type, stride, (const void *)(offset));
+// }
+// static void glowVertexAttribL1d(GPVERTEXATTRIBL1D fnptr, GLuint index, GLdouble x) {
+// (*fnptr)(index, x);
+// }
+// static void glowVertexAttribL1dv(GPVERTEXATTRIBL1DV fnptr, GLuint index, const GLdouble * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribL1i64NV(GPVERTEXATTRIBL1I64NV fnptr, GLuint index, GLint64EXT x) {
+// (*fnptr)(index, x);
+// }
+// static void glowVertexAttribL1i64vNV(GPVERTEXATTRIBL1I64VNV fnptr, GLuint index, const GLint64EXT * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribL1ui64ARB(GPVERTEXATTRIBL1UI64ARB fnptr, GLuint index, GLuint64EXT x) {
+// (*fnptr)(index, x);
+// }
+// static void glowVertexAttribL1ui64NV(GPVERTEXATTRIBL1UI64NV fnptr, GLuint index, GLuint64EXT x) {
+// (*fnptr)(index, x);
+// }
+// static void glowVertexAttribL1ui64vARB(GPVERTEXATTRIBL1UI64VARB fnptr, GLuint index, const GLuint64EXT * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribL1ui64vNV(GPVERTEXATTRIBL1UI64VNV fnptr, GLuint index, const GLuint64EXT * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribL2d(GPVERTEXATTRIBL2D fnptr, GLuint index, GLdouble x, GLdouble y) {
+// (*fnptr)(index, x, y);
+// }
+// static void glowVertexAttribL2dv(GPVERTEXATTRIBL2DV fnptr, GLuint index, const GLdouble * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribL2i64NV(GPVERTEXATTRIBL2I64NV fnptr, GLuint index, GLint64EXT x, GLint64EXT y) {
+// (*fnptr)(index, x, y);
+// }
+// static void glowVertexAttribL2i64vNV(GPVERTEXATTRIBL2I64VNV fnptr, GLuint index, const GLint64EXT * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribL2ui64NV(GPVERTEXATTRIBL2UI64NV fnptr, GLuint index, GLuint64EXT x, GLuint64EXT y) {
+// (*fnptr)(index, x, y);
+// }
+// static void glowVertexAttribL2ui64vNV(GPVERTEXATTRIBL2UI64VNV fnptr, GLuint index, const GLuint64EXT * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribL3d(GPVERTEXATTRIBL3D fnptr, GLuint index, GLdouble x, GLdouble y, GLdouble z) {
+// (*fnptr)(index, x, y, z);
+// }
+// static void glowVertexAttribL3dv(GPVERTEXATTRIBL3DV fnptr, GLuint index, const GLdouble * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribL3i64NV(GPVERTEXATTRIBL3I64NV fnptr, GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z) {
+// (*fnptr)(index, x, y, z);
+// }
+// static void glowVertexAttribL3i64vNV(GPVERTEXATTRIBL3I64VNV fnptr, GLuint index, const GLint64EXT * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribL3ui64NV(GPVERTEXATTRIBL3UI64NV fnptr, GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z) {
+// (*fnptr)(index, x, y, z);
+// }
+// static void glowVertexAttribL3ui64vNV(GPVERTEXATTRIBL3UI64VNV fnptr, GLuint index, const GLuint64EXT * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribL4d(GPVERTEXATTRIBL4D fnptr, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) {
+// (*fnptr)(index, x, y, z, w);
+// }
+// static void glowVertexAttribL4dv(GPVERTEXATTRIBL4DV fnptr, GLuint index, const GLdouble * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribL4i64NV(GPVERTEXATTRIBL4I64NV fnptr, GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w) {
+// (*fnptr)(index, x, y, z, w);
+// }
+// static void glowVertexAttribL4i64vNV(GPVERTEXATTRIBL4I64VNV fnptr, GLuint index, const GLint64EXT * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribL4ui64NV(GPVERTEXATTRIBL4UI64NV fnptr, GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w) {
+// (*fnptr)(index, x, y, z, w);
+// }
+// static void glowVertexAttribL4ui64vNV(GPVERTEXATTRIBL4UI64VNV fnptr, GLuint index, const GLuint64EXT * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowVertexAttribLFormat(GPVERTEXATTRIBLFORMAT fnptr, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset) {
+// (*fnptr)(attribindex, size, type, relativeoffset);
+// }
+// static void glowVertexAttribLFormatNV(GPVERTEXATTRIBLFORMATNV fnptr, GLuint index, GLint size, GLenum type, GLsizei stride) {
+// (*fnptr)(index, size, type, stride);
+// }
+// static void glowVertexAttribLPointer(GPVERTEXATTRIBLPOINTER fnptr, GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer) {
+// (*fnptr)(index, size, type, stride, pointer);
+// }
+// static void glowVertexAttribLPointerWithOffset(GPVERTEXATTRIBLPOINTER fnptr, GLuint index, GLint size, GLenum type, GLsizei stride, uintptr_t offset) {
+// (*fnptr)(index, size, type, stride, (const void *)(offset));
+// }
+// static void glowVertexAttribP1ui(GPVERTEXATTRIBP1UI fnptr, GLuint index, GLenum type, GLboolean normalized, GLuint value) {
+// (*fnptr)(index, type, normalized, value);
+// }
+// static void glowVertexAttribP1uiv(GPVERTEXATTRIBP1UIV fnptr, GLuint index, GLenum type, GLboolean normalized, const GLuint * value) {
+// (*fnptr)(index, type, normalized, value);
+// }
+// static void glowVertexAttribP2ui(GPVERTEXATTRIBP2UI fnptr, GLuint index, GLenum type, GLboolean normalized, GLuint value) {
+// (*fnptr)(index, type, normalized, value);
+// }
+// static void glowVertexAttribP2uiv(GPVERTEXATTRIBP2UIV fnptr, GLuint index, GLenum type, GLboolean normalized, const GLuint * value) {
+// (*fnptr)(index, type, normalized, value);
+// }
+// static void glowVertexAttribP3ui(GPVERTEXATTRIBP3UI fnptr, GLuint index, GLenum type, GLboolean normalized, GLuint value) {
+// (*fnptr)(index, type, normalized, value);
+// }
+// static void glowVertexAttribP3uiv(GPVERTEXATTRIBP3UIV fnptr, GLuint index, GLenum type, GLboolean normalized, const GLuint * value) {
+// (*fnptr)(index, type, normalized, value);
+// }
+// static void glowVertexAttribP4ui(GPVERTEXATTRIBP4UI fnptr, GLuint index, GLenum type, GLboolean normalized, GLuint value) {
+// (*fnptr)(index, type, normalized, value);
+// }
+// static void glowVertexAttribP4uiv(GPVERTEXATTRIBP4UIV fnptr, GLuint index, GLenum type, GLboolean normalized, const GLuint * value) {
+// (*fnptr)(index, type, normalized, value);
+// }
+// static void glowVertexAttribPointer(GPVERTEXATTRIBPOINTER fnptr, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * pointer) {
+// (*fnptr)(index, size, type, normalized, stride, pointer);
+// }
+// static void glowVertexAttribPointerWithOffset(GPVERTEXATTRIBPOINTER fnptr, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, uintptr_t offset) {
+// (*fnptr)(index, size, type, normalized, stride, (const void *)(offset));
+// }
+// static void glowVertexBindingDivisor(GPVERTEXBINDINGDIVISOR fnptr, GLuint bindingindex, GLuint divisor) {
+// (*fnptr)(bindingindex, divisor);
+// }
+// static void glowVertexFormatNV(GPVERTEXFORMATNV fnptr, GLint size, GLenum type, GLsizei stride) {
+// (*fnptr)(size, type, stride);
+// }
+// static void glowViewport(GPVIEWPORT fnptr, GLint x, GLint y, GLsizei width, GLsizei height) {
+// (*fnptr)(x, y, width, height);
+// }
+// static void glowViewportArrayv(GPVIEWPORTARRAYV fnptr, GLuint first, GLsizei count, const GLfloat * v) {
+// (*fnptr)(first, count, v);
+// }
+// static void glowViewportIndexedf(GPVIEWPORTINDEXEDF fnptr, GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h) {
+// (*fnptr)(index, x, y, w, h);
+// }
+// static void glowViewportIndexedfv(GPVIEWPORTINDEXEDFV fnptr, GLuint index, const GLfloat * v) {
+// (*fnptr)(index, v);
+// }
+// static void glowViewportPositionWScaleNV(GPVIEWPORTPOSITIONWSCALENV fnptr, GLuint index, GLfloat xcoeff, GLfloat ycoeff) {
+// (*fnptr)(index, xcoeff, ycoeff);
+// }
+// static void glowViewportSwizzleNV(GPVIEWPORTSWIZZLENV fnptr, GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew) {
+// (*fnptr)(index, swizzlex, swizzley, swizzlez, swizzlew);
+// }
+// static void glowWaitSync(GPWAITSYNC fnptr, GLsync sync, GLbitfield flags, GLuint64 timeout) {
+// (*fnptr)(sync, flags, timeout);
+// }
+// static void glowWaitVkSemaphoreNV(GPWAITVKSEMAPHORENV fnptr, GLuint64 vkSemaphore) {
+// (*fnptr)(vkSemaphore);
+// }
+// static void glowWeightPathsNV(GPWEIGHTPATHSNV fnptr, GLuint resultPath, GLsizei numPaths, const GLuint * paths, const GLfloat * weights) {
+// (*fnptr)(resultPath, numPaths, paths, weights);
+// }
+// static void glowWindowRectanglesEXT(GPWINDOWRECTANGLESEXT fnptr, GLenum mode, GLsizei count, const GLint * box) {
+// (*fnptr)(mode, count, box);
+// }
+import "C"
+import (
+ "errors"
+ "unsafe"
+)
+
+const (
+ ACCUM_ADJACENT_PAIRS_NV = 0x90AD
+ ACTIVE_ATOMIC_COUNTER_BUFFERS = 0x92D9
+ ACTIVE_ATTRIBUTES = 0x8B89
+ ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
+ ACTIVE_PROGRAM = 0x8259
+ ACTIVE_PROGRAM_EXT = 0x8B8D
+ ACTIVE_RESOURCES = 0x92F5
+ ACTIVE_SUBROUTINES = 0x8DE5
+ ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48
+ ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6
+ ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47
+ ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49
+ ACTIVE_TEXTURE = 0x84E0
+ ACTIVE_UNIFORMS = 0x8B86
+ ACTIVE_UNIFORM_BLOCKS = 0x8A36
+ ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35
+ ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
+ ACTIVE_VARIABLES = 0x9305
+ ADJACENT_PAIRS_NV = 0x90AE
+ AFFINE_2D_NV = 0x9092
+ AFFINE_3D_NV = 0x9094
+ ALIASED_LINE_WIDTH_RANGE = 0x846E
+ ALL_BARRIER_BITS = 0xFFFFFFFF
+ ALL_SHADER_BITS = 0xFFFFFFFF
+ ALL_SHADER_BITS_EXT = 0xFFFFFFFF
+ ALPHA = 0x1906
+ ALPHA16F_EXT = 0x881C
+ ALPHA32F_EXT = 0x8816
+ ALPHA8_EXT = 0x803C
+ ALPHA_REF_COMMAND_NV = 0x000F
+ ALREADY_SIGNALED = 0x911A
+ ALWAYS = 0x0207
+ AND = 0x1501
+ AND_INVERTED = 0x1504
+ AND_REVERSE = 0x1502
+ ANY_SAMPLES_PASSED = 0x8C2F
+ ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A
+ ARC_TO_NV = 0xFE
+ ARRAY_BUFFER = 0x8892
+ ARRAY_BUFFER_BINDING = 0x8894
+ ARRAY_SIZE = 0x92FB
+ ARRAY_STRIDE = 0x92FE
+ ATOMIC_COUNTER_BARRIER_BIT = 0x00001000
+ ATOMIC_COUNTER_BUFFER = 0x92C0
+ ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = 0x92C5
+ ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = 0x92C6
+ ATOMIC_COUNTER_BUFFER_BINDING = 0x92C1
+ ATOMIC_COUNTER_BUFFER_DATA_SIZE = 0x92C4
+ ATOMIC_COUNTER_BUFFER_INDEX = 0x9301
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = 0x92CB
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = 0x92CA
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV = 0x959E
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV = 0x959F
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = 0x92C8
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x92C9
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = 0x92C7
+ ATOMIC_COUNTER_BUFFER_SIZE = 0x92C3
+ ATOMIC_COUNTER_BUFFER_START = 0x92C2
+ ATTACHED_MEMORY_OBJECT_NV = 0x95A4
+ ATTACHED_MEMORY_OFFSET_NV = 0x95A5
+ ATTACHED_SHADERS = 0x8B85
+ ATTRIBUTE_ADDRESS_COMMAND_NV = 0x0009
+ AUTO_GENERATE_MIPMAP = 0x8295
+ BACK = 0x0405
+ BACK_LEFT = 0x0402
+ BACK_RIGHT = 0x0403
+ BEVEL_NV = 0x90A6
+ BGR = 0x80E0
+ BGRA = 0x80E1
+ BGRA8_EXT = 0x93A1
+ BGRA_INTEGER = 0x8D9B
+ BGR_INTEGER = 0x8D9A
+ BLACKHOLE_RENDER_INTEL = 0x83FC
+ BLEND = 0x0BE2
+ BLEND_ADVANCED_COHERENT_KHR = 0x9285
+ BLEND_ADVANCED_COHERENT_NV = 0x9285
+ BLEND_COLOR = 0x8005
+ BLEND_COLOR_COMMAND_NV = 0x000B
+ BLEND_DST = 0x0BE0
+ BLEND_DST_ALPHA = 0x80CA
+ BLEND_DST_RGB = 0x80C8
+ BLEND_EQUATION = 0x8009
+ BLEND_EQUATION_ALPHA = 0x883D
+ BLEND_EQUATION_RGB = 0x8009
+ BLEND_OVERLAP_NV = 0x9281
+ BLEND_PREMULTIPLIED_SRC_NV = 0x9280
+ BLEND_SRC = 0x0BE1
+ BLEND_SRC_ALPHA = 0x80CB
+ BLEND_SRC_RGB = 0x80C9
+ BLOCK_INDEX = 0x92FD
+ BLUE = 0x1905
+ BLUE_INTEGER = 0x8D96
+ BLUE_NV = 0x1905
+ BOLD_BIT_NV = 0x01
+ BOOL = 0x8B56
+ BOOL_VEC2 = 0x8B57
+ BOOL_VEC3 = 0x8B58
+ BOOL_VEC4 = 0x8B59
+ BOUNDING_BOX_NV = 0x908D
+ BOUNDING_BOX_OF_BOUNDING_BOXES_NV = 0x909C
+ BUFFER = 0x82E0
+ BUFFER_ACCESS = 0x88BB
+ BUFFER_ACCESS_FLAGS = 0x911F
+ BUFFER_BINDING = 0x9302
+ BUFFER_DATA_SIZE = 0x9303
+ BUFFER_GPU_ADDRESS_NV = 0x8F1D
+ BUFFER_IMMUTABLE_STORAGE = 0x821F
+ BUFFER_KHR = 0x82E0
+ BUFFER_MAPPED = 0x88BC
+ BUFFER_MAP_LENGTH = 0x9120
+ BUFFER_MAP_OFFSET = 0x9121
+ BUFFER_MAP_POINTER = 0x88BD
+ BUFFER_OBJECT_EXT = 0x9151
+ BUFFER_SIZE = 0x8764
+ BUFFER_STORAGE_FLAGS = 0x8220
+ BUFFER_UPDATE_BARRIER_BIT = 0x00000200
+ BUFFER_USAGE = 0x8765
+ BUFFER_VARIABLE = 0x92E5
+ BYTE = 0x1400
+ CAVEAT_SUPPORT = 0x82B8
+ CCW = 0x0901
+ CIRCULAR_CCW_ARC_TO_NV = 0xF8
+ CIRCULAR_CW_ARC_TO_NV = 0xFA
+ CIRCULAR_TANGENT_ARC_TO_NV = 0xFC
+ CLAMP_READ_COLOR = 0x891C
+ CLAMP_TO_BORDER = 0x812D
+ CLAMP_TO_BORDER_ARB = 0x812D
+ CLAMP_TO_EDGE = 0x812F
+ CLEAR = 0x1500
+ CLEAR_BUFFER = 0x82B4
+ CLEAR_TEXTURE = 0x9365
+ CLIENT_MAPPED_BUFFER_BARRIER_BIT = 0x00004000
+ CLIENT_STORAGE_BIT = 0x0200
+ CLIPPING_INPUT_PRIMITIVES_ARB = 0x82F6
+ CLIPPING_OUTPUT_PRIMITIVES_ARB = 0x82F7
+ CLIP_DEPTH_MODE = 0x935D
+ CLIP_DISTANCE0 = 0x3000
+ CLIP_DISTANCE1 = 0x3001
+ CLIP_DISTANCE2 = 0x3002
+ CLIP_DISTANCE3 = 0x3003
+ CLIP_DISTANCE4 = 0x3004
+ CLIP_DISTANCE5 = 0x3005
+ CLIP_DISTANCE6 = 0x3006
+ CLIP_DISTANCE7 = 0x3007
+ CLIP_ORIGIN = 0x935C
+ CLOSE_PATH_NV = 0x00
+ COLOR = 0x1800
+ COLORBURN_KHR = 0x929A
+ COLORBURN_NV = 0x929A
+ COLORDODGE_KHR = 0x9299
+ COLORDODGE_NV = 0x9299
+ COLOR_ARRAY_ADDRESS_NV = 0x8F23
+ COLOR_ARRAY_LENGTH_NV = 0x8F2D
+ COLOR_ATTACHMENT0 = 0x8CE0
+ COLOR_ATTACHMENT1 = 0x8CE1
+ COLOR_ATTACHMENT10 = 0x8CEA
+ COLOR_ATTACHMENT11 = 0x8CEB
+ COLOR_ATTACHMENT12 = 0x8CEC
+ COLOR_ATTACHMENT13 = 0x8CED
+ COLOR_ATTACHMENT14 = 0x8CEE
+ COLOR_ATTACHMENT15 = 0x8CEF
+ COLOR_ATTACHMENT16 = 0x8CF0
+ COLOR_ATTACHMENT17 = 0x8CF1
+ COLOR_ATTACHMENT18 = 0x8CF2
+ COLOR_ATTACHMENT19 = 0x8CF3
+ COLOR_ATTACHMENT2 = 0x8CE2
+ COLOR_ATTACHMENT20 = 0x8CF4
+ COLOR_ATTACHMENT21 = 0x8CF5
+ COLOR_ATTACHMENT22 = 0x8CF6
+ COLOR_ATTACHMENT23 = 0x8CF7
+ COLOR_ATTACHMENT24 = 0x8CF8
+ COLOR_ATTACHMENT25 = 0x8CF9
+ COLOR_ATTACHMENT26 = 0x8CFA
+ COLOR_ATTACHMENT27 = 0x8CFB
+ COLOR_ATTACHMENT28 = 0x8CFC
+ COLOR_ATTACHMENT29 = 0x8CFD
+ COLOR_ATTACHMENT3 = 0x8CE3
+ COLOR_ATTACHMENT30 = 0x8CFE
+ COLOR_ATTACHMENT31 = 0x8CFF
+ COLOR_ATTACHMENT4 = 0x8CE4
+ COLOR_ATTACHMENT5 = 0x8CE5
+ COLOR_ATTACHMENT6 = 0x8CE6
+ COLOR_ATTACHMENT7 = 0x8CE7
+ COLOR_ATTACHMENT8 = 0x8CE8
+ COLOR_ATTACHMENT9 = 0x8CE9
+ COLOR_BUFFER_BIT = 0x00004000
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_COMPONENTS = 0x8283
+ COLOR_ENCODING = 0x8296
+ COLOR_LOGIC_OP = 0x0BF2
+ COLOR_RENDERABLE = 0x8286
+ COLOR_SAMPLES_NV = 0x8E20
+ COLOR_WRITEMASK = 0x0C23
+ COMMAND_BARRIER_BIT = 0x00000040
+ COMPARE_REF_TO_TEXTURE = 0x884E
+ COMPATIBLE_SUBROUTINES = 0x8E4B
+ COMPILE_STATUS = 0x8B81
+ COMPLETION_STATUS_ARB = 0x91B1
+ COMPLETION_STATUS_KHR = 0x91B1
+ COMPRESSED_R11_EAC = 0x9270
+ COMPRESSED_RED = 0x8225
+ COMPRESSED_RED_RGTC1 = 0x8DBB
+ COMPRESSED_RG = 0x8226
+ COMPRESSED_RG11_EAC = 0x9272
+ COMPRESSED_RGB = 0x84ED
+ COMPRESSED_RGB8_ETC2 = 0x9274
+ COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276
+ COMPRESSED_RGBA = 0x84EE
+ COMPRESSED_RGBA8_ETC2_EAC = 0x9278
+ COMPRESSED_RGBA_ASTC_10x10_KHR = 0x93BB
+ COMPRESSED_RGBA_ASTC_10x5_KHR = 0x93B8
+ COMPRESSED_RGBA_ASTC_10x6_KHR = 0x93B9
+ COMPRESSED_RGBA_ASTC_10x8_KHR = 0x93BA
+ COMPRESSED_RGBA_ASTC_12x10_KHR = 0x93BC
+ COMPRESSED_RGBA_ASTC_12x12_KHR = 0x93BD
+ COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93B0
+ COMPRESSED_RGBA_ASTC_5x4_KHR = 0x93B1
+ COMPRESSED_RGBA_ASTC_5x5_KHR = 0x93B2
+ COMPRESSED_RGBA_ASTC_6x5_KHR = 0x93B3
+ COMPRESSED_RGBA_ASTC_6x6_KHR = 0x93B4
+ COMPRESSED_RGBA_ASTC_8x5_KHR = 0x93B5
+ COMPRESSED_RGBA_ASTC_8x6_KHR = 0x93B6
+ COMPRESSED_RGBA_ASTC_8x8_KHR = 0x93B7
+ COMPRESSED_RGBA_BPTC_UNORM_ARB = 0x8E8C
+ COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1
+ COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2
+ COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3
+ COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB = 0x8E8E
+ COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB = 0x8E8F
+ COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0
+ COMPRESSED_RG_RGTC2 = 0x8DBD
+ COMPRESSED_SIGNED_R11_EAC = 0x9271
+ COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC
+ COMPRESSED_SIGNED_RG11_EAC = 0x9273
+ COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE
+ COMPRESSED_SRGB = 0x8C48
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = 0x93DB
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = 0x93D8
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = 0x93D9
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = 0x93DA
+ COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 0x93DC
+ COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 0x93DD
+ COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 0x93D0
+ COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = 0x93D1
+ COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = 0x93D2
+ COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = 0x93D3
+ COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = 0x93D4
+ COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = 0x93D5
+ COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = 0x93D6
+ COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = 0x93D7
+ COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279
+ COMPRESSED_SRGB8_ETC2 = 0x9275
+ COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277
+ COMPRESSED_SRGB_ALPHA = 0x8C49
+ COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB = 0x8E8D
+ COMPRESSED_TEXTURE_FORMATS = 0x86A3
+ COMPUTE_SHADER = 0x91B9
+ COMPUTE_SHADER_BIT = 0x00000020
+ COMPUTE_SHADER_INVOCATIONS_ARB = 0x82F5
+ COMPUTE_SUBROUTINE = 0x92ED
+ COMPUTE_SUBROUTINE_UNIFORM = 0x92F3
+ COMPUTE_TEXTURE = 0x82A0
+ COMPUTE_WORK_GROUP_SIZE = 0x8267
+ CONDITION_SATISFIED = 0x911C
+ CONFORMANT_NV = 0x9374
+ CONIC_CURVE_TO_NV = 0x1A
+ CONJOINT_NV = 0x9284
+ CONSERVATIVE_RASTERIZATION_INTEL = 0x83FE
+ CONSERVATIVE_RASTERIZATION_NV = 0x9346
+ CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV = 0x937B
+ CONSERVATIVE_RASTER_DILATE_NV = 0x9379
+ CONSERVATIVE_RASTER_DILATE_RANGE_NV = 0x937A
+ CONSERVATIVE_RASTER_MODE_NV = 0x954D
+ CONSERVATIVE_RASTER_MODE_POST_SNAP_NV = 0x954E
+ CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV = 0x9550
+ CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV = 0x954F
+ CONSTANT_ALPHA = 0x8003
+ CONSTANT_COLOR = 0x8001
+ CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002
+ CONTEXT_CORE_PROFILE_BIT = 0x00000001
+ CONTEXT_FLAGS = 0x821E
+ CONTEXT_FLAG_DEBUG_BIT = 0x00000002
+ CONTEXT_FLAG_DEBUG_BIT_KHR = 0x00000002
+ CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001
+ CONTEXT_FLAG_NO_ERROR_BIT_KHR = 0x00000008
+ CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = 0x00000004
+ CONTEXT_LOST = 0x0507
+ CONTEXT_LOST_KHR = 0x0507
+ CONTEXT_PROFILE_MASK = 0x9126
+ CONTEXT_RELEASE_BEHAVIOR = 0x82FB
+ CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x82FC
+ CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR = 0x82FC
+ CONTEXT_RELEASE_BEHAVIOR_KHR = 0x82FB
+ CONTEXT_ROBUST_ACCESS = 0x90F3
+ CONTEXT_ROBUST_ACCESS_KHR = 0x90F3
+ CONTRAST_NV = 0x92A1
+ CONVEX_HULL_NV = 0x908B
+ COPY = 0x1503
+ COPY_INVERTED = 0x150C
+ COPY_READ_BUFFER = 0x8F36
+ COPY_WRITE_BUFFER = 0x8F37
+ COUNTER_RANGE_AMD = 0x8BC1
+ COUNTER_TYPE_AMD = 0x8BC0
+ COUNT_DOWN_NV = 0x9089
+ COUNT_UP_NV = 0x9088
+ COVERAGE_MODULATION_NV = 0x9332
+ COVERAGE_MODULATION_TABLE_NV = 0x9331
+ COVERAGE_MODULATION_TABLE_SIZE_NV = 0x9333
+ CUBIC_CURVE_TO_NV = 0x0C
+ CULL_FACE = 0x0B44
+ CULL_FACE_MODE = 0x0B45
+ CURRENT_PROGRAM = 0x8B8D
+ CURRENT_QUERY = 0x8865
+ CURRENT_VERTEX_ATTRIB = 0x8626
+ CW = 0x0900
+ DARKEN_KHR = 0x9297
+ DARKEN_NV = 0x9297
+ DEBUG_CALLBACK_FUNCTION = 0x8244
+ DEBUG_CALLBACK_FUNCTION_ARB = 0x8244
+ DEBUG_CALLBACK_FUNCTION_KHR = 0x8244
+ DEBUG_CALLBACK_USER_PARAM = 0x8245
+ DEBUG_CALLBACK_USER_PARAM_ARB = 0x8245
+ DEBUG_CALLBACK_USER_PARAM_KHR = 0x8245
+ DEBUG_GROUP_STACK_DEPTH = 0x826D
+ DEBUG_GROUP_STACK_DEPTH_KHR = 0x826D
+ DEBUG_LOGGED_MESSAGES = 0x9145
+ DEBUG_LOGGED_MESSAGES_ARB = 0x9145
+ DEBUG_LOGGED_MESSAGES_KHR = 0x9145
+ DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243
+ DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = 0x8243
+ DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR = 0x8243
+ DEBUG_OUTPUT = 0x92E0
+ DEBUG_OUTPUT_KHR = 0x92E0
+ DEBUG_OUTPUT_SYNCHRONOUS = 0x8242
+ DEBUG_OUTPUT_SYNCHRONOUS_ARB = 0x8242
+ DEBUG_OUTPUT_SYNCHRONOUS_KHR = 0x8242
+ DEBUG_SEVERITY_HIGH = 0x9146
+ DEBUG_SEVERITY_HIGH_ARB = 0x9146
+ DEBUG_SEVERITY_HIGH_KHR = 0x9146
+ DEBUG_SEVERITY_LOW = 0x9148
+ DEBUG_SEVERITY_LOW_ARB = 0x9148
+ DEBUG_SEVERITY_LOW_KHR = 0x9148
+ DEBUG_SEVERITY_MEDIUM = 0x9147
+ DEBUG_SEVERITY_MEDIUM_ARB = 0x9147
+ DEBUG_SEVERITY_MEDIUM_KHR = 0x9147
+ DEBUG_SEVERITY_NOTIFICATION = 0x826B
+ DEBUG_SEVERITY_NOTIFICATION_KHR = 0x826B
+ DEBUG_SOURCE_API = 0x8246
+ DEBUG_SOURCE_API_ARB = 0x8246
+ DEBUG_SOURCE_API_KHR = 0x8246
+ DEBUG_SOURCE_APPLICATION = 0x824A
+ DEBUG_SOURCE_APPLICATION_ARB = 0x824A
+ DEBUG_SOURCE_APPLICATION_KHR = 0x824A
+ DEBUG_SOURCE_OTHER = 0x824B
+ DEBUG_SOURCE_OTHER_ARB = 0x824B
+ DEBUG_SOURCE_OTHER_KHR = 0x824B
+ DEBUG_SOURCE_SHADER_COMPILER = 0x8248
+ DEBUG_SOURCE_SHADER_COMPILER_ARB = 0x8248
+ DEBUG_SOURCE_SHADER_COMPILER_KHR = 0x8248
+ DEBUG_SOURCE_THIRD_PARTY = 0x8249
+ DEBUG_SOURCE_THIRD_PARTY_ARB = 0x8249
+ DEBUG_SOURCE_THIRD_PARTY_KHR = 0x8249
+ DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247
+ DEBUG_SOURCE_WINDOW_SYSTEM_ARB = 0x8247
+ DEBUG_SOURCE_WINDOW_SYSTEM_KHR = 0x8247
+ DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D
+ DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = 0x824D
+ DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR = 0x824D
+ DEBUG_TYPE_ERROR = 0x824C
+ DEBUG_TYPE_ERROR_ARB = 0x824C
+ DEBUG_TYPE_ERROR_KHR = 0x824C
+ DEBUG_TYPE_MARKER = 0x8268
+ DEBUG_TYPE_MARKER_KHR = 0x8268
+ DEBUG_TYPE_OTHER = 0x8251
+ DEBUG_TYPE_OTHER_ARB = 0x8251
+ DEBUG_TYPE_OTHER_KHR = 0x8251
+ DEBUG_TYPE_PERFORMANCE = 0x8250
+ DEBUG_TYPE_PERFORMANCE_ARB = 0x8250
+ DEBUG_TYPE_PERFORMANCE_KHR = 0x8250
+ DEBUG_TYPE_POP_GROUP = 0x826A
+ DEBUG_TYPE_POP_GROUP_KHR = 0x826A
+ DEBUG_TYPE_PORTABILITY = 0x824F
+ DEBUG_TYPE_PORTABILITY_ARB = 0x824F
+ DEBUG_TYPE_PORTABILITY_KHR = 0x824F
+ DEBUG_TYPE_PUSH_GROUP = 0x8269
+ DEBUG_TYPE_PUSH_GROUP_KHR = 0x8269
+ DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E
+ DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = 0x824E
+ DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR = 0x824E
+ DECODE_EXT = 0x8A49
+ DECR = 0x1E03
+ DECR_WRAP = 0x8508
+ DELETE_STATUS = 0x8B80
+ DEPTH = 0x1801
+ DEPTH24_STENCIL8 = 0x88F0
+ DEPTH32F_STENCIL8 = 0x8CAD
+ DEPTH32F_STENCIL8_NV = 0x8DAC
+ DEPTH_ATTACHMENT = 0x8D00
+ DEPTH_BUFFER_BIT = 0x00000100
+ DEPTH_BUFFER_FLOAT_MODE_NV = 0x8DAF
+ DEPTH_CLAMP = 0x864F
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_COMPONENT = 0x1902
+ DEPTH_COMPONENT16 = 0x81A5
+ DEPTH_COMPONENT24 = 0x81A6
+ DEPTH_COMPONENT32 = 0x81A7
+ DEPTH_COMPONENT32F = 0x8CAC
+ DEPTH_COMPONENT32F_NV = 0x8DAB
+ DEPTH_COMPONENTS = 0x8284
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_RENDERABLE = 0x8287
+ DEPTH_SAMPLES_NV = 0x932D
+ DEPTH_STENCIL = 0x84F9
+ DEPTH_STENCIL_ATTACHMENT = 0x821A
+ DEPTH_STENCIL_TEXTURE_MODE = 0x90EA
+ DEPTH_TEST = 0x0B71
+ DEPTH_WRITEMASK = 0x0B72
+ DETACHED_BUFFERS_NV = 0x95AB
+ DETACHED_MEMORY_INCARNATION_NV = 0x95A9
+ DETACHED_TEXTURES_NV = 0x95AA
+ DIFFERENCE_KHR = 0x929E
+ DIFFERENCE_NV = 0x929E
+ DISJOINT_NV = 0x9283
+ DISPATCH_INDIRECT_BUFFER = 0x90EE
+ DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF
+ DITHER = 0x0BD0
+ DONT_CARE = 0x1100
+ DOUBLE = 0x140A
+ DOUBLEBUFFER = 0x0C32
+ DOUBLE_MAT2 = 0x8F46
+ DOUBLE_MAT2x3 = 0x8F49
+ DOUBLE_MAT2x4 = 0x8F4A
+ DOUBLE_MAT3 = 0x8F47
+ DOUBLE_MAT3x2 = 0x8F4B
+ DOUBLE_MAT3x4 = 0x8F4C
+ DOUBLE_MAT4 = 0x8F48
+ DOUBLE_MAT4x2 = 0x8F4D
+ DOUBLE_MAT4x3 = 0x8F4E
+ DOUBLE_VEC2 = 0x8FFC
+ DOUBLE_VEC3 = 0x8FFD
+ DOUBLE_VEC4 = 0x8FFE
+ DRAW_ARRAYS_COMMAND_NV = 0x0003
+ DRAW_ARRAYS_INSTANCED_COMMAND_NV = 0x0007
+ DRAW_ARRAYS_STRIP_COMMAND_NV = 0x0005
+ DRAW_BUFFER = 0x0C01
+ DRAW_BUFFER0 = 0x8825
+ DRAW_BUFFER1 = 0x8826
+ DRAW_BUFFER10 = 0x882F
+ DRAW_BUFFER11 = 0x8830
+ DRAW_BUFFER12 = 0x8831
+ DRAW_BUFFER13 = 0x8832
+ DRAW_BUFFER14 = 0x8833
+ DRAW_BUFFER15 = 0x8834
+ DRAW_BUFFER2 = 0x8827
+ DRAW_BUFFER3 = 0x8828
+ DRAW_BUFFER4 = 0x8829
+ DRAW_BUFFER5 = 0x882A
+ DRAW_BUFFER6 = 0x882B
+ DRAW_BUFFER7 = 0x882C
+ DRAW_BUFFER8 = 0x882D
+ DRAW_BUFFER9 = 0x882E
+ DRAW_ELEMENTS_COMMAND_NV = 0x0002
+ DRAW_ELEMENTS_INSTANCED_COMMAND_NV = 0x0006
+ DRAW_ELEMENTS_STRIP_COMMAND_NV = 0x0004
+ DRAW_FRAMEBUFFER = 0x8CA9
+ DRAW_FRAMEBUFFER_BINDING = 0x8CA6
+ DRAW_INDIRECT_ADDRESS_NV = 0x8F41
+ DRAW_INDIRECT_BUFFER = 0x8F3F
+ DRAW_INDIRECT_BUFFER_BINDING = 0x8F43
+ DRAW_INDIRECT_LENGTH_NV = 0x8F42
+ DRAW_INDIRECT_UNIFIED_NV = 0x8F40
+ DST_ALPHA = 0x0304
+ DST_ATOP_NV = 0x928F
+ DST_COLOR = 0x0306
+ DST_IN_NV = 0x928B
+ DST_NV = 0x9287
+ DST_OUT_NV = 0x928D
+ DST_OVER_NV = 0x9289
+ DUP_FIRST_CUBIC_CURVE_TO_NV = 0xF2
+ DUP_LAST_CUBIC_CURVE_TO_NV = 0xF4
+ DYNAMIC_COPY = 0x88EA
+ DYNAMIC_DRAW = 0x88E8
+ DYNAMIC_READ = 0x88E9
+ DYNAMIC_STORAGE_BIT = 0x0100
+ EDGE_FLAG_ARRAY_ADDRESS_NV = 0x8F26
+ EDGE_FLAG_ARRAY_LENGTH_NV = 0x8F30
+ EFFECTIVE_RASTER_SAMPLES_EXT = 0x932C
+ ELEMENT_ADDRESS_COMMAND_NV = 0x0008
+ ELEMENT_ARRAY_ADDRESS_NV = 0x8F29
+ ELEMENT_ARRAY_BARRIER_BIT = 0x00000002
+ ELEMENT_ARRAY_BUFFER = 0x8893
+ ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
+ ELEMENT_ARRAY_LENGTH_NV = 0x8F33
+ ELEMENT_ARRAY_UNIFIED_NV = 0x8F1F
+ EQUAL = 0x0202
+ EQUIV = 0x1509
+ EXCLUSION_KHR = 0x92A0
+ EXCLUSION_NV = 0x92A0
+ EXCLUSIVE_EXT = 0x8F11
+ EXTENSIONS = 0x1F03
+ FACTOR_MAX_AMD = 0x901D
+ FACTOR_MIN_AMD = 0x901C
+ FALSE = 0
+ FASTEST = 0x1101
+ FILE_NAME_NV = 0x9074
+ FILL = 0x1B02
+ FILL_RECTANGLE_NV = 0x933C
+ FILTER = 0x829A
+ FIRST_TO_REST_NV = 0x90AF
+ FIRST_VERTEX_CONVENTION = 0x8E4D
+ FIXED = 0x140C
+ FIXED_ONLY = 0x891D
+ FLOAT = 0x1406
+ FLOAT16_NV = 0x8FF8
+ FLOAT16_VEC2_NV = 0x8FF9
+ FLOAT16_VEC3_NV = 0x8FFA
+ FLOAT16_VEC4_NV = 0x8FFB
+ FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD
+ FLOAT_32_UNSIGNED_INT_24_8_REV_NV = 0x8DAD
+ FLOAT_MAT2 = 0x8B5A
+ FLOAT_MAT2x3 = 0x8B65
+ FLOAT_MAT2x4 = 0x8B66
+ FLOAT_MAT3 = 0x8B5B
+ FLOAT_MAT3x2 = 0x8B67
+ FLOAT_MAT3x4 = 0x8B68
+ FLOAT_MAT4 = 0x8B5C
+ FLOAT_MAT4x2 = 0x8B69
+ FLOAT_MAT4x3 = 0x8B6A
+ FLOAT_VEC2 = 0x8B50
+ FLOAT_VEC3 = 0x8B51
+ FLOAT_VEC4 = 0x8B52
+ FOG_COORD_ARRAY_ADDRESS_NV = 0x8F28
+ FOG_COORD_ARRAY_LENGTH_NV = 0x8F32
+ FONT_ASCENDER_BIT_NV = 0x00200000
+ FONT_DESCENDER_BIT_NV = 0x00400000
+ FONT_GLYPHS_AVAILABLE_NV = 0x9368
+ FONT_HAS_KERNING_BIT_NV = 0x10000000
+ FONT_HEIGHT_BIT_NV = 0x00800000
+ FONT_MAX_ADVANCE_HEIGHT_BIT_NV = 0x02000000
+ FONT_MAX_ADVANCE_WIDTH_BIT_NV = 0x01000000
+ FONT_NUM_GLYPH_INDICES_BIT_NV = 0x20000000
+ FONT_TARGET_UNAVAILABLE_NV = 0x9369
+ FONT_UNAVAILABLE_NV = 0x936A
+ FONT_UNDERLINE_POSITION_BIT_NV = 0x04000000
+ FONT_UNDERLINE_THICKNESS_BIT_NV = 0x08000000
+ FONT_UNINTELLIGIBLE_NV = 0x936B
+ FONT_UNITS_PER_EM_BIT_NV = 0x00100000
+ FONT_X_MAX_BOUNDS_BIT_NV = 0x00040000
+ FONT_X_MIN_BOUNDS_BIT_NV = 0x00010000
+ FONT_Y_MAX_BOUNDS_BIT_NV = 0x00080000
+ FONT_Y_MIN_BOUNDS_BIT_NV = 0x00020000
+ FRACTIONAL_EVEN = 0x8E7C
+ FRACTIONAL_ODD = 0x8E7B
+ FRAGMENT_COVERAGE_COLOR_NV = 0x92DE
+ FRAGMENT_COVERAGE_TO_COLOR_NV = 0x92DD
+ FRAGMENT_INPUT_NV = 0x936D
+ FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D
+ FRAGMENT_SHADER = 0x8B30
+ FRAGMENT_SHADER_BIT = 0x00000002
+ FRAGMENT_SHADER_BIT_EXT = 0x00000002
+ FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
+ FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT = 0x8A52
+ FRAGMENT_SHADER_INVOCATIONS_ARB = 0x82F4
+ FRAGMENT_SUBROUTINE = 0x92EC
+ FRAGMENT_SUBROUTINE_UNIFORM = 0x92F2
+ FRAGMENT_TEXTURE = 0x829F
+ FRAMEBUFFER = 0x8D40
+ FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215
+ FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214
+ FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210
+ FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211
+ FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216
+ FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213
+ FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7
+ FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = 0x8DA7
+ FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
+ FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
+ FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212
+ FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR = 0x9632
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR = 0x9630
+ FRAMEBUFFER_BARRIER_BIT = 0x00000400
+ FRAMEBUFFER_BINDING = 0x8CA6
+ FRAMEBUFFER_BLEND = 0x828B
+ FRAMEBUFFER_COMPLETE = 0x8CD5
+ FRAMEBUFFER_DEFAULT = 0x8218
+ FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314
+ FRAMEBUFFER_DEFAULT_HEIGHT = 0x9311
+ FRAMEBUFFER_DEFAULT_LAYERS = 0x9312
+ FRAMEBUFFER_DEFAULT_SAMPLES = 0x9313
+ FRAMEBUFFER_DEFAULT_WIDTH = 0x9310
+ FRAMEBUFFER_FLIP_X_MESA = 0x8BBC
+ FRAMEBUFFER_FLIP_Y_MESA = 0x8BBB
+ FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
+ FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB
+ FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = 0x8DA9
+ FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8
+ FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = 0x8DA8
+ FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
+ FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56
+ FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC
+ FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR = 0x9633
+ FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB = 0x9342
+ FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV = 0x9342
+ FRAMEBUFFER_RENDERABLE = 0x8289
+ FRAMEBUFFER_RENDERABLE_LAYERED = 0x828A
+ FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB = 0x9343
+ FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV = 0x9343
+ FRAMEBUFFER_SRGB = 0x8DB9
+ FRAMEBUFFER_SWAP_XY_MESA = 0x8BBD
+ FRAMEBUFFER_UNDEFINED = 0x8219
+ FRAMEBUFFER_UNSUPPORTED = 0x8CDD
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+ FRONT_FACE = 0x0B46
+ FRONT_FACE_COMMAND_NV = 0x0012
+ FRONT_LEFT = 0x0400
+ FRONT_RIGHT = 0x0401
+ FULL_SUPPORT = 0x82B7
+ FUNC_ADD = 0x8006
+ FUNC_REVERSE_SUBTRACT = 0x800B
+ FUNC_SUBTRACT = 0x800A
+ GEOMETRY_INPUT_TYPE = 0x8917
+ GEOMETRY_INPUT_TYPE_ARB = 0x8DDB
+ GEOMETRY_OUTPUT_TYPE = 0x8918
+ GEOMETRY_OUTPUT_TYPE_ARB = 0x8DDC
+ GEOMETRY_SHADER = 0x8DD9
+ GEOMETRY_SHADER_ARB = 0x8DD9
+ GEOMETRY_SHADER_BIT = 0x00000004
+ GEOMETRY_SHADER_INVOCATIONS = 0x887F
+ GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB = 0x82F3
+ GEOMETRY_SUBROUTINE = 0x92EB
+ GEOMETRY_SUBROUTINE_UNIFORM = 0x92F1
+ GEOMETRY_TEXTURE = 0x829E
+ GEOMETRY_VERTICES_OUT = 0x8916
+ GEOMETRY_VERTICES_OUT_ARB = 0x8DDA
+ GEQUAL = 0x0206
+ GET_TEXTURE_IMAGE_FORMAT = 0x8291
+ GET_TEXTURE_IMAGE_TYPE = 0x8292
+ GLYPH_HAS_KERNING_BIT_NV = 0x100
+ GLYPH_HEIGHT_BIT_NV = 0x02
+ GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV = 0x10
+ GLYPH_HORIZONTAL_BEARING_X_BIT_NV = 0x04
+ GLYPH_HORIZONTAL_BEARING_Y_BIT_NV = 0x08
+ GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV = 0x80
+ GLYPH_VERTICAL_BEARING_X_BIT_NV = 0x20
+ GLYPH_VERTICAL_BEARING_Y_BIT_NV = 0x40
+ GLYPH_WIDTH_BIT_NV = 0x01
+ GPU_ADDRESS_NV = 0x8F34
+ GREATER = 0x0204
+ GREEN = 0x1904
+ GREEN_INTEGER = 0x8D95
+ GREEN_NV = 0x1904
+ GUILTY_CONTEXT_RESET = 0x8253
+ GUILTY_CONTEXT_RESET_ARB = 0x8253
+ GUILTY_CONTEXT_RESET_KHR = 0x8253
+ HALF_FLOAT = 0x140B
+ HARDLIGHT_KHR = 0x929B
+ HARDLIGHT_NV = 0x929B
+ HARDMIX_NV = 0x92A9
+ HIGH_FLOAT = 0x8DF2
+ HIGH_INT = 0x8DF5
+ HORIZONTAL_LINE_TO_NV = 0x06
+ HSL_COLOR_KHR = 0x92AF
+ HSL_COLOR_NV = 0x92AF
+ HSL_HUE_KHR = 0x92AD
+ HSL_HUE_NV = 0x92AD
+ HSL_LUMINOSITY_KHR = 0x92B0
+ HSL_LUMINOSITY_NV = 0x92B0
+ HSL_SATURATION_KHR = 0x92AE
+ HSL_SATURATION_NV = 0x92AE
+ IMAGE_1D = 0x904C
+ IMAGE_1D_ARRAY = 0x9052
+ IMAGE_2D = 0x904D
+ IMAGE_2D_ARRAY = 0x9053
+ IMAGE_2D_MULTISAMPLE = 0x9055
+ IMAGE_2D_MULTISAMPLE_ARRAY = 0x9056
+ IMAGE_2D_RECT = 0x904F
+ IMAGE_3D = 0x904E
+ IMAGE_BINDING_ACCESS = 0x8F3E
+ IMAGE_BINDING_FORMAT = 0x906E
+ IMAGE_BINDING_LAYER = 0x8F3D
+ IMAGE_BINDING_LAYERED = 0x8F3C
+ IMAGE_BINDING_LEVEL = 0x8F3B
+ IMAGE_BINDING_NAME = 0x8F3A
+ IMAGE_BUFFER = 0x9051
+ IMAGE_CLASS_10_10_10_2 = 0x82C3
+ IMAGE_CLASS_11_11_10 = 0x82C2
+ IMAGE_CLASS_1_X_16 = 0x82BE
+ IMAGE_CLASS_1_X_32 = 0x82BB
+ IMAGE_CLASS_1_X_8 = 0x82C1
+ IMAGE_CLASS_2_X_16 = 0x82BD
+ IMAGE_CLASS_2_X_32 = 0x82BA
+ IMAGE_CLASS_2_X_8 = 0x82C0
+ IMAGE_CLASS_4_X_16 = 0x82BC
+ IMAGE_CLASS_4_X_32 = 0x82B9
+ IMAGE_CLASS_4_X_8 = 0x82BF
+ IMAGE_COMPATIBILITY_CLASS = 0x82A8
+ IMAGE_CUBE = 0x9050
+ IMAGE_CUBE_MAP_ARRAY = 0x9054
+ IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = 0x90C9
+ IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = 0x90C8
+ IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7
+ IMAGE_PIXEL_FORMAT = 0x82A9
+ IMAGE_PIXEL_TYPE = 0x82AA
+ IMAGE_TEXEL_SIZE = 0x82A7
+ IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B
+ IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A
+ INCLUSIVE_EXT = 0x8F10
+ INCR = 0x1E02
+ INCR_WRAP = 0x8507
+ INDEX_ARRAY_ADDRESS_NV = 0x8F24
+ INDEX_ARRAY_LENGTH_NV = 0x8F2E
+ INFO_LOG_LENGTH = 0x8B84
+ INNOCENT_CONTEXT_RESET = 0x8254
+ INNOCENT_CONTEXT_RESET_ARB = 0x8254
+ INNOCENT_CONTEXT_RESET_KHR = 0x8254
+ INT = 0x1404
+ INT16_NV = 0x8FE4
+ INT16_VEC2_NV = 0x8FE5
+ INT16_VEC3_NV = 0x8FE6
+ INT16_VEC4_NV = 0x8FE7
+ INT64_ARB = 0x140E
+ INT64_NV = 0x140E
+ INT64_VEC2_ARB = 0x8FE9
+ INT64_VEC2_NV = 0x8FE9
+ INT64_VEC3_ARB = 0x8FEA
+ INT64_VEC3_NV = 0x8FEA
+ INT64_VEC4_ARB = 0x8FEB
+ INT64_VEC4_NV = 0x8FEB
+ INT8_NV = 0x8FE0
+ INT8_VEC2_NV = 0x8FE1
+ INT8_VEC3_NV = 0x8FE2
+ INT8_VEC4_NV = 0x8FE3
+ INTERLEAVED_ATTRIBS = 0x8C8C
+ INTERNALFORMAT_ALPHA_SIZE = 0x8274
+ INTERNALFORMAT_ALPHA_TYPE = 0x827B
+ INTERNALFORMAT_BLUE_SIZE = 0x8273
+ INTERNALFORMAT_BLUE_TYPE = 0x827A
+ INTERNALFORMAT_DEPTH_SIZE = 0x8275
+ INTERNALFORMAT_DEPTH_TYPE = 0x827C
+ INTERNALFORMAT_GREEN_SIZE = 0x8272
+ INTERNALFORMAT_GREEN_TYPE = 0x8279
+ INTERNALFORMAT_PREFERRED = 0x8270
+ INTERNALFORMAT_RED_SIZE = 0x8271
+ INTERNALFORMAT_RED_TYPE = 0x8278
+ INTERNALFORMAT_SHARED_SIZE = 0x8277
+ INTERNALFORMAT_STENCIL_SIZE = 0x8276
+ INTERNALFORMAT_STENCIL_TYPE = 0x827D
+ INTERNALFORMAT_SUPPORTED = 0x826F
+ INT_2_10_10_10_REV = 0x8D9F
+ INT_IMAGE_1D = 0x9057
+ INT_IMAGE_1D_ARRAY = 0x905D
+ INT_IMAGE_2D = 0x9058
+ INT_IMAGE_2D_ARRAY = 0x905E
+ INT_IMAGE_2D_MULTISAMPLE = 0x9060
+ INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9061
+ INT_IMAGE_2D_RECT = 0x905A
+ INT_IMAGE_3D = 0x9059
+ INT_IMAGE_BUFFER = 0x905C
+ INT_IMAGE_CUBE = 0x905B
+ INT_IMAGE_CUBE_MAP_ARRAY = 0x905F
+ INT_SAMPLER_1D = 0x8DC9
+ INT_SAMPLER_1D_ARRAY = 0x8DCE
+ INT_SAMPLER_2D = 0x8DCA
+ INT_SAMPLER_2D_ARRAY = 0x8DCF
+ INT_SAMPLER_2D_MULTISAMPLE = 0x9109
+ INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C
+ INT_SAMPLER_2D_RECT = 0x8DCD
+ INT_SAMPLER_3D = 0x8DCB
+ INT_SAMPLER_BUFFER = 0x8DD0
+ INT_SAMPLER_CUBE = 0x8DCC
+ INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900E
+ INT_VEC2 = 0x8B53
+ INT_VEC3 = 0x8B54
+ INT_VEC4 = 0x8B55
+ INVALID_ENUM = 0x0500
+ INVALID_FRAMEBUFFER_OPERATION = 0x0506
+ INVALID_INDEX = 0xFFFFFFFF
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ INVERT = 0x150A
+ INVERT_OVG_NV = 0x92B4
+ INVERT_RGB_NV = 0x92A3
+ ISOLINES = 0x8E7A
+ IS_PER_PATCH = 0x92E7
+ IS_ROW_MAJOR = 0x9300
+ ITALIC_BIT_NV = 0x02
+ KEEP = 0x1E00
+ LARGE_CCW_ARC_TO_NV = 0x16
+ LARGE_CW_ARC_TO_NV = 0x18
+ LAST_VERTEX_CONVENTION = 0x8E4E
+ LAYER_PROVOKING_VERTEX = 0x825E
+ LEFT = 0x0406
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ LIGHTEN_KHR = 0x9298
+ LIGHTEN_NV = 0x9298
+ LINE = 0x1B01
+ LINEAR = 0x2601
+ LINEARBURN_NV = 0x92A5
+ LINEARDODGE_NV = 0x92A4
+ LINEARLIGHT_NV = 0x92A7
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ LINES = 0x0001
+ LINES_ADJACENCY = 0x000A
+ LINES_ADJACENCY_ARB = 0x000A
+ LINE_LOOP = 0x0002
+ LINE_SMOOTH = 0x0B20
+ LINE_SMOOTH_HINT = 0x0C52
+ LINE_STRIP = 0x0003
+ LINE_STRIP_ADJACENCY = 0x000B
+ LINE_STRIP_ADJACENCY_ARB = 0x000B
+ LINE_TO_NV = 0x04
+ LINE_WIDTH = 0x0B21
+ LINE_WIDTH_COMMAND_NV = 0x000D
+ LINE_WIDTH_GRANULARITY = 0x0B23
+ LINE_WIDTH_RANGE = 0x0B22
+ LINK_STATUS = 0x8B82
+ LOCATION = 0x930E
+ LOCATION_COMPONENT = 0x934A
+ LOCATION_INDEX = 0x930F
+ LOGIC_OP_MODE = 0x0BF0
+ LOSE_CONTEXT_ON_RESET = 0x8252
+ LOSE_CONTEXT_ON_RESET_ARB = 0x8252
+ LOSE_CONTEXT_ON_RESET_KHR = 0x8252
+ LOWER_LEFT = 0x8CA1
+ LOW_FLOAT = 0x8DF0
+ LOW_INT = 0x8DF3
+ LUMINANCE16F_EXT = 0x881E
+ LUMINANCE32F_EXT = 0x8818
+ LUMINANCE8_ALPHA8_EXT = 0x8045
+ LUMINANCE8_EXT = 0x8040
+ LUMINANCE_ALPHA16F_EXT = 0x881F
+ LUMINANCE_ALPHA32F_EXT = 0x8819
+ MAJOR_VERSION = 0x821B
+ MANUAL_GENERATE_MIPMAP = 0x8294
+ MAP_COHERENT_BIT = 0x0080
+ MAP_FLUSH_EXPLICIT_BIT = 0x0010
+ MAP_INVALIDATE_BUFFER_BIT = 0x0008
+ MAP_INVALIDATE_RANGE_BIT = 0x0004
+ MAP_PERSISTENT_BIT = 0x0040
+ MAP_READ_BIT = 0x0001
+ MAP_UNSYNCHRONIZED_BIT = 0x0020
+ MAP_WRITE_BIT = 0x0002
+ MATRIX_STRIDE = 0x92FF
+ MAX = 0x8008
+ MAX_3D_TEXTURE_SIZE = 0x8073
+ MAX_ARRAY_TEXTURE_LAYERS = 0x88FF
+ MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 0x92DC
+ MAX_ATOMIC_COUNTER_BUFFER_SIZE = 0x92D8
+ MAX_CLIP_DISTANCES = 0x0D32
+ MAX_COARSE_FRAGMENT_SAMPLES_NV = 0x955F
+ MAX_COLOR_ATTACHMENTS = 0x8CDF
+ MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD = 0x91B3
+ MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD = 0x91B4
+ MAX_COLOR_TEXTURE_SAMPLES = 0x910E
+ MAX_COMBINED_ATOMIC_COUNTERS = 0x92D7
+ MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = 0x92D1
+ MAX_COMBINED_CLIP_AND_CULL_DISTANCES = 0x82FA
+ MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266
+ MAX_COMBINED_DIMENSIONS = 0x8282
+ MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33
+ MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32
+ MAX_COMBINED_IMAGE_UNIFORMS = 0x90CF
+ MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = 0x8F39
+ MAX_COMBINED_MESH_UNIFORM_COMPONENTS_NV = 0x8E67
+ MAX_COMBINED_SHADER_OUTPUT_RESOURCES = 0x8F39
+ MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC
+ MAX_COMBINED_TASK_UNIFORM_COMPONENTS_NV = 0x8E6F
+ MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E
+ MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F
+ MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
+ MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E
+ MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31
+ MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265
+ MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264
+ MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB = 0x90EB
+ MAX_COMPUTE_FIXED_GROUP_SIZE_ARB = 0x91BF
+ MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD
+ MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB
+ MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262
+ MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC
+ MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB
+ MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263
+ MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB = 0x9344
+ MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB = 0x9345
+ MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE
+ MAX_COMPUTE_WORK_GROUP_INVOCATIONS = 0x90EB
+ MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF
+ MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+ MAX_CULL_DISTANCES = 0x82F9
+ MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C
+ MAX_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826C
+ MAX_DEBUG_LOGGED_MESSAGES = 0x9144
+ MAX_DEBUG_LOGGED_MESSAGES_ARB = 0x9144
+ MAX_DEBUG_LOGGED_MESSAGES_KHR = 0x9144
+ MAX_DEBUG_MESSAGE_LENGTH = 0x9143
+ MAX_DEBUG_MESSAGE_LENGTH_ARB = 0x9143
+ MAX_DEBUG_MESSAGE_LENGTH_KHR = 0x9143
+ MAX_DEPTH = 0x8280
+ MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD = 0x91B5
+ MAX_DEPTH_TEXTURE_SAMPLES = 0x910F
+ MAX_DETACHED_BUFFERS_NV = 0x95AD
+ MAX_DETACHED_TEXTURES_NV = 0x95AC
+ MAX_DRAW_BUFFERS = 0x8824
+ MAX_DRAW_MESH_TASKS_COUNT_NV = 0x953D
+ MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC
+ MAX_ELEMENTS_INDICES = 0x80E9
+ MAX_ELEMENTS_VERTICES = 0x80E8
+ MAX_ELEMENT_INDEX = 0x8D6B
+ MAX_FRAGMENT_ATOMIC_COUNTERS = 0x92D6
+ MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = 0x92D0
+ MAX_FRAGMENT_IMAGE_UNIFORMS = 0x90CE
+ MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125
+ MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C
+ MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA
+ MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D
+ MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
+ MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD
+ MAX_FRAMEBUFFER_HEIGHT = 0x9316
+ MAX_FRAMEBUFFER_LAYERS = 0x9317
+ MAX_FRAMEBUFFER_SAMPLES = 0x9318
+ MAX_FRAMEBUFFER_WIDTH = 0x9315
+ MAX_GEOMETRY_ATOMIC_COUNTERS = 0x92D5
+ MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = 0x92CF
+ MAX_GEOMETRY_IMAGE_UNIFORMS = 0x90CD
+ MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123
+ MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124
+ MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0
+ MAX_GEOMETRY_OUTPUT_VERTICES_ARB = 0x8DE0
+ MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A
+ MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = 0x90D7
+ MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29
+ MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = 0x8C29
+ MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1
+ MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = 0x8DE1
+ MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C
+ MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF
+ MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = 0x8DDF
+ MAX_GEOMETRY_VARYING_COMPONENTS_ARB = 0x8DDD
+ MAX_HEIGHT = 0x827F
+ MAX_IMAGE_SAMPLES = 0x906D
+ MAX_IMAGE_UNITS = 0x8F38
+ MAX_INTEGER_SAMPLES = 0x9110
+ MAX_LABEL_LENGTH = 0x82E8
+ MAX_LABEL_LENGTH_KHR = 0x82E8
+ MAX_LAYERS = 0x8281
+ MAX_MESH_ATOMIC_COUNTERS_NV = 0x8E65
+ MAX_MESH_ATOMIC_COUNTER_BUFFERS_NV = 0x8E64
+ MAX_MESH_IMAGE_UNIFORMS_NV = 0x8E62
+ MAX_MESH_OUTPUT_PRIMITIVES_NV = 0x9539
+ MAX_MESH_OUTPUT_VERTICES_NV = 0x9538
+ MAX_MESH_SHADER_STORAGE_BLOCKS_NV = 0x8E66
+ MAX_MESH_TEXTURE_IMAGE_UNITS_NV = 0x8E61
+ MAX_MESH_TOTAL_MEMORY_SIZE_NV = 0x9536
+ MAX_MESH_UNIFORM_BLOCKS_NV = 0x8E60
+ MAX_MESH_UNIFORM_COMPONENTS_NV = 0x8E63
+ MAX_MESH_VIEWS_NV = 0x9557
+ MAX_MESH_WORK_GROUP_INVOCATIONS_NV = 0x95A2
+ MAX_MESH_WORK_GROUP_SIZE_NV = 0x953B
+ MAX_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E11
+ MAX_NAME_LENGTH = 0x92F6
+ MAX_NUM_ACTIVE_VARIABLES = 0x92F7
+ MAX_NUM_COMPATIBLE_SUBROUTINES = 0x92F8
+ MAX_PATCH_VERTICES = 0x8E7D
+ MAX_PROGRAM_TEXEL_OFFSET = 0x8905
+ MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB = 0x8F9F
+ MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5F
+ MAX_RASTER_SAMPLES_EXT = 0x9329
+ MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8
+ MAX_RENDERBUFFER_SIZE = 0x84E8
+ MAX_SAMPLES = 0x8D57
+ MAX_SAMPLE_MASK_WORDS = 0x8E59
+ MAX_SERVER_WAIT_TIMEOUT = 0x9111
+ MAX_SHADER_BUFFER_ADDRESS_NV = 0x8F35
+ MAX_SHADER_COMPILER_THREADS_ARB = 0x91B0
+ MAX_SHADER_COMPILER_THREADS_KHR = 0x91B0
+ MAX_SHADER_STORAGE_BLOCK_SIZE = 0x90DE
+ MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD
+ MAX_SPARSE_3D_TEXTURE_SIZE_ARB = 0x9199
+ MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB = 0x919A
+ MAX_SPARSE_TEXTURE_SIZE_ARB = 0x9198
+ MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV = 0x9349
+ MAX_SUBROUTINES = 0x8DE7
+ MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8
+ MAX_TASK_ATOMIC_COUNTERS_NV = 0x8E6D
+ MAX_TASK_ATOMIC_COUNTER_BUFFERS_NV = 0x8E6C
+ MAX_TASK_IMAGE_UNIFORMS_NV = 0x8E6A
+ MAX_TASK_OUTPUT_COUNT_NV = 0x953A
+ MAX_TASK_SHADER_STORAGE_BLOCKS_NV = 0x8E6E
+ MAX_TASK_TEXTURE_IMAGE_UNITS_NV = 0x8E69
+ MAX_TASK_TOTAL_MEMORY_SIZE_NV = 0x9537
+ MAX_TASK_UNIFORM_BLOCKS_NV = 0x8E68
+ MAX_TASK_UNIFORM_COMPONENTS_NV = 0x8E6B
+ MAX_TASK_WORK_GROUP_INVOCATIONS_NV = 0x95A3
+ MAX_TASK_WORK_GROUP_SIZE_NV = 0x953C
+ MAX_TESS_CONTROL_ATOMIC_COUNTERS = 0x92D3
+ MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = 0x92CD
+ MAX_TESS_CONTROL_IMAGE_UNIFORMS = 0x90CB
+ MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C
+ MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83
+ MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = 0x90D8
+ MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81
+ MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85
+ MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89
+ MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F
+ MAX_TESS_EVALUATION_ATOMIC_COUNTERS = 0x92D4
+ MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = 0x92CE
+ MAX_TESS_EVALUATION_IMAGE_UNIFORMS = 0x90CC
+ MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D
+ MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86
+ MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = 0x90D9
+ MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82
+ MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A
+ MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80
+ MAX_TESS_GEN_LEVEL = 0x8E7E
+ MAX_TESS_PATCH_COMPONENTS = 0x8E84
+ MAX_TEXTURE_BUFFER_SIZE = 0x8C2B
+ MAX_TEXTURE_BUFFER_SIZE_ARB = 0x8C2B
+ MAX_TEXTURE_IMAGE_UNITS = 0x8872
+ MAX_TEXTURE_LOD_BIAS = 0x84FD
+ MAX_TEXTURE_MAX_ANISOTROPY = 0x84FF
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70
+ MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80
+ MAX_UNIFORM_BLOCK_SIZE = 0x8A30
+ MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F
+ MAX_UNIFORM_LOCATIONS = 0x826E
+ MAX_VARYING_COMPONENTS = 0x8B4B
+ MAX_VARYING_FLOATS = 0x8B4B
+ MAX_VARYING_VECTORS = 0x8DFC
+ MAX_VERTEX_ATOMIC_COUNTERS = 0x92D2
+ MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = 0x92CC
+ MAX_VERTEX_ATTRIBS = 0x8869
+ MAX_VERTEX_ATTRIB_BINDINGS = 0x82DA
+ MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9
+ MAX_VERTEX_IMAGE_UNIFORMS = 0x90CA
+ MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122
+ MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6
+ MAX_VERTEX_STREAMS = 0x8E71
+ MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
+ MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B
+ MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
+ MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB
+ MAX_VERTEX_VARYING_COMPONENTS_ARB = 0x8DDE
+ MAX_VIEWPORTS = 0x825B
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ MAX_VIEWS_OVR = 0x9631
+ MAX_WIDTH = 0x827E
+ MAX_WINDOW_RECTANGLES_EXT = 0x8F14
+ MEDIUM_FLOAT = 0x8DF1
+ MEDIUM_INT = 0x8DF4
+ MEMORY_ATTACHABLE_ALIGNMENT_NV = 0x95A6
+ MEMORY_ATTACHABLE_NV = 0x95A8
+ MEMORY_ATTACHABLE_SIZE_NV = 0x95A7
+ MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_NV = 0x9543
+ MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV = 0x92DF
+ MESH_OUTPUT_TYPE_NV = 0x957B
+ MESH_PRIMITIVES_OUT_NV = 0x957A
+ MESH_SHADER_BIT_NV = 0x00000040
+ MESH_SHADER_NV = 0x9559
+ MESH_SUBROUTINE_NV = 0x957C
+ MESH_SUBROUTINE_UNIFORM_NV = 0x957E
+ MESH_VERTICES_OUT_NV = 0x9579
+ MESH_WORK_GROUP_SIZE_NV = 0x953E
+ MIN = 0x8007
+ MINOR_VERSION = 0x821C
+ MINUS_CLAMPED_NV = 0x92B3
+ MINUS_NV = 0x929F
+ MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B
+ MIN_MAP_BUFFER_ALIGNMENT = 0x90BC
+ MIN_PROGRAM_TEXEL_OFFSET = 0x8904
+ MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5E
+ MIN_SAMPLE_SHADING_VALUE_ARB = 0x8C37
+ MIPMAP = 0x8293
+ MIRRORED_REPEAT = 0x8370
+ MIRRORED_REPEAT_ARB = 0x8370
+ MIRROR_CLAMP_TO_EDGE = 0x8743
+ MITER_REVERT_NV = 0x90A7
+ MITER_TRUNCATE_NV = 0x90A8
+ MIXED_DEPTH_SAMPLES_SUPPORTED_NV = 0x932F
+ MIXED_STENCIL_SAMPLES_SUPPORTED_NV = 0x9330
+ MOVE_TO_CONTINUES_NV = 0x90B6
+ MOVE_TO_NV = 0x02
+ MOVE_TO_RESETS_NV = 0x90B5
+ MULTIPLY_KHR = 0x9294
+ MULTIPLY_NV = 0x9294
+ MULTISAMPLE = 0x809D
+ MULTISAMPLES_NV = 0x9371
+ MULTISAMPLE_COVERAGE_MODES_NV = 0x8E12
+ MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB = 0x9382
+ MULTISAMPLE_LINE_WIDTH_RANGE_ARB = 0x9381
+ MULTISAMPLE_RASTERIZATION_ALLOWED_EXT = 0x932B
+ NAMED_STRING_LENGTH_ARB = 0x8DE9
+ NAMED_STRING_TYPE_ARB = 0x8DEA
+ NAME_LENGTH = 0x92F9
+ NAND = 0x150E
+ NEAREST = 0x2600
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+ NEGATIVE_ONE_TO_ONE = 0x935E
+ NEVER = 0x0200
+ NICEST = 0x1102
+ NONE = 0
+ NOOP = 0x1505
+ NOP_COMMAND_NV = 0x0001
+ NOR = 0x1508
+ NORMAL_ARRAY_ADDRESS_NV = 0x8F22
+ NORMAL_ARRAY_LENGTH_NV = 0x8F2C
+ NOTEQUAL = 0x0205
+ NO_ERROR = 0
+ NO_RESET_NOTIFICATION = 0x8261
+ NO_RESET_NOTIFICATION_ARB = 0x8261
+ NO_RESET_NOTIFICATION_KHR = 0x8261
+ NUM_ACTIVE_VARIABLES = 0x9304
+ NUM_COMPATIBLE_SUBROUTINES = 0x8E4A
+ NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+ NUM_EXTENSIONS = 0x821D
+ NUM_PROGRAM_BINARY_FORMATS = 0x87FE
+ NUM_SAMPLE_COUNTS = 0x9380
+ NUM_SHADER_BINARY_FORMATS = 0x8DF9
+ NUM_SPARSE_LEVELS_ARB = 0x91AA
+ NUM_SPIR_V_EXTENSIONS = 0x9554
+ NUM_SUPPORTED_MULTISAMPLE_MODES_AMD = 0x91B6
+ NUM_VIRTUAL_PAGE_SIZES_ARB = 0x91A8
+ NUM_WINDOW_RECTANGLES_EXT = 0x8F15
+ OBJECT_TYPE = 0x9112
+ OFFSET = 0x92FC
+ ONE = 1
+ ONE_MINUS_CONSTANT_ALPHA = 0x8004
+ ONE_MINUS_CONSTANT_COLOR = 0x8002
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_DST_COLOR = 0x0307
+ ONE_MINUS_SRC1_ALPHA = 0x88FB
+ ONE_MINUS_SRC1_COLOR = 0x88FA
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ OR = 0x1507
+ OR_INVERTED = 0x150D
+ OR_REVERSE = 0x150B
+ OUT_OF_MEMORY = 0x0505
+ OVERLAY_KHR = 0x9296
+ OVERLAY_NV = 0x9296
+ PACK_ALIGNMENT = 0x0D05
+ PACK_COMPRESSED_BLOCK_DEPTH = 0x912D
+ PACK_COMPRESSED_BLOCK_HEIGHT = 0x912C
+ PACK_COMPRESSED_BLOCK_SIZE = 0x912E
+ PACK_COMPRESSED_BLOCK_WIDTH = 0x912B
+ PACK_IMAGE_HEIGHT = 0x806C
+ PACK_LSB_FIRST = 0x0D01
+ PACK_ROW_LENGTH = 0x0D02
+ PACK_SKIP_IMAGES = 0x806B
+ PACK_SKIP_PIXELS = 0x0D04
+ PACK_SKIP_ROWS = 0x0D03
+ PACK_SWAP_BYTES = 0x0D00
+ PARAMETER_BUFFER_ARB = 0x80EE
+ PARAMETER_BUFFER_BINDING_ARB = 0x80EF
+ PATCHES = 0x000E
+ PATCH_DEFAULT_INNER_LEVEL = 0x8E73
+ PATCH_DEFAULT_OUTER_LEVEL = 0x8E74
+ PATCH_VERTICES = 0x8E72
+ PATH_CLIENT_LENGTH_NV = 0x907F
+ PATH_COMMAND_COUNT_NV = 0x909D
+ PATH_COMPUTED_LENGTH_NV = 0x90A0
+ PATH_COORD_COUNT_NV = 0x909E
+ PATH_COVER_DEPTH_FUNC_NV = 0x90BF
+ PATH_DASH_ARRAY_COUNT_NV = 0x909F
+ PATH_DASH_CAPS_NV = 0x907B
+ PATH_DASH_OFFSET_NV = 0x907E
+ PATH_DASH_OFFSET_RESET_NV = 0x90B4
+ PATH_END_CAPS_NV = 0x9076
+ PATH_ERROR_POSITION_NV = 0x90AB
+ PATH_FILL_BOUNDING_BOX_NV = 0x90A1
+ PATH_FILL_COVER_MODE_NV = 0x9082
+ PATH_FILL_MASK_NV = 0x9081
+ PATH_FILL_MODE_NV = 0x9080
+ PATH_FORMAT_PS_NV = 0x9071
+ PATH_FORMAT_SVG_NV = 0x9070
+ PATH_GEN_COEFF_NV = 0x90B1
+ PATH_GEN_COMPONENTS_NV = 0x90B3
+ PATH_GEN_MODE_NV = 0x90B0
+ PATH_INITIAL_DASH_CAP_NV = 0x907C
+ PATH_INITIAL_END_CAP_NV = 0x9077
+ PATH_JOIN_STYLE_NV = 0x9079
+ PATH_MAX_MODELVIEW_STACK_DEPTH_NV = 0x0D36
+ PATH_MAX_PROJECTION_STACK_DEPTH_NV = 0x0D38
+ PATH_MITER_LIMIT_NV = 0x907A
+ PATH_MODELVIEW_MATRIX_NV = 0x0BA6
+ PATH_MODELVIEW_NV = 0x1700
+ PATH_MODELVIEW_STACK_DEPTH_NV = 0x0BA3
+ PATH_OBJECT_BOUNDING_BOX_NV = 0x908A
+ PATH_PROJECTION_MATRIX_NV = 0x0BA7
+ PATH_PROJECTION_NV = 0x1701
+ PATH_PROJECTION_STACK_DEPTH_NV = 0x0BA4
+ PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV = 0x90BD
+ PATH_STENCIL_DEPTH_OFFSET_UNITS_NV = 0x90BE
+ PATH_STENCIL_FUNC_NV = 0x90B7
+ PATH_STENCIL_REF_NV = 0x90B8
+ PATH_STENCIL_VALUE_MASK_NV = 0x90B9
+ PATH_STROKE_BOUNDING_BOX_NV = 0x90A2
+ PATH_STROKE_COVER_MODE_NV = 0x9083
+ PATH_STROKE_MASK_NV = 0x9084
+ PATH_STROKE_WIDTH_NV = 0x9075
+ PATH_TERMINAL_DASH_CAP_NV = 0x907D
+ PATH_TERMINAL_END_CAP_NV = 0x9078
+ PATH_TRANSPOSE_MODELVIEW_MATRIX_NV = 0x84E3
+ PATH_TRANSPOSE_PROJECTION_MATRIX_NV = 0x84E4
+ PERCENTAGE_AMD = 0x8BC3
+ PERFMON_RESULT_AMD = 0x8BC6
+ PERFMON_RESULT_AVAILABLE_AMD = 0x8BC4
+ PERFMON_RESULT_SIZE_AMD = 0x8BC5
+ PERFQUERY_COUNTER_DATA_BOOL32_INTEL = 0x94FC
+ PERFQUERY_COUNTER_DATA_DOUBLE_INTEL = 0x94FB
+ PERFQUERY_COUNTER_DATA_FLOAT_INTEL = 0x94FA
+ PERFQUERY_COUNTER_DATA_UINT32_INTEL = 0x94F8
+ PERFQUERY_COUNTER_DATA_UINT64_INTEL = 0x94F9
+ PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL = 0x94FF
+ PERFQUERY_COUNTER_DURATION_NORM_INTEL = 0x94F1
+ PERFQUERY_COUNTER_DURATION_RAW_INTEL = 0x94F2
+ PERFQUERY_COUNTER_EVENT_INTEL = 0x94F0
+ PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL = 0x94FE
+ PERFQUERY_COUNTER_RAW_INTEL = 0x94F4
+ PERFQUERY_COUNTER_THROUGHPUT_INTEL = 0x94F3
+ PERFQUERY_COUNTER_TIMESTAMP_INTEL = 0x94F5
+ PERFQUERY_DONOT_FLUSH_INTEL = 0x83F9
+ PERFQUERY_FLUSH_INTEL = 0x83FA
+ PERFQUERY_GLOBAL_CONTEXT_INTEL = 0x00000001
+ PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL = 0x9500
+ PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL = 0x94FD
+ PERFQUERY_SINGLE_CONTEXT_INTEL = 0x00000000
+ PERFQUERY_WAIT_INTEL = 0x83FB
+ PINLIGHT_NV = 0x92A8
+ PIXEL_BUFFER_BARRIER_BIT = 0x00000080
+ PIXEL_PACK_BUFFER = 0x88EB
+ PIXEL_PACK_BUFFER_ARB = 0x88EB
+ PIXEL_PACK_BUFFER_BINDING = 0x88ED
+ PIXEL_PACK_BUFFER_BINDING_ARB = 0x88ED
+ PIXEL_UNPACK_BUFFER = 0x88EC
+ PIXEL_UNPACK_BUFFER_ARB = 0x88EC
+ PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
+ PIXEL_UNPACK_BUFFER_BINDING_ARB = 0x88EF
+ PLUS_CLAMPED_ALPHA_NV = 0x92B2
+ PLUS_CLAMPED_NV = 0x92B1
+ PLUS_DARKER_NV = 0x9292
+ PLUS_NV = 0x9291
+ POINT = 0x1B00
+ POINTS = 0x0000
+ POINT_FADE_THRESHOLD_SIZE = 0x8128
+ POINT_SIZE = 0x0B11
+ POINT_SIZE_GRANULARITY = 0x0B13
+ POINT_SIZE_RANGE = 0x0B12
+ POINT_SPRITE_COORD_ORIGIN = 0x8CA0
+ POLYGON_MODE = 0x0B40
+ POLYGON_OFFSET_CLAMP = 0x8E1B
+ POLYGON_OFFSET_CLAMP_EXT = 0x8E1B
+ POLYGON_OFFSET_COMMAND_NV = 0x000E
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_FILL = 0x8037
+ POLYGON_OFFSET_LINE = 0x2A02
+ POLYGON_OFFSET_POINT = 0x2A01
+ POLYGON_OFFSET_UNITS = 0x2A00
+ POLYGON_SMOOTH = 0x0B41
+ POLYGON_SMOOTH_HINT = 0x0C53
+ PRIMITIVES_GENERATED = 0x8C87
+ PRIMITIVES_SUBMITTED_ARB = 0x82EF
+ PRIMITIVE_BOUNDING_BOX_ARB = 0x92BE
+ PRIMITIVE_RESTART = 0x8F9D
+ PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69
+ PRIMITIVE_RESTART_INDEX = 0x8F9E
+ PROGRAM = 0x82E2
+ PROGRAMMABLE_SAMPLE_LOCATION_ARB = 0x9341
+ PROGRAMMABLE_SAMPLE_LOCATION_NV = 0x9341
+ PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB = 0x9340
+ PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV = 0x9340
+ PROGRAM_BINARY_FORMATS = 0x87FF
+ PROGRAM_BINARY_LENGTH = 0x8741
+ PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257
+ PROGRAM_INPUT = 0x92E3
+ PROGRAM_KHR = 0x82E2
+ PROGRAM_MATRIX_EXT = 0x8E2D
+ PROGRAM_MATRIX_STACK_DEPTH_EXT = 0x8E2F
+ PROGRAM_OBJECT_EXT = 0x8B40
+ PROGRAM_OUTPUT = 0x92E4
+ PROGRAM_PIPELINE = 0x82E4
+ PROGRAM_PIPELINE_BINDING = 0x825A
+ PROGRAM_PIPELINE_BINDING_EXT = 0x825A
+ PROGRAM_PIPELINE_KHR = 0x82E4
+ PROGRAM_PIPELINE_OBJECT_EXT = 0x8A4F
+ PROGRAM_POINT_SIZE = 0x8642
+ PROGRAM_POINT_SIZE_ARB = 0x8642
+ PROGRAM_SEPARABLE = 0x8258
+ PROGRAM_SEPARABLE_EXT = 0x8258
+ PROVOKING_VERTEX = 0x8E4F
+ PROXY_TEXTURE_1D = 0x8063
+ PROXY_TEXTURE_1D_ARRAY = 0x8C19
+ PROXY_TEXTURE_2D = 0x8064
+ PROXY_TEXTURE_2D_ARRAY = 0x8C1B
+ PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101
+ PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103
+ PROXY_TEXTURE_3D = 0x8070
+ PROXY_TEXTURE_CUBE_MAP = 0x851B
+ PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x900B
+ PROXY_TEXTURE_RECTANGLE = 0x84F7
+ QUADRATIC_CURVE_TO_NV = 0x0A
+ QUADS = 0x0007
+ QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C
+ QUERY = 0x82E3
+ QUERY_BUFFER = 0x9192
+ QUERY_BUFFER_BARRIER_BIT = 0x00008000
+ QUERY_BUFFER_BINDING = 0x9193
+ QUERY_BY_REGION_NO_WAIT = 0x8E16
+ QUERY_BY_REGION_NO_WAIT_INVERTED = 0x8E1A
+ QUERY_BY_REGION_NO_WAIT_NV = 0x8E16
+ QUERY_BY_REGION_WAIT = 0x8E15
+ QUERY_BY_REGION_WAIT_INVERTED = 0x8E19
+ QUERY_BY_REGION_WAIT_NV = 0x8E15
+ QUERY_COUNTER_BITS = 0x8864
+ QUERY_KHR = 0x82E3
+ QUERY_NO_WAIT = 0x8E14
+ QUERY_NO_WAIT_INVERTED = 0x8E18
+ QUERY_NO_WAIT_NV = 0x8E14
+ QUERY_OBJECT_EXT = 0x9153
+ QUERY_RESULT = 0x8866
+ QUERY_RESULT_AVAILABLE = 0x8867
+ QUERY_RESULT_NO_WAIT = 0x9194
+ QUERY_TARGET = 0x82EA
+ QUERY_WAIT = 0x8E13
+ QUERY_WAIT_INVERTED = 0x8E17
+ QUERY_WAIT_NV = 0x8E13
+ R11F_G11F_B10F = 0x8C3A
+ R16 = 0x822A
+ R16F = 0x822D
+ R16F_EXT = 0x822D
+ R16I = 0x8233
+ R16UI = 0x8234
+ R16_SNORM = 0x8F98
+ R32F = 0x822E
+ R32F_EXT = 0x822E
+ R32I = 0x8235
+ R32UI = 0x8236
+ R3_G3_B2 = 0x2A10
+ R8 = 0x8229
+ R8I = 0x8231
+ R8UI = 0x8232
+ R8_EXT = 0x8229
+ R8_SNORM = 0x8F94
+ RASTERIZER_DISCARD = 0x8C89
+ RASTER_FIXED_SAMPLE_LOCATIONS_EXT = 0x932A
+ RASTER_MULTISAMPLE_EXT = 0x9327
+ RASTER_SAMPLES_EXT = 0x9328
+ READ_BUFFER = 0x0C02
+ READ_FRAMEBUFFER = 0x8CA8
+ READ_FRAMEBUFFER_BINDING = 0x8CAA
+ READ_ONLY = 0x88B8
+ READ_PIXELS = 0x828C
+ READ_PIXELS_FORMAT = 0x828D
+ READ_PIXELS_TYPE = 0x828E
+ READ_WRITE = 0x88BA
+ RECT_NV = 0xF6
+ RED = 0x1903
+ RED_INTEGER = 0x8D94
+ RED_NV = 0x1903
+ REFERENCED_BY_COMPUTE_SHADER = 0x930B
+ REFERENCED_BY_FRAGMENT_SHADER = 0x930A
+ REFERENCED_BY_GEOMETRY_SHADER = 0x9309
+ REFERENCED_BY_MESH_SHADER_NV = 0x95A0
+ REFERENCED_BY_TASK_SHADER_NV = 0x95A1
+ REFERENCED_BY_TESS_CONTROL_SHADER = 0x9307
+ REFERENCED_BY_TESS_EVALUATION_SHADER = 0x9308
+ REFERENCED_BY_VERTEX_SHADER = 0x9306
+ RELATIVE_ARC_TO_NV = 0xFF
+ RELATIVE_CONIC_CURVE_TO_NV = 0x1B
+ RELATIVE_CUBIC_CURVE_TO_NV = 0x0D
+ RELATIVE_HORIZONTAL_LINE_TO_NV = 0x07
+ RELATIVE_LARGE_CCW_ARC_TO_NV = 0x17
+ RELATIVE_LARGE_CW_ARC_TO_NV = 0x19
+ RELATIVE_LINE_TO_NV = 0x05
+ RELATIVE_MOVE_TO_NV = 0x03
+ RELATIVE_QUADRATIC_CURVE_TO_NV = 0x0B
+ RELATIVE_RECT_NV = 0xF7
+ RELATIVE_ROUNDED_RECT2_NV = 0xEB
+ RELATIVE_ROUNDED_RECT4_NV = 0xED
+ RELATIVE_ROUNDED_RECT8_NV = 0xEF
+ RELATIVE_ROUNDED_RECT_NV = 0xE9
+ RELATIVE_SMALL_CCW_ARC_TO_NV = 0x13
+ RELATIVE_SMALL_CW_ARC_TO_NV = 0x15
+ RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV = 0x11
+ RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0F
+ RELATIVE_VERTICAL_LINE_TO_NV = 0x09
+ RENDERBUFFER = 0x8D41
+ RENDERBUFFER_ALPHA_SIZE = 0x8D53
+ RENDERBUFFER_BINDING = 0x8CA7
+ RENDERBUFFER_BLUE_SIZE = 0x8D52
+ RENDERBUFFER_COLOR_SAMPLES_NV = 0x8E10
+ RENDERBUFFER_COVERAGE_SAMPLES_NV = 0x8CAB
+ RENDERBUFFER_DEPTH_SIZE = 0x8D54
+ RENDERBUFFER_GREEN_SIZE = 0x8D51
+ RENDERBUFFER_HEIGHT = 0x8D43
+ RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
+ RENDERBUFFER_RED_SIZE = 0x8D50
+ RENDERBUFFER_SAMPLES = 0x8CAB
+ RENDERBUFFER_STENCIL_SIZE = 0x8D55
+ RENDERBUFFER_STORAGE_SAMPLES_AMD = 0x91B2
+ RENDERBUFFER_WIDTH = 0x8D42
+ RENDERER = 0x1F01
+ REPEAT = 0x2901
+ REPLACE = 0x1E01
+ REPRESENTATIVE_FRAGMENT_TEST_NV = 0x937F
+ RESET_NOTIFICATION_STRATEGY = 0x8256
+ RESET_NOTIFICATION_STRATEGY_ARB = 0x8256
+ RESET_NOTIFICATION_STRATEGY_KHR = 0x8256
+ RESTART_PATH_NV = 0xF0
+ RG = 0x8227
+ RG16 = 0x822C
+ RG16F = 0x822F
+ RG16F_EXT = 0x822F
+ RG16I = 0x8239
+ RG16UI = 0x823A
+ RG16_SNORM = 0x8F99
+ RG32F = 0x8230
+ RG32F_EXT = 0x8230
+ RG32I = 0x823B
+ RG32UI = 0x823C
+ RG8 = 0x822B
+ RG8I = 0x8237
+ RG8UI = 0x8238
+ RG8_EXT = 0x822B
+ RG8_SNORM = 0x8F95
+ RGB = 0x1907
+ RGB10 = 0x8052
+ RGB10_A2 = 0x8059
+ RGB10_A2UI = 0x906F
+ RGB10_A2_EXT = 0x8059
+ RGB10_EXT = 0x8052
+ RGB12 = 0x8053
+ RGB16 = 0x8054
+ RGB16F = 0x881B
+ RGB16F_EXT = 0x881B
+ RGB16I = 0x8D89
+ RGB16UI = 0x8D77
+ RGB16_SNORM = 0x8F9A
+ RGB32F = 0x8815
+ RGB32F_EXT = 0x8815
+ RGB32I = 0x8D83
+ RGB32UI = 0x8D71
+ RGB4 = 0x804F
+ RGB5 = 0x8050
+ RGB565 = 0x8D62
+ RGB5_A1 = 0x8057
+ RGB8 = 0x8051
+ RGB8I = 0x8D8F
+ RGB8UI = 0x8D7D
+ RGB8_SNORM = 0x8F96
+ RGB9_E5 = 0x8C3D
+ RGBA = 0x1908
+ RGBA12 = 0x805A
+ RGBA16 = 0x805B
+ RGBA16F = 0x881A
+ RGBA16F_EXT = 0x881A
+ RGBA16I = 0x8D88
+ RGBA16UI = 0x8D76
+ RGBA16_SNORM = 0x8F9B
+ RGBA2 = 0x8055
+ RGBA32F = 0x8814
+ RGBA32F_EXT = 0x8814
+ RGBA32I = 0x8D82
+ RGBA32UI = 0x8D70
+ RGBA4 = 0x8056
+ RGBA8 = 0x8058
+ RGBA8I = 0x8D8E
+ RGBA8UI = 0x8D7C
+ RGBA8_SNORM = 0x8F97
+ RGBA_INTEGER = 0x8D99
+ RGB_422_APPLE = 0x8A1F
+ RGB_INTEGER = 0x8D98
+ RGB_RAW_422_APPLE = 0x8A51
+ RG_INTEGER = 0x8228
+ RIGHT = 0x0407
+ ROUNDED_RECT2_NV = 0xEA
+ ROUNDED_RECT4_NV = 0xEC
+ ROUNDED_RECT8_NV = 0xEE
+ ROUNDED_RECT_NV = 0xE8
+ ROUND_NV = 0x90A4
+ SAMPLER = 0x82E6
+ SAMPLER_1D = 0x8B5D
+ SAMPLER_1D_ARRAY = 0x8DC0
+ SAMPLER_1D_ARRAY_SHADOW = 0x8DC3
+ SAMPLER_1D_SHADOW = 0x8B61
+ SAMPLER_2D = 0x8B5E
+ SAMPLER_2D_ARRAY = 0x8DC1
+ SAMPLER_2D_ARRAY_SHADOW = 0x8DC4
+ SAMPLER_2D_MULTISAMPLE = 0x9108
+ SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B
+ SAMPLER_2D_RECT = 0x8B63
+ SAMPLER_2D_RECT_SHADOW = 0x8B64
+ SAMPLER_2D_SHADOW = 0x8B62
+ SAMPLER_3D = 0x8B5F
+ SAMPLER_BINDING = 0x8919
+ SAMPLER_BUFFER = 0x8DC2
+ SAMPLER_CUBE = 0x8B60
+ SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900C
+ SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = 0x900D
+ SAMPLER_CUBE_SHADOW = 0x8DC5
+ SAMPLER_KHR = 0x82E6
+ SAMPLES = 0x80A9
+ SAMPLES_PASSED = 0x8914
+ SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+ SAMPLE_ALPHA_TO_ONE = 0x809F
+ SAMPLE_BUFFERS = 0x80A8
+ SAMPLE_COVERAGE = 0x80A0
+ SAMPLE_COVERAGE_INVERT = 0x80AB
+ SAMPLE_COVERAGE_VALUE = 0x80AA
+ SAMPLE_LOCATION_ARB = 0x8E50
+ SAMPLE_LOCATION_NV = 0x8E50
+ SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB = 0x933F
+ SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV = 0x933F
+ SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB = 0x933E
+ SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV = 0x933E
+ SAMPLE_LOCATION_SUBPIXEL_BITS_ARB = 0x933D
+ SAMPLE_LOCATION_SUBPIXEL_BITS_NV = 0x933D
+ SAMPLE_MASK = 0x8E51
+ SAMPLE_MASK_VALUE = 0x8E52
+ SAMPLE_POSITION = 0x8E50
+ SAMPLE_SHADING_ARB = 0x8C36
+ SCISSOR_BOX = 0x0C10
+ SCISSOR_BOX_EXCLUSIVE_NV = 0x9556
+ SCISSOR_COMMAND_NV = 0x0011
+ SCISSOR_TEST = 0x0C11
+ SCISSOR_TEST_EXCLUSIVE_NV = 0x9555
+ SCREEN_KHR = 0x9295
+ SCREEN_NV = 0x9295
+ SECONDARY_COLOR_ARRAY_ADDRESS_NV = 0x8F27
+ SECONDARY_COLOR_ARRAY_LENGTH_NV = 0x8F31
+ SEPARATE_ATTRIBS = 0x8C8D
+ SET = 0x150F
+ SHADER = 0x82E1
+ SHADER_BINARY_FORMATS = 0x8DF8
+ SHADER_BINARY_FORMAT_SPIR_V_ARB = 0x9551
+ SHADER_COMPILER = 0x8DFA
+ SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV = 0x00000010
+ SHADER_IMAGE_ACCESS_BARRIER_BIT = 0x00000020
+ SHADER_IMAGE_ATOMIC = 0x82A6
+ SHADER_IMAGE_LOAD = 0x82A4
+ SHADER_IMAGE_STORE = 0x82A5
+ SHADER_INCLUDE_ARB = 0x8DAE
+ SHADER_KHR = 0x82E1
+ SHADER_OBJECT_EXT = 0x8B48
+ SHADER_SOURCE_LENGTH = 0x8B88
+ SHADER_STORAGE_BARRIER_BIT = 0x00002000
+ SHADER_STORAGE_BLOCK = 0x92E6
+ SHADER_STORAGE_BUFFER = 0x90D2
+ SHADER_STORAGE_BUFFER_BINDING = 0x90D3
+ SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF
+ SHADER_STORAGE_BUFFER_SIZE = 0x90D5
+ SHADER_STORAGE_BUFFER_START = 0x90D4
+ SHADER_TYPE = 0x8B4F
+ SHADING_LANGUAGE_VERSION = 0x8B8C
+ SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 0x956F
+ SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 0x9566
+ SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 0x9567
+ SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 0x9568
+ SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 0x9569
+ SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 0x956A
+ SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 0x956B
+ SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0x9565
+ SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 0x956C
+ SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 0x956D
+ SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 0x956E
+ SHADING_RATE_IMAGE_BINDING_NV = 0x955B
+ SHADING_RATE_IMAGE_NV = 0x9563
+ SHADING_RATE_IMAGE_PALETTE_COUNT_NV = 0x95B2
+ SHADING_RATE_IMAGE_PALETTE_SIZE_NV = 0x955E
+ SHADING_RATE_IMAGE_PER_PRIMITIVE_NV = 0x95B1
+ SHADING_RATE_IMAGE_TEXEL_HEIGHT_NV = 0x955D
+ SHADING_RATE_IMAGE_TEXEL_WIDTH_NV = 0x955C
+ SHADING_RATE_NO_INVOCATIONS_NV = 0x9564
+ SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV = 0x95AE
+ SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV = 0x95AF
+ SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV = 0x95B0
+ SHARED_EDGE_NV = 0xC0
+ SHORT = 0x1402
+ SIGNALED = 0x9119
+ SIGNED_NORMALIZED = 0x8F9C
+ SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = 0x82AC
+ SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = 0x82AE
+ SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = 0x82AD
+ SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = 0x82AF
+ SKIP_DECODE_EXT = 0x8A4A
+ SKIP_MISSING_GLYPH_NV = 0x90A9
+ SMALL_CCW_ARC_TO_NV = 0x12
+ SMALL_CW_ARC_TO_NV = 0x14
+ SMOOTH_CUBIC_CURVE_TO_NV = 0x10
+ SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+ SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+ SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+ SMOOTH_POINT_SIZE_RANGE = 0x0B12
+ SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0E
+ SM_COUNT_NV = 0x933B
+ SOFTLIGHT_KHR = 0x929C
+ SOFTLIGHT_NV = 0x929C
+ SPARSE_BUFFER_PAGE_SIZE_ARB = 0x82F8
+ SPARSE_STORAGE_BIT_ARB = 0x0400
+ SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB = 0x91A9
+ SPIR_V_BINARY_ARB = 0x9552
+ SPIR_V_EXTENSIONS = 0x9553
+ SQUARE_NV = 0x90A3
+ SR8_EXT = 0x8FBD
+ SRC1_ALPHA = 0x8589
+ SRC1_COLOR = 0x88F9
+ SRC_ALPHA = 0x0302
+ SRC_ALPHA_SATURATE = 0x0308
+ SRC_ATOP_NV = 0x928E
+ SRC_COLOR = 0x0300
+ SRC_IN_NV = 0x928A
+ SRC_NV = 0x9286
+ SRC_OUT_NV = 0x928C
+ SRC_OVER_NV = 0x9288
+ SRG8_EXT = 0x8FBE
+ SRGB = 0x8C40
+ SRGB8 = 0x8C41
+ SRGB8_ALPHA8 = 0x8C43
+ SRGB_ALPHA = 0x8C42
+ SRGB_DECODE_ARB = 0x8299
+ SRGB_READ = 0x8297
+ SRGB_WRITE = 0x8298
+ STACK_OVERFLOW = 0x0503
+ STACK_OVERFLOW_KHR = 0x0503
+ STACK_UNDERFLOW = 0x0504
+ STACK_UNDERFLOW_KHR = 0x0504
+ STANDARD_FONT_FORMAT_NV = 0x936C
+ STANDARD_FONT_NAME_NV = 0x9072
+ STATIC_COPY = 0x88E6
+ STATIC_DRAW = 0x88E4
+ STATIC_READ = 0x88E5
+ STENCIL = 0x1802
+ STENCIL_ATTACHMENT = 0x8D20
+ STENCIL_BACK_FAIL = 0x8801
+ STENCIL_BACK_FUNC = 0x8800
+ STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
+ STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
+ STENCIL_BACK_REF = 0x8CA3
+ STENCIL_BACK_VALUE_MASK = 0x8CA4
+ STENCIL_BACK_WRITEMASK = 0x8CA5
+ STENCIL_BUFFER_BIT = 0x00000400
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_COMPONENTS = 0x8285
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_INDEX = 0x1901
+ STENCIL_INDEX1 = 0x8D46
+ STENCIL_INDEX16 = 0x8D49
+ STENCIL_INDEX4 = 0x8D47
+ STENCIL_INDEX8 = 0x8D48
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_REF_COMMAND_NV = 0x000C
+ STENCIL_RENDERABLE = 0x8288
+ STENCIL_SAMPLES_NV = 0x932E
+ STENCIL_TEST = 0x0B90
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ STEREO = 0x0C33
+ STREAM_COPY = 0x88E2
+ STREAM_DRAW = 0x88E0
+ STREAM_READ = 0x88E1
+ SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR = 0x00000004
+ SUBGROUP_FEATURE_BALLOT_BIT_KHR = 0x00000008
+ SUBGROUP_FEATURE_BASIC_BIT_KHR = 0x00000001
+ SUBGROUP_FEATURE_CLUSTERED_BIT_KHR = 0x00000040
+ SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100
+ SUBGROUP_FEATURE_QUAD_BIT_KHR = 0x00000080
+ SUBGROUP_FEATURE_SHUFFLE_BIT_KHR = 0x00000010
+ SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR = 0x00000020
+ SUBGROUP_FEATURE_VOTE_BIT_KHR = 0x00000002
+ SUBGROUP_QUAD_ALL_STAGES_KHR = 0x9535
+ SUBGROUP_SIZE_KHR = 0x9532
+ SUBGROUP_SUPPORTED_FEATURES_KHR = 0x9534
+ SUBGROUP_SUPPORTED_STAGES_KHR = 0x9533
+ SUBPIXEL_BITS = 0x0D50
+ SUBPIXEL_PRECISION_BIAS_X_BITS_NV = 0x9347
+ SUBPIXEL_PRECISION_BIAS_Y_BITS_NV = 0x9348
+ SUPERSAMPLE_SCALE_X_NV = 0x9372
+ SUPERSAMPLE_SCALE_Y_NV = 0x9373
+ SUPPORTED_MULTISAMPLE_MODES_AMD = 0x91B7
+ SYNC_CL_EVENT_ARB = 0x8240
+ SYNC_CL_EVENT_COMPLETE_ARB = 0x8241
+ SYNC_CONDITION = 0x9113
+ SYNC_FENCE = 0x9116
+ SYNC_FLAGS = 0x9115
+ SYNC_FLUSH_COMMANDS_BIT = 0x00000001
+ SYNC_GPU_COMMANDS_COMPLETE = 0x9117
+ SYNC_STATUS = 0x9114
+ SYSTEM_FONT_NAME_NV = 0x9073
+ TASK_SHADER_BIT_NV = 0x00000080
+ TASK_SHADER_NV = 0x955A
+ TASK_SUBROUTINE_NV = 0x957D
+ TASK_SUBROUTINE_UNIFORM_NV = 0x957F
+ TASK_WORK_GROUP_SIZE_NV = 0x953F
+ TERMINATE_SEQUENCE_COMMAND_NV = 0x0000
+ TESS_CONTROL_OUTPUT_VERTICES = 0x8E75
+ TESS_CONTROL_SHADER = 0x8E88
+ TESS_CONTROL_SHADER_BIT = 0x00000008
+ TESS_CONTROL_SHADER_PATCHES_ARB = 0x82F1
+ TESS_CONTROL_SUBROUTINE = 0x92E9
+ TESS_CONTROL_SUBROUTINE_UNIFORM = 0x92EF
+ TESS_CONTROL_TEXTURE = 0x829C
+ TESS_EVALUATION_SHADER = 0x8E87
+ TESS_EVALUATION_SHADER_BIT = 0x00000010
+ TESS_EVALUATION_SHADER_INVOCATIONS_ARB = 0x82F2
+ TESS_EVALUATION_SUBROUTINE = 0x92EA
+ TESS_EVALUATION_SUBROUTINE_UNIFORM = 0x92F0
+ TESS_EVALUATION_TEXTURE = 0x829D
+ TESS_GEN_MODE = 0x8E76
+ TESS_GEN_POINT_MODE = 0x8E79
+ TESS_GEN_SPACING = 0x8E77
+ TESS_GEN_VERTEX_ORDER = 0x8E78
+ TEXTURE = 0x1702
+ TEXTURE0 = 0x84C0
+ TEXTURE1 = 0x84C1
+ TEXTURE10 = 0x84CA
+ TEXTURE11 = 0x84CB
+ TEXTURE12 = 0x84CC
+ TEXTURE13 = 0x84CD
+ TEXTURE14 = 0x84CE
+ TEXTURE15 = 0x84CF
+ TEXTURE16 = 0x84D0
+ TEXTURE17 = 0x84D1
+ TEXTURE18 = 0x84D2
+ TEXTURE19 = 0x84D3
+ TEXTURE2 = 0x84C2
+ TEXTURE20 = 0x84D4
+ TEXTURE21 = 0x84D5
+ TEXTURE22 = 0x84D6
+ TEXTURE23 = 0x84D7
+ TEXTURE24 = 0x84D8
+ TEXTURE25 = 0x84D9
+ TEXTURE26 = 0x84DA
+ TEXTURE27 = 0x84DB
+ TEXTURE28 = 0x84DC
+ TEXTURE29 = 0x84DD
+ TEXTURE3 = 0x84C3
+ TEXTURE30 = 0x84DE
+ TEXTURE31 = 0x84DF
+ TEXTURE4 = 0x84C4
+ TEXTURE5 = 0x84C5
+ TEXTURE6 = 0x84C6
+ TEXTURE7 = 0x84C7
+ TEXTURE8 = 0x84C8
+ TEXTURE9 = 0x84C9
+ TEXTURE_1D = 0x0DE0
+ TEXTURE_1D_ARRAY = 0x8C18
+ TEXTURE_2D = 0x0DE1
+ TEXTURE_2D_ARRAY = 0x8C1A
+ TEXTURE_2D_MULTISAMPLE = 0x9100
+ TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102
+ TEXTURE_3D = 0x806F
+ TEXTURE_ALPHA_SIZE = 0x805F
+ TEXTURE_ALPHA_TYPE = 0x8C13
+ TEXTURE_BASE_LEVEL = 0x813C
+ TEXTURE_BINDING_1D = 0x8068
+ TEXTURE_BINDING_1D_ARRAY = 0x8C1C
+ TEXTURE_BINDING_2D = 0x8069
+ TEXTURE_BINDING_2D_ARRAY = 0x8C1D
+ TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104
+ TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105
+ TEXTURE_BINDING_3D = 0x806A
+ TEXTURE_BINDING_BUFFER = 0x8C2C
+ TEXTURE_BINDING_BUFFER_ARB = 0x8C2C
+ TEXTURE_BINDING_CUBE_MAP = 0x8514
+ TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A
+ TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = 0x900A
+ TEXTURE_BINDING_RECTANGLE = 0x84F6
+ TEXTURE_BLUE_SIZE = 0x805E
+ TEXTURE_BLUE_TYPE = 0x8C12
+ TEXTURE_BORDER_COLOR = 0x1004
+ TEXTURE_BUFFER = 0x8C2A
+ TEXTURE_BUFFER_ARB = 0x8C2A
+ TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D
+ TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = 0x8C2D
+ TEXTURE_BUFFER_FORMAT_ARB = 0x8C2E
+ TEXTURE_BUFFER_OFFSET = 0x919D
+ TEXTURE_BUFFER_OFFSET_ALIGNMENT = 0x919F
+ TEXTURE_BUFFER_SIZE = 0x919E
+ TEXTURE_COMPARE_FUNC = 0x884D
+ TEXTURE_COMPARE_MODE = 0x884C
+ TEXTURE_COMPRESSED = 0x86A1
+ TEXTURE_COMPRESSED_BLOCK_HEIGHT = 0x82B2
+ TEXTURE_COMPRESSED_BLOCK_SIZE = 0x82B3
+ TEXTURE_COMPRESSED_BLOCK_WIDTH = 0x82B1
+ TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+ TEXTURE_COMPRESSION_HINT = 0x84EF
+ TEXTURE_COORD_ARRAY_ADDRESS_NV = 0x8F25
+ TEXTURE_COORD_ARRAY_LENGTH_NV = 0x8F2F
+ TEXTURE_CUBE_MAP = 0x8513
+ TEXTURE_CUBE_MAP_ARRAY = 0x9009
+ TEXTURE_CUBE_MAP_ARRAY_ARB = 0x9009
+ TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+ TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+ TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+ TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+ TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+ TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+ TEXTURE_CUBE_MAP_SEAMLESS = 0x884F
+ TEXTURE_DEPTH = 0x8071
+ TEXTURE_DEPTH_SIZE = 0x884A
+ TEXTURE_DEPTH_TYPE = 0x8C16
+ TEXTURE_FETCH_BARRIER_BIT = 0x00000008
+ TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107
+ TEXTURE_GATHER = 0x82A2
+ TEXTURE_GATHER_SHADOW = 0x82A3
+ TEXTURE_GREEN_SIZE = 0x805D
+ TEXTURE_GREEN_TYPE = 0x8C11
+ TEXTURE_HEIGHT = 0x1001
+ TEXTURE_IMAGE_FORMAT = 0x828F
+ TEXTURE_IMAGE_TYPE = 0x8290
+ TEXTURE_IMMUTABLE_FORMAT = 0x912F
+ TEXTURE_IMMUTABLE_FORMAT_EXT = 0x912F
+ TEXTURE_IMMUTABLE_LEVELS = 0x82DF
+ TEXTURE_INTERNAL_FORMAT = 0x1003
+ TEXTURE_LOD_BIAS = 0x8501
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MAX_ANISOTROPY = 0x84FE
+ TEXTURE_MAX_LEVEL = 0x813D
+ TEXTURE_MAX_LOD = 0x813B
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_MIN_LOD = 0x813A
+ TEXTURE_RECTANGLE = 0x84F5
+ TEXTURE_REDUCTION_MODE_ARB = 0x9366
+ TEXTURE_REDUCTION_MODE_EXT = 0x9366
+ TEXTURE_RED_SIZE = 0x805C
+ TEXTURE_RED_TYPE = 0x8C10
+ TEXTURE_SAMPLES = 0x9106
+ TEXTURE_SHADOW = 0x82A1
+ TEXTURE_SHARED_SIZE = 0x8C3F
+ TEXTURE_SPARSE_ARB = 0x91A6
+ TEXTURE_SRGB_DECODE_EXT = 0x8A48
+ TEXTURE_STENCIL_SIZE = 0x88F1
+ TEXTURE_SWIZZLE_A = 0x8E45
+ TEXTURE_SWIZZLE_B = 0x8E44
+ TEXTURE_SWIZZLE_G = 0x8E43
+ TEXTURE_SWIZZLE_R = 0x8E42
+ TEXTURE_SWIZZLE_RGBA = 0x8E46
+ TEXTURE_TARGET = 0x1006
+ TEXTURE_UPDATE_BARRIER_BIT = 0x00000100
+ TEXTURE_VIEW = 0x82B5
+ TEXTURE_VIEW_MIN_LAYER = 0x82DD
+ TEXTURE_VIEW_MIN_LEVEL = 0x82DB
+ TEXTURE_VIEW_NUM_LAYERS = 0x82DE
+ TEXTURE_VIEW_NUM_LEVELS = 0x82DC
+ TEXTURE_WIDTH = 0x1000
+ TEXTURE_WRAP_R = 0x8072
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+ TIMEOUT_EXPIRED = 0x911B
+ TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF
+ TIMESTAMP = 0x8E28
+ TIME_ELAPSED = 0x88BF
+ TOP_LEVEL_ARRAY_SIZE = 0x930C
+ TOP_LEVEL_ARRAY_STRIDE = 0x930D
+ TRANSFORM_FEEDBACK = 0x8E22
+ TRANSFORM_FEEDBACK_BARRIER_BIT = 0x00000800
+ TRANSFORM_FEEDBACK_BINDING = 0x8E25
+ TRANSFORM_FEEDBACK_BUFFER = 0x8C8E
+ TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24
+ TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F
+ TRANSFORM_FEEDBACK_BUFFER_INDEX = 0x934B
+ TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F
+ TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23
+ TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85
+ TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84
+ TRANSFORM_FEEDBACK_BUFFER_STRIDE = 0x934C
+ TRANSFORM_FEEDBACK_OVERFLOW_ARB = 0x82EC
+ TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88
+ TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB = 0x82ED
+ TRANSFORM_FEEDBACK_VARYING = 0x92F4
+ TRANSFORM_FEEDBACK_VARYINGS = 0x8C83
+ TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76
+ TRANSLATE_2D_NV = 0x9090
+ TRANSLATE_3D_NV = 0x9091
+ TRANSLATE_X_NV = 0x908E
+ TRANSLATE_Y_NV = 0x908F
+ TRANSPOSE_AFFINE_2D_NV = 0x9096
+ TRANSPOSE_AFFINE_3D_NV = 0x9098
+ TRANSPOSE_PROGRAM_MATRIX_EXT = 0x8E2E
+ TRIANGLES = 0x0004
+ TRIANGLES_ADJACENCY = 0x000C
+ TRIANGLES_ADJACENCY_ARB = 0x000C
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+ TRIANGLE_STRIP_ADJACENCY = 0x000D
+ TRIANGLE_STRIP_ADJACENCY_ARB = 0x000D
+ TRIANGULAR_NV = 0x90A5
+ TRUE = 1
+ TYPE = 0x92FA
+ UNCORRELATED_NV = 0x9282
+ UNDEFINED_VERTEX = 0x8260
+ UNIFORM = 0x92E1
+ UNIFORM_ADDRESS_COMMAND_NV = 0x000A
+ UNIFORM_ARRAY_STRIDE = 0x8A3C
+ UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = 0x92DA
+ UNIFORM_BARRIER_BIT = 0x00000004
+ UNIFORM_BLOCK = 0x92E2
+ UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42
+ UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43
+ UNIFORM_BLOCK_BINDING = 0x8A3F
+ UNIFORM_BLOCK_DATA_SIZE = 0x8A40
+ UNIFORM_BLOCK_INDEX = 0x8A3A
+ UNIFORM_BLOCK_NAME_LENGTH = 0x8A41
+ UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = 0x90EC
+ UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46
+ UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45
+ UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV = 0x959C
+ UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV = 0x959D
+ UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0
+ UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1
+ UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44
+ UNIFORM_BUFFER = 0x8A11
+ UNIFORM_BUFFER_ADDRESS_NV = 0x936F
+ UNIFORM_BUFFER_BINDING = 0x8A28
+ UNIFORM_BUFFER_LENGTH_NV = 0x9370
+ UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34
+ UNIFORM_BUFFER_SIZE = 0x8A2A
+ UNIFORM_BUFFER_START = 0x8A29
+ UNIFORM_BUFFER_UNIFIED_NV = 0x936E
+ UNIFORM_IS_ROW_MAJOR = 0x8A3E
+ UNIFORM_MATRIX_STRIDE = 0x8A3D
+ UNIFORM_NAME_LENGTH = 0x8A39
+ UNIFORM_OFFSET = 0x8A3B
+ UNIFORM_SIZE = 0x8A38
+ UNIFORM_TYPE = 0x8A37
+ UNKNOWN_CONTEXT_RESET = 0x8255
+ UNKNOWN_CONTEXT_RESET_ARB = 0x8255
+ UNKNOWN_CONTEXT_RESET_KHR = 0x8255
+ UNPACK_ALIGNMENT = 0x0CF5
+ UNPACK_COMPRESSED_BLOCK_DEPTH = 0x9129
+ UNPACK_COMPRESSED_BLOCK_HEIGHT = 0x9128
+ UNPACK_COMPRESSED_BLOCK_SIZE = 0x912A
+ UNPACK_COMPRESSED_BLOCK_WIDTH = 0x9127
+ UNPACK_IMAGE_HEIGHT = 0x806E
+ UNPACK_LSB_FIRST = 0x0CF1
+ UNPACK_ROW_LENGTH = 0x0CF2
+ UNPACK_SKIP_IMAGES = 0x806D
+ UNPACK_SKIP_PIXELS = 0x0CF4
+ UNPACK_SKIP_ROWS = 0x0CF3
+ UNPACK_SWAP_BYTES = 0x0CF0
+ UNSIGNALED = 0x9118
+ UNSIGNED_BYTE = 0x1401
+ UNSIGNED_BYTE_2_3_3_REV = 0x8362
+ UNSIGNED_BYTE_3_3_2 = 0x8032
+ UNSIGNED_INT = 0x1405
+ UNSIGNED_INT16_NV = 0x8FF0
+ UNSIGNED_INT16_VEC2_NV = 0x8FF1
+ UNSIGNED_INT16_VEC3_NV = 0x8FF2
+ UNSIGNED_INT16_VEC4_NV = 0x8FF3
+ UNSIGNED_INT64_AMD = 0x8BC2
+ UNSIGNED_INT64_ARB = 0x140F
+ UNSIGNED_INT64_NV = 0x140F
+ UNSIGNED_INT64_VEC2_ARB = 0x8FF5
+ UNSIGNED_INT64_VEC2_NV = 0x8FF5
+ UNSIGNED_INT64_VEC3_ARB = 0x8FF6
+ UNSIGNED_INT64_VEC3_NV = 0x8FF6
+ UNSIGNED_INT64_VEC4_ARB = 0x8FF7
+ UNSIGNED_INT64_VEC4_NV = 0x8FF7
+ UNSIGNED_INT8_NV = 0x8FEC
+ UNSIGNED_INT8_VEC2_NV = 0x8FED
+ UNSIGNED_INT8_VEC3_NV = 0x8FEE
+ UNSIGNED_INT8_VEC4_NV = 0x8FEF
+ UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B
+ UNSIGNED_INT_10_10_10_2 = 0x8036
+ UNSIGNED_INT_24_8 = 0x84FA
+ UNSIGNED_INT_2_10_10_10_REV = 0x8368
+ UNSIGNED_INT_5_9_9_9_REV = 0x8C3E
+ UNSIGNED_INT_8_8_8_8 = 0x8035
+ UNSIGNED_INT_8_8_8_8_REV = 0x8367
+ UNSIGNED_INT_ATOMIC_COUNTER = 0x92DB
+ UNSIGNED_INT_IMAGE_1D = 0x9062
+ UNSIGNED_INT_IMAGE_1D_ARRAY = 0x9068
+ UNSIGNED_INT_IMAGE_2D = 0x9063
+ UNSIGNED_INT_IMAGE_2D_ARRAY = 0x9069
+ UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = 0x906B
+ UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x906C
+ UNSIGNED_INT_IMAGE_2D_RECT = 0x9065
+ UNSIGNED_INT_IMAGE_3D = 0x9064
+ UNSIGNED_INT_IMAGE_BUFFER = 0x9067
+ UNSIGNED_INT_IMAGE_CUBE = 0x9066
+ UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = 0x906A
+ UNSIGNED_INT_SAMPLER_1D = 0x8DD1
+ UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6
+ UNSIGNED_INT_SAMPLER_2D = 0x8DD2
+ UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D
+ UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5
+ UNSIGNED_INT_SAMPLER_3D = 0x8DD3
+ UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8
+ UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4
+ UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900F
+ UNSIGNED_INT_VEC2 = 0x8DC6
+ UNSIGNED_INT_VEC3 = 0x8DC7
+ UNSIGNED_INT_VEC4 = 0x8DC8
+ UNSIGNED_NORMALIZED = 0x8C17
+ UNSIGNED_SHORT = 0x1403
+ UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+ UNSIGNED_SHORT_4_4_4_4 = 0x8033
+ UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+ UNSIGNED_SHORT_5_5_5_1 = 0x8034
+ UNSIGNED_SHORT_5_6_5 = 0x8363
+ UNSIGNED_SHORT_5_6_5_REV = 0x8364
+ UNSIGNED_SHORT_8_8_APPLE = 0x85BA
+ UNSIGNED_SHORT_8_8_REV_APPLE = 0x85BB
+ UPPER_LEFT = 0x8CA2
+ USE_MISSING_GLYPH_NV = 0x90AA
+ UTF16_NV = 0x909B
+ UTF8_NV = 0x909A
+ VALIDATE_STATUS = 0x8B83
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+ VERTEX_ARRAY = 0x8074
+ VERTEX_ARRAY_ADDRESS_NV = 0x8F21
+ VERTEX_ARRAY_BINDING = 0x85B5
+ VERTEX_ARRAY_KHR = 0x8074
+ VERTEX_ARRAY_LENGTH_NV = 0x8F2B
+ VERTEX_ARRAY_OBJECT_EXT = 0x9154
+ VERTEX_ATTRIB_ARRAY_ADDRESS_NV = 0x8F20
+ VERTEX_ATTRIB_ARRAY_BARRIER_BIT = 0x00000001
+ VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
+ VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE
+ VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = 0x88FE
+ VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
+ VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD
+ VERTEX_ATTRIB_ARRAY_LENGTH_NV = 0x8F2A
+ VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
+ VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
+ VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
+ VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
+ VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
+ VERTEX_ATTRIB_ARRAY_UNIFIED_NV = 0x8F1E
+ VERTEX_ATTRIB_BINDING = 0x82D4
+ VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D5
+ VERTEX_BINDING_DIVISOR = 0x82D6
+ VERTEX_BINDING_OFFSET = 0x82D7
+ VERTEX_BINDING_STRIDE = 0x82D8
+ VERTEX_PROGRAM_POINT_SIZE = 0x8642
+ VERTEX_SHADER = 0x8B31
+ VERTEX_SHADER_BIT = 0x00000001
+ VERTEX_SHADER_BIT_EXT = 0x00000001
+ VERTEX_SHADER_INVOCATIONS_ARB = 0x82F0
+ VERTEX_SUBROUTINE = 0x92E8
+ VERTEX_SUBROUTINE_UNIFORM = 0x92EE
+ VERTEX_TEXTURE = 0x829B
+ VERTICAL_LINE_TO_NV = 0x08
+ VERTICES_SUBMITTED_ARB = 0x82EE
+ VIEWPORT = 0x0BA2
+ VIEWPORT_BOUNDS_RANGE = 0x825D
+ VIEWPORT_COMMAND_NV = 0x0010
+ VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F
+ VIEWPORT_POSITION_W_SCALE_NV = 0x937C
+ VIEWPORT_POSITION_W_SCALE_X_COEFF_NV = 0x937D
+ VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV = 0x937E
+ VIEWPORT_SUBPIXEL_BITS = 0x825C
+ VIEWPORT_SWIZZLE_NEGATIVE_W_NV = 0x9357
+ VIEWPORT_SWIZZLE_NEGATIVE_X_NV = 0x9351
+ VIEWPORT_SWIZZLE_NEGATIVE_Y_NV = 0x9353
+ VIEWPORT_SWIZZLE_NEGATIVE_Z_NV = 0x9355
+ VIEWPORT_SWIZZLE_POSITIVE_W_NV = 0x9356
+ VIEWPORT_SWIZZLE_POSITIVE_X_NV = 0x9350
+ VIEWPORT_SWIZZLE_POSITIVE_Y_NV = 0x9352
+ VIEWPORT_SWIZZLE_POSITIVE_Z_NV = 0x9354
+ VIEWPORT_SWIZZLE_W_NV = 0x935B
+ VIEWPORT_SWIZZLE_X_NV = 0x9358
+ VIEWPORT_SWIZZLE_Y_NV = 0x9359
+ VIEWPORT_SWIZZLE_Z_NV = 0x935A
+ VIEW_CLASS_128_BITS = 0x82C4
+ VIEW_CLASS_16_BITS = 0x82CA
+ VIEW_CLASS_24_BITS = 0x82C9
+ VIEW_CLASS_32_BITS = 0x82C8
+ VIEW_CLASS_48_BITS = 0x82C7
+ VIEW_CLASS_64_BITS = 0x82C6
+ VIEW_CLASS_8_BITS = 0x82CB
+ VIEW_CLASS_96_BITS = 0x82C5
+ VIEW_CLASS_ASTC_10x10_RGBA = 0x9393
+ VIEW_CLASS_ASTC_10x5_RGBA = 0x9390
+ VIEW_CLASS_ASTC_10x6_RGBA = 0x9391
+ VIEW_CLASS_ASTC_10x8_RGBA = 0x9392
+ VIEW_CLASS_ASTC_12x10_RGBA = 0x9394
+ VIEW_CLASS_ASTC_12x12_RGBA = 0x9395
+ VIEW_CLASS_ASTC_4x4_RGBA = 0x9388
+ VIEW_CLASS_ASTC_5x4_RGBA = 0x9389
+ VIEW_CLASS_ASTC_5x5_RGBA = 0x938A
+ VIEW_CLASS_ASTC_6x5_RGBA = 0x938B
+ VIEW_CLASS_ASTC_6x6_RGBA = 0x938C
+ VIEW_CLASS_ASTC_8x5_RGBA = 0x938D
+ VIEW_CLASS_ASTC_8x6_RGBA = 0x938E
+ VIEW_CLASS_ASTC_8x8_RGBA = 0x938F
+ VIEW_CLASS_BPTC_FLOAT = 0x82D3
+ VIEW_CLASS_BPTC_UNORM = 0x82D2
+ VIEW_CLASS_EAC_R11 = 0x9383
+ VIEW_CLASS_EAC_RG11 = 0x9384
+ VIEW_CLASS_ETC2_EAC_RGBA = 0x9387
+ VIEW_CLASS_ETC2_RGB = 0x9385
+ VIEW_CLASS_ETC2_RGBA = 0x9386
+ VIEW_CLASS_RGTC1_RED = 0x82D0
+ VIEW_CLASS_RGTC2_RG = 0x82D1
+ VIEW_CLASS_S3TC_DXT1_RGB = 0x82CC
+ VIEW_CLASS_S3TC_DXT1_RGBA = 0x82CD
+ VIEW_CLASS_S3TC_DXT3_RGBA = 0x82CE
+ VIEW_CLASS_S3TC_DXT5_RGBA = 0x82CF
+ VIEW_COMPATIBILITY_CLASS = 0x82B6
+ VIRTUAL_PAGE_SIZE_INDEX_ARB = 0x91A7
+ VIRTUAL_PAGE_SIZE_X_ARB = 0x9195
+ VIRTUAL_PAGE_SIZE_Y_ARB = 0x9196
+ VIRTUAL_PAGE_SIZE_Z_ARB = 0x9197
+ VIVIDLIGHT_NV = 0x92A6
+ WAIT_FAILED = 0x911D
+ WARPS_PER_SM_NV = 0x933A
+ WARP_SIZE_NV = 0x9339
+ WEIGHTED_AVERAGE_ARB = 0x9367
+ WEIGHTED_AVERAGE_EXT = 0x9367
+ WINDOW_RECTANGLE_EXT = 0x8F12
+ WINDOW_RECTANGLE_MODE_EXT = 0x8F13
+ WRITE_ONLY = 0x88B9
+ XOR = 0x1506
+ XOR_NV = 0x1506
+ ZERO = 0
+ ZERO_TO_ONE = 0x935F
+)
+
+var (
+ gpActiveProgramEXT C.GPACTIVEPROGRAMEXT
+ gpActiveShaderProgram C.GPACTIVESHADERPROGRAM
+ gpActiveShaderProgramEXT C.GPACTIVESHADERPROGRAMEXT
+ gpActiveTexture C.GPACTIVETEXTURE
+ gpApplyFramebufferAttachmentCMAAINTEL C.GPAPPLYFRAMEBUFFERATTACHMENTCMAAINTEL
+ gpAttachShader C.GPATTACHSHADER
+ gpBeginConditionalRender C.GPBEGINCONDITIONALRENDER
+ gpBeginConditionalRenderNV C.GPBEGINCONDITIONALRENDERNV
+ gpBeginPerfMonitorAMD C.GPBEGINPERFMONITORAMD
+ gpBeginPerfQueryINTEL C.GPBEGINPERFQUERYINTEL
+ gpBeginQuery C.GPBEGINQUERY
+ gpBeginQueryIndexed C.GPBEGINQUERYINDEXED
+ gpBeginTransformFeedback C.GPBEGINTRANSFORMFEEDBACK
+ gpBindAttribLocation C.GPBINDATTRIBLOCATION
+ gpBindBuffer C.GPBINDBUFFER
+ gpBindBufferBase C.GPBINDBUFFERBASE
+ gpBindBufferRange C.GPBINDBUFFERRANGE
+ gpBindBuffersBase C.GPBINDBUFFERSBASE
+ gpBindBuffersRange C.GPBINDBUFFERSRANGE
+ gpBindFragDataLocation C.GPBINDFRAGDATALOCATION
+ gpBindFragDataLocationIndexed C.GPBINDFRAGDATALOCATIONINDEXED
+ gpBindFramebuffer C.GPBINDFRAMEBUFFER
+ gpBindImageTexture C.GPBINDIMAGETEXTURE
+ gpBindImageTextures C.GPBINDIMAGETEXTURES
+ gpBindMultiTextureEXT C.GPBINDMULTITEXTUREEXT
+ gpBindProgramPipeline C.GPBINDPROGRAMPIPELINE
+ gpBindProgramPipelineEXT C.GPBINDPROGRAMPIPELINEEXT
+ gpBindRenderbuffer C.GPBINDRENDERBUFFER
+ gpBindSampler C.GPBINDSAMPLER
+ gpBindSamplers C.GPBINDSAMPLERS
+ gpBindShadingRateImageNV C.GPBINDSHADINGRATEIMAGENV
+ gpBindTexture C.GPBINDTEXTURE
+ gpBindTextureUnit C.GPBINDTEXTUREUNIT
+ gpBindTextures C.GPBINDTEXTURES
+ gpBindTransformFeedback C.GPBINDTRANSFORMFEEDBACK
+ gpBindVertexArray C.GPBINDVERTEXARRAY
+ gpBindVertexBuffer C.GPBINDVERTEXBUFFER
+ gpBindVertexBuffers C.GPBINDVERTEXBUFFERS
+ gpBlendBarrierKHR C.GPBLENDBARRIERKHR
+ gpBlendBarrierNV C.GPBLENDBARRIERNV
+ gpBlendColor C.GPBLENDCOLOR
+ gpBlendEquation C.GPBLENDEQUATION
+ gpBlendEquationSeparate C.GPBLENDEQUATIONSEPARATE
+ gpBlendEquationSeparateiARB C.GPBLENDEQUATIONSEPARATEIARB
+ gpBlendEquationiARB C.GPBLENDEQUATIONIARB
+ gpBlendFunc C.GPBLENDFUNC
+ gpBlendFuncSeparate C.GPBLENDFUNCSEPARATE
+ gpBlendFuncSeparateiARB C.GPBLENDFUNCSEPARATEIARB
+ gpBlendFunciARB C.GPBLENDFUNCIARB
+ gpBlendParameteriNV C.GPBLENDPARAMETERINV
+ gpBlitFramebuffer C.GPBLITFRAMEBUFFER
+ gpBlitNamedFramebuffer C.GPBLITNAMEDFRAMEBUFFER
+ gpBufferAddressRangeNV C.GPBUFFERADDRESSRANGENV
+ gpBufferAttachMemoryNV C.GPBUFFERATTACHMEMORYNV
+ gpBufferData C.GPBUFFERDATA
+ gpBufferPageCommitmentARB C.GPBUFFERPAGECOMMITMENTARB
+ gpBufferPageCommitmentMemNV C.GPBUFFERPAGECOMMITMENTMEMNV
+ gpBufferStorage C.GPBUFFERSTORAGE
+ gpBufferSubData C.GPBUFFERSUBDATA
+ gpCallCommandListNV C.GPCALLCOMMANDLISTNV
+ gpCheckFramebufferStatus C.GPCHECKFRAMEBUFFERSTATUS
+ gpCheckNamedFramebufferStatus C.GPCHECKNAMEDFRAMEBUFFERSTATUS
+ gpCheckNamedFramebufferStatusEXT C.GPCHECKNAMEDFRAMEBUFFERSTATUSEXT
+ gpClampColor C.GPCLAMPCOLOR
+ gpClear C.GPCLEAR
+ gpClearBufferData C.GPCLEARBUFFERDATA
+ gpClearBufferSubData C.GPCLEARBUFFERSUBDATA
+ gpClearBufferfi C.GPCLEARBUFFERFI
+ gpClearBufferfv C.GPCLEARBUFFERFV
+ gpClearBufferiv C.GPCLEARBUFFERIV
+ gpClearBufferuiv C.GPCLEARBUFFERUIV
+ gpClearColor C.GPCLEARCOLOR
+ gpClearDepth C.GPCLEARDEPTH
+ gpClearDepthdNV C.GPCLEARDEPTHDNV
+ gpClearDepthf C.GPCLEARDEPTHF
+ gpClearNamedBufferData C.GPCLEARNAMEDBUFFERDATA
+ gpClearNamedBufferDataEXT C.GPCLEARNAMEDBUFFERDATAEXT
+ gpClearNamedBufferSubData C.GPCLEARNAMEDBUFFERSUBDATA
+ gpClearNamedBufferSubDataEXT C.GPCLEARNAMEDBUFFERSUBDATAEXT
+ gpClearNamedFramebufferfi C.GPCLEARNAMEDFRAMEBUFFERFI
+ gpClearNamedFramebufferfv C.GPCLEARNAMEDFRAMEBUFFERFV
+ gpClearNamedFramebufferiv C.GPCLEARNAMEDFRAMEBUFFERIV
+ gpClearNamedFramebufferuiv C.GPCLEARNAMEDFRAMEBUFFERUIV
+ gpClearStencil C.GPCLEARSTENCIL
+ gpClearTexImage C.GPCLEARTEXIMAGE
+ gpClearTexSubImage C.GPCLEARTEXSUBIMAGE
+ gpClientAttribDefaultEXT C.GPCLIENTATTRIBDEFAULTEXT
+ gpClientWaitSync C.GPCLIENTWAITSYNC
+ gpClipControl C.GPCLIPCONTROL
+ gpColorFormatNV C.GPCOLORFORMATNV
+ gpColorMask C.GPCOLORMASK
+ gpColorMaski C.GPCOLORMASKI
+ gpCommandListSegmentsNV C.GPCOMMANDLISTSEGMENTSNV
+ gpCompileCommandListNV C.GPCOMPILECOMMANDLISTNV
+ gpCompileShader C.GPCOMPILESHADER
+ gpCompileShaderIncludeARB C.GPCOMPILESHADERINCLUDEARB
+ gpCompressedMultiTexImage1DEXT C.GPCOMPRESSEDMULTITEXIMAGE1DEXT
+ gpCompressedMultiTexImage2DEXT C.GPCOMPRESSEDMULTITEXIMAGE2DEXT
+ gpCompressedMultiTexImage3DEXT C.GPCOMPRESSEDMULTITEXIMAGE3DEXT
+ gpCompressedMultiTexSubImage1DEXT C.GPCOMPRESSEDMULTITEXSUBIMAGE1DEXT
+ gpCompressedMultiTexSubImage2DEXT C.GPCOMPRESSEDMULTITEXSUBIMAGE2DEXT
+ gpCompressedMultiTexSubImage3DEXT C.GPCOMPRESSEDMULTITEXSUBIMAGE3DEXT
+ gpCompressedTexImage1D C.GPCOMPRESSEDTEXIMAGE1D
+ gpCompressedTexImage2D C.GPCOMPRESSEDTEXIMAGE2D
+ gpCompressedTexImage3D C.GPCOMPRESSEDTEXIMAGE3D
+ gpCompressedTexSubImage1D C.GPCOMPRESSEDTEXSUBIMAGE1D
+ gpCompressedTexSubImage2D C.GPCOMPRESSEDTEXSUBIMAGE2D
+ gpCompressedTexSubImage3D C.GPCOMPRESSEDTEXSUBIMAGE3D
+ gpCompressedTextureImage1DEXT C.GPCOMPRESSEDTEXTUREIMAGE1DEXT
+ gpCompressedTextureImage2DEXT C.GPCOMPRESSEDTEXTUREIMAGE2DEXT
+ gpCompressedTextureImage3DEXT C.GPCOMPRESSEDTEXTUREIMAGE3DEXT
+ gpCompressedTextureSubImage1D C.GPCOMPRESSEDTEXTURESUBIMAGE1D
+ gpCompressedTextureSubImage1DEXT C.GPCOMPRESSEDTEXTURESUBIMAGE1DEXT
+ gpCompressedTextureSubImage2D C.GPCOMPRESSEDTEXTURESUBIMAGE2D
+ gpCompressedTextureSubImage2DEXT C.GPCOMPRESSEDTEXTURESUBIMAGE2DEXT
+ gpCompressedTextureSubImage3D C.GPCOMPRESSEDTEXTURESUBIMAGE3D
+ gpCompressedTextureSubImage3DEXT C.GPCOMPRESSEDTEXTURESUBIMAGE3DEXT
+ gpConservativeRasterParameterfNV C.GPCONSERVATIVERASTERPARAMETERFNV
+ gpConservativeRasterParameteriNV C.GPCONSERVATIVERASTERPARAMETERINV
+ gpCopyBufferSubData C.GPCOPYBUFFERSUBDATA
+ gpCopyImageSubData C.GPCOPYIMAGESUBDATA
+ gpCopyMultiTexImage1DEXT C.GPCOPYMULTITEXIMAGE1DEXT
+ gpCopyMultiTexImage2DEXT C.GPCOPYMULTITEXIMAGE2DEXT
+ gpCopyMultiTexSubImage1DEXT C.GPCOPYMULTITEXSUBIMAGE1DEXT
+ gpCopyMultiTexSubImage2DEXT C.GPCOPYMULTITEXSUBIMAGE2DEXT
+ gpCopyMultiTexSubImage3DEXT C.GPCOPYMULTITEXSUBIMAGE3DEXT
+ gpCopyNamedBufferSubData C.GPCOPYNAMEDBUFFERSUBDATA
+ gpCopyPathNV C.GPCOPYPATHNV
+ gpCopyTexImage1D C.GPCOPYTEXIMAGE1D
+ gpCopyTexImage2D C.GPCOPYTEXIMAGE2D
+ gpCopyTexSubImage1D C.GPCOPYTEXSUBIMAGE1D
+ gpCopyTexSubImage2D C.GPCOPYTEXSUBIMAGE2D
+ gpCopyTexSubImage3D C.GPCOPYTEXSUBIMAGE3D
+ gpCopyTextureImage1DEXT C.GPCOPYTEXTUREIMAGE1DEXT
+ gpCopyTextureImage2DEXT C.GPCOPYTEXTUREIMAGE2DEXT
+ gpCopyTextureSubImage1D C.GPCOPYTEXTURESUBIMAGE1D
+ gpCopyTextureSubImage1DEXT C.GPCOPYTEXTURESUBIMAGE1DEXT
+ gpCopyTextureSubImage2D C.GPCOPYTEXTURESUBIMAGE2D
+ gpCopyTextureSubImage2DEXT C.GPCOPYTEXTURESUBIMAGE2DEXT
+ gpCopyTextureSubImage3D C.GPCOPYTEXTURESUBIMAGE3D
+ gpCopyTextureSubImage3DEXT C.GPCOPYTEXTURESUBIMAGE3DEXT
+ gpCoverFillPathInstancedNV C.GPCOVERFILLPATHINSTANCEDNV
+ gpCoverFillPathNV C.GPCOVERFILLPATHNV
+ gpCoverStrokePathInstancedNV C.GPCOVERSTROKEPATHINSTANCEDNV
+ gpCoverStrokePathNV C.GPCOVERSTROKEPATHNV
+ gpCoverageModulationNV C.GPCOVERAGEMODULATIONNV
+ gpCoverageModulationTableNV C.GPCOVERAGEMODULATIONTABLENV
+ gpCreateBuffers C.GPCREATEBUFFERS
+ gpCreateCommandListsNV C.GPCREATECOMMANDLISTSNV
+ gpCreateFramebuffers C.GPCREATEFRAMEBUFFERS
+ gpCreatePerfQueryINTEL C.GPCREATEPERFQUERYINTEL
+ gpCreateProgram C.GPCREATEPROGRAM
+ gpCreateProgramPipelines C.GPCREATEPROGRAMPIPELINES
+ gpCreateQueries C.GPCREATEQUERIES
+ gpCreateRenderbuffers C.GPCREATERENDERBUFFERS
+ gpCreateSamplers C.GPCREATESAMPLERS
+ gpCreateShader C.GPCREATESHADER
+ gpCreateShaderProgramEXT C.GPCREATESHADERPROGRAMEXT
+ gpCreateShaderProgramv C.GPCREATESHADERPROGRAMV
+ gpCreateShaderProgramvEXT C.GPCREATESHADERPROGRAMVEXT
+ gpCreateStatesNV C.GPCREATESTATESNV
+ gpCreateSyncFromCLeventARB C.GPCREATESYNCFROMCLEVENTARB
+ gpCreateTextures C.GPCREATETEXTURES
+ gpCreateTransformFeedbacks C.GPCREATETRANSFORMFEEDBACKS
+ gpCreateVertexArrays C.GPCREATEVERTEXARRAYS
+ gpCullFace C.GPCULLFACE
+ gpDebugMessageCallback C.GPDEBUGMESSAGECALLBACK
+ gpDebugMessageCallbackARB C.GPDEBUGMESSAGECALLBACKARB
+ gpDebugMessageCallbackKHR C.GPDEBUGMESSAGECALLBACKKHR
+ gpDebugMessageControl C.GPDEBUGMESSAGECONTROL
+ gpDebugMessageControlARB C.GPDEBUGMESSAGECONTROLARB
+ gpDebugMessageControlKHR C.GPDEBUGMESSAGECONTROLKHR
+ gpDebugMessageInsert C.GPDEBUGMESSAGEINSERT
+ gpDebugMessageInsertARB C.GPDEBUGMESSAGEINSERTARB
+ gpDebugMessageInsertKHR C.GPDEBUGMESSAGEINSERTKHR
+ gpDeleteBuffers C.GPDELETEBUFFERS
+ gpDeleteCommandListsNV C.GPDELETECOMMANDLISTSNV
+ gpDeleteFramebuffers C.GPDELETEFRAMEBUFFERS
+ gpDeleteNamedStringARB C.GPDELETENAMEDSTRINGARB
+ gpDeletePathsNV C.GPDELETEPATHSNV
+ gpDeletePerfMonitorsAMD C.GPDELETEPERFMONITORSAMD
+ gpDeletePerfQueryINTEL C.GPDELETEPERFQUERYINTEL
+ gpDeleteProgram C.GPDELETEPROGRAM
+ gpDeleteProgramPipelines C.GPDELETEPROGRAMPIPELINES
+ gpDeleteProgramPipelinesEXT C.GPDELETEPROGRAMPIPELINESEXT
+ gpDeleteQueries C.GPDELETEQUERIES
+ gpDeleteRenderbuffers C.GPDELETERENDERBUFFERS
+ gpDeleteSamplers C.GPDELETESAMPLERS
+ gpDeleteShader C.GPDELETESHADER
+ gpDeleteStatesNV C.GPDELETESTATESNV
+ gpDeleteSync C.GPDELETESYNC
+ gpDeleteTextures C.GPDELETETEXTURES
+ gpDeleteTransformFeedbacks C.GPDELETETRANSFORMFEEDBACKS
+ gpDeleteVertexArrays C.GPDELETEVERTEXARRAYS
+ gpDepthBoundsdNV C.GPDEPTHBOUNDSDNV
+ gpDepthFunc C.GPDEPTHFUNC
+ gpDepthMask C.GPDEPTHMASK
+ gpDepthRange C.GPDEPTHRANGE
+ gpDepthRangeArraydvNV C.GPDEPTHRANGEARRAYDVNV
+ gpDepthRangeArrayv C.GPDEPTHRANGEARRAYV
+ gpDepthRangeIndexed C.GPDEPTHRANGEINDEXED
+ gpDepthRangeIndexeddNV C.GPDEPTHRANGEINDEXEDDNV
+ gpDepthRangedNV C.GPDEPTHRANGEDNV
+ gpDepthRangef C.GPDEPTHRANGEF
+ gpDetachShader C.GPDETACHSHADER
+ gpDisable C.GPDISABLE
+ gpDisableClientStateIndexedEXT C.GPDISABLECLIENTSTATEINDEXEDEXT
+ gpDisableClientStateiEXT C.GPDISABLECLIENTSTATEIEXT
+ gpDisableIndexedEXT C.GPDISABLEINDEXEDEXT
+ gpDisableVertexArrayAttrib C.GPDISABLEVERTEXARRAYATTRIB
+ gpDisableVertexArrayAttribEXT C.GPDISABLEVERTEXARRAYATTRIBEXT
+ gpDisableVertexArrayEXT C.GPDISABLEVERTEXARRAYEXT
+ gpDisableVertexAttribArray C.GPDISABLEVERTEXATTRIBARRAY
+ gpDisablei C.GPDISABLEI
+ gpDispatchCompute C.GPDISPATCHCOMPUTE
+ gpDispatchComputeGroupSizeARB C.GPDISPATCHCOMPUTEGROUPSIZEARB
+ gpDispatchComputeIndirect C.GPDISPATCHCOMPUTEINDIRECT
+ gpDrawArrays C.GPDRAWARRAYS
+ gpDrawArraysIndirect C.GPDRAWARRAYSINDIRECT
+ gpDrawArraysInstanced C.GPDRAWARRAYSINSTANCED
+ gpDrawArraysInstancedARB C.GPDRAWARRAYSINSTANCEDARB
+ gpDrawArraysInstancedBaseInstance C.GPDRAWARRAYSINSTANCEDBASEINSTANCE
+ gpDrawArraysInstancedEXT C.GPDRAWARRAYSINSTANCEDEXT
+ gpDrawBuffer C.GPDRAWBUFFER
+ gpDrawBuffers C.GPDRAWBUFFERS
+ gpDrawCommandsAddressNV C.GPDRAWCOMMANDSADDRESSNV
+ gpDrawCommandsNV C.GPDRAWCOMMANDSNV
+ gpDrawCommandsStatesAddressNV C.GPDRAWCOMMANDSSTATESADDRESSNV
+ gpDrawCommandsStatesNV C.GPDRAWCOMMANDSSTATESNV
+ gpDrawElements C.GPDRAWELEMENTS
+ gpDrawElementsBaseVertex C.GPDRAWELEMENTSBASEVERTEX
+ gpDrawElementsIndirect C.GPDRAWELEMENTSINDIRECT
+ gpDrawElementsInstanced C.GPDRAWELEMENTSINSTANCED
+ gpDrawElementsInstancedARB C.GPDRAWELEMENTSINSTANCEDARB
+ gpDrawElementsInstancedBaseInstance C.GPDRAWELEMENTSINSTANCEDBASEINSTANCE
+ gpDrawElementsInstancedBaseVertex C.GPDRAWELEMENTSINSTANCEDBASEVERTEX
+ gpDrawElementsInstancedBaseVertexBaseInstance C.GPDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCE
+ gpDrawElementsInstancedEXT C.GPDRAWELEMENTSINSTANCEDEXT
+ gpDrawMeshTasksIndirectNV C.GPDRAWMESHTASKSINDIRECTNV
+ gpDrawMeshTasksNV C.GPDRAWMESHTASKSNV
+ gpDrawRangeElements C.GPDRAWRANGEELEMENTS
+ gpDrawRangeElementsBaseVertex C.GPDRAWRANGEELEMENTSBASEVERTEX
+ gpDrawTransformFeedback C.GPDRAWTRANSFORMFEEDBACK
+ gpDrawTransformFeedbackInstanced C.GPDRAWTRANSFORMFEEDBACKINSTANCED
+ gpDrawTransformFeedbackStream C.GPDRAWTRANSFORMFEEDBACKSTREAM
+ gpDrawTransformFeedbackStreamInstanced C.GPDRAWTRANSFORMFEEDBACKSTREAMINSTANCED
+ gpDrawVkImageNV C.GPDRAWVKIMAGENV
+ gpEGLImageTargetTexStorageEXT C.GPEGLIMAGETARGETTEXSTORAGEEXT
+ gpEGLImageTargetTextureStorageEXT C.GPEGLIMAGETARGETTEXTURESTORAGEEXT
+ gpEdgeFlagFormatNV C.GPEDGEFLAGFORMATNV
+ gpEnable C.GPENABLE
+ gpEnableClientStateIndexedEXT C.GPENABLECLIENTSTATEINDEXEDEXT
+ gpEnableClientStateiEXT C.GPENABLECLIENTSTATEIEXT
+ gpEnableIndexedEXT C.GPENABLEINDEXEDEXT
+ gpEnableVertexArrayAttrib C.GPENABLEVERTEXARRAYATTRIB
+ gpEnableVertexArrayAttribEXT C.GPENABLEVERTEXARRAYATTRIBEXT
+ gpEnableVertexArrayEXT C.GPENABLEVERTEXARRAYEXT
+ gpEnableVertexAttribArray C.GPENABLEVERTEXATTRIBARRAY
+ gpEnablei C.GPENABLEI
+ gpEndConditionalRender C.GPENDCONDITIONALRENDER
+ gpEndConditionalRenderNV C.GPENDCONDITIONALRENDERNV
+ gpEndPerfMonitorAMD C.GPENDPERFMONITORAMD
+ gpEndPerfQueryINTEL C.GPENDPERFQUERYINTEL
+ gpEndQuery C.GPENDQUERY
+ gpEndQueryIndexed C.GPENDQUERYINDEXED
+ gpEndTransformFeedback C.GPENDTRANSFORMFEEDBACK
+ gpEvaluateDepthValuesARB C.GPEVALUATEDEPTHVALUESARB
+ gpFenceSync C.GPFENCESYNC
+ gpFinish C.GPFINISH
+ gpFlush C.GPFLUSH
+ gpFlushMappedBufferRange C.GPFLUSHMAPPEDBUFFERRANGE
+ gpFlushMappedNamedBufferRange C.GPFLUSHMAPPEDNAMEDBUFFERRANGE
+ gpFlushMappedNamedBufferRangeEXT C.GPFLUSHMAPPEDNAMEDBUFFERRANGEEXT
+ gpFogCoordFormatNV C.GPFOGCOORDFORMATNV
+ gpFragmentCoverageColorNV C.GPFRAGMENTCOVERAGECOLORNV
+ gpFramebufferDrawBufferEXT C.GPFRAMEBUFFERDRAWBUFFEREXT
+ gpFramebufferDrawBuffersEXT C.GPFRAMEBUFFERDRAWBUFFERSEXT
+ gpFramebufferFetchBarrierEXT C.GPFRAMEBUFFERFETCHBARRIEREXT
+ gpFramebufferParameteri C.GPFRAMEBUFFERPARAMETERI
+ gpFramebufferParameteriMESA C.GPFRAMEBUFFERPARAMETERIMESA
+ gpFramebufferReadBufferEXT C.GPFRAMEBUFFERREADBUFFEREXT
+ gpFramebufferRenderbuffer C.GPFRAMEBUFFERRENDERBUFFER
+ gpFramebufferSampleLocationsfvARB C.GPFRAMEBUFFERSAMPLELOCATIONSFVARB
+ gpFramebufferSampleLocationsfvNV C.GPFRAMEBUFFERSAMPLELOCATIONSFVNV
+ gpFramebufferTexture C.GPFRAMEBUFFERTEXTURE
+ gpFramebufferTexture1D C.GPFRAMEBUFFERTEXTURE1D
+ gpFramebufferTexture2D C.GPFRAMEBUFFERTEXTURE2D
+ gpFramebufferTexture3D C.GPFRAMEBUFFERTEXTURE3D
+ gpFramebufferTextureARB C.GPFRAMEBUFFERTEXTUREARB
+ gpFramebufferTextureFaceARB C.GPFRAMEBUFFERTEXTUREFACEARB
+ gpFramebufferTextureLayer C.GPFRAMEBUFFERTEXTURELAYER
+ gpFramebufferTextureLayerARB C.GPFRAMEBUFFERTEXTURELAYERARB
+ gpFramebufferTextureMultiviewOVR C.GPFRAMEBUFFERTEXTUREMULTIVIEWOVR
+ gpFrontFace C.GPFRONTFACE
+ gpGenBuffers C.GPGENBUFFERS
+ gpGenFramebuffers C.GPGENFRAMEBUFFERS
+ gpGenPathsNV C.GPGENPATHSNV
+ gpGenPerfMonitorsAMD C.GPGENPERFMONITORSAMD
+ gpGenProgramPipelines C.GPGENPROGRAMPIPELINES
+ gpGenProgramPipelinesEXT C.GPGENPROGRAMPIPELINESEXT
+ gpGenQueries C.GPGENQUERIES
+ gpGenRenderbuffers C.GPGENRENDERBUFFERS
+ gpGenSamplers C.GPGENSAMPLERS
+ gpGenTextures C.GPGENTEXTURES
+ gpGenTransformFeedbacks C.GPGENTRANSFORMFEEDBACKS
+ gpGenVertexArrays C.GPGENVERTEXARRAYS
+ gpGenerateMipmap C.GPGENERATEMIPMAP
+ gpGenerateMultiTexMipmapEXT C.GPGENERATEMULTITEXMIPMAPEXT
+ gpGenerateTextureMipmap C.GPGENERATETEXTUREMIPMAP
+ gpGenerateTextureMipmapEXT C.GPGENERATETEXTUREMIPMAPEXT
+ gpGetActiveAtomicCounterBufferiv C.GPGETACTIVEATOMICCOUNTERBUFFERIV
+ gpGetActiveAttrib C.GPGETACTIVEATTRIB
+ gpGetActiveSubroutineName C.GPGETACTIVESUBROUTINENAME
+ gpGetActiveSubroutineUniformName C.GPGETACTIVESUBROUTINEUNIFORMNAME
+ gpGetActiveSubroutineUniformiv C.GPGETACTIVESUBROUTINEUNIFORMIV
+ gpGetActiveUniform C.GPGETACTIVEUNIFORM
+ gpGetActiveUniformBlockName C.GPGETACTIVEUNIFORMBLOCKNAME
+ gpGetActiveUniformBlockiv C.GPGETACTIVEUNIFORMBLOCKIV
+ gpGetActiveUniformName C.GPGETACTIVEUNIFORMNAME
+ gpGetActiveUniformsiv C.GPGETACTIVEUNIFORMSIV
+ gpGetAttachedShaders C.GPGETATTACHEDSHADERS
+ gpGetAttribLocation C.GPGETATTRIBLOCATION
+ gpGetBooleanIndexedvEXT C.GPGETBOOLEANINDEXEDVEXT
+ gpGetBooleani_v C.GPGETBOOLEANI_V
+ gpGetBooleanv C.GPGETBOOLEANV
+ gpGetBufferParameteri64v C.GPGETBUFFERPARAMETERI64V
+ gpGetBufferParameteriv C.GPGETBUFFERPARAMETERIV
+ gpGetBufferParameterui64vNV C.GPGETBUFFERPARAMETERUI64VNV
+ gpGetBufferPointerv C.GPGETBUFFERPOINTERV
+ gpGetBufferSubData C.GPGETBUFFERSUBDATA
+ gpGetCommandHeaderNV C.GPGETCOMMANDHEADERNV
+ gpGetCompressedMultiTexImageEXT C.GPGETCOMPRESSEDMULTITEXIMAGEEXT
+ gpGetCompressedTexImage C.GPGETCOMPRESSEDTEXIMAGE
+ gpGetCompressedTextureImage C.GPGETCOMPRESSEDTEXTUREIMAGE
+ gpGetCompressedTextureImageEXT C.GPGETCOMPRESSEDTEXTUREIMAGEEXT
+ gpGetCompressedTextureSubImage C.GPGETCOMPRESSEDTEXTURESUBIMAGE
+ gpGetCoverageModulationTableNV C.GPGETCOVERAGEMODULATIONTABLENV
+ gpGetDebugMessageLog C.GPGETDEBUGMESSAGELOG
+ gpGetDebugMessageLogARB C.GPGETDEBUGMESSAGELOGARB
+ gpGetDebugMessageLogKHR C.GPGETDEBUGMESSAGELOGKHR
+ gpGetDoubleIndexedvEXT C.GPGETDOUBLEINDEXEDVEXT
+ gpGetDoublei_v C.GPGETDOUBLEI_V
+ gpGetDoublei_vEXT C.GPGETDOUBLEI_VEXT
+ gpGetDoublev C.GPGETDOUBLEV
+ gpGetError C.GPGETERROR
+ gpGetFirstPerfQueryIdINTEL C.GPGETFIRSTPERFQUERYIDINTEL
+ gpGetFloatIndexedvEXT C.GPGETFLOATINDEXEDVEXT
+ gpGetFloati_v C.GPGETFLOATI_V
+ gpGetFloati_vEXT C.GPGETFLOATI_VEXT
+ gpGetFloatv C.GPGETFLOATV
+ gpGetFragDataIndex C.GPGETFRAGDATAINDEX
+ gpGetFragDataLocation C.GPGETFRAGDATALOCATION
+ gpGetFramebufferAttachmentParameteriv C.GPGETFRAMEBUFFERATTACHMENTPARAMETERIV
+ gpGetFramebufferParameteriv C.GPGETFRAMEBUFFERPARAMETERIV
+ gpGetFramebufferParameterivEXT C.GPGETFRAMEBUFFERPARAMETERIVEXT
+ gpGetFramebufferParameterivMESA C.GPGETFRAMEBUFFERPARAMETERIVMESA
+ gpGetGraphicsResetStatus C.GPGETGRAPHICSRESETSTATUS
+ gpGetGraphicsResetStatusARB C.GPGETGRAPHICSRESETSTATUSARB
+ gpGetGraphicsResetStatusKHR C.GPGETGRAPHICSRESETSTATUSKHR
+ gpGetImageHandleARB C.GPGETIMAGEHANDLEARB
+ gpGetImageHandleNV C.GPGETIMAGEHANDLENV
+ gpGetInteger64i_v C.GPGETINTEGER64I_V
+ gpGetInteger64v C.GPGETINTEGER64V
+ gpGetIntegerIndexedvEXT C.GPGETINTEGERINDEXEDVEXT
+ gpGetIntegeri_v C.GPGETINTEGERI_V
+ gpGetIntegerui64i_vNV C.GPGETINTEGERUI64I_VNV
+ gpGetIntegerui64vNV C.GPGETINTEGERUI64VNV
+ gpGetIntegerv C.GPGETINTEGERV
+ gpGetInternalformatSampleivNV C.GPGETINTERNALFORMATSAMPLEIVNV
+ gpGetInternalformati64v C.GPGETINTERNALFORMATI64V
+ gpGetInternalformativ C.GPGETINTERNALFORMATIV
+ gpGetMemoryObjectDetachedResourcesuivNV C.GPGETMEMORYOBJECTDETACHEDRESOURCESUIVNV
+ gpGetMultiTexEnvfvEXT C.GPGETMULTITEXENVFVEXT
+ gpGetMultiTexEnvivEXT C.GPGETMULTITEXENVIVEXT
+ gpGetMultiTexGendvEXT C.GPGETMULTITEXGENDVEXT
+ gpGetMultiTexGenfvEXT C.GPGETMULTITEXGENFVEXT
+ gpGetMultiTexGenivEXT C.GPGETMULTITEXGENIVEXT
+ gpGetMultiTexImageEXT C.GPGETMULTITEXIMAGEEXT
+ gpGetMultiTexLevelParameterfvEXT C.GPGETMULTITEXLEVELPARAMETERFVEXT
+ gpGetMultiTexLevelParameterivEXT C.GPGETMULTITEXLEVELPARAMETERIVEXT
+ gpGetMultiTexParameterIivEXT C.GPGETMULTITEXPARAMETERIIVEXT
+ gpGetMultiTexParameterIuivEXT C.GPGETMULTITEXPARAMETERIUIVEXT
+ gpGetMultiTexParameterfvEXT C.GPGETMULTITEXPARAMETERFVEXT
+ gpGetMultiTexParameterivEXT C.GPGETMULTITEXPARAMETERIVEXT
+ gpGetMultisamplefv C.GPGETMULTISAMPLEFV
+ gpGetNamedBufferParameteri64v C.GPGETNAMEDBUFFERPARAMETERI64V
+ gpGetNamedBufferParameteriv C.GPGETNAMEDBUFFERPARAMETERIV
+ gpGetNamedBufferParameterivEXT C.GPGETNAMEDBUFFERPARAMETERIVEXT
+ gpGetNamedBufferParameterui64vNV C.GPGETNAMEDBUFFERPARAMETERUI64VNV
+ gpGetNamedBufferPointerv C.GPGETNAMEDBUFFERPOINTERV
+ gpGetNamedBufferPointervEXT C.GPGETNAMEDBUFFERPOINTERVEXT
+ gpGetNamedBufferSubData C.GPGETNAMEDBUFFERSUBDATA
+ gpGetNamedBufferSubDataEXT C.GPGETNAMEDBUFFERSUBDATAEXT
+ gpGetNamedFramebufferAttachmentParameteriv C.GPGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIV
+ gpGetNamedFramebufferAttachmentParameterivEXT C.GPGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXT
+ gpGetNamedFramebufferParameteriv C.GPGETNAMEDFRAMEBUFFERPARAMETERIV
+ gpGetNamedFramebufferParameterivEXT C.GPGETNAMEDFRAMEBUFFERPARAMETERIVEXT
+ gpGetNamedProgramLocalParameterIivEXT C.GPGETNAMEDPROGRAMLOCALPARAMETERIIVEXT
+ gpGetNamedProgramLocalParameterIuivEXT C.GPGETNAMEDPROGRAMLOCALPARAMETERIUIVEXT
+ gpGetNamedProgramLocalParameterdvEXT C.GPGETNAMEDPROGRAMLOCALPARAMETERDVEXT
+ gpGetNamedProgramLocalParameterfvEXT C.GPGETNAMEDPROGRAMLOCALPARAMETERFVEXT
+ gpGetNamedProgramStringEXT C.GPGETNAMEDPROGRAMSTRINGEXT
+ gpGetNamedProgramivEXT C.GPGETNAMEDPROGRAMIVEXT
+ gpGetNamedRenderbufferParameteriv C.GPGETNAMEDRENDERBUFFERPARAMETERIV
+ gpGetNamedRenderbufferParameterivEXT C.GPGETNAMEDRENDERBUFFERPARAMETERIVEXT
+ gpGetNamedStringARB C.GPGETNAMEDSTRINGARB
+ gpGetNamedStringivARB C.GPGETNAMEDSTRINGIVARB
+ gpGetNextPerfQueryIdINTEL C.GPGETNEXTPERFQUERYIDINTEL
+ gpGetObjectLabel C.GPGETOBJECTLABEL
+ gpGetObjectLabelEXT C.GPGETOBJECTLABELEXT
+ gpGetObjectLabelKHR C.GPGETOBJECTLABELKHR
+ gpGetObjectPtrLabel C.GPGETOBJECTPTRLABEL
+ gpGetObjectPtrLabelKHR C.GPGETOBJECTPTRLABELKHR
+ gpGetPathCommandsNV C.GPGETPATHCOMMANDSNV
+ gpGetPathCoordsNV C.GPGETPATHCOORDSNV
+ gpGetPathDashArrayNV C.GPGETPATHDASHARRAYNV
+ gpGetPathLengthNV C.GPGETPATHLENGTHNV
+ gpGetPathMetricRangeNV C.GPGETPATHMETRICRANGENV
+ gpGetPathMetricsNV C.GPGETPATHMETRICSNV
+ gpGetPathParameterfvNV C.GPGETPATHPARAMETERFVNV
+ gpGetPathParameterivNV C.GPGETPATHPARAMETERIVNV
+ gpGetPathSpacingNV C.GPGETPATHSPACINGNV
+ gpGetPerfCounterInfoINTEL C.GPGETPERFCOUNTERINFOINTEL
+ gpGetPerfMonitorCounterDataAMD C.GPGETPERFMONITORCOUNTERDATAAMD
+ gpGetPerfMonitorCounterInfoAMD C.GPGETPERFMONITORCOUNTERINFOAMD
+ gpGetPerfMonitorCounterStringAMD C.GPGETPERFMONITORCOUNTERSTRINGAMD
+ gpGetPerfMonitorCountersAMD C.GPGETPERFMONITORCOUNTERSAMD
+ gpGetPerfMonitorGroupStringAMD C.GPGETPERFMONITORGROUPSTRINGAMD
+ gpGetPerfMonitorGroupsAMD C.GPGETPERFMONITORGROUPSAMD
+ gpGetPerfQueryDataINTEL C.GPGETPERFQUERYDATAINTEL
+ gpGetPerfQueryIdByNameINTEL C.GPGETPERFQUERYIDBYNAMEINTEL
+ gpGetPerfQueryInfoINTEL C.GPGETPERFQUERYINFOINTEL
+ gpGetPointerIndexedvEXT C.GPGETPOINTERINDEXEDVEXT
+ gpGetPointeri_vEXT C.GPGETPOINTERI_VEXT
+ gpGetPointerv C.GPGETPOINTERV
+ gpGetPointervKHR C.GPGETPOINTERVKHR
+ gpGetProgramBinary C.GPGETPROGRAMBINARY
+ gpGetProgramInfoLog C.GPGETPROGRAMINFOLOG
+ gpGetProgramInterfaceiv C.GPGETPROGRAMINTERFACEIV
+ gpGetProgramPipelineInfoLog C.GPGETPROGRAMPIPELINEINFOLOG
+ gpGetProgramPipelineInfoLogEXT C.GPGETPROGRAMPIPELINEINFOLOGEXT
+ gpGetProgramPipelineiv C.GPGETPROGRAMPIPELINEIV
+ gpGetProgramPipelineivEXT C.GPGETPROGRAMPIPELINEIVEXT
+ gpGetProgramResourceIndex C.GPGETPROGRAMRESOURCEINDEX
+ gpGetProgramResourceLocation C.GPGETPROGRAMRESOURCELOCATION
+ gpGetProgramResourceLocationIndex C.GPGETPROGRAMRESOURCELOCATIONINDEX
+ gpGetProgramResourceName C.GPGETPROGRAMRESOURCENAME
+ gpGetProgramResourcefvNV C.GPGETPROGRAMRESOURCEFVNV
+ gpGetProgramResourceiv C.GPGETPROGRAMRESOURCEIV
+ gpGetProgramStageiv C.GPGETPROGRAMSTAGEIV
+ gpGetProgramiv C.GPGETPROGRAMIV
+ gpGetQueryBufferObjecti64v C.GPGETQUERYBUFFEROBJECTI64V
+ gpGetQueryBufferObjectiv C.GPGETQUERYBUFFEROBJECTIV
+ gpGetQueryBufferObjectui64v C.GPGETQUERYBUFFEROBJECTUI64V
+ gpGetQueryBufferObjectuiv C.GPGETQUERYBUFFEROBJECTUIV
+ gpGetQueryIndexediv C.GPGETQUERYINDEXEDIV
+ gpGetQueryObjecti64v C.GPGETQUERYOBJECTI64V
+ gpGetQueryObjectiv C.GPGETQUERYOBJECTIV
+ gpGetQueryObjectui64v C.GPGETQUERYOBJECTUI64V
+ gpGetQueryObjectuiv C.GPGETQUERYOBJECTUIV
+ gpGetQueryiv C.GPGETQUERYIV
+ gpGetRenderbufferParameteriv C.GPGETRENDERBUFFERPARAMETERIV
+ gpGetSamplerParameterIiv C.GPGETSAMPLERPARAMETERIIV
+ gpGetSamplerParameterIuiv C.GPGETSAMPLERPARAMETERIUIV
+ gpGetSamplerParameterfv C.GPGETSAMPLERPARAMETERFV
+ gpGetSamplerParameteriv C.GPGETSAMPLERPARAMETERIV
+ gpGetShaderInfoLog C.GPGETSHADERINFOLOG
+ gpGetShaderPrecisionFormat C.GPGETSHADERPRECISIONFORMAT
+ gpGetShaderSource C.GPGETSHADERSOURCE
+ gpGetShaderiv C.GPGETSHADERIV
+ gpGetShadingRateImagePaletteNV C.GPGETSHADINGRATEIMAGEPALETTENV
+ gpGetShadingRateSampleLocationivNV C.GPGETSHADINGRATESAMPLELOCATIONIVNV
+ gpGetStageIndexNV C.GPGETSTAGEINDEXNV
+ gpGetString C.GPGETSTRING
+ gpGetStringi C.GPGETSTRINGI
+ gpGetSubroutineIndex C.GPGETSUBROUTINEINDEX
+ gpGetSubroutineUniformLocation C.GPGETSUBROUTINEUNIFORMLOCATION
+ gpGetSynciv C.GPGETSYNCIV
+ gpGetTexImage C.GPGETTEXIMAGE
+ gpGetTexLevelParameterfv C.GPGETTEXLEVELPARAMETERFV
+ gpGetTexLevelParameteriv C.GPGETTEXLEVELPARAMETERIV
+ gpGetTexParameterIiv C.GPGETTEXPARAMETERIIV
+ gpGetTexParameterIuiv C.GPGETTEXPARAMETERIUIV
+ gpGetTexParameterfv C.GPGETTEXPARAMETERFV
+ gpGetTexParameteriv C.GPGETTEXPARAMETERIV
+ gpGetTextureHandleARB C.GPGETTEXTUREHANDLEARB
+ gpGetTextureHandleNV C.GPGETTEXTUREHANDLENV
+ gpGetTextureImage C.GPGETTEXTUREIMAGE
+ gpGetTextureImageEXT C.GPGETTEXTUREIMAGEEXT
+ gpGetTextureLevelParameterfv C.GPGETTEXTURELEVELPARAMETERFV
+ gpGetTextureLevelParameterfvEXT C.GPGETTEXTURELEVELPARAMETERFVEXT
+ gpGetTextureLevelParameteriv C.GPGETTEXTURELEVELPARAMETERIV
+ gpGetTextureLevelParameterivEXT C.GPGETTEXTURELEVELPARAMETERIVEXT
+ gpGetTextureParameterIiv C.GPGETTEXTUREPARAMETERIIV
+ gpGetTextureParameterIivEXT C.GPGETTEXTUREPARAMETERIIVEXT
+ gpGetTextureParameterIuiv C.GPGETTEXTUREPARAMETERIUIV
+ gpGetTextureParameterIuivEXT C.GPGETTEXTUREPARAMETERIUIVEXT
+ gpGetTextureParameterfv C.GPGETTEXTUREPARAMETERFV
+ gpGetTextureParameterfvEXT C.GPGETTEXTUREPARAMETERFVEXT
+ gpGetTextureParameteriv C.GPGETTEXTUREPARAMETERIV
+ gpGetTextureParameterivEXT C.GPGETTEXTUREPARAMETERIVEXT
+ gpGetTextureSamplerHandleARB C.GPGETTEXTURESAMPLERHANDLEARB
+ gpGetTextureSamplerHandleNV C.GPGETTEXTURESAMPLERHANDLENV
+ gpGetTextureSubImage C.GPGETTEXTURESUBIMAGE
+ gpGetTransformFeedbackVarying C.GPGETTRANSFORMFEEDBACKVARYING
+ gpGetTransformFeedbacki64_v C.GPGETTRANSFORMFEEDBACKI64_V
+ gpGetTransformFeedbacki_v C.GPGETTRANSFORMFEEDBACKI_V
+ gpGetTransformFeedbackiv C.GPGETTRANSFORMFEEDBACKIV
+ gpGetUniformBlockIndex C.GPGETUNIFORMBLOCKINDEX
+ gpGetUniformIndices C.GPGETUNIFORMINDICES
+ gpGetUniformLocation C.GPGETUNIFORMLOCATION
+ gpGetUniformSubroutineuiv C.GPGETUNIFORMSUBROUTINEUIV
+ gpGetUniformdv C.GPGETUNIFORMDV
+ gpGetUniformfv C.GPGETUNIFORMFV
+ gpGetUniformi64vARB C.GPGETUNIFORMI64VARB
+ gpGetUniformi64vNV C.GPGETUNIFORMI64VNV
+ gpGetUniformiv C.GPGETUNIFORMIV
+ gpGetUniformui64vARB C.GPGETUNIFORMUI64VARB
+ gpGetUniformui64vNV C.GPGETUNIFORMUI64VNV
+ gpGetUniformuiv C.GPGETUNIFORMUIV
+ gpGetVertexArrayIndexed64iv C.GPGETVERTEXARRAYINDEXED64IV
+ gpGetVertexArrayIndexediv C.GPGETVERTEXARRAYINDEXEDIV
+ gpGetVertexArrayIntegeri_vEXT C.GPGETVERTEXARRAYINTEGERI_VEXT
+ gpGetVertexArrayIntegervEXT C.GPGETVERTEXARRAYINTEGERVEXT
+ gpGetVertexArrayPointeri_vEXT C.GPGETVERTEXARRAYPOINTERI_VEXT
+ gpGetVertexArrayPointervEXT C.GPGETVERTEXARRAYPOINTERVEXT
+ gpGetVertexArrayiv C.GPGETVERTEXARRAYIV
+ gpGetVertexAttribIiv C.GPGETVERTEXATTRIBIIV
+ gpGetVertexAttribIuiv C.GPGETVERTEXATTRIBIUIV
+ gpGetVertexAttribLdv C.GPGETVERTEXATTRIBLDV
+ gpGetVertexAttribLi64vNV C.GPGETVERTEXATTRIBLI64VNV
+ gpGetVertexAttribLui64vARB C.GPGETVERTEXATTRIBLUI64VARB
+ gpGetVertexAttribLui64vNV C.GPGETVERTEXATTRIBLUI64VNV
+ gpGetVertexAttribPointerv C.GPGETVERTEXATTRIBPOINTERV
+ gpGetVertexAttribdv C.GPGETVERTEXATTRIBDV
+ gpGetVertexAttribfv C.GPGETVERTEXATTRIBFV
+ gpGetVertexAttribiv C.GPGETVERTEXATTRIBIV
+ gpGetVkProcAddrNV C.GPGETVKPROCADDRNV
+ gpGetnCompressedTexImageARB C.GPGETNCOMPRESSEDTEXIMAGEARB
+ gpGetnTexImageARB C.GPGETNTEXIMAGEARB
+ gpGetnUniformdvARB C.GPGETNUNIFORMDVARB
+ gpGetnUniformfv C.GPGETNUNIFORMFV
+ gpGetnUniformfvARB C.GPGETNUNIFORMFVARB
+ gpGetnUniformfvKHR C.GPGETNUNIFORMFVKHR
+ gpGetnUniformi64vARB C.GPGETNUNIFORMI64VARB
+ gpGetnUniformiv C.GPGETNUNIFORMIV
+ gpGetnUniformivARB C.GPGETNUNIFORMIVARB
+ gpGetnUniformivKHR C.GPGETNUNIFORMIVKHR
+ gpGetnUniformui64vARB C.GPGETNUNIFORMUI64VARB
+ gpGetnUniformuiv C.GPGETNUNIFORMUIV
+ gpGetnUniformuivARB C.GPGETNUNIFORMUIVARB
+ gpGetnUniformuivKHR C.GPGETNUNIFORMUIVKHR
+ gpHint C.GPHINT
+ gpIndexFormatNV C.GPINDEXFORMATNV
+ gpInsertEventMarkerEXT C.GPINSERTEVENTMARKEREXT
+ gpInterpolatePathsNV C.GPINTERPOLATEPATHSNV
+ gpInvalidateBufferData C.GPINVALIDATEBUFFERDATA
+ gpInvalidateBufferSubData C.GPINVALIDATEBUFFERSUBDATA
+ gpInvalidateFramebuffer C.GPINVALIDATEFRAMEBUFFER
+ gpInvalidateNamedFramebufferData C.GPINVALIDATENAMEDFRAMEBUFFERDATA
+ gpInvalidateNamedFramebufferSubData C.GPINVALIDATENAMEDFRAMEBUFFERSUBDATA
+ gpInvalidateSubFramebuffer C.GPINVALIDATESUBFRAMEBUFFER
+ gpInvalidateTexImage C.GPINVALIDATETEXIMAGE
+ gpInvalidateTexSubImage C.GPINVALIDATETEXSUBIMAGE
+ gpIsBuffer C.GPISBUFFER
+ gpIsBufferResidentNV C.GPISBUFFERRESIDENTNV
+ gpIsCommandListNV C.GPISCOMMANDLISTNV
+ gpIsEnabled C.GPISENABLED
+ gpIsEnabledIndexedEXT C.GPISENABLEDINDEXEDEXT
+ gpIsEnabledi C.GPISENABLEDI
+ gpIsFramebuffer C.GPISFRAMEBUFFER
+ gpIsImageHandleResidentARB C.GPISIMAGEHANDLERESIDENTARB
+ gpIsImageHandleResidentNV C.GPISIMAGEHANDLERESIDENTNV
+ gpIsNamedBufferResidentNV C.GPISNAMEDBUFFERRESIDENTNV
+ gpIsNamedStringARB C.GPISNAMEDSTRINGARB
+ gpIsPathNV C.GPISPATHNV
+ gpIsPointInFillPathNV C.GPISPOINTINFILLPATHNV
+ gpIsPointInStrokePathNV C.GPISPOINTINSTROKEPATHNV
+ gpIsProgram C.GPISPROGRAM
+ gpIsProgramPipeline C.GPISPROGRAMPIPELINE
+ gpIsProgramPipelineEXT C.GPISPROGRAMPIPELINEEXT
+ gpIsQuery C.GPISQUERY
+ gpIsRenderbuffer C.GPISRENDERBUFFER
+ gpIsSampler C.GPISSAMPLER
+ gpIsShader C.GPISSHADER
+ gpIsStateNV C.GPISSTATENV
+ gpIsSync C.GPISSYNC
+ gpIsTexture C.GPISTEXTURE
+ gpIsTextureHandleResidentARB C.GPISTEXTUREHANDLERESIDENTARB
+ gpIsTextureHandleResidentNV C.GPISTEXTUREHANDLERESIDENTNV
+ gpIsTransformFeedback C.GPISTRANSFORMFEEDBACK
+ gpIsVertexArray C.GPISVERTEXARRAY
+ gpLabelObjectEXT C.GPLABELOBJECTEXT
+ gpLineWidth C.GPLINEWIDTH
+ gpLinkProgram C.GPLINKPROGRAM
+ gpListDrawCommandsStatesClientNV C.GPLISTDRAWCOMMANDSSTATESCLIENTNV
+ gpLogicOp C.GPLOGICOP
+ gpMakeBufferNonResidentNV C.GPMAKEBUFFERNONRESIDENTNV
+ gpMakeBufferResidentNV C.GPMAKEBUFFERRESIDENTNV
+ gpMakeImageHandleNonResidentARB C.GPMAKEIMAGEHANDLENONRESIDENTARB
+ gpMakeImageHandleNonResidentNV C.GPMAKEIMAGEHANDLENONRESIDENTNV
+ gpMakeImageHandleResidentARB C.GPMAKEIMAGEHANDLERESIDENTARB
+ gpMakeImageHandleResidentNV C.GPMAKEIMAGEHANDLERESIDENTNV
+ gpMakeNamedBufferNonResidentNV C.GPMAKENAMEDBUFFERNONRESIDENTNV
+ gpMakeNamedBufferResidentNV C.GPMAKENAMEDBUFFERRESIDENTNV
+ gpMakeTextureHandleNonResidentARB C.GPMAKETEXTUREHANDLENONRESIDENTARB
+ gpMakeTextureHandleNonResidentNV C.GPMAKETEXTUREHANDLENONRESIDENTNV
+ gpMakeTextureHandleResidentARB C.GPMAKETEXTUREHANDLERESIDENTARB
+ gpMakeTextureHandleResidentNV C.GPMAKETEXTUREHANDLERESIDENTNV
+ gpMapBuffer C.GPMAPBUFFER
+ gpMapBufferRange C.GPMAPBUFFERRANGE
+ gpMapNamedBuffer C.GPMAPNAMEDBUFFER
+ gpMapNamedBufferEXT C.GPMAPNAMEDBUFFEREXT
+ gpMapNamedBufferRange C.GPMAPNAMEDBUFFERRANGE
+ gpMapNamedBufferRangeEXT C.GPMAPNAMEDBUFFERRANGEEXT
+ gpMatrixFrustumEXT C.GPMATRIXFRUSTUMEXT
+ gpMatrixLoad3x2fNV C.GPMATRIXLOAD3X2FNV
+ gpMatrixLoad3x3fNV C.GPMATRIXLOAD3X3FNV
+ gpMatrixLoadIdentityEXT C.GPMATRIXLOADIDENTITYEXT
+ gpMatrixLoadTranspose3x3fNV C.GPMATRIXLOADTRANSPOSE3X3FNV
+ gpMatrixLoadTransposedEXT C.GPMATRIXLOADTRANSPOSEDEXT
+ gpMatrixLoadTransposefEXT C.GPMATRIXLOADTRANSPOSEFEXT
+ gpMatrixLoaddEXT C.GPMATRIXLOADDEXT
+ gpMatrixLoadfEXT C.GPMATRIXLOADFEXT
+ gpMatrixMult3x2fNV C.GPMATRIXMULT3X2FNV
+ gpMatrixMult3x3fNV C.GPMATRIXMULT3X3FNV
+ gpMatrixMultTranspose3x3fNV C.GPMATRIXMULTTRANSPOSE3X3FNV
+ gpMatrixMultTransposedEXT C.GPMATRIXMULTTRANSPOSEDEXT
+ gpMatrixMultTransposefEXT C.GPMATRIXMULTTRANSPOSEFEXT
+ gpMatrixMultdEXT C.GPMATRIXMULTDEXT
+ gpMatrixMultfEXT C.GPMATRIXMULTFEXT
+ gpMatrixOrthoEXT C.GPMATRIXORTHOEXT
+ gpMatrixPopEXT C.GPMATRIXPOPEXT
+ gpMatrixPushEXT C.GPMATRIXPUSHEXT
+ gpMatrixRotatedEXT C.GPMATRIXROTATEDEXT
+ gpMatrixRotatefEXT C.GPMATRIXROTATEFEXT
+ gpMatrixScaledEXT C.GPMATRIXSCALEDEXT
+ gpMatrixScalefEXT C.GPMATRIXSCALEFEXT
+ gpMatrixTranslatedEXT C.GPMATRIXTRANSLATEDEXT
+ gpMatrixTranslatefEXT C.GPMATRIXTRANSLATEFEXT
+ gpMaxShaderCompilerThreadsARB C.GPMAXSHADERCOMPILERTHREADSARB
+ gpMaxShaderCompilerThreadsKHR C.GPMAXSHADERCOMPILERTHREADSKHR
+ gpMemoryBarrier C.GPMEMORYBARRIER
+ gpMemoryBarrierByRegion C.GPMEMORYBARRIERBYREGION
+ gpMinSampleShadingARB C.GPMINSAMPLESHADINGARB
+ gpMultiDrawArrays C.GPMULTIDRAWARRAYS
+ gpMultiDrawArraysIndirect C.GPMULTIDRAWARRAYSINDIRECT
+ gpMultiDrawArraysIndirectBindlessCountNV C.GPMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNV
+ gpMultiDrawArraysIndirectBindlessNV C.GPMULTIDRAWARRAYSINDIRECTBINDLESSNV
+ gpMultiDrawArraysIndirectCountARB C.GPMULTIDRAWARRAYSINDIRECTCOUNTARB
+ gpMultiDrawElements C.GPMULTIDRAWELEMENTS
+ gpMultiDrawElementsBaseVertex C.GPMULTIDRAWELEMENTSBASEVERTEX
+ gpMultiDrawElementsIndirect C.GPMULTIDRAWELEMENTSINDIRECT
+ gpMultiDrawElementsIndirectBindlessCountNV C.GPMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNV
+ gpMultiDrawElementsIndirectBindlessNV C.GPMULTIDRAWELEMENTSINDIRECTBINDLESSNV
+ gpMultiDrawElementsIndirectCountARB C.GPMULTIDRAWELEMENTSINDIRECTCOUNTARB
+ gpMultiDrawMeshTasksIndirectCountNV C.GPMULTIDRAWMESHTASKSINDIRECTCOUNTNV
+ gpMultiDrawMeshTasksIndirectNV C.GPMULTIDRAWMESHTASKSINDIRECTNV
+ gpMultiTexBufferEXT C.GPMULTITEXBUFFEREXT
+ gpMultiTexCoordPointerEXT C.GPMULTITEXCOORDPOINTEREXT
+ gpMultiTexEnvfEXT C.GPMULTITEXENVFEXT
+ gpMultiTexEnvfvEXT C.GPMULTITEXENVFVEXT
+ gpMultiTexEnviEXT C.GPMULTITEXENVIEXT
+ gpMultiTexEnvivEXT C.GPMULTITEXENVIVEXT
+ gpMultiTexGendEXT C.GPMULTITEXGENDEXT
+ gpMultiTexGendvEXT C.GPMULTITEXGENDVEXT
+ gpMultiTexGenfEXT C.GPMULTITEXGENFEXT
+ gpMultiTexGenfvEXT C.GPMULTITEXGENFVEXT
+ gpMultiTexGeniEXT C.GPMULTITEXGENIEXT
+ gpMultiTexGenivEXT C.GPMULTITEXGENIVEXT
+ gpMultiTexImage1DEXT C.GPMULTITEXIMAGE1DEXT
+ gpMultiTexImage2DEXT C.GPMULTITEXIMAGE2DEXT
+ gpMultiTexImage3DEXT C.GPMULTITEXIMAGE3DEXT
+ gpMultiTexParameterIivEXT C.GPMULTITEXPARAMETERIIVEXT
+ gpMultiTexParameterIuivEXT C.GPMULTITEXPARAMETERIUIVEXT
+ gpMultiTexParameterfEXT C.GPMULTITEXPARAMETERFEXT
+ gpMultiTexParameterfvEXT C.GPMULTITEXPARAMETERFVEXT
+ gpMultiTexParameteriEXT C.GPMULTITEXPARAMETERIEXT
+ gpMultiTexParameterivEXT C.GPMULTITEXPARAMETERIVEXT
+ gpMultiTexRenderbufferEXT C.GPMULTITEXRENDERBUFFEREXT
+ gpMultiTexSubImage1DEXT C.GPMULTITEXSUBIMAGE1DEXT
+ gpMultiTexSubImage2DEXT C.GPMULTITEXSUBIMAGE2DEXT
+ gpMultiTexSubImage3DEXT C.GPMULTITEXSUBIMAGE3DEXT
+ gpNamedBufferAttachMemoryNV C.GPNAMEDBUFFERATTACHMEMORYNV
+ gpNamedBufferData C.GPNAMEDBUFFERDATA
+ gpNamedBufferDataEXT C.GPNAMEDBUFFERDATAEXT
+ gpNamedBufferPageCommitmentARB C.GPNAMEDBUFFERPAGECOMMITMENTARB
+ gpNamedBufferPageCommitmentEXT C.GPNAMEDBUFFERPAGECOMMITMENTEXT
+ gpNamedBufferPageCommitmentMemNV C.GPNAMEDBUFFERPAGECOMMITMENTMEMNV
+ gpNamedBufferStorage C.GPNAMEDBUFFERSTORAGE
+ gpNamedBufferStorageEXT C.GPNAMEDBUFFERSTORAGEEXT
+ gpNamedBufferSubData C.GPNAMEDBUFFERSUBDATA
+ gpNamedBufferSubDataEXT C.GPNAMEDBUFFERSUBDATAEXT
+ gpNamedCopyBufferSubDataEXT C.GPNAMEDCOPYBUFFERSUBDATAEXT
+ gpNamedFramebufferDrawBuffer C.GPNAMEDFRAMEBUFFERDRAWBUFFER
+ gpNamedFramebufferDrawBuffers C.GPNAMEDFRAMEBUFFERDRAWBUFFERS
+ gpNamedFramebufferParameteri C.GPNAMEDFRAMEBUFFERPARAMETERI
+ gpNamedFramebufferParameteriEXT C.GPNAMEDFRAMEBUFFERPARAMETERIEXT
+ gpNamedFramebufferReadBuffer C.GPNAMEDFRAMEBUFFERREADBUFFER
+ gpNamedFramebufferRenderbuffer C.GPNAMEDFRAMEBUFFERRENDERBUFFER
+ gpNamedFramebufferRenderbufferEXT C.GPNAMEDFRAMEBUFFERRENDERBUFFEREXT
+ gpNamedFramebufferSampleLocationsfvARB C.GPNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARB
+ gpNamedFramebufferSampleLocationsfvNV C.GPNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNV
+ gpNamedFramebufferTexture C.GPNAMEDFRAMEBUFFERTEXTURE
+ gpNamedFramebufferTexture1DEXT C.GPNAMEDFRAMEBUFFERTEXTURE1DEXT
+ gpNamedFramebufferTexture2DEXT C.GPNAMEDFRAMEBUFFERTEXTURE2DEXT
+ gpNamedFramebufferTexture3DEXT C.GPNAMEDFRAMEBUFFERTEXTURE3DEXT
+ gpNamedFramebufferTextureEXT C.GPNAMEDFRAMEBUFFERTEXTUREEXT
+ gpNamedFramebufferTextureFaceEXT C.GPNAMEDFRAMEBUFFERTEXTUREFACEEXT
+ gpNamedFramebufferTextureLayer C.GPNAMEDFRAMEBUFFERTEXTURELAYER
+ gpNamedFramebufferTextureLayerEXT C.GPNAMEDFRAMEBUFFERTEXTURELAYEREXT
+ gpNamedFramebufferTextureMultiviewOVR C.GPNAMEDFRAMEBUFFERTEXTUREMULTIVIEWOVR
+ gpNamedProgramLocalParameter4dEXT C.GPNAMEDPROGRAMLOCALPARAMETER4DEXT
+ gpNamedProgramLocalParameter4dvEXT C.GPNAMEDPROGRAMLOCALPARAMETER4DVEXT
+ gpNamedProgramLocalParameter4fEXT C.GPNAMEDPROGRAMLOCALPARAMETER4FEXT
+ gpNamedProgramLocalParameter4fvEXT C.GPNAMEDPROGRAMLOCALPARAMETER4FVEXT
+ gpNamedProgramLocalParameterI4iEXT C.GPNAMEDPROGRAMLOCALPARAMETERI4IEXT
+ gpNamedProgramLocalParameterI4ivEXT C.GPNAMEDPROGRAMLOCALPARAMETERI4IVEXT
+ gpNamedProgramLocalParameterI4uiEXT C.GPNAMEDPROGRAMLOCALPARAMETERI4UIEXT
+ gpNamedProgramLocalParameterI4uivEXT C.GPNAMEDPROGRAMLOCALPARAMETERI4UIVEXT
+ gpNamedProgramLocalParameters4fvEXT C.GPNAMEDPROGRAMLOCALPARAMETERS4FVEXT
+ gpNamedProgramLocalParametersI4ivEXT C.GPNAMEDPROGRAMLOCALPARAMETERSI4IVEXT
+ gpNamedProgramLocalParametersI4uivEXT C.GPNAMEDPROGRAMLOCALPARAMETERSI4UIVEXT
+ gpNamedProgramStringEXT C.GPNAMEDPROGRAMSTRINGEXT
+ gpNamedRenderbufferStorage C.GPNAMEDRENDERBUFFERSTORAGE
+ gpNamedRenderbufferStorageEXT C.GPNAMEDRENDERBUFFERSTORAGEEXT
+ gpNamedRenderbufferStorageMultisample C.GPNAMEDRENDERBUFFERSTORAGEMULTISAMPLE
+ gpNamedRenderbufferStorageMultisampleAdvancedAMD C.GPNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMD
+ gpNamedRenderbufferStorageMultisampleCoverageEXT C.GPNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXT
+ gpNamedRenderbufferStorageMultisampleEXT C.GPNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXT
+ gpNamedStringARB C.GPNAMEDSTRINGARB
+ gpNormalFormatNV C.GPNORMALFORMATNV
+ gpObjectLabel C.GPOBJECTLABEL
+ gpObjectLabelKHR C.GPOBJECTLABELKHR
+ gpObjectPtrLabel C.GPOBJECTPTRLABEL
+ gpObjectPtrLabelKHR C.GPOBJECTPTRLABELKHR
+ gpPatchParameterfv C.GPPATCHPARAMETERFV
+ gpPatchParameteri C.GPPATCHPARAMETERI
+ gpPathCommandsNV C.GPPATHCOMMANDSNV
+ gpPathCoordsNV C.GPPATHCOORDSNV
+ gpPathCoverDepthFuncNV C.GPPATHCOVERDEPTHFUNCNV
+ gpPathDashArrayNV C.GPPATHDASHARRAYNV
+ gpPathGlyphIndexArrayNV C.GPPATHGLYPHINDEXARRAYNV
+ gpPathGlyphIndexRangeNV C.GPPATHGLYPHINDEXRANGENV
+ gpPathGlyphRangeNV C.GPPATHGLYPHRANGENV
+ gpPathGlyphsNV C.GPPATHGLYPHSNV
+ gpPathMemoryGlyphIndexArrayNV C.GPPATHMEMORYGLYPHINDEXARRAYNV
+ gpPathParameterfNV C.GPPATHPARAMETERFNV
+ gpPathParameterfvNV C.GPPATHPARAMETERFVNV
+ gpPathParameteriNV C.GPPATHPARAMETERINV
+ gpPathParameterivNV C.GPPATHPARAMETERIVNV
+ gpPathStencilDepthOffsetNV C.GPPATHSTENCILDEPTHOFFSETNV
+ gpPathStencilFuncNV C.GPPATHSTENCILFUNCNV
+ gpPathStringNV C.GPPATHSTRINGNV
+ gpPathSubCommandsNV C.GPPATHSUBCOMMANDSNV
+ gpPathSubCoordsNV C.GPPATHSUBCOORDSNV
+ gpPauseTransformFeedback C.GPPAUSETRANSFORMFEEDBACK
+ gpPixelStoref C.GPPIXELSTOREF
+ gpPixelStorei C.GPPIXELSTOREI
+ gpPointAlongPathNV C.GPPOINTALONGPATHNV
+ gpPointParameterf C.GPPOINTPARAMETERF
+ gpPointParameterfv C.GPPOINTPARAMETERFV
+ gpPointParameteri C.GPPOINTPARAMETERI
+ gpPointParameteriv C.GPPOINTPARAMETERIV
+ gpPointSize C.GPPOINTSIZE
+ gpPolygonMode C.GPPOLYGONMODE
+ gpPolygonOffset C.GPPOLYGONOFFSET
+ gpPolygonOffsetClamp C.GPPOLYGONOFFSETCLAMP
+ gpPolygonOffsetClampEXT C.GPPOLYGONOFFSETCLAMPEXT
+ gpPopDebugGroup C.GPPOPDEBUGGROUP
+ gpPopDebugGroupKHR C.GPPOPDEBUGGROUPKHR
+ gpPopGroupMarkerEXT C.GPPOPGROUPMARKEREXT
+ gpPrimitiveBoundingBoxARB C.GPPRIMITIVEBOUNDINGBOXARB
+ gpPrimitiveRestartIndex C.GPPRIMITIVERESTARTINDEX
+ gpProgramBinary C.GPPROGRAMBINARY
+ gpProgramParameteri C.GPPROGRAMPARAMETERI
+ gpProgramParameteriARB C.GPPROGRAMPARAMETERIARB
+ gpProgramParameteriEXT C.GPPROGRAMPARAMETERIEXT
+ gpProgramPathFragmentInputGenNV C.GPPROGRAMPATHFRAGMENTINPUTGENNV
+ gpProgramUniform1d C.GPPROGRAMUNIFORM1D
+ gpProgramUniform1dEXT C.GPPROGRAMUNIFORM1DEXT
+ gpProgramUniform1dv C.GPPROGRAMUNIFORM1DV
+ gpProgramUniform1dvEXT C.GPPROGRAMUNIFORM1DVEXT
+ gpProgramUniform1f C.GPPROGRAMUNIFORM1F
+ gpProgramUniform1fEXT C.GPPROGRAMUNIFORM1FEXT
+ gpProgramUniform1fv C.GPPROGRAMUNIFORM1FV
+ gpProgramUniform1fvEXT C.GPPROGRAMUNIFORM1FVEXT
+ gpProgramUniform1i C.GPPROGRAMUNIFORM1I
+ gpProgramUniform1i64ARB C.GPPROGRAMUNIFORM1I64ARB
+ gpProgramUniform1i64NV C.GPPROGRAMUNIFORM1I64NV
+ gpProgramUniform1i64vARB C.GPPROGRAMUNIFORM1I64VARB
+ gpProgramUniform1i64vNV C.GPPROGRAMUNIFORM1I64VNV
+ gpProgramUniform1iEXT C.GPPROGRAMUNIFORM1IEXT
+ gpProgramUniform1iv C.GPPROGRAMUNIFORM1IV
+ gpProgramUniform1ivEXT C.GPPROGRAMUNIFORM1IVEXT
+ gpProgramUniform1ui C.GPPROGRAMUNIFORM1UI
+ gpProgramUniform1ui64ARB C.GPPROGRAMUNIFORM1UI64ARB
+ gpProgramUniform1ui64NV C.GPPROGRAMUNIFORM1UI64NV
+ gpProgramUniform1ui64vARB C.GPPROGRAMUNIFORM1UI64VARB
+ gpProgramUniform1ui64vNV C.GPPROGRAMUNIFORM1UI64VNV
+ gpProgramUniform1uiEXT C.GPPROGRAMUNIFORM1UIEXT
+ gpProgramUniform1uiv C.GPPROGRAMUNIFORM1UIV
+ gpProgramUniform1uivEXT C.GPPROGRAMUNIFORM1UIVEXT
+ gpProgramUniform2d C.GPPROGRAMUNIFORM2D
+ gpProgramUniform2dEXT C.GPPROGRAMUNIFORM2DEXT
+ gpProgramUniform2dv C.GPPROGRAMUNIFORM2DV
+ gpProgramUniform2dvEXT C.GPPROGRAMUNIFORM2DVEXT
+ gpProgramUniform2f C.GPPROGRAMUNIFORM2F
+ gpProgramUniform2fEXT C.GPPROGRAMUNIFORM2FEXT
+ gpProgramUniform2fv C.GPPROGRAMUNIFORM2FV
+ gpProgramUniform2fvEXT C.GPPROGRAMUNIFORM2FVEXT
+ gpProgramUniform2i C.GPPROGRAMUNIFORM2I
+ gpProgramUniform2i64ARB C.GPPROGRAMUNIFORM2I64ARB
+ gpProgramUniform2i64NV C.GPPROGRAMUNIFORM2I64NV
+ gpProgramUniform2i64vARB C.GPPROGRAMUNIFORM2I64VARB
+ gpProgramUniform2i64vNV C.GPPROGRAMUNIFORM2I64VNV
+ gpProgramUniform2iEXT C.GPPROGRAMUNIFORM2IEXT
+ gpProgramUniform2iv C.GPPROGRAMUNIFORM2IV
+ gpProgramUniform2ivEXT C.GPPROGRAMUNIFORM2IVEXT
+ gpProgramUniform2ui C.GPPROGRAMUNIFORM2UI
+ gpProgramUniform2ui64ARB C.GPPROGRAMUNIFORM2UI64ARB
+ gpProgramUniform2ui64NV C.GPPROGRAMUNIFORM2UI64NV
+ gpProgramUniform2ui64vARB C.GPPROGRAMUNIFORM2UI64VARB
+ gpProgramUniform2ui64vNV C.GPPROGRAMUNIFORM2UI64VNV
+ gpProgramUniform2uiEXT C.GPPROGRAMUNIFORM2UIEXT
+ gpProgramUniform2uiv C.GPPROGRAMUNIFORM2UIV
+ gpProgramUniform2uivEXT C.GPPROGRAMUNIFORM2UIVEXT
+ gpProgramUniform3d C.GPPROGRAMUNIFORM3D
+ gpProgramUniform3dEXT C.GPPROGRAMUNIFORM3DEXT
+ gpProgramUniform3dv C.GPPROGRAMUNIFORM3DV
+ gpProgramUniform3dvEXT C.GPPROGRAMUNIFORM3DVEXT
+ gpProgramUniform3f C.GPPROGRAMUNIFORM3F
+ gpProgramUniform3fEXT C.GPPROGRAMUNIFORM3FEXT
+ gpProgramUniform3fv C.GPPROGRAMUNIFORM3FV
+ gpProgramUniform3fvEXT C.GPPROGRAMUNIFORM3FVEXT
+ gpProgramUniform3i C.GPPROGRAMUNIFORM3I
+ gpProgramUniform3i64ARB C.GPPROGRAMUNIFORM3I64ARB
+ gpProgramUniform3i64NV C.GPPROGRAMUNIFORM3I64NV
+ gpProgramUniform3i64vARB C.GPPROGRAMUNIFORM3I64VARB
+ gpProgramUniform3i64vNV C.GPPROGRAMUNIFORM3I64VNV
+ gpProgramUniform3iEXT C.GPPROGRAMUNIFORM3IEXT
+ gpProgramUniform3iv C.GPPROGRAMUNIFORM3IV
+ gpProgramUniform3ivEXT C.GPPROGRAMUNIFORM3IVEXT
+ gpProgramUniform3ui C.GPPROGRAMUNIFORM3UI
+ gpProgramUniform3ui64ARB C.GPPROGRAMUNIFORM3UI64ARB
+ gpProgramUniform3ui64NV C.GPPROGRAMUNIFORM3UI64NV
+ gpProgramUniform3ui64vARB C.GPPROGRAMUNIFORM3UI64VARB
+ gpProgramUniform3ui64vNV C.GPPROGRAMUNIFORM3UI64VNV
+ gpProgramUniform3uiEXT C.GPPROGRAMUNIFORM3UIEXT
+ gpProgramUniform3uiv C.GPPROGRAMUNIFORM3UIV
+ gpProgramUniform3uivEXT C.GPPROGRAMUNIFORM3UIVEXT
+ gpProgramUniform4d C.GPPROGRAMUNIFORM4D
+ gpProgramUniform4dEXT C.GPPROGRAMUNIFORM4DEXT
+ gpProgramUniform4dv C.GPPROGRAMUNIFORM4DV
+ gpProgramUniform4dvEXT C.GPPROGRAMUNIFORM4DVEXT
+ gpProgramUniform4f C.GPPROGRAMUNIFORM4F
+ gpProgramUniform4fEXT C.GPPROGRAMUNIFORM4FEXT
+ gpProgramUniform4fv C.GPPROGRAMUNIFORM4FV
+ gpProgramUniform4fvEXT C.GPPROGRAMUNIFORM4FVEXT
+ gpProgramUniform4i C.GPPROGRAMUNIFORM4I
+ gpProgramUniform4i64ARB C.GPPROGRAMUNIFORM4I64ARB
+ gpProgramUniform4i64NV C.GPPROGRAMUNIFORM4I64NV
+ gpProgramUniform4i64vARB C.GPPROGRAMUNIFORM4I64VARB
+ gpProgramUniform4i64vNV C.GPPROGRAMUNIFORM4I64VNV
+ gpProgramUniform4iEXT C.GPPROGRAMUNIFORM4IEXT
+ gpProgramUniform4iv C.GPPROGRAMUNIFORM4IV
+ gpProgramUniform4ivEXT C.GPPROGRAMUNIFORM4IVEXT
+ gpProgramUniform4ui C.GPPROGRAMUNIFORM4UI
+ gpProgramUniform4ui64ARB C.GPPROGRAMUNIFORM4UI64ARB
+ gpProgramUniform4ui64NV C.GPPROGRAMUNIFORM4UI64NV
+ gpProgramUniform4ui64vARB C.GPPROGRAMUNIFORM4UI64VARB
+ gpProgramUniform4ui64vNV C.GPPROGRAMUNIFORM4UI64VNV
+ gpProgramUniform4uiEXT C.GPPROGRAMUNIFORM4UIEXT
+ gpProgramUniform4uiv C.GPPROGRAMUNIFORM4UIV
+ gpProgramUniform4uivEXT C.GPPROGRAMUNIFORM4UIVEXT
+ gpProgramUniformHandleui64ARB C.GPPROGRAMUNIFORMHANDLEUI64ARB
+ gpProgramUniformHandleui64NV C.GPPROGRAMUNIFORMHANDLEUI64NV
+ gpProgramUniformHandleui64vARB C.GPPROGRAMUNIFORMHANDLEUI64VARB
+ gpProgramUniformHandleui64vNV C.GPPROGRAMUNIFORMHANDLEUI64VNV
+ gpProgramUniformMatrix2dv C.GPPROGRAMUNIFORMMATRIX2DV
+ gpProgramUniformMatrix2dvEXT C.GPPROGRAMUNIFORMMATRIX2DVEXT
+ gpProgramUniformMatrix2fv C.GPPROGRAMUNIFORMMATRIX2FV
+ gpProgramUniformMatrix2fvEXT C.GPPROGRAMUNIFORMMATRIX2FVEXT
+ gpProgramUniformMatrix2x3dv C.GPPROGRAMUNIFORMMATRIX2X3DV
+ gpProgramUniformMatrix2x3dvEXT C.GPPROGRAMUNIFORMMATRIX2X3DVEXT
+ gpProgramUniformMatrix2x3fv C.GPPROGRAMUNIFORMMATRIX2X3FV
+ gpProgramUniformMatrix2x3fvEXT C.GPPROGRAMUNIFORMMATRIX2X3FVEXT
+ gpProgramUniformMatrix2x4dv C.GPPROGRAMUNIFORMMATRIX2X4DV
+ gpProgramUniformMatrix2x4dvEXT C.GPPROGRAMUNIFORMMATRIX2X4DVEXT
+ gpProgramUniformMatrix2x4fv C.GPPROGRAMUNIFORMMATRIX2X4FV
+ gpProgramUniformMatrix2x4fvEXT C.GPPROGRAMUNIFORMMATRIX2X4FVEXT
+ gpProgramUniformMatrix3dv C.GPPROGRAMUNIFORMMATRIX3DV
+ gpProgramUniformMatrix3dvEXT C.GPPROGRAMUNIFORMMATRIX3DVEXT
+ gpProgramUniformMatrix3fv C.GPPROGRAMUNIFORMMATRIX3FV
+ gpProgramUniformMatrix3fvEXT C.GPPROGRAMUNIFORMMATRIX3FVEXT
+ gpProgramUniformMatrix3x2dv C.GPPROGRAMUNIFORMMATRIX3X2DV
+ gpProgramUniformMatrix3x2dvEXT C.GPPROGRAMUNIFORMMATRIX3X2DVEXT
+ gpProgramUniformMatrix3x2fv C.GPPROGRAMUNIFORMMATRIX3X2FV
+ gpProgramUniformMatrix3x2fvEXT C.GPPROGRAMUNIFORMMATRIX3X2FVEXT
+ gpProgramUniformMatrix3x4dv C.GPPROGRAMUNIFORMMATRIX3X4DV
+ gpProgramUniformMatrix3x4dvEXT C.GPPROGRAMUNIFORMMATRIX3X4DVEXT
+ gpProgramUniformMatrix3x4fv C.GPPROGRAMUNIFORMMATRIX3X4FV
+ gpProgramUniformMatrix3x4fvEXT C.GPPROGRAMUNIFORMMATRIX3X4FVEXT
+ gpProgramUniformMatrix4dv C.GPPROGRAMUNIFORMMATRIX4DV
+ gpProgramUniformMatrix4dvEXT C.GPPROGRAMUNIFORMMATRIX4DVEXT
+ gpProgramUniformMatrix4fv C.GPPROGRAMUNIFORMMATRIX4FV
+ gpProgramUniformMatrix4fvEXT C.GPPROGRAMUNIFORMMATRIX4FVEXT
+ gpProgramUniformMatrix4x2dv C.GPPROGRAMUNIFORMMATRIX4X2DV
+ gpProgramUniformMatrix4x2dvEXT C.GPPROGRAMUNIFORMMATRIX4X2DVEXT
+ gpProgramUniformMatrix4x2fv C.GPPROGRAMUNIFORMMATRIX4X2FV
+ gpProgramUniformMatrix4x2fvEXT C.GPPROGRAMUNIFORMMATRIX4X2FVEXT
+ gpProgramUniformMatrix4x3dv C.GPPROGRAMUNIFORMMATRIX4X3DV
+ gpProgramUniformMatrix4x3dvEXT C.GPPROGRAMUNIFORMMATRIX4X3DVEXT
+ gpProgramUniformMatrix4x3fv C.GPPROGRAMUNIFORMMATRIX4X3FV
+ gpProgramUniformMatrix4x3fvEXT C.GPPROGRAMUNIFORMMATRIX4X3FVEXT
+ gpProgramUniformui64NV C.GPPROGRAMUNIFORMUI64NV
+ gpProgramUniformui64vNV C.GPPROGRAMUNIFORMUI64VNV
+ gpProvokingVertex C.GPPROVOKINGVERTEX
+ gpPushClientAttribDefaultEXT C.GPPUSHCLIENTATTRIBDEFAULTEXT
+ gpPushDebugGroup C.GPPUSHDEBUGGROUP
+ gpPushDebugGroupKHR C.GPPUSHDEBUGGROUPKHR
+ gpPushGroupMarkerEXT C.GPPUSHGROUPMARKEREXT
+ gpQueryCounter C.GPQUERYCOUNTER
+ gpRasterSamplesEXT C.GPRASTERSAMPLESEXT
+ gpReadBuffer C.GPREADBUFFER
+ gpReadPixels C.GPREADPIXELS
+ gpReadnPixels C.GPREADNPIXELS
+ gpReadnPixelsARB C.GPREADNPIXELSARB
+ gpReadnPixelsKHR C.GPREADNPIXELSKHR
+ gpReleaseShaderCompiler C.GPRELEASESHADERCOMPILER
+ gpRenderbufferStorage C.GPRENDERBUFFERSTORAGE
+ gpRenderbufferStorageMultisample C.GPRENDERBUFFERSTORAGEMULTISAMPLE
+ gpRenderbufferStorageMultisampleAdvancedAMD C.GPRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMD
+ gpRenderbufferStorageMultisampleCoverageNV C.GPRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENV
+ gpResetMemoryObjectParameterNV C.GPRESETMEMORYOBJECTPARAMETERNV
+ gpResolveDepthValuesNV C.GPRESOLVEDEPTHVALUESNV
+ gpResumeTransformFeedback C.GPRESUMETRANSFORMFEEDBACK
+ gpSampleCoverage C.GPSAMPLECOVERAGE
+ gpSampleMaski C.GPSAMPLEMASKI
+ gpSamplerParameterIiv C.GPSAMPLERPARAMETERIIV
+ gpSamplerParameterIuiv C.GPSAMPLERPARAMETERIUIV
+ gpSamplerParameterf C.GPSAMPLERPARAMETERF
+ gpSamplerParameterfv C.GPSAMPLERPARAMETERFV
+ gpSamplerParameteri C.GPSAMPLERPARAMETERI
+ gpSamplerParameteriv C.GPSAMPLERPARAMETERIV
+ gpScissor C.GPSCISSOR
+ gpScissorArrayv C.GPSCISSORARRAYV
+ gpScissorExclusiveArrayvNV C.GPSCISSOREXCLUSIVEARRAYVNV
+ gpScissorExclusiveNV C.GPSCISSOREXCLUSIVENV
+ gpScissorIndexed C.GPSCISSORINDEXED
+ gpScissorIndexedv C.GPSCISSORINDEXEDV
+ gpSecondaryColorFormatNV C.GPSECONDARYCOLORFORMATNV
+ gpSelectPerfMonitorCountersAMD C.GPSELECTPERFMONITORCOUNTERSAMD
+ gpShaderBinary C.GPSHADERBINARY
+ gpShaderSource C.GPSHADERSOURCE
+ gpShaderStorageBlockBinding C.GPSHADERSTORAGEBLOCKBINDING
+ gpShadingRateImageBarrierNV C.GPSHADINGRATEIMAGEBARRIERNV
+ gpShadingRateImagePaletteNV C.GPSHADINGRATEIMAGEPALETTENV
+ gpShadingRateSampleOrderCustomNV C.GPSHADINGRATESAMPLEORDERCUSTOMNV
+ gpShadingRateSampleOrderNV C.GPSHADINGRATESAMPLEORDERNV
+ gpSignalVkFenceNV C.GPSIGNALVKFENCENV
+ gpSignalVkSemaphoreNV C.GPSIGNALVKSEMAPHORENV
+ gpSpecializeShaderARB C.GPSPECIALIZESHADERARB
+ gpStateCaptureNV C.GPSTATECAPTURENV
+ gpStencilFillPathInstancedNV C.GPSTENCILFILLPATHINSTANCEDNV
+ gpStencilFillPathNV C.GPSTENCILFILLPATHNV
+ gpStencilFunc C.GPSTENCILFUNC
+ gpStencilFuncSeparate C.GPSTENCILFUNCSEPARATE
+ gpStencilMask C.GPSTENCILMASK
+ gpStencilMaskSeparate C.GPSTENCILMASKSEPARATE
+ gpStencilOp C.GPSTENCILOP
+ gpStencilOpSeparate C.GPSTENCILOPSEPARATE
+ gpStencilStrokePathInstancedNV C.GPSTENCILSTROKEPATHINSTANCEDNV
+ gpStencilStrokePathNV C.GPSTENCILSTROKEPATHNV
+ gpStencilThenCoverFillPathInstancedNV C.GPSTENCILTHENCOVERFILLPATHINSTANCEDNV
+ gpStencilThenCoverFillPathNV C.GPSTENCILTHENCOVERFILLPATHNV
+ gpStencilThenCoverStrokePathInstancedNV C.GPSTENCILTHENCOVERSTROKEPATHINSTANCEDNV
+ gpStencilThenCoverStrokePathNV C.GPSTENCILTHENCOVERSTROKEPATHNV
+ gpSubpixelPrecisionBiasNV C.GPSUBPIXELPRECISIONBIASNV
+ gpTexAttachMemoryNV C.GPTEXATTACHMEMORYNV
+ gpTexBuffer C.GPTEXBUFFER
+ gpTexBufferARB C.GPTEXBUFFERARB
+ gpTexBufferRange C.GPTEXBUFFERRANGE
+ gpTexCoordFormatNV C.GPTEXCOORDFORMATNV
+ gpTexImage1D C.GPTEXIMAGE1D
+ gpTexImage2D C.GPTEXIMAGE2D
+ gpTexImage2DMultisample C.GPTEXIMAGE2DMULTISAMPLE
+ gpTexImage3D C.GPTEXIMAGE3D
+ gpTexImage3DMultisample C.GPTEXIMAGE3DMULTISAMPLE
+ gpTexPageCommitmentARB C.GPTEXPAGECOMMITMENTARB
+ gpTexPageCommitmentMemNV C.GPTEXPAGECOMMITMENTMEMNV
+ gpTexParameterIiv C.GPTEXPARAMETERIIV
+ gpTexParameterIuiv C.GPTEXPARAMETERIUIV
+ gpTexParameterf C.GPTEXPARAMETERF
+ gpTexParameterfv C.GPTEXPARAMETERFV
+ gpTexParameteri C.GPTEXPARAMETERI
+ gpTexParameteriv C.GPTEXPARAMETERIV
+ gpTexStorage1D C.GPTEXSTORAGE1D
+ gpTexStorage1DEXT C.GPTEXSTORAGE1DEXT
+ gpTexStorage2D C.GPTEXSTORAGE2D
+ gpTexStorage2DEXT C.GPTEXSTORAGE2DEXT
+ gpTexStorage2DMultisample C.GPTEXSTORAGE2DMULTISAMPLE
+ gpTexStorage3D C.GPTEXSTORAGE3D
+ gpTexStorage3DEXT C.GPTEXSTORAGE3DEXT
+ gpTexStorage3DMultisample C.GPTEXSTORAGE3DMULTISAMPLE
+ gpTexSubImage1D C.GPTEXSUBIMAGE1D
+ gpTexSubImage2D C.GPTEXSUBIMAGE2D
+ gpTexSubImage3D C.GPTEXSUBIMAGE3D
+ gpTextureAttachMemoryNV C.GPTEXTUREATTACHMEMORYNV
+ gpTextureBarrier C.GPTEXTUREBARRIER
+ gpTextureBarrierNV C.GPTEXTUREBARRIERNV
+ gpTextureBuffer C.GPTEXTUREBUFFER
+ gpTextureBufferEXT C.GPTEXTUREBUFFEREXT
+ gpTextureBufferRange C.GPTEXTUREBUFFERRANGE
+ gpTextureBufferRangeEXT C.GPTEXTUREBUFFERRANGEEXT
+ gpTextureImage1DEXT C.GPTEXTUREIMAGE1DEXT
+ gpTextureImage2DEXT C.GPTEXTUREIMAGE2DEXT
+ gpTextureImage3DEXT C.GPTEXTUREIMAGE3DEXT
+ gpTexturePageCommitmentEXT C.GPTEXTUREPAGECOMMITMENTEXT
+ gpTexturePageCommitmentMemNV C.GPTEXTUREPAGECOMMITMENTMEMNV
+ gpTextureParameterIiv C.GPTEXTUREPARAMETERIIV
+ gpTextureParameterIivEXT C.GPTEXTUREPARAMETERIIVEXT
+ gpTextureParameterIuiv C.GPTEXTUREPARAMETERIUIV
+ gpTextureParameterIuivEXT C.GPTEXTUREPARAMETERIUIVEXT
+ gpTextureParameterf C.GPTEXTUREPARAMETERF
+ gpTextureParameterfEXT C.GPTEXTUREPARAMETERFEXT
+ gpTextureParameterfv C.GPTEXTUREPARAMETERFV
+ gpTextureParameterfvEXT C.GPTEXTUREPARAMETERFVEXT
+ gpTextureParameteri C.GPTEXTUREPARAMETERI
+ gpTextureParameteriEXT C.GPTEXTUREPARAMETERIEXT
+ gpTextureParameteriv C.GPTEXTUREPARAMETERIV
+ gpTextureParameterivEXT C.GPTEXTUREPARAMETERIVEXT
+ gpTextureRenderbufferEXT C.GPTEXTURERENDERBUFFEREXT
+ gpTextureStorage1D C.GPTEXTURESTORAGE1D
+ gpTextureStorage1DEXT C.GPTEXTURESTORAGE1DEXT
+ gpTextureStorage2D C.GPTEXTURESTORAGE2D
+ gpTextureStorage2DEXT C.GPTEXTURESTORAGE2DEXT
+ gpTextureStorage2DMultisample C.GPTEXTURESTORAGE2DMULTISAMPLE
+ gpTextureStorage2DMultisampleEXT C.GPTEXTURESTORAGE2DMULTISAMPLEEXT
+ gpTextureStorage3D C.GPTEXTURESTORAGE3D
+ gpTextureStorage3DEXT C.GPTEXTURESTORAGE3DEXT
+ gpTextureStorage3DMultisample C.GPTEXTURESTORAGE3DMULTISAMPLE
+ gpTextureStorage3DMultisampleEXT C.GPTEXTURESTORAGE3DMULTISAMPLEEXT
+ gpTextureSubImage1D C.GPTEXTURESUBIMAGE1D
+ gpTextureSubImage1DEXT C.GPTEXTURESUBIMAGE1DEXT
+ gpTextureSubImage2D C.GPTEXTURESUBIMAGE2D
+ gpTextureSubImage2DEXT C.GPTEXTURESUBIMAGE2DEXT
+ gpTextureSubImage3D C.GPTEXTURESUBIMAGE3D
+ gpTextureSubImage3DEXT C.GPTEXTURESUBIMAGE3DEXT
+ gpTextureView C.GPTEXTUREVIEW
+ gpTransformFeedbackBufferBase C.GPTRANSFORMFEEDBACKBUFFERBASE
+ gpTransformFeedbackBufferRange C.GPTRANSFORMFEEDBACKBUFFERRANGE
+ gpTransformFeedbackVaryings C.GPTRANSFORMFEEDBACKVARYINGS
+ gpTransformPathNV C.GPTRANSFORMPATHNV
+ gpUniform1d C.GPUNIFORM1D
+ gpUniform1dv C.GPUNIFORM1DV
+ gpUniform1f C.GPUNIFORM1F
+ gpUniform1fv C.GPUNIFORM1FV
+ gpUniform1i C.GPUNIFORM1I
+ gpUniform1i64ARB C.GPUNIFORM1I64ARB
+ gpUniform1i64NV C.GPUNIFORM1I64NV
+ gpUniform1i64vARB C.GPUNIFORM1I64VARB
+ gpUniform1i64vNV C.GPUNIFORM1I64VNV
+ gpUniform1iv C.GPUNIFORM1IV
+ gpUniform1ui C.GPUNIFORM1UI
+ gpUniform1ui64ARB C.GPUNIFORM1UI64ARB
+ gpUniform1ui64NV C.GPUNIFORM1UI64NV
+ gpUniform1ui64vARB C.GPUNIFORM1UI64VARB
+ gpUniform1ui64vNV C.GPUNIFORM1UI64VNV
+ gpUniform1uiv C.GPUNIFORM1UIV
+ gpUniform2d C.GPUNIFORM2D
+ gpUniform2dv C.GPUNIFORM2DV
+ gpUniform2f C.GPUNIFORM2F
+ gpUniform2fv C.GPUNIFORM2FV
+ gpUniform2i C.GPUNIFORM2I
+ gpUniform2i64ARB C.GPUNIFORM2I64ARB
+ gpUniform2i64NV C.GPUNIFORM2I64NV
+ gpUniform2i64vARB C.GPUNIFORM2I64VARB
+ gpUniform2i64vNV C.GPUNIFORM2I64VNV
+ gpUniform2iv C.GPUNIFORM2IV
+ gpUniform2ui C.GPUNIFORM2UI
+ gpUniform2ui64ARB C.GPUNIFORM2UI64ARB
+ gpUniform2ui64NV C.GPUNIFORM2UI64NV
+ gpUniform2ui64vARB C.GPUNIFORM2UI64VARB
+ gpUniform2ui64vNV C.GPUNIFORM2UI64VNV
+ gpUniform2uiv C.GPUNIFORM2UIV
+ gpUniform3d C.GPUNIFORM3D
+ gpUniform3dv C.GPUNIFORM3DV
+ gpUniform3f C.GPUNIFORM3F
+ gpUniform3fv C.GPUNIFORM3FV
+ gpUniform3i C.GPUNIFORM3I
+ gpUniform3i64ARB C.GPUNIFORM3I64ARB
+ gpUniform3i64NV C.GPUNIFORM3I64NV
+ gpUniform3i64vARB C.GPUNIFORM3I64VARB
+ gpUniform3i64vNV C.GPUNIFORM3I64VNV
+ gpUniform3iv C.GPUNIFORM3IV
+ gpUniform3ui C.GPUNIFORM3UI
+ gpUniform3ui64ARB C.GPUNIFORM3UI64ARB
+ gpUniform3ui64NV C.GPUNIFORM3UI64NV
+ gpUniform3ui64vARB C.GPUNIFORM3UI64VARB
+ gpUniform3ui64vNV C.GPUNIFORM3UI64VNV
+ gpUniform3uiv C.GPUNIFORM3UIV
+ gpUniform4d C.GPUNIFORM4D
+ gpUniform4dv C.GPUNIFORM4DV
+ gpUniform4f C.GPUNIFORM4F
+ gpUniform4fv C.GPUNIFORM4FV
+ gpUniform4i C.GPUNIFORM4I
+ gpUniform4i64ARB C.GPUNIFORM4I64ARB
+ gpUniform4i64NV C.GPUNIFORM4I64NV
+ gpUniform4i64vARB C.GPUNIFORM4I64VARB
+ gpUniform4i64vNV C.GPUNIFORM4I64VNV
+ gpUniform4iv C.GPUNIFORM4IV
+ gpUniform4ui C.GPUNIFORM4UI
+ gpUniform4ui64ARB C.GPUNIFORM4UI64ARB
+ gpUniform4ui64NV C.GPUNIFORM4UI64NV
+ gpUniform4ui64vARB C.GPUNIFORM4UI64VARB
+ gpUniform4ui64vNV C.GPUNIFORM4UI64VNV
+ gpUniform4uiv C.GPUNIFORM4UIV
+ gpUniformBlockBinding C.GPUNIFORMBLOCKBINDING
+ gpUniformHandleui64ARB C.GPUNIFORMHANDLEUI64ARB
+ gpUniformHandleui64NV C.GPUNIFORMHANDLEUI64NV
+ gpUniformHandleui64vARB C.GPUNIFORMHANDLEUI64VARB
+ gpUniformHandleui64vNV C.GPUNIFORMHANDLEUI64VNV
+ gpUniformMatrix2dv C.GPUNIFORMMATRIX2DV
+ gpUniformMatrix2fv C.GPUNIFORMMATRIX2FV
+ gpUniformMatrix2x3dv C.GPUNIFORMMATRIX2X3DV
+ gpUniformMatrix2x3fv C.GPUNIFORMMATRIX2X3FV
+ gpUniformMatrix2x4dv C.GPUNIFORMMATRIX2X4DV
+ gpUniformMatrix2x4fv C.GPUNIFORMMATRIX2X4FV
+ gpUniformMatrix3dv C.GPUNIFORMMATRIX3DV
+ gpUniformMatrix3fv C.GPUNIFORMMATRIX3FV
+ gpUniformMatrix3x2dv C.GPUNIFORMMATRIX3X2DV
+ gpUniformMatrix3x2fv C.GPUNIFORMMATRIX3X2FV
+ gpUniformMatrix3x4dv C.GPUNIFORMMATRIX3X4DV
+ gpUniformMatrix3x4fv C.GPUNIFORMMATRIX3X4FV
+ gpUniformMatrix4dv C.GPUNIFORMMATRIX4DV
+ gpUniformMatrix4fv C.GPUNIFORMMATRIX4FV
+ gpUniformMatrix4x2dv C.GPUNIFORMMATRIX4X2DV
+ gpUniformMatrix4x2fv C.GPUNIFORMMATRIX4X2FV
+ gpUniformMatrix4x3dv C.GPUNIFORMMATRIX4X3DV
+ gpUniformMatrix4x3fv C.GPUNIFORMMATRIX4X3FV
+ gpUniformSubroutinesuiv C.GPUNIFORMSUBROUTINESUIV
+ gpUniformui64NV C.GPUNIFORMUI64NV
+ gpUniformui64vNV C.GPUNIFORMUI64VNV
+ gpUnmapBuffer C.GPUNMAPBUFFER
+ gpUnmapNamedBuffer C.GPUNMAPNAMEDBUFFER
+ gpUnmapNamedBufferEXT C.GPUNMAPNAMEDBUFFEREXT
+ gpUseProgram C.GPUSEPROGRAM
+ gpUseProgramStages C.GPUSEPROGRAMSTAGES
+ gpUseProgramStagesEXT C.GPUSEPROGRAMSTAGESEXT
+ gpUseShaderProgramEXT C.GPUSESHADERPROGRAMEXT
+ gpValidateProgram C.GPVALIDATEPROGRAM
+ gpValidateProgramPipeline C.GPVALIDATEPROGRAMPIPELINE
+ gpValidateProgramPipelineEXT C.GPVALIDATEPROGRAMPIPELINEEXT
+ gpVertexArrayAttribBinding C.GPVERTEXARRAYATTRIBBINDING
+ gpVertexArrayAttribFormat C.GPVERTEXARRAYATTRIBFORMAT
+ gpVertexArrayAttribIFormat C.GPVERTEXARRAYATTRIBIFORMAT
+ gpVertexArrayAttribLFormat C.GPVERTEXARRAYATTRIBLFORMAT
+ gpVertexArrayBindVertexBufferEXT C.GPVERTEXARRAYBINDVERTEXBUFFEREXT
+ gpVertexArrayBindingDivisor C.GPVERTEXARRAYBINDINGDIVISOR
+ gpVertexArrayColorOffsetEXT C.GPVERTEXARRAYCOLOROFFSETEXT
+ gpVertexArrayEdgeFlagOffsetEXT C.GPVERTEXARRAYEDGEFLAGOFFSETEXT
+ gpVertexArrayElementBuffer C.GPVERTEXARRAYELEMENTBUFFER
+ gpVertexArrayFogCoordOffsetEXT C.GPVERTEXARRAYFOGCOORDOFFSETEXT
+ gpVertexArrayIndexOffsetEXT C.GPVERTEXARRAYINDEXOFFSETEXT
+ gpVertexArrayMultiTexCoordOffsetEXT C.GPVERTEXARRAYMULTITEXCOORDOFFSETEXT
+ gpVertexArrayNormalOffsetEXT C.GPVERTEXARRAYNORMALOFFSETEXT
+ gpVertexArraySecondaryColorOffsetEXT C.GPVERTEXARRAYSECONDARYCOLOROFFSETEXT
+ gpVertexArrayTexCoordOffsetEXT C.GPVERTEXARRAYTEXCOORDOFFSETEXT
+ gpVertexArrayVertexAttribBindingEXT C.GPVERTEXARRAYVERTEXATTRIBBINDINGEXT
+ gpVertexArrayVertexAttribDivisorEXT C.GPVERTEXARRAYVERTEXATTRIBDIVISOREXT
+ gpVertexArrayVertexAttribFormatEXT C.GPVERTEXARRAYVERTEXATTRIBFORMATEXT
+ gpVertexArrayVertexAttribIFormatEXT C.GPVERTEXARRAYVERTEXATTRIBIFORMATEXT
+ gpVertexArrayVertexAttribIOffsetEXT C.GPVERTEXARRAYVERTEXATTRIBIOFFSETEXT
+ gpVertexArrayVertexAttribLFormatEXT C.GPVERTEXARRAYVERTEXATTRIBLFORMATEXT
+ gpVertexArrayVertexAttribLOffsetEXT C.GPVERTEXARRAYVERTEXATTRIBLOFFSETEXT
+ gpVertexArrayVertexAttribOffsetEXT C.GPVERTEXARRAYVERTEXATTRIBOFFSETEXT
+ gpVertexArrayVertexBindingDivisorEXT C.GPVERTEXARRAYVERTEXBINDINGDIVISOREXT
+ gpVertexArrayVertexBuffer C.GPVERTEXARRAYVERTEXBUFFER
+ gpVertexArrayVertexBuffers C.GPVERTEXARRAYVERTEXBUFFERS
+ gpVertexArrayVertexOffsetEXT C.GPVERTEXARRAYVERTEXOFFSETEXT
+ gpVertexAttrib1d C.GPVERTEXATTRIB1D
+ gpVertexAttrib1dv C.GPVERTEXATTRIB1DV
+ gpVertexAttrib1f C.GPVERTEXATTRIB1F
+ gpVertexAttrib1fv C.GPVERTEXATTRIB1FV
+ gpVertexAttrib1s C.GPVERTEXATTRIB1S
+ gpVertexAttrib1sv C.GPVERTEXATTRIB1SV
+ gpVertexAttrib2d C.GPVERTEXATTRIB2D
+ gpVertexAttrib2dv C.GPVERTEXATTRIB2DV
+ gpVertexAttrib2f C.GPVERTEXATTRIB2F
+ gpVertexAttrib2fv C.GPVERTEXATTRIB2FV
+ gpVertexAttrib2s C.GPVERTEXATTRIB2S
+ gpVertexAttrib2sv C.GPVERTEXATTRIB2SV
+ gpVertexAttrib3d C.GPVERTEXATTRIB3D
+ gpVertexAttrib3dv C.GPVERTEXATTRIB3DV
+ gpVertexAttrib3f C.GPVERTEXATTRIB3F
+ gpVertexAttrib3fv C.GPVERTEXATTRIB3FV
+ gpVertexAttrib3s C.GPVERTEXATTRIB3S
+ gpVertexAttrib3sv C.GPVERTEXATTRIB3SV
+ gpVertexAttrib4Nbv C.GPVERTEXATTRIB4NBV
+ gpVertexAttrib4Niv C.GPVERTEXATTRIB4NIV
+ gpVertexAttrib4Nsv C.GPVERTEXATTRIB4NSV
+ gpVertexAttrib4Nub C.GPVERTEXATTRIB4NUB
+ gpVertexAttrib4Nubv C.GPVERTEXATTRIB4NUBV
+ gpVertexAttrib4Nuiv C.GPVERTEXATTRIB4NUIV
+ gpVertexAttrib4Nusv C.GPVERTEXATTRIB4NUSV
+ gpVertexAttrib4bv C.GPVERTEXATTRIB4BV
+ gpVertexAttrib4d C.GPVERTEXATTRIB4D
+ gpVertexAttrib4dv C.GPVERTEXATTRIB4DV
+ gpVertexAttrib4f C.GPVERTEXATTRIB4F
+ gpVertexAttrib4fv C.GPVERTEXATTRIB4FV
+ gpVertexAttrib4iv C.GPVERTEXATTRIB4IV
+ gpVertexAttrib4s C.GPVERTEXATTRIB4S
+ gpVertexAttrib4sv C.GPVERTEXATTRIB4SV
+ gpVertexAttrib4ubv C.GPVERTEXATTRIB4UBV
+ gpVertexAttrib4uiv C.GPVERTEXATTRIB4UIV
+ gpVertexAttrib4usv C.GPVERTEXATTRIB4USV
+ gpVertexAttribBinding C.GPVERTEXATTRIBBINDING
+ gpVertexAttribDivisor C.GPVERTEXATTRIBDIVISOR
+ gpVertexAttribDivisorARB C.GPVERTEXATTRIBDIVISORARB
+ gpVertexAttribFormat C.GPVERTEXATTRIBFORMAT
+ gpVertexAttribFormatNV C.GPVERTEXATTRIBFORMATNV
+ gpVertexAttribI1i C.GPVERTEXATTRIBI1I
+ gpVertexAttribI1iv C.GPVERTEXATTRIBI1IV
+ gpVertexAttribI1ui C.GPVERTEXATTRIBI1UI
+ gpVertexAttribI1uiv C.GPVERTEXATTRIBI1UIV
+ gpVertexAttribI2i C.GPVERTEXATTRIBI2I
+ gpVertexAttribI2iv C.GPVERTEXATTRIBI2IV
+ gpVertexAttribI2ui C.GPVERTEXATTRIBI2UI
+ gpVertexAttribI2uiv C.GPVERTEXATTRIBI2UIV
+ gpVertexAttribI3i C.GPVERTEXATTRIBI3I
+ gpVertexAttribI3iv C.GPVERTEXATTRIBI3IV
+ gpVertexAttribI3ui C.GPVERTEXATTRIBI3UI
+ gpVertexAttribI3uiv C.GPVERTEXATTRIBI3UIV
+ gpVertexAttribI4bv C.GPVERTEXATTRIBI4BV
+ gpVertexAttribI4i C.GPVERTEXATTRIBI4I
+ gpVertexAttribI4iv C.GPVERTEXATTRIBI4IV
+ gpVertexAttribI4sv C.GPVERTEXATTRIBI4SV
+ gpVertexAttribI4ubv C.GPVERTEXATTRIBI4UBV
+ gpVertexAttribI4ui C.GPVERTEXATTRIBI4UI
+ gpVertexAttribI4uiv C.GPVERTEXATTRIBI4UIV
+ gpVertexAttribI4usv C.GPVERTEXATTRIBI4USV
+ gpVertexAttribIFormat C.GPVERTEXATTRIBIFORMAT
+ gpVertexAttribIFormatNV C.GPVERTEXATTRIBIFORMATNV
+ gpVertexAttribIPointer C.GPVERTEXATTRIBIPOINTER
+ gpVertexAttribL1d C.GPVERTEXATTRIBL1D
+ gpVertexAttribL1dv C.GPVERTEXATTRIBL1DV
+ gpVertexAttribL1i64NV C.GPVERTEXATTRIBL1I64NV
+ gpVertexAttribL1i64vNV C.GPVERTEXATTRIBL1I64VNV
+ gpVertexAttribL1ui64ARB C.GPVERTEXATTRIBL1UI64ARB
+ gpVertexAttribL1ui64NV C.GPVERTEXATTRIBL1UI64NV
+ gpVertexAttribL1ui64vARB C.GPVERTEXATTRIBL1UI64VARB
+ gpVertexAttribL1ui64vNV C.GPVERTEXATTRIBL1UI64VNV
+ gpVertexAttribL2d C.GPVERTEXATTRIBL2D
+ gpVertexAttribL2dv C.GPVERTEXATTRIBL2DV
+ gpVertexAttribL2i64NV C.GPVERTEXATTRIBL2I64NV
+ gpVertexAttribL2i64vNV C.GPVERTEXATTRIBL2I64VNV
+ gpVertexAttribL2ui64NV C.GPVERTEXATTRIBL2UI64NV
+ gpVertexAttribL2ui64vNV C.GPVERTEXATTRIBL2UI64VNV
+ gpVertexAttribL3d C.GPVERTEXATTRIBL3D
+ gpVertexAttribL3dv C.GPVERTEXATTRIBL3DV
+ gpVertexAttribL3i64NV C.GPVERTEXATTRIBL3I64NV
+ gpVertexAttribL3i64vNV C.GPVERTEXATTRIBL3I64VNV
+ gpVertexAttribL3ui64NV C.GPVERTEXATTRIBL3UI64NV
+ gpVertexAttribL3ui64vNV C.GPVERTEXATTRIBL3UI64VNV
+ gpVertexAttribL4d C.GPVERTEXATTRIBL4D
+ gpVertexAttribL4dv C.GPVERTEXATTRIBL4DV
+ gpVertexAttribL4i64NV C.GPVERTEXATTRIBL4I64NV
+ gpVertexAttribL4i64vNV C.GPVERTEXATTRIBL4I64VNV
+ gpVertexAttribL4ui64NV C.GPVERTEXATTRIBL4UI64NV
+ gpVertexAttribL4ui64vNV C.GPVERTEXATTRIBL4UI64VNV
+ gpVertexAttribLFormat C.GPVERTEXATTRIBLFORMAT
+ gpVertexAttribLFormatNV C.GPVERTEXATTRIBLFORMATNV
+ gpVertexAttribLPointer C.GPVERTEXATTRIBLPOINTER
+ gpVertexAttribP1ui C.GPVERTEXATTRIBP1UI
+ gpVertexAttribP1uiv C.GPVERTEXATTRIBP1UIV
+ gpVertexAttribP2ui C.GPVERTEXATTRIBP2UI
+ gpVertexAttribP2uiv C.GPVERTEXATTRIBP2UIV
+ gpVertexAttribP3ui C.GPVERTEXATTRIBP3UI
+ gpVertexAttribP3uiv C.GPVERTEXATTRIBP3UIV
+ gpVertexAttribP4ui C.GPVERTEXATTRIBP4UI
+ gpVertexAttribP4uiv C.GPVERTEXATTRIBP4UIV
+ gpVertexAttribPointer C.GPVERTEXATTRIBPOINTER
+ gpVertexBindingDivisor C.GPVERTEXBINDINGDIVISOR
+ gpVertexFormatNV C.GPVERTEXFORMATNV
+ gpViewport C.GPVIEWPORT
+ gpViewportArrayv C.GPVIEWPORTARRAYV
+ gpViewportIndexedf C.GPVIEWPORTINDEXEDF
+ gpViewportIndexedfv C.GPVIEWPORTINDEXEDFV
+ gpViewportPositionWScaleNV C.GPVIEWPORTPOSITIONWSCALENV
+ gpViewportSwizzleNV C.GPVIEWPORTSWIZZLENV
+ gpWaitSync C.GPWAITSYNC
+ gpWaitVkSemaphoreNV C.GPWAITVKSEMAPHORENV
+ gpWeightPathsNV C.GPWEIGHTPATHSNV
+ gpWindowRectanglesEXT C.GPWINDOWRECTANGLESEXT
+)
+
+// Helper functions
+func boolToInt(b bool) int {
+ if b {
+ return 1
+ }
+ return 0
+}
+func ActiveProgramEXT(program uint32) {
+ C.glowActiveProgramEXT(gpActiveProgramEXT, (C.GLuint)(program))
+}
+
+// set the active program object for a program pipeline object
+func ActiveShaderProgram(pipeline uint32, program uint32) {
+ C.glowActiveShaderProgram(gpActiveShaderProgram, (C.GLuint)(pipeline), (C.GLuint)(program))
+}
+func ActiveShaderProgramEXT(pipeline uint32, program uint32) {
+ C.glowActiveShaderProgramEXT(gpActiveShaderProgramEXT, (C.GLuint)(pipeline), (C.GLuint)(program))
+}
+
+// select active texture unit
+func ActiveTexture(texture uint32) {
+ C.glowActiveTexture(gpActiveTexture, (C.GLenum)(texture))
+}
+func ApplyFramebufferAttachmentCMAAINTEL() {
+ C.glowApplyFramebufferAttachmentCMAAINTEL(gpApplyFramebufferAttachmentCMAAINTEL)
+}
+
+// Attaches a shader object to a program object
+func AttachShader(program uint32, shader uint32) {
+ C.glowAttachShader(gpAttachShader, (C.GLuint)(program), (C.GLuint)(shader))
+}
+
+// start conditional rendering
+func BeginConditionalRender(id uint32, mode uint32) {
+ C.glowBeginConditionalRender(gpBeginConditionalRender, (C.GLuint)(id), (C.GLenum)(mode))
+}
+func BeginConditionalRenderNV(id uint32, mode uint32) {
+ C.glowBeginConditionalRenderNV(gpBeginConditionalRenderNV, (C.GLuint)(id), (C.GLenum)(mode))
+}
+func BeginPerfMonitorAMD(monitor uint32) {
+ C.glowBeginPerfMonitorAMD(gpBeginPerfMonitorAMD, (C.GLuint)(monitor))
+}
+func BeginPerfQueryINTEL(queryHandle uint32) {
+ C.glowBeginPerfQueryINTEL(gpBeginPerfQueryINTEL, (C.GLuint)(queryHandle))
+}
+
+// delimit the boundaries of a query object
+func BeginQuery(target uint32, id uint32) {
+ C.glowBeginQuery(gpBeginQuery, (C.GLenum)(target), (C.GLuint)(id))
+}
+func BeginQueryIndexed(target uint32, index uint32, id uint32) {
+ C.glowBeginQueryIndexed(gpBeginQueryIndexed, (C.GLenum)(target), (C.GLuint)(index), (C.GLuint)(id))
+}
+
+// start transform feedback operation
+func BeginTransformFeedback(primitiveMode uint32) {
+ C.glowBeginTransformFeedback(gpBeginTransformFeedback, (C.GLenum)(primitiveMode))
+}
+
+// Associates a generic vertex attribute index with a named attribute variable
+func BindAttribLocation(program uint32, index uint32, name *uint8) {
+ C.glowBindAttribLocation(gpBindAttribLocation, (C.GLuint)(program), (C.GLuint)(index), (*C.GLchar)(unsafe.Pointer(name)))
+}
+
+// bind a named buffer object
+func BindBuffer(target uint32, buffer uint32) {
+ C.glowBindBuffer(gpBindBuffer, (C.GLenum)(target), (C.GLuint)(buffer))
+}
+
+// bind a buffer object to an indexed buffer target
+func BindBufferBase(target uint32, index uint32, buffer uint32) {
+ C.glowBindBufferBase(gpBindBufferBase, (C.GLenum)(target), (C.GLuint)(index), (C.GLuint)(buffer))
+}
+
+// bind a range within a buffer object to an indexed buffer target
+func BindBufferRange(target uint32, index uint32, buffer uint32, offset int, size int) {
+ C.glowBindBufferRange(gpBindBufferRange, (C.GLenum)(target), (C.GLuint)(index), (C.GLuint)(buffer), (C.GLintptr)(offset), (C.GLsizeiptr)(size))
+}
+
+// bind one or more buffer objects to a sequence of indexed buffer targets
+func BindBuffersBase(target uint32, first uint32, count int32, buffers *uint32) {
+ C.glowBindBuffersBase(gpBindBuffersBase, (C.GLenum)(target), (C.GLuint)(first), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(buffers)))
+}
+
+// bind ranges of one or more buffer objects to a sequence of indexed buffer targets
+func BindBuffersRange(target uint32, first uint32, count int32, buffers *uint32, offsets *int, sizes *int) {
+ C.glowBindBuffersRange(gpBindBuffersRange, (C.GLenum)(target), (C.GLuint)(first), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(buffers)), (*C.GLintptr)(unsafe.Pointer(offsets)), (*C.GLsizeiptr)(unsafe.Pointer(sizes)))
+}
+
+// bind a user-defined varying out variable to a fragment shader color number
+func BindFragDataLocation(program uint32, color uint32, name *uint8) {
+ C.glowBindFragDataLocation(gpBindFragDataLocation, (C.GLuint)(program), (C.GLuint)(color), (*C.GLchar)(unsafe.Pointer(name)))
+}
+
+// bind a user-defined varying out variable to a fragment shader color number and index
+func BindFragDataLocationIndexed(program uint32, colorNumber uint32, index uint32, name *uint8) {
+ C.glowBindFragDataLocationIndexed(gpBindFragDataLocationIndexed, (C.GLuint)(program), (C.GLuint)(colorNumber), (C.GLuint)(index), (*C.GLchar)(unsafe.Pointer(name)))
+}
+
+// bind a framebuffer to a framebuffer target
+func BindFramebuffer(target uint32, framebuffer uint32) {
+ C.glowBindFramebuffer(gpBindFramebuffer, (C.GLenum)(target), (C.GLuint)(framebuffer))
+}
+
+// bind a level of a texture to an image unit
+func BindImageTexture(unit uint32, texture uint32, level int32, layered bool, layer int32, access uint32, format uint32) {
+ C.glowBindImageTexture(gpBindImageTexture, (C.GLuint)(unit), (C.GLuint)(texture), (C.GLint)(level), (C.GLboolean)(boolToInt(layered)), (C.GLint)(layer), (C.GLenum)(access), (C.GLenum)(format))
+}
+
+// bind one or more named texture images to a sequence of consecutive image units
+func BindImageTextures(first uint32, count int32, textures *uint32) {
+ C.glowBindImageTextures(gpBindImageTextures, (C.GLuint)(first), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(textures)))
+}
+func BindMultiTextureEXT(texunit uint32, target uint32, texture uint32) {
+ C.glowBindMultiTextureEXT(gpBindMultiTextureEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLuint)(texture))
+}
+
+// bind a program pipeline to the current context
+func BindProgramPipeline(pipeline uint32) {
+ C.glowBindProgramPipeline(gpBindProgramPipeline, (C.GLuint)(pipeline))
+}
+func BindProgramPipelineEXT(pipeline uint32) {
+ C.glowBindProgramPipelineEXT(gpBindProgramPipelineEXT, (C.GLuint)(pipeline))
+}
+
+// bind a renderbuffer to a renderbuffer target
+func BindRenderbuffer(target uint32, renderbuffer uint32) {
+ C.glowBindRenderbuffer(gpBindRenderbuffer, (C.GLenum)(target), (C.GLuint)(renderbuffer))
+}
+
+// bind a named sampler to a texturing target
+func BindSampler(unit uint32, sampler uint32) {
+ C.glowBindSampler(gpBindSampler, (C.GLuint)(unit), (C.GLuint)(sampler))
+}
+
+// bind one or more named sampler objects to a sequence of consecutive sampler units
+func BindSamplers(first uint32, count int32, samplers *uint32) {
+ C.glowBindSamplers(gpBindSamplers, (C.GLuint)(first), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(samplers)))
+}
+func BindShadingRateImageNV(texture uint32) {
+ C.glowBindShadingRateImageNV(gpBindShadingRateImageNV, (C.GLuint)(texture))
+}
+
+// bind a named texture to a texturing target
+func BindTexture(target uint32, texture uint32) {
+ C.glowBindTexture(gpBindTexture, (C.GLenum)(target), (C.GLuint)(texture))
+}
+
+// bind an existing texture object to the specified texture unit
+func BindTextureUnit(unit uint32, texture uint32) {
+ C.glowBindTextureUnit(gpBindTextureUnit, (C.GLuint)(unit), (C.GLuint)(texture))
+}
+
+// bind one or more named textures to a sequence of consecutive texture units
+func BindTextures(first uint32, count int32, textures *uint32) {
+ C.glowBindTextures(gpBindTextures, (C.GLuint)(first), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(textures)))
+}
+
+// bind a transform feedback object
+func BindTransformFeedback(target uint32, id uint32) {
+ C.glowBindTransformFeedback(gpBindTransformFeedback, (C.GLenum)(target), (C.GLuint)(id))
+}
+
+// bind a vertex array object
+func BindVertexArray(array uint32) {
+ C.glowBindVertexArray(gpBindVertexArray, (C.GLuint)(array))
+}
+
+// bind a buffer to a vertex buffer bind point
+func BindVertexBuffer(bindingindex uint32, buffer uint32, offset int, stride int32) {
+ C.glowBindVertexBuffer(gpBindVertexBuffer, (C.GLuint)(bindingindex), (C.GLuint)(buffer), (C.GLintptr)(offset), (C.GLsizei)(stride))
+}
+
+// attach multiple buffer objects to a vertex array object
+func BindVertexBuffers(first uint32, count int32, buffers *uint32, offsets *int, strides *int32) {
+ C.glowBindVertexBuffers(gpBindVertexBuffers, (C.GLuint)(first), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(buffers)), (*C.GLintptr)(unsafe.Pointer(offsets)), (*C.GLsizei)(unsafe.Pointer(strides)))
+}
+func BlendBarrierKHR() {
+ C.glowBlendBarrierKHR(gpBlendBarrierKHR)
+}
+func BlendBarrierNV() {
+ C.glowBlendBarrierNV(gpBlendBarrierNV)
+}
+
+// set the blend color
+func BlendColor(red float32, green float32, blue float32, alpha float32) {
+ C.glowBlendColor(gpBlendColor, (C.GLfloat)(red), (C.GLfloat)(green), (C.GLfloat)(blue), (C.GLfloat)(alpha))
+}
+
+// specify the equation used for both the RGB blend equation and the Alpha blend equation
+func BlendEquation(mode uint32) {
+ C.glowBlendEquation(gpBlendEquation, (C.GLenum)(mode))
+}
+
+// set the RGB blend equation and the alpha blend equation separately
+func BlendEquationSeparate(modeRGB uint32, modeAlpha uint32) {
+ C.glowBlendEquationSeparate(gpBlendEquationSeparate, (C.GLenum)(modeRGB), (C.GLenum)(modeAlpha))
+}
+func BlendEquationSeparateiARB(buf uint32, modeRGB uint32, modeAlpha uint32) {
+ C.glowBlendEquationSeparateiARB(gpBlendEquationSeparateiARB, (C.GLuint)(buf), (C.GLenum)(modeRGB), (C.GLenum)(modeAlpha))
+}
+func BlendEquationiARB(buf uint32, mode uint32) {
+ C.glowBlendEquationiARB(gpBlendEquationiARB, (C.GLuint)(buf), (C.GLenum)(mode))
+}
+
+// specify pixel arithmetic
+func BlendFunc(sfactor uint32, dfactor uint32) {
+ C.glowBlendFunc(gpBlendFunc, (C.GLenum)(sfactor), (C.GLenum)(dfactor))
+}
+
+// specify pixel arithmetic for RGB and alpha components separately
+func BlendFuncSeparate(sfactorRGB uint32, dfactorRGB uint32, sfactorAlpha uint32, dfactorAlpha uint32) {
+ C.glowBlendFuncSeparate(gpBlendFuncSeparate, (C.GLenum)(sfactorRGB), (C.GLenum)(dfactorRGB), (C.GLenum)(sfactorAlpha), (C.GLenum)(dfactorAlpha))
+}
+func BlendFuncSeparateiARB(buf uint32, srcRGB uint32, dstRGB uint32, srcAlpha uint32, dstAlpha uint32) {
+ C.glowBlendFuncSeparateiARB(gpBlendFuncSeparateiARB, (C.GLuint)(buf), (C.GLenum)(srcRGB), (C.GLenum)(dstRGB), (C.GLenum)(srcAlpha), (C.GLenum)(dstAlpha))
+}
+func BlendFunciARB(buf uint32, src uint32, dst uint32) {
+ C.glowBlendFunciARB(gpBlendFunciARB, (C.GLuint)(buf), (C.GLenum)(src), (C.GLenum)(dst))
+}
+func BlendParameteriNV(pname uint32, value int32) {
+ C.glowBlendParameteriNV(gpBlendParameteriNV, (C.GLenum)(pname), (C.GLint)(value))
+}
+
+// copy a block of pixels from one framebuffer object to another
+func BlitFramebuffer(srcX0 int32, srcY0 int32, srcX1 int32, srcY1 int32, dstX0 int32, dstY0 int32, dstX1 int32, dstY1 int32, mask uint32, filter uint32) {
+ C.glowBlitFramebuffer(gpBlitFramebuffer, (C.GLint)(srcX0), (C.GLint)(srcY0), (C.GLint)(srcX1), (C.GLint)(srcY1), (C.GLint)(dstX0), (C.GLint)(dstY0), (C.GLint)(dstX1), (C.GLint)(dstY1), (C.GLbitfield)(mask), (C.GLenum)(filter))
+}
+
+// copy a block of pixels from one framebuffer object to another
+func BlitNamedFramebuffer(readFramebuffer uint32, drawFramebuffer uint32, srcX0 int32, srcY0 int32, srcX1 int32, srcY1 int32, dstX0 int32, dstY0 int32, dstX1 int32, dstY1 int32, mask uint32, filter uint32) {
+ C.glowBlitNamedFramebuffer(gpBlitNamedFramebuffer, (C.GLuint)(readFramebuffer), (C.GLuint)(drawFramebuffer), (C.GLint)(srcX0), (C.GLint)(srcY0), (C.GLint)(srcX1), (C.GLint)(srcY1), (C.GLint)(dstX0), (C.GLint)(dstY0), (C.GLint)(dstX1), (C.GLint)(dstY1), (C.GLbitfield)(mask), (C.GLenum)(filter))
+}
+func BufferAddressRangeNV(pname uint32, index uint32, address uint64, length int) {
+ C.glowBufferAddressRangeNV(gpBufferAddressRangeNV, (C.GLenum)(pname), (C.GLuint)(index), (C.GLuint64EXT)(address), (C.GLsizeiptr)(length))
+}
+func BufferAttachMemoryNV(target uint32, memory uint32, offset uint64) {
+ C.glowBufferAttachMemoryNV(gpBufferAttachMemoryNV, (C.GLenum)(target), (C.GLuint)(memory), (C.GLuint64)(offset))
+}
+
+// creates and initializes a buffer object's data store
+func BufferData(target uint32, size int, data unsafe.Pointer, usage uint32) {
+ C.glowBufferData(gpBufferData, (C.GLenum)(target), (C.GLsizeiptr)(size), data, (C.GLenum)(usage))
+}
+func BufferPageCommitmentARB(target uint32, offset int, size int, commit bool) {
+ C.glowBufferPageCommitmentARB(gpBufferPageCommitmentARB, (C.GLenum)(target), (C.GLintptr)(offset), (C.GLsizeiptr)(size), (C.GLboolean)(boolToInt(commit)))
+}
+func BufferPageCommitmentMemNV(target uint32, offset int, size int, memory uint32, memOffset uint64, commit bool) {
+ C.glowBufferPageCommitmentMemNV(gpBufferPageCommitmentMemNV, (C.GLenum)(target), (C.GLintptr)(offset), (C.GLsizeiptr)(size), (C.GLuint)(memory), (C.GLuint64)(memOffset), (C.GLboolean)(boolToInt(commit)))
+}
+
+// creates and initializes a buffer object's immutable data store
+func BufferStorage(target uint32, size int, data unsafe.Pointer, flags uint32) {
+ C.glowBufferStorage(gpBufferStorage, (C.GLenum)(target), (C.GLsizeiptr)(size), data, (C.GLbitfield)(flags))
+}
+
+// updates a subset of a buffer object's data store
+func BufferSubData(target uint32, offset int, size int, data unsafe.Pointer) {
+ C.glowBufferSubData(gpBufferSubData, (C.GLenum)(target), (C.GLintptr)(offset), (C.GLsizeiptr)(size), data)
+}
+func CallCommandListNV(list uint32) {
+ C.glowCallCommandListNV(gpCallCommandListNV, (C.GLuint)(list))
+}
+
+// check the completeness status of a framebuffer
+func CheckFramebufferStatus(target uint32) uint32 {
+ ret := C.glowCheckFramebufferStatus(gpCheckFramebufferStatus, (C.GLenum)(target))
+ return (uint32)(ret)
+}
+
+// check the completeness status of a framebuffer
+func CheckNamedFramebufferStatus(framebuffer uint32, target uint32) uint32 {
+ ret := C.glowCheckNamedFramebufferStatus(gpCheckNamedFramebufferStatus, (C.GLuint)(framebuffer), (C.GLenum)(target))
+ return (uint32)(ret)
+}
+func CheckNamedFramebufferStatusEXT(framebuffer uint32, target uint32) uint32 {
+ ret := C.glowCheckNamedFramebufferStatusEXT(gpCheckNamedFramebufferStatusEXT, (C.GLuint)(framebuffer), (C.GLenum)(target))
+ return (uint32)(ret)
+}
+
+// specify whether data read via should be clamped
+func ClampColor(target uint32, clamp uint32) {
+ C.glowClampColor(gpClampColor, (C.GLenum)(target), (C.GLenum)(clamp))
+}
+
+// clear buffers to preset values
+func Clear(mask uint32) {
+ C.glowClear(gpClear, (C.GLbitfield)(mask))
+}
+
+// fill a buffer object's data store with a fixed value
+func ClearBufferData(target uint32, internalformat uint32, format uint32, xtype uint32, data unsafe.Pointer) {
+ C.glowClearBufferData(gpClearBufferData, (C.GLenum)(target), (C.GLenum)(internalformat), (C.GLenum)(format), (C.GLenum)(xtype), data)
+}
+
+// fill all or part of buffer object's data store with a fixed value
+func ClearBufferSubData(target uint32, internalformat uint32, offset int, size int, format uint32, xtype uint32, data unsafe.Pointer) {
+ C.glowClearBufferSubData(gpClearBufferSubData, (C.GLenum)(target), (C.GLenum)(internalformat), (C.GLintptr)(offset), (C.GLsizeiptr)(size), (C.GLenum)(format), (C.GLenum)(xtype), data)
+}
+func ClearBufferfi(buffer uint32, drawbuffer int32, depth float32, stencil int32) {
+ C.glowClearBufferfi(gpClearBufferfi, (C.GLenum)(buffer), (C.GLint)(drawbuffer), (C.GLfloat)(depth), (C.GLint)(stencil))
+}
+func ClearBufferfv(buffer uint32, drawbuffer int32, value *float32) {
+ C.glowClearBufferfv(gpClearBufferfv, (C.GLenum)(buffer), (C.GLint)(drawbuffer), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ClearBufferiv(buffer uint32, drawbuffer int32, value *int32) {
+ C.glowClearBufferiv(gpClearBufferiv, (C.GLenum)(buffer), (C.GLint)(drawbuffer), (*C.GLint)(unsafe.Pointer(value)))
+}
+func ClearBufferuiv(buffer uint32, drawbuffer int32, value *uint32) {
+ C.glowClearBufferuiv(gpClearBufferuiv, (C.GLenum)(buffer), (C.GLint)(drawbuffer), (*C.GLuint)(unsafe.Pointer(value)))
+}
+
+// specify clear values for the color buffers
+func ClearColor(red float32, green float32, blue float32, alpha float32) {
+ C.glowClearColor(gpClearColor, (C.GLfloat)(red), (C.GLfloat)(green), (C.GLfloat)(blue), (C.GLfloat)(alpha))
+}
+
+// specify the clear value for the depth buffer
+func ClearDepth(depth float64) {
+ C.glowClearDepth(gpClearDepth, (C.GLdouble)(depth))
+}
+func ClearDepthdNV(depth float64) {
+ C.glowClearDepthdNV(gpClearDepthdNV, (C.GLdouble)(depth))
+}
+
+// specify the clear value for the depth buffer
+func ClearDepthf(d float32) {
+ C.glowClearDepthf(gpClearDepthf, (C.GLfloat)(d))
+}
+
+// fill a buffer object's data store with a fixed value
+func ClearNamedBufferData(buffer uint32, internalformat uint32, format uint32, xtype uint32, data unsafe.Pointer) {
+ C.glowClearNamedBufferData(gpClearNamedBufferData, (C.GLuint)(buffer), (C.GLenum)(internalformat), (C.GLenum)(format), (C.GLenum)(xtype), data)
+}
+func ClearNamedBufferDataEXT(buffer uint32, internalformat uint32, format uint32, xtype uint32, data unsafe.Pointer) {
+ C.glowClearNamedBufferDataEXT(gpClearNamedBufferDataEXT, (C.GLuint)(buffer), (C.GLenum)(internalformat), (C.GLenum)(format), (C.GLenum)(xtype), data)
+}
+
+// fill all or part of buffer object's data store with a fixed value
+func ClearNamedBufferSubData(buffer uint32, internalformat uint32, offset int, size int, format uint32, xtype uint32, data unsafe.Pointer) {
+ C.glowClearNamedBufferSubData(gpClearNamedBufferSubData, (C.GLuint)(buffer), (C.GLenum)(internalformat), (C.GLintptr)(offset), (C.GLsizeiptr)(size), (C.GLenum)(format), (C.GLenum)(xtype), data)
+}
+func ClearNamedBufferSubDataEXT(buffer uint32, internalformat uint32, offset int, size int, format uint32, xtype uint32, data unsafe.Pointer) {
+ C.glowClearNamedBufferSubDataEXT(gpClearNamedBufferSubDataEXT, (C.GLuint)(buffer), (C.GLenum)(internalformat), (C.GLsizeiptr)(offset), (C.GLsizeiptr)(size), (C.GLenum)(format), (C.GLenum)(xtype), data)
+}
+func ClearNamedFramebufferfi(framebuffer uint32, buffer uint32, drawbuffer int32, depth float32, stencil int32) {
+ C.glowClearNamedFramebufferfi(gpClearNamedFramebufferfi, (C.GLuint)(framebuffer), (C.GLenum)(buffer), (C.GLint)(drawbuffer), (C.GLfloat)(depth), (C.GLint)(stencil))
+}
+func ClearNamedFramebufferfv(framebuffer uint32, buffer uint32, drawbuffer int32, value *float32) {
+ C.glowClearNamedFramebufferfv(gpClearNamedFramebufferfv, (C.GLuint)(framebuffer), (C.GLenum)(buffer), (C.GLint)(drawbuffer), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ClearNamedFramebufferiv(framebuffer uint32, buffer uint32, drawbuffer int32, value *int32) {
+ C.glowClearNamedFramebufferiv(gpClearNamedFramebufferiv, (C.GLuint)(framebuffer), (C.GLenum)(buffer), (C.GLint)(drawbuffer), (*C.GLint)(unsafe.Pointer(value)))
+}
+func ClearNamedFramebufferuiv(framebuffer uint32, buffer uint32, drawbuffer int32, value *uint32) {
+ C.glowClearNamedFramebufferuiv(gpClearNamedFramebufferuiv, (C.GLuint)(framebuffer), (C.GLenum)(buffer), (C.GLint)(drawbuffer), (*C.GLuint)(unsafe.Pointer(value)))
+}
+
+// specify the clear value for the stencil buffer
+func ClearStencil(s int32) {
+ C.glowClearStencil(gpClearStencil, (C.GLint)(s))
+}
+
+// fills all a texture image with a constant value
+func ClearTexImage(texture uint32, level int32, format uint32, xtype uint32, data unsafe.Pointer) {
+ C.glowClearTexImage(gpClearTexImage, (C.GLuint)(texture), (C.GLint)(level), (C.GLenum)(format), (C.GLenum)(xtype), data)
+}
+
+// fills all or part of a texture image with a constant value
+func ClearTexSubImage(texture uint32, level int32, xoffset int32, yoffset int32, zoffset int32, width int32, height int32, depth int32, format uint32, xtype uint32, data unsafe.Pointer) {
+ C.glowClearTexSubImage(gpClearTexSubImage, (C.GLuint)(texture), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(zoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLenum)(format), (C.GLenum)(xtype), data)
+}
+func ClientAttribDefaultEXT(mask uint32) {
+ C.glowClientAttribDefaultEXT(gpClientAttribDefaultEXT, (C.GLbitfield)(mask))
+}
+
+// block and wait for a sync object to become signaled
+func ClientWaitSync(sync uintptr, flags uint32, timeout uint64) uint32 {
+ ret := C.glowClientWaitSync(gpClientWaitSync, (C.GLsync)(sync), (C.GLbitfield)(flags), (C.GLuint64)(timeout))
+ return (uint32)(ret)
+}
+
+// control clip coordinate to window coordinate behavior
+func ClipControl(origin uint32, depth uint32) {
+ C.glowClipControl(gpClipControl, (C.GLenum)(origin), (C.GLenum)(depth))
+}
+func ColorFormatNV(size int32, xtype uint32, stride int32) {
+ C.glowColorFormatNV(gpColorFormatNV, (C.GLint)(size), (C.GLenum)(xtype), (C.GLsizei)(stride))
+}
+func ColorMask(red bool, green bool, blue bool, alpha bool) {
+ C.glowColorMask(gpColorMask, (C.GLboolean)(boolToInt(red)), (C.GLboolean)(boolToInt(green)), (C.GLboolean)(boolToInt(blue)), (C.GLboolean)(boolToInt(alpha)))
+}
+func ColorMaski(index uint32, r bool, g bool, b bool, a bool) {
+ C.glowColorMaski(gpColorMaski, (C.GLuint)(index), (C.GLboolean)(boolToInt(r)), (C.GLboolean)(boolToInt(g)), (C.GLboolean)(boolToInt(b)), (C.GLboolean)(boolToInt(a)))
+}
+func CommandListSegmentsNV(list uint32, segments uint32) {
+ C.glowCommandListSegmentsNV(gpCommandListSegmentsNV, (C.GLuint)(list), (C.GLuint)(segments))
+}
+func CompileCommandListNV(list uint32) {
+ C.glowCompileCommandListNV(gpCompileCommandListNV, (C.GLuint)(list))
+}
+
+// Compiles a shader object
+func CompileShader(shader uint32) {
+ C.glowCompileShader(gpCompileShader, (C.GLuint)(shader))
+}
+func CompileShaderIncludeARB(shader uint32, count int32, path **uint8, length *int32) {
+ C.glowCompileShaderIncludeARB(gpCompileShaderIncludeARB, (C.GLuint)(shader), (C.GLsizei)(count), (**C.GLchar)(unsafe.Pointer(path)), (*C.GLint)(unsafe.Pointer(length)))
+}
+func CompressedMultiTexImage1DEXT(texunit uint32, target uint32, level int32, internalformat uint32, width int32, border int32, imageSize int32, bits unsafe.Pointer) {
+ C.glowCompressedMultiTexImage1DEXT(gpCompressedMultiTexImage1DEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLint)(border), (C.GLsizei)(imageSize), bits)
+}
+func CompressedMultiTexImage2DEXT(texunit uint32, target uint32, level int32, internalformat uint32, width int32, height int32, border int32, imageSize int32, bits unsafe.Pointer) {
+ C.glowCompressedMultiTexImage2DEXT(gpCompressedMultiTexImage2DEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLint)(border), (C.GLsizei)(imageSize), bits)
+}
+func CompressedMultiTexImage3DEXT(texunit uint32, target uint32, level int32, internalformat uint32, width int32, height int32, depth int32, border int32, imageSize int32, bits unsafe.Pointer) {
+ C.glowCompressedMultiTexImage3DEXT(gpCompressedMultiTexImage3DEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLint)(border), (C.GLsizei)(imageSize), bits)
+}
+func CompressedMultiTexSubImage1DEXT(texunit uint32, target uint32, level int32, xoffset int32, width int32, format uint32, imageSize int32, bits unsafe.Pointer) {
+ C.glowCompressedMultiTexSubImage1DEXT(gpCompressedMultiTexSubImage1DEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLsizei)(width), (C.GLenum)(format), (C.GLsizei)(imageSize), bits)
+}
+func CompressedMultiTexSubImage2DEXT(texunit uint32, target uint32, level int32, xoffset int32, yoffset int32, width int32, height int32, format uint32, imageSize int32, bits unsafe.Pointer) {
+ C.glowCompressedMultiTexSubImage2DEXT(gpCompressedMultiTexSubImage2DEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLenum)(format), (C.GLsizei)(imageSize), bits)
+}
+func CompressedMultiTexSubImage3DEXT(texunit uint32, target uint32, level int32, xoffset int32, yoffset int32, zoffset int32, width int32, height int32, depth int32, format uint32, imageSize int32, bits unsafe.Pointer) {
+ C.glowCompressedMultiTexSubImage3DEXT(gpCompressedMultiTexSubImage3DEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(zoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLenum)(format), (C.GLsizei)(imageSize), bits)
+}
+
+// specify a one-dimensional texture image in a compressed format
+func CompressedTexImage1D(target uint32, level int32, internalformat uint32, width int32, border int32, imageSize int32, data unsafe.Pointer) {
+ C.glowCompressedTexImage1D(gpCompressedTexImage1D, (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLint)(border), (C.GLsizei)(imageSize), data)
+}
+
+// specify a two-dimensional texture image in a compressed format
+func CompressedTexImage2D(target uint32, level int32, internalformat uint32, width int32, height int32, border int32, imageSize int32, data unsafe.Pointer) {
+ C.glowCompressedTexImage2D(gpCompressedTexImage2D, (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLint)(border), (C.GLsizei)(imageSize), data)
+}
+
+// specify a three-dimensional texture image in a compressed format
+func CompressedTexImage3D(target uint32, level int32, internalformat uint32, width int32, height int32, depth int32, border int32, imageSize int32, data unsafe.Pointer) {
+ C.glowCompressedTexImage3D(gpCompressedTexImage3D, (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLint)(border), (C.GLsizei)(imageSize), data)
+}
+
+// specify a one-dimensional texture subimage in a compressed format
+func CompressedTexSubImage1D(target uint32, level int32, xoffset int32, width int32, format uint32, imageSize int32, data unsafe.Pointer) {
+ C.glowCompressedTexSubImage1D(gpCompressedTexSubImage1D, (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLsizei)(width), (C.GLenum)(format), (C.GLsizei)(imageSize), data)
+}
+
+// specify a two-dimensional texture subimage in a compressed format
+func CompressedTexSubImage2D(target uint32, level int32, xoffset int32, yoffset int32, width int32, height int32, format uint32, imageSize int32, data unsafe.Pointer) {
+ C.glowCompressedTexSubImage2D(gpCompressedTexSubImage2D, (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLenum)(format), (C.GLsizei)(imageSize), data)
+}
+
+// specify a three-dimensional texture subimage in a compressed format
+func CompressedTexSubImage3D(target uint32, level int32, xoffset int32, yoffset int32, zoffset int32, width int32, height int32, depth int32, format uint32, imageSize int32, data unsafe.Pointer) {
+ C.glowCompressedTexSubImage3D(gpCompressedTexSubImage3D, (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(zoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLenum)(format), (C.GLsizei)(imageSize), data)
+}
+func CompressedTextureImage1DEXT(texture uint32, target uint32, level int32, internalformat uint32, width int32, border int32, imageSize int32, bits unsafe.Pointer) {
+ C.glowCompressedTextureImage1DEXT(gpCompressedTextureImage1DEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLint)(border), (C.GLsizei)(imageSize), bits)
+}
+func CompressedTextureImage2DEXT(texture uint32, target uint32, level int32, internalformat uint32, width int32, height int32, border int32, imageSize int32, bits unsafe.Pointer) {
+ C.glowCompressedTextureImage2DEXT(gpCompressedTextureImage2DEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLint)(border), (C.GLsizei)(imageSize), bits)
+}
+func CompressedTextureImage3DEXT(texture uint32, target uint32, level int32, internalformat uint32, width int32, height int32, depth int32, border int32, imageSize int32, bits unsafe.Pointer) {
+ C.glowCompressedTextureImage3DEXT(gpCompressedTextureImage3DEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLint)(border), (C.GLsizei)(imageSize), bits)
+}
+
+// specify a one-dimensional texture subimage in a compressed format
+func CompressedTextureSubImage1D(texture uint32, level int32, xoffset int32, width int32, format uint32, imageSize int32, data unsafe.Pointer) {
+ C.glowCompressedTextureSubImage1D(gpCompressedTextureSubImage1D, (C.GLuint)(texture), (C.GLint)(level), (C.GLint)(xoffset), (C.GLsizei)(width), (C.GLenum)(format), (C.GLsizei)(imageSize), data)
+}
+func CompressedTextureSubImage1DEXT(texture uint32, target uint32, level int32, xoffset int32, width int32, format uint32, imageSize int32, bits unsafe.Pointer) {
+ C.glowCompressedTextureSubImage1DEXT(gpCompressedTextureSubImage1DEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLsizei)(width), (C.GLenum)(format), (C.GLsizei)(imageSize), bits)
+}
+
+// specify a two-dimensional texture subimage in a compressed format
+func CompressedTextureSubImage2D(texture uint32, level int32, xoffset int32, yoffset int32, width int32, height int32, format uint32, imageSize int32, data unsafe.Pointer) {
+ C.glowCompressedTextureSubImage2D(gpCompressedTextureSubImage2D, (C.GLuint)(texture), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLenum)(format), (C.GLsizei)(imageSize), data)
+}
+func CompressedTextureSubImage2DEXT(texture uint32, target uint32, level int32, xoffset int32, yoffset int32, width int32, height int32, format uint32, imageSize int32, bits unsafe.Pointer) {
+ C.glowCompressedTextureSubImage2DEXT(gpCompressedTextureSubImage2DEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLenum)(format), (C.GLsizei)(imageSize), bits)
+}
+
+// specify a three-dimensional texture subimage in a compressed format
+func CompressedTextureSubImage3D(texture uint32, level int32, xoffset int32, yoffset int32, zoffset int32, width int32, height int32, depth int32, format uint32, imageSize int32, data unsafe.Pointer) {
+ C.glowCompressedTextureSubImage3D(gpCompressedTextureSubImage3D, (C.GLuint)(texture), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(zoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLenum)(format), (C.GLsizei)(imageSize), data)
+}
+func CompressedTextureSubImage3DEXT(texture uint32, target uint32, level int32, xoffset int32, yoffset int32, zoffset int32, width int32, height int32, depth int32, format uint32, imageSize int32, bits unsafe.Pointer) {
+ C.glowCompressedTextureSubImage3DEXT(gpCompressedTextureSubImage3DEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(zoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLenum)(format), (C.GLsizei)(imageSize), bits)
+}
+func ConservativeRasterParameterfNV(pname uint32, value float32) {
+ C.glowConservativeRasterParameterfNV(gpConservativeRasterParameterfNV, (C.GLenum)(pname), (C.GLfloat)(value))
+}
+func ConservativeRasterParameteriNV(pname uint32, param int32) {
+ C.glowConservativeRasterParameteriNV(gpConservativeRasterParameteriNV, (C.GLenum)(pname), (C.GLint)(param))
+}
+
+// copy all or part of the data store of a buffer object to the data store of another buffer object
+func CopyBufferSubData(readTarget uint32, writeTarget uint32, readOffset int, writeOffset int, size int) {
+ C.glowCopyBufferSubData(gpCopyBufferSubData, (C.GLenum)(readTarget), (C.GLenum)(writeTarget), (C.GLintptr)(readOffset), (C.GLintptr)(writeOffset), (C.GLsizeiptr)(size))
+}
+
+// perform a raw data copy between two images
+func CopyImageSubData(srcName uint32, srcTarget uint32, srcLevel int32, srcX int32, srcY int32, srcZ int32, dstName uint32, dstTarget uint32, dstLevel int32, dstX int32, dstY int32, dstZ int32, srcWidth int32, srcHeight int32, srcDepth int32) {
+ C.glowCopyImageSubData(gpCopyImageSubData, (C.GLuint)(srcName), (C.GLenum)(srcTarget), (C.GLint)(srcLevel), (C.GLint)(srcX), (C.GLint)(srcY), (C.GLint)(srcZ), (C.GLuint)(dstName), (C.GLenum)(dstTarget), (C.GLint)(dstLevel), (C.GLint)(dstX), (C.GLint)(dstY), (C.GLint)(dstZ), (C.GLsizei)(srcWidth), (C.GLsizei)(srcHeight), (C.GLsizei)(srcDepth))
+}
+func CopyMultiTexImage1DEXT(texunit uint32, target uint32, level int32, internalformat uint32, x int32, y int32, width int32, border int32) {
+ C.glowCopyMultiTexImage1DEXT(gpCopyMultiTexImage1DEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(internalformat), (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLint)(border))
+}
+func CopyMultiTexImage2DEXT(texunit uint32, target uint32, level int32, internalformat uint32, x int32, y int32, width int32, height int32, border int32) {
+ C.glowCopyMultiTexImage2DEXT(gpCopyMultiTexImage2DEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(internalformat), (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLint)(border))
+}
+func CopyMultiTexSubImage1DEXT(texunit uint32, target uint32, level int32, xoffset int32, x int32, y int32, width int32) {
+ C.glowCopyMultiTexSubImage1DEXT(gpCopyMultiTexSubImage1DEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width))
+}
+func CopyMultiTexSubImage2DEXT(texunit uint32, target uint32, level int32, xoffset int32, yoffset int32, x int32, y int32, width int32, height int32) {
+ C.glowCopyMultiTexSubImage2DEXT(gpCopyMultiTexSubImage2DEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+func CopyMultiTexSubImage3DEXT(texunit uint32, target uint32, level int32, xoffset int32, yoffset int32, zoffset int32, x int32, y int32, width int32, height int32) {
+ C.glowCopyMultiTexSubImage3DEXT(gpCopyMultiTexSubImage3DEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(zoffset), (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+
+// copy all or part of the data store of a buffer object to the data store of another buffer object
+func CopyNamedBufferSubData(readBuffer uint32, writeBuffer uint32, readOffset int, writeOffset int, size int) {
+ C.glowCopyNamedBufferSubData(gpCopyNamedBufferSubData, (C.GLuint)(readBuffer), (C.GLuint)(writeBuffer), (C.GLintptr)(readOffset), (C.GLintptr)(writeOffset), (C.GLsizeiptr)(size))
+}
+func CopyPathNV(resultPath uint32, srcPath uint32) {
+ C.glowCopyPathNV(gpCopyPathNV, (C.GLuint)(resultPath), (C.GLuint)(srcPath))
+}
+
+// copy pixels into a 1D texture image
+func CopyTexImage1D(target uint32, level int32, internalformat uint32, x int32, y int32, width int32, border int32) {
+ C.glowCopyTexImage1D(gpCopyTexImage1D, (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(internalformat), (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLint)(border))
+}
+
+// copy pixels into a 2D texture image
+func CopyTexImage2D(target uint32, level int32, internalformat uint32, x int32, y int32, width int32, height int32, border int32) {
+ C.glowCopyTexImage2D(gpCopyTexImage2D, (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(internalformat), (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLint)(border))
+}
+
+// copy a one-dimensional texture subimage
+func CopyTexSubImage1D(target uint32, level int32, xoffset int32, x int32, y int32, width int32) {
+ C.glowCopyTexSubImage1D(gpCopyTexSubImage1D, (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width))
+}
+
+// copy a two-dimensional texture subimage
+func CopyTexSubImage2D(target uint32, level int32, xoffset int32, yoffset int32, x int32, y int32, width int32, height int32) {
+ C.glowCopyTexSubImage2D(gpCopyTexSubImage2D, (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+
+// copy a three-dimensional texture subimage
+func CopyTexSubImage3D(target uint32, level int32, xoffset int32, yoffset int32, zoffset int32, x int32, y int32, width int32, height int32) {
+ C.glowCopyTexSubImage3D(gpCopyTexSubImage3D, (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(zoffset), (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+func CopyTextureImage1DEXT(texture uint32, target uint32, level int32, internalformat uint32, x int32, y int32, width int32, border int32) {
+ C.glowCopyTextureImage1DEXT(gpCopyTextureImage1DEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(internalformat), (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLint)(border))
+}
+func CopyTextureImage2DEXT(texture uint32, target uint32, level int32, internalformat uint32, x int32, y int32, width int32, height int32, border int32) {
+ C.glowCopyTextureImage2DEXT(gpCopyTextureImage2DEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(internalformat), (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLint)(border))
+}
+
+// copy a one-dimensional texture subimage
+func CopyTextureSubImage1D(texture uint32, level int32, xoffset int32, x int32, y int32, width int32) {
+ C.glowCopyTextureSubImage1D(gpCopyTextureSubImage1D, (C.GLuint)(texture), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width))
+}
+func CopyTextureSubImage1DEXT(texture uint32, target uint32, level int32, xoffset int32, x int32, y int32, width int32) {
+ C.glowCopyTextureSubImage1DEXT(gpCopyTextureSubImage1DEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width))
+}
+
+// copy a two-dimensional texture subimage
+func CopyTextureSubImage2D(texture uint32, level int32, xoffset int32, yoffset int32, x int32, y int32, width int32, height int32) {
+ C.glowCopyTextureSubImage2D(gpCopyTextureSubImage2D, (C.GLuint)(texture), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+func CopyTextureSubImage2DEXT(texture uint32, target uint32, level int32, xoffset int32, yoffset int32, x int32, y int32, width int32, height int32) {
+ C.glowCopyTextureSubImage2DEXT(gpCopyTextureSubImage2DEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+
+// copy a three-dimensional texture subimage
+func CopyTextureSubImage3D(texture uint32, level int32, xoffset int32, yoffset int32, zoffset int32, x int32, y int32, width int32, height int32) {
+ C.glowCopyTextureSubImage3D(gpCopyTextureSubImage3D, (C.GLuint)(texture), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(zoffset), (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+func CopyTextureSubImage3DEXT(texture uint32, target uint32, level int32, xoffset int32, yoffset int32, zoffset int32, x int32, y int32, width int32, height int32) {
+ C.glowCopyTextureSubImage3DEXT(gpCopyTextureSubImage3DEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(zoffset), (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+func CoverFillPathInstancedNV(numPaths int32, pathNameType uint32, paths unsafe.Pointer, pathBase uint32, coverMode uint32, transformType uint32, transformValues *float32) {
+ C.glowCoverFillPathInstancedNV(gpCoverFillPathInstancedNV, (C.GLsizei)(numPaths), (C.GLenum)(pathNameType), paths, (C.GLuint)(pathBase), (C.GLenum)(coverMode), (C.GLenum)(transformType), (*C.GLfloat)(unsafe.Pointer(transformValues)))
+}
+func CoverFillPathNV(path uint32, coverMode uint32) {
+ C.glowCoverFillPathNV(gpCoverFillPathNV, (C.GLuint)(path), (C.GLenum)(coverMode))
+}
+func CoverStrokePathInstancedNV(numPaths int32, pathNameType uint32, paths unsafe.Pointer, pathBase uint32, coverMode uint32, transformType uint32, transformValues *float32) {
+ C.glowCoverStrokePathInstancedNV(gpCoverStrokePathInstancedNV, (C.GLsizei)(numPaths), (C.GLenum)(pathNameType), paths, (C.GLuint)(pathBase), (C.GLenum)(coverMode), (C.GLenum)(transformType), (*C.GLfloat)(unsafe.Pointer(transformValues)))
+}
+func CoverStrokePathNV(path uint32, coverMode uint32) {
+ C.glowCoverStrokePathNV(gpCoverStrokePathNV, (C.GLuint)(path), (C.GLenum)(coverMode))
+}
+func CoverageModulationNV(components uint32) {
+ C.glowCoverageModulationNV(gpCoverageModulationNV, (C.GLenum)(components))
+}
+func CoverageModulationTableNV(n int32, v *float32) {
+ C.glowCoverageModulationTableNV(gpCoverageModulationTableNV, (C.GLsizei)(n), (*C.GLfloat)(unsafe.Pointer(v)))
+}
+
+// create buffer objects
+func CreateBuffers(n int32, buffers *uint32) {
+ C.glowCreateBuffers(gpCreateBuffers, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(buffers)))
+}
+func CreateCommandListsNV(n int32, lists *uint32) {
+ C.glowCreateCommandListsNV(gpCreateCommandListsNV, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(lists)))
+}
+
+// create framebuffer objects
+func CreateFramebuffers(n int32, framebuffers *uint32) {
+ C.glowCreateFramebuffers(gpCreateFramebuffers, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(framebuffers)))
+}
+func CreatePerfQueryINTEL(queryId uint32, queryHandle *uint32) {
+ C.glowCreatePerfQueryINTEL(gpCreatePerfQueryINTEL, (C.GLuint)(queryId), (*C.GLuint)(unsafe.Pointer(queryHandle)))
+}
+
+// Creates a program object
+func CreateProgram() uint32 {
+ ret := C.glowCreateProgram(gpCreateProgram)
+ return (uint32)(ret)
+}
+
+// create program pipeline objects
+func CreateProgramPipelines(n int32, pipelines *uint32) {
+ C.glowCreateProgramPipelines(gpCreateProgramPipelines, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(pipelines)))
+}
+
+// create query objects
+func CreateQueries(target uint32, n int32, ids *uint32) {
+ C.glowCreateQueries(gpCreateQueries, (C.GLenum)(target), (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(ids)))
+}
+
+// create renderbuffer objects
+func CreateRenderbuffers(n int32, renderbuffers *uint32) {
+ C.glowCreateRenderbuffers(gpCreateRenderbuffers, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(renderbuffers)))
+}
+
+// create sampler objects
+func CreateSamplers(n int32, samplers *uint32) {
+ C.glowCreateSamplers(gpCreateSamplers, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(samplers)))
+}
+
+// Creates a shader object
+func CreateShader(xtype uint32) uint32 {
+ ret := C.glowCreateShader(gpCreateShader, (C.GLenum)(xtype))
+ return (uint32)(ret)
+}
+func CreateShaderProgramEXT(xtype uint32, xstring *uint8) uint32 {
+ ret := C.glowCreateShaderProgramEXT(gpCreateShaderProgramEXT, (C.GLenum)(xtype), (*C.GLchar)(unsafe.Pointer(xstring)))
+ return (uint32)(ret)
+}
+
+// create a stand-alone program from an array of null-terminated source code strings
+func CreateShaderProgramv(xtype uint32, count int32, strings **uint8) uint32 {
+ ret := C.glowCreateShaderProgramv(gpCreateShaderProgramv, (C.GLenum)(xtype), (C.GLsizei)(count), (**C.GLchar)(unsafe.Pointer(strings)))
+ return (uint32)(ret)
+}
+func CreateShaderProgramvEXT(xtype uint32, count int32, strings **uint8) uint32 {
+ ret := C.glowCreateShaderProgramvEXT(gpCreateShaderProgramvEXT, (C.GLenum)(xtype), (C.GLsizei)(count), (**C.GLchar)(unsafe.Pointer(strings)))
+ return (uint32)(ret)
+}
+func CreateStatesNV(n int32, states *uint32) {
+ C.glowCreateStatesNV(gpCreateStatesNV, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(states)))
+}
+
+// Parameter context has type *C.struct__cl_context.
+// Parameter event has type *C.struct__cl_event.
+func CreateSyncFromCLeventARB(context unsafe.Pointer, event unsafe.Pointer, flags uint32) uintptr {
+ ret := C.glowCreateSyncFromCLeventARB(gpCreateSyncFromCLeventARB, (*C.struct__cl_context)(context), (*C.struct__cl_event)(event), (C.GLbitfield)(flags))
+ return (uintptr)(ret)
+}
+
+// create texture objects
+func CreateTextures(target uint32, n int32, textures *uint32) {
+ C.glowCreateTextures(gpCreateTextures, (C.GLenum)(target), (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(textures)))
+}
+
+// create transform feedback objects
+func CreateTransformFeedbacks(n int32, ids *uint32) {
+ C.glowCreateTransformFeedbacks(gpCreateTransformFeedbacks, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(ids)))
+}
+
+// create vertex array objects
+func CreateVertexArrays(n int32, arrays *uint32) {
+ C.glowCreateVertexArrays(gpCreateVertexArrays, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(arrays)))
+}
+
+// specify whether front- or back-facing facets can be culled
+func CullFace(mode uint32) {
+ C.glowCullFace(gpCullFace, (C.GLenum)(mode))
+}
+
+// specify a callback to receive debugging messages from the GL
+func DebugMessageCallback(callback DebugProc, userParam unsafe.Pointer) {
+ userDebugCallback = callback
+ C.glowDebugMessageCallback(gpDebugMessageCallback, (C.GLDEBUGPROC)(unsafe.Pointer(&callback)), userParam)
+}
+func DebugMessageCallbackARB(callback DebugProc, userParam unsafe.Pointer) {
+ userDebugCallback = callback
+ C.glowDebugMessageCallbackARB(gpDebugMessageCallbackARB, (C.GLDEBUGPROCARB)(unsafe.Pointer(&callback)), userParam)
+}
+func DebugMessageCallbackKHR(callback DebugProc, userParam unsafe.Pointer) {
+ userDebugCallback = callback
+ C.glowDebugMessageCallbackKHR(gpDebugMessageCallbackKHR, (C.GLDEBUGPROCKHR)(unsafe.Pointer(&callback)), userParam)
+}
+
+// control the reporting of debug messages in a debug context
+func DebugMessageControl(source uint32, xtype uint32, severity uint32, count int32, ids *uint32, enabled bool) {
+ C.glowDebugMessageControl(gpDebugMessageControl, (C.GLenum)(source), (C.GLenum)(xtype), (C.GLenum)(severity), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(ids)), (C.GLboolean)(boolToInt(enabled)))
+}
+func DebugMessageControlARB(source uint32, xtype uint32, severity uint32, count int32, ids *uint32, enabled bool) {
+ C.glowDebugMessageControlARB(gpDebugMessageControlARB, (C.GLenum)(source), (C.GLenum)(xtype), (C.GLenum)(severity), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(ids)), (C.GLboolean)(boolToInt(enabled)))
+}
+func DebugMessageControlKHR(source uint32, xtype uint32, severity uint32, count int32, ids *uint32, enabled bool) {
+ C.glowDebugMessageControlKHR(gpDebugMessageControlKHR, (C.GLenum)(source), (C.GLenum)(xtype), (C.GLenum)(severity), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(ids)), (C.GLboolean)(boolToInt(enabled)))
+}
+
+// inject an application-supplied message into the debug message queue
+func DebugMessageInsert(source uint32, xtype uint32, id uint32, severity uint32, length int32, buf *uint8) {
+ C.glowDebugMessageInsert(gpDebugMessageInsert, (C.GLenum)(source), (C.GLenum)(xtype), (C.GLuint)(id), (C.GLenum)(severity), (C.GLsizei)(length), (*C.GLchar)(unsafe.Pointer(buf)))
+}
+func DebugMessageInsertARB(source uint32, xtype uint32, id uint32, severity uint32, length int32, buf *uint8) {
+ C.glowDebugMessageInsertARB(gpDebugMessageInsertARB, (C.GLenum)(source), (C.GLenum)(xtype), (C.GLuint)(id), (C.GLenum)(severity), (C.GLsizei)(length), (*C.GLchar)(unsafe.Pointer(buf)))
+}
+func DebugMessageInsertKHR(source uint32, xtype uint32, id uint32, severity uint32, length int32, buf *uint8) {
+ C.glowDebugMessageInsertKHR(gpDebugMessageInsertKHR, (C.GLenum)(source), (C.GLenum)(xtype), (C.GLuint)(id), (C.GLenum)(severity), (C.GLsizei)(length), (*C.GLchar)(unsafe.Pointer(buf)))
+}
+
+// delete named buffer objects
+func DeleteBuffers(n int32, buffers *uint32) {
+ C.glowDeleteBuffers(gpDeleteBuffers, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(buffers)))
+}
+func DeleteCommandListsNV(n int32, lists *uint32) {
+ C.glowDeleteCommandListsNV(gpDeleteCommandListsNV, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(lists)))
+}
+
+// delete framebuffer objects
+func DeleteFramebuffers(n int32, framebuffers *uint32) {
+ C.glowDeleteFramebuffers(gpDeleteFramebuffers, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(framebuffers)))
+}
+func DeleteNamedStringARB(namelen int32, name *uint8) {
+ C.glowDeleteNamedStringARB(gpDeleteNamedStringARB, (C.GLint)(namelen), (*C.GLchar)(unsafe.Pointer(name)))
+}
+func DeletePathsNV(path uint32, xrange int32) {
+ C.glowDeletePathsNV(gpDeletePathsNV, (C.GLuint)(path), (C.GLsizei)(xrange))
+}
+func DeletePerfMonitorsAMD(n int32, monitors *uint32) {
+ C.glowDeletePerfMonitorsAMD(gpDeletePerfMonitorsAMD, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(monitors)))
+}
+func DeletePerfQueryINTEL(queryHandle uint32) {
+ C.glowDeletePerfQueryINTEL(gpDeletePerfQueryINTEL, (C.GLuint)(queryHandle))
+}
+
+// Deletes a program object
+func DeleteProgram(program uint32) {
+ C.glowDeleteProgram(gpDeleteProgram, (C.GLuint)(program))
+}
+
+// delete program pipeline objects
+func DeleteProgramPipelines(n int32, pipelines *uint32) {
+ C.glowDeleteProgramPipelines(gpDeleteProgramPipelines, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(pipelines)))
+}
+func DeleteProgramPipelinesEXT(n int32, pipelines *uint32) {
+ C.glowDeleteProgramPipelinesEXT(gpDeleteProgramPipelinesEXT, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(pipelines)))
+}
+
+// delete named query objects
+func DeleteQueries(n int32, ids *uint32) {
+ C.glowDeleteQueries(gpDeleteQueries, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(ids)))
+}
+
+// delete renderbuffer objects
+func DeleteRenderbuffers(n int32, renderbuffers *uint32) {
+ C.glowDeleteRenderbuffers(gpDeleteRenderbuffers, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(renderbuffers)))
+}
+
+// delete named sampler objects
+func DeleteSamplers(count int32, samplers *uint32) {
+ C.glowDeleteSamplers(gpDeleteSamplers, (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(samplers)))
+}
+
+// Deletes a shader object
+func DeleteShader(shader uint32) {
+ C.glowDeleteShader(gpDeleteShader, (C.GLuint)(shader))
+}
+func DeleteStatesNV(n int32, states *uint32) {
+ C.glowDeleteStatesNV(gpDeleteStatesNV, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(states)))
+}
+
+// delete a sync object
+func DeleteSync(sync uintptr) {
+ C.glowDeleteSync(gpDeleteSync, (C.GLsync)(sync))
+}
+
+// delete named textures
+func DeleteTextures(n int32, textures *uint32) {
+ C.glowDeleteTextures(gpDeleteTextures, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(textures)))
+}
+
+// delete transform feedback objects
+func DeleteTransformFeedbacks(n int32, ids *uint32) {
+ C.glowDeleteTransformFeedbacks(gpDeleteTransformFeedbacks, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(ids)))
+}
+
+// delete vertex array objects
+func DeleteVertexArrays(n int32, arrays *uint32) {
+ C.glowDeleteVertexArrays(gpDeleteVertexArrays, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(arrays)))
+}
+func DepthBoundsdNV(zmin float64, zmax float64) {
+ C.glowDepthBoundsdNV(gpDepthBoundsdNV, (C.GLdouble)(zmin), (C.GLdouble)(zmax))
+}
+
+// specify the value used for depth buffer comparisons
+func DepthFunc(xfunc uint32) {
+ C.glowDepthFunc(gpDepthFunc, (C.GLenum)(xfunc))
+}
+
+// enable or disable writing into the depth buffer
+func DepthMask(flag bool) {
+ C.glowDepthMask(gpDepthMask, (C.GLboolean)(boolToInt(flag)))
+}
+
+// specify mapping of depth values from normalized device coordinates to window coordinates
+func DepthRange(n float64, f float64) {
+ C.glowDepthRange(gpDepthRange, (C.GLdouble)(n), (C.GLdouble)(f))
+}
+func DepthRangeArraydvNV(first uint32, count int32, v *float64) {
+ C.glowDepthRangeArraydvNV(gpDepthRangeArraydvNV, (C.GLuint)(first), (C.GLsizei)(count), (*C.GLdouble)(unsafe.Pointer(v)))
+}
+func DepthRangeArrayv(first uint32, count int32, v *float64) {
+ C.glowDepthRangeArrayv(gpDepthRangeArrayv, (C.GLuint)(first), (C.GLsizei)(count), (*C.GLdouble)(unsafe.Pointer(v)))
+}
+
+// specify mapping of depth values from normalized device coordinates to window coordinates for a specified viewport
+func DepthRangeIndexed(index uint32, n float64, f float64) {
+ C.glowDepthRangeIndexed(gpDepthRangeIndexed, (C.GLuint)(index), (C.GLdouble)(n), (C.GLdouble)(f))
+}
+func DepthRangeIndexeddNV(index uint32, n float64, f float64) {
+ C.glowDepthRangeIndexeddNV(gpDepthRangeIndexeddNV, (C.GLuint)(index), (C.GLdouble)(n), (C.GLdouble)(f))
+}
+func DepthRangedNV(zNear float64, zFar float64) {
+ C.glowDepthRangedNV(gpDepthRangedNV, (C.GLdouble)(zNear), (C.GLdouble)(zFar))
+}
+
+// specify mapping of depth values from normalized device coordinates to window coordinates
+func DepthRangef(n float32, f float32) {
+ C.glowDepthRangef(gpDepthRangef, (C.GLfloat)(n), (C.GLfloat)(f))
+}
+
+// Detaches a shader object from a program object to which it is attached
+func DetachShader(program uint32, shader uint32) {
+ C.glowDetachShader(gpDetachShader, (C.GLuint)(program), (C.GLuint)(shader))
+}
+func Disable(cap uint32) {
+ C.glowDisable(gpDisable, (C.GLenum)(cap))
+}
+func DisableClientStateIndexedEXT(array uint32, index uint32) {
+ C.glowDisableClientStateIndexedEXT(gpDisableClientStateIndexedEXT, (C.GLenum)(array), (C.GLuint)(index))
+}
+func DisableClientStateiEXT(array uint32, index uint32) {
+ C.glowDisableClientStateiEXT(gpDisableClientStateiEXT, (C.GLenum)(array), (C.GLuint)(index))
+}
+func DisableIndexedEXT(target uint32, index uint32) {
+ C.glowDisableIndexedEXT(gpDisableIndexedEXT, (C.GLenum)(target), (C.GLuint)(index))
+}
+
+// Enable or disable a generic vertex attribute array
+func DisableVertexArrayAttrib(vaobj uint32, index uint32) {
+ C.glowDisableVertexArrayAttrib(gpDisableVertexArrayAttrib, (C.GLuint)(vaobj), (C.GLuint)(index))
+}
+func DisableVertexArrayAttribEXT(vaobj uint32, index uint32) {
+ C.glowDisableVertexArrayAttribEXT(gpDisableVertexArrayAttribEXT, (C.GLuint)(vaobj), (C.GLuint)(index))
+}
+func DisableVertexArrayEXT(vaobj uint32, array uint32) {
+ C.glowDisableVertexArrayEXT(gpDisableVertexArrayEXT, (C.GLuint)(vaobj), (C.GLenum)(array))
+}
+
+// Enable or disable a generic vertex attribute array
+func DisableVertexAttribArray(index uint32) {
+ C.glowDisableVertexAttribArray(gpDisableVertexAttribArray, (C.GLuint)(index))
+}
+func Disablei(target uint32, index uint32) {
+ C.glowDisablei(gpDisablei, (C.GLenum)(target), (C.GLuint)(index))
+}
+
+// launch one or more compute work groups
+func DispatchCompute(num_groups_x uint32, num_groups_y uint32, num_groups_z uint32) {
+ C.glowDispatchCompute(gpDispatchCompute, (C.GLuint)(num_groups_x), (C.GLuint)(num_groups_y), (C.GLuint)(num_groups_z))
+}
+func DispatchComputeGroupSizeARB(num_groups_x uint32, num_groups_y uint32, num_groups_z uint32, group_size_x uint32, group_size_y uint32, group_size_z uint32) {
+ C.glowDispatchComputeGroupSizeARB(gpDispatchComputeGroupSizeARB, (C.GLuint)(num_groups_x), (C.GLuint)(num_groups_y), (C.GLuint)(num_groups_z), (C.GLuint)(group_size_x), (C.GLuint)(group_size_y), (C.GLuint)(group_size_z))
+}
+
+// launch one or more compute work groups using parameters stored in a buffer
+func DispatchComputeIndirect(indirect int) {
+ C.glowDispatchComputeIndirect(gpDispatchComputeIndirect, (C.GLintptr)(indirect))
+}
+
+// render primitives from array data
+func DrawArrays(mode uint32, first int32, count int32) {
+ C.glowDrawArrays(gpDrawArrays, (C.GLenum)(mode), (C.GLint)(first), (C.GLsizei)(count))
+}
+
+// render primitives from array data, taking parameters from memory
+func DrawArraysIndirect(mode uint32, indirect unsafe.Pointer) {
+ C.glowDrawArraysIndirect(gpDrawArraysIndirect, (C.GLenum)(mode), indirect)
+}
+
+// draw multiple instances of a range of elements
+func DrawArraysInstanced(mode uint32, first int32, count int32, instancecount int32) {
+ C.glowDrawArraysInstanced(gpDrawArraysInstanced, (C.GLenum)(mode), (C.GLint)(first), (C.GLsizei)(count), (C.GLsizei)(instancecount))
+}
+func DrawArraysInstancedARB(mode uint32, first int32, count int32, primcount int32) {
+ C.glowDrawArraysInstancedARB(gpDrawArraysInstancedARB, (C.GLenum)(mode), (C.GLint)(first), (C.GLsizei)(count), (C.GLsizei)(primcount))
+}
+
+// draw multiple instances of a range of elements with offset applied to instanced attributes
+func DrawArraysInstancedBaseInstance(mode uint32, first int32, count int32, instancecount int32, baseinstance uint32) {
+ C.glowDrawArraysInstancedBaseInstance(gpDrawArraysInstancedBaseInstance, (C.GLenum)(mode), (C.GLint)(first), (C.GLsizei)(count), (C.GLsizei)(instancecount), (C.GLuint)(baseinstance))
+}
+func DrawArraysInstancedEXT(mode uint32, start int32, count int32, primcount int32) {
+ C.glowDrawArraysInstancedEXT(gpDrawArraysInstancedEXT, (C.GLenum)(mode), (C.GLint)(start), (C.GLsizei)(count), (C.GLsizei)(primcount))
+}
+
+// specify which color buffers are to be drawn into
+func DrawBuffer(buf uint32) {
+ C.glowDrawBuffer(gpDrawBuffer, (C.GLenum)(buf))
+}
+
+// Specifies a list of color buffers to be drawn into
+func DrawBuffers(n int32, bufs *uint32) {
+ C.glowDrawBuffers(gpDrawBuffers, (C.GLsizei)(n), (*C.GLenum)(unsafe.Pointer(bufs)))
+}
+func DrawCommandsAddressNV(primitiveMode uint32, indirects *uint64, sizes *int32, count uint32) {
+ C.glowDrawCommandsAddressNV(gpDrawCommandsAddressNV, (C.GLenum)(primitiveMode), (*C.GLuint64)(unsafe.Pointer(indirects)), (*C.GLsizei)(unsafe.Pointer(sizes)), (C.GLuint)(count))
+}
+func DrawCommandsNV(primitiveMode uint32, buffer uint32, indirects *int, sizes *int32, count uint32) {
+ C.glowDrawCommandsNV(gpDrawCommandsNV, (C.GLenum)(primitiveMode), (C.GLuint)(buffer), (*C.GLintptr)(unsafe.Pointer(indirects)), (*C.GLsizei)(unsafe.Pointer(sizes)), (C.GLuint)(count))
+}
+func DrawCommandsStatesAddressNV(indirects *uint64, sizes *int32, states *uint32, fbos *uint32, count uint32) {
+ C.glowDrawCommandsStatesAddressNV(gpDrawCommandsStatesAddressNV, (*C.GLuint64)(unsafe.Pointer(indirects)), (*C.GLsizei)(unsafe.Pointer(sizes)), (*C.GLuint)(unsafe.Pointer(states)), (*C.GLuint)(unsafe.Pointer(fbos)), (C.GLuint)(count))
+}
+func DrawCommandsStatesNV(buffer uint32, indirects *int, sizes *int32, states *uint32, fbos *uint32, count uint32) {
+ C.glowDrawCommandsStatesNV(gpDrawCommandsStatesNV, (C.GLuint)(buffer), (*C.GLintptr)(unsafe.Pointer(indirects)), (*C.GLsizei)(unsafe.Pointer(sizes)), (*C.GLuint)(unsafe.Pointer(states)), (*C.GLuint)(unsafe.Pointer(fbos)), (C.GLuint)(count))
+}
+
+// render primitives from array data
+func DrawElements(mode uint32, count int32, xtype uint32, indices unsafe.Pointer) {
+ C.glowDrawElements(gpDrawElements, (C.GLenum)(mode), (C.GLsizei)(count), (C.GLenum)(xtype), indices)
+}
+func DrawElementsWithOffset(mode uint32, count int32, xtype uint32, indices uintptr) {
+ C.glowDrawElementsWithOffset(gpDrawElements, (C.GLenum)(mode), (C.GLsizei)(count), (C.GLenum)(xtype), (C.uintptr_t)(indices))
+}
+
+// render primitives from array data with a per-element offset
+func DrawElementsBaseVertex(mode uint32, count int32, xtype uint32, indices unsafe.Pointer, basevertex int32) {
+ C.glowDrawElementsBaseVertex(gpDrawElementsBaseVertex, (C.GLenum)(mode), (C.GLsizei)(count), (C.GLenum)(xtype), indices, (C.GLint)(basevertex))
+}
+func DrawElementsBaseVertexWithOffset(mode uint32, count int32, xtype uint32, indices uintptr, basevertex int32) {
+ C.glowDrawElementsBaseVertexWithOffset(gpDrawElementsBaseVertex, (C.GLenum)(mode), (C.GLsizei)(count), (C.GLenum)(xtype), (C.uintptr_t)(indices), (C.GLint)(basevertex))
+}
+
+// render indexed primitives from array data, taking parameters from memory
+func DrawElementsIndirect(mode uint32, xtype uint32, indirect unsafe.Pointer) {
+ C.glowDrawElementsIndirect(gpDrawElementsIndirect, (C.GLenum)(mode), (C.GLenum)(xtype), indirect)
+}
+
+// draw multiple instances of a set of elements
+func DrawElementsInstanced(mode uint32, count int32, xtype uint32, indices unsafe.Pointer, instancecount int32) {
+ C.glowDrawElementsInstanced(gpDrawElementsInstanced, (C.GLenum)(mode), (C.GLsizei)(count), (C.GLenum)(xtype), indices, (C.GLsizei)(instancecount))
+}
+func DrawElementsInstancedARB(mode uint32, count int32, xtype uint32, indices unsafe.Pointer, primcount int32) {
+ C.glowDrawElementsInstancedARB(gpDrawElementsInstancedARB, (C.GLenum)(mode), (C.GLsizei)(count), (C.GLenum)(xtype), indices, (C.GLsizei)(primcount))
+}
+
+// draw multiple instances of a set of elements with offset applied to instanced attributes
+func DrawElementsInstancedBaseInstance(mode uint32, count int32, xtype uint32, indices unsafe.Pointer, instancecount int32, baseinstance uint32) {
+ C.glowDrawElementsInstancedBaseInstance(gpDrawElementsInstancedBaseInstance, (C.GLenum)(mode), (C.GLsizei)(count), (C.GLenum)(xtype), indices, (C.GLsizei)(instancecount), (C.GLuint)(baseinstance))
+}
+
+// render multiple instances of a set of primitives from array data with a per-element offset
+func DrawElementsInstancedBaseVertex(mode uint32, count int32, xtype uint32, indices unsafe.Pointer, instancecount int32, basevertex int32) {
+ C.glowDrawElementsInstancedBaseVertex(gpDrawElementsInstancedBaseVertex, (C.GLenum)(mode), (C.GLsizei)(count), (C.GLenum)(xtype), indices, (C.GLsizei)(instancecount), (C.GLint)(basevertex))
+}
+
+// render multiple instances of a set of primitives from array data with a per-element offset
+func DrawElementsInstancedBaseVertexBaseInstance(mode uint32, count int32, xtype uint32, indices unsafe.Pointer, instancecount int32, basevertex int32, baseinstance uint32) {
+ C.glowDrawElementsInstancedBaseVertexBaseInstance(gpDrawElementsInstancedBaseVertexBaseInstance, (C.GLenum)(mode), (C.GLsizei)(count), (C.GLenum)(xtype), indices, (C.GLsizei)(instancecount), (C.GLint)(basevertex), (C.GLuint)(baseinstance))
+}
+func DrawElementsInstancedEXT(mode uint32, count int32, xtype uint32, indices unsafe.Pointer, primcount int32) {
+ C.glowDrawElementsInstancedEXT(gpDrawElementsInstancedEXT, (C.GLenum)(mode), (C.GLsizei)(count), (C.GLenum)(xtype), indices, (C.GLsizei)(primcount))
+}
+func DrawMeshTasksIndirectNV(indirect int) {
+ C.glowDrawMeshTasksIndirectNV(gpDrawMeshTasksIndirectNV, (C.GLintptr)(indirect))
+}
+func DrawMeshTasksNV(first uint32, count uint32) {
+ C.glowDrawMeshTasksNV(gpDrawMeshTasksNV, (C.GLuint)(first), (C.GLuint)(count))
+}
+
+// render primitives from array data
+func DrawRangeElements(mode uint32, start uint32, end uint32, count int32, xtype uint32, indices unsafe.Pointer) {
+ C.glowDrawRangeElements(gpDrawRangeElements, (C.GLenum)(mode), (C.GLuint)(start), (C.GLuint)(end), (C.GLsizei)(count), (C.GLenum)(xtype), indices)
+}
+
+// render primitives from array data with a per-element offset
+func DrawRangeElementsBaseVertex(mode uint32, start uint32, end uint32, count int32, xtype uint32, indices unsafe.Pointer, basevertex int32) {
+ C.glowDrawRangeElementsBaseVertex(gpDrawRangeElementsBaseVertex, (C.GLenum)(mode), (C.GLuint)(start), (C.GLuint)(end), (C.GLsizei)(count), (C.GLenum)(xtype), indices, (C.GLint)(basevertex))
+}
+
+// render primitives using a count derived from a transform feedback object
+func DrawTransformFeedback(mode uint32, id uint32) {
+ C.glowDrawTransformFeedback(gpDrawTransformFeedback, (C.GLenum)(mode), (C.GLuint)(id))
+}
+
+// render multiple instances of primitives using a count derived from a transform feedback object
+func DrawTransformFeedbackInstanced(mode uint32, id uint32, instancecount int32) {
+ C.glowDrawTransformFeedbackInstanced(gpDrawTransformFeedbackInstanced, (C.GLenum)(mode), (C.GLuint)(id), (C.GLsizei)(instancecount))
+}
+
+// render primitives using a count derived from a specifed stream of a transform feedback object
+func DrawTransformFeedbackStream(mode uint32, id uint32, stream uint32) {
+ C.glowDrawTransformFeedbackStream(gpDrawTransformFeedbackStream, (C.GLenum)(mode), (C.GLuint)(id), (C.GLuint)(stream))
+}
+
+// render multiple instances of primitives using a count derived from a specifed stream of a transform feedback object
+func DrawTransformFeedbackStreamInstanced(mode uint32, id uint32, stream uint32, instancecount int32) {
+ C.glowDrawTransformFeedbackStreamInstanced(gpDrawTransformFeedbackStreamInstanced, (C.GLenum)(mode), (C.GLuint)(id), (C.GLuint)(stream), (C.GLsizei)(instancecount))
+}
+func DrawVkImageNV(vkImage uint64, sampler uint32, x0 float32, y0 float32, x1 float32, y1 float32, z float32, s0 float32, t0 float32, s1 float32, t1 float32) {
+ C.glowDrawVkImageNV(gpDrawVkImageNV, (C.GLuint64)(vkImage), (C.GLuint)(sampler), (C.GLfloat)(x0), (C.GLfloat)(y0), (C.GLfloat)(x1), (C.GLfloat)(y1), (C.GLfloat)(z), (C.GLfloat)(s0), (C.GLfloat)(t0), (C.GLfloat)(s1), (C.GLfloat)(t1))
+}
+
+// Parameter image has type C.GLeglImageOES.
+func EGLImageTargetTexStorageEXT(target uint32, image unsafe.Pointer, attrib_list *int32) {
+ C.glowEGLImageTargetTexStorageEXT(gpEGLImageTargetTexStorageEXT, (C.GLenum)(target), (C.GLeglImageOES)(image), (*C.GLint)(unsafe.Pointer(attrib_list)))
+}
+
+// Parameter image has type C.GLeglImageOES.
+func EGLImageTargetTextureStorageEXT(texture uint32, image unsafe.Pointer, attrib_list *int32) {
+ C.glowEGLImageTargetTextureStorageEXT(gpEGLImageTargetTextureStorageEXT, (C.GLuint)(texture), (C.GLeglImageOES)(image), (*C.GLint)(unsafe.Pointer(attrib_list)))
+}
+func EdgeFlagFormatNV(stride int32) {
+ C.glowEdgeFlagFormatNV(gpEdgeFlagFormatNV, (C.GLsizei)(stride))
+}
+
+// enable or disable server-side GL capabilities
+func Enable(cap uint32) {
+ C.glowEnable(gpEnable, (C.GLenum)(cap))
+}
+func EnableClientStateIndexedEXT(array uint32, index uint32) {
+ C.glowEnableClientStateIndexedEXT(gpEnableClientStateIndexedEXT, (C.GLenum)(array), (C.GLuint)(index))
+}
+func EnableClientStateiEXT(array uint32, index uint32) {
+ C.glowEnableClientStateiEXT(gpEnableClientStateiEXT, (C.GLenum)(array), (C.GLuint)(index))
+}
+func EnableIndexedEXT(target uint32, index uint32) {
+ C.glowEnableIndexedEXT(gpEnableIndexedEXT, (C.GLenum)(target), (C.GLuint)(index))
+}
+
+// Enable or disable a generic vertex attribute array
+func EnableVertexArrayAttrib(vaobj uint32, index uint32) {
+ C.glowEnableVertexArrayAttrib(gpEnableVertexArrayAttrib, (C.GLuint)(vaobj), (C.GLuint)(index))
+}
+func EnableVertexArrayAttribEXT(vaobj uint32, index uint32) {
+ C.glowEnableVertexArrayAttribEXT(gpEnableVertexArrayAttribEXT, (C.GLuint)(vaobj), (C.GLuint)(index))
+}
+func EnableVertexArrayEXT(vaobj uint32, array uint32) {
+ C.glowEnableVertexArrayEXT(gpEnableVertexArrayEXT, (C.GLuint)(vaobj), (C.GLenum)(array))
+}
+
+// Enable or disable a generic vertex attribute array
+func EnableVertexAttribArray(index uint32) {
+ C.glowEnableVertexAttribArray(gpEnableVertexAttribArray, (C.GLuint)(index))
+}
+func Enablei(target uint32, index uint32) {
+ C.glowEnablei(gpEnablei, (C.GLenum)(target), (C.GLuint)(index))
+}
+func EndConditionalRender() {
+ C.glowEndConditionalRender(gpEndConditionalRender)
+}
+func EndConditionalRenderNV() {
+ C.glowEndConditionalRenderNV(gpEndConditionalRenderNV)
+}
+func EndPerfMonitorAMD(monitor uint32) {
+ C.glowEndPerfMonitorAMD(gpEndPerfMonitorAMD, (C.GLuint)(monitor))
+}
+func EndPerfQueryINTEL(queryHandle uint32) {
+ C.glowEndPerfQueryINTEL(gpEndPerfQueryINTEL, (C.GLuint)(queryHandle))
+}
+func EndQuery(target uint32) {
+ C.glowEndQuery(gpEndQuery, (C.GLenum)(target))
+}
+func EndQueryIndexed(target uint32, index uint32) {
+ C.glowEndQueryIndexed(gpEndQueryIndexed, (C.GLenum)(target), (C.GLuint)(index))
+}
+func EndTransformFeedback() {
+ C.glowEndTransformFeedback(gpEndTransformFeedback)
+}
+func EvaluateDepthValuesARB() {
+ C.glowEvaluateDepthValuesARB(gpEvaluateDepthValuesARB)
+}
+
+// create a new sync object and insert it into the GL command stream
+func FenceSync(condition uint32, flags uint32) uintptr {
+ ret := C.glowFenceSync(gpFenceSync, (C.GLenum)(condition), (C.GLbitfield)(flags))
+ return (uintptr)(ret)
+}
+
+// block until all GL execution is complete
+func Finish() {
+ C.glowFinish(gpFinish)
+}
+
+// force execution of GL commands in finite time
+func Flush() {
+ C.glowFlush(gpFlush)
+}
+
+// indicate modifications to a range of a mapped buffer
+func FlushMappedBufferRange(target uint32, offset int, length int) {
+ C.glowFlushMappedBufferRange(gpFlushMappedBufferRange, (C.GLenum)(target), (C.GLintptr)(offset), (C.GLsizeiptr)(length))
+}
+
+// indicate modifications to a range of a mapped buffer
+func FlushMappedNamedBufferRange(buffer uint32, offset int, length int) {
+ C.glowFlushMappedNamedBufferRange(gpFlushMappedNamedBufferRange, (C.GLuint)(buffer), (C.GLintptr)(offset), (C.GLsizeiptr)(length))
+}
+func FlushMappedNamedBufferRangeEXT(buffer uint32, offset int, length int) {
+ C.glowFlushMappedNamedBufferRangeEXT(gpFlushMappedNamedBufferRangeEXT, (C.GLuint)(buffer), (C.GLintptr)(offset), (C.GLsizeiptr)(length))
+}
+func FogCoordFormatNV(xtype uint32, stride int32) {
+ C.glowFogCoordFormatNV(gpFogCoordFormatNV, (C.GLenum)(xtype), (C.GLsizei)(stride))
+}
+func FragmentCoverageColorNV(color uint32) {
+ C.glowFragmentCoverageColorNV(gpFragmentCoverageColorNV, (C.GLuint)(color))
+}
+func FramebufferDrawBufferEXT(framebuffer uint32, mode uint32) {
+ C.glowFramebufferDrawBufferEXT(gpFramebufferDrawBufferEXT, (C.GLuint)(framebuffer), (C.GLenum)(mode))
+}
+func FramebufferDrawBuffersEXT(framebuffer uint32, n int32, bufs *uint32) {
+ C.glowFramebufferDrawBuffersEXT(gpFramebufferDrawBuffersEXT, (C.GLuint)(framebuffer), (C.GLsizei)(n), (*C.GLenum)(unsafe.Pointer(bufs)))
+}
+func FramebufferFetchBarrierEXT() {
+ C.glowFramebufferFetchBarrierEXT(gpFramebufferFetchBarrierEXT)
+}
+
+// set a named parameter of a framebuffer object
+func FramebufferParameteri(target uint32, pname uint32, param int32) {
+ C.glowFramebufferParameteri(gpFramebufferParameteri, (C.GLenum)(target), (C.GLenum)(pname), (C.GLint)(param))
+}
+func FramebufferParameteriMESA(target uint32, pname uint32, param int32) {
+ C.glowFramebufferParameteriMESA(gpFramebufferParameteriMESA, (C.GLenum)(target), (C.GLenum)(pname), (C.GLint)(param))
+}
+func FramebufferReadBufferEXT(framebuffer uint32, mode uint32) {
+ C.glowFramebufferReadBufferEXT(gpFramebufferReadBufferEXT, (C.GLuint)(framebuffer), (C.GLenum)(mode))
+}
+
+// attach a renderbuffer as a logical buffer of a framebuffer object
+func FramebufferRenderbuffer(target uint32, attachment uint32, renderbuffertarget uint32, renderbuffer uint32) {
+ C.glowFramebufferRenderbuffer(gpFramebufferRenderbuffer, (C.GLenum)(target), (C.GLenum)(attachment), (C.GLenum)(renderbuffertarget), (C.GLuint)(renderbuffer))
+}
+func FramebufferSampleLocationsfvARB(target uint32, start uint32, count int32, v *float32) {
+ C.glowFramebufferSampleLocationsfvARB(gpFramebufferSampleLocationsfvARB, (C.GLenum)(target), (C.GLuint)(start), (C.GLsizei)(count), (*C.GLfloat)(unsafe.Pointer(v)))
+}
+func FramebufferSampleLocationsfvNV(target uint32, start uint32, count int32, v *float32) {
+ C.glowFramebufferSampleLocationsfvNV(gpFramebufferSampleLocationsfvNV, (C.GLenum)(target), (C.GLuint)(start), (C.GLsizei)(count), (*C.GLfloat)(unsafe.Pointer(v)))
+}
+
+// attach a level of a texture object as a logical buffer of a framebuffer object
+func FramebufferTexture(target uint32, attachment uint32, texture uint32, level int32) {
+ C.glowFramebufferTexture(gpFramebufferTexture, (C.GLenum)(target), (C.GLenum)(attachment), (C.GLuint)(texture), (C.GLint)(level))
+}
+func FramebufferTexture1D(target uint32, attachment uint32, textarget uint32, texture uint32, level int32) {
+ C.glowFramebufferTexture1D(gpFramebufferTexture1D, (C.GLenum)(target), (C.GLenum)(attachment), (C.GLenum)(textarget), (C.GLuint)(texture), (C.GLint)(level))
+}
+
+// attach a level of a texture object as a logical buffer to the currently bound framebuffer object
+func FramebufferTexture2D(target uint32, attachment uint32, textarget uint32, texture uint32, level int32) {
+ C.glowFramebufferTexture2D(gpFramebufferTexture2D, (C.GLenum)(target), (C.GLenum)(attachment), (C.GLenum)(textarget), (C.GLuint)(texture), (C.GLint)(level))
+}
+func FramebufferTexture3D(target uint32, attachment uint32, textarget uint32, texture uint32, level int32, zoffset int32) {
+ C.glowFramebufferTexture3D(gpFramebufferTexture3D, (C.GLenum)(target), (C.GLenum)(attachment), (C.GLenum)(textarget), (C.GLuint)(texture), (C.GLint)(level), (C.GLint)(zoffset))
+}
+func FramebufferTextureARB(target uint32, attachment uint32, texture uint32, level int32) {
+ C.glowFramebufferTextureARB(gpFramebufferTextureARB, (C.GLenum)(target), (C.GLenum)(attachment), (C.GLuint)(texture), (C.GLint)(level))
+}
+func FramebufferTextureFaceARB(target uint32, attachment uint32, texture uint32, level int32, face uint32) {
+ C.glowFramebufferTextureFaceARB(gpFramebufferTextureFaceARB, (C.GLenum)(target), (C.GLenum)(attachment), (C.GLuint)(texture), (C.GLint)(level), (C.GLenum)(face))
+}
+
+// attach a single layer of a texture object as a logical buffer of a framebuffer object
+func FramebufferTextureLayer(target uint32, attachment uint32, texture uint32, level int32, layer int32) {
+ C.glowFramebufferTextureLayer(gpFramebufferTextureLayer, (C.GLenum)(target), (C.GLenum)(attachment), (C.GLuint)(texture), (C.GLint)(level), (C.GLint)(layer))
+}
+func FramebufferTextureLayerARB(target uint32, attachment uint32, texture uint32, level int32, layer int32) {
+ C.glowFramebufferTextureLayerARB(gpFramebufferTextureLayerARB, (C.GLenum)(target), (C.GLenum)(attachment), (C.GLuint)(texture), (C.GLint)(level), (C.GLint)(layer))
+}
+func FramebufferTextureMultiviewOVR(target uint32, attachment uint32, texture uint32, level int32, baseViewIndex int32, numViews int32) {
+ C.glowFramebufferTextureMultiviewOVR(gpFramebufferTextureMultiviewOVR, (C.GLenum)(target), (C.GLenum)(attachment), (C.GLuint)(texture), (C.GLint)(level), (C.GLint)(baseViewIndex), (C.GLsizei)(numViews))
+}
+
+// define front- and back-facing polygons
+func FrontFace(mode uint32) {
+ C.glowFrontFace(gpFrontFace, (C.GLenum)(mode))
+}
+
+// generate buffer object names
+func GenBuffers(n int32, buffers *uint32) {
+ C.glowGenBuffers(gpGenBuffers, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(buffers)))
+}
+
+// generate framebuffer object names
+func GenFramebuffers(n int32, framebuffers *uint32) {
+ C.glowGenFramebuffers(gpGenFramebuffers, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(framebuffers)))
+}
+func GenPathsNV(xrange int32) uint32 {
+ ret := C.glowGenPathsNV(gpGenPathsNV, (C.GLsizei)(xrange))
+ return (uint32)(ret)
+}
+func GenPerfMonitorsAMD(n int32, monitors *uint32) {
+ C.glowGenPerfMonitorsAMD(gpGenPerfMonitorsAMD, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(monitors)))
+}
+
+// reserve program pipeline object names
+func GenProgramPipelines(n int32, pipelines *uint32) {
+ C.glowGenProgramPipelines(gpGenProgramPipelines, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(pipelines)))
+}
+func GenProgramPipelinesEXT(n int32, pipelines *uint32) {
+ C.glowGenProgramPipelinesEXT(gpGenProgramPipelinesEXT, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(pipelines)))
+}
+
+// generate query object names
+func GenQueries(n int32, ids *uint32) {
+ C.glowGenQueries(gpGenQueries, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(ids)))
+}
+
+// generate renderbuffer object names
+func GenRenderbuffers(n int32, renderbuffers *uint32) {
+ C.glowGenRenderbuffers(gpGenRenderbuffers, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(renderbuffers)))
+}
+
+// generate sampler object names
+func GenSamplers(count int32, samplers *uint32) {
+ C.glowGenSamplers(gpGenSamplers, (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(samplers)))
+}
+
+// generate texture names
+func GenTextures(n int32, textures *uint32) {
+ C.glowGenTextures(gpGenTextures, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(textures)))
+}
+
+// reserve transform feedback object names
+func GenTransformFeedbacks(n int32, ids *uint32) {
+ C.glowGenTransformFeedbacks(gpGenTransformFeedbacks, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(ids)))
+}
+
+// generate vertex array object names
+func GenVertexArrays(n int32, arrays *uint32) {
+ C.glowGenVertexArrays(gpGenVertexArrays, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(arrays)))
+}
+
+// generate mipmaps for a specified texture object
+func GenerateMipmap(target uint32) {
+ C.glowGenerateMipmap(gpGenerateMipmap, (C.GLenum)(target))
+}
+func GenerateMultiTexMipmapEXT(texunit uint32, target uint32) {
+ C.glowGenerateMultiTexMipmapEXT(gpGenerateMultiTexMipmapEXT, (C.GLenum)(texunit), (C.GLenum)(target))
+}
+
+// generate mipmaps for a specified texture object
+func GenerateTextureMipmap(texture uint32) {
+ C.glowGenerateTextureMipmap(gpGenerateTextureMipmap, (C.GLuint)(texture))
+}
+func GenerateTextureMipmapEXT(texture uint32, target uint32) {
+ C.glowGenerateTextureMipmapEXT(gpGenerateTextureMipmapEXT, (C.GLuint)(texture), (C.GLenum)(target))
+}
+
+// retrieve information about the set of active atomic counter buffers for a program
+func GetActiveAtomicCounterBufferiv(program uint32, bufferIndex uint32, pname uint32, params *int32) {
+ C.glowGetActiveAtomicCounterBufferiv(gpGetActiveAtomicCounterBufferiv, (C.GLuint)(program), (C.GLuint)(bufferIndex), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+
+// Returns information about an active attribute variable for the specified program object
+func GetActiveAttrib(program uint32, index uint32, bufSize int32, length *int32, size *int32, xtype *uint32, name *uint8) {
+ C.glowGetActiveAttrib(gpGetActiveAttrib, (C.GLuint)(program), (C.GLuint)(index), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLint)(unsafe.Pointer(size)), (*C.GLenum)(unsafe.Pointer(xtype)), (*C.GLchar)(unsafe.Pointer(name)))
+}
+
+// query the name of an active shader subroutine
+func GetActiveSubroutineName(program uint32, shadertype uint32, index uint32, bufSize int32, length *int32, name *uint8) {
+ C.glowGetActiveSubroutineName(gpGetActiveSubroutineName, (C.GLuint)(program), (C.GLenum)(shadertype), (C.GLuint)(index), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLchar)(unsafe.Pointer(name)))
+}
+
+// query the name of an active shader subroutine uniform
+func GetActiveSubroutineUniformName(program uint32, shadertype uint32, index uint32, bufSize int32, length *int32, name *uint8) {
+ C.glowGetActiveSubroutineUniformName(gpGetActiveSubroutineUniformName, (C.GLuint)(program), (C.GLenum)(shadertype), (C.GLuint)(index), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLchar)(unsafe.Pointer(name)))
+}
+func GetActiveSubroutineUniformiv(program uint32, shadertype uint32, index uint32, pname uint32, values *int32) {
+ C.glowGetActiveSubroutineUniformiv(gpGetActiveSubroutineUniformiv, (C.GLuint)(program), (C.GLenum)(shadertype), (C.GLuint)(index), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(values)))
+}
+
+// Returns information about an active uniform variable for the specified program object
+func GetActiveUniform(program uint32, index uint32, bufSize int32, length *int32, size *int32, xtype *uint32, name *uint8) {
+ C.glowGetActiveUniform(gpGetActiveUniform, (C.GLuint)(program), (C.GLuint)(index), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLint)(unsafe.Pointer(size)), (*C.GLenum)(unsafe.Pointer(xtype)), (*C.GLchar)(unsafe.Pointer(name)))
+}
+
+// retrieve the name of an active uniform block
+func GetActiveUniformBlockName(program uint32, uniformBlockIndex uint32, bufSize int32, length *int32, uniformBlockName *uint8) {
+ C.glowGetActiveUniformBlockName(gpGetActiveUniformBlockName, (C.GLuint)(program), (C.GLuint)(uniformBlockIndex), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLchar)(unsafe.Pointer(uniformBlockName)))
+}
+
+// query information about an active uniform block
+func GetActiveUniformBlockiv(program uint32, uniformBlockIndex uint32, pname uint32, params *int32) {
+ C.glowGetActiveUniformBlockiv(gpGetActiveUniformBlockiv, (C.GLuint)(program), (C.GLuint)(uniformBlockIndex), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+
+// query the name of an active uniform
+func GetActiveUniformName(program uint32, uniformIndex uint32, bufSize int32, length *int32, uniformName *uint8) {
+ C.glowGetActiveUniformName(gpGetActiveUniformName, (C.GLuint)(program), (C.GLuint)(uniformIndex), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLchar)(unsafe.Pointer(uniformName)))
+}
+
+// Returns information about several active uniform variables for the specified program object
+func GetActiveUniformsiv(program uint32, uniformCount int32, uniformIndices *uint32, pname uint32, params *int32) {
+ C.glowGetActiveUniformsiv(gpGetActiveUniformsiv, (C.GLuint)(program), (C.GLsizei)(uniformCount), (*C.GLuint)(unsafe.Pointer(uniformIndices)), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+
+// Returns the handles of the shader objects attached to a program object
+func GetAttachedShaders(program uint32, maxCount int32, count *int32, shaders *uint32) {
+ C.glowGetAttachedShaders(gpGetAttachedShaders, (C.GLuint)(program), (C.GLsizei)(maxCount), (*C.GLsizei)(unsafe.Pointer(count)), (*C.GLuint)(unsafe.Pointer(shaders)))
+}
+
+// Returns the location of an attribute variable
+func GetAttribLocation(program uint32, name *uint8) int32 {
+ ret := C.glowGetAttribLocation(gpGetAttribLocation, (C.GLuint)(program), (*C.GLchar)(unsafe.Pointer(name)))
+ return (int32)(ret)
+}
+func GetBooleanIndexedvEXT(target uint32, index uint32, data *bool) {
+ C.glowGetBooleanIndexedvEXT(gpGetBooleanIndexedvEXT, (C.GLenum)(target), (C.GLuint)(index), (*C.GLboolean)(unsafe.Pointer(data)))
+}
+func GetBooleani_v(target uint32, index uint32, data *bool) {
+ C.glowGetBooleani_v(gpGetBooleani_v, (C.GLenum)(target), (C.GLuint)(index), (*C.GLboolean)(unsafe.Pointer(data)))
+}
+func GetBooleanv(pname uint32, data *bool) {
+ C.glowGetBooleanv(gpGetBooleanv, (C.GLenum)(pname), (*C.GLboolean)(unsafe.Pointer(data)))
+}
+
+// return parameters of a buffer object
+func GetBufferParameteri64v(target uint32, pname uint32, params *int64) {
+ C.glowGetBufferParameteri64v(gpGetBufferParameteri64v, (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint64)(unsafe.Pointer(params)))
+}
+
+// return parameters of a buffer object
+func GetBufferParameteriv(target uint32, pname uint32, params *int32) {
+ C.glowGetBufferParameteriv(gpGetBufferParameteriv, (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetBufferParameterui64vNV(target uint32, pname uint32, params *uint64) {
+ C.glowGetBufferParameterui64vNV(gpGetBufferParameterui64vNV, (C.GLenum)(target), (C.GLenum)(pname), (*C.GLuint64EXT)(unsafe.Pointer(params)))
+}
+
+// return the pointer to a mapped buffer object's data store
+func GetBufferPointerv(target uint32, pname uint32, params *unsafe.Pointer) {
+ C.glowGetBufferPointerv(gpGetBufferPointerv, (C.GLenum)(target), (C.GLenum)(pname), params)
+}
+
+// returns a subset of a buffer object's data store
+func GetBufferSubData(target uint32, offset int, size int, data unsafe.Pointer) {
+ C.glowGetBufferSubData(gpGetBufferSubData, (C.GLenum)(target), (C.GLintptr)(offset), (C.GLsizeiptr)(size), data)
+}
+func GetCommandHeaderNV(tokenID uint32, size uint32) uint32 {
+ ret := C.glowGetCommandHeaderNV(gpGetCommandHeaderNV, (C.GLenum)(tokenID), (C.GLuint)(size))
+ return (uint32)(ret)
+}
+func GetCompressedMultiTexImageEXT(texunit uint32, target uint32, lod int32, img unsafe.Pointer) {
+ C.glowGetCompressedMultiTexImageEXT(gpGetCompressedMultiTexImageEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLint)(lod), img)
+}
+
+// return a compressed texture image
+func GetCompressedTexImage(target uint32, level int32, img unsafe.Pointer) {
+ C.glowGetCompressedTexImage(gpGetCompressedTexImage, (C.GLenum)(target), (C.GLint)(level), img)
+}
+
+// return a compressed texture image
+func GetCompressedTextureImage(texture uint32, level int32, bufSize int32, pixels unsafe.Pointer) {
+ C.glowGetCompressedTextureImage(gpGetCompressedTextureImage, (C.GLuint)(texture), (C.GLint)(level), (C.GLsizei)(bufSize), pixels)
+}
+func GetCompressedTextureImageEXT(texture uint32, target uint32, lod int32, img unsafe.Pointer) {
+ C.glowGetCompressedTextureImageEXT(gpGetCompressedTextureImageEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLint)(lod), img)
+}
+
+// retrieve a sub-region of a compressed texture image from a compressed texture object
+func GetCompressedTextureSubImage(texture uint32, level int32, xoffset int32, yoffset int32, zoffset int32, width int32, height int32, depth int32, bufSize int32, pixels unsafe.Pointer) {
+ C.glowGetCompressedTextureSubImage(gpGetCompressedTextureSubImage, (C.GLuint)(texture), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(zoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLsizei)(bufSize), pixels)
+}
+func GetCoverageModulationTableNV(bufSize int32, v *float32) {
+ C.glowGetCoverageModulationTableNV(gpGetCoverageModulationTableNV, (C.GLsizei)(bufSize), (*C.GLfloat)(unsafe.Pointer(v)))
+}
+
+// retrieve messages from the debug message log
+func GetDebugMessageLog(count uint32, bufSize int32, sources *uint32, types *uint32, ids *uint32, severities *uint32, lengths *int32, messageLog *uint8) uint32 {
+ ret := C.glowGetDebugMessageLog(gpGetDebugMessageLog, (C.GLuint)(count), (C.GLsizei)(bufSize), (*C.GLenum)(unsafe.Pointer(sources)), (*C.GLenum)(unsafe.Pointer(types)), (*C.GLuint)(unsafe.Pointer(ids)), (*C.GLenum)(unsafe.Pointer(severities)), (*C.GLsizei)(unsafe.Pointer(lengths)), (*C.GLchar)(unsafe.Pointer(messageLog)))
+ return (uint32)(ret)
+}
+func GetDebugMessageLogARB(count uint32, bufSize int32, sources *uint32, types *uint32, ids *uint32, severities *uint32, lengths *int32, messageLog *uint8) uint32 {
+ ret := C.glowGetDebugMessageLogARB(gpGetDebugMessageLogARB, (C.GLuint)(count), (C.GLsizei)(bufSize), (*C.GLenum)(unsafe.Pointer(sources)), (*C.GLenum)(unsafe.Pointer(types)), (*C.GLuint)(unsafe.Pointer(ids)), (*C.GLenum)(unsafe.Pointer(severities)), (*C.GLsizei)(unsafe.Pointer(lengths)), (*C.GLchar)(unsafe.Pointer(messageLog)))
+ return (uint32)(ret)
+}
+func GetDebugMessageLogKHR(count uint32, bufSize int32, sources *uint32, types *uint32, ids *uint32, severities *uint32, lengths *int32, messageLog *uint8) uint32 {
+ ret := C.glowGetDebugMessageLogKHR(gpGetDebugMessageLogKHR, (C.GLuint)(count), (C.GLsizei)(bufSize), (*C.GLenum)(unsafe.Pointer(sources)), (*C.GLenum)(unsafe.Pointer(types)), (*C.GLuint)(unsafe.Pointer(ids)), (*C.GLenum)(unsafe.Pointer(severities)), (*C.GLsizei)(unsafe.Pointer(lengths)), (*C.GLchar)(unsafe.Pointer(messageLog)))
+ return (uint32)(ret)
+}
+func GetDoubleIndexedvEXT(target uint32, index uint32, data *float64) {
+ C.glowGetDoubleIndexedvEXT(gpGetDoubleIndexedvEXT, (C.GLenum)(target), (C.GLuint)(index), (*C.GLdouble)(unsafe.Pointer(data)))
+}
+func GetDoublei_v(target uint32, index uint32, data *float64) {
+ C.glowGetDoublei_v(gpGetDoublei_v, (C.GLenum)(target), (C.GLuint)(index), (*C.GLdouble)(unsafe.Pointer(data)))
+}
+func GetDoublei_vEXT(pname uint32, index uint32, params *float64) {
+ C.glowGetDoublei_vEXT(gpGetDoublei_vEXT, (C.GLenum)(pname), (C.GLuint)(index), (*C.GLdouble)(unsafe.Pointer(params)))
+}
+func GetDoublev(pname uint32, data *float64) {
+ C.glowGetDoublev(gpGetDoublev, (C.GLenum)(pname), (*C.GLdouble)(unsafe.Pointer(data)))
+}
+
+// return error information
+func GetError() uint32 {
+ ret := C.glowGetError(gpGetError)
+ return (uint32)(ret)
+}
+func GetFirstPerfQueryIdINTEL(queryId *uint32) {
+ C.glowGetFirstPerfQueryIdINTEL(gpGetFirstPerfQueryIdINTEL, (*C.GLuint)(unsafe.Pointer(queryId)))
+}
+func GetFloatIndexedvEXT(target uint32, index uint32, data *float32) {
+ C.glowGetFloatIndexedvEXT(gpGetFloatIndexedvEXT, (C.GLenum)(target), (C.GLuint)(index), (*C.GLfloat)(unsafe.Pointer(data)))
+}
+func GetFloati_v(target uint32, index uint32, data *float32) {
+ C.glowGetFloati_v(gpGetFloati_v, (C.GLenum)(target), (C.GLuint)(index), (*C.GLfloat)(unsafe.Pointer(data)))
+}
+func GetFloati_vEXT(pname uint32, index uint32, params *float32) {
+ C.glowGetFloati_vEXT(gpGetFloati_vEXT, (C.GLenum)(pname), (C.GLuint)(index), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func GetFloatv(pname uint32, data *float32) {
+ C.glowGetFloatv(gpGetFloatv, (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(data)))
+}
+
+// query the bindings of color indices to user-defined varying out variables
+func GetFragDataIndex(program uint32, name *uint8) int32 {
+ ret := C.glowGetFragDataIndex(gpGetFragDataIndex, (C.GLuint)(program), (*C.GLchar)(unsafe.Pointer(name)))
+ return (int32)(ret)
+}
+
+// query the bindings of color numbers to user-defined varying out variables
+func GetFragDataLocation(program uint32, name *uint8) int32 {
+ ret := C.glowGetFragDataLocation(gpGetFragDataLocation, (C.GLuint)(program), (*C.GLchar)(unsafe.Pointer(name)))
+ return (int32)(ret)
+}
+
+// retrieve information about attachments of a bound framebuffer object
+func GetFramebufferAttachmentParameteriv(target uint32, attachment uint32, pname uint32, params *int32) {
+ C.glowGetFramebufferAttachmentParameteriv(gpGetFramebufferAttachmentParameteriv, (C.GLenum)(target), (C.GLenum)(attachment), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+
+// retrieve a named parameter from a framebuffer
+func GetFramebufferParameteriv(target uint32, pname uint32, params *int32) {
+ C.glowGetFramebufferParameteriv(gpGetFramebufferParameteriv, (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetFramebufferParameterivEXT(framebuffer uint32, pname uint32, params *int32) {
+ C.glowGetFramebufferParameterivEXT(gpGetFramebufferParameterivEXT, (C.GLuint)(framebuffer), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetFramebufferParameterivMESA(target uint32, pname uint32, params *int32) {
+ C.glowGetFramebufferParameterivMESA(gpGetFramebufferParameterivMESA, (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+
+// check if the rendering context has not been lost due to software or hardware issues
+func GetGraphicsResetStatus() uint32 {
+ ret := C.glowGetGraphicsResetStatus(gpGetGraphicsResetStatus)
+ return (uint32)(ret)
+}
+func GetGraphicsResetStatusARB() uint32 {
+ ret := C.glowGetGraphicsResetStatusARB(gpGetGraphicsResetStatusARB)
+ return (uint32)(ret)
+}
+func GetGraphicsResetStatusKHR() uint32 {
+ ret := C.glowGetGraphicsResetStatusKHR(gpGetGraphicsResetStatusKHR)
+ return (uint32)(ret)
+}
+func GetImageHandleARB(texture uint32, level int32, layered bool, layer int32, format uint32) uint64 {
+ ret := C.glowGetImageHandleARB(gpGetImageHandleARB, (C.GLuint)(texture), (C.GLint)(level), (C.GLboolean)(boolToInt(layered)), (C.GLint)(layer), (C.GLenum)(format))
+ return (uint64)(ret)
+}
+func GetImageHandleNV(texture uint32, level int32, layered bool, layer int32, format uint32) uint64 {
+ ret := C.glowGetImageHandleNV(gpGetImageHandleNV, (C.GLuint)(texture), (C.GLint)(level), (C.GLboolean)(boolToInt(layered)), (C.GLint)(layer), (C.GLenum)(format))
+ return (uint64)(ret)
+}
+func GetInteger64i_v(target uint32, index uint32, data *int64) {
+ C.glowGetInteger64i_v(gpGetInteger64i_v, (C.GLenum)(target), (C.GLuint)(index), (*C.GLint64)(unsafe.Pointer(data)))
+}
+func GetInteger64v(pname uint32, data *int64) {
+ C.glowGetInteger64v(gpGetInteger64v, (C.GLenum)(pname), (*C.GLint64)(unsafe.Pointer(data)))
+}
+func GetIntegerIndexedvEXT(target uint32, index uint32, data *int32) {
+ C.glowGetIntegerIndexedvEXT(gpGetIntegerIndexedvEXT, (C.GLenum)(target), (C.GLuint)(index), (*C.GLint)(unsafe.Pointer(data)))
+}
+func GetIntegeri_v(target uint32, index uint32, data *int32) {
+ C.glowGetIntegeri_v(gpGetIntegeri_v, (C.GLenum)(target), (C.GLuint)(index), (*C.GLint)(unsafe.Pointer(data)))
+}
+func GetIntegerui64i_vNV(value uint32, index uint32, result *uint64) {
+ C.glowGetIntegerui64i_vNV(gpGetIntegerui64i_vNV, (C.GLenum)(value), (C.GLuint)(index), (*C.GLuint64EXT)(unsafe.Pointer(result)))
+}
+func GetIntegerui64vNV(value uint32, result *uint64) {
+ C.glowGetIntegerui64vNV(gpGetIntegerui64vNV, (C.GLenum)(value), (*C.GLuint64EXT)(unsafe.Pointer(result)))
+}
+func GetIntegerv(pname uint32, data *int32) {
+ C.glowGetIntegerv(gpGetIntegerv, (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(data)))
+}
+func GetInternalformatSampleivNV(target uint32, internalformat uint32, samples int32, pname uint32, count int32, params *int32) {
+ C.glowGetInternalformatSampleivNV(gpGetInternalformatSampleivNV, (C.GLenum)(target), (C.GLenum)(internalformat), (C.GLsizei)(samples), (C.GLenum)(pname), (C.GLsizei)(count), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetInternalformati64v(target uint32, internalformat uint32, pname uint32, count int32, params *int64) {
+ C.glowGetInternalformati64v(gpGetInternalformati64v, (C.GLenum)(target), (C.GLenum)(internalformat), (C.GLenum)(pname), (C.GLsizei)(count), (*C.GLint64)(unsafe.Pointer(params)))
+}
+
+// retrieve information about implementation-dependent support for internal formats
+func GetInternalformativ(target uint32, internalformat uint32, pname uint32, count int32, params *int32) {
+ C.glowGetInternalformativ(gpGetInternalformativ, (C.GLenum)(target), (C.GLenum)(internalformat), (C.GLenum)(pname), (C.GLsizei)(count), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetMemoryObjectDetachedResourcesuivNV(memory uint32, pname uint32, first int32, count int32, params *uint32) {
+ C.glowGetMemoryObjectDetachedResourcesuivNV(gpGetMemoryObjectDetachedResourcesuivNV, (C.GLuint)(memory), (C.GLenum)(pname), (C.GLint)(first), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(params)))
+}
+func GetMultiTexEnvfvEXT(texunit uint32, target uint32, pname uint32, params *float32) {
+ C.glowGetMultiTexEnvfvEXT(gpGetMultiTexEnvfvEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func GetMultiTexEnvivEXT(texunit uint32, target uint32, pname uint32, params *int32) {
+ C.glowGetMultiTexEnvivEXT(gpGetMultiTexEnvivEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetMultiTexGendvEXT(texunit uint32, coord uint32, pname uint32, params *float64) {
+ C.glowGetMultiTexGendvEXT(gpGetMultiTexGendvEXT, (C.GLenum)(texunit), (C.GLenum)(coord), (C.GLenum)(pname), (*C.GLdouble)(unsafe.Pointer(params)))
+}
+func GetMultiTexGenfvEXT(texunit uint32, coord uint32, pname uint32, params *float32) {
+ C.glowGetMultiTexGenfvEXT(gpGetMultiTexGenfvEXT, (C.GLenum)(texunit), (C.GLenum)(coord), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func GetMultiTexGenivEXT(texunit uint32, coord uint32, pname uint32, params *int32) {
+ C.glowGetMultiTexGenivEXT(gpGetMultiTexGenivEXT, (C.GLenum)(texunit), (C.GLenum)(coord), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetMultiTexImageEXT(texunit uint32, target uint32, level int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowGetMultiTexImageEXT(gpGetMultiTexImageEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+func GetMultiTexLevelParameterfvEXT(texunit uint32, target uint32, level int32, pname uint32, params *float32) {
+ C.glowGetMultiTexLevelParameterfvEXT(gpGetMultiTexLevelParameterfvEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func GetMultiTexLevelParameterivEXT(texunit uint32, target uint32, level int32, pname uint32, params *int32) {
+ C.glowGetMultiTexLevelParameterivEXT(gpGetMultiTexLevelParameterivEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetMultiTexParameterIivEXT(texunit uint32, target uint32, pname uint32, params *int32) {
+ C.glowGetMultiTexParameterIivEXT(gpGetMultiTexParameterIivEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetMultiTexParameterIuivEXT(texunit uint32, target uint32, pname uint32, params *uint32) {
+ C.glowGetMultiTexParameterIuivEXT(gpGetMultiTexParameterIuivEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLenum)(pname), (*C.GLuint)(unsafe.Pointer(params)))
+}
+func GetMultiTexParameterfvEXT(texunit uint32, target uint32, pname uint32, params *float32) {
+ C.glowGetMultiTexParameterfvEXT(gpGetMultiTexParameterfvEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func GetMultiTexParameterivEXT(texunit uint32, target uint32, pname uint32, params *int32) {
+ C.glowGetMultiTexParameterivEXT(gpGetMultiTexParameterivEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+
+// retrieve the location of a sample
+func GetMultisamplefv(pname uint32, index uint32, val *float32) {
+ C.glowGetMultisamplefv(gpGetMultisamplefv, (C.GLenum)(pname), (C.GLuint)(index), (*C.GLfloat)(unsafe.Pointer(val)))
+}
+
+// return parameters of a buffer object
+func GetNamedBufferParameteri64v(buffer uint32, pname uint32, params *int64) {
+ C.glowGetNamedBufferParameteri64v(gpGetNamedBufferParameteri64v, (C.GLuint)(buffer), (C.GLenum)(pname), (*C.GLint64)(unsafe.Pointer(params)))
+}
+
+// return parameters of a buffer object
+func GetNamedBufferParameteriv(buffer uint32, pname uint32, params *int32) {
+ C.glowGetNamedBufferParameteriv(gpGetNamedBufferParameteriv, (C.GLuint)(buffer), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetNamedBufferParameterivEXT(buffer uint32, pname uint32, params *int32) {
+ C.glowGetNamedBufferParameterivEXT(gpGetNamedBufferParameterivEXT, (C.GLuint)(buffer), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetNamedBufferParameterui64vNV(buffer uint32, pname uint32, params *uint64) {
+ C.glowGetNamedBufferParameterui64vNV(gpGetNamedBufferParameterui64vNV, (C.GLuint)(buffer), (C.GLenum)(pname), (*C.GLuint64EXT)(unsafe.Pointer(params)))
+}
+
+// return the pointer to a mapped buffer object's data store
+func GetNamedBufferPointerv(buffer uint32, pname uint32, params *unsafe.Pointer) {
+ C.glowGetNamedBufferPointerv(gpGetNamedBufferPointerv, (C.GLuint)(buffer), (C.GLenum)(pname), params)
+}
+func GetNamedBufferPointervEXT(buffer uint32, pname uint32, params *unsafe.Pointer) {
+ C.glowGetNamedBufferPointervEXT(gpGetNamedBufferPointervEXT, (C.GLuint)(buffer), (C.GLenum)(pname), params)
+}
+
+// returns a subset of a buffer object's data store
+func GetNamedBufferSubData(buffer uint32, offset int, size int, data unsafe.Pointer) {
+ C.glowGetNamedBufferSubData(gpGetNamedBufferSubData, (C.GLuint)(buffer), (C.GLintptr)(offset), (C.GLsizeiptr)(size), data)
+}
+func GetNamedBufferSubDataEXT(buffer uint32, offset int, size int, data unsafe.Pointer) {
+ C.glowGetNamedBufferSubDataEXT(gpGetNamedBufferSubDataEXT, (C.GLuint)(buffer), (C.GLintptr)(offset), (C.GLsizeiptr)(size), data)
+}
+
+// retrieve information about attachments of a framebuffer object
+func GetNamedFramebufferAttachmentParameteriv(framebuffer uint32, attachment uint32, pname uint32, params *int32) {
+ C.glowGetNamedFramebufferAttachmentParameteriv(gpGetNamedFramebufferAttachmentParameteriv, (C.GLuint)(framebuffer), (C.GLenum)(attachment), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetNamedFramebufferAttachmentParameterivEXT(framebuffer uint32, attachment uint32, pname uint32, params *int32) {
+ C.glowGetNamedFramebufferAttachmentParameterivEXT(gpGetNamedFramebufferAttachmentParameterivEXT, (C.GLuint)(framebuffer), (C.GLenum)(attachment), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+
+// query a named parameter of a framebuffer object
+func GetNamedFramebufferParameteriv(framebuffer uint32, pname uint32, param *int32) {
+ C.glowGetNamedFramebufferParameteriv(gpGetNamedFramebufferParameteriv, (C.GLuint)(framebuffer), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(param)))
+}
+func GetNamedFramebufferParameterivEXT(framebuffer uint32, pname uint32, params *int32) {
+ C.glowGetNamedFramebufferParameterivEXT(gpGetNamedFramebufferParameterivEXT, (C.GLuint)(framebuffer), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetNamedProgramLocalParameterIivEXT(program uint32, target uint32, index uint32, params *int32) {
+ C.glowGetNamedProgramLocalParameterIivEXT(gpGetNamedProgramLocalParameterIivEXT, (C.GLuint)(program), (C.GLenum)(target), (C.GLuint)(index), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetNamedProgramLocalParameterIuivEXT(program uint32, target uint32, index uint32, params *uint32) {
+ C.glowGetNamedProgramLocalParameterIuivEXT(gpGetNamedProgramLocalParameterIuivEXT, (C.GLuint)(program), (C.GLenum)(target), (C.GLuint)(index), (*C.GLuint)(unsafe.Pointer(params)))
+}
+func GetNamedProgramLocalParameterdvEXT(program uint32, target uint32, index uint32, params *float64) {
+ C.glowGetNamedProgramLocalParameterdvEXT(gpGetNamedProgramLocalParameterdvEXT, (C.GLuint)(program), (C.GLenum)(target), (C.GLuint)(index), (*C.GLdouble)(unsafe.Pointer(params)))
+}
+func GetNamedProgramLocalParameterfvEXT(program uint32, target uint32, index uint32, params *float32) {
+ C.glowGetNamedProgramLocalParameterfvEXT(gpGetNamedProgramLocalParameterfvEXT, (C.GLuint)(program), (C.GLenum)(target), (C.GLuint)(index), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func GetNamedProgramStringEXT(program uint32, target uint32, pname uint32, xstring unsafe.Pointer) {
+ C.glowGetNamedProgramStringEXT(gpGetNamedProgramStringEXT, (C.GLuint)(program), (C.GLenum)(target), (C.GLenum)(pname), xstring)
+}
+func GetNamedProgramivEXT(program uint32, target uint32, pname uint32, params *int32) {
+ C.glowGetNamedProgramivEXT(gpGetNamedProgramivEXT, (C.GLuint)(program), (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+
+// query a named parameter of a renderbuffer object
+func GetNamedRenderbufferParameteriv(renderbuffer uint32, pname uint32, params *int32) {
+ C.glowGetNamedRenderbufferParameteriv(gpGetNamedRenderbufferParameteriv, (C.GLuint)(renderbuffer), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetNamedRenderbufferParameterivEXT(renderbuffer uint32, pname uint32, params *int32) {
+ C.glowGetNamedRenderbufferParameterivEXT(gpGetNamedRenderbufferParameterivEXT, (C.GLuint)(renderbuffer), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetNamedStringARB(namelen int32, name *uint8, bufSize int32, stringlen *int32, xstring *uint8) {
+ C.glowGetNamedStringARB(gpGetNamedStringARB, (C.GLint)(namelen), (*C.GLchar)(unsafe.Pointer(name)), (C.GLsizei)(bufSize), (*C.GLint)(unsafe.Pointer(stringlen)), (*C.GLchar)(unsafe.Pointer(xstring)))
+}
+func GetNamedStringivARB(namelen int32, name *uint8, pname uint32, params *int32) {
+ C.glowGetNamedStringivARB(gpGetNamedStringivARB, (C.GLint)(namelen), (*C.GLchar)(unsafe.Pointer(name)), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetNextPerfQueryIdINTEL(queryId uint32, nextQueryId *uint32) {
+ C.glowGetNextPerfQueryIdINTEL(gpGetNextPerfQueryIdINTEL, (C.GLuint)(queryId), (*C.GLuint)(unsafe.Pointer(nextQueryId)))
+}
+
+// retrieve the label of a named object identified within a namespace
+func GetObjectLabel(identifier uint32, name uint32, bufSize int32, length *int32, label *uint8) {
+ C.glowGetObjectLabel(gpGetObjectLabel, (C.GLenum)(identifier), (C.GLuint)(name), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLchar)(unsafe.Pointer(label)))
+}
+func GetObjectLabelEXT(xtype uint32, object uint32, bufSize int32, length *int32, label *uint8) {
+ C.glowGetObjectLabelEXT(gpGetObjectLabelEXT, (C.GLenum)(xtype), (C.GLuint)(object), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLchar)(unsafe.Pointer(label)))
+}
+func GetObjectLabelKHR(identifier uint32, name uint32, bufSize int32, length *int32, label *uint8) {
+ C.glowGetObjectLabelKHR(gpGetObjectLabelKHR, (C.GLenum)(identifier), (C.GLuint)(name), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLchar)(unsafe.Pointer(label)))
+}
+
+// retrieve the label of a sync object identified by a pointer
+func GetObjectPtrLabel(ptr unsafe.Pointer, bufSize int32, length *int32, label *uint8) {
+ C.glowGetObjectPtrLabel(gpGetObjectPtrLabel, ptr, (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLchar)(unsafe.Pointer(label)))
+}
+func GetObjectPtrLabelKHR(ptr unsafe.Pointer, bufSize int32, length *int32, label *uint8) {
+ C.glowGetObjectPtrLabelKHR(gpGetObjectPtrLabelKHR, ptr, (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLchar)(unsafe.Pointer(label)))
+}
+func GetPathCommandsNV(path uint32, commands *uint8) {
+ C.glowGetPathCommandsNV(gpGetPathCommandsNV, (C.GLuint)(path), (*C.GLubyte)(unsafe.Pointer(commands)))
+}
+func GetPathCoordsNV(path uint32, coords *float32) {
+ C.glowGetPathCoordsNV(gpGetPathCoordsNV, (C.GLuint)(path), (*C.GLfloat)(unsafe.Pointer(coords)))
+}
+func GetPathDashArrayNV(path uint32, dashArray *float32) {
+ C.glowGetPathDashArrayNV(gpGetPathDashArrayNV, (C.GLuint)(path), (*C.GLfloat)(unsafe.Pointer(dashArray)))
+}
+func GetPathLengthNV(path uint32, startSegment int32, numSegments int32) float32 {
+ ret := C.glowGetPathLengthNV(gpGetPathLengthNV, (C.GLuint)(path), (C.GLsizei)(startSegment), (C.GLsizei)(numSegments))
+ return (float32)(ret)
+}
+func GetPathMetricRangeNV(metricQueryMask uint32, firstPathName uint32, numPaths int32, stride int32, metrics *float32) {
+ C.glowGetPathMetricRangeNV(gpGetPathMetricRangeNV, (C.GLbitfield)(metricQueryMask), (C.GLuint)(firstPathName), (C.GLsizei)(numPaths), (C.GLsizei)(stride), (*C.GLfloat)(unsafe.Pointer(metrics)))
+}
+func GetPathMetricsNV(metricQueryMask uint32, numPaths int32, pathNameType uint32, paths unsafe.Pointer, pathBase uint32, stride int32, metrics *float32) {
+ C.glowGetPathMetricsNV(gpGetPathMetricsNV, (C.GLbitfield)(metricQueryMask), (C.GLsizei)(numPaths), (C.GLenum)(pathNameType), paths, (C.GLuint)(pathBase), (C.GLsizei)(stride), (*C.GLfloat)(unsafe.Pointer(metrics)))
+}
+func GetPathParameterfvNV(path uint32, pname uint32, value *float32) {
+ C.glowGetPathParameterfvNV(gpGetPathParameterfvNV, (C.GLuint)(path), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func GetPathParameterivNV(path uint32, pname uint32, value *int32) {
+ C.glowGetPathParameterivNV(gpGetPathParameterivNV, (C.GLuint)(path), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(value)))
+}
+func GetPathSpacingNV(pathListMode uint32, numPaths int32, pathNameType uint32, paths unsafe.Pointer, pathBase uint32, advanceScale float32, kerningScale float32, transformType uint32, returnedSpacing *float32) {
+ C.glowGetPathSpacingNV(gpGetPathSpacingNV, (C.GLenum)(pathListMode), (C.GLsizei)(numPaths), (C.GLenum)(pathNameType), paths, (C.GLuint)(pathBase), (C.GLfloat)(advanceScale), (C.GLfloat)(kerningScale), (C.GLenum)(transformType), (*C.GLfloat)(unsafe.Pointer(returnedSpacing)))
+}
+func GetPerfCounterInfoINTEL(queryId uint32, counterId uint32, counterNameLength uint32, counterName *uint8, counterDescLength uint32, counterDesc *uint8, counterOffset *uint32, counterDataSize *uint32, counterTypeEnum *uint32, counterDataTypeEnum *uint32, rawCounterMaxValue *uint64) {
+ C.glowGetPerfCounterInfoINTEL(gpGetPerfCounterInfoINTEL, (C.GLuint)(queryId), (C.GLuint)(counterId), (C.GLuint)(counterNameLength), (*C.GLchar)(unsafe.Pointer(counterName)), (C.GLuint)(counterDescLength), (*C.GLchar)(unsafe.Pointer(counterDesc)), (*C.GLuint)(unsafe.Pointer(counterOffset)), (*C.GLuint)(unsafe.Pointer(counterDataSize)), (*C.GLuint)(unsafe.Pointer(counterTypeEnum)), (*C.GLuint)(unsafe.Pointer(counterDataTypeEnum)), (*C.GLuint64)(unsafe.Pointer(rawCounterMaxValue)))
+}
+func GetPerfMonitorCounterDataAMD(monitor uint32, pname uint32, dataSize int32, data *uint32, bytesWritten *int32) {
+ C.glowGetPerfMonitorCounterDataAMD(gpGetPerfMonitorCounterDataAMD, (C.GLuint)(monitor), (C.GLenum)(pname), (C.GLsizei)(dataSize), (*C.GLuint)(unsafe.Pointer(data)), (*C.GLint)(unsafe.Pointer(bytesWritten)))
+}
+func GetPerfMonitorCounterInfoAMD(group uint32, counter uint32, pname uint32, data unsafe.Pointer) {
+ C.glowGetPerfMonitorCounterInfoAMD(gpGetPerfMonitorCounterInfoAMD, (C.GLuint)(group), (C.GLuint)(counter), (C.GLenum)(pname), data)
+}
+func GetPerfMonitorCounterStringAMD(group uint32, counter uint32, bufSize int32, length *int32, counterString *uint8) {
+ C.glowGetPerfMonitorCounterStringAMD(gpGetPerfMonitorCounterStringAMD, (C.GLuint)(group), (C.GLuint)(counter), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLchar)(unsafe.Pointer(counterString)))
+}
+func GetPerfMonitorCountersAMD(group uint32, numCounters *int32, maxActiveCounters *int32, counterSize int32, counters *uint32) {
+ C.glowGetPerfMonitorCountersAMD(gpGetPerfMonitorCountersAMD, (C.GLuint)(group), (*C.GLint)(unsafe.Pointer(numCounters)), (*C.GLint)(unsafe.Pointer(maxActiveCounters)), (C.GLsizei)(counterSize), (*C.GLuint)(unsafe.Pointer(counters)))
+}
+func GetPerfMonitorGroupStringAMD(group uint32, bufSize int32, length *int32, groupString *uint8) {
+ C.glowGetPerfMonitorGroupStringAMD(gpGetPerfMonitorGroupStringAMD, (C.GLuint)(group), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLchar)(unsafe.Pointer(groupString)))
+}
+func GetPerfMonitorGroupsAMD(numGroups *int32, groupsSize int32, groups *uint32) {
+ C.glowGetPerfMonitorGroupsAMD(gpGetPerfMonitorGroupsAMD, (*C.GLint)(unsafe.Pointer(numGroups)), (C.GLsizei)(groupsSize), (*C.GLuint)(unsafe.Pointer(groups)))
+}
+func GetPerfQueryDataINTEL(queryHandle uint32, flags uint32, dataSize int32, data unsafe.Pointer, bytesWritten *uint32) {
+ C.glowGetPerfQueryDataINTEL(gpGetPerfQueryDataINTEL, (C.GLuint)(queryHandle), (C.GLuint)(flags), (C.GLsizei)(dataSize), data, (*C.GLuint)(unsafe.Pointer(bytesWritten)))
+}
+func GetPerfQueryIdByNameINTEL(queryName *uint8, queryId *uint32) {
+ C.glowGetPerfQueryIdByNameINTEL(gpGetPerfQueryIdByNameINTEL, (*C.GLchar)(unsafe.Pointer(queryName)), (*C.GLuint)(unsafe.Pointer(queryId)))
+}
+func GetPerfQueryInfoINTEL(queryId uint32, queryNameLength uint32, queryName *uint8, dataSize *uint32, noCounters *uint32, noInstances *uint32, capsMask *uint32) {
+ C.glowGetPerfQueryInfoINTEL(gpGetPerfQueryInfoINTEL, (C.GLuint)(queryId), (C.GLuint)(queryNameLength), (*C.GLchar)(unsafe.Pointer(queryName)), (*C.GLuint)(unsafe.Pointer(dataSize)), (*C.GLuint)(unsafe.Pointer(noCounters)), (*C.GLuint)(unsafe.Pointer(noInstances)), (*C.GLuint)(unsafe.Pointer(capsMask)))
+}
+func GetPointerIndexedvEXT(target uint32, index uint32, data *unsafe.Pointer) {
+ C.glowGetPointerIndexedvEXT(gpGetPointerIndexedvEXT, (C.GLenum)(target), (C.GLuint)(index), data)
+}
+func GetPointeri_vEXT(pname uint32, index uint32, params *unsafe.Pointer) {
+ C.glowGetPointeri_vEXT(gpGetPointeri_vEXT, (C.GLenum)(pname), (C.GLuint)(index), params)
+}
+
+// return the address of the specified pointer
+func GetPointerv(pname uint32, params *unsafe.Pointer) {
+ C.glowGetPointerv(gpGetPointerv, (C.GLenum)(pname), params)
+}
+func GetPointervKHR(pname uint32, params *unsafe.Pointer) {
+ C.glowGetPointervKHR(gpGetPointervKHR, (C.GLenum)(pname), params)
+}
+
+// return a binary representation of a program object's compiled and linked executable source
+func GetProgramBinary(program uint32, bufSize int32, length *int32, binaryFormat *uint32, binary unsafe.Pointer) {
+ C.glowGetProgramBinary(gpGetProgramBinary, (C.GLuint)(program), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLenum)(unsafe.Pointer(binaryFormat)), binary)
+}
+
+// Returns the information log for a program object
+func GetProgramInfoLog(program uint32, bufSize int32, length *int32, infoLog *uint8) {
+ C.glowGetProgramInfoLog(gpGetProgramInfoLog, (C.GLuint)(program), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLchar)(unsafe.Pointer(infoLog)))
+}
+func GetProgramInterfaceiv(program uint32, programInterface uint32, pname uint32, params *int32) {
+ C.glowGetProgramInterfaceiv(gpGetProgramInterfaceiv, (C.GLuint)(program), (C.GLenum)(programInterface), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+
+// retrieve the info log string from a program pipeline object
+func GetProgramPipelineInfoLog(pipeline uint32, bufSize int32, length *int32, infoLog *uint8) {
+ C.glowGetProgramPipelineInfoLog(gpGetProgramPipelineInfoLog, (C.GLuint)(pipeline), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLchar)(unsafe.Pointer(infoLog)))
+}
+func GetProgramPipelineInfoLogEXT(pipeline uint32, bufSize int32, length *int32, infoLog *uint8) {
+ C.glowGetProgramPipelineInfoLogEXT(gpGetProgramPipelineInfoLogEXT, (C.GLuint)(pipeline), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLchar)(unsafe.Pointer(infoLog)))
+}
+func GetProgramPipelineiv(pipeline uint32, pname uint32, params *int32) {
+ C.glowGetProgramPipelineiv(gpGetProgramPipelineiv, (C.GLuint)(pipeline), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetProgramPipelineivEXT(pipeline uint32, pname uint32, params *int32) {
+ C.glowGetProgramPipelineivEXT(gpGetProgramPipelineivEXT, (C.GLuint)(pipeline), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+
+// query the index of a named resource within a program
+func GetProgramResourceIndex(program uint32, programInterface uint32, name *uint8) uint32 {
+ ret := C.glowGetProgramResourceIndex(gpGetProgramResourceIndex, (C.GLuint)(program), (C.GLenum)(programInterface), (*C.GLchar)(unsafe.Pointer(name)))
+ return (uint32)(ret)
+}
+
+// query the location of a named resource within a program
+func GetProgramResourceLocation(program uint32, programInterface uint32, name *uint8) int32 {
+ ret := C.glowGetProgramResourceLocation(gpGetProgramResourceLocation, (C.GLuint)(program), (C.GLenum)(programInterface), (*C.GLchar)(unsafe.Pointer(name)))
+ return (int32)(ret)
+}
+
+// query the fragment color index of a named variable within a program
+func GetProgramResourceLocationIndex(program uint32, programInterface uint32, name *uint8) int32 {
+ ret := C.glowGetProgramResourceLocationIndex(gpGetProgramResourceLocationIndex, (C.GLuint)(program), (C.GLenum)(programInterface), (*C.GLchar)(unsafe.Pointer(name)))
+ return (int32)(ret)
+}
+
+// query the name of an indexed resource within a program
+func GetProgramResourceName(program uint32, programInterface uint32, index uint32, bufSize int32, length *int32, name *uint8) {
+ C.glowGetProgramResourceName(gpGetProgramResourceName, (C.GLuint)(program), (C.GLenum)(programInterface), (C.GLuint)(index), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLchar)(unsafe.Pointer(name)))
+}
+func GetProgramResourcefvNV(program uint32, programInterface uint32, index uint32, propCount int32, props *uint32, count int32, length *int32, params *float32) {
+ C.glowGetProgramResourcefvNV(gpGetProgramResourcefvNV, (C.GLuint)(program), (C.GLenum)(programInterface), (C.GLuint)(index), (C.GLsizei)(propCount), (*C.GLenum)(unsafe.Pointer(props)), (C.GLsizei)(count), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func GetProgramResourceiv(program uint32, programInterface uint32, index uint32, propCount int32, props *uint32, count int32, length *int32, params *int32) {
+ C.glowGetProgramResourceiv(gpGetProgramResourceiv, (C.GLuint)(program), (C.GLenum)(programInterface), (C.GLuint)(index), (C.GLsizei)(propCount), (*C.GLenum)(unsafe.Pointer(props)), (C.GLsizei)(count), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetProgramStageiv(program uint32, shadertype uint32, pname uint32, values *int32) {
+ C.glowGetProgramStageiv(gpGetProgramStageiv, (C.GLuint)(program), (C.GLenum)(shadertype), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(values)))
+}
+
+// Returns a parameter from a program object
+func GetProgramiv(program uint32, pname uint32, params *int32) {
+ C.glowGetProgramiv(gpGetProgramiv, (C.GLuint)(program), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetQueryBufferObjecti64v(id uint32, buffer uint32, pname uint32, offset int) {
+ C.glowGetQueryBufferObjecti64v(gpGetQueryBufferObjecti64v, (C.GLuint)(id), (C.GLuint)(buffer), (C.GLenum)(pname), (C.GLintptr)(offset))
+}
+func GetQueryBufferObjectiv(id uint32, buffer uint32, pname uint32, offset int) {
+ C.glowGetQueryBufferObjectiv(gpGetQueryBufferObjectiv, (C.GLuint)(id), (C.GLuint)(buffer), (C.GLenum)(pname), (C.GLintptr)(offset))
+}
+func GetQueryBufferObjectui64v(id uint32, buffer uint32, pname uint32, offset int) {
+ C.glowGetQueryBufferObjectui64v(gpGetQueryBufferObjectui64v, (C.GLuint)(id), (C.GLuint)(buffer), (C.GLenum)(pname), (C.GLintptr)(offset))
+}
+func GetQueryBufferObjectuiv(id uint32, buffer uint32, pname uint32, offset int) {
+ C.glowGetQueryBufferObjectuiv(gpGetQueryBufferObjectuiv, (C.GLuint)(id), (C.GLuint)(buffer), (C.GLenum)(pname), (C.GLintptr)(offset))
+}
+
+// return parameters of an indexed query object target
+func GetQueryIndexediv(target uint32, index uint32, pname uint32, params *int32) {
+ C.glowGetQueryIndexediv(gpGetQueryIndexediv, (C.GLenum)(target), (C.GLuint)(index), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetQueryObjecti64v(id uint32, pname uint32, params *int64) {
+ C.glowGetQueryObjecti64v(gpGetQueryObjecti64v, (C.GLuint)(id), (C.GLenum)(pname), (*C.GLint64)(unsafe.Pointer(params)))
+}
+func GetQueryObjectiv(id uint32, pname uint32, params *int32) {
+ C.glowGetQueryObjectiv(gpGetQueryObjectiv, (C.GLuint)(id), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetQueryObjectui64v(id uint32, pname uint32, params *uint64) {
+ C.glowGetQueryObjectui64v(gpGetQueryObjectui64v, (C.GLuint)(id), (C.GLenum)(pname), (*C.GLuint64)(unsafe.Pointer(params)))
+}
+
+// return parameters of a query object
+func GetQueryObjectuiv(id uint32, pname uint32, params *uint32) {
+ C.glowGetQueryObjectuiv(gpGetQueryObjectuiv, (C.GLuint)(id), (C.GLenum)(pname), (*C.GLuint)(unsafe.Pointer(params)))
+}
+
+// return parameters of a query object target
+func GetQueryiv(target uint32, pname uint32, params *int32) {
+ C.glowGetQueryiv(gpGetQueryiv, (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+
+// retrieve information about a bound renderbuffer object
+func GetRenderbufferParameteriv(target uint32, pname uint32, params *int32) {
+ C.glowGetRenderbufferParameteriv(gpGetRenderbufferParameteriv, (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetSamplerParameterIiv(sampler uint32, pname uint32, params *int32) {
+ C.glowGetSamplerParameterIiv(gpGetSamplerParameterIiv, (C.GLuint)(sampler), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetSamplerParameterIuiv(sampler uint32, pname uint32, params *uint32) {
+ C.glowGetSamplerParameterIuiv(gpGetSamplerParameterIuiv, (C.GLuint)(sampler), (C.GLenum)(pname), (*C.GLuint)(unsafe.Pointer(params)))
+}
+func GetSamplerParameterfv(sampler uint32, pname uint32, params *float32) {
+ C.glowGetSamplerParameterfv(gpGetSamplerParameterfv, (C.GLuint)(sampler), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func GetSamplerParameteriv(sampler uint32, pname uint32, params *int32) {
+ C.glowGetSamplerParameteriv(gpGetSamplerParameteriv, (C.GLuint)(sampler), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+
+// Returns the information log for a shader object
+func GetShaderInfoLog(shader uint32, bufSize int32, length *int32, infoLog *uint8) {
+ C.glowGetShaderInfoLog(gpGetShaderInfoLog, (C.GLuint)(shader), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLchar)(unsafe.Pointer(infoLog)))
+}
+
+// retrieve the range and precision for numeric formats supported by the shader compiler
+func GetShaderPrecisionFormat(shadertype uint32, precisiontype uint32, xrange *int32, precision *int32) {
+ C.glowGetShaderPrecisionFormat(gpGetShaderPrecisionFormat, (C.GLenum)(shadertype), (C.GLenum)(precisiontype), (*C.GLint)(unsafe.Pointer(xrange)), (*C.GLint)(unsafe.Pointer(precision)))
+}
+
+// Returns the source code string from a shader object
+func GetShaderSource(shader uint32, bufSize int32, length *int32, source *uint8) {
+ C.glowGetShaderSource(gpGetShaderSource, (C.GLuint)(shader), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLchar)(unsafe.Pointer(source)))
+}
+
+// Returns a parameter from a shader object
+func GetShaderiv(shader uint32, pname uint32, params *int32) {
+ C.glowGetShaderiv(gpGetShaderiv, (C.GLuint)(shader), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetShadingRateImagePaletteNV(viewport uint32, entry uint32, rate *uint32) {
+ C.glowGetShadingRateImagePaletteNV(gpGetShadingRateImagePaletteNV, (C.GLuint)(viewport), (C.GLuint)(entry), (*C.GLenum)(unsafe.Pointer(rate)))
+}
+func GetShadingRateSampleLocationivNV(rate uint32, samples uint32, index uint32, location *int32) {
+ C.glowGetShadingRateSampleLocationivNV(gpGetShadingRateSampleLocationivNV, (C.GLenum)(rate), (C.GLuint)(samples), (C.GLuint)(index), (*C.GLint)(unsafe.Pointer(location)))
+}
+func GetStageIndexNV(shadertype uint32) uint16 {
+ ret := C.glowGetStageIndexNV(gpGetStageIndexNV, (C.GLenum)(shadertype))
+ return (uint16)(ret)
+}
+
+// return a string describing the current GL connection
+func GetString(name uint32) *uint8 {
+ ret := C.glowGetString(gpGetString, (C.GLenum)(name))
+ return (*uint8)(ret)
+}
+func GetStringi(name uint32, index uint32) *uint8 {
+ ret := C.glowGetStringi(gpGetStringi, (C.GLenum)(name), (C.GLuint)(index))
+ return (*uint8)(ret)
+}
+
+// retrieve the index of a subroutine uniform of a given shader stage within a program
+func GetSubroutineIndex(program uint32, shadertype uint32, name *uint8) uint32 {
+ ret := C.glowGetSubroutineIndex(gpGetSubroutineIndex, (C.GLuint)(program), (C.GLenum)(shadertype), (*C.GLchar)(unsafe.Pointer(name)))
+ return (uint32)(ret)
+}
+
+// retrieve the location of a subroutine uniform of a given shader stage within a program
+func GetSubroutineUniformLocation(program uint32, shadertype uint32, name *uint8) int32 {
+ ret := C.glowGetSubroutineUniformLocation(gpGetSubroutineUniformLocation, (C.GLuint)(program), (C.GLenum)(shadertype), (*C.GLchar)(unsafe.Pointer(name)))
+ return (int32)(ret)
+}
+
+// query the properties of a sync object
+func GetSynciv(sync uintptr, pname uint32, count int32, length *int32, values *int32) {
+ C.glowGetSynciv(gpGetSynciv, (C.GLsync)(sync), (C.GLenum)(pname), (C.GLsizei)(count), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLint)(unsafe.Pointer(values)))
+}
+
+// return a texture image
+func GetTexImage(target uint32, level int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowGetTexImage(gpGetTexImage, (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+func GetTexLevelParameterfv(target uint32, level int32, pname uint32, params *float32) {
+ C.glowGetTexLevelParameterfv(gpGetTexLevelParameterfv, (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func GetTexLevelParameteriv(target uint32, level int32, pname uint32, params *int32) {
+ C.glowGetTexLevelParameteriv(gpGetTexLevelParameteriv, (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetTexParameterIiv(target uint32, pname uint32, params *int32) {
+ C.glowGetTexParameterIiv(gpGetTexParameterIiv, (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetTexParameterIuiv(target uint32, pname uint32, params *uint32) {
+ C.glowGetTexParameterIuiv(gpGetTexParameterIuiv, (C.GLenum)(target), (C.GLenum)(pname), (*C.GLuint)(unsafe.Pointer(params)))
+}
+func GetTexParameterfv(target uint32, pname uint32, params *float32) {
+ C.glowGetTexParameterfv(gpGetTexParameterfv, (C.GLenum)(target), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func GetTexParameteriv(target uint32, pname uint32, params *int32) {
+ C.glowGetTexParameteriv(gpGetTexParameteriv, (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetTextureHandleARB(texture uint32) uint64 {
+ ret := C.glowGetTextureHandleARB(gpGetTextureHandleARB, (C.GLuint)(texture))
+ return (uint64)(ret)
+}
+func GetTextureHandleNV(texture uint32) uint64 {
+ ret := C.glowGetTextureHandleNV(gpGetTextureHandleNV, (C.GLuint)(texture))
+ return (uint64)(ret)
+}
+
+// return a texture image
+func GetTextureImage(texture uint32, level int32, format uint32, xtype uint32, bufSize int32, pixels unsafe.Pointer) {
+ C.glowGetTextureImage(gpGetTextureImage, (C.GLuint)(texture), (C.GLint)(level), (C.GLenum)(format), (C.GLenum)(xtype), (C.GLsizei)(bufSize), pixels)
+}
+func GetTextureImageEXT(texture uint32, target uint32, level int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowGetTextureImageEXT(gpGetTextureImageEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+func GetTextureLevelParameterfv(texture uint32, level int32, pname uint32, params *float32) {
+ C.glowGetTextureLevelParameterfv(gpGetTextureLevelParameterfv, (C.GLuint)(texture), (C.GLint)(level), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func GetTextureLevelParameterfvEXT(texture uint32, target uint32, level int32, pname uint32, params *float32) {
+ C.glowGetTextureLevelParameterfvEXT(gpGetTextureLevelParameterfvEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func GetTextureLevelParameteriv(texture uint32, level int32, pname uint32, params *int32) {
+ C.glowGetTextureLevelParameteriv(gpGetTextureLevelParameteriv, (C.GLuint)(texture), (C.GLint)(level), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetTextureLevelParameterivEXT(texture uint32, target uint32, level int32, pname uint32, params *int32) {
+ C.glowGetTextureLevelParameterivEXT(gpGetTextureLevelParameterivEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetTextureParameterIiv(texture uint32, pname uint32, params *int32) {
+ C.glowGetTextureParameterIiv(gpGetTextureParameterIiv, (C.GLuint)(texture), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetTextureParameterIivEXT(texture uint32, target uint32, pname uint32, params *int32) {
+ C.glowGetTextureParameterIivEXT(gpGetTextureParameterIivEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetTextureParameterIuiv(texture uint32, pname uint32, params *uint32) {
+ C.glowGetTextureParameterIuiv(gpGetTextureParameterIuiv, (C.GLuint)(texture), (C.GLenum)(pname), (*C.GLuint)(unsafe.Pointer(params)))
+}
+func GetTextureParameterIuivEXT(texture uint32, target uint32, pname uint32, params *uint32) {
+ C.glowGetTextureParameterIuivEXT(gpGetTextureParameterIuivEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLenum)(pname), (*C.GLuint)(unsafe.Pointer(params)))
+}
+func GetTextureParameterfv(texture uint32, pname uint32, params *float32) {
+ C.glowGetTextureParameterfv(gpGetTextureParameterfv, (C.GLuint)(texture), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func GetTextureParameterfvEXT(texture uint32, target uint32, pname uint32, params *float32) {
+ C.glowGetTextureParameterfvEXT(gpGetTextureParameterfvEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func GetTextureParameteriv(texture uint32, pname uint32, params *int32) {
+ C.glowGetTextureParameteriv(gpGetTextureParameteriv, (C.GLuint)(texture), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetTextureParameterivEXT(texture uint32, target uint32, pname uint32, params *int32) {
+ C.glowGetTextureParameterivEXT(gpGetTextureParameterivEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetTextureSamplerHandleARB(texture uint32, sampler uint32) uint64 {
+ ret := C.glowGetTextureSamplerHandleARB(gpGetTextureSamplerHandleARB, (C.GLuint)(texture), (C.GLuint)(sampler))
+ return (uint64)(ret)
+}
+func GetTextureSamplerHandleNV(texture uint32, sampler uint32) uint64 {
+ ret := C.glowGetTextureSamplerHandleNV(gpGetTextureSamplerHandleNV, (C.GLuint)(texture), (C.GLuint)(sampler))
+ return (uint64)(ret)
+}
+
+// retrieve a sub-region of a texture image from a texture object
+func GetTextureSubImage(texture uint32, level int32, xoffset int32, yoffset int32, zoffset int32, width int32, height int32, depth int32, format uint32, xtype uint32, bufSize int32, pixels unsafe.Pointer) {
+ C.glowGetTextureSubImage(gpGetTextureSubImage, (C.GLuint)(texture), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(zoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLenum)(format), (C.GLenum)(xtype), (C.GLsizei)(bufSize), pixels)
+}
+
+// retrieve information about varying variables selected for transform feedback
+func GetTransformFeedbackVarying(program uint32, index uint32, bufSize int32, length *int32, size *int32, xtype *uint32, name *uint8) {
+ C.glowGetTransformFeedbackVarying(gpGetTransformFeedbackVarying, (C.GLuint)(program), (C.GLuint)(index), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLsizei)(unsafe.Pointer(size)), (*C.GLenum)(unsafe.Pointer(xtype)), (*C.GLchar)(unsafe.Pointer(name)))
+}
+func GetTransformFeedbacki64_v(xfb uint32, pname uint32, index uint32, param *int64) {
+ C.glowGetTransformFeedbacki64_v(gpGetTransformFeedbacki64_v, (C.GLuint)(xfb), (C.GLenum)(pname), (C.GLuint)(index), (*C.GLint64)(unsafe.Pointer(param)))
+}
+func GetTransformFeedbacki_v(xfb uint32, pname uint32, index uint32, param *int32) {
+ C.glowGetTransformFeedbacki_v(gpGetTransformFeedbacki_v, (C.GLuint)(xfb), (C.GLenum)(pname), (C.GLuint)(index), (*C.GLint)(unsafe.Pointer(param)))
+}
+
+// query the state of a transform feedback object.
+func GetTransformFeedbackiv(xfb uint32, pname uint32, param *int32) {
+ C.glowGetTransformFeedbackiv(gpGetTransformFeedbackiv, (C.GLuint)(xfb), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(param)))
+}
+
+// retrieve the index of a named uniform block
+func GetUniformBlockIndex(program uint32, uniformBlockName *uint8) uint32 {
+ ret := C.glowGetUniformBlockIndex(gpGetUniformBlockIndex, (C.GLuint)(program), (*C.GLchar)(unsafe.Pointer(uniformBlockName)))
+ return (uint32)(ret)
+}
+
+// retrieve the index of a named uniform block
+func GetUniformIndices(program uint32, uniformCount int32, uniformNames **uint8, uniformIndices *uint32) {
+ C.glowGetUniformIndices(gpGetUniformIndices, (C.GLuint)(program), (C.GLsizei)(uniformCount), (**C.GLchar)(unsafe.Pointer(uniformNames)), (*C.GLuint)(unsafe.Pointer(uniformIndices)))
+}
+
+// Returns the location of a uniform variable
+func GetUniformLocation(program uint32, name *uint8) int32 {
+ ret := C.glowGetUniformLocation(gpGetUniformLocation, (C.GLuint)(program), (*C.GLchar)(unsafe.Pointer(name)))
+ return (int32)(ret)
+}
+func GetUniformSubroutineuiv(shadertype uint32, location int32, params *uint32) {
+ C.glowGetUniformSubroutineuiv(gpGetUniformSubroutineuiv, (C.GLenum)(shadertype), (C.GLint)(location), (*C.GLuint)(unsafe.Pointer(params)))
+}
+func GetUniformdv(program uint32, location int32, params *float64) {
+ C.glowGetUniformdv(gpGetUniformdv, (C.GLuint)(program), (C.GLint)(location), (*C.GLdouble)(unsafe.Pointer(params)))
+}
+
+// Returns the value of a uniform variable
+func GetUniformfv(program uint32, location int32, params *float32) {
+ C.glowGetUniformfv(gpGetUniformfv, (C.GLuint)(program), (C.GLint)(location), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func GetUniformi64vARB(program uint32, location int32, params *int64) {
+ C.glowGetUniformi64vARB(gpGetUniformi64vARB, (C.GLuint)(program), (C.GLint)(location), (*C.GLint64)(unsafe.Pointer(params)))
+}
+func GetUniformi64vNV(program uint32, location int32, params *int64) {
+ C.glowGetUniformi64vNV(gpGetUniformi64vNV, (C.GLuint)(program), (C.GLint)(location), (*C.GLint64EXT)(unsafe.Pointer(params)))
+}
+
+// Returns the value of a uniform variable
+func GetUniformiv(program uint32, location int32, params *int32) {
+ C.glowGetUniformiv(gpGetUniformiv, (C.GLuint)(program), (C.GLint)(location), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetUniformui64vARB(program uint32, location int32, params *uint64) {
+ C.glowGetUniformui64vARB(gpGetUniformui64vARB, (C.GLuint)(program), (C.GLint)(location), (*C.GLuint64)(unsafe.Pointer(params)))
+}
+func GetUniformui64vNV(program uint32, location int32, params *uint64) {
+ C.glowGetUniformui64vNV(gpGetUniformui64vNV, (C.GLuint)(program), (C.GLint)(location), (*C.GLuint64EXT)(unsafe.Pointer(params)))
+}
+func GetUniformuiv(program uint32, location int32, params *uint32) {
+ C.glowGetUniformuiv(gpGetUniformuiv, (C.GLuint)(program), (C.GLint)(location), (*C.GLuint)(unsafe.Pointer(params)))
+}
+func GetVertexArrayIndexed64iv(vaobj uint32, index uint32, pname uint32, param *int64) {
+ C.glowGetVertexArrayIndexed64iv(gpGetVertexArrayIndexed64iv, (C.GLuint)(vaobj), (C.GLuint)(index), (C.GLenum)(pname), (*C.GLint64)(unsafe.Pointer(param)))
+}
+func GetVertexArrayIndexediv(vaobj uint32, index uint32, pname uint32, param *int32) {
+ C.glowGetVertexArrayIndexediv(gpGetVertexArrayIndexediv, (C.GLuint)(vaobj), (C.GLuint)(index), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(param)))
+}
+func GetVertexArrayIntegeri_vEXT(vaobj uint32, index uint32, pname uint32, param *int32) {
+ C.glowGetVertexArrayIntegeri_vEXT(gpGetVertexArrayIntegeri_vEXT, (C.GLuint)(vaobj), (C.GLuint)(index), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(param)))
+}
+func GetVertexArrayIntegervEXT(vaobj uint32, pname uint32, param *int32) {
+ C.glowGetVertexArrayIntegervEXT(gpGetVertexArrayIntegervEXT, (C.GLuint)(vaobj), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(param)))
+}
+func GetVertexArrayPointeri_vEXT(vaobj uint32, index uint32, pname uint32, param *unsafe.Pointer) {
+ C.glowGetVertexArrayPointeri_vEXT(gpGetVertexArrayPointeri_vEXT, (C.GLuint)(vaobj), (C.GLuint)(index), (C.GLenum)(pname), param)
+}
+func GetVertexArrayPointervEXT(vaobj uint32, pname uint32, param *unsafe.Pointer) {
+ C.glowGetVertexArrayPointervEXT(gpGetVertexArrayPointervEXT, (C.GLuint)(vaobj), (C.GLenum)(pname), param)
+}
+
+// retrieve parameters of a vertex array object
+func GetVertexArrayiv(vaobj uint32, pname uint32, param *int32) {
+ C.glowGetVertexArrayiv(gpGetVertexArrayiv, (C.GLuint)(vaobj), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(param)))
+}
+
+// Return a generic vertex attribute parameter
+func GetVertexAttribIiv(index uint32, pname uint32, params *int32) {
+ C.glowGetVertexAttribIiv(gpGetVertexAttribIiv, (C.GLuint)(index), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+
+// Return a generic vertex attribute parameter
+func GetVertexAttribIuiv(index uint32, pname uint32, params *uint32) {
+ C.glowGetVertexAttribIuiv(gpGetVertexAttribIuiv, (C.GLuint)(index), (C.GLenum)(pname), (*C.GLuint)(unsafe.Pointer(params)))
+}
+
+// Return a generic vertex attribute parameter
+func GetVertexAttribLdv(index uint32, pname uint32, params *float64) {
+ C.glowGetVertexAttribLdv(gpGetVertexAttribLdv, (C.GLuint)(index), (C.GLenum)(pname), (*C.GLdouble)(unsafe.Pointer(params)))
+}
+func GetVertexAttribLi64vNV(index uint32, pname uint32, params *int64) {
+ C.glowGetVertexAttribLi64vNV(gpGetVertexAttribLi64vNV, (C.GLuint)(index), (C.GLenum)(pname), (*C.GLint64EXT)(unsafe.Pointer(params)))
+}
+func GetVertexAttribLui64vARB(index uint32, pname uint32, params *uint64) {
+ C.glowGetVertexAttribLui64vARB(gpGetVertexAttribLui64vARB, (C.GLuint)(index), (C.GLenum)(pname), (*C.GLuint64EXT)(unsafe.Pointer(params)))
+}
+func GetVertexAttribLui64vNV(index uint32, pname uint32, params *uint64) {
+ C.glowGetVertexAttribLui64vNV(gpGetVertexAttribLui64vNV, (C.GLuint)(index), (C.GLenum)(pname), (*C.GLuint64EXT)(unsafe.Pointer(params)))
+}
+
+// return the address of the specified generic vertex attribute pointer
+func GetVertexAttribPointerv(index uint32, pname uint32, pointer *unsafe.Pointer) {
+ C.glowGetVertexAttribPointerv(gpGetVertexAttribPointerv, (C.GLuint)(index), (C.GLenum)(pname), pointer)
+}
+func GetVertexAttribPointerWithOffsetv(index uint32, pname uint32, offset **uintptr) {
+ C.glowGetVertexAttribPointerWithOffsetv(gpGetVertexAttribPointerv, (C.GLuint)(index), (C.GLenum)(pname), (**C.uintptr_t)(unsafe.Pointer(offset)))
+}
+
+// Return a generic vertex attribute parameter
+func GetVertexAttribdv(index uint32, pname uint32, params *float64) {
+ C.glowGetVertexAttribdv(gpGetVertexAttribdv, (C.GLuint)(index), (C.GLenum)(pname), (*C.GLdouble)(unsafe.Pointer(params)))
+}
+
+// Return a generic vertex attribute parameter
+func GetVertexAttribfv(index uint32, pname uint32, params *float32) {
+ C.glowGetVertexAttribfv(gpGetVertexAttribfv, (C.GLuint)(index), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+
+// Return a generic vertex attribute parameter
+func GetVertexAttribiv(index uint32, pname uint32, params *int32) {
+ C.glowGetVertexAttribiv(gpGetVertexAttribiv, (C.GLuint)(index), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+
+// Return value has type C.GLVULKANPROCNV.
+func GetVkProcAddrNV(name *uint8) unsafe.Pointer {
+ ret := C.glowGetVkProcAddrNV(gpGetVkProcAddrNV, (*C.GLchar)(unsafe.Pointer(name)))
+ return (unsafe.Pointer)(ret)
+}
+func GetnCompressedTexImageARB(target uint32, lod int32, bufSize int32, img unsafe.Pointer) {
+ C.glowGetnCompressedTexImageARB(gpGetnCompressedTexImageARB, (C.GLenum)(target), (C.GLint)(lod), (C.GLsizei)(bufSize), img)
+}
+func GetnTexImageARB(target uint32, level int32, format uint32, xtype uint32, bufSize int32, img unsafe.Pointer) {
+ C.glowGetnTexImageARB(gpGetnTexImageARB, (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(format), (C.GLenum)(xtype), (C.GLsizei)(bufSize), img)
+}
+func GetnUniformdvARB(program uint32, location int32, bufSize int32, params *float64) {
+ C.glowGetnUniformdvARB(gpGetnUniformdvARB, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(bufSize), (*C.GLdouble)(unsafe.Pointer(params)))
+}
+func GetnUniformfv(program uint32, location int32, bufSize int32, params *float32) {
+ C.glowGetnUniformfv(gpGetnUniformfv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(bufSize), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func GetnUniformfvARB(program uint32, location int32, bufSize int32, params *float32) {
+ C.glowGetnUniformfvARB(gpGetnUniformfvARB, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(bufSize), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func GetnUniformfvKHR(program uint32, location int32, bufSize int32, params *float32) {
+ C.glowGetnUniformfvKHR(gpGetnUniformfvKHR, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(bufSize), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func GetnUniformi64vARB(program uint32, location int32, bufSize int32, params *int64) {
+ C.glowGetnUniformi64vARB(gpGetnUniformi64vARB, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(bufSize), (*C.GLint64)(unsafe.Pointer(params)))
+}
+func GetnUniformiv(program uint32, location int32, bufSize int32, params *int32) {
+ C.glowGetnUniformiv(gpGetnUniformiv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(bufSize), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetnUniformivARB(program uint32, location int32, bufSize int32, params *int32) {
+ C.glowGetnUniformivARB(gpGetnUniformivARB, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(bufSize), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetnUniformivKHR(program uint32, location int32, bufSize int32, params *int32) {
+ C.glowGetnUniformivKHR(gpGetnUniformivKHR, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(bufSize), (*C.GLint)(unsafe.Pointer(params)))
+}
+func GetnUniformui64vARB(program uint32, location int32, bufSize int32, params *uint64) {
+ C.glowGetnUniformui64vARB(gpGetnUniformui64vARB, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(bufSize), (*C.GLuint64)(unsafe.Pointer(params)))
+}
+func GetnUniformuiv(program uint32, location int32, bufSize int32, params *uint32) {
+ C.glowGetnUniformuiv(gpGetnUniformuiv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(bufSize), (*C.GLuint)(unsafe.Pointer(params)))
+}
+func GetnUniformuivARB(program uint32, location int32, bufSize int32, params *uint32) {
+ C.glowGetnUniformuivARB(gpGetnUniformuivARB, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(bufSize), (*C.GLuint)(unsafe.Pointer(params)))
+}
+func GetnUniformuivKHR(program uint32, location int32, bufSize int32, params *uint32) {
+ C.glowGetnUniformuivKHR(gpGetnUniformuivKHR, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(bufSize), (*C.GLuint)(unsafe.Pointer(params)))
+}
+
+// specify implementation-specific hints
+func Hint(target uint32, mode uint32) {
+ C.glowHint(gpHint, (C.GLenum)(target), (C.GLenum)(mode))
+}
+func IndexFormatNV(xtype uint32, stride int32) {
+ C.glowIndexFormatNV(gpIndexFormatNV, (C.GLenum)(xtype), (C.GLsizei)(stride))
+}
+func InsertEventMarkerEXT(length int32, marker *uint8) {
+ C.glowInsertEventMarkerEXT(gpInsertEventMarkerEXT, (C.GLsizei)(length), (*C.GLchar)(unsafe.Pointer(marker)))
+}
+func InterpolatePathsNV(resultPath uint32, pathA uint32, pathB uint32, weight float32) {
+ C.glowInterpolatePathsNV(gpInterpolatePathsNV, (C.GLuint)(resultPath), (C.GLuint)(pathA), (C.GLuint)(pathB), (C.GLfloat)(weight))
+}
+
+// invalidate the content of a buffer object's data store
+func InvalidateBufferData(buffer uint32) {
+ C.glowInvalidateBufferData(gpInvalidateBufferData, (C.GLuint)(buffer))
+}
+
+// invalidate a region of a buffer object's data store
+func InvalidateBufferSubData(buffer uint32, offset int, length int) {
+ C.glowInvalidateBufferSubData(gpInvalidateBufferSubData, (C.GLuint)(buffer), (C.GLintptr)(offset), (C.GLsizeiptr)(length))
+}
+
+// invalidate the content of some or all of a framebuffer's attachments
+func InvalidateFramebuffer(target uint32, numAttachments int32, attachments *uint32) {
+ C.glowInvalidateFramebuffer(gpInvalidateFramebuffer, (C.GLenum)(target), (C.GLsizei)(numAttachments), (*C.GLenum)(unsafe.Pointer(attachments)))
+}
+
+// invalidate the content of some or all of a framebuffer's attachments
+func InvalidateNamedFramebufferData(framebuffer uint32, numAttachments int32, attachments *uint32) {
+ C.glowInvalidateNamedFramebufferData(gpInvalidateNamedFramebufferData, (C.GLuint)(framebuffer), (C.GLsizei)(numAttachments), (*C.GLenum)(unsafe.Pointer(attachments)))
+}
+
+// invalidate the content of a region of some or all of a framebuffer's attachments
+func InvalidateNamedFramebufferSubData(framebuffer uint32, numAttachments int32, attachments *uint32, x int32, y int32, width int32, height int32) {
+ C.glowInvalidateNamedFramebufferSubData(gpInvalidateNamedFramebufferSubData, (C.GLuint)(framebuffer), (C.GLsizei)(numAttachments), (*C.GLenum)(unsafe.Pointer(attachments)), (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+
+// invalidate the content of a region of some or all of a framebuffer's attachments
+func InvalidateSubFramebuffer(target uint32, numAttachments int32, attachments *uint32, x int32, y int32, width int32, height int32) {
+ C.glowInvalidateSubFramebuffer(gpInvalidateSubFramebuffer, (C.GLenum)(target), (C.GLsizei)(numAttachments), (*C.GLenum)(unsafe.Pointer(attachments)), (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+
+// invalidate the entirety a texture image
+func InvalidateTexImage(texture uint32, level int32) {
+ C.glowInvalidateTexImage(gpInvalidateTexImage, (C.GLuint)(texture), (C.GLint)(level))
+}
+
+// invalidate a region of a texture image
+func InvalidateTexSubImage(texture uint32, level int32, xoffset int32, yoffset int32, zoffset int32, width int32, height int32, depth int32) {
+ C.glowInvalidateTexSubImage(gpInvalidateTexSubImage, (C.GLuint)(texture), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(zoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth))
+}
+
+// determine if a name corresponds to a buffer object
+func IsBuffer(buffer uint32) bool {
+ ret := C.glowIsBuffer(gpIsBuffer, (C.GLuint)(buffer))
+ return ret == TRUE
+}
+func IsBufferResidentNV(target uint32) bool {
+ ret := C.glowIsBufferResidentNV(gpIsBufferResidentNV, (C.GLenum)(target))
+ return ret == TRUE
+}
+func IsCommandListNV(list uint32) bool {
+ ret := C.glowIsCommandListNV(gpIsCommandListNV, (C.GLuint)(list))
+ return ret == TRUE
+}
+func IsEnabled(cap uint32) bool {
+ ret := C.glowIsEnabled(gpIsEnabled, (C.GLenum)(cap))
+ return ret == TRUE
+}
+func IsEnabledIndexedEXT(target uint32, index uint32) bool {
+ ret := C.glowIsEnabledIndexedEXT(gpIsEnabledIndexedEXT, (C.GLenum)(target), (C.GLuint)(index))
+ return ret == TRUE
+}
+func IsEnabledi(target uint32, index uint32) bool {
+ ret := C.glowIsEnabledi(gpIsEnabledi, (C.GLenum)(target), (C.GLuint)(index))
+ return ret == TRUE
+}
+
+// determine if a name corresponds to a framebuffer object
+func IsFramebuffer(framebuffer uint32) bool {
+ ret := C.glowIsFramebuffer(gpIsFramebuffer, (C.GLuint)(framebuffer))
+ return ret == TRUE
+}
+func IsImageHandleResidentARB(handle uint64) bool {
+ ret := C.glowIsImageHandleResidentARB(gpIsImageHandleResidentARB, (C.GLuint64)(handle))
+ return ret == TRUE
+}
+func IsImageHandleResidentNV(handle uint64) bool {
+ ret := C.glowIsImageHandleResidentNV(gpIsImageHandleResidentNV, (C.GLuint64)(handle))
+ return ret == TRUE
+}
+func IsNamedBufferResidentNV(buffer uint32) bool {
+ ret := C.glowIsNamedBufferResidentNV(gpIsNamedBufferResidentNV, (C.GLuint)(buffer))
+ return ret == TRUE
+}
+func IsNamedStringARB(namelen int32, name *uint8) bool {
+ ret := C.glowIsNamedStringARB(gpIsNamedStringARB, (C.GLint)(namelen), (*C.GLchar)(unsafe.Pointer(name)))
+ return ret == TRUE
+}
+func IsPathNV(path uint32) bool {
+ ret := C.glowIsPathNV(gpIsPathNV, (C.GLuint)(path))
+ return ret == TRUE
+}
+func IsPointInFillPathNV(path uint32, mask uint32, x float32, y float32) bool {
+ ret := C.glowIsPointInFillPathNV(gpIsPointInFillPathNV, (C.GLuint)(path), (C.GLuint)(mask), (C.GLfloat)(x), (C.GLfloat)(y))
+ return ret == TRUE
+}
+func IsPointInStrokePathNV(path uint32, x float32, y float32) bool {
+ ret := C.glowIsPointInStrokePathNV(gpIsPointInStrokePathNV, (C.GLuint)(path), (C.GLfloat)(x), (C.GLfloat)(y))
+ return ret == TRUE
+}
+
+// Determines if a name corresponds to a program object
+func IsProgram(program uint32) bool {
+ ret := C.glowIsProgram(gpIsProgram, (C.GLuint)(program))
+ return ret == TRUE
+}
+
+// determine if a name corresponds to a program pipeline object
+func IsProgramPipeline(pipeline uint32) bool {
+ ret := C.glowIsProgramPipeline(gpIsProgramPipeline, (C.GLuint)(pipeline))
+ return ret == TRUE
+}
+func IsProgramPipelineEXT(pipeline uint32) bool {
+ ret := C.glowIsProgramPipelineEXT(gpIsProgramPipelineEXT, (C.GLuint)(pipeline))
+ return ret == TRUE
+}
+
+// determine if a name corresponds to a query object
+func IsQuery(id uint32) bool {
+ ret := C.glowIsQuery(gpIsQuery, (C.GLuint)(id))
+ return ret == TRUE
+}
+
+// determine if a name corresponds to a renderbuffer object
+func IsRenderbuffer(renderbuffer uint32) bool {
+ ret := C.glowIsRenderbuffer(gpIsRenderbuffer, (C.GLuint)(renderbuffer))
+ return ret == TRUE
+}
+
+// determine if a name corresponds to a sampler object
+func IsSampler(sampler uint32) bool {
+ ret := C.glowIsSampler(gpIsSampler, (C.GLuint)(sampler))
+ return ret == TRUE
+}
+
+// Determines if a name corresponds to a shader object
+func IsShader(shader uint32) bool {
+ ret := C.glowIsShader(gpIsShader, (C.GLuint)(shader))
+ return ret == TRUE
+}
+func IsStateNV(state uint32) bool {
+ ret := C.glowIsStateNV(gpIsStateNV, (C.GLuint)(state))
+ return ret == TRUE
+}
+
+// determine if a name corresponds to a sync object
+func IsSync(sync uintptr) bool {
+ ret := C.glowIsSync(gpIsSync, (C.GLsync)(sync))
+ return ret == TRUE
+}
+
+// determine if a name corresponds to a texture
+func IsTexture(texture uint32) bool {
+ ret := C.glowIsTexture(gpIsTexture, (C.GLuint)(texture))
+ return ret == TRUE
+}
+func IsTextureHandleResidentARB(handle uint64) bool {
+ ret := C.glowIsTextureHandleResidentARB(gpIsTextureHandleResidentARB, (C.GLuint64)(handle))
+ return ret == TRUE
+}
+func IsTextureHandleResidentNV(handle uint64) bool {
+ ret := C.glowIsTextureHandleResidentNV(gpIsTextureHandleResidentNV, (C.GLuint64)(handle))
+ return ret == TRUE
+}
+
+// determine if a name corresponds to a transform feedback object
+func IsTransformFeedback(id uint32) bool {
+ ret := C.glowIsTransformFeedback(gpIsTransformFeedback, (C.GLuint)(id))
+ return ret == TRUE
+}
+
+// determine if a name corresponds to a vertex array object
+func IsVertexArray(array uint32) bool {
+ ret := C.glowIsVertexArray(gpIsVertexArray, (C.GLuint)(array))
+ return ret == TRUE
+}
+func LabelObjectEXT(xtype uint32, object uint32, length int32, label *uint8) {
+ C.glowLabelObjectEXT(gpLabelObjectEXT, (C.GLenum)(xtype), (C.GLuint)(object), (C.GLsizei)(length), (*C.GLchar)(unsafe.Pointer(label)))
+}
+
+// specify the width of rasterized lines
+func LineWidth(width float32) {
+ C.glowLineWidth(gpLineWidth, (C.GLfloat)(width))
+}
+
+// Links a program object
+func LinkProgram(program uint32) {
+ C.glowLinkProgram(gpLinkProgram, (C.GLuint)(program))
+}
+func ListDrawCommandsStatesClientNV(list uint32, segment uint32, indirects *unsafe.Pointer, sizes *int32, states *uint32, fbos *uint32, count uint32) {
+ C.glowListDrawCommandsStatesClientNV(gpListDrawCommandsStatesClientNV, (C.GLuint)(list), (C.GLuint)(segment), indirects, (*C.GLsizei)(unsafe.Pointer(sizes)), (*C.GLuint)(unsafe.Pointer(states)), (*C.GLuint)(unsafe.Pointer(fbos)), (C.GLuint)(count))
+}
+
+// specify a logical pixel operation for rendering
+func LogicOp(opcode uint32) {
+ C.glowLogicOp(gpLogicOp, (C.GLenum)(opcode))
+}
+func MakeBufferNonResidentNV(target uint32) {
+ C.glowMakeBufferNonResidentNV(gpMakeBufferNonResidentNV, (C.GLenum)(target))
+}
+func MakeBufferResidentNV(target uint32, access uint32) {
+ C.glowMakeBufferResidentNV(gpMakeBufferResidentNV, (C.GLenum)(target), (C.GLenum)(access))
+}
+func MakeImageHandleNonResidentARB(handle uint64) {
+ C.glowMakeImageHandleNonResidentARB(gpMakeImageHandleNonResidentARB, (C.GLuint64)(handle))
+}
+func MakeImageHandleNonResidentNV(handle uint64) {
+ C.glowMakeImageHandleNonResidentNV(gpMakeImageHandleNonResidentNV, (C.GLuint64)(handle))
+}
+func MakeImageHandleResidentARB(handle uint64, access uint32) {
+ C.glowMakeImageHandleResidentARB(gpMakeImageHandleResidentARB, (C.GLuint64)(handle), (C.GLenum)(access))
+}
+func MakeImageHandleResidentNV(handle uint64, access uint32) {
+ C.glowMakeImageHandleResidentNV(gpMakeImageHandleResidentNV, (C.GLuint64)(handle), (C.GLenum)(access))
+}
+func MakeNamedBufferNonResidentNV(buffer uint32) {
+ C.glowMakeNamedBufferNonResidentNV(gpMakeNamedBufferNonResidentNV, (C.GLuint)(buffer))
+}
+func MakeNamedBufferResidentNV(buffer uint32, access uint32) {
+ C.glowMakeNamedBufferResidentNV(gpMakeNamedBufferResidentNV, (C.GLuint)(buffer), (C.GLenum)(access))
+}
+func MakeTextureHandleNonResidentARB(handle uint64) {
+ C.glowMakeTextureHandleNonResidentARB(gpMakeTextureHandleNonResidentARB, (C.GLuint64)(handle))
+}
+func MakeTextureHandleNonResidentNV(handle uint64) {
+ C.glowMakeTextureHandleNonResidentNV(gpMakeTextureHandleNonResidentNV, (C.GLuint64)(handle))
+}
+func MakeTextureHandleResidentARB(handle uint64) {
+ C.glowMakeTextureHandleResidentARB(gpMakeTextureHandleResidentARB, (C.GLuint64)(handle))
+}
+func MakeTextureHandleResidentNV(handle uint64) {
+ C.glowMakeTextureHandleResidentNV(gpMakeTextureHandleResidentNV, (C.GLuint64)(handle))
+}
+
+// map all of a buffer object's data store into the client's address space
+func MapBuffer(target uint32, access uint32) unsafe.Pointer {
+ ret := C.glowMapBuffer(gpMapBuffer, (C.GLenum)(target), (C.GLenum)(access))
+ return (unsafe.Pointer)(ret)
+}
+
+// map all or part of a buffer object's data store into the client's address space
+func MapBufferRange(target uint32, offset int, length int, access uint32) unsafe.Pointer {
+ ret := C.glowMapBufferRange(gpMapBufferRange, (C.GLenum)(target), (C.GLintptr)(offset), (C.GLsizeiptr)(length), (C.GLbitfield)(access))
+ return (unsafe.Pointer)(ret)
+}
+
+// map all of a buffer object's data store into the client's address space
+func MapNamedBuffer(buffer uint32, access uint32) unsafe.Pointer {
+ ret := C.glowMapNamedBuffer(gpMapNamedBuffer, (C.GLuint)(buffer), (C.GLenum)(access))
+ return (unsafe.Pointer)(ret)
+}
+func MapNamedBufferEXT(buffer uint32, access uint32) unsafe.Pointer {
+ ret := C.glowMapNamedBufferEXT(gpMapNamedBufferEXT, (C.GLuint)(buffer), (C.GLenum)(access))
+ return (unsafe.Pointer)(ret)
+}
+
+// map all or part of a buffer object's data store into the client's address space
+func MapNamedBufferRange(buffer uint32, offset int, length int, access uint32) unsafe.Pointer {
+ ret := C.glowMapNamedBufferRange(gpMapNamedBufferRange, (C.GLuint)(buffer), (C.GLintptr)(offset), (C.GLsizeiptr)(length), (C.GLbitfield)(access))
+ return (unsafe.Pointer)(ret)
+}
+func MapNamedBufferRangeEXT(buffer uint32, offset int, length int, access uint32) unsafe.Pointer {
+ ret := C.glowMapNamedBufferRangeEXT(gpMapNamedBufferRangeEXT, (C.GLuint)(buffer), (C.GLintptr)(offset), (C.GLsizeiptr)(length), (C.GLbitfield)(access))
+ return (unsafe.Pointer)(ret)
+}
+func MatrixFrustumEXT(mode uint32, left float64, right float64, bottom float64, top float64, zNear float64, zFar float64) {
+ C.glowMatrixFrustumEXT(gpMatrixFrustumEXT, (C.GLenum)(mode), (C.GLdouble)(left), (C.GLdouble)(right), (C.GLdouble)(bottom), (C.GLdouble)(top), (C.GLdouble)(zNear), (C.GLdouble)(zFar))
+}
+func MatrixLoad3x2fNV(matrixMode uint32, m *float32) {
+ C.glowMatrixLoad3x2fNV(gpMatrixLoad3x2fNV, (C.GLenum)(matrixMode), (*C.GLfloat)(unsafe.Pointer(m)))
+}
+func MatrixLoad3x3fNV(matrixMode uint32, m *float32) {
+ C.glowMatrixLoad3x3fNV(gpMatrixLoad3x3fNV, (C.GLenum)(matrixMode), (*C.GLfloat)(unsafe.Pointer(m)))
+}
+func MatrixLoadIdentityEXT(mode uint32) {
+ C.glowMatrixLoadIdentityEXT(gpMatrixLoadIdentityEXT, (C.GLenum)(mode))
+}
+func MatrixLoadTranspose3x3fNV(matrixMode uint32, m *float32) {
+ C.glowMatrixLoadTranspose3x3fNV(gpMatrixLoadTranspose3x3fNV, (C.GLenum)(matrixMode), (*C.GLfloat)(unsafe.Pointer(m)))
+}
+func MatrixLoadTransposedEXT(mode uint32, m *float64) {
+ C.glowMatrixLoadTransposedEXT(gpMatrixLoadTransposedEXT, (C.GLenum)(mode), (*C.GLdouble)(unsafe.Pointer(m)))
+}
+func MatrixLoadTransposefEXT(mode uint32, m *float32) {
+ C.glowMatrixLoadTransposefEXT(gpMatrixLoadTransposefEXT, (C.GLenum)(mode), (*C.GLfloat)(unsafe.Pointer(m)))
+}
+func MatrixLoaddEXT(mode uint32, m *float64) {
+ C.glowMatrixLoaddEXT(gpMatrixLoaddEXT, (C.GLenum)(mode), (*C.GLdouble)(unsafe.Pointer(m)))
+}
+func MatrixLoadfEXT(mode uint32, m *float32) {
+ C.glowMatrixLoadfEXT(gpMatrixLoadfEXT, (C.GLenum)(mode), (*C.GLfloat)(unsafe.Pointer(m)))
+}
+func MatrixMult3x2fNV(matrixMode uint32, m *float32) {
+ C.glowMatrixMult3x2fNV(gpMatrixMult3x2fNV, (C.GLenum)(matrixMode), (*C.GLfloat)(unsafe.Pointer(m)))
+}
+func MatrixMult3x3fNV(matrixMode uint32, m *float32) {
+ C.glowMatrixMult3x3fNV(gpMatrixMult3x3fNV, (C.GLenum)(matrixMode), (*C.GLfloat)(unsafe.Pointer(m)))
+}
+func MatrixMultTranspose3x3fNV(matrixMode uint32, m *float32) {
+ C.glowMatrixMultTranspose3x3fNV(gpMatrixMultTranspose3x3fNV, (C.GLenum)(matrixMode), (*C.GLfloat)(unsafe.Pointer(m)))
+}
+func MatrixMultTransposedEXT(mode uint32, m *float64) {
+ C.glowMatrixMultTransposedEXT(gpMatrixMultTransposedEXT, (C.GLenum)(mode), (*C.GLdouble)(unsafe.Pointer(m)))
+}
+func MatrixMultTransposefEXT(mode uint32, m *float32) {
+ C.glowMatrixMultTransposefEXT(gpMatrixMultTransposefEXT, (C.GLenum)(mode), (*C.GLfloat)(unsafe.Pointer(m)))
+}
+func MatrixMultdEXT(mode uint32, m *float64) {
+ C.glowMatrixMultdEXT(gpMatrixMultdEXT, (C.GLenum)(mode), (*C.GLdouble)(unsafe.Pointer(m)))
+}
+func MatrixMultfEXT(mode uint32, m *float32) {
+ C.glowMatrixMultfEXT(gpMatrixMultfEXT, (C.GLenum)(mode), (*C.GLfloat)(unsafe.Pointer(m)))
+}
+func MatrixOrthoEXT(mode uint32, left float64, right float64, bottom float64, top float64, zNear float64, zFar float64) {
+ C.glowMatrixOrthoEXT(gpMatrixOrthoEXT, (C.GLenum)(mode), (C.GLdouble)(left), (C.GLdouble)(right), (C.GLdouble)(bottom), (C.GLdouble)(top), (C.GLdouble)(zNear), (C.GLdouble)(zFar))
+}
+func MatrixPopEXT(mode uint32) {
+ C.glowMatrixPopEXT(gpMatrixPopEXT, (C.GLenum)(mode))
+}
+func MatrixPushEXT(mode uint32) {
+ C.glowMatrixPushEXT(gpMatrixPushEXT, (C.GLenum)(mode))
+}
+func MatrixRotatedEXT(mode uint32, angle float64, x float64, y float64, z float64) {
+ C.glowMatrixRotatedEXT(gpMatrixRotatedEXT, (C.GLenum)(mode), (C.GLdouble)(angle), (C.GLdouble)(x), (C.GLdouble)(y), (C.GLdouble)(z))
+}
+func MatrixRotatefEXT(mode uint32, angle float32, x float32, y float32, z float32) {
+ C.glowMatrixRotatefEXT(gpMatrixRotatefEXT, (C.GLenum)(mode), (C.GLfloat)(angle), (C.GLfloat)(x), (C.GLfloat)(y), (C.GLfloat)(z))
+}
+func MatrixScaledEXT(mode uint32, x float64, y float64, z float64) {
+ C.glowMatrixScaledEXT(gpMatrixScaledEXT, (C.GLenum)(mode), (C.GLdouble)(x), (C.GLdouble)(y), (C.GLdouble)(z))
+}
+func MatrixScalefEXT(mode uint32, x float32, y float32, z float32) {
+ C.glowMatrixScalefEXT(gpMatrixScalefEXT, (C.GLenum)(mode), (C.GLfloat)(x), (C.GLfloat)(y), (C.GLfloat)(z))
+}
+func MatrixTranslatedEXT(mode uint32, x float64, y float64, z float64) {
+ C.glowMatrixTranslatedEXT(gpMatrixTranslatedEXT, (C.GLenum)(mode), (C.GLdouble)(x), (C.GLdouble)(y), (C.GLdouble)(z))
+}
+func MatrixTranslatefEXT(mode uint32, x float32, y float32, z float32) {
+ C.glowMatrixTranslatefEXT(gpMatrixTranslatefEXT, (C.GLenum)(mode), (C.GLfloat)(x), (C.GLfloat)(y), (C.GLfloat)(z))
+}
+func MaxShaderCompilerThreadsARB(count uint32) {
+ C.glowMaxShaderCompilerThreadsARB(gpMaxShaderCompilerThreadsARB, (C.GLuint)(count))
+}
+func MaxShaderCompilerThreadsKHR(count uint32) {
+ C.glowMaxShaderCompilerThreadsKHR(gpMaxShaderCompilerThreadsKHR, (C.GLuint)(count))
+}
+
+// defines a barrier ordering memory transactions
+func MemoryBarrier(barriers uint32) {
+ C.glowMemoryBarrier(gpMemoryBarrier, (C.GLbitfield)(barriers))
+}
+func MemoryBarrierByRegion(barriers uint32) {
+ C.glowMemoryBarrierByRegion(gpMemoryBarrierByRegion, (C.GLbitfield)(barriers))
+}
+func MinSampleShadingARB(value float32) {
+ C.glowMinSampleShadingARB(gpMinSampleShadingARB, (C.GLfloat)(value))
+}
+
+// render multiple sets of primitives from array data
+func MultiDrawArrays(mode uint32, first *int32, count *int32, drawcount int32) {
+ C.glowMultiDrawArrays(gpMultiDrawArrays, (C.GLenum)(mode), (*C.GLint)(unsafe.Pointer(first)), (*C.GLsizei)(unsafe.Pointer(count)), (C.GLsizei)(drawcount))
+}
+
+// render multiple sets of primitives from array data, taking parameters from memory
+func MultiDrawArraysIndirect(mode uint32, indirect unsafe.Pointer, drawcount int32, stride int32) {
+ C.glowMultiDrawArraysIndirect(gpMultiDrawArraysIndirect, (C.GLenum)(mode), indirect, (C.GLsizei)(drawcount), (C.GLsizei)(stride))
+}
+func MultiDrawArraysIndirectBindlessCountNV(mode uint32, indirect unsafe.Pointer, drawCount int32, maxDrawCount int32, stride int32, vertexBufferCount int32) {
+ C.glowMultiDrawArraysIndirectBindlessCountNV(gpMultiDrawArraysIndirectBindlessCountNV, (C.GLenum)(mode), indirect, (C.GLsizei)(drawCount), (C.GLsizei)(maxDrawCount), (C.GLsizei)(stride), (C.GLint)(vertexBufferCount))
+}
+func MultiDrawArraysIndirectBindlessNV(mode uint32, indirect unsafe.Pointer, drawCount int32, stride int32, vertexBufferCount int32) {
+ C.glowMultiDrawArraysIndirectBindlessNV(gpMultiDrawArraysIndirectBindlessNV, (C.GLenum)(mode), indirect, (C.GLsizei)(drawCount), (C.GLsizei)(stride), (C.GLint)(vertexBufferCount))
+}
+func MultiDrawArraysIndirectCountARB(mode uint32, indirect unsafe.Pointer, drawcount int, maxdrawcount int32, stride int32) {
+ C.glowMultiDrawArraysIndirectCountARB(gpMultiDrawArraysIndirectCountARB, (C.GLenum)(mode), indirect, (C.GLintptr)(drawcount), (C.GLsizei)(maxdrawcount), (C.GLsizei)(stride))
+}
+
+// render multiple sets of primitives by specifying indices of array data elements
+func MultiDrawElements(mode uint32, count *int32, xtype uint32, indices *unsafe.Pointer, drawcount int32) {
+ C.glowMultiDrawElements(gpMultiDrawElements, (C.GLenum)(mode), (*C.GLsizei)(unsafe.Pointer(count)), (C.GLenum)(xtype), indices, (C.GLsizei)(drawcount))
+}
+
+// render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
+func MultiDrawElementsBaseVertex(mode uint32, count *int32, xtype uint32, indices *unsafe.Pointer, drawcount int32, basevertex *int32) {
+ C.glowMultiDrawElementsBaseVertex(gpMultiDrawElementsBaseVertex, (C.GLenum)(mode), (*C.GLsizei)(unsafe.Pointer(count)), (C.GLenum)(xtype), indices, (C.GLsizei)(drawcount), (*C.GLint)(unsafe.Pointer(basevertex)))
+}
+
+// render indexed primitives from array data, taking parameters from memory
+func MultiDrawElementsIndirect(mode uint32, xtype uint32, indirect unsafe.Pointer, drawcount int32, stride int32) {
+ C.glowMultiDrawElementsIndirect(gpMultiDrawElementsIndirect, (C.GLenum)(mode), (C.GLenum)(xtype), indirect, (C.GLsizei)(drawcount), (C.GLsizei)(stride))
+}
+func MultiDrawElementsIndirectBindlessCountNV(mode uint32, xtype uint32, indirect unsafe.Pointer, drawCount int32, maxDrawCount int32, stride int32, vertexBufferCount int32) {
+ C.glowMultiDrawElementsIndirectBindlessCountNV(gpMultiDrawElementsIndirectBindlessCountNV, (C.GLenum)(mode), (C.GLenum)(xtype), indirect, (C.GLsizei)(drawCount), (C.GLsizei)(maxDrawCount), (C.GLsizei)(stride), (C.GLint)(vertexBufferCount))
+}
+func MultiDrawElementsIndirectBindlessNV(mode uint32, xtype uint32, indirect unsafe.Pointer, drawCount int32, stride int32, vertexBufferCount int32) {
+ C.glowMultiDrawElementsIndirectBindlessNV(gpMultiDrawElementsIndirectBindlessNV, (C.GLenum)(mode), (C.GLenum)(xtype), indirect, (C.GLsizei)(drawCount), (C.GLsizei)(stride), (C.GLint)(vertexBufferCount))
+}
+func MultiDrawElementsIndirectCountARB(mode uint32, xtype uint32, indirect unsafe.Pointer, drawcount int, maxdrawcount int32, stride int32) {
+ C.glowMultiDrawElementsIndirectCountARB(gpMultiDrawElementsIndirectCountARB, (C.GLenum)(mode), (C.GLenum)(xtype), indirect, (C.GLintptr)(drawcount), (C.GLsizei)(maxdrawcount), (C.GLsizei)(stride))
+}
+func MultiDrawMeshTasksIndirectCountNV(indirect int, drawcount int, maxdrawcount int32, stride int32) {
+ C.glowMultiDrawMeshTasksIndirectCountNV(gpMultiDrawMeshTasksIndirectCountNV, (C.GLintptr)(indirect), (C.GLintptr)(drawcount), (C.GLsizei)(maxdrawcount), (C.GLsizei)(stride))
+}
+func MultiDrawMeshTasksIndirectNV(indirect int, drawcount int32, stride int32) {
+ C.glowMultiDrawMeshTasksIndirectNV(gpMultiDrawMeshTasksIndirectNV, (C.GLintptr)(indirect), (C.GLsizei)(drawcount), (C.GLsizei)(stride))
+}
+func MultiTexBufferEXT(texunit uint32, target uint32, internalformat uint32, buffer uint32) {
+ C.glowMultiTexBufferEXT(gpMultiTexBufferEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLenum)(internalformat), (C.GLuint)(buffer))
+}
+func MultiTexCoordPointerEXT(texunit uint32, size int32, xtype uint32, stride int32, pointer unsafe.Pointer) {
+ C.glowMultiTexCoordPointerEXT(gpMultiTexCoordPointerEXT, (C.GLenum)(texunit), (C.GLint)(size), (C.GLenum)(xtype), (C.GLsizei)(stride), pointer)
+}
+func MultiTexEnvfEXT(texunit uint32, target uint32, pname uint32, param float32) {
+ C.glowMultiTexEnvfEXT(gpMultiTexEnvfEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLenum)(pname), (C.GLfloat)(param))
+}
+func MultiTexEnvfvEXT(texunit uint32, target uint32, pname uint32, params *float32) {
+ C.glowMultiTexEnvfvEXT(gpMultiTexEnvfvEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func MultiTexEnviEXT(texunit uint32, target uint32, pname uint32, param int32) {
+ C.glowMultiTexEnviEXT(gpMultiTexEnviEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLenum)(pname), (C.GLint)(param))
+}
+func MultiTexEnvivEXT(texunit uint32, target uint32, pname uint32, params *int32) {
+ C.glowMultiTexEnvivEXT(gpMultiTexEnvivEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func MultiTexGendEXT(texunit uint32, coord uint32, pname uint32, param float64) {
+ C.glowMultiTexGendEXT(gpMultiTexGendEXT, (C.GLenum)(texunit), (C.GLenum)(coord), (C.GLenum)(pname), (C.GLdouble)(param))
+}
+func MultiTexGendvEXT(texunit uint32, coord uint32, pname uint32, params *float64) {
+ C.glowMultiTexGendvEXT(gpMultiTexGendvEXT, (C.GLenum)(texunit), (C.GLenum)(coord), (C.GLenum)(pname), (*C.GLdouble)(unsafe.Pointer(params)))
+}
+func MultiTexGenfEXT(texunit uint32, coord uint32, pname uint32, param float32) {
+ C.glowMultiTexGenfEXT(gpMultiTexGenfEXT, (C.GLenum)(texunit), (C.GLenum)(coord), (C.GLenum)(pname), (C.GLfloat)(param))
+}
+func MultiTexGenfvEXT(texunit uint32, coord uint32, pname uint32, params *float32) {
+ C.glowMultiTexGenfvEXT(gpMultiTexGenfvEXT, (C.GLenum)(texunit), (C.GLenum)(coord), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func MultiTexGeniEXT(texunit uint32, coord uint32, pname uint32, param int32) {
+ C.glowMultiTexGeniEXT(gpMultiTexGeniEXT, (C.GLenum)(texunit), (C.GLenum)(coord), (C.GLenum)(pname), (C.GLint)(param))
+}
+func MultiTexGenivEXT(texunit uint32, coord uint32, pname uint32, params *int32) {
+ C.glowMultiTexGenivEXT(gpMultiTexGenivEXT, (C.GLenum)(texunit), (C.GLenum)(coord), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func MultiTexImage1DEXT(texunit uint32, target uint32, level int32, internalformat int32, width int32, border int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowMultiTexImage1DEXT(gpMultiTexImage1DEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(internalformat), (C.GLsizei)(width), (C.GLint)(border), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+func MultiTexImage2DEXT(texunit uint32, target uint32, level int32, internalformat int32, width int32, height int32, border int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowMultiTexImage2DEXT(gpMultiTexImage2DEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLint)(border), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+func MultiTexImage3DEXT(texunit uint32, target uint32, level int32, internalformat int32, width int32, height int32, depth int32, border int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowMultiTexImage3DEXT(gpMultiTexImage3DEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLint)(border), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+func MultiTexParameterIivEXT(texunit uint32, target uint32, pname uint32, params *int32) {
+ C.glowMultiTexParameterIivEXT(gpMultiTexParameterIivEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func MultiTexParameterIuivEXT(texunit uint32, target uint32, pname uint32, params *uint32) {
+ C.glowMultiTexParameterIuivEXT(gpMultiTexParameterIuivEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLenum)(pname), (*C.GLuint)(unsafe.Pointer(params)))
+}
+func MultiTexParameterfEXT(texunit uint32, target uint32, pname uint32, param float32) {
+ C.glowMultiTexParameterfEXT(gpMultiTexParameterfEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLenum)(pname), (C.GLfloat)(param))
+}
+func MultiTexParameterfvEXT(texunit uint32, target uint32, pname uint32, params *float32) {
+ C.glowMultiTexParameterfvEXT(gpMultiTexParameterfvEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func MultiTexParameteriEXT(texunit uint32, target uint32, pname uint32, param int32) {
+ C.glowMultiTexParameteriEXT(gpMultiTexParameteriEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLenum)(pname), (C.GLint)(param))
+}
+func MultiTexParameterivEXT(texunit uint32, target uint32, pname uint32, params *int32) {
+ C.glowMultiTexParameterivEXT(gpMultiTexParameterivEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func MultiTexRenderbufferEXT(texunit uint32, target uint32, renderbuffer uint32) {
+ C.glowMultiTexRenderbufferEXT(gpMultiTexRenderbufferEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLuint)(renderbuffer))
+}
+func MultiTexSubImage1DEXT(texunit uint32, target uint32, level int32, xoffset int32, width int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowMultiTexSubImage1DEXT(gpMultiTexSubImage1DEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLsizei)(width), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+func MultiTexSubImage2DEXT(texunit uint32, target uint32, level int32, xoffset int32, yoffset int32, width int32, height int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowMultiTexSubImage2DEXT(gpMultiTexSubImage2DEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+func MultiTexSubImage3DEXT(texunit uint32, target uint32, level int32, xoffset int32, yoffset int32, zoffset int32, width int32, height int32, depth int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowMultiTexSubImage3DEXT(gpMultiTexSubImage3DEXT, (C.GLenum)(texunit), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(zoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+func NamedBufferAttachMemoryNV(buffer uint32, memory uint32, offset uint64) {
+ C.glowNamedBufferAttachMemoryNV(gpNamedBufferAttachMemoryNV, (C.GLuint)(buffer), (C.GLuint)(memory), (C.GLuint64)(offset))
+}
+
+// creates and initializes a buffer object's data store
+func NamedBufferData(buffer uint32, size int, data unsafe.Pointer, usage uint32) {
+ C.glowNamedBufferData(gpNamedBufferData, (C.GLuint)(buffer), (C.GLsizeiptr)(size), data, (C.GLenum)(usage))
+}
+func NamedBufferDataEXT(buffer uint32, size int, data unsafe.Pointer, usage uint32) {
+ C.glowNamedBufferDataEXT(gpNamedBufferDataEXT, (C.GLuint)(buffer), (C.GLsizeiptr)(size), data, (C.GLenum)(usage))
+}
+func NamedBufferPageCommitmentARB(buffer uint32, offset int, size int, commit bool) {
+ C.glowNamedBufferPageCommitmentARB(gpNamedBufferPageCommitmentARB, (C.GLuint)(buffer), (C.GLintptr)(offset), (C.GLsizeiptr)(size), (C.GLboolean)(boolToInt(commit)))
+}
+func NamedBufferPageCommitmentEXT(buffer uint32, offset int, size int, commit bool) {
+ C.glowNamedBufferPageCommitmentEXT(gpNamedBufferPageCommitmentEXT, (C.GLuint)(buffer), (C.GLintptr)(offset), (C.GLsizeiptr)(size), (C.GLboolean)(boolToInt(commit)))
+}
+func NamedBufferPageCommitmentMemNV(buffer uint32, offset int, size int, memory uint32, memOffset uint64, commit bool) {
+ C.glowNamedBufferPageCommitmentMemNV(gpNamedBufferPageCommitmentMemNV, (C.GLuint)(buffer), (C.GLintptr)(offset), (C.GLsizeiptr)(size), (C.GLuint)(memory), (C.GLuint64)(memOffset), (C.GLboolean)(boolToInt(commit)))
+}
+
+// creates and initializes a buffer object's immutable data store
+func NamedBufferStorage(buffer uint32, size int, data unsafe.Pointer, flags uint32) {
+ C.glowNamedBufferStorage(gpNamedBufferStorage, (C.GLuint)(buffer), (C.GLsizeiptr)(size), data, (C.GLbitfield)(flags))
+}
+func NamedBufferStorageEXT(buffer uint32, size int, data unsafe.Pointer, flags uint32) {
+ C.glowNamedBufferStorageEXT(gpNamedBufferStorageEXT, (C.GLuint)(buffer), (C.GLsizeiptr)(size), data, (C.GLbitfield)(flags))
+}
+
+// updates a subset of a buffer object's data store
+func NamedBufferSubData(buffer uint32, offset int, size int, data unsafe.Pointer) {
+ C.glowNamedBufferSubData(gpNamedBufferSubData, (C.GLuint)(buffer), (C.GLintptr)(offset), (C.GLsizeiptr)(size), data)
+}
+func NamedBufferSubDataEXT(buffer uint32, offset int, size int, data unsafe.Pointer) {
+ C.glowNamedBufferSubDataEXT(gpNamedBufferSubDataEXT, (C.GLuint)(buffer), (C.GLintptr)(offset), (C.GLsizeiptr)(size), data)
+}
+func NamedCopyBufferSubDataEXT(readBuffer uint32, writeBuffer uint32, readOffset int, writeOffset int, size int) {
+ C.glowNamedCopyBufferSubDataEXT(gpNamedCopyBufferSubDataEXT, (C.GLuint)(readBuffer), (C.GLuint)(writeBuffer), (C.GLintptr)(readOffset), (C.GLintptr)(writeOffset), (C.GLsizeiptr)(size))
+}
+
+// specify which color buffers are to be drawn into
+func NamedFramebufferDrawBuffer(framebuffer uint32, buf uint32) {
+ C.glowNamedFramebufferDrawBuffer(gpNamedFramebufferDrawBuffer, (C.GLuint)(framebuffer), (C.GLenum)(buf))
+}
+
+// Specifies a list of color buffers to be drawn into
+func NamedFramebufferDrawBuffers(framebuffer uint32, n int32, bufs *uint32) {
+ C.glowNamedFramebufferDrawBuffers(gpNamedFramebufferDrawBuffers, (C.GLuint)(framebuffer), (C.GLsizei)(n), (*C.GLenum)(unsafe.Pointer(bufs)))
+}
+
+// set a named parameter of a framebuffer object
+func NamedFramebufferParameteri(framebuffer uint32, pname uint32, param int32) {
+ C.glowNamedFramebufferParameteri(gpNamedFramebufferParameteri, (C.GLuint)(framebuffer), (C.GLenum)(pname), (C.GLint)(param))
+}
+func NamedFramebufferParameteriEXT(framebuffer uint32, pname uint32, param int32) {
+ C.glowNamedFramebufferParameteriEXT(gpNamedFramebufferParameteriEXT, (C.GLuint)(framebuffer), (C.GLenum)(pname), (C.GLint)(param))
+}
+
+// select a color buffer source for pixels
+func NamedFramebufferReadBuffer(framebuffer uint32, src uint32) {
+ C.glowNamedFramebufferReadBuffer(gpNamedFramebufferReadBuffer, (C.GLuint)(framebuffer), (C.GLenum)(src))
+}
+
+// attach a renderbuffer as a logical buffer of a framebuffer object
+func NamedFramebufferRenderbuffer(framebuffer uint32, attachment uint32, renderbuffertarget uint32, renderbuffer uint32) {
+ C.glowNamedFramebufferRenderbuffer(gpNamedFramebufferRenderbuffer, (C.GLuint)(framebuffer), (C.GLenum)(attachment), (C.GLenum)(renderbuffertarget), (C.GLuint)(renderbuffer))
+}
+func NamedFramebufferRenderbufferEXT(framebuffer uint32, attachment uint32, renderbuffertarget uint32, renderbuffer uint32) {
+ C.glowNamedFramebufferRenderbufferEXT(gpNamedFramebufferRenderbufferEXT, (C.GLuint)(framebuffer), (C.GLenum)(attachment), (C.GLenum)(renderbuffertarget), (C.GLuint)(renderbuffer))
+}
+func NamedFramebufferSampleLocationsfvARB(framebuffer uint32, start uint32, count int32, v *float32) {
+ C.glowNamedFramebufferSampleLocationsfvARB(gpNamedFramebufferSampleLocationsfvARB, (C.GLuint)(framebuffer), (C.GLuint)(start), (C.GLsizei)(count), (*C.GLfloat)(unsafe.Pointer(v)))
+}
+func NamedFramebufferSampleLocationsfvNV(framebuffer uint32, start uint32, count int32, v *float32) {
+ C.glowNamedFramebufferSampleLocationsfvNV(gpNamedFramebufferSampleLocationsfvNV, (C.GLuint)(framebuffer), (C.GLuint)(start), (C.GLsizei)(count), (*C.GLfloat)(unsafe.Pointer(v)))
+}
+func NamedFramebufferTexture(framebuffer uint32, attachment uint32, texture uint32, level int32) {
+ C.glowNamedFramebufferTexture(gpNamedFramebufferTexture, (C.GLuint)(framebuffer), (C.GLenum)(attachment), (C.GLuint)(texture), (C.GLint)(level))
+}
+func NamedFramebufferTexture1DEXT(framebuffer uint32, attachment uint32, textarget uint32, texture uint32, level int32) {
+ C.glowNamedFramebufferTexture1DEXT(gpNamedFramebufferTexture1DEXT, (C.GLuint)(framebuffer), (C.GLenum)(attachment), (C.GLenum)(textarget), (C.GLuint)(texture), (C.GLint)(level))
+}
+func NamedFramebufferTexture2DEXT(framebuffer uint32, attachment uint32, textarget uint32, texture uint32, level int32) {
+ C.glowNamedFramebufferTexture2DEXT(gpNamedFramebufferTexture2DEXT, (C.GLuint)(framebuffer), (C.GLenum)(attachment), (C.GLenum)(textarget), (C.GLuint)(texture), (C.GLint)(level))
+}
+func NamedFramebufferTexture3DEXT(framebuffer uint32, attachment uint32, textarget uint32, texture uint32, level int32, zoffset int32) {
+ C.glowNamedFramebufferTexture3DEXT(gpNamedFramebufferTexture3DEXT, (C.GLuint)(framebuffer), (C.GLenum)(attachment), (C.GLenum)(textarget), (C.GLuint)(texture), (C.GLint)(level), (C.GLint)(zoffset))
+}
+func NamedFramebufferTextureEXT(framebuffer uint32, attachment uint32, texture uint32, level int32) {
+ C.glowNamedFramebufferTextureEXT(gpNamedFramebufferTextureEXT, (C.GLuint)(framebuffer), (C.GLenum)(attachment), (C.GLuint)(texture), (C.GLint)(level))
+}
+func NamedFramebufferTextureFaceEXT(framebuffer uint32, attachment uint32, texture uint32, level int32, face uint32) {
+ C.glowNamedFramebufferTextureFaceEXT(gpNamedFramebufferTextureFaceEXT, (C.GLuint)(framebuffer), (C.GLenum)(attachment), (C.GLuint)(texture), (C.GLint)(level), (C.GLenum)(face))
+}
+
+// attach a single layer of a texture object as a logical buffer of a framebuffer object
+func NamedFramebufferTextureLayer(framebuffer uint32, attachment uint32, texture uint32, level int32, layer int32) {
+ C.glowNamedFramebufferTextureLayer(gpNamedFramebufferTextureLayer, (C.GLuint)(framebuffer), (C.GLenum)(attachment), (C.GLuint)(texture), (C.GLint)(level), (C.GLint)(layer))
+}
+func NamedFramebufferTextureLayerEXT(framebuffer uint32, attachment uint32, texture uint32, level int32, layer int32) {
+ C.glowNamedFramebufferTextureLayerEXT(gpNamedFramebufferTextureLayerEXT, (C.GLuint)(framebuffer), (C.GLenum)(attachment), (C.GLuint)(texture), (C.GLint)(level), (C.GLint)(layer))
+}
+func NamedFramebufferTextureMultiviewOVR(framebuffer uint32, attachment uint32, texture uint32, level int32, baseViewIndex int32, numViews int32) {
+ C.glowNamedFramebufferTextureMultiviewOVR(gpNamedFramebufferTextureMultiviewOVR, (C.GLuint)(framebuffer), (C.GLenum)(attachment), (C.GLuint)(texture), (C.GLint)(level), (C.GLint)(baseViewIndex), (C.GLsizei)(numViews))
+}
+func NamedProgramLocalParameter4dEXT(program uint32, target uint32, index uint32, x float64, y float64, z float64, w float64) {
+ C.glowNamedProgramLocalParameter4dEXT(gpNamedProgramLocalParameter4dEXT, (C.GLuint)(program), (C.GLenum)(target), (C.GLuint)(index), (C.GLdouble)(x), (C.GLdouble)(y), (C.GLdouble)(z), (C.GLdouble)(w))
+}
+func NamedProgramLocalParameter4dvEXT(program uint32, target uint32, index uint32, params *float64) {
+ C.glowNamedProgramLocalParameter4dvEXT(gpNamedProgramLocalParameter4dvEXT, (C.GLuint)(program), (C.GLenum)(target), (C.GLuint)(index), (*C.GLdouble)(unsafe.Pointer(params)))
+}
+func NamedProgramLocalParameter4fEXT(program uint32, target uint32, index uint32, x float32, y float32, z float32, w float32) {
+ C.glowNamedProgramLocalParameter4fEXT(gpNamedProgramLocalParameter4fEXT, (C.GLuint)(program), (C.GLenum)(target), (C.GLuint)(index), (C.GLfloat)(x), (C.GLfloat)(y), (C.GLfloat)(z), (C.GLfloat)(w))
+}
+func NamedProgramLocalParameter4fvEXT(program uint32, target uint32, index uint32, params *float32) {
+ C.glowNamedProgramLocalParameter4fvEXT(gpNamedProgramLocalParameter4fvEXT, (C.GLuint)(program), (C.GLenum)(target), (C.GLuint)(index), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func NamedProgramLocalParameterI4iEXT(program uint32, target uint32, index uint32, x int32, y int32, z int32, w int32) {
+ C.glowNamedProgramLocalParameterI4iEXT(gpNamedProgramLocalParameterI4iEXT, (C.GLuint)(program), (C.GLenum)(target), (C.GLuint)(index), (C.GLint)(x), (C.GLint)(y), (C.GLint)(z), (C.GLint)(w))
+}
+func NamedProgramLocalParameterI4ivEXT(program uint32, target uint32, index uint32, params *int32) {
+ C.glowNamedProgramLocalParameterI4ivEXT(gpNamedProgramLocalParameterI4ivEXT, (C.GLuint)(program), (C.GLenum)(target), (C.GLuint)(index), (*C.GLint)(unsafe.Pointer(params)))
+}
+func NamedProgramLocalParameterI4uiEXT(program uint32, target uint32, index uint32, x uint32, y uint32, z uint32, w uint32) {
+ C.glowNamedProgramLocalParameterI4uiEXT(gpNamedProgramLocalParameterI4uiEXT, (C.GLuint)(program), (C.GLenum)(target), (C.GLuint)(index), (C.GLuint)(x), (C.GLuint)(y), (C.GLuint)(z), (C.GLuint)(w))
+}
+func NamedProgramLocalParameterI4uivEXT(program uint32, target uint32, index uint32, params *uint32) {
+ C.glowNamedProgramLocalParameterI4uivEXT(gpNamedProgramLocalParameterI4uivEXT, (C.GLuint)(program), (C.GLenum)(target), (C.GLuint)(index), (*C.GLuint)(unsafe.Pointer(params)))
+}
+func NamedProgramLocalParameters4fvEXT(program uint32, target uint32, index uint32, count int32, params *float32) {
+ C.glowNamedProgramLocalParameters4fvEXT(gpNamedProgramLocalParameters4fvEXT, (C.GLuint)(program), (C.GLenum)(target), (C.GLuint)(index), (C.GLsizei)(count), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func NamedProgramLocalParametersI4ivEXT(program uint32, target uint32, index uint32, count int32, params *int32) {
+ C.glowNamedProgramLocalParametersI4ivEXT(gpNamedProgramLocalParametersI4ivEXT, (C.GLuint)(program), (C.GLenum)(target), (C.GLuint)(index), (C.GLsizei)(count), (*C.GLint)(unsafe.Pointer(params)))
+}
+func NamedProgramLocalParametersI4uivEXT(program uint32, target uint32, index uint32, count int32, params *uint32) {
+ C.glowNamedProgramLocalParametersI4uivEXT(gpNamedProgramLocalParametersI4uivEXT, (C.GLuint)(program), (C.GLenum)(target), (C.GLuint)(index), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(params)))
+}
+func NamedProgramStringEXT(program uint32, target uint32, format uint32, len int32, xstring unsafe.Pointer) {
+ C.glowNamedProgramStringEXT(gpNamedProgramStringEXT, (C.GLuint)(program), (C.GLenum)(target), (C.GLenum)(format), (C.GLsizei)(len), xstring)
+}
+
+// establish data storage, format and dimensions of a renderbuffer object's image
+func NamedRenderbufferStorage(renderbuffer uint32, internalformat uint32, width int32, height int32) {
+ C.glowNamedRenderbufferStorage(gpNamedRenderbufferStorage, (C.GLuint)(renderbuffer), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+func NamedRenderbufferStorageEXT(renderbuffer uint32, internalformat uint32, width int32, height int32) {
+ C.glowNamedRenderbufferStorageEXT(gpNamedRenderbufferStorageEXT, (C.GLuint)(renderbuffer), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+
+// establish data storage, format, dimensions and sample count of a renderbuffer object's image
+func NamedRenderbufferStorageMultisample(renderbuffer uint32, samples int32, internalformat uint32, width int32, height int32) {
+ C.glowNamedRenderbufferStorageMultisample(gpNamedRenderbufferStorageMultisample, (C.GLuint)(renderbuffer), (C.GLsizei)(samples), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+func NamedRenderbufferStorageMultisampleAdvancedAMD(renderbuffer uint32, samples int32, storageSamples int32, internalformat uint32, width int32, height int32) {
+ C.glowNamedRenderbufferStorageMultisampleAdvancedAMD(gpNamedRenderbufferStorageMultisampleAdvancedAMD, (C.GLuint)(renderbuffer), (C.GLsizei)(samples), (C.GLsizei)(storageSamples), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+func NamedRenderbufferStorageMultisampleCoverageEXT(renderbuffer uint32, coverageSamples int32, colorSamples int32, internalformat uint32, width int32, height int32) {
+ C.glowNamedRenderbufferStorageMultisampleCoverageEXT(gpNamedRenderbufferStorageMultisampleCoverageEXT, (C.GLuint)(renderbuffer), (C.GLsizei)(coverageSamples), (C.GLsizei)(colorSamples), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+func NamedRenderbufferStorageMultisampleEXT(renderbuffer uint32, samples int32, internalformat uint32, width int32, height int32) {
+ C.glowNamedRenderbufferStorageMultisampleEXT(gpNamedRenderbufferStorageMultisampleEXT, (C.GLuint)(renderbuffer), (C.GLsizei)(samples), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+func NamedStringARB(xtype uint32, namelen int32, name *uint8, stringlen int32, xstring *uint8) {
+ C.glowNamedStringARB(gpNamedStringARB, (C.GLenum)(xtype), (C.GLint)(namelen), (*C.GLchar)(unsafe.Pointer(name)), (C.GLint)(stringlen), (*C.GLchar)(unsafe.Pointer(xstring)))
+}
+func NormalFormatNV(xtype uint32, stride int32) {
+ C.glowNormalFormatNV(gpNormalFormatNV, (C.GLenum)(xtype), (C.GLsizei)(stride))
+}
+
+// label a named object identified within a namespace
+func ObjectLabel(identifier uint32, name uint32, length int32, label *uint8) {
+ C.glowObjectLabel(gpObjectLabel, (C.GLenum)(identifier), (C.GLuint)(name), (C.GLsizei)(length), (*C.GLchar)(unsafe.Pointer(label)))
+}
+func ObjectLabelKHR(identifier uint32, name uint32, length int32, label *uint8) {
+ C.glowObjectLabelKHR(gpObjectLabelKHR, (C.GLenum)(identifier), (C.GLuint)(name), (C.GLsizei)(length), (*C.GLchar)(unsafe.Pointer(label)))
+}
+
+// label a sync object identified by a pointer
+func ObjectPtrLabel(ptr unsafe.Pointer, length int32, label *uint8) {
+ C.glowObjectPtrLabel(gpObjectPtrLabel, ptr, (C.GLsizei)(length), (*C.GLchar)(unsafe.Pointer(label)))
+}
+func ObjectPtrLabelKHR(ptr unsafe.Pointer, length int32, label *uint8) {
+ C.glowObjectPtrLabelKHR(gpObjectPtrLabelKHR, ptr, (C.GLsizei)(length), (*C.GLchar)(unsafe.Pointer(label)))
+}
+func PatchParameterfv(pname uint32, values *float32) {
+ C.glowPatchParameterfv(gpPatchParameterfv, (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(values)))
+}
+
+// specifies the parameters for patch primitives
+func PatchParameteri(pname uint32, value int32) {
+ C.glowPatchParameteri(gpPatchParameteri, (C.GLenum)(pname), (C.GLint)(value))
+}
+func PathCommandsNV(path uint32, numCommands int32, commands *uint8, numCoords int32, coordType uint32, coords unsafe.Pointer) {
+ C.glowPathCommandsNV(gpPathCommandsNV, (C.GLuint)(path), (C.GLsizei)(numCommands), (*C.GLubyte)(unsafe.Pointer(commands)), (C.GLsizei)(numCoords), (C.GLenum)(coordType), coords)
+}
+func PathCoordsNV(path uint32, numCoords int32, coordType uint32, coords unsafe.Pointer) {
+ C.glowPathCoordsNV(gpPathCoordsNV, (C.GLuint)(path), (C.GLsizei)(numCoords), (C.GLenum)(coordType), coords)
+}
+func PathCoverDepthFuncNV(xfunc uint32) {
+ C.glowPathCoverDepthFuncNV(gpPathCoverDepthFuncNV, (C.GLenum)(xfunc))
+}
+func PathDashArrayNV(path uint32, dashCount int32, dashArray *float32) {
+ C.glowPathDashArrayNV(gpPathDashArrayNV, (C.GLuint)(path), (C.GLsizei)(dashCount), (*C.GLfloat)(unsafe.Pointer(dashArray)))
+}
+func PathGlyphIndexArrayNV(firstPathName uint32, fontTarget uint32, fontName unsafe.Pointer, fontStyle uint32, firstGlyphIndex uint32, numGlyphs int32, pathParameterTemplate uint32, emScale float32) uint32 {
+ ret := C.glowPathGlyphIndexArrayNV(gpPathGlyphIndexArrayNV, (C.GLuint)(firstPathName), (C.GLenum)(fontTarget), fontName, (C.GLbitfield)(fontStyle), (C.GLuint)(firstGlyphIndex), (C.GLsizei)(numGlyphs), (C.GLuint)(pathParameterTemplate), (C.GLfloat)(emScale))
+ return (uint32)(ret)
+}
+func PathGlyphIndexRangeNV(fontTarget uint32, fontName unsafe.Pointer, fontStyle uint32, pathParameterTemplate uint32, emScale float32, baseAndCount *uint32) uint32 {
+ ret := C.glowPathGlyphIndexRangeNV(gpPathGlyphIndexRangeNV, (C.GLenum)(fontTarget), fontName, (C.GLbitfield)(fontStyle), (C.GLuint)(pathParameterTemplate), (C.GLfloat)(emScale), (*C.GLuint)(unsafe.Pointer(baseAndCount)))
+ return (uint32)(ret)
+}
+func PathGlyphRangeNV(firstPathName uint32, fontTarget uint32, fontName unsafe.Pointer, fontStyle uint32, firstGlyph uint32, numGlyphs int32, handleMissingGlyphs uint32, pathParameterTemplate uint32, emScale float32) {
+ C.glowPathGlyphRangeNV(gpPathGlyphRangeNV, (C.GLuint)(firstPathName), (C.GLenum)(fontTarget), fontName, (C.GLbitfield)(fontStyle), (C.GLuint)(firstGlyph), (C.GLsizei)(numGlyphs), (C.GLenum)(handleMissingGlyphs), (C.GLuint)(pathParameterTemplate), (C.GLfloat)(emScale))
+}
+func PathGlyphsNV(firstPathName uint32, fontTarget uint32, fontName unsafe.Pointer, fontStyle uint32, numGlyphs int32, xtype uint32, charcodes unsafe.Pointer, handleMissingGlyphs uint32, pathParameterTemplate uint32, emScale float32) {
+ C.glowPathGlyphsNV(gpPathGlyphsNV, (C.GLuint)(firstPathName), (C.GLenum)(fontTarget), fontName, (C.GLbitfield)(fontStyle), (C.GLsizei)(numGlyphs), (C.GLenum)(xtype), charcodes, (C.GLenum)(handleMissingGlyphs), (C.GLuint)(pathParameterTemplate), (C.GLfloat)(emScale))
+}
+func PathMemoryGlyphIndexArrayNV(firstPathName uint32, fontTarget uint32, fontSize int, fontData unsafe.Pointer, faceIndex int32, firstGlyphIndex uint32, numGlyphs int32, pathParameterTemplate uint32, emScale float32) uint32 {
+ ret := C.glowPathMemoryGlyphIndexArrayNV(gpPathMemoryGlyphIndexArrayNV, (C.GLuint)(firstPathName), (C.GLenum)(fontTarget), (C.GLsizeiptr)(fontSize), fontData, (C.GLsizei)(faceIndex), (C.GLuint)(firstGlyphIndex), (C.GLsizei)(numGlyphs), (C.GLuint)(pathParameterTemplate), (C.GLfloat)(emScale))
+ return (uint32)(ret)
+}
+func PathParameterfNV(path uint32, pname uint32, value float32) {
+ C.glowPathParameterfNV(gpPathParameterfNV, (C.GLuint)(path), (C.GLenum)(pname), (C.GLfloat)(value))
+}
+func PathParameterfvNV(path uint32, pname uint32, value *float32) {
+ C.glowPathParameterfvNV(gpPathParameterfvNV, (C.GLuint)(path), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func PathParameteriNV(path uint32, pname uint32, value int32) {
+ C.glowPathParameteriNV(gpPathParameteriNV, (C.GLuint)(path), (C.GLenum)(pname), (C.GLint)(value))
+}
+func PathParameterivNV(path uint32, pname uint32, value *int32) {
+ C.glowPathParameterivNV(gpPathParameterivNV, (C.GLuint)(path), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(value)))
+}
+func PathStencilDepthOffsetNV(factor float32, units float32) {
+ C.glowPathStencilDepthOffsetNV(gpPathStencilDepthOffsetNV, (C.GLfloat)(factor), (C.GLfloat)(units))
+}
+func PathStencilFuncNV(xfunc uint32, ref int32, mask uint32) {
+ C.glowPathStencilFuncNV(gpPathStencilFuncNV, (C.GLenum)(xfunc), (C.GLint)(ref), (C.GLuint)(mask))
+}
+func PathStringNV(path uint32, format uint32, length int32, pathString unsafe.Pointer) {
+ C.glowPathStringNV(gpPathStringNV, (C.GLuint)(path), (C.GLenum)(format), (C.GLsizei)(length), pathString)
+}
+func PathSubCommandsNV(path uint32, commandStart int32, commandsToDelete int32, numCommands int32, commands *uint8, numCoords int32, coordType uint32, coords unsafe.Pointer) {
+ C.glowPathSubCommandsNV(gpPathSubCommandsNV, (C.GLuint)(path), (C.GLsizei)(commandStart), (C.GLsizei)(commandsToDelete), (C.GLsizei)(numCommands), (*C.GLubyte)(unsafe.Pointer(commands)), (C.GLsizei)(numCoords), (C.GLenum)(coordType), coords)
+}
+func PathSubCoordsNV(path uint32, coordStart int32, numCoords int32, coordType uint32, coords unsafe.Pointer) {
+ C.glowPathSubCoordsNV(gpPathSubCoordsNV, (C.GLuint)(path), (C.GLsizei)(coordStart), (C.GLsizei)(numCoords), (C.GLenum)(coordType), coords)
+}
+
+// pause transform feedback operations
+func PauseTransformFeedback() {
+ C.glowPauseTransformFeedback(gpPauseTransformFeedback)
+}
+func PixelStoref(pname uint32, param float32) {
+ C.glowPixelStoref(gpPixelStoref, (C.GLenum)(pname), (C.GLfloat)(param))
+}
+
+// set pixel storage modes
+func PixelStorei(pname uint32, param int32) {
+ C.glowPixelStorei(gpPixelStorei, (C.GLenum)(pname), (C.GLint)(param))
+}
+func PointAlongPathNV(path uint32, startSegment int32, numSegments int32, distance float32, x *float32, y *float32, tangentX *float32, tangentY *float32) bool {
+ ret := C.glowPointAlongPathNV(gpPointAlongPathNV, (C.GLuint)(path), (C.GLsizei)(startSegment), (C.GLsizei)(numSegments), (C.GLfloat)(distance), (*C.GLfloat)(unsafe.Pointer(x)), (*C.GLfloat)(unsafe.Pointer(y)), (*C.GLfloat)(unsafe.Pointer(tangentX)), (*C.GLfloat)(unsafe.Pointer(tangentY)))
+ return ret == TRUE
+}
+func PointParameterf(pname uint32, param float32) {
+ C.glowPointParameterf(gpPointParameterf, (C.GLenum)(pname), (C.GLfloat)(param))
+}
+func PointParameterfv(pname uint32, params *float32) {
+ C.glowPointParameterfv(gpPointParameterfv, (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func PointParameteri(pname uint32, param int32) {
+ C.glowPointParameteri(gpPointParameteri, (C.GLenum)(pname), (C.GLint)(param))
+}
+func PointParameteriv(pname uint32, params *int32) {
+ C.glowPointParameteriv(gpPointParameteriv, (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+
+// specify the diameter of rasterized points
+func PointSize(size float32) {
+ C.glowPointSize(gpPointSize, (C.GLfloat)(size))
+}
+
+// select a polygon rasterization mode
+func PolygonMode(face uint32, mode uint32) {
+ C.glowPolygonMode(gpPolygonMode, (C.GLenum)(face), (C.GLenum)(mode))
+}
+
+// set the scale and units used to calculate depth values
+func PolygonOffset(factor float32, units float32) {
+ C.glowPolygonOffset(gpPolygonOffset, (C.GLfloat)(factor), (C.GLfloat)(units))
+}
+func PolygonOffsetClamp(factor float32, units float32, clamp float32) {
+ C.glowPolygonOffsetClamp(gpPolygonOffsetClamp, (C.GLfloat)(factor), (C.GLfloat)(units), (C.GLfloat)(clamp))
+}
+func PolygonOffsetClampEXT(factor float32, units float32, clamp float32) {
+ C.glowPolygonOffsetClampEXT(gpPolygonOffsetClampEXT, (C.GLfloat)(factor), (C.GLfloat)(units), (C.GLfloat)(clamp))
+}
+
+// pop the active debug group
+func PopDebugGroup() {
+ C.glowPopDebugGroup(gpPopDebugGroup)
+}
+func PopDebugGroupKHR() {
+ C.glowPopDebugGroupKHR(gpPopDebugGroupKHR)
+}
+func PopGroupMarkerEXT() {
+ C.glowPopGroupMarkerEXT(gpPopGroupMarkerEXT)
+}
+func PrimitiveBoundingBoxARB(minX float32, minY float32, minZ float32, minW float32, maxX float32, maxY float32, maxZ float32, maxW float32) {
+ C.glowPrimitiveBoundingBoxARB(gpPrimitiveBoundingBoxARB, (C.GLfloat)(minX), (C.GLfloat)(minY), (C.GLfloat)(minZ), (C.GLfloat)(minW), (C.GLfloat)(maxX), (C.GLfloat)(maxY), (C.GLfloat)(maxZ), (C.GLfloat)(maxW))
+}
+
+// specify the primitive restart index
+func PrimitiveRestartIndex(index uint32) {
+ C.glowPrimitiveRestartIndex(gpPrimitiveRestartIndex, (C.GLuint)(index))
+}
+
+// load a program object with a program binary
+func ProgramBinary(program uint32, binaryFormat uint32, binary unsafe.Pointer, length int32) {
+ C.glowProgramBinary(gpProgramBinary, (C.GLuint)(program), (C.GLenum)(binaryFormat), binary, (C.GLsizei)(length))
+}
+
+// specify a parameter for a program object
+func ProgramParameteri(program uint32, pname uint32, value int32) {
+ C.glowProgramParameteri(gpProgramParameteri, (C.GLuint)(program), (C.GLenum)(pname), (C.GLint)(value))
+}
+func ProgramParameteriARB(program uint32, pname uint32, value int32) {
+ C.glowProgramParameteriARB(gpProgramParameteriARB, (C.GLuint)(program), (C.GLenum)(pname), (C.GLint)(value))
+}
+func ProgramParameteriEXT(program uint32, pname uint32, value int32) {
+ C.glowProgramParameteriEXT(gpProgramParameteriEXT, (C.GLuint)(program), (C.GLenum)(pname), (C.GLint)(value))
+}
+func ProgramPathFragmentInputGenNV(program uint32, location int32, genMode uint32, components int32, coeffs *float32) {
+ C.glowProgramPathFragmentInputGenNV(gpProgramPathFragmentInputGenNV, (C.GLuint)(program), (C.GLint)(location), (C.GLenum)(genMode), (C.GLint)(components), (*C.GLfloat)(unsafe.Pointer(coeffs)))
+}
+func ProgramUniform1d(program uint32, location int32, v0 float64) {
+ C.glowProgramUniform1d(gpProgramUniform1d, (C.GLuint)(program), (C.GLint)(location), (C.GLdouble)(v0))
+}
+func ProgramUniform1dEXT(program uint32, location int32, x float64) {
+ C.glowProgramUniform1dEXT(gpProgramUniform1dEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLdouble)(x))
+}
+func ProgramUniform1dv(program uint32, location int32, count int32, value *float64) {
+ C.glowProgramUniform1dv(gpProgramUniform1dv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+func ProgramUniform1dvEXT(program uint32, location int32, count int32, value *float64) {
+ C.glowProgramUniform1dvEXT(gpProgramUniform1dvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform1f(program uint32, location int32, v0 float32) {
+ C.glowProgramUniform1f(gpProgramUniform1f, (C.GLuint)(program), (C.GLint)(location), (C.GLfloat)(v0))
+}
+func ProgramUniform1fEXT(program uint32, location int32, v0 float32) {
+ C.glowProgramUniform1fEXT(gpProgramUniform1fEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLfloat)(v0))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform1fv(program uint32, location int32, count int32, value *float32) {
+ C.glowProgramUniform1fv(gpProgramUniform1fv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ProgramUniform1fvEXT(program uint32, location int32, count int32, value *float32) {
+ C.glowProgramUniform1fvEXT(gpProgramUniform1fvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform1i(program uint32, location int32, v0 int32) {
+ C.glowProgramUniform1i(gpProgramUniform1i, (C.GLuint)(program), (C.GLint)(location), (C.GLint)(v0))
+}
+func ProgramUniform1i64ARB(program uint32, location int32, x int64) {
+ C.glowProgramUniform1i64ARB(gpProgramUniform1i64ARB, (C.GLuint)(program), (C.GLint)(location), (C.GLint64)(x))
+}
+func ProgramUniform1i64NV(program uint32, location int32, x int64) {
+ C.glowProgramUniform1i64NV(gpProgramUniform1i64NV, (C.GLuint)(program), (C.GLint)(location), (C.GLint64EXT)(x))
+}
+func ProgramUniform1i64vARB(program uint32, location int32, count int32, value *int64) {
+ C.glowProgramUniform1i64vARB(gpProgramUniform1i64vARB, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLint64)(unsafe.Pointer(value)))
+}
+func ProgramUniform1i64vNV(program uint32, location int32, count int32, value *int64) {
+ C.glowProgramUniform1i64vNV(gpProgramUniform1i64vNV, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLint64EXT)(unsafe.Pointer(value)))
+}
+func ProgramUniform1iEXT(program uint32, location int32, v0 int32) {
+ C.glowProgramUniform1iEXT(gpProgramUniform1iEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLint)(v0))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform1iv(program uint32, location int32, count int32, value *int32) {
+ C.glowProgramUniform1iv(gpProgramUniform1iv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLint)(unsafe.Pointer(value)))
+}
+func ProgramUniform1ivEXT(program uint32, location int32, count int32, value *int32) {
+ C.glowProgramUniform1ivEXT(gpProgramUniform1ivEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLint)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform1ui(program uint32, location int32, v0 uint32) {
+ C.glowProgramUniform1ui(gpProgramUniform1ui, (C.GLuint)(program), (C.GLint)(location), (C.GLuint)(v0))
+}
+func ProgramUniform1ui64ARB(program uint32, location int32, x uint64) {
+ C.glowProgramUniform1ui64ARB(gpProgramUniform1ui64ARB, (C.GLuint)(program), (C.GLint)(location), (C.GLuint64)(x))
+}
+func ProgramUniform1ui64NV(program uint32, location int32, x uint64) {
+ C.glowProgramUniform1ui64NV(gpProgramUniform1ui64NV, (C.GLuint)(program), (C.GLint)(location), (C.GLuint64EXT)(x))
+}
+func ProgramUniform1ui64vARB(program uint32, location int32, count int32, value *uint64) {
+ C.glowProgramUniform1ui64vARB(gpProgramUniform1ui64vARB, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint64)(unsafe.Pointer(value)))
+}
+func ProgramUniform1ui64vNV(program uint32, location int32, count int32, value *uint64) {
+ C.glowProgramUniform1ui64vNV(gpProgramUniform1ui64vNV, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint64EXT)(unsafe.Pointer(value)))
+}
+func ProgramUniform1uiEXT(program uint32, location int32, v0 uint32) {
+ C.glowProgramUniform1uiEXT(gpProgramUniform1uiEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLuint)(v0))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform1uiv(program uint32, location int32, count int32, value *uint32) {
+ C.glowProgramUniform1uiv(gpProgramUniform1uiv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(value)))
+}
+func ProgramUniform1uivEXT(program uint32, location int32, count int32, value *uint32) {
+ C.glowProgramUniform1uivEXT(gpProgramUniform1uivEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(value)))
+}
+func ProgramUniform2d(program uint32, location int32, v0 float64, v1 float64) {
+ C.glowProgramUniform2d(gpProgramUniform2d, (C.GLuint)(program), (C.GLint)(location), (C.GLdouble)(v0), (C.GLdouble)(v1))
+}
+func ProgramUniform2dEXT(program uint32, location int32, x float64, y float64) {
+ C.glowProgramUniform2dEXT(gpProgramUniform2dEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLdouble)(x), (C.GLdouble)(y))
+}
+func ProgramUniform2dv(program uint32, location int32, count int32, value *float64) {
+ C.glowProgramUniform2dv(gpProgramUniform2dv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+func ProgramUniform2dvEXT(program uint32, location int32, count int32, value *float64) {
+ C.glowProgramUniform2dvEXT(gpProgramUniform2dvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform2f(program uint32, location int32, v0 float32, v1 float32) {
+ C.glowProgramUniform2f(gpProgramUniform2f, (C.GLuint)(program), (C.GLint)(location), (C.GLfloat)(v0), (C.GLfloat)(v1))
+}
+func ProgramUniform2fEXT(program uint32, location int32, v0 float32, v1 float32) {
+ C.glowProgramUniform2fEXT(gpProgramUniform2fEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLfloat)(v0), (C.GLfloat)(v1))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform2fv(program uint32, location int32, count int32, value *float32) {
+ C.glowProgramUniform2fv(gpProgramUniform2fv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ProgramUniform2fvEXT(program uint32, location int32, count int32, value *float32) {
+ C.glowProgramUniform2fvEXT(gpProgramUniform2fvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform2i(program uint32, location int32, v0 int32, v1 int32) {
+ C.glowProgramUniform2i(gpProgramUniform2i, (C.GLuint)(program), (C.GLint)(location), (C.GLint)(v0), (C.GLint)(v1))
+}
+func ProgramUniform2i64ARB(program uint32, location int32, x int64, y int64) {
+ C.glowProgramUniform2i64ARB(gpProgramUniform2i64ARB, (C.GLuint)(program), (C.GLint)(location), (C.GLint64)(x), (C.GLint64)(y))
+}
+func ProgramUniform2i64NV(program uint32, location int32, x int64, y int64) {
+ C.glowProgramUniform2i64NV(gpProgramUniform2i64NV, (C.GLuint)(program), (C.GLint)(location), (C.GLint64EXT)(x), (C.GLint64EXT)(y))
+}
+func ProgramUniform2i64vARB(program uint32, location int32, count int32, value *int64) {
+ C.glowProgramUniform2i64vARB(gpProgramUniform2i64vARB, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLint64)(unsafe.Pointer(value)))
+}
+func ProgramUniform2i64vNV(program uint32, location int32, count int32, value *int64) {
+ C.glowProgramUniform2i64vNV(gpProgramUniform2i64vNV, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLint64EXT)(unsafe.Pointer(value)))
+}
+func ProgramUniform2iEXT(program uint32, location int32, v0 int32, v1 int32) {
+ C.glowProgramUniform2iEXT(gpProgramUniform2iEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLint)(v0), (C.GLint)(v1))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform2iv(program uint32, location int32, count int32, value *int32) {
+ C.glowProgramUniform2iv(gpProgramUniform2iv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLint)(unsafe.Pointer(value)))
+}
+func ProgramUniform2ivEXT(program uint32, location int32, count int32, value *int32) {
+ C.glowProgramUniform2ivEXT(gpProgramUniform2ivEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLint)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform2ui(program uint32, location int32, v0 uint32, v1 uint32) {
+ C.glowProgramUniform2ui(gpProgramUniform2ui, (C.GLuint)(program), (C.GLint)(location), (C.GLuint)(v0), (C.GLuint)(v1))
+}
+func ProgramUniform2ui64ARB(program uint32, location int32, x uint64, y uint64) {
+ C.glowProgramUniform2ui64ARB(gpProgramUniform2ui64ARB, (C.GLuint)(program), (C.GLint)(location), (C.GLuint64)(x), (C.GLuint64)(y))
+}
+func ProgramUniform2ui64NV(program uint32, location int32, x uint64, y uint64) {
+ C.glowProgramUniform2ui64NV(gpProgramUniform2ui64NV, (C.GLuint)(program), (C.GLint)(location), (C.GLuint64EXT)(x), (C.GLuint64EXT)(y))
+}
+func ProgramUniform2ui64vARB(program uint32, location int32, count int32, value *uint64) {
+ C.glowProgramUniform2ui64vARB(gpProgramUniform2ui64vARB, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint64)(unsafe.Pointer(value)))
+}
+func ProgramUniform2ui64vNV(program uint32, location int32, count int32, value *uint64) {
+ C.glowProgramUniform2ui64vNV(gpProgramUniform2ui64vNV, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint64EXT)(unsafe.Pointer(value)))
+}
+func ProgramUniform2uiEXT(program uint32, location int32, v0 uint32, v1 uint32) {
+ C.glowProgramUniform2uiEXT(gpProgramUniform2uiEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLuint)(v0), (C.GLuint)(v1))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform2uiv(program uint32, location int32, count int32, value *uint32) {
+ C.glowProgramUniform2uiv(gpProgramUniform2uiv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(value)))
+}
+func ProgramUniform2uivEXT(program uint32, location int32, count int32, value *uint32) {
+ C.glowProgramUniform2uivEXT(gpProgramUniform2uivEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(value)))
+}
+func ProgramUniform3d(program uint32, location int32, v0 float64, v1 float64, v2 float64) {
+ C.glowProgramUniform3d(gpProgramUniform3d, (C.GLuint)(program), (C.GLint)(location), (C.GLdouble)(v0), (C.GLdouble)(v1), (C.GLdouble)(v2))
+}
+func ProgramUniform3dEXT(program uint32, location int32, x float64, y float64, z float64) {
+ C.glowProgramUniform3dEXT(gpProgramUniform3dEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLdouble)(x), (C.GLdouble)(y), (C.GLdouble)(z))
+}
+func ProgramUniform3dv(program uint32, location int32, count int32, value *float64) {
+ C.glowProgramUniform3dv(gpProgramUniform3dv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+func ProgramUniform3dvEXT(program uint32, location int32, count int32, value *float64) {
+ C.glowProgramUniform3dvEXT(gpProgramUniform3dvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform3f(program uint32, location int32, v0 float32, v1 float32, v2 float32) {
+ C.glowProgramUniform3f(gpProgramUniform3f, (C.GLuint)(program), (C.GLint)(location), (C.GLfloat)(v0), (C.GLfloat)(v1), (C.GLfloat)(v2))
+}
+func ProgramUniform3fEXT(program uint32, location int32, v0 float32, v1 float32, v2 float32) {
+ C.glowProgramUniform3fEXT(gpProgramUniform3fEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLfloat)(v0), (C.GLfloat)(v1), (C.GLfloat)(v2))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform3fv(program uint32, location int32, count int32, value *float32) {
+ C.glowProgramUniform3fv(gpProgramUniform3fv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ProgramUniform3fvEXT(program uint32, location int32, count int32, value *float32) {
+ C.glowProgramUniform3fvEXT(gpProgramUniform3fvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform3i(program uint32, location int32, v0 int32, v1 int32, v2 int32) {
+ C.glowProgramUniform3i(gpProgramUniform3i, (C.GLuint)(program), (C.GLint)(location), (C.GLint)(v0), (C.GLint)(v1), (C.GLint)(v2))
+}
+func ProgramUniform3i64ARB(program uint32, location int32, x int64, y int64, z int64) {
+ C.glowProgramUniform3i64ARB(gpProgramUniform3i64ARB, (C.GLuint)(program), (C.GLint)(location), (C.GLint64)(x), (C.GLint64)(y), (C.GLint64)(z))
+}
+func ProgramUniform3i64NV(program uint32, location int32, x int64, y int64, z int64) {
+ C.glowProgramUniform3i64NV(gpProgramUniform3i64NV, (C.GLuint)(program), (C.GLint)(location), (C.GLint64EXT)(x), (C.GLint64EXT)(y), (C.GLint64EXT)(z))
+}
+func ProgramUniform3i64vARB(program uint32, location int32, count int32, value *int64) {
+ C.glowProgramUniform3i64vARB(gpProgramUniform3i64vARB, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLint64)(unsafe.Pointer(value)))
+}
+func ProgramUniform3i64vNV(program uint32, location int32, count int32, value *int64) {
+ C.glowProgramUniform3i64vNV(gpProgramUniform3i64vNV, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLint64EXT)(unsafe.Pointer(value)))
+}
+func ProgramUniform3iEXT(program uint32, location int32, v0 int32, v1 int32, v2 int32) {
+ C.glowProgramUniform3iEXT(gpProgramUniform3iEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLint)(v0), (C.GLint)(v1), (C.GLint)(v2))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform3iv(program uint32, location int32, count int32, value *int32) {
+ C.glowProgramUniform3iv(gpProgramUniform3iv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLint)(unsafe.Pointer(value)))
+}
+func ProgramUniform3ivEXT(program uint32, location int32, count int32, value *int32) {
+ C.glowProgramUniform3ivEXT(gpProgramUniform3ivEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLint)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform3ui(program uint32, location int32, v0 uint32, v1 uint32, v2 uint32) {
+ C.glowProgramUniform3ui(gpProgramUniform3ui, (C.GLuint)(program), (C.GLint)(location), (C.GLuint)(v0), (C.GLuint)(v1), (C.GLuint)(v2))
+}
+func ProgramUniform3ui64ARB(program uint32, location int32, x uint64, y uint64, z uint64) {
+ C.glowProgramUniform3ui64ARB(gpProgramUniform3ui64ARB, (C.GLuint)(program), (C.GLint)(location), (C.GLuint64)(x), (C.GLuint64)(y), (C.GLuint64)(z))
+}
+func ProgramUniform3ui64NV(program uint32, location int32, x uint64, y uint64, z uint64) {
+ C.glowProgramUniform3ui64NV(gpProgramUniform3ui64NV, (C.GLuint)(program), (C.GLint)(location), (C.GLuint64EXT)(x), (C.GLuint64EXT)(y), (C.GLuint64EXT)(z))
+}
+func ProgramUniform3ui64vARB(program uint32, location int32, count int32, value *uint64) {
+ C.glowProgramUniform3ui64vARB(gpProgramUniform3ui64vARB, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint64)(unsafe.Pointer(value)))
+}
+func ProgramUniform3ui64vNV(program uint32, location int32, count int32, value *uint64) {
+ C.glowProgramUniform3ui64vNV(gpProgramUniform3ui64vNV, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint64EXT)(unsafe.Pointer(value)))
+}
+func ProgramUniform3uiEXT(program uint32, location int32, v0 uint32, v1 uint32, v2 uint32) {
+ C.glowProgramUniform3uiEXT(gpProgramUniform3uiEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLuint)(v0), (C.GLuint)(v1), (C.GLuint)(v2))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform3uiv(program uint32, location int32, count int32, value *uint32) {
+ C.glowProgramUniform3uiv(gpProgramUniform3uiv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(value)))
+}
+func ProgramUniform3uivEXT(program uint32, location int32, count int32, value *uint32) {
+ C.glowProgramUniform3uivEXT(gpProgramUniform3uivEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(value)))
+}
+func ProgramUniform4d(program uint32, location int32, v0 float64, v1 float64, v2 float64, v3 float64) {
+ C.glowProgramUniform4d(gpProgramUniform4d, (C.GLuint)(program), (C.GLint)(location), (C.GLdouble)(v0), (C.GLdouble)(v1), (C.GLdouble)(v2), (C.GLdouble)(v3))
+}
+func ProgramUniform4dEXT(program uint32, location int32, x float64, y float64, z float64, w float64) {
+ C.glowProgramUniform4dEXT(gpProgramUniform4dEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLdouble)(x), (C.GLdouble)(y), (C.GLdouble)(z), (C.GLdouble)(w))
+}
+func ProgramUniform4dv(program uint32, location int32, count int32, value *float64) {
+ C.glowProgramUniform4dv(gpProgramUniform4dv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+func ProgramUniform4dvEXT(program uint32, location int32, count int32, value *float64) {
+ C.glowProgramUniform4dvEXT(gpProgramUniform4dvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform4f(program uint32, location int32, v0 float32, v1 float32, v2 float32, v3 float32) {
+ C.glowProgramUniform4f(gpProgramUniform4f, (C.GLuint)(program), (C.GLint)(location), (C.GLfloat)(v0), (C.GLfloat)(v1), (C.GLfloat)(v2), (C.GLfloat)(v3))
+}
+func ProgramUniform4fEXT(program uint32, location int32, v0 float32, v1 float32, v2 float32, v3 float32) {
+ C.glowProgramUniform4fEXT(gpProgramUniform4fEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLfloat)(v0), (C.GLfloat)(v1), (C.GLfloat)(v2), (C.GLfloat)(v3))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform4fv(program uint32, location int32, count int32, value *float32) {
+ C.glowProgramUniform4fv(gpProgramUniform4fv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ProgramUniform4fvEXT(program uint32, location int32, count int32, value *float32) {
+ C.glowProgramUniform4fvEXT(gpProgramUniform4fvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform4i(program uint32, location int32, v0 int32, v1 int32, v2 int32, v3 int32) {
+ C.glowProgramUniform4i(gpProgramUniform4i, (C.GLuint)(program), (C.GLint)(location), (C.GLint)(v0), (C.GLint)(v1), (C.GLint)(v2), (C.GLint)(v3))
+}
+func ProgramUniform4i64ARB(program uint32, location int32, x int64, y int64, z int64, w int64) {
+ C.glowProgramUniform4i64ARB(gpProgramUniform4i64ARB, (C.GLuint)(program), (C.GLint)(location), (C.GLint64)(x), (C.GLint64)(y), (C.GLint64)(z), (C.GLint64)(w))
+}
+func ProgramUniform4i64NV(program uint32, location int32, x int64, y int64, z int64, w int64) {
+ C.glowProgramUniform4i64NV(gpProgramUniform4i64NV, (C.GLuint)(program), (C.GLint)(location), (C.GLint64EXT)(x), (C.GLint64EXT)(y), (C.GLint64EXT)(z), (C.GLint64EXT)(w))
+}
+func ProgramUniform4i64vARB(program uint32, location int32, count int32, value *int64) {
+ C.glowProgramUniform4i64vARB(gpProgramUniform4i64vARB, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLint64)(unsafe.Pointer(value)))
+}
+func ProgramUniform4i64vNV(program uint32, location int32, count int32, value *int64) {
+ C.glowProgramUniform4i64vNV(gpProgramUniform4i64vNV, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLint64EXT)(unsafe.Pointer(value)))
+}
+func ProgramUniform4iEXT(program uint32, location int32, v0 int32, v1 int32, v2 int32, v3 int32) {
+ C.glowProgramUniform4iEXT(gpProgramUniform4iEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLint)(v0), (C.GLint)(v1), (C.GLint)(v2), (C.GLint)(v3))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform4iv(program uint32, location int32, count int32, value *int32) {
+ C.glowProgramUniform4iv(gpProgramUniform4iv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLint)(unsafe.Pointer(value)))
+}
+func ProgramUniform4ivEXT(program uint32, location int32, count int32, value *int32) {
+ C.glowProgramUniform4ivEXT(gpProgramUniform4ivEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLint)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform4ui(program uint32, location int32, v0 uint32, v1 uint32, v2 uint32, v3 uint32) {
+ C.glowProgramUniform4ui(gpProgramUniform4ui, (C.GLuint)(program), (C.GLint)(location), (C.GLuint)(v0), (C.GLuint)(v1), (C.GLuint)(v2), (C.GLuint)(v3))
+}
+func ProgramUniform4ui64ARB(program uint32, location int32, x uint64, y uint64, z uint64, w uint64) {
+ C.glowProgramUniform4ui64ARB(gpProgramUniform4ui64ARB, (C.GLuint)(program), (C.GLint)(location), (C.GLuint64)(x), (C.GLuint64)(y), (C.GLuint64)(z), (C.GLuint64)(w))
+}
+func ProgramUniform4ui64NV(program uint32, location int32, x uint64, y uint64, z uint64, w uint64) {
+ C.glowProgramUniform4ui64NV(gpProgramUniform4ui64NV, (C.GLuint)(program), (C.GLint)(location), (C.GLuint64EXT)(x), (C.GLuint64EXT)(y), (C.GLuint64EXT)(z), (C.GLuint64EXT)(w))
+}
+func ProgramUniform4ui64vARB(program uint32, location int32, count int32, value *uint64) {
+ C.glowProgramUniform4ui64vARB(gpProgramUniform4ui64vARB, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint64)(unsafe.Pointer(value)))
+}
+func ProgramUniform4ui64vNV(program uint32, location int32, count int32, value *uint64) {
+ C.glowProgramUniform4ui64vNV(gpProgramUniform4ui64vNV, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint64EXT)(unsafe.Pointer(value)))
+}
+func ProgramUniform4uiEXT(program uint32, location int32, v0 uint32, v1 uint32, v2 uint32, v3 uint32) {
+ C.glowProgramUniform4uiEXT(gpProgramUniform4uiEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLuint)(v0), (C.GLuint)(v1), (C.GLuint)(v2), (C.GLuint)(v3))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniform4uiv(program uint32, location int32, count int32, value *uint32) {
+ C.glowProgramUniform4uiv(gpProgramUniform4uiv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(value)))
+}
+func ProgramUniform4uivEXT(program uint32, location int32, count int32, value *uint32) {
+ C.glowProgramUniform4uivEXT(gpProgramUniform4uivEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(value)))
+}
+func ProgramUniformHandleui64ARB(program uint32, location int32, value uint64) {
+ C.glowProgramUniformHandleui64ARB(gpProgramUniformHandleui64ARB, (C.GLuint)(program), (C.GLint)(location), (C.GLuint64)(value))
+}
+func ProgramUniformHandleui64NV(program uint32, location int32, value uint64) {
+ C.glowProgramUniformHandleui64NV(gpProgramUniformHandleui64NV, (C.GLuint)(program), (C.GLint)(location), (C.GLuint64)(value))
+}
+func ProgramUniformHandleui64vARB(program uint32, location int32, count int32, values *uint64) {
+ C.glowProgramUniformHandleui64vARB(gpProgramUniformHandleui64vARB, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint64)(unsafe.Pointer(values)))
+}
+func ProgramUniformHandleui64vNV(program uint32, location int32, count int32, values *uint64) {
+ C.glowProgramUniformHandleui64vNV(gpProgramUniformHandleui64vNV, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint64)(unsafe.Pointer(values)))
+}
+func ProgramUniformMatrix2dv(program uint32, location int32, count int32, transpose bool, value *float64) {
+ C.glowProgramUniformMatrix2dv(gpProgramUniformMatrix2dv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix2dvEXT(program uint32, location int32, count int32, transpose bool, value *float64) {
+ C.glowProgramUniformMatrix2dvEXT(gpProgramUniformMatrix2dvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniformMatrix2fv(program uint32, location int32, count int32, transpose bool, value *float32) {
+ C.glowProgramUniformMatrix2fv(gpProgramUniformMatrix2fv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix2fvEXT(program uint32, location int32, count int32, transpose bool, value *float32) {
+ C.glowProgramUniformMatrix2fvEXT(gpProgramUniformMatrix2fvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix2x3dv(program uint32, location int32, count int32, transpose bool, value *float64) {
+ C.glowProgramUniformMatrix2x3dv(gpProgramUniformMatrix2x3dv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix2x3dvEXT(program uint32, location int32, count int32, transpose bool, value *float64) {
+ C.glowProgramUniformMatrix2x3dvEXT(gpProgramUniformMatrix2x3dvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniformMatrix2x3fv(program uint32, location int32, count int32, transpose bool, value *float32) {
+ C.glowProgramUniformMatrix2x3fv(gpProgramUniformMatrix2x3fv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix2x3fvEXT(program uint32, location int32, count int32, transpose bool, value *float32) {
+ C.glowProgramUniformMatrix2x3fvEXT(gpProgramUniformMatrix2x3fvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix2x4dv(program uint32, location int32, count int32, transpose bool, value *float64) {
+ C.glowProgramUniformMatrix2x4dv(gpProgramUniformMatrix2x4dv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix2x4dvEXT(program uint32, location int32, count int32, transpose bool, value *float64) {
+ C.glowProgramUniformMatrix2x4dvEXT(gpProgramUniformMatrix2x4dvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniformMatrix2x4fv(program uint32, location int32, count int32, transpose bool, value *float32) {
+ C.glowProgramUniformMatrix2x4fv(gpProgramUniformMatrix2x4fv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix2x4fvEXT(program uint32, location int32, count int32, transpose bool, value *float32) {
+ C.glowProgramUniformMatrix2x4fvEXT(gpProgramUniformMatrix2x4fvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix3dv(program uint32, location int32, count int32, transpose bool, value *float64) {
+ C.glowProgramUniformMatrix3dv(gpProgramUniformMatrix3dv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix3dvEXT(program uint32, location int32, count int32, transpose bool, value *float64) {
+ C.glowProgramUniformMatrix3dvEXT(gpProgramUniformMatrix3dvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniformMatrix3fv(program uint32, location int32, count int32, transpose bool, value *float32) {
+ C.glowProgramUniformMatrix3fv(gpProgramUniformMatrix3fv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix3fvEXT(program uint32, location int32, count int32, transpose bool, value *float32) {
+ C.glowProgramUniformMatrix3fvEXT(gpProgramUniformMatrix3fvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix3x2dv(program uint32, location int32, count int32, transpose bool, value *float64) {
+ C.glowProgramUniformMatrix3x2dv(gpProgramUniformMatrix3x2dv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix3x2dvEXT(program uint32, location int32, count int32, transpose bool, value *float64) {
+ C.glowProgramUniformMatrix3x2dvEXT(gpProgramUniformMatrix3x2dvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniformMatrix3x2fv(program uint32, location int32, count int32, transpose bool, value *float32) {
+ C.glowProgramUniformMatrix3x2fv(gpProgramUniformMatrix3x2fv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix3x2fvEXT(program uint32, location int32, count int32, transpose bool, value *float32) {
+ C.glowProgramUniformMatrix3x2fvEXT(gpProgramUniformMatrix3x2fvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix3x4dv(program uint32, location int32, count int32, transpose bool, value *float64) {
+ C.glowProgramUniformMatrix3x4dv(gpProgramUniformMatrix3x4dv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix3x4dvEXT(program uint32, location int32, count int32, transpose bool, value *float64) {
+ C.glowProgramUniformMatrix3x4dvEXT(gpProgramUniformMatrix3x4dvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniformMatrix3x4fv(program uint32, location int32, count int32, transpose bool, value *float32) {
+ C.glowProgramUniformMatrix3x4fv(gpProgramUniformMatrix3x4fv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix3x4fvEXT(program uint32, location int32, count int32, transpose bool, value *float32) {
+ C.glowProgramUniformMatrix3x4fvEXT(gpProgramUniformMatrix3x4fvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix4dv(program uint32, location int32, count int32, transpose bool, value *float64) {
+ C.glowProgramUniformMatrix4dv(gpProgramUniformMatrix4dv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix4dvEXT(program uint32, location int32, count int32, transpose bool, value *float64) {
+ C.glowProgramUniformMatrix4dvEXT(gpProgramUniformMatrix4dvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniformMatrix4fv(program uint32, location int32, count int32, transpose bool, value *float32) {
+ C.glowProgramUniformMatrix4fv(gpProgramUniformMatrix4fv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix4fvEXT(program uint32, location int32, count int32, transpose bool, value *float32) {
+ C.glowProgramUniformMatrix4fvEXT(gpProgramUniformMatrix4fvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix4x2dv(program uint32, location int32, count int32, transpose bool, value *float64) {
+ C.glowProgramUniformMatrix4x2dv(gpProgramUniformMatrix4x2dv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix4x2dvEXT(program uint32, location int32, count int32, transpose bool, value *float64) {
+ C.glowProgramUniformMatrix4x2dvEXT(gpProgramUniformMatrix4x2dvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniformMatrix4x2fv(program uint32, location int32, count int32, transpose bool, value *float32) {
+ C.glowProgramUniformMatrix4x2fv(gpProgramUniformMatrix4x2fv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix4x2fvEXT(program uint32, location int32, count int32, transpose bool, value *float32) {
+ C.glowProgramUniformMatrix4x2fvEXT(gpProgramUniformMatrix4x2fvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix4x3dv(program uint32, location int32, count int32, transpose bool, value *float64) {
+ C.glowProgramUniformMatrix4x3dv(gpProgramUniformMatrix4x3dv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix4x3dvEXT(program uint32, location int32, count int32, transpose bool, value *float64) {
+ C.glowProgramUniformMatrix4x3dvEXT(gpProgramUniformMatrix4x3dvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for a specified program object
+func ProgramUniformMatrix4x3fv(program uint32, location int32, count int32, transpose bool, value *float32) {
+ C.glowProgramUniformMatrix4x3fv(gpProgramUniformMatrix4x3fv, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ProgramUniformMatrix4x3fvEXT(program uint32, location int32, count int32, transpose bool, value *float32) {
+ C.glowProgramUniformMatrix4x3fvEXT(gpProgramUniformMatrix4x3fvEXT, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func ProgramUniformui64NV(program uint32, location int32, value uint64) {
+ C.glowProgramUniformui64NV(gpProgramUniformui64NV, (C.GLuint)(program), (C.GLint)(location), (C.GLuint64EXT)(value))
+}
+func ProgramUniformui64vNV(program uint32, location int32, count int32, value *uint64) {
+ C.glowProgramUniformui64vNV(gpProgramUniformui64vNV, (C.GLuint)(program), (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint64EXT)(unsafe.Pointer(value)))
+}
+
+// specifiy the vertex to be used as the source of data for flat shaded varyings
+func ProvokingVertex(mode uint32) {
+ C.glowProvokingVertex(gpProvokingVertex, (C.GLenum)(mode))
+}
+func PushClientAttribDefaultEXT(mask uint32) {
+ C.glowPushClientAttribDefaultEXT(gpPushClientAttribDefaultEXT, (C.GLbitfield)(mask))
+}
+
+// push a named debug group into the command stream
+func PushDebugGroup(source uint32, id uint32, length int32, message *uint8) {
+ C.glowPushDebugGroup(gpPushDebugGroup, (C.GLenum)(source), (C.GLuint)(id), (C.GLsizei)(length), (*C.GLchar)(unsafe.Pointer(message)))
+}
+func PushDebugGroupKHR(source uint32, id uint32, length int32, message *uint8) {
+ C.glowPushDebugGroupKHR(gpPushDebugGroupKHR, (C.GLenum)(source), (C.GLuint)(id), (C.GLsizei)(length), (*C.GLchar)(unsafe.Pointer(message)))
+}
+func PushGroupMarkerEXT(length int32, marker *uint8) {
+ C.glowPushGroupMarkerEXT(gpPushGroupMarkerEXT, (C.GLsizei)(length), (*C.GLchar)(unsafe.Pointer(marker)))
+}
+
+// record the GL time into a query object after all previous commands have reached the GL server but have not yet necessarily executed.
+func QueryCounter(id uint32, target uint32) {
+ C.glowQueryCounter(gpQueryCounter, (C.GLuint)(id), (C.GLenum)(target))
+}
+func RasterSamplesEXT(samples uint32, fixedsamplelocations bool) {
+ C.glowRasterSamplesEXT(gpRasterSamplesEXT, (C.GLuint)(samples), (C.GLboolean)(boolToInt(fixedsamplelocations)))
+}
+
+// select a color buffer source for pixels
+func ReadBuffer(src uint32) {
+ C.glowReadBuffer(gpReadBuffer, (C.GLenum)(src))
+}
+
+// read a block of pixels from the frame buffer
+func ReadPixels(x int32, y int32, width int32, height int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowReadPixels(gpReadPixels, (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+
+// read a block of pixels from the frame buffer
+func ReadnPixels(x int32, y int32, width int32, height int32, format uint32, xtype uint32, bufSize int32, data unsafe.Pointer) {
+ C.glowReadnPixels(gpReadnPixels, (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLenum)(format), (C.GLenum)(xtype), (C.GLsizei)(bufSize), data)
+}
+func ReadnPixelsARB(x int32, y int32, width int32, height int32, format uint32, xtype uint32, bufSize int32, data unsafe.Pointer) {
+ C.glowReadnPixelsARB(gpReadnPixelsARB, (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLenum)(format), (C.GLenum)(xtype), (C.GLsizei)(bufSize), data)
+}
+func ReadnPixelsKHR(x int32, y int32, width int32, height int32, format uint32, xtype uint32, bufSize int32, data unsafe.Pointer) {
+ C.glowReadnPixelsKHR(gpReadnPixelsKHR, (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLenum)(format), (C.GLenum)(xtype), (C.GLsizei)(bufSize), data)
+}
+
+// release resources consumed by the implementation's shader compiler
+func ReleaseShaderCompiler() {
+ C.glowReleaseShaderCompiler(gpReleaseShaderCompiler)
+}
+
+// establish data storage, format and dimensions of a renderbuffer object's image
+func RenderbufferStorage(target uint32, internalformat uint32, width int32, height int32) {
+ C.glowRenderbufferStorage(gpRenderbufferStorage, (C.GLenum)(target), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+
+// establish data storage, format, dimensions and sample count of a renderbuffer object's image
+func RenderbufferStorageMultisample(target uint32, samples int32, internalformat uint32, width int32, height int32) {
+ C.glowRenderbufferStorageMultisample(gpRenderbufferStorageMultisample, (C.GLenum)(target), (C.GLsizei)(samples), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+func RenderbufferStorageMultisampleAdvancedAMD(target uint32, samples int32, storageSamples int32, internalformat uint32, width int32, height int32) {
+ C.glowRenderbufferStorageMultisampleAdvancedAMD(gpRenderbufferStorageMultisampleAdvancedAMD, (C.GLenum)(target), (C.GLsizei)(samples), (C.GLsizei)(storageSamples), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+func RenderbufferStorageMultisampleCoverageNV(target uint32, coverageSamples int32, colorSamples int32, internalformat uint32, width int32, height int32) {
+ C.glowRenderbufferStorageMultisampleCoverageNV(gpRenderbufferStorageMultisampleCoverageNV, (C.GLenum)(target), (C.GLsizei)(coverageSamples), (C.GLsizei)(colorSamples), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+func ResetMemoryObjectParameterNV(memory uint32, pname uint32) {
+ C.glowResetMemoryObjectParameterNV(gpResetMemoryObjectParameterNV, (C.GLuint)(memory), (C.GLenum)(pname))
+}
+func ResolveDepthValuesNV() {
+ C.glowResolveDepthValuesNV(gpResolveDepthValuesNV)
+}
+
+// resume transform feedback operations
+func ResumeTransformFeedback() {
+ C.glowResumeTransformFeedback(gpResumeTransformFeedback)
+}
+
+// specify multisample coverage parameters
+func SampleCoverage(value float32, invert bool) {
+ C.glowSampleCoverage(gpSampleCoverage, (C.GLfloat)(value), (C.GLboolean)(boolToInt(invert)))
+}
+
+// set the value of a sub-word of the sample mask
+func SampleMaski(maskNumber uint32, mask uint32) {
+ C.glowSampleMaski(gpSampleMaski, (C.GLuint)(maskNumber), (C.GLbitfield)(mask))
+}
+func SamplerParameterIiv(sampler uint32, pname uint32, param *int32) {
+ C.glowSamplerParameterIiv(gpSamplerParameterIiv, (C.GLuint)(sampler), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(param)))
+}
+func SamplerParameterIuiv(sampler uint32, pname uint32, param *uint32) {
+ C.glowSamplerParameterIuiv(gpSamplerParameterIuiv, (C.GLuint)(sampler), (C.GLenum)(pname), (*C.GLuint)(unsafe.Pointer(param)))
+}
+func SamplerParameterf(sampler uint32, pname uint32, param float32) {
+ C.glowSamplerParameterf(gpSamplerParameterf, (C.GLuint)(sampler), (C.GLenum)(pname), (C.GLfloat)(param))
+}
+func SamplerParameterfv(sampler uint32, pname uint32, param *float32) {
+ C.glowSamplerParameterfv(gpSamplerParameterfv, (C.GLuint)(sampler), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(param)))
+}
+func SamplerParameteri(sampler uint32, pname uint32, param int32) {
+ C.glowSamplerParameteri(gpSamplerParameteri, (C.GLuint)(sampler), (C.GLenum)(pname), (C.GLint)(param))
+}
+func SamplerParameteriv(sampler uint32, pname uint32, param *int32) {
+ C.glowSamplerParameteriv(gpSamplerParameteriv, (C.GLuint)(sampler), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(param)))
+}
+
+// define the scissor box
+func Scissor(x int32, y int32, width int32, height int32) {
+ C.glowScissor(gpScissor, (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+func ScissorArrayv(first uint32, count int32, v *int32) {
+ C.glowScissorArrayv(gpScissorArrayv, (C.GLuint)(first), (C.GLsizei)(count), (*C.GLint)(unsafe.Pointer(v)))
+}
+func ScissorExclusiveArrayvNV(first uint32, count int32, v *int32) {
+ C.glowScissorExclusiveArrayvNV(gpScissorExclusiveArrayvNV, (C.GLuint)(first), (C.GLsizei)(count), (*C.GLint)(unsafe.Pointer(v)))
+}
+func ScissorExclusiveNV(x int32, y int32, width int32, height int32) {
+ C.glowScissorExclusiveNV(gpScissorExclusiveNV, (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+
+// define the scissor box for a specific viewport
+func ScissorIndexed(index uint32, left int32, bottom int32, width int32, height int32) {
+ C.glowScissorIndexed(gpScissorIndexed, (C.GLuint)(index), (C.GLint)(left), (C.GLint)(bottom), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+func ScissorIndexedv(index uint32, v *int32) {
+ C.glowScissorIndexedv(gpScissorIndexedv, (C.GLuint)(index), (*C.GLint)(unsafe.Pointer(v)))
+}
+func SecondaryColorFormatNV(size int32, xtype uint32, stride int32) {
+ C.glowSecondaryColorFormatNV(gpSecondaryColorFormatNV, (C.GLint)(size), (C.GLenum)(xtype), (C.GLsizei)(stride))
+}
+func SelectPerfMonitorCountersAMD(monitor uint32, enable bool, group uint32, numCounters int32, counterList *uint32) {
+ C.glowSelectPerfMonitorCountersAMD(gpSelectPerfMonitorCountersAMD, (C.GLuint)(monitor), (C.GLboolean)(boolToInt(enable)), (C.GLuint)(group), (C.GLint)(numCounters), (*C.GLuint)(unsafe.Pointer(counterList)))
+}
+
+// load pre-compiled shader binaries
+func ShaderBinary(count int32, shaders *uint32, binaryFormat uint32, binary unsafe.Pointer, length int32) {
+ C.glowShaderBinary(gpShaderBinary, (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(shaders)), (C.GLenum)(binaryFormat), binary, (C.GLsizei)(length))
+}
+
+// Replaces the source code in a shader object
+func ShaderSource(shader uint32, count int32, xstring **uint8, length *int32) {
+ C.glowShaderSource(gpShaderSource, (C.GLuint)(shader), (C.GLsizei)(count), (**C.GLchar)(unsafe.Pointer(xstring)), (*C.GLint)(unsafe.Pointer(length)))
+}
+
+// change an active shader storage block binding
+func ShaderStorageBlockBinding(program uint32, storageBlockIndex uint32, storageBlockBinding uint32) {
+ C.glowShaderStorageBlockBinding(gpShaderStorageBlockBinding, (C.GLuint)(program), (C.GLuint)(storageBlockIndex), (C.GLuint)(storageBlockBinding))
+}
+func ShadingRateImageBarrierNV(synchronize bool) {
+ C.glowShadingRateImageBarrierNV(gpShadingRateImageBarrierNV, (C.GLboolean)(boolToInt(synchronize)))
+}
+func ShadingRateImagePaletteNV(viewport uint32, first uint32, count int32, rates *uint32) {
+ C.glowShadingRateImagePaletteNV(gpShadingRateImagePaletteNV, (C.GLuint)(viewport), (C.GLuint)(first), (C.GLsizei)(count), (*C.GLenum)(unsafe.Pointer(rates)))
+}
+func ShadingRateSampleOrderCustomNV(rate uint32, samples uint32, locations *int32) {
+ C.glowShadingRateSampleOrderCustomNV(gpShadingRateSampleOrderCustomNV, (C.GLenum)(rate), (C.GLuint)(samples), (*C.GLint)(unsafe.Pointer(locations)))
+}
+func ShadingRateSampleOrderNV(order uint32) {
+ C.glowShadingRateSampleOrderNV(gpShadingRateSampleOrderNV, (C.GLenum)(order))
+}
+func SignalVkFenceNV(vkFence uint64) {
+ C.glowSignalVkFenceNV(gpSignalVkFenceNV, (C.GLuint64)(vkFence))
+}
+func SignalVkSemaphoreNV(vkSemaphore uint64) {
+ C.glowSignalVkSemaphoreNV(gpSignalVkSemaphoreNV, (C.GLuint64)(vkSemaphore))
+}
+func SpecializeShaderARB(shader uint32, pEntryPoint *uint8, numSpecializationConstants uint32, pConstantIndex *uint32, pConstantValue *uint32) {
+ C.glowSpecializeShaderARB(gpSpecializeShaderARB, (C.GLuint)(shader), (*C.GLchar)(unsafe.Pointer(pEntryPoint)), (C.GLuint)(numSpecializationConstants), (*C.GLuint)(unsafe.Pointer(pConstantIndex)), (*C.GLuint)(unsafe.Pointer(pConstantValue)))
+}
+func StateCaptureNV(state uint32, mode uint32) {
+ C.glowStateCaptureNV(gpStateCaptureNV, (C.GLuint)(state), (C.GLenum)(mode))
+}
+func StencilFillPathInstancedNV(numPaths int32, pathNameType uint32, paths unsafe.Pointer, pathBase uint32, fillMode uint32, mask uint32, transformType uint32, transformValues *float32) {
+ C.glowStencilFillPathInstancedNV(gpStencilFillPathInstancedNV, (C.GLsizei)(numPaths), (C.GLenum)(pathNameType), paths, (C.GLuint)(pathBase), (C.GLenum)(fillMode), (C.GLuint)(mask), (C.GLenum)(transformType), (*C.GLfloat)(unsafe.Pointer(transformValues)))
+}
+func StencilFillPathNV(path uint32, fillMode uint32, mask uint32) {
+ C.glowStencilFillPathNV(gpStencilFillPathNV, (C.GLuint)(path), (C.GLenum)(fillMode), (C.GLuint)(mask))
+}
+
+// set front and back function and reference value for stencil testing
+func StencilFunc(xfunc uint32, ref int32, mask uint32) {
+ C.glowStencilFunc(gpStencilFunc, (C.GLenum)(xfunc), (C.GLint)(ref), (C.GLuint)(mask))
+}
+
+// set front and/or back function and reference value for stencil testing
+func StencilFuncSeparate(face uint32, xfunc uint32, ref int32, mask uint32) {
+ C.glowStencilFuncSeparate(gpStencilFuncSeparate, (C.GLenum)(face), (C.GLenum)(xfunc), (C.GLint)(ref), (C.GLuint)(mask))
+}
+
+// control the front and back writing of individual bits in the stencil planes
+func StencilMask(mask uint32) {
+ C.glowStencilMask(gpStencilMask, (C.GLuint)(mask))
+}
+
+// control the front and/or back writing of individual bits in the stencil planes
+func StencilMaskSeparate(face uint32, mask uint32) {
+ C.glowStencilMaskSeparate(gpStencilMaskSeparate, (C.GLenum)(face), (C.GLuint)(mask))
+}
+
+// set front and back stencil test actions
+func StencilOp(fail uint32, zfail uint32, zpass uint32) {
+ C.glowStencilOp(gpStencilOp, (C.GLenum)(fail), (C.GLenum)(zfail), (C.GLenum)(zpass))
+}
+
+// set front and/or back stencil test actions
+func StencilOpSeparate(face uint32, sfail uint32, dpfail uint32, dppass uint32) {
+ C.glowStencilOpSeparate(gpStencilOpSeparate, (C.GLenum)(face), (C.GLenum)(sfail), (C.GLenum)(dpfail), (C.GLenum)(dppass))
+}
+func StencilStrokePathInstancedNV(numPaths int32, pathNameType uint32, paths unsafe.Pointer, pathBase uint32, reference int32, mask uint32, transformType uint32, transformValues *float32) {
+ C.glowStencilStrokePathInstancedNV(gpStencilStrokePathInstancedNV, (C.GLsizei)(numPaths), (C.GLenum)(pathNameType), paths, (C.GLuint)(pathBase), (C.GLint)(reference), (C.GLuint)(mask), (C.GLenum)(transformType), (*C.GLfloat)(unsafe.Pointer(transformValues)))
+}
+func StencilStrokePathNV(path uint32, reference int32, mask uint32) {
+ C.glowStencilStrokePathNV(gpStencilStrokePathNV, (C.GLuint)(path), (C.GLint)(reference), (C.GLuint)(mask))
+}
+func StencilThenCoverFillPathInstancedNV(numPaths int32, pathNameType uint32, paths unsafe.Pointer, pathBase uint32, fillMode uint32, mask uint32, coverMode uint32, transformType uint32, transformValues *float32) {
+ C.glowStencilThenCoverFillPathInstancedNV(gpStencilThenCoverFillPathInstancedNV, (C.GLsizei)(numPaths), (C.GLenum)(pathNameType), paths, (C.GLuint)(pathBase), (C.GLenum)(fillMode), (C.GLuint)(mask), (C.GLenum)(coverMode), (C.GLenum)(transformType), (*C.GLfloat)(unsafe.Pointer(transformValues)))
+}
+func StencilThenCoverFillPathNV(path uint32, fillMode uint32, mask uint32, coverMode uint32) {
+ C.glowStencilThenCoverFillPathNV(gpStencilThenCoverFillPathNV, (C.GLuint)(path), (C.GLenum)(fillMode), (C.GLuint)(mask), (C.GLenum)(coverMode))
+}
+func StencilThenCoverStrokePathInstancedNV(numPaths int32, pathNameType uint32, paths unsafe.Pointer, pathBase uint32, reference int32, mask uint32, coverMode uint32, transformType uint32, transformValues *float32) {
+ C.glowStencilThenCoverStrokePathInstancedNV(gpStencilThenCoverStrokePathInstancedNV, (C.GLsizei)(numPaths), (C.GLenum)(pathNameType), paths, (C.GLuint)(pathBase), (C.GLint)(reference), (C.GLuint)(mask), (C.GLenum)(coverMode), (C.GLenum)(transformType), (*C.GLfloat)(unsafe.Pointer(transformValues)))
+}
+func StencilThenCoverStrokePathNV(path uint32, reference int32, mask uint32, coverMode uint32) {
+ C.glowStencilThenCoverStrokePathNV(gpStencilThenCoverStrokePathNV, (C.GLuint)(path), (C.GLint)(reference), (C.GLuint)(mask), (C.GLenum)(coverMode))
+}
+func SubpixelPrecisionBiasNV(xbits uint32, ybits uint32) {
+ C.glowSubpixelPrecisionBiasNV(gpSubpixelPrecisionBiasNV, (C.GLuint)(xbits), (C.GLuint)(ybits))
+}
+func TexAttachMemoryNV(target uint32, memory uint32, offset uint64) {
+ C.glowTexAttachMemoryNV(gpTexAttachMemoryNV, (C.GLenum)(target), (C.GLuint)(memory), (C.GLuint64)(offset))
+}
+
+// attach a buffer object's data store to a buffer texture object
+func TexBuffer(target uint32, internalformat uint32, buffer uint32) {
+ C.glowTexBuffer(gpTexBuffer, (C.GLenum)(target), (C.GLenum)(internalformat), (C.GLuint)(buffer))
+}
+func TexBufferARB(target uint32, internalformat uint32, buffer uint32) {
+ C.glowTexBufferARB(gpTexBufferARB, (C.GLenum)(target), (C.GLenum)(internalformat), (C.GLuint)(buffer))
+}
+
+// attach a range of a buffer object's data store to a buffer texture object
+func TexBufferRange(target uint32, internalformat uint32, buffer uint32, offset int, size int) {
+ C.glowTexBufferRange(gpTexBufferRange, (C.GLenum)(target), (C.GLenum)(internalformat), (C.GLuint)(buffer), (C.GLintptr)(offset), (C.GLsizeiptr)(size))
+}
+func TexCoordFormatNV(size int32, xtype uint32, stride int32) {
+ C.glowTexCoordFormatNV(gpTexCoordFormatNV, (C.GLint)(size), (C.GLenum)(xtype), (C.GLsizei)(stride))
+}
+
+// specify a one-dimensional texture image
+func TexImage1D(target uint32, level int32, internalformat int32, width int32, border int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowTexImage1D(gpTexImage1D, (C.GLenum)(target), (C.GLint)(level), (C.GLint)(internalformat), (C.GLsizei)(width), (C.GLint)(border), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+
+// specify a two-dimensional texture image
+func TexImage2D(target uint32, level int32, internalformat int32, width int32, height int32, border int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowTexImage2D(gpTexImage2D, (C.GLenum)(target), (C.GLint)(level), (C.GLint)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLint)(border), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+
+// establish the data storage, format, dimensions, and number of samples of a multisample texture's image
+func TexImage2DMultisample(target uint32, samples int32, internalformat uint32, width int32, height int32, fixedsamplelocations bool) {
+ C.glowTexImage2DMultisample(gpTexImage2DMultisample, (C.GLenum)(target), (C.GLsizei)(samples), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLboolean)(boolToInt(fixedsamplelocations)))
+}
+
+// specify a three-dimensional texture image
+func TexImage3D(target uint32, level int32, internalformat int32, width int32, height int32, depth int32, border int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowTexImage3D(gpTexImage3D, (C.GLenum)(target), (C.GLint)(level), (C.GLint)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLint)(border), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+
+// establish the data storage, format, dimensions, and number of samples of a multisample texture's image
+func TexImage3DMultisample(target uint32, samples int32, internalformat uint32, width int32, height int32, depth int32, fixedsamplelocations bool) {
+ C.glowTexImage3DMultisample(gpTexImage3DMultisample, (C.GLenum)(target), (C.GLsizei)(samples), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLboolean)(boolToInt(fixedsamplelocations)))
+}
+func TexPageCommitmentARB(target uint32, level int32, xoffset int32, yoffset int32, zoffset int32, width int32, height int32, depth int32, commit bool) {
+ C.glowTexPageCommitmentARB(gpTexPageCommitmentARB, (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(zoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLboolean)(boolToInt(commit)))
+}
+func TexPageCommitmentMemNV(target uint32, layer int32, level int32, xoffset int32, yoffset int32, zoffset int32, width int32, height int32, depth int32, memory uint32, offset uint64, commit bool) {
+ C.glowTexPageCommitmentMemNV(gpTexPageCommitmentMemNV, (C.GLenum)(target), (C.GLint)(layer), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(zoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLuint)(memory), (C.GLuint64)(offset), (C.GLboolean)(boolToInt(commit)))
+}
+func TexParameterIiv(target uint32, pname uint32, params *int32) {
+ C.glowTexParameterIiv(gpTexParameterIiv, (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func TexParameterIuiv(target uint32, pname uint32, params *uint32) {
+ C.glowTexParameterIuiv(gpTexParameterIuiv, (C.GLenum)(target), (C.GLenum)(pname), (*C.GLuint)(unsafe.Pointer(params)))
+}
+func TexParameterf(target uint32, pname uint32, param float32) {
+ C.glowTexParameterf(gpTexParameterf, (C.GLenum)(target), (C.GLenum)(pname), (C.GLfloat)(param))
+}
+func TexParameterfv(target uint32, pname uint32, params *float32) {
+ C.glowTexParameterfv(gpTexParameterfv, (C.GLenum)(target), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func TexParameteri(target uint32, pname uint32, param int32) {
+ C.glowTexParameteri(gpTexParameteri, (C.GLenum)(target), (C.GLenum)(pname), (C.GLint)(param))
+}
+func TexParameteriv(target uint32, pname uint32, params *int32) {
+ C.glowTexParameteriv(gpTexParameteriv, (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+
+// simultaneously specify storage for all levels of a one-dimensional texture
+func TexStorage1D(target uint32, levels int32, internalformat uint32, width int32) {
+ C.glowTexStorage1D(gpTexStorage1D, (C.GLenum)(target), (C.GLsizei)(levels), (C.GLenum)(internalformat), (C.GLsizei)(width))
+}
+func TexStorage1DEXT(target uint32, levels int32, internalformat uint32, width int32) {
+ C.glowTexStorage1DEXT(gpTexStorage1DEXT, (C.GLenum)(target), (C.GLsizei)(levels), (C.GLenum)(internalformat), (C.GLsizei)(width))
+}
+
+// simultaneously specify storage for all levels of a two-dimensional or one-dimensional array texture
+func TexStorage2D(target uint32, levels int32, internalformat uint32, width int32, height int32) {
+ C.glowTexStorage2D(gpTexStorage2D, (C.GLenum)(target), (C.GLsizei)(levels), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+func TexStorage2DEXT(target uint32, levels int32, internalformat uint32, width int32, height int32) {
+ C.glowTexStorage2DEXT(gpTexStorage2DEXT, (C.GLenum)(target), (C.GLsizei)(levels), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+
+// specify storage for a two-dimensional multisample texture
+func TexStorage2DMultisample(target uint32, samples int32, internalformat uint32, width int32, height int32, fixedsamplelocations bool) {
+ C.glowTexStorage2DMultisample(gpTexStorage2DMultisample, (C.GLenum)(target), (C.GLsizei)(samples), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLboolean)(boolToInt(fixedsamplelocations)))
+}
+
+// simultaneously specify storage for all levels of a three-dimensional, two-dimensional array or cube-map array texture
+func TexStorage3D(target uint32, levels int32, internalformat uint32, width int32, height int32, depth int32) {
+ C.glowTexStorage3D(gpTexStorage3D, (C.GLenum)(target), (C.GLsizei)(levels), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth))
+}
+func TexStorage3DEXT(target uint32, levels int32, internalformat uint32, width int32, height int32, depth int32) {
+ C.glowTexStorage3DEXT(gpTexStorage3DEXT, (C.GLenum)(target), (C.GLsizei)(levels), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth))
+}
+
+// specify storage for a two-dimensional multisample array texture
+func TexStorage3DMultisample(target uint32, samples int32, internalformat uint32, width int32, height int32, depth int32, fixedsamplelocations bool) {
+ C.glowTexStorage3DMultisample(gpTexStorage3DMultisample, (C.GLenum)(target), (C.GLsizei)(samples), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLboolean)(boolToInt(fixedsamplelocations)))
+}
+
+// specify a one-dimensional texture subimage
+func TexSubImage1D(target uint32, level int32, xoffset int32, width int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowTexSubImage1D(gpTexSubImage1D, (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLsizei)(width), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+
+// specify a two-dimensional texture subimage
+func TexSubImage2D(target uint32, level int32, xoffset int32, yoffset int32, width int32, height int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowTexSubImage2D(gpTexSubImage2D, (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+
+// specify a three-dimensional texture subimage
+func TexSubImage3D(target uint32, level int32, xoffset int32, yoffset int32, zoffset int32, width int32, height int32, depth int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowTexSubImage3D(gpTexSubImage3D, (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(zoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+func TextureAttachMemoryNV(texture uint32, memory uint32, offset uint64) {
+ C.glowTextureAttachMemoryNV(gpTextureAttachMemoryNV, (C.GLuint)(texture), (C.GLuint)(memory), (C.GLuint64)(offset))
+}
+
+// controls the ordering of reads and writes to rendered fragments across drawing commands
+func TextureBarrier() {
+ C.glowTextureBarrier(gpTextureBarrier)
+}
+func TextureBarrierNV() {
+ C.glowTextureBarrierNV(gpTextureBarrierNV)
+}
+
+// attach a buffer object's data store to a buffer texture object
+func TextureBuffer(texture uint32, internalformat uint32, buffer uint32) {
+ C.glowTextureBuffer(gpTextureBuffer, (C.GLuint)(texture), (C.GLenum)(internalformat), (C.GLuint)(buffer))
+}
+func TextureBufferEXT(texture uint32, target uint32, internalformat uint32, buffer uint32) {
+ C.glowTextureBufferEXT(gpTextureBufferEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLenum)(internalformat), (C.GLuint)(buffer))
+}
+
+// attach a range of a buffer object's data store to a buffer texture object
+func TextureBufferRange(texture uint32, internalformat uint32, buffer uint32, offset int, size int) {
+ C.glowTextureBufferRange(gpTextureBufferRange, (C.GLuint)(texture), (C.GLenum)(internalformat), (C.GLuint)(buffer), (C.GLintptr)(offset), (C.GLsizeiptr)(size))
+}
+func TextureBufferRangeEXT(texture uint32, target uint32, internalformat uint32, buffer uint32, offset int, size int) {
+ C.glowTextureBufferRangeEXT(gpTextureBufferRangeEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLenum)(internalformat), (C.GLuint)(buffer), (C.GLintptr)(offset), (C.GLsizeiptr)(size))
+}
+func TextureImage1DEXT(texture uint32, target uint32, level int32, internalformat int32, width int32, border int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowTextureImage1DEXT(gpTextureImage1DEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(internalformat), (C.GLsizei)(width), (C.GLint)(border), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+func TextureImage2DEXT(texture uint32, target uint32, level int32, internalformat int32, width int32, height int32, border int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowTextureImage2DEXT(gpTextureImage2DEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLint)(border), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+func TextureImage3DEXT(texture uint32, target uint32, level int32, internalformat int32, width int32, height int32, depth int32, border int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowTextureImage3DEXT(gpTextureImage3DEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLint)(border), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+func TexturePageCommitmentEXT(texture uint32, level int32, xoffset int32, yoffset int32, zoffset int32, width int32, height int32, depth int32, commit bool) {
+ C.glowTexturePageCommitmentEXT(gpTexturePageCommitmentEXT, (C.GLuint)(texture), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(zoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLboolean)(boolToInt(commit)))
+}
+func TexturePageCommitmentMemNV(texture uint32, layer int32, level int32, xoffset int32, yoffset int32, zoffset int32, width int32, height int32, depth int32, memory uint32, offset uint64, commit bool) {
+ C.glowTexturePageCommitmentMemNV(gpTexturePageCommitmentMemNV, (C.GLuint)(texture), (C.GLint)(layer), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(zoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLuint)(memory), (C.GLuint64)(offset), (C.GLboolean)(boolToInt(commit)))
+}
+func TextureParameterIiv(texture uint32, pname uint32, params *int32) {
+ C.glowTextureParameterIiv(gpTextureParameterIiv, (C.GLuint)(texture), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func TextureParameterIivEXT(texture uint32, target uint32, pname uint32, params *int32) {
+ C.glowTextureParameterIivEXT(gpTextureParameterIivEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func TextureParameterIuiv(texture uint32, pname uint32, params *uint32) {
+ C.glowTextureParameterIuiv(gpTextureParameterIuiv, (C.GLuint)(texture), (C.GLenum)(pname), (*C.GLuint)(unsafe.Pointer(params)))
+}
+func TextureParameterIuivEXT(texture uint32, target uint32, pname uint32, params *uint32) {
+ C.glowTextureParameterIuivEXT(gpTextureParameterIuivEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLenum)(pname), (*C.GLuint)(unsafe.Pointer(params)))
+}
+func TextureParameterf(texture uint32, pname uint32, param float32) {
+ C.glowTextureParameterf(gpTextureParameterf, (C.GLuint)(texture), (C.GLenum)(pname), (C.GLfloat)(param))
+}
+func TextureParameterfEXT(texture uint32, target uint32, pname uint32, param float32) {
+ C.glowTextureParameterfEXT(gpTextureParameterfEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLenum)(pname), (C.GLfloat)(param))
+}
+func TextureParameterfv(texture uint32, pname uint32, param *float32) {
+ C.glowTextureParameterfv(gpTextureParameterfv, (C.GLuint)(texture), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(param)))
+}
+func TextureParameterfvEXT(texture uint32, target uint32, pname uint32, params *float32) {
+ C.glowTextureParameterfvEXT(gpTextureParameterfvEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(params)))
+}
+func TextureParameteri(texture uint32, pname uint32, param int32) {
+ C.glowTextureParameteri(gpTextureParameteri, (C.GLuint)(texture), (C.GLenum)(pname), (C.GLint)(param))
+}
+func TextureParameteriEXT(texture uint32, target uint32, pname uint32, param int32) {
+ C.glowTextureParameteriEXT(gpTextureParameteriEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLenum)(pname), (C.GLint)(param))
+}
+func TextureParameteriv(texture uint32, pname uint32, param *int32) {
+ C.glowTextureParameteriv(gpTextureParameteriv, (C.GLuint)(texture), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(param)))
+}
+func TextureParameterivEXT(texture uint32, target uint32, pname uint32, params *int32) {
+ C.glowTextureParameterivEXT(gpTextureParameterivEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params)))
+}
+func TextureRenderbufferEXT(texture uint32, target uint32, renderbuffer uint32) {
+ C.glowTextureRenderbufferEXT(gpTextureRenderbufferEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLuint)(renderbuffer))
+}
+
+// simultaneously specify storage for all levels of a one-dimensional texture
+func TextureStorage1D(texture uint32, levels int32, internalformat uint32, width int32) {
+ C.glowTextureStorage1D(gpTextureStorage1D, (C.GLuint)(texture), (C.GLsizei)(levels), (C.GLenum)(internalformat), (C.GLsizei)(width))
+}
+func TextureStorage1DEXT(texture uint32, target uint32, levels int32, internalformat uint32, width int32) {
+ C.glowTextureStorage1DEXT(gpTextureStorage1DEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLsizei)(levels), (C.GLenum)(internalformat), (C.GLsizei)(width))
+}
+
+// simultaneously specify storage for all levels of a two-dimensional or one-dimensional array texture
+func TextureStorage2D(texture uint32, levels int32, internalformat uint32, width int32, height int32) {
+ C.glowTextureStorage2D(gpTextureStorage2D, (C.GLuint)(texture), (C.GLsizei)(levels), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+func TextureStorage2DEXT(texture uint32, target uint32, levels int32, internalformat uint32, width int32, height int32) {
+ C.glowTextureStorage2DEXT(gpTextureStorage2DEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLsizei)(levels), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+
+// specify storage for a two-dimensional multisample texture
+func TextureStorage2DMultisample(texture uint32, samples int32, internalformat uint32, width int32, height int32, fixedsamplelocations bool) {
+ C.glowTextureStorage2DMultisample(gpTextureStorage2DMultisample, (C.GLuint)(texture), (C.GLsizei)(samples), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLboolean)(boolToInt(fixedsamplelocations)))
+}
+func TextureStorage2DMultisampleEXT(texture uint32, target uint32, samples int32, internalformat uint32, width int32, height int32, fixedsamplelocations bool) {
+ C.glowTextureStorage2DMultisampleEXT(gpTextureStorage2DMultisampleEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLsizei)(samples), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLboolean)(boolToInt(fixedsamplelocations)))
+}
+
+// simultaneously specify storage for all levels of a three-dimensional, two-dimensional array or cube-map array texture
+func TextureStorage3D(texture uint32, levels int32, internalformat uint32, width int32, height int32, depth int32) {
+ C.glowTextureStorage3D(gpTextureStorage3D, (C.GLuint)(texture), (C.GLsizei)(levels), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth))
+}
+func TextureStorage3DEXT(texture uint32, target uint32, levels int32, internalformat uint32, width int32, height int32, depth int32) {
+ C.glowTextureStorage3DEXT(gpTextureStorage3DEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLsizei)(levels), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth))
+}
+
+// specify storage for a two-dimensional multisample array texture
+func TextureStorage3DMultisample(texture uint32, samples int32, internalformat uint32, width int32, height int32, depth int32, fixedsamplelocations bool) {
+ C.glowTextureStorage3DMultisample(gpTextureStorage3DMultisample, (C.GLuint)(texture), (C.GLsizei)(samples), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLboolean)(boolToInt(fixedsamplelocations)))
+}
+func TextureStorage3DMultisampleEXT(texture uint32, target uint32, samples int32, internalformat uint32, width int32, height int32, depth int32, fixedsamplelocations bool) {
+ C.glowTextureStorage3DMultisampleEXT(gpTextureStorage3DMultisampleEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLsizei)(samples), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLboolean)(boolToInt(fixedsamplelocations)))
+}
+
+// specify a one-dimensional texture subimage
+func TextureSubImage1D(texture uint32, level int32, xoffset int32, width int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowTextureSubImage1D(gpTextureSubImage1D, (C.GLuint)(texture), (C.GLint)(level), (C.GLint)(xoffset), (C.GLsizei)(width), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+func TextureSubImage1DEXT(texture uint32, target uint32, level int32, xoffset int32, width int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowTextureSubImage1DEXT(gpTextureSubImage1DEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLsizei)(width), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+
+// specify a two-dimensional texture subimage
+func TextureSubImage2D(texture uint32, level int32, xoffset int32, yoffset int32, width int32, height int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowTextureSubImage2D(gpTextureSubImage2D, (C.GLuint)(texture), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+func TextureSubImage2DEXT(texture uint32, target uint32, level int32, xoffset int32, yoffset int32, width int32, height int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowTextureSubImage2DEXT(gpTextureSubImage2DEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+
+// specify a three-dimensional texture subimage
+func TextureSubImage3D(texture uint32, level int32, xoffset int32, yoffset int32, zoffset int32, width int32, height int32, depth int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowTextureSubImage3D(gpTextureSubImage3D, (C.GLuint)(texture), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(zoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+func TextureSubImage3DEXT(texture uint32, target uint32, level int32, xoffset int32, yoffset int32, zoffset int32, width int32, height int32, depth int32, format uint32, xtype uint32, pixels unsafe.Pointer) {
+ C.glowTextureSubImage3DEXT(gpTextureSubImage3DEXT, (C.GLuint)(texture), (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(zoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLsizei)(depth), (C.GLenum)(format), (C.GLenum)(xtype), pixels)
+}
+
+// initialize a texture as a data alias of another texture's data store
+func TextureView(texture uint32, target uint32, origtexture uint32, internalformat uint32, minlevel uint32, numlevels uint32, minlayer uint32, numlayers uint32) {
+ C.glowTextureView(gpTextureView, (C.GLuint)(texture), (C.GLenum)(target), (C.GLuint)(origtexture), (C.GLenum)(internalformat), (C.GLuint)(minlevel), (C.GLuint)(numlevels), (C.GLuint)(minlayer), (C.GLuint)(numlayers))
+}
+
+// bind a buffer object to a transform feedback buffer object
+func TransformFeedbackBufferBase(xfb uint32, index uint32, buffer uint32) {
+ C.glowTransformFeedbackBufferBase(gpTransformFeedbackBufferBase, (C.GLuint)(xfb), (C.GLuint)(index), (C.GLuint)(buffer))
+}
+
+// bind a range within a buffer object to a transform feedback buffer object
+func TransformFeedbackBufferRange(xfb uint32, index uint32, buffer uint32, offset int, size int) {
+ C.glowTransformFeedbackBufferRange(gpTransformFeedbackBufferRange, (C.GLuint)(xfb), (C.GLuint)(index), (C.GLuint)(buffer), (C.GLintptr)(offset), (C.GLsizeiptr)(size))
+}
+
+// specify values to record in transform feedback buffers
+func TransformFeedbackVaryings(program uint32, count int32, varyings **uint8, bufferMode uint32) {
+ C.glowTransformFeedbackVaryings(gpTransformFeedbackVaryings, (C.GLuint)(program), (C.GLsizei)(count), (**C.GLchar)(unsafe.Pointer(varyings)), (C.GLenum)(bufferMode))
+}
+func TransformPathNV(resultPath uint32, srcPath uint32, transformType uint32, transformValues *float32) {
+ C.glowTransformPathNV(gpTransformPathNV, (C.GLuint)(resultPath), (C.GLuint)(srcPath), (C.GLenum)(transformType), (*C.GLfloat)(unsafe.Pointer(transformValues)))
+}
+func Uniform1d(location int32, x float64) {
+ C.glowUniform1d(gpUniform1d, (C.GLint)(location), (C.GLdouble)(x))
+}
+func Uniform1dv(location int32, count int32, value *float64) {
+ C.glowUniform1dv(gpUniform1dv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform1f(location int32, v0 float32) {
+ C.glowUniform1f(gpUniform1f, (C.GLint)(location), (C.GLfloat)(v0))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform1fv(location int32, count int32, value *float32) {
+ C.glowUniform1fv(gpUniform1fv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform1i(location int32, v0 int32) {
+ C.glowUniform1i(gpUniform1i, (C.GLint)(location), (C.GLint)(v0))
+}
+func Uniform1i64ARB(location int32, x int64) {
+ C.glowUniform1i64ARB(gpUniform1i64ARB, (C.GLint)(location), (C.GLint64)(x))
+}
+func Uniform1i64NV(location int32, x int64) {
+ C.glowUniform1i64NV(gpUniform1i64NV, (C.GLint)(location), (C.GLint64EXT)(x))
+}
+func Uniform1i64vARB(location int32, count int32, value *int64) {
+ C.glowUniform1i64vARB(gpUniform1i64vARB, (C.GLint)(location), (C.GLsizei)(count), (*C.GLint64)(unsafe.Pointer(value)))
+}
+func Uniform1i64vNV(location int32, count int32, value *int64) {
+ C.glowUniform1i64vNV(gpUniform1i64vNV, (C.GLint)(location), (C.GLsizei)(count), (*C.GLint64EXT)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform1iv(location int32, count int32, value *int32) {
+ C.glowUniform1iv(gpUniform1iv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLint)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform1ui(location int32, v0 uint32) {
+ C.glowUniform1ui(gpUniform1ui, (C.GLint)(location), (C.GLuint)(v0))
+}
+func Uniform1ui64ARB(location int32, x uint64) {
+ C.glowUniform1ui64ARB(gpUniform1ui64ARB, (C.GLint)(location), (C.GLuint64)(x))
+}
+func Uniform1ui64NV(location int32, x uint64) {
+ C.glowUniform1ui64NV(gpUniform1ui64NV, (C.GLint)(location), (C.GLuint64EXT)(x))
+}
+func Uniform1ui64vARB(location int32, count int32, value *uint64) {
+ C.glowUniform1ui64vARB(gpUniform1ui64vARB, (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint64)(unsafe.Pointer(value)))
+}
+func Uniform1ui64vNV(location int32, count int32, value *uint64) {
+ C.glowUniform1ui64vNV(gpUniform1ui64vNV, (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint64EXT)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform1uiv(location int32, count int32, value *uint32) {
+ C.glowUniform1uiv(gpUniform1uiv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(value)))
+}
+func Uniform2d(location int32, x float64, y float64) {
+ C.glowUniform2d(gpUniform2d, (C.GLint)(location), (C.GLdouble)(x), (C.GLdouble)(y))
+}
+func Uniform2dv(location int32, count int32, value *float64) {
+ C.glowUniform2dv(gpUniform2dv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform2f(location int32, v0 float32, v1 float32) {
+ C.glowUniform2f(gpUniform2f, (C.GLint)(location), (C.GLfloat)(v0), (C.GLfloat)(v1))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform2fv(location int32, count int32, value *float32) {
+ C.glowUniform2fv(gpUniform2fv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform2i(location int32, v0 int32, v1 int32) {
+ C.glowUniform2i(gpUniform2i, (C.GLint)(location), (C.GLint)(v0), (C.GLint)(v1))
+}
+func Uniform2i64ARB(location int32, x int64, y int64) {
+ C.glowUniform2i64ARB(gpUniform2i64ARB, (C.GLint)(location), (C.GLint64)(x), (C.GLint64)(y))
+}
+func Uniform2i64NV(location int32, x int64, y int64) {
+ C.glowUniform2i64NV(gpUniform2i64NV, (C.GLint)(location), (C.GLint64EXT)(x), (C.GLint64EXT)(y))
+}
+func Uniform2i64vARB(location int32, count int32, value *int64) {
+ C.glowUniform2i64vARB(gpUniform2i64vARB, (C.GLint)(location), (C.GLsizei)(count), (*C.GLint64)(unsafe.Pointer(value)))
+}
+func Uniform2i64vNV(location int32, count int32, value *int64) {
+ C.glowUniform2i64vNV(gpUniform2i64vNV, (C.GLint)(location), (C.GLsizei)(count), (*C.GLint64EXT)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform2iv(location int32, count int32, value *int32) {
+ C.glowUniform2iv(gpUniform2iv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLint)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform2ui(location int32, v0 uint32, v1 uint32) {
+ C.glowUniform2ui(gpUniform2ui, (C.GLint)(location), (C.GLuint)(v0), (C.GLuint)(v1))
+}
+func Uniform2ui64ARB(location int32, x uint64, y uint64) {
+ C.glowUniform2ui64ARB(gpUniform2ui64ARB, (C.GLint)(location), (C.GLuint64)(x), (C.GLuint64)(y))
+}
+func Uniform2ui64NV(location int32, x uint64, y uint64) {
+ C.glowUniform2ui64NV(gpUniform2ui64NV, (C.GLint)(location), (C.GLuint64EXT)(x), (C.GLuint64EXT)(y))
+}
+func Uniform2ui64vARB(location int32, count int32, value *uint64) {
+ C.glowUniform2ui64vARB(gpUniform2ui64vARB, (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint64)(unsafe.Pointer(value)))
+}
+func Uniform2ui64vNV(location int32, count int32, value *uint64) {
+ C.glowUniform2ui64vNV(gpUniform2ui64vNV, (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint64EXT)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform2uiv(location int32, count int32, value *uint32) {
+ C.glowUniform2uiv(gpUniform2uiv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(value)))
+}
+func Uniform3d(location int32, x float64, y float64, z float64) {
+ C.glowUniform3d(gpUniform3d, (C.GLint)(location), (C.GLdouble)(x), (C.GLdouble)(y), (C.GLdouble)(z))
+}
+func Uniform3dv(location int32, count int32, value *float64) {
+ C.glowUniform3dv(gpUniform3dv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform3f(location int32, v0 float32, v1 float32, v2 float32) {
+ C.glowUniform3f(gpUniform3f, (C.GLint)(location), (C.GLfloat)(v0), (C.GLfloat)(v1), (C.GLfloat)(v2))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform3fv(location int32, count int32, value *float32) {
+ C.glowUniform3fv(gpUniform3fv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform3i(location int32, v0 int32, v1 int32, v2 int32) {
+ C.glowUniform3i(gpUniform3i, (C.GLint)(location), (C.GLint)(v0), (C.GLint)(v1), (C.GLint)(v2))
+}
+func Uniform3i64ARB(location int32, x int64, y int64, z int64) {
+ C.glowUniform3i64ARB(gpUniform3i64ARB, (C.GLint)(location), (C.GLint64)(x), (C.GLint64)(y), (C.GLint64)(z))
+}
+func Uniform3i64NV(location int32, x int64, y int64, z int64) {
+ C.glowUniform3i64NV(gpUniform3i64NV, (C.GLint)(location), (C.GLint64EXT)(x), (C.GLint64EXT)(y), (C.GLint64EXT)(z))
+}
+func Uniform3i64vARB(location int32, count int32, value *int64) {
+ C.glowUniform3i64vARB(gpUniform3i64vARB, (C.GLint)(location), (C.GLsizei)(count), (*C.GLint64)(unsafe.Pointer(value)))
+}
+func Uniform3i64vNV(location int32, count int32, value *int64) {
+ C.glowUniform3i64vNV(gpUniform3i64vNV, (C.GLint)(location), (C.GLsizei)(count), (*C.GLint64EXT)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform3iv(location int32, count int32, value *int32) {
+ C.glowUniform3iv(gpUniform3iv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLint)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform3ui(location int32, v0 uint32, v1 uint32, v2 uint32) {
+ C.glowUniform3ui(gpUniform3ui, (C.GLint)(location), (C.GLuint)(v0), (C.GLuint)(v1), (C.GLuint)(v2))
+}
+func Uniform3ui64ARB(location int32, x uint64, y uint64, z uint64) {
+ C.glowUniform3ui64ARB(gpUniform3ui64ARB, (C.GLint)(location), (C.GLuint64)(x), (C.GLuint64)(y), (C.GLuint64)(z))
+}
+func Uniform3ui64NV(location int32, x uint64, y uint64, z uint64) {
+ C.glowUniform3ui64NV(gpUniform3ui64NV, (C.GLint)(location), (C.GLuint64EXT)(x), (C.GLuint64EXT)(y), (C.GLuint64EXT)(z))
+}
+func Uniform3ui64vARB(location int32, count int32, value *uint64) {
+ C.glowUniform3ui64vARB(gpUniform3ui64vARB, (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint64)(unsafe.Pointer(value)))
+}
+func Uniform3ui64vNV(location int32, count int32, value *uint64) {
+ C.glowUniform3ui64vNV(gpUniform3ui64vNV, (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint64EXT)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform3uiv(location int32, count int32, value *uint32) {
+ C.glowUniform3uiv(gpUniform3uiv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(value)))
+}
+func Uniform4d(location int32, x float64, y float64, z float64, w float64) {
+ C.glowUniform4d(gpUniform4d, (C.GLint)(location), (C.GLdouble)(x), (C.GLdouble)(y), (C.GLdouble)(z), (C.GLdouble)(w))
+}
+func Uniform4dv(location int32, count int32, value *float64) {
+ C.glowUniform4dv(gpUniform4dv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform4f(location int32, v0 float32, v1 float32, v2 float32, v3 float32) {
+ C.glowUniform4f(gpUniform4f, (C.GLint)(location), (C.GLfloat)(v0), (C.GLfloat)(v1), (C.GLfloat)(v2), (C.GLfloat)(v3))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform4fv(location int32, count int32, value *float32) {
+ C.glowUniform4fv(gpUniform4fv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform4i(location int32, v0 int32, v1 int32, v2 int32, v3 int32) {
+ C.glowUniform4i(gpUniform4i, (C.GLint)(location), (C.GLint)(v0), (C.GLint)(v1), (C.GLint)(v2), (C.GLint)(v3))
+}
+func Uniform4i64ARB(location int32, x int64, y int64, z int64, w int64) {
+ C.glowUniform4i64ARB(gpUniform4i64ARB, (C.GLint)(location), (C.GLint64)(x), (C.GLint64)(y), (C.GLint64)(z), (C.GLint64)(w))
+}
+func Uniform4i64NV(location int32, x int64, y int64, z int64, w int64) {
+ C.glowUniform4i64NV(gpUniform4i64NV, (C.GLint)(location), (C.GLint64EXT)(x), (C.GLint64EXT)(y), (C.GLint64EXT)(z), (C.GLint64EXT)(w))
+}
+func Uniform4i64vARB(location int32, count int32, value *int64) {
+ C.glowUniform4i64vARB(gpUniform4i64vARB, (C.GLint)(location), (C.GLsizei)(count), (*C.GLint64)(unsafe.Pointer(value)))
+}
+func Uniform4i64vNV(location int32, count int32, value *int64) {
+ C.glowUniform4i64vNV(gpUniform4i64vNV, (C.GLint)(location), (C.GLsizei)(count), (*C.GLint64EXT)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform4iv(location int32, count int32, value *int32) {
+ C.glowUniform4iv(gpUniform4iv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLint)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform4ui(location int32, v0 uint32, v1 uint32, v2 uint32, v3 uint32) {
+ C.glowUniform4ui(gpUniform4ui, (C.GLint)(location), (C.GLuint)(v0), (C.GLuint)(v1), (C.GLuint)(v2), (C.GLuint)(v3))
+}
+func Uniform4ui64ARB(location int32, x uint64, y uint64, z uint64, w uint64) {
+ C.glowUniform4ui64ARB(gpUniform4ui64ARB, (C.GLint)(location), (C.GLuint64)(x), (C.GLuint64)(y), (C.GLuint64)(z), (C.GLuint64)(w))
+}
+func Uniform4ui64NV(location int32, x uint64, y uint64, z uint64, w uint64) {
+ C.glowUniform4ui64NV(gpUniform4ui64NV, (C.GLint)(location), (C.GLuint64EXT)(x), (C.GLuint64EXT)(y), (C.GLuint64EXT)(z), (C.GLuint64EXT)(w))
+}
+func Uniform4ui64vARB(location int32, count int32, value *uint64) {
+ C.glowUniform4ui64vARB(gpUniform4ui64vARB, (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint64)(unsafe.Pointer(value)))
+}
+func Uniform4ui64vNV(location int32, count int32, value *uint64) {
+ C.glowUniform4ui64vNV(gpUniform4ui64vNV, (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint64EXT)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func Uniform4uiv(location int32, count int32, value *uint32) {
+ C.glowUniform4uiv(gpUniform4uiv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(value)))
+}
+
+// assign a binding point to an active uniform block
+func UniformBlockBinding(program uint32, uniformBlockIndex uint32, uniformBlockBinding uint32) {
+ C.glowUniformBlockBinding(gpUniformBlockBinding, (C.GLuint)(program), (C.GLuint)(uniformBlockIndex), (C.GLuint)(uniformBlockBinding))
+}
+func UniformHandleui64ARB(location int32, value uint64) {
+ C.glowUniformHandleui64ARB(gpUniformHandleui64ARB, (C.GLint)(location), (C.GLuint64)(value))
+}
+func UniformHandleui64NV(location int32, value uint64) {
+ C.glowUniformHandleui64NV(gpUniformHandleui64NV, (C.GLint)(location), (C.GLuint64)(value))
+}
+func UniformHandleui64vARB(location int32, count int32, value *uint64) {
+ C.glowUniformHandleui64vARB(gpUniformHandleui64vARB, (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint64)(unsafe.Pointer(value)))
+}
+func UniformHandleui64vNV(location int32, count int32, value *uint64) {
+ C.glowUniformHandleui64vNV(gpUniformHandleui64vNV, (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint64)(unsafe.Pointer(value)))
+}
+func UniformMatrix2dv(location int32, count int32, transpose bool, value *float64) {
+ C.glowUniformMatrix2dv(gpUniformMatrix2dv, (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func UniformMatrix2fv(location int32, count int32, transpose bool, value *float32) {
+ C.glowUniformMatrix2fv(gpUniformMatrix2fv, (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func UniformMatrix2x3dv(location int32, count int32, transpose bool, value *float64) {
+ C.glowUniformMatrix2x3dv(gpUniformMatrix2x3dv, (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func UniformMatrix2x3fv(location int32, count int32, transpose bool, value *float32) {
+ C.glowUniformMatrix2x3fv(gpUniformMatrix2x3fv, (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func UniformMatrix2x4dv(location int32, count int32, transpose bool, value *float64) {
+ C.glowUniformMatrix2x4dv(gpUniformMatrix2x4dv, (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func UniformMatrix2x4fv(location int32, count int32, transpose bool, value *float32) {
+ C.glowUniformMatrix2x4fv(gpUniformMatrix2x4fv, (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func UniformMatrix3dv(location int32, count int32, transpose bool, value *float64) {
+ C.glowUniformMatrix3dv(gpUniformMatrix3dv, (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func UniformMatrix3fv(location int32, count int32, transpose bool, value *float32) {
+ C.glowUniformMatrix3fv(gpUniformMatrix3fv, (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func UniformMatrix3x2dv(location int32, count int32, transpose bool, value *float64) {
+ C.glowUniformMatrix3x2dv(gpUniformMatrix3x2dv, (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func UniformMatrix3x2fv(location int32, count int32, transpose bool, value *float32) {
+ C.glowUniformMatrix3x2fv(gpUniformMatrix3x2fv, (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func UniformMatrix3x4dv(location int32, count int32, transpose bool, value *float64) {
+ C.glowUniformMatrix3x4dv(gpUniformMatrix3x4dv, (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func UniformMatrix3x4fv(location int32, count int32, transpose bool, value *float32) {
+ C.glowUniformMatrix3x4fv(gpUniformMatrix3x4fv, (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func UniformMatrix4dv(location int32, count int32, transpose bool, value *float64) {
+ C.glowUniformMatrix4dv(gpUniformMatrix4dv, (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func UniformMatrix4fv(location int32, count int32, transpose bool, value *float32) {
+ C.glowUniformMatrix4fv(gpUniformMatrix4fv, (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func UniformMatrix4x2dv(location int32, count int32, transpose bool, value *float64) {
+ C.glowUniformMatrix4x2dv(gpUniformMatrix4x2dv, (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func UniformMatrix4x2fv(location int32, count int32, transpose bool, value *float32) {
+ C.glowUniformMatrix4x2fv(gpUniformMatrix4x2fv, (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func UniformMatrix4x3dv(location int32, count int32, transpose bool, value *float64) {
+ C.glowUniformMatrix4x3dv(gpUniformMatrix4x3dv, (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLdouble)(unsafe.Pointer(value)))
+}
+
+// Specify the value of a uniform variable for the current program object
+func UniformMatrix4x3fv(location int32, count int32, transpose bool, value *float32) {
+ C.glowUniformMatrix4x3fv(gpUniformMatrix4x3fv, (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value)))
+}
+func UniformSubroutinesuiv(shadertype uint32, count int32, indices *uint32) {
+ C.glowUniformSubroutinesuiv(gpUniformSubroutinesuiv, (C.GLenum)(shadertype), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(indices)))
+}
+func Uniformui64NV(location int32, value uint64) {
+ C.glowUniformui64NV(gpUniformui64NV, (C.GLint)(location), (C.GLuint64EXT)(value))
+}
+func Uniformui64vNV(location int32, count int32, value *uint64) {
+ C.glowUniformui64vNV(gpUniformui64vNV, (C.GLint)(location), (C.GLsizei)(count), (*C.GLuint64EXT)(unsafe.Pointer(value)))
+}
+
+// release the mapping of a buffer object's data store into the client's address space
+func UnmapBuffer(target uint32) bool {
+ ret := C.glowUnmapBuffer(gpUnmapBuffer, (C.GLenum)(target))
+ return ret == TRUE
+}
+
+// release the mapping of a buffer object's data store into the client's address space
+func UnmapNamedBuffer(buffer uint32) bool {
+ ret := C.glowUnmapNamedBuffer(gpUnmapNamedBuffer, (C.GLuint)(buffer))
+ return ret == TRUE
+}
+func UnmapNamedBufferEXT(buffer uint32) bool {
+ ret := C.glowUnmapNamedBufferEXT(gpUnmapNamedBufferEXT, (C.GLuint)(buffer))
+ return ret == TRUE
+}
+
+// Installs a program object as part of current rendering state
+func UseProgram(program uint32) {
+ C.glowUseProgram(gpUseProgram, (C.GLuint)(program))
+}
+
+// bind stages of a program object to a program pipeline
+func UseProgramStages(pipeline uint32, stages uint32, program uint32) {
+ C.glowUseProgramStages(gpUseProgramStages, (C.GLuint)(pipeline), (C.GLbitfield)(stages), (C.GLuint)(program))
+}
+func UseProgramStagesEXT(pipeline uint32, stages uint32, program uint32) {
+ C.glowUseProgramStagesEXT(gpUseProgramStagesEXT, (C.GLuint)(pipeline), (C.GLbitfield)(stages), (C.GLuint)(program))
+}
+func UseShaderProgramEXT(xtype uint32, program uint32) {
+ C.glowUseShaderProgramEXT(gpUseShaderProgramEXT, (C.GLenum)(xtype), (C.GLuint)(program))
+}
+
+// Validates a program object
+func ValidateProgram(program uint32) {
+ C.glowValidateProgram(gpValidateProgram, (C.GLuint)(program))
+}
+
+// validate a program pipeline object against current GL state
+func ValidateProgramPipeline(pipeline uint32) {
+ C.glowValidateProgramPipeline(gpValidateProgramPipeline, (C.GLuint)(pipeline))
+}
+func ValidateProgramPipelineEXT(pipeline uint32) {
+ C.glowValidateProgramPipelineEXT(gpValidateProgramPipelineEXT, (C.GLuint)(pipeline))
+}
+func VertexArrayAttribBinding(vaobj uint32, attribindex uint32, bindingindex uint32) {
+ C.glowVertexArrayAttribBinding(gpVertexArrayAttribBinding, (C.GLuint)(vaobj), (C.GLuint)(attribindex), (C.GLuint)(bindingindex))
+}
+
+// specify the organization of vertex arrays
+func VertexArrayAttribFormat(vaobj uint32, attribindex uint32, size int32, xtype uint32, normalized bool, relativeoffset uint32) {
+ C.glowVertexArrayAttribFormat(gpVertexArrayAttribFormat, (C.GLuint)(vaobj), (C.GLuint)(attribindex), (C.GLint)(size), (C.GLenum)(xtype), (C.GLboolean)(boolToInt(normalized)), (C.GLuint)(relativeoffset))
+}
+func VertexArrayAttribIFormat(vaobj uint32, attribindex uint32, size int32, xtype uint32, relativeoffset uint32) {
+ C.glowVertexArrayAttribIFormat(gpVertexArrayAttribIFormat, (C.GLuint)(vaobj), (C.GLuint)(attribindex), (C.GLint)(size), (C.GLenum)(xtype), (C.GLuint)(relativeoffset))
+}
+func VertexArrayAttribLFormat(vaobj uint32, attribindex uint32, size int32, xtype uint32, relativeoffset uint32) {
+ C.glowVertexArrayAttribLFormat(gpVertexArrayAttribLFormat, (C.GLuint)(vaobj), (C.GLuint)(attribindex), (C.GLint)(size), (C.GLenum)(xtype), (C.GLuint)(relativeoffset))
+}
+func VertexArrayBindVertexBufferEXT(vaobj uint32, bindingindex uint32, buffer uint32, offset int, stride int32) {
+ C.glowVertexArrayBindVertexBufferEXT(gpVertexArrayBindVertexBufferEXT, (C.GLuint)(vaobj), (C.GLuint)(bindingindex), (C.GLuint)(buffer), (C.GLintptr)(offset), (C.GLsizei)(stride))
+}
+
+// modify the rate at which generic vertex attributes advance
+func VertexArrayBindingDivisor(vaobj uint32, bindingindex uint32, divisor uint32) {
+ C.glowVertexArrayBindingDivisor(gpVertexArrayBindingDivisor, (C.GLuint)(vaobj), (C.GLuint)(bindingindex), (C.GLuint)(divisor))
+}
+func VertexArrayColorOffsetEXT(vaobj uint32, buffer uint32, size int32, xtype uint32, stride int32, offset int) {
+ C.glowVertexArrayColorOffsetEXT(gpVertexArrayColorOffsetEXT, (C.GLuint)(vaobj), (C.GLuint)(buffer), (C.GLint)(size), (C.GLenum)(xtype), (C.GLsizei)(stride), (C.GLintptr)(offset))
+}
+func VertexArrayEdgeFlagOffsetEXT(vaobj uint32, buffer uint32, stride int32, offset int) {
+ C.glowVertexArrayEdgeFlagOffsetEXT(gpVertexArrayEdgeFlagOffsetEXT, (C.GLuint)(vaobj), (C.GLuint)(buffer), (C.GLsizei)(stride), (C.GLintptr)(offset))
+}
+
+// configures element array buffer binding of a vertex array object
+func VertexArrayElementBuffer(vaobj uint32, buffer uint32) {
+ C.glowVertexArrayElementBuffer(gpVertexArrayElementBuffer, (C.GLuint)(vaobj), (C.GLuint)(buffer))
+}
+func VertexArrayFogCoordOffsetEXT(vaobj uint32, buffer uint32, xtype uint32, stride int32, offset int) {
+ C.glowVertexArrayFogCoordOffsetEXT(gpVertexArrayFogCoordOffsetEXT, (C.GLuint)(vaobj), (C.GLuint)(buffer), (C.GLenum)(xtype), (C.GLsizei)(stride), (C.GLintptr)(offset))
+}
+func VertexArrayIndexOffsetEXT(vaobj uint32, buffer uint32, xtype uint32, stride int32, offset int) {
+ C.glowVertexArrayIndexOffsetEXT(gpVertexArrayIndexOffsetEXT, (C.GLuint)(vaobj), (C.GLuint)(buffer), (C.GLenum)(xtype), (C.GLsizei)(stride), (C.GLintptr)(offset))
+}
+func VertexArrayMultiTexCoordOffsetEXT(vaobj uint32, buffer uint32, texunit uint32, size int32, xtype uint32, stride int32, offset int) {
+ C.glowVertexArrayMultiTexCoordOffsetEXT(gpVertexArrayMultiTexCoordOffsetEXT, (C.GLuint)(vaobj), (C.GLuint)(buffer), (C.GLenum)(texunit), (C.GLint)(size), (C.GLenum)(xtype), (C.GLsizei)(stride), (C.GLintptr)(offset))
+}
+func VertexArrayNormalOffsetEXT(vaobj uint32, buffer uint32, xtype uint32, stride int32, offset int) {
+ C.glowVertexArrayNormalOffsetEXT(gpVertexArrayNormalOffsetEXT, (C.GLuint)(vaobj), (C.GLuint)(buffer), (C.GLenum)(xtype), (C.GLsizei)(stride), (C.GLintptr)(offset))
+}
+func VertexArraySecondaryColorOffsetEXT(vaobj uint32, buffer uint32, size int32, xtype uint32, stride int32, offset int) {
+ C.glowVertexArraySecondaryColorOffsetEXT(gpVertexArraySecondaryColorOffsetEXT, (C.GLuint)(vaobj), (C.GLuint)(buffer), (C.GLint)(size), (C.GLenum)(xtype), (C.GLsizei)(stride), (C.GLintptr)(offset))
+}
+func VertexArrayTexCoordOffsetEXT(vaobj uint32, buffer uint32, size int32, xtype uint32, stride int32, offset int) {
+ C.glowVertexArrayTexCoordOffsetEXT(gpVertexArrayTexCoordOffsetEXT, (C.GLuint)(vaobj), (C.GLuint)(buffer), (C.GLint)(size), (C.GLenum)(xtype), (C.GLsizei)(stride), (C.GLintptr)(offset))
+}
+func VertexArrayVertexAttribBindingEXT(vaobj uint32, attribindex uint32, bindingindex uint32) {
+ C.glowVertexArrayVertexAttribBindingEXT(gpVertexArrayVertexAttribBindingEXT, (C.GLuint)(vaobj), (C.GLuint)(attribindex), (C.GLuint)(bindingindex))
+}
+func VertexArrayVertexAttribDivisorEXT(vaobj uint32, index uint32, divisor uint32) {
+ C.glowVertexArrayVertexAttribDivisorEXT(gpVertexArrayVertexAttribDivisorEXT, (C.GLuint)(vaobj), (C.GLuint)(index), (C.GLuint)(divisor))
+}
+func VertexArrayVertexAttribFormatEXT(vaobj uint32, attribindex uint32, size int32, xtype uint32, normalized bool, relativeoffset uint32) {
+ C.glowVertexArrayVertexAttribFormatEXT(gpVertexArrayVertexAttribFormatEXT, (C.GLuint)(vaobj), (C.GLuint)(attribindex), (C.GLint)(size), (C.GLenum)(xtype), (C.GLboolean)(boolToInt(normalized)), (C.GLuint)(relativeoffset))
+}
+func VertexArrayVertexAttribIFormatEXT(vaobj uint32, attribindex uint32, size int32, xtype uint32, relativeoffset uint32) {
+ C.glowVertexArrayVertexAttribIFormatEXT(gpVertexArrayVertexAttribIFormatEXT, (C.GLuint)(vaobj), (C.GLuint)(attribindex), (C.GLint)(size), (C.GLenum)(xtype), (C.GLuint)(relativeoffset))
+}
+func VertexArrayVertexAttribIOffsetEXT(vaobj uint32, buffer uint32, index uint32, size int32, xtype uint32, stride int32, offset int) {
+ C.glowVertexArrayVertexAttribIOffsetEXT(gpVertexArrayVertexAttribIOffsetEXT, (C.GLuint)(vaobj), (C.GLuint)(buffer), (C.GLuint)(index), (C.GLint)(size), (C.GLenum)(xtype), (C.GLsizei)(stride), (C.GLintptr)(offset))
+}
+func VertexArrayVertexAttribLFormatEXT(vaobj uint32, attribindex uint32, size int32, xtype uint32, relativeoffset uint32) {
+ C.glowVertexArrayVertexAttribLFormatEXT(gpVertexArrayVertexAttribLFormatEXT, (C.GLuint)(vaobj), (C.GLuint)(attribindex), (C.GLint)(size), (C.GLenum)(xtype), (C.GLuint)(relativeoffset))
+}
+func VertexArrayVertexAttribLOffsetEXT(vaobj uint32, buffer uint32, index uint32, size int32, xtype uint32, stride int32, offset int) {
+ C.glowVertexArrayVertexAttribLOffsetEXT(gpVertexArrayVertexAttribLOffsetEXT, (C.GLuint)(vaobj), (C.GLuint)(buffer), (C.GLuint)(index), (C.GLint)(size), (C.GLenum)(xtype), (C.GLsizei)(stride), (C.GLintptr)(offset))
+}
+func VertexArrayVertexAttribOffsetEXT(vaobj uint32, buffer uint32, index uint32, size int32, xtype uint32, normalized bool, stride int32, offset int) {
+ C.glowVertexArrayVertexAttribOffsetEXT(gpVertexArrayVertexAttribOffsetEXT, (C.GLuint)(vaobj), (C.GLuint)(buffer), (C.GLuint)(index), (C.GLint)(size), (C.GLenum)(xtype), (C.GLboolean)(boolToInt(normalized)), (C.GLsizei)(stride), (C.GLintptr)(offset))
+}
+func VertexArrayVertexBindingDivisorEXT(vaobj uint32, bindingindex uint32, divisor uint32) {
+ C.glowVertexArrayVertexBindingDivisorEXT(gpVertexArrayVertexBindingDivisorEXT, (C.GLuint)(vaobj), (C.GLuint)(bindingindex), (C.GLuint)(divisor))
+}
+
+// bind a buffer to a vertex buffer bind point
+func VertexArrayVertexBuffer(vaobj uint32, bindingindex uint32, buffer uint32, offset int, stride int32) {
+ C.glowVertexArrayVertexBuffer(gpVertexArrayVertexBuffer, (C.GLuint)(vaobj), (C.GLuint)(bindingindex), (C.GLuint)(buffer), (C.GLintptr)(offset), (C.GLsizei)(stride))
+}
+
+// attach multiple buffer objects to a vertex array object
+func VertexArrayVertexBuffers(vaobj uint32, first uint32, count int32, buffers *uint32, offsets *int, strides *int32) {
+ C.glowVertexArrayVertexBuffers(gpVertexArrayVertexBuffers, (C.GLuint)(vaobj), (C.GLuint)(first), (C.GLsizei)(count), (*C.GLuint)(unsafe.Pointer(buffers)), (*C.GLintptr)(unsafe.Pointer(offsets)), (*C.GLsizei)(unsafe.Pointer(strides)))
+}
+func VertexArrayVertexOffsetEXT(vaobj uint32, buffer uint32, size int32, xtype uint32, stride int32, offset int) {
+ C.glowVertexArrayVertexOffsetEXT(gpVertexArrayVertexOffsetEXT, (C.GLuint)(vaobj), (C.GLuint)(buffer), (C.GLint)(size), (C.GLenum)(xtype), (C.GLsizei)(stride), (C.GLintptr)(offset))
+}
+func VertexAttrib1d(index uint32, x float64) {
+ C.glowVertexAttrib1d(gpVertexAttrib1d, (C.GLuint)(index), (C.GLdouble)(x))
+}
+func VertexAttrib1dv(index uint32, v *float64) {
+ C.glowVertexAttrib1dv(gpVertexAttrib1dv, (C.GLuint)(index), (*C.GLdouble)(unsafe.Pointer(v)))
+}
+func VertexAttrib1f(index uint32, x float32) {
+ C.glowVertexAttrib1f(gpVertexAttrib1f, (C.GLuint)(index), (C.GLfloat)(x))
+}
+func VertexAttrib1fv(index uint32, v *float32) {
+ C.glowVertexAttrib1fv(gpVertexAttrib1fv, (C.GLuint)(index), (*C.GLfloat)(unsafe.Pointer(v)))
+}
+func VertexAttrib1s(index uint32, x int16) {
+ C.glowVertexAttrib1s(gpVertexAttrib1s, (C.GLuint)(index), (C.GLshort)(x))
+}
+func VertexAttrib1sv(index uint32, v *int16) {
+ C.glowVertexAttrib1sv(gpVertexAttrib1sv, (C.GLuint)(index), (*C.GLshort)(unsafe.Pointer(v)))
+}
+func VertexAttrib2d(index uint32, x float64, y float64) {
+ C.glowVertexAttrib2d(gpVertexAttrib2d, (C.GLuint)(index), (C.GLdouble)(x), (C.GLdouble)(y))
+}
+func VertexAttrib2dv(index uint32, v *float64) {
+ C.glowVertexAttrib2dv(gpVertexAttrib2dv, (C.GLuint)(index), (*C.GLdouble)(unsafe.Pointer(v)))
+}
+func VertexAttrib2f(index uint32, x float32, y float32) {
+ C.glowVertexAttrib2f(gpVertexAttrib2f, (C.GLuint)(index), (C.GLfloat)(x), (C.GLfloat)(y))
+}
+func VertexAttrib2fv(index uint32, v *float32) {
+ C.glowVertexAttrib2fv(gpVertexAttrib2fv, (C.GLuint)(index), (*C.GLfloat)(unsafe.Pointer(v)))
+}
+func VertexAttrib2s(index uint32, x int16, y int16) {
+ C.glowVertexAttrib2s(gpVertexAttrib2s, (C.GLuint)(index), (C.GLshort)(x), (C.GLshort)(y))
+}
+func VertexAttrib2sv(index uint32, v *int16) {
+ C.glowVertexAttrib2sv(gpVertexAttrib2sv, (C.GLuint)(index), (*C.GLshort)(unsafe.Pointer(v)))
+}
+func VertexAttrib3d(index uint32, x float64, y float64, z float64) {
+ C.glowVertexAttrib3d(gpVertexAttrib3d, (C.GLuint)(index), (C.GLdouble)(x), (C.GLdouble)(y), (C.GLdouble)(z))
+}
+func VertexAttrib3dv(index uint32, v *float64) {
+ C.glowVertexAttrib3dv(gpVertexAttrib3dv, (C.GLuint)(index), (*C.GLdouble)(unsafe.Pointer(v)))
+}
+func VertexAttrib3f(index uint32, x float32, y float32, z float32) {
+ C.glowVertexAttrib3f(gpVertexAttrib3f, (C.GLuint)(index), (C.GLfloat)(x), (C.GLfloat)(y), (C.GLfloat)(z))
+}
+func VertexAttrib3fv(index uint32, v *float32) {
+ C.glowVertexAttrib3fv(gpVertexAttrib3fv, (C.GLuint)(index), (*C.GLfloat)(unsafe.Pointer(v)))
+}
+func VertexAttrib3s(index uint32, x int16, y int16, z int16) {
+ C.glowVertexAttrib3s(gpVertexAttrib3s, (C.GLuint)(index), (C.GLshort)(x), (C.GLshort)(y), (C.GLshort)(z))
+}
+func VertexAttrib3sv(index uint32, v *int16) {
+ C.glowVertexAttrib3sv(gpVertexAttrib3sv, (C.GLuint)(index), (*C.GLshort)(unsafe.Pointer(v)))
+}
+func VertexAttrib4Nbv(index uint32, v *int8) {
+ C.glowVertexAttrib4Nbv(gpVertexAttrib4Nbv, (C.GLuint)(index), (*C.GLbyte)(unsafe.Pointer(v)))
+}
+func VertexAttrib4Niv(index uint32, v *int32) {
+ C.glowVertexAttrib4Niv(gpVertexAttrib4Niv, (C.GLuint)(index), (*C.GLint)(unsafe.Pointer(v)))
+}
+func VertexAttrib4Nsv(index uint32, v *int16) {
+ C.glowVertexAttrib4Nsv(gpVertexAttrib4Nsv, (C.GLuint)(index), (*C.GLshort)(unsafe.Pointer(v)))
+}
+func VertexAttrib4Nub(index uint32, x uint8, y uint8, z uint8, w uint8) {
+ C.glowVertexAttrib4Nub(gpVertexAttrib4Nub, (C.GLuint)(index), (C.GLubyte)(x), (C.GLubyte)(y), (C.GLubyte)(z), (C.GLubyte)(w))
+}
+func VertexAttrib4Nubv(index uint32, v *uint8) {
+ C.glowVertexAttrib4Nubv(gpVertexAttrib4Nubv, (C.GLuint)(index), (*C.GLubyte)(unsafe.Pointer(v)))
+}
+func VertexAttrib4Nuiv(index uint32, v *uint32) {
+ C.glowVertexAttrib4Nuiv(gpVertexAttrib4Nuiv, (C.GLuint)(index), (*C.GLuint)(unsafe.Pointer(v)))
+}
+func VertexAttrib4Nusv(index uint32, v *uint16) {
+ C.glowVertexAttrib4Nusv(gpVertexAttrib4Nusv, (C.GLuint)(index), (*C.GLushort)(unsafe.Pointer(v)))
+}
+func VertexAttrib4bv(index uint32, v *int8) {
+ C.glowVertexAttrib4bv(gpVertexAttrib4bv, (C.GLuint)(index), (*C.GLbyte)(unsafe.Pointer(v)))
+}
+func VertexAttrib4d(index uint32, x float64, y float64, z float64, w float64) {
+ C.glowVertexAttrib4d(gpVertexAttrib4d, (C.GLuint)(index), (C.GLdouble)(x), (C.GLdouble)(y), (C.GLdouble)(z), (C.GLdouble)(w))
+}
+func VertexAttrib4dv(index uint32, v *float64) {
+ C.glowVertexAttrib4dv(gpVertexAttrib4dv, (C.GLuint)(index), (*C.GLdouble)(unsafe.Pointer(v)))
+}
+func VertexAttrib4f(index uint32, x float32, y float32, z float32, w float32) {
+ C.glowVertexAttrib4f(gpVertexAttrib4f, (C.GLuint)(index), (C.GLfloat)(x), (C.GLfloat)(y), (C.GLfloat)(z), (C.GLfloat)(w))
+}
+func VertexAttrib4fv(index uint32, v *float32) {
+ C.glowVertexAttrib4fv(gpVertexAttrib4fv, (C.GLuint)(index), (*C.GLfloat)(unsafe.Pointer(v)))
+}
+func VertexAttrib4iv(index uint32, v *int32) {
+ C.glowVertexAttrib4iv(gpVertexAttrib4iv, (C.GLuint)(index), (*C.GLint)(unsafe.Pointer(v)))
+}
+func VertexAttrib4s(index uint32, x int16, y int16, z int16, w int16) {
+ C.glowVertexAttrib4s(gpVertexAttrib4s, (C.GLuint)(index), (C.GLshort)(x), (C.GLshort)(y), (C.GLshort)(z), (C.GLshort)(w))
+}
+func VertexAttrib4sv(index uint32, v *int16) {
+ C.glowVertexAttrib4sv(gpVertexAttrib4sv, (C.GLuint)(index), (*C.GLshort)(unsafe.Pointer(v)))
+}
+func VertexAttrib4ubv(index uint32, v *uint8) {
+ C.glowVertexAttrib4ubv(gpVertexAttrib4ubv, (C.GLuint)(index), (*C.GLubyte)(unsafe.Pointer(v)))
+}
+func VertexAttrib4uiv(index uint32, v *uint32) {
+ C.glowVertexAttrib4uiv(gpVertexAttrib4uiv, (C.GLuint)(index), (*C.GLuint)(unsafe.Pointer(v)))
+}
+func VertexAttrib4usv(index uint32, v *uint16) {
+ C.glowVertexAttrib4usv(gpVertexAttrib4usv, (C.GLuint)(index), (*C.GLushort)(unsafe.Pointer(v)))
+}
+
+// associate a vertex attribute and a vertex buffer binding for a vertex array object
+func VertexAttribBinding(attribindex uint32, bindingindex uint32) {
+ C.glowVertexAttribBinding(gpVertexAttribBinding, (C.GLuint)(attribindex), (C.GLuint)(bindingindex))
+}
+
+// modify the rate at which generic vertex attributes advance during instanced rendering
+func VertexAttribDivisor(index uint32, divisor uint32) {
+ C.glowVertexAttribDivisor(gpVertexAttribDivisor, (C.GLuint)(index), (C.GLuint)(divisor))
+}
+func VertexAttribDivisorARB(index uint32, divisor uint32) {
+ C.glowVertexAttribDivisorARB(gpVertexAttribDivisorARB, (C.GLuint)(index), (C.GLuint)(divisor))
+}
+
+// specify the organization of vertex arrays
+func VertexAttribFormat(attribindex uint32, size int32, xtype uint32, normalized bool, relativeoffset uint32) {
+ C.glowVertexAttribFormat(gpVertexAttribFormat, (C.GLuint)(attribindex), (C.GLint)(size), (C.GLenum)(xtype), (C.GLboolean)(boolToInt(normalized)), (C.GLuint)(relativeoffset))
+}
+func VertexAttribFormatNV(index uint32, size int32, xtype uint32, normalized bool, stride int32) {
+ C.glowVertexAttribFormatNV(gpVertexAttribFormatNV, (C.GLuint)(index), (C.GLint)(size), (C.GLenum)(xtype), (C.GLboolean)(boolToInt(normalized)), (C.GLsizei)(stride))
+}
+func VertexAttribI1i(index uint32, x int32) {
+ C.glowVertexAttribI1i(gpVertexAttribI1i, (C.GLuint)(index), (C.GLint)(x))
+}
+func VertexAttribI1iv(index uint32, v *int32) {
+ C.glowVertexAttribI1iv(gpVertexAttribI1iv, (C.GLuint)(index), (*C.GLint)(unsafe.Pointer(v)))
+}
+func VertexAttribI1ui(index uint32, x uint32) {
+ C.glowVertexAttribI1ui(gpVertexAttribI1ui, (C.GLuint)(index), (C.GLuint)(x))
+}
+func VertexAttribI1uiv(index uint32, v *uint32) {
+ C.glowVertexAttribI1uiv(gpVertexAttribI1uiv, (C.GLuint)(index), (*C.GLuint)(unsafe.Pointer(v)))
+}
+func VertexAttribI2i(index uint32, x int32, y int32) {
+ C.glowVertexAttribI2i(gpVertexAttribI2i, (C.GLuint)(index), (C.GLint)(x), (C.GLint)(y))
+}
+func VertexAttribI2iv(index uint32, v *int32) {
+ C.glowVertexAttribI2iv(gpVertexAttribI2iv, (C.GLuint)(index), (*C.GLint)(unsafe.Pointer(v)))
+}
+func VertexAttribI2ui(index uint32, x uint32, y uint32) {
+ C.glowVertexAttribI2ui(gpVertexAttribI2ui, (C.GLuint)(index), (C.GLuint)(x), (C.GLuint)(y))
+}
+func VertexAttribI2uiv(index uint32, v *uint32) {
+ C.glowVertexAttribI2uiv(gpVertexAttribI2uiv, (C.GLuint)(index), (*C.GLuint)(unsafe.Pointer(v)))
+}
+func VertexAttribI3i(index uint32, x int32, y int32, z int32) {
+ C.glowVertexAttribI3i(gpVertexAttribI3i, (C.GLuint)(index), (C.GLint)(x), (C.GLint)(y), (C.GLint)(z))
+}
+func VertexAttribI3iv(index uint32, v *int32) {
+ C.glowVertexAttribI3iv(gpVertexAttribI3iv, (C.GLuint)(index), (*C.GLint)(unsafe.Pointer(v)))
+}
+func VertexAttribI3ui(index uint32, x uint32, y uint32, z uint32) {
+ C.glowVertexAttribI3ui(gpVertexAttribI3ui, (C.GLuint)(index), (C.GLuint)(x), (C.GLuint)(y), (C.GLuint)(z))
+}
+func VertexAttribI3uiv(index uint32, v *uint32) {
+ C.glowVertexAttribI3uiv(gpVertexAttribI3uiv, (C.GLuint)(index), (*C.GLuint)(unsafe.Pointer(v)))
+}
+func VertexAttribI4bv(index uint32, v *int8) {
+ C.glowVertexAttribI4bv(gpVertexAttribI4bv, (C.GLuint)(index), (*C.GLbyte)(unsafe.Pointer(v)))
+}
+func VertexAttribI4i(index uint32, x int32, y int32, z int32, w int32) {
+ C.glowVertexAttribI4i(gpVertexAttribI4i, (C.GLuint)(index), (C.GLint)(x), (C.GLint)(y), (C.GLint)(z), (C.GLint)(w))
+}
+func VertexAttribI4iv(index uint32, v *int32) {
+ C.glowVertexAttribI4iv(gpVertexAttribI4iv, (C.GLuint)(index), (*C.GLint)(unsafe.Pointer(v)))
+}
+func VertexAttribI4sv(index uint32, v *int16) {
+ C.glowVertexAttribI4sv(gpVertexAttribI4sv, (C.GLuint)(index), (*C.GLshort)(unsafe.Pointer(v)))
+}
+func VertexAttribI4ubv(index uint32, v *uint8) {
+ C.glowVertexAttribI4ubv(gpVertexAttribI4ubv, (C.GLuint)(index), (*C.GLubyte)(unsafe.Pointer(v)))
+}
+func VertexAttribI4ui(index uint32, x uint32, y uint32, z uint32, w uint32) {
+ C.glowVertexAttribI4ui(gpVertexAttribI4ui, (C.GLuint)(index), (C.GLuint)(x), (C.GLuint)(y), (C.GLuint)(z), (C.GLuint)(w))
+}
+func VertexAttribI4uiv(index uint32, v *uint32) {
+ C.glowVertexAttribI4uiv(gpVertexAttribI4uiv, (C.GLuint)(index), (*C.GLuint)(unsafe.Pointer(v)))
+}
+func VertexAttribI4usv(index uint32, v *uint16) {
+ C.glowVertexAttribI4usv(gpVertexAttribI4usv, (C.GLuint)(index), (*C.GLushort)(unsafe.Pointer(v)))
+}
+func VertexAttribIFormat(attribindex uint32, size int32, xtype uint32, relativeoffset uint32) {
+ C.glowVertexAttribIFormat(gpVertexAttribIFormat, (C.GLuint)(attribindex), (C.GLint)(size), (C.GLenum)(xtype), (C.GLuint)(relativeoffset))
+}
+func VertexAttribIFormatNV(index uint32, size int32, xtype uint32, stride int32) {
+ C.glowVertexAttribIFormatNV(gpVertexAttribIFormatNV, (C.GLuint)(index), (C.GLint)(size), (C.GLenum)(xtype), (C.GLsizei)(stride))
+}
+func VertexAttribIPointer(index uint32, size int32, xtype uint32, stride int32, pointer unsafe.Pointer) {
+ C.glowVertexAttribIPointer(gpVertexAttribIPointer, (C.GLuint)(index), (C.GLint)(size), (C.GLenum)(xtype), (C.GLsizei)(stride), pointer)
+}
+func VertexAttribIPointerWithOffset(index uint32, size int32, xtype uint32, stride int32, offset uintptr) {
+ C.glowVertexAttribIPointerWithOffset(gpVertexAttribIPointer, (C.GLuint)(index), (C.GLint)(size), (C.GLenum)(xtype), (C.GLsizei)(stride), (C.uintptr_t)(offset))
+}
+func VertexAttribL1d(index uint32, x float64) {
+ C.glowVertexAttribL1d(gpVertexAttribL1d, (C.GLuint)(index), (C.GLdouble)(x))
+}
+func VertexAttribL1dv(index uint32, v *float64) {
+ C.glowVertexAttribL1dv(gpVertexAttribL1dv, (C.GLuint)(index), (*C.GLdouble)(unsafe.Pointer(v)))
+}
+func VertexAttribL1i64NV(index uint32, x int64) {
+ C.glowVertexAttribL1i64NV(gpVertexAttribL1i64NV, (C.GLuint)(index), (C.GLint64EXT)(x))
+}
+func VertexAttribL1i64vNV(index uint32, v *int64) {
+ C.glowVertexAttribL1i64vNV(gpVertexAttribL1i64vNV, (C.GLuint)(index), (*C.GLint64EXT)(unsafe.Pointer(v)))
+}
+func VertexAttribL1ui64ARB(index uint32, x uint64) {
+ C.glowVertexAttribL1ui64ARB(gpVertexAttribL1ui64ARB, (C.GLuint)(index), (C.GLuint64EXT)(x))
+}
+func VertexAttribL1ui64NV(index uint32, x uint64) {
+ C.glowVertexAttribL1ui64NV(gpVertexAttribL1ui64NV, (C.GLuint)(index), (C.GLuint64EXT)(x))
+}
+func VertexAttribL1ui64vARB(index uint32, v *uint64) {
+ C.glowVertexAttribL1ui64vARB(gpVertexAttribL1ui64vARB, (C.GLuint)(index), (*C.GLuint64EXT)(unsafe.Pointer(v)))
+}
+func VertexAttribL1ui64vNV(index uint32, v *uint64) {
+ C.glowVertexAttribL1ui64vNV(gpVertexAttribL1ui64vNV, (C.GLuint)(index), (*C.GLuint64EXT)(unsafe.Pointer(v)))
+}
+func VertexAttribL2d(index uint32, x float64, y float64) {
+ C.glowVertexAttribL2d(gpVertexAttribL2d, (C.GLuint)(index), (C.GLdouble)(x), (C.GLdouble)(y))
+}
+func VertexAttribL2dv(index uint32, v *float64) {
+ C.glowVertexAttribL2dv(gpVertexAttribL2dv, (C.GLuint)(index), (*C.GLdouble)(unsafe.Pointer(v)))
+}
+func VertexAttribL2i64NV(index uint32, x int64, y int64) {
+ C.glowVertexAttribL2i64NV(gpVertexAttribL2i64NV, (C.GLuint)(index), (C.GLint64EXT)(x), (C.GLint64EXT)(y))
+}
+func VertexAttribL2i64vNV(index uint32, v *int64) {
+ C.glowVertexAttribL2i64vNV(gpVertexAttribL2i64vNV, (C.GLuint)(index), (*C.GLint64EXT)(unsafe.Pointer(v)))
+}
+func VertexAttribL2ui64NV(index uint32, x uint64, y uint64) {
+ C.glowVertexAttribL2ui64NV(gpVertexAttribL2ui64NV, (C.GLuint)(index), (C.GLuint64EXT)(x), (C.GLuint64EXT)(y))
+}
+func VertexAttribL2ui64vNV(index uint32, v *uint64) {
+ C.glowVertexAttribL2ui64vNV(gpVertexAttribL2ui64vNV, (C.GLuint)(index), (*C.GLuint64EXT)(unsafe.Pointer(v)))
+}
+func VertexAttribL3d(index uint32, x float64, y float64, z float64) {
+ C.glowVertexAttribL3d(gpVertexAttribL3d, (C.GLuint)(index), (C.GLdouble)(x), (C.GLdouble)(y), (C.GLdouble)(z))
+}
+func VertexAttribL3dv(index uint32, v *float64) {
+ C.glowVertexAttribL3dv(gpVertexAttribL3dv, (C.GLuint)(index), (*C.GLdouble)(unsafe.Pointer(v)))
+}
+func VertexAttribL3i64NV(index uint32, x int64, y int64, z int64) {
+ C.glowVertexAttribL3i64NV(gpVertexAttribL3i64NV, (C.GLuint)(index), (C.GLint64EXT)(x), (C.GLint64EXT)(y), (C.GLint64EXT)(z))
+}
+func VertexAttribL3i64vNV(index uint32, v *int64) {
+ C.glowVertexAttribL3i64vNV(gpVertexAttribL3i64vNV, (C.GLuint)(index), (*C.GLint64EXT)(unsafe.Pointer(v)))
+}
+func VertexAttribL3ui64NV(index uint32, x uint64, y uint64, z uint64) {
+ C.glowVertexAttribL3ui64NV(gpVertexAttribL3ui64NV, (C.GLuint)(index), (C.GLuint64EXT)(x), (C.GLuint64EXT)(y), (C.GLuint64EXT)(z))
+}
+func VertexAttribL3ui64vNV(index uint32, v *uint64) {
+ C.glowVertexAttribL3ui64vNV(gpVertexAttribL3ui64vNV, (C.GLuint)(index), (*C.GLuint64EXT)(unsafe.Pointer(v)))
+}
+func VertexAttribL4d(index uint32, x float64, y float64, z float64, w float64) {
+ C.glowVertexAttribL4d(gpVertexAttribL4d, (C.GLuint)(index), (C.GLdouble)(x), (C.GLdouble)(y), (C.GLdouble)(z), (C.GLdouble)(w))
+}
+func VertexAttribL4dv(index uint32, v *float64) {
+ C.glowVertexAttribL4dv(gpVertexAttribL4dv, (C.GLuint)(index), (*C.GLdouble)(unsafe.Pointer(v)))
+}
+func VertexAttribL4i64NV(index uint32, x int64, y int64, z int64, w int64) {
+ C.glowVertexAttribL4i64NV(gpVertexAttribL4i64NV, (C.GLuint)(index), (C.GLint64EXT)(x), (C.GLint64EXT)(y), (C.GLint64EXT)(z), (C.GLint64EXT)(w))
+}
+func VertexAttribL4i64vNV(index uint32, v *int64) {
+ C.glowVertexAttribL4i64vNV(gpVertexAttribL4i64vNV, (C.GLuint)(index), (*C.GLint64EXT)(unsafe.Pointer(v)))
+}
+func VertexAttribL4ui64NV(index uint32, x uint64, y uint64, z uint64, w uint64) {
+ C.glowVertexAttribL4ui64NV(gpVertexAttribL4ui64NV, (C.GLuint)(index), (C.GLuint64EXT)(x), (C.GLuint64EXT)(y), (C.GLuint64EXT)(z), (C.GLuint64EXT)(w))
+}
+func VertexAttribL4ui64vNV(index uint32, v *uint64) {
+ C.glowVertexAttribL4ui64vNV(gpVertexAttribL4ui64vNV, (C.GLuint)(index), (*C.GLuint64EXT)(unsafe.Pointer(v)))
+}
+func VertexAttribLFormat(attribindex uint32, size int32, xtype uint32, relativeoffset uint32) {
+ C.glowVertexAttribLFormat(gpVertexAttribLFormat, (C.GLuint)(attribindex), (C.GLint)(size), (C.GLenum)(xtype), (C.GLuint)(relativeoffset))
+}
+func VertexAttribLFormatNV(index uint32, size int32, xtype uint32, stride int32) {
+ C.glowVertexAttribLFormatNV(gpVertexAttribLFormatNV, (C.GLuint)(index), (C.GLint)(size), (C.GLenum)(xtype), (C.GLsizei)(stride))
+}
+func VertexAttribLPointer(index uint32, size int32, xtype uint32, stride int32, pointer unsafe.Pointer) {
+ C.glowVertexAttribLPointer(gpVertexAttribLPointer, (C.GLuint)(index), (C.GLint)(size), (C.GLenum)(xtype), (C.GLsizei)(stride), pointer)
+}
+func VertexAttribLPointerWithOffset(index uint32, size int32, xtype uint32, stride int32, offset uintptr) {
+ C.glowVertexAttribLPointerWithOffset(gpVertexAttribLPointer, (C.GLuint)(index), (C.GLint)(size), (C.GLenum)(xtype), (C.GLsizei)(stride), (C.uintptr_t)(offset))
+}
+func VertexAttribP1ui(index uint32, xtype uint32, normalized bool, value uint32) {
+ C.glowVertexAttribP1ui(gpVertexAttribP1ui, (C.GLuint)(index), (C.GLenum)(xtype), (C.GLboolean)(boolToInt(normalized)), (C.GLuint)(value))
+}
+func VertexAttribP1uiv(index uint32, xtype uint32, normalized bool, value *uint32) {
+ C.glowVertexAttribP1uiv(gpVertexAttribP1uiv, (C.GLuint)(index), (C.GLenum)(xtype), (C.GLboolean)(boolToInt(normalized)), (*C.GLuint)(unsafe.Pointer(value)))
+}
+func VertexAttribP2ui(index uint32, xtype uint32, normalized bool, value uint32) {
+ C.glowVertexAttribP2ui(gpVertexAttribP2ui, (C.GLuint)(index), (C.GLenum)(xtype), (C.GLboolean)(boolToInt(normalized)), (C.GLuint)(value))
+}
+func VertexAttribP2uiv(index uint32, xtype uint32, normalized bool, value *uint32) {
+ C.glowVertexAttribP2uiv(gpVertexAttribP2uiv, (C.GLuint)(index), (C.GLenum)(xtype), (C.GLboolean)(boolToInt(normalized)), (*C.GLuint)(unsafe.Pointer(value)))
+}
+func VertexAttribP3ui(index uint32, xtype uint32, normalized bool, value uint32) {
+ C.glowVertexAttribP3ui(gpVertexAttribP3ui, (C.GLuint)(index), (C.GLenum)(xtype), (C.GLboolean)(boolToInt(normalized)), (C.GLuint)(value))
+}
+func VertexAttribP3uiv(index uint32, xtype uint32, normalized bool, value *uint32) {
+ C.glowVertexAttribP3uiv(gpVertexAttribP3uiv, (C.GLuint)(index), (C.GLenum)(xtype), (C.GLboolean)(boolToInt(normalized)), (*C.GLuint)(unsafe.Pointer(value)))
+}
+func VertexAttribP4ui(index uint32, xtype uint32, normalized bool, value uint32) {
+ C.glowVertexAttribP4ui(gpVertexAttribP4ui, (C.GLuint)(index), (C.GLenum)(xtype), (C.GLboolean)(boolToInt(normalized)), (C.GLuint)(value))
+}
+func VertexAttribP4uiv(index uint32, xtype uint32, normalized bool, value *uint32) {
+ C.glowVertexAttribP4uiv(gpVertexAttribP4uiv, (C.GLuint)(index), (C.GLenum)(xtype), (C.GLboolean)(boolToInt(normalized)), (*C.GLuint)(unsafe.Pointer(value)))
+}
+
+// define an array of generic vertex attribute data
+func VertexAttribPointer(index uint32, size int32, xtype uint32, normalized bool, stride int32, pointer unsafe.Pointer) {
+ C.glowVertexAttribPointer(gpVertexAttribPointer, (C.GLuint)(index), (C.GLint)(size), (C.GLenum)(xtype), (C.GLboolean)(boolToInt(normalized)), (C.GLsizei)(stride), pointer)
+}
+func VertexAttribPointerWithOffset(index uint32, size int32, xtype uint32, normalized bool, stride int32, offset uintptr) {
+ C.glowVertexAttribPointerWithOffset(gpVertexAttribPointer, (C.GLuint)(index), (C.GLint)(size), (C.GLenum)(xtype), (C.GLboolean)(boolToInt(normalized)), (C.GLsizei)(stride), (C.uintptr_t)(offset))
+}
+
+// modify the rate at which generic vertex attributes advance
+func VertexBindingDivisor(bindingindex uint32, divisor uint32) {
+ C.glowVertexBindingDivisor(gpVertexBindingDivisor, (C.GLuint)(bindingindex), (C.GLuint)(divisor))
+}
+func VertexFormatNV(size int32, xtype uint32, stride int32) {
+ C.glowVertexFormatNV(gpVertexFormatNV, (C.GLint)(size), (C.GLenum)(xtype), (C.GLsizei)(stride))
+}
+
+// set the viewport
+func Viewport(x int32, y int32, width int32, height int32) {
+ C.glowViewport(gpViewport, (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height))
+}
+func ViewportArrayv(first uint32, count int32, v *float32) {
+ C.glowViewportArrayv(gpViewportArrayv, (C.GLuint)(first), (C.GLsizei)(count), (*C.GLfloat)(unsafe.Pointer(v)))
+}
+func ViewportIndexedf(index uint32, x float32, y float32, w float32, h float32) {
+ C.glowViewportIndexedf(gpViewportIndexedf, (C.GLuint)(index), (C.GLfloat)(x), (C.GLfloat)(y), (C.GLfloat)(w), (C.GLfloat)(h))
+}
+func ViewportIndexedfv(index uint32, v *float32) {
+ C.glowViewportIndexedfv(gpViewportIndexedfv, (C.GLuint)(index), (*C.GLfloat)(unsafe.Pointer(v)))
+}
+func ViewportPositionWScaleNV(index uint32, xcoeff float32, ycoeff float32) {
+ C.glowViewportPositionWScaleNV(gpViewportPositionWScaleNV, (C.GLuint)(index), (C.GLfloat)(xcoeff), (C.GLfloat)(ycoeff))
+}
+func ViewportSwizzleNV(index uint32, swizzlex uint32, swizzley uint32, swizzlez uint32, swizzlew uint32) {
+ C.glowViewportSwizzleNV(gpViewportSwizzleNV, (C.GLuint)(index), (C.GLenum)(swizzlex), (C.GLenum)(swizzley), (C.GLenum)(swizzlez), (C.GLenum)(swizzlew))
+}
+
+// instruct the GL server to block until the specified sync object becomes signaled
+func WaitSync(sync uintptr, flags uint32, timeout uint64) {
+ C.glowWaitSync(gpWaitSync, (C.GLsync)(sync), (C.GLbitfield)(flags), (C.GLuint64)(timeout))
+}
+func WaitVkSemaphoreNV(vkSemaphore uint64) {
+ C.glowWaitVkSemaphoreNV(gpWaitVkSemaphoreNV, (C.GLuint64)(vkSemaphore))
+}
+func WeightPathsNV(resultPath uint32, numPaths int32, paths *uint32, weights *float32) {
+ C.glowWeightPathsNV(gpWeightPathsNV, (C.GLuint)(resultPath), (C.GLsizei)(numPaths), (*C.GLuint)(unsafe.Pointer(paths)), (*C.GLfloat)(unsafe.Pointer(weights)))
+}
+func WindowRectanglesEXT(mode uint32, count int32, box *int32) {
+ C.glowWindowRectanglesEXT(gpWindowRectanglesEXT, (C.GLenum)(mode), (C.GLsizei)(count), (*C.GLint)(unsafe.Pointer(box)))
+}
+
+// Init initializes the OpenGL bindings by loading the function pointers (for
+// each OpenGL function) from the active OpenGL context.
+//
+// It must be called under the presence of an active OpenGL context, e.g.,
+// always after calling window.MakeContextCurrent() and always before calling
+// any OpenGL functions exported by this package.
+//
+// On Windows, Init loads pointers that are context-specific (and hence you
+// must re-init if switching between OpenGL contexts, although not calling Init
+// again after switching between OpenGL contexts may work if the contexts belong
+// to the same graphics driver/device).
+//
+// On macOS and the other POSIX systems, the behavior is different, but code
+// written compatible with the Windows behavior is compatible with macOS and the
+// other POSIX systems. That is, always Init under an active OpenGL context, and
+// always re-init after switching graphics contexts.
+//
+// For information about caveats of Init, you should read the "Platform Specific
+// Function Retrieval" section of https://www.opengl.org/wiki/Load_OpenGL_Functions.
+func Init() error {
+ return InitWithProcAddrFunc(getProcAddress)
+}
+
+// InitWithProcAddrFunc intializes the package using the specified OpenGL
+// function pointer loading function. For more cases Init should be used
+// instead.
+func InitWithProcAddrFunc(getProcAddr func(name string) unsafe.Pointer) error {
+ gpActiveProgramEXT = (C.GPACTIVEPROGRAMEXT)(getProcAddr("glActiveProgramEXT"))
+ gpActiveShaderProgram = (C.GPACTIVESHADERPROGRAM)(getProcAddr("glActiveShaderProgram"))
+ gpActiveShaderProgramEXT = (C.GPACTIVESHADERPROGRAMEXT)(getProcAddr("glActiveShaderProgramEXT"))
+ gpActiveTexture = (C.GPACTIVETEXTURE)(getProcAddr("glActiveTexture"))
+ if gpActiveTexture == nil {
+ return errors.New("glActiveTexture")
+ }
+ gpApplyFramebufferAttachmentCMAAINTEL = (C.GPAPPLYFRAMEBUFFERATTACHMENTCMAAINTEL)(getProcAddr("glApplyFramebufferAttachmentCMAAINTEL"))
+ gpAttachShader = (C.GPATTACHSHADER)(getProcAddr("glAttachShader"))
+ if gpAttachShader == nil {
+ return errors.New("glAttachShader")
+ }
+ gpBeginConditionalRender = (C.GPBEGINCONDITIONALRENDER)(getProcAddr("glBeginConditionalRender"))
+ if gpBeginConditionalRender == nil {
+ return errors.New("glBeginConditionalRender")
+ }
+ gpBeginConditionalRenderNV = (C.GPBEGINCONDITIONALRENDERNV)(getProcAddr("glBeginConditionalRenderNV"))
+ gpBeginPerfMonitorAMD = (C.GPBEGINPERFMONITORAMD)(getProcAddr("glBeginPerfMonitorAMD"))
+ gpBeginPerfQueryINTEL = (C.GPBEGINPERFQUERYINTEL)(getProcAddr("glBeginPerfQueryINTEL"))
+ gpBeginQuery = (C.GPBEGINQUERY)(getProcAddr("glBeginQuery"))
+ if gpBeginQuery == nil {
+ return errors.New("glBeginQuery")
+ }
+ gpBeginQueryIndexed = (C.GPBEGINQUERYINDEXED)(getProcAddr("glBeginQueryIndexed"))
+ gpBeginTransformFeedback = (C.GPBEGINTRANSFORMFEEDBACK)(getProcAddr("glBeginTransformFeedback"))
+ if gpBeginTransformFeedback == nil {
+ return errors.New("glBeginTransformFeedback")
+ }
+ gpBindAttribLocation = (C.GPBINDATTRIBLOCATION)(getProcAddr("glBindAttribLocation"))
+ if gpBindAttribLocation == nil {
+ return errors.New("glBindAttribLocation")
+ }
+ gpBindBuffer = (C.GPBINDBUFFER)(getProcAddr("glBindBuffer"))
+ if gpBindBuffer == nil {
+ return errors.New("glBindBuffer")
+ }
+ gpBindBufferBase = (C.GPBINDBUFFERBASE)(getProcAddr("glBindBufferBase"))
+ if gpBindBufferBase == nil {
+ return errors.New("glBindBufferBase")
+ }
+ gpBindBufferRange = (C.GPBINDBUFFERRANGE)(getProcAddr("glBindBufferRange"))
+ if gpBindBufferRange == nil {
+ return errors.New("glBindBufferRange")
+ }
+ gpBindBuffersBase = (C.GPBINDBUFFERSBASE)(getProcAddr("glBindBuffersBase"))
+ gpBindBuffersRange = (C.GPBINDBUFFERSRANGE)(getProcAddr("glBindBuffersRange"))
+ gpBindFragDataLocation = (C.GPBINDFRAGDATALOCATION)(getProcAddr("glBindFragDataLocation"))
+ if gpBindFragDataLocation == nil {
+ return errors.New("glBindFragDataLocation")
+ }
+ gpBindFragDataLocationIndexed = (C.GPBINDFRAGDATALOCATIONINDEXED)(getProcAddr("glBindFragDataLocationIndexed"))
+ if gpBindFragDataLocationIndexed == nil {
+ return errors.New("glBindFragDataLocationIndexed")
+ }
+ gpBindFramebuffer = (C.GPBINDFRAMEBUFFER)(getProcAddr("glBindFramebuffer"))
+ if gpBindFramebuffer == nil {
+ return errors.New("glBindFramebuffer")
+ }
+ gpBindImageTexture = (C.GPBINDIMAGETEXTURE)(getProcAddr("glBindImageTexture"))
+ gpBindImageTextures = (C.GPBINDIMAGETEXTURES)(getProcAddr("glBindImageTextures"))
+ gpBindMultiTextureEXT = (C.GPBINDMULTITEXTUREEXT)(getProcAddr("glBindMultiTextureEXT"))
+ gpBindProgramPipeline = (C.GPBINDPROGRAMPIPELINE)(getProcAddr("glBindProgramPipeline"))
+ gpBindProgramPipelineEXT = (C.GPBINDPROGRAMPIPELINEEXT)(getProcAddr("glBindProgramPipelineEXT"))
+ gpBindRenderbuffer = (C.GPBINDRENDERBUFFER)(getProcAddr("glBindRenderbuffer"))
+ if gpBindRenderbuffer == nil {
+ return errors.New("glBindRenderbuffer")
+ }
+ gpBindSampler = (C.GPBINDSAMPLER)(getProcAddr("glBindSampler"))
+ if gpBindSampler == nil {
+ return errors.New("glBindSampler")
+ }
+ gpBindSamplers = (C.GPBINDSAMPLERS)(getProcAddr("glBindSamplers"))
+ gpBindShadingRateImageNV = (C.GPBINDSHADINGRATEIMAGENV)(getProcAddr("glBindShadingRateImageNV"))
+ gpBindTexture = (C.GPBINDTEXTURE)(getProcAddr("glBindTexture"))
+ if gpBindTexture == nil {
+ return errors.New("glBindTexture")
+ }
+ gpBindTextureUnit = (C.GPBINDTEXTUREUNIT)(getProcAddr("glBindTextureUnit"))
+ gpBindTextures = (C.GPBINDTEXTURES)(getProcAddr("glBindTextures"))
+ gpBindTransformFeedback = (C.GPBINDTRANSFORMFEEDBACK)(getProcAddr("glBindTransformFeedback"))
+ gpBindVertexArray = (C.GPBINDVERTEXARRAY)(getProcAddr("glBindVertexArray"))
+ if gpBindVertexArray == nil {
+ return errors.New("glBindVertexArray")
+ }
+ gpBindVertexBuffer = (C.GPBINDVERTEXBUFFER)(getProcAddr("glBindVertexBuffer"))
+ gpBindVertexBuffers = (C.GPBINDVERTEXBUFFERS)(getProcAddr("glBindVertexBuffers"))
+ gpBlendBarrierKHR = (C.GPBLENDBARRIERKHR)(getProcAddr("glBlendBarrierKHR"))
+ gpBlendBarrierNV = (C.GPBLENDBARRIERNV)(getProcAddr("glBlendBarrierNV"))
+ gpBlendColor = (C.GPBLENDCOLOR)(getProcAddr("glBlendColor"))
+ if gpBlendColor == nil {
+ return errors.New("glBlendColor")
+ }
+ gpBlendEquation = (C.GPBLENDEQUATION)(getProcAddr("glBlendEquation"))
+ if gpBlendEquation == nil {
+ return errors.New("glBlendEquation")
+ }
+ gpBlendEquationSeparate = (C.GPBLENDEQUATIONSEPARATE)(getProcAddr("glBlendEquationSeparate"))
+ if gpBlendEquationSeparate == nil {
+ return errors.New("glBlendEquationSeparate")
+ }
+ gpBlendEquationSeparateiARB = (C.GPBLENDEQUATIONSEPARATEIARB)(getProcAddr("glBlendEquationSeparateiARB"))
+ gpBlendEquationiARB = (C.GPBLENDEQUATIONIARB)(getProcAddr("glBlendEquationiARB"))
+ gpBlendFunc = (C.GPBLENDFUNC)(getProcAddr("glBlendFunc"))
+ if gpBlendFunc == nil {
+ return errors.New("glBlendFunc")
+ }
+ gpBlendFuncSeparate = (C.GPBLENDFUNCSEPARATE)(getProcAddr("glBlendFuncSeparate"))
+ if gpBlendFuncSeparate == nil {
+ return errors.New("glBlendFuncSeparate")
+ }
+ gpBlendFuncSeparateiARB = (C.GPBLENDFUNCSEPARATEIARB)(getProcAddr("glBlendFuncSeparateiARB"))
+ gpBlendFunciARB = (C.GPBLENDFUNCIARB)(getProcAddr("glBlendFunciARB"))
+ gpBlendParameteriNV = (C.GPBLENDPARAMETERINV)(getProcAddr("glBlendParameteriNV"))
+ gpBlitFramebuffer = (C.GPBLITFRAMEBUFFER)(getProcAddr("glBlitFramebuffer"))
+ if gpBlitFramebuffer == nil {
+ return errors.New("glBlitFramebuffer")
+ }
+ gpBlitNamedFramebuffer = (C.GPBLITNAMEDFRAMEBUFFER)(getProcAddr("glBlitNamedFramebuffer"))
+ gpBufferAddressRangeNV = (C.GPBUFFERADDRESSRANGENV)(getProcAddr("glBufferAddressRangeNV"))
+ gpBufferAttachMemoryNV = (C.GPBUFFERATTACHMEMORYNV)(getProcAddr("glBufferAttachMemoryNV"))
+ gpBufferData = (C.GPBUFFERDATA)(getProcAddr("glBufferData"))
+ if gpBufferData == nil {
+ return errors.New("glBufferData")
+ }
+ gpBufferPageCommitmentARB = (C.GPBUFFERPAGECOMMITMENTARB)(getProcAddr("glBufferPageCommitmentARB"))
+ gpBufferPageCommitmentMemNV = (C.GPBUFFERPAGECOMMITMENTMEMNV)(getProcAddr("glBufferPageCommitmentMemNV"))
+ gpBufferStorage = (C.GPBUFFERSTORAGE)(getProcAddr("glBufferStorage"))
+ gpBufferSubData = (C.GPBUFFERSUBDATA)(getProcAddr("glBufferSubData"))
+ if gpBufferSubData == nil {
+ return errors.New("glBufferSubData")
+ }
+ gpCallCommandListNV = (C.GPCALLCOMMANDLISTNV)(getProcAddr("glCallCommandListNV"))
+ gpCheckFramebufferStatus = (C.GPCHECKFRAMEBUFFERSTATUS)(getProcAddr("glCheckFramebufferStatus"))
+ if gpCheckFramebufferStatus == nil {
+ return errors.New("glCheckFramebufferStatus")
+ }
+ gpCheckNamedFramebufferStatus = (C.GPCHECKNAMEDFRAMEBUFFERSTATUS)(getProcAddr("glCheckNamedFramebufferStatus"))
+ gpCheckNamedFramebufferStatusEXT = (C.GPCHECKNAMEDFRAMEBUFFERSTATUSEXT)(getProcAddr("glCheckNamedFramebufferStatusEXT"))
+ gpClampColor = (C.GPCLAMPCOLOR)(getProcAddr("glClampColor"))
+ if gpClampColor == nil {
+ return errors.New("glClampColor")
+ }
+ gpClear = (C.GPCLEAR)(getProcAddr("glClear"))
+ if gpClear == nil {
+ return errors.New("glClear")
+ }
+ gpClearBufferData = (C.GPCLEARBUFFERDATA)(getProcAddr("glClearBufferData"))
+ gpClearBufferSubData = (C.GPCLEARBUFFERSUBDATA)(getProcAddr("glClearBufferSubData"))
+ gpClearBufferfi = (C.GPCLEARBUFFERFI)(getProcAddr("glClearBufferfi"))
+ if gpClearBufferfi == nil {
+ return errors.New("glClearBufferfi")
+ }
+ gpClearBufferfv = (C.GPCLEARBUFFERFV)(getProcAddr("glClearBufferfv"))
+ if gpClearBufferfv == nil {
+ return errors.New("glClearBufferfv")
+ }
+ gpClearBufferiv = (C.GPCLEARBUFFERIV)(getProcAddr("glClearBufferiv"))
+ if gpClearBufferiv == nil {
+ return errors.New("glClearBufferiv")
+ }
+ gpClearBufferuiv = (C.GPCLEARBUFFERUIV)(getProcAddr("glClearBufferuiv"))
+ if gpClearBufferuiv == nil {
+ return errors.New("glClearBufferuiv")
+ }
+ gpClearColor = (C.GPCLEARCOLOR)(getProcAddr("glClearColor"))
+ if gpClearColor == nil {
+ return errors.New("glClearColor")
+ }
+ gpClearDepth = (C.GPCLEARDEPTH)(getProcAddr("glClearDepth"))
+ if gpClearDepth == nil {
+ return errors.New("glClearDepth")
+ }
+ gpClearDepthdNV = (C.GPCLEARDEPTHDNV)(getProcAddr("glClearDepthdNV"))
+ gpClearDepthf = (C.GPCLEARDEPTHF)(getProcAddr("glClearDepthf"))
+ gpClearNamedBufferData = (C.GPCLEARNAMEDBUFFERDATA)(getProcAddr("glClearNamedBufferData"))
+ gpClearNamedBufferDataEXT = (C.GPCLEARNAMEDBUFFERDATAEXT)(getProcAddr("glClearNamedBufferDataEXT"))
+ gpClearNamedBufferSubData = (C.GPCLEARNAMEDBUFFERSUBDATA)(getProcAddr("glClearNamedBufferSubData"))
+ gpClearNamedBufferSubDataEXT = (C.GPCLEARNAMEDBUFFERSUBDATAEXT)(getProcAddr("glClearNamedBufferSubDataEXT"))
+ gpClearNamedFramebufferfi = (C.GPCLEARNAMEDFRAMEBUFFERFI)(getProcAddr("glClearNamedFramebufferfi"))
+ gpClearNamedFramebufferfv = (C.GPCLEARNAMEDFRAMEBUFFERFV)(getProcAddr("glClearNamedFramebufferfv"))
+ gpClearNamedFramebufferiv = (C.GPCLEARNAMEDFRAMEBUFFERIV)(getProcAddr("glClearNamedFramebufferiv"))
+ gpClearNamedFramebufferuiv = (C.GPCLEARNAMEDFRAMEBUFFERUIV)(getProcAddr("glClearNamedFramebufferuiv"))
+ gpClearStencil = (C.GPCLEARSTENCIL)(getProcAddr("glClearStencil"))
+ if gpClearStencil == nil {
+ return errors.New("glClearStencil")
+ }
+ gpClearTexImage = (C.GPCLEARTEXIMAGE)(getProcAddr("glClearTexImage"))
+ gpClearTexSubImage = (C.GPCLEARTEXSUBIMAGE)(getProcAddr("glClearTexSubImage"))
+ gpClientAttribDefaultEXT = (C.GPCLIENTATTRIBDEFAULTEXT)(getProcAddr("glClientAttribDefaultEXT"))
+ gpClientWaitSync = (C.GPCLIENTWAITSYNC)(getProcAddr("glClientWaitSync"))
+ if gpClientWaitSync == nil {
+ return errors.New("glClientWaitSync")
+ }
+ gpClipControl = (C.GPCLIPCONTROL)(getProcAddr("glClipControl"))
+ gpColorFormatNV = (C.GPCOLORFORMATNV)(getProcAddr("glColorFormatNV"))
+ gpColorMask = (C.GPCOLORMASK)(getProcAddr("glColorMask"))
+ if gpColorMask == nil {
+ return errors.New("glColorMask")
+ }
+ gpColorMaski = (C.GPCOLORMASKI)(getProcAddr("glColorMaski"))
+ if gpColorMaski == nil {
+ return errors.New("glColorMaski")
+ }
+ gpCommandListSegmentsNV = (C.GPCOMMANDLISTSEGMENTSNV)(getProcAddr("glCommandListSegmentsNV"))
+ gpCompileCommandListNV = (C.GPCOMPILECOMMANDLISTNV)(getProcAddr("glCompileCommandListNV"))
+ gpCompileShader = (C.GPCOMPILESHADER)(getProcAddr("glCompileShader"))
+ if gpCompileShader == nil {
+ return errors.New("glCompileShader")
+ }
+ gpCompileShaderIncludeARB = (C.GPCOMPILESHADERINCLUDEARB)(getProcAddr("glCompileShaderIncludeARB"))
+ gpCompressedMultiTexImage1DEXT = (C.GPCOMPRESSEDMULTITEXIMAGE1DEXT)(getProcAddr("glCompressedMultiTexImage1DEXT"))
+ gpCompressedMultiTexImage2DEXT = (C.GPCOMPRESSEDMULTITEXIMAGE2DEXT)(getProcAddr("glCompressedMultiTexImage2DEXT"))
+ gpCompressedMultiTexImage3DEXT = (C.GPCOMPRESSEDMULTITEXIMAGE3DEXT)(getProcAddr("glCompressedMultiTexImage3DEXT"))
+ gpCompressedMultiTexSubImage1DEXT = (C.GPCOMPRESSEDMULTITEXSUBIMAGE1DEXT)(getProcAddr("glCompressedMultiTexSubImage1DEXT"))
+ gpCompressedMultiTexSubImage2DEXT = (C.GPCOMPRESSEDMULTITEXSUBIMAGE2DEXT)(getProcAddr("glCompressedMultiTexSubImage2DEXT"))
+ gpCompressedMultiTexSubImage3DEXT = (C.GPCOMPRESSEDMULTITEXSUBIMAGE3DEXT)(getProcAddr("glCompressedMultiTexSubImage3DEXT"))
+ gpCompressedTexImage1D = (C.GPCOMPRESSEDTEXIMAGE1D)(getProcAddr("glCompressedTexImage1D"))
+ if gpCompressedTexImage1D == nil {
+ return errors.New("glCompressedTexImage1D")
+ }
+ gpCompressedTexImage2D = (C.GPCOMPRESSEDTEXIMAGE2D)(getProcAddr("glCompressedTexImage2D"))
+ if gpCompressedTexImage2D == nil {
+ return errors.New("glCompressedTexImage2D")
+ }
+ gpCompressedTexImage3D = (C.GPCOMPRESSEDTEXIMAGE3D)(getProcAddr("glCompressedTexImage3D"))
+ if gpCompressedTexImage3D == nil {
+ return errors.New("glCompressedTexImage3D")
+ }
+ gpCompressedTexSubImage1D = (C.GPCOMPRESSEDTEXSUBIMAGE1D)(getProcAddr("glCompressedTexSubImage1D"))
+ if gpCompressedTexSubImage1D == nil {
+ return errors.New("glCompressedTexSubImage1D")
+ }
+ gpCompressedTexSubImage2D = (C.GPCOMPRESSEDTEXSUBIMAGE2D)(getProcAddr("glCompressedTexSubImage2D"))
+ if gpCompressedTexSubImage2D == nil {
+ return errors.New("glCompressedTexSubImage2D")
+ }
+ gpCompressedTexSubImage3D = (C.GPCOMPRESSEDTEXSUBIMAGE3D)(getProcAddr("glCompressedTexSubImage3D"))
+ if gpCompressedTexSubImage3D == nil {
+ return errors.New("glCompressedTexSubImage3D")
+ }
+ gpCompressedTextureImage1DEXT = (C.GPCOMPRESSEDTEXTUREIMAGE1DEXT)(getProcAddr("glCompressedTextureImage1DEXT"))
+ gpCompressedTextureImage2DEXT = (C.GPCOMPRESSEDTEXTUREIMAGE2DEXT)(getProcAddr("glCompressedTextureImage2DEXT"))
+ gpCompressedTextureImage3DEXT = (C.GPCOMPRESSEDTEXTUREIMAGE3DEXT)(getProcAddr("glCompressedTextureImage3DEXT"))
+ gpCompressedTextureSubImage1D = (C.GPCOMPRESSEDTEXTURESUBIMAGE1D)(getProcAddr("glCompressedTextureSubImage1D"))
+ gpCompressedTextureSubImage1DEXT = (C.GPCOMPRESSEDTEXTURESUBIMAGE1DEXT)(getProcAddr("glCompressedTextureSubImage1DEXT"))
+ gpCompressedTextureSubImage2D = (C.GPCOMPRESSEDTEXTURESUBIMAGE2D)(getProcAddr("glCompressedTextureSubImage2D"))
+ gpCompressedTextureSubImage2DEXT = (C.GPCOMPRESSEDTEXTURESUBIMAGE2DEXT)(getProcAddr("glCompressedTextureSubImage2DEXT"))
+ gpCompressedTextureSubImage3D = (C.GPCOMPRESSEDTEXTURESUBIMAGE3D)(getProcAddr("glCompressedTextureSubImage3D"))
+ gpCompressedTextureSubImage3DEXT = (C.GPCOMPRESSEDTEXTURESUBIMAGE3DEXT)(getProcAddr("glCompressedTextureSubImage3DEXT"))
+ gpConservativeRasterParameterfNV = (C.GPCONSERVATIVERASTERPARAMETERFNV)(getProcAddr("glConservativeRasterParameterfNV"))
+ gpConservativeRasterParameteriNV = (C.GPCONSERVATIVERASTERPARAMETERINV)(getProcAddr("glConservativeRasterParameteriNV"))
+ gpCopyBufferSubData = (C.GPCOPYBUFFERSUBDATA)(getProcAddr("glCopyBufferSubData"))
+ if gpCopyBufferSubData == nil {
+ return errors.New("glCopyBufferSubData")
+ }
+ gpCopyImageSubData = (C.GPCOPYIMAGESUBDATA)(getProcAddr("glCopyImageSubData"))
+ gpCopyMultiTexImage1DEXT = (C.GPCOPYMULTITEXIMAGE1DEXT)(getProcAddr("glCopyMultiTexImage1DEXT"))
+ gpCopyMultiTexImage2DEXT = (C.GPCOPYMULTITEXIMAGE2DEXT)(getProcAddr("glCopyMultiTexImage2DEXT"))
+ gpCopyMultiTexSubImage1DEXT = (C.GPCOPYMULTITEXSUBIMAGE1DEXT)(getProcAddr("glCopyMultiTexSubImage1DEXT"))
+ gpCopyMultiTexSubImage2DEXT = (C.GPCOPYMULTITEXSUBIMAGE2DEXT)(getProcAddr("glCopyMultiTexSubImage2DEXT"))
+ gpCopyMultiTexSubImage3DEXT = (C.GPCOPYMULTITEXSUBIMAGE3DEXT)(getProcAddr("glCopyMultiTexSubImage3DEXT"))
+ gpCopyNamedBufferSubData = (C.GPCOPYNAMEDBUFFERSUBDATA)(getProcAddr("glCopyNamedBufferSubData"))
+ gpCopyPathNV = (C.GPCOPYPATHNV)(getProcAddr("glCopyPathNV"))
+ gpCopyTexImage1D = (C.GPCOPYTEXIMAGE1D)(getProcAddr("glCopyTexImage1D"))
+ if gpCopyTexImage1D == nil {
+ return errors.New("glCopyTexImage1D")
+ }
+ gpCopyTexImage2D = (C.GPCOPYTEXIMAGE2D)(getProcAddr("glCopyTexImage2D"))
+ if gpCopyTexImage2D == nil {
+ return errors.New("glCopyTexImage2D")
+ }
+ gpCopyTexSubImage1D = (C.GPCOPYTEXSUBIMAGE1D)(getProcAddr("glCopyTexSubImage1D"))
+ if gpCopyTexSubImage1D == nil {
+ return errors.New("glCopyTexSubImage1D")
+ }
+ gpCopyTexSubImage2D = (C.GPCOPYTEXSUBIMAGE2D)(getProcAddr("glCopyTexSubImage2D"))
+ if gpCopyTexSubImage2D == nil {
+ return errors.New("glCopyTexSubImage2D")
+ }
+ gpCopyTexSubImage3D = (C.GPCOPYTEXSUBIMAGE3D)(getProcAddr("glCopyTexSubImage3D"))
+ if gpCopyTexSubImage3D == nil {
+ return errors.New("glCopyTexSubImage3D")
+ }
+ gpCopyTextureImage1DEXT = (C.GPCOPYTEXTUREIMAGE1DEXT)(getProcAddr("glCopyTextureImage1DEXT"))
+ gpCopyTextureImage2DEXT = (C.GPCOPYTEXTUREIMAGE2DEXT)(getProcAddr("glCopyTextureImage2DEXT"))
+ gpCopyTextureSubImage1D = (C.GPCOPYTEXTURESUBIMAGE1D)(getProcAddr("glCopyTextureSubImage1D"))
+ gpCopyTextureSubImage1DEXT = (C.GPCOPYTEXTURESUBIMAGE1DEXT)(getProcAddr("glCopyTextureSubImage1DEXT"))
+ gpCopyTextureSubImage2D = (C.GPCOPYTEXTURESUBIMAGE2D)(getProcAddr("glCopyTextureSubImage2D"))
+ gpCopyTextureSubImage2DEXT = (C.GPCOPYTEXTURESUBIMAGE2DEXT)(getProcAddr("glCopyTextureSubImage2DEXT"))
+ gpCopyTextureSubImage3D = (C.GPCOPYTEXTURESUBIMAGE3D)(getProcAddr("glCopyTextureSubImage3D"))
+ gpCopyTextureSubImage3DEXT = (C.GPCOPYTEXTURESUBIMAGE3DEXT)(getProcAddr("glCopyTextureSubImage3DEXT"))
+ gpCoverFillPathInstancedNV = (C.GPCOVERFILLPATHINSTANCEDNV)(getProcAddr("glCoverFillPathInstancedNV"))
+ gpCoverFillPathNV = (C.GPCOVERFILLPATHNV)(getProcAddr("glCoverFillPathNV"))
+ gpCoverStrokePathInstancedNV = (C.GPCOVERSTROKEPATHINSTANCEDNV)(getProcAddr("glCoverStrokePathInstancedNV"))
+ gpCoverStrokePathNV = (C.GPCOVERSTROKEPATHNV)(getProcAddr("glCoverStrokePathNV"))
+ gpCoverageModulationNV = (C.GPCOVERAGEMODULATIONNV)(getProcAddr("glCoverageModulationNV"))
+ gpCoverageModulationTableNV = (C.GPCOVERAGEMODULATIONTABLENV)(getProcAddr("glCoverageModulationTableNV"))
+ gpCreateBuffers = (C.GPCREATEBUFFERS)(getProcAddr("glCreateBuffers"))
+ gpCreateCommandListsNV = (C.GPCREATECOMMANDLISTSNV)(getProcAddr("glCreateCommandListsNV"))
+ gpCreateFramebuffers = (C.GPCREATEFRAMEBUFFERS)(getProcAddr("glCreateFramebuffers"))
+ gpCreatePerfQueryINTEL = (C.GPCREATEPERFQUERYINTEL)(getProcAddr("glCreatePerfQueryINTEL"))
+ gpCreateProgram = (C.GPCREATEPROGRAM)(getProcAddr("glCreateProgram"))
+ if gpCreateProgram == nil {
+ return errors.New("glCreateProgram")
+ }
+ gpCreateProgramPipelines = (C.GPCREATEPROGRAMPIPELINES)(getProcAddr("glCreateProgramPipelines"))
+ gpCreateQueries = (C.GPCREATEQUERIES)(getProcAddr("glCreateQueries"))
+ gpCreateRenderbuffers = (C.GPCREATERENDERBUFFERS)(getProcAddr("glCreateRenderbuffers"))
+ gpCreateSamplers = (C.GPCREATESAMPLERS)(getProcAddr("glCreateSamplers"))
+ gpCreateShader = (C.GPCREATESHADER)(getProcAddr("glCreateShader"))
+ if gpCreateShader == nil {
+ return errors.New("glCreateShader")
+ }
+ gpCreateShaderProgramEXT = (C.GPCREATESHADERPROGRAMEXT)(getProcAddr("glCreateShaderProgramEXT"))
+ gpCreateShaderProgramv = (C.GPCREATESHADERPROGRAMV)(getProcAddr("glCreateShaderProgramv"))
+ gpCreateShaderProgramvEXT = (C.GPCREATESHADERPROGRAMVEXT)(getProcAddr("glCreateShaderProgramvEXT"))
+ gpCreateStatesNV = (C.GPCREATESTATESNV)(getProcAddr("glCreateStatesNV"))
+ gpCreateSyncFromCLeventARB = (C.GPCREATESYNCFROMCLEVENTARB)(getProcAddr("glCreateSyncFromCLeventARB"))
+ gpCreateTextures = (C.GPCREATETEXTURES)(getProcAddr("glCreateTextures"))
+ gpCreateTransformFeedbacks = (C.GPCREATETRANSFORMFEEDBACKS)(getProcAddr("glCreateTransformFeedbacks"))
+ gpCreateVertexArrays = (C.GPCREATEVERTEXARRAYS)(getProcAddr("glCreateVertexArrays"))
+ gpCullFace = (C.GPCULLFACE)(getProcAddr("glCullFace"))
+ if gpCullFace == nil {
+ return errors.New("glCullFace")
+ }
+ gpDebugMessageCallback = (C.GPDEBUGMESSAGECALLBACK)(getProcAddr("glDebugMessageCallback"))
+ gpDebugMessageCallbackARB = (C.GPDEBUGMESSAGECALLBACKARB)(getProcAddr("glDebugMessageCallbackARB"))
+ gpDebugMessageCallbackKHR = (C.GPDEBUGMESSAGECALLBACKKHR)(getProcAddr("glDebugMessageCallbackKHR"))
+ gpDebugMessageControl = (C.GPDEBUGMESSAGECONTROL)(getProcAddr("glDebugMessageControl"))
+ gpDebugMessageControlARB = (C.GPDEBUGMESSAGECONTROLARB)(getProcAddr("glDebugMessageControlARB"))
+ gpDebugMessageControlKHR = (C.GPDEBUGMESSAGECONTROLKHR)(getProcAddr("glDebugMessageControlKHR"))
+ gpDebugMessageInsert = (C.GPDEBUGMESSAGEINSERT)(getProcAddr("glDebugMessageInsert"))
+ gpDebugMessageInsertARB = (C.GPDEBUGMESSAGEINSERTARB)(getProcAddr("glDebugMessageInsertARB"))
+ gpDebugMessageInsertKHR = (C.GPDEBUGMESSAGEINSERTKHR)(getProcAddr("glDebugMessageInsertKHR"))
+ gpDeleteBuffers = (C.GPDELETEBUFFERS)(getProcAddr("glDeleteBuffers"))
+ if gpDeleteBuffers == nil {
+ return errors.New("glDeleteBuffers")
+ }
+ gpDeleteCommandListsNV = (C.GPDELETECOMMANDLISTSNV)(getProcAddr("glDeleteCommandListsNV"))
+ gpDeleteFramebuffers = (C.GPDELETEFRAMEBUFFERS)(getProcAddr("glDeleteFramebuffers"))
+ if gpDeleteFramebuffers == nil {
+ return errors.New("glDeleteFramebuffers")
+ }
+ gpDeleteNamedStringARB = (C.GPDELETENAMEDSTRINGARB)(getProcAddr("glDeleteNamedStringARB"))
+ gpDeletePathsNV = (C.GPDELETEPATHSNV)(getProcAddr("glDeletePathsNV"))
+ gpDeletePerfMonitorsAMD = (C.GPDELETEPERFMONITORSAMD)(getProcAddr("glDeletePerfMonitorsAMD"))
+ gpDeletePerfQueryINTEL = (C.GPDELETEPERFQUERYINTEL)(getProcAddr("glDeletePerfQueryINTEL"))
+ gpDeleteProgram = (C.GPDELETEPROGRAM)(getProcAddr("glDeleteProgram"))
+ if gpDeleteProgram == nil {
+ return errors.New("glDeleteProgram")
+ }
+ gpDeleteProgramPipelines = (C.GPDELETEPROGRAMPIPELINES)(getProcAddr("glDeleteProgramPipelines"))
+ gpDeleteProgramPipelinesEXT = (C.GPDELETEPROGRAMPIPELINESEXT)(getProcAddr("glDeleteProgramPipelinesEXT"))
+ gpDeleteQueries = (C.GPDELETEQUERIES)(getProcAddr("glDeleteQueries"))
+ if gpDeleteQueries == nil {
+ return errors.New("glDeleteQueries")
+ }
+ gpDeleteRenderbuffers = (C.GPDELETERENDERBUFFERS)(getProcAddr("glDeleteRenderbuffers"))
+ if gpDeleteRenderbuffers == nil {
+ return errors.New("glDeleteRenderbuffers")
+ }
+ gpDeleteSamplers = (C.GPDELETESAMPLERS)(getProcAddr("glDeleteSamplers"))
+ if gpDeleteSamplers == nil {
+ return errors.New("glDeleteSamplers")
+ }
+ gpDeleteShader = (C.GPDELETESHADER)(getProcAddr("glDeleteShader"))
+ if gpDeleteShader == nil {
+ return errors.New("glDeleteShader")
+ }
+ gpDeleteStatesNV = (C.GPDELETESTATESNV)(getProcAddr("glDeleteStatesNV"))
+ gpDeleteSync = (C.GPDELETESYNC)(getProcAddr("glDeleteSync"))
+ if gpDeleteSync == nil {
+ return errors.New("glDeleteSync")
+ }
+ gpDeleteTextures = (C.GPDELETETEXTURES)(getProcAddr("glDeleteTextures"))
+ if gpDeleteTextures == nil {
+ return errors.New("glDeleteTextures")
+ }
+ gpDeleteTransformFeedbacks = (C.GPDELETETRANSFORMFEEDBACKS)(getProcAddr("glDeleteTransformFeedbacks"))
+ gpDeleteVertexArrays = (C.GPDELETEVERTEXARRAYS)(getProcAddr("glDeleteVertexArrays"))
+ if gpDeleteVertexArrays == nil {
+ return errors.New("glDeleteVertexArrays")
+ }
+ gpDepthBoundsdNV = (C.GPDEPTHBOUNDSDNV)(getProcAddr("glDepthBoundsdNV"))
+ gpDepthFunc = (C.GPDEPTHFUNC)(getProcAddr("glDepthFunc"))
+ if gpDepthFunc == nil {
+ return errors.New("glDepthFunc")
+ }
+ gpDepthMask = (C.GPDEPTHMASK)(getProcAddr("glDepthMask"))
+ if gpDepthMask == nil {
+ return errors.New("glDepthMask")
+ }
+ gpDepthRange = (C.GPDEPTHRANGE)(getProcAddr("glDepthRange"))
+ if gpDepthRange == nil {
+ return errors.New("glDepthRange")
+ }
+ gpDepthRangeArraydvNV = (C.GPDEPTHRANGEARRAYDVNV)(getProcAddr("glDepthRangeArraydvNV"))
+ gpDepthRangeArrayv = (C.GPDEPTHRANGEARRAYV)(getProcAddr("glDepthRangeArrayv"))
+ gpDepthRangeIndexed = (C.GPDEPTHRANGEINDEXED)(getProcAddr("glDepthRangeIndexed"))
+ gpDepthRangeIndexeddNV = (C.GPDEPTHRANGEINDEXEDDNV)(getProcAddr("glDepthRangeIndexeddNV"))
+ gpDepthRangedNV = (C.GPDEPTHRANGEDNV)(getProcAddr("glDepthRangedNV"))
+ gpDepthRangef = (C.GPDEPTHRANGEF)(getProcAddr("glDepthRangef"))
+ gpDetachShader = (C.GPDETACHSHADER)(getProcAddr("glDetachShader"))
+ if gpDetachShader == nil {
+ return errors.New("glDetachShader")
+ }
+ gpDisable = (C.GPDISABLE)(getProcAddr("glDisable"))
+ if gpDisable == nil {
+ return errors.New("glDisable")
+ }
+ gpDisableClientStateIndexedEXT = (C.GPDISABLECLIENTSTATEINDEXEDEXT)(getProcAddr("glDisableClientStateIndexedEXT"))
+ gpDisableClientStateiEXT = (C.GPDISABLECLIENTSTATEIEXT)(getProcAddr("glDisableClientStateiEXT"))
+ gpDisableIndexedEXT = (C.GPDISABLEINDEXEDEXT)(getProcAddr("glDisableIndexedEXT"))
+ gpDisableVertexArrayAttrib = (C.GPDISABLEVERTEXARRAYATTRIB)(getProcAddr("glDisableVertexArrayAttrib"))
+ gpDisableVertexArrayAttribEXT = (C.GPDISABLEVERTEXARRAYATTRIBEXT)(getProcAddr("glDisableVertexArrayAttribEXT"))
+ gpDisableVertexArrayEXT = (C.GPDISABLEVERTEXARRAYEXT)(getProcAddr("glDisableVertexArrayEXT"))
+ gpDisableVertexAttribArray = (C.GPDISABLEVERTEXATTRIBARRAY)(getProcAddr("glDisableVertexAttribArray"))
+ if gpDisableVertexAttribArray == nil {
+ return errors.New("glDisableVertexAttribArray")
+ }
+ gpDisablei = (C.GPDISABLEI)(getProcAddr("glDisablei"))
+ if gpDisablei == nil {
+ return errors.New("glDisablei")
+ }
+ gpDispatchCompute = (C.GPDISPATCHCOMPUTE)(getProcAddr("glDispatchCompute"))
+ gpDispatchComputeGroupSizeARB = (C.GPDISPATCHCOMPUTEGROUPSIZEARB)(getProcAddr("glDispatchComputeGroupSizeARB"))
+ gpDispatchComputeIndirect = (C.GPDISPATCHCOMPUTEINDIRECT)(getProcAddr("glDispatchComputeIndirect"))
+ gpDrawArrays = (C.GPDRAWARRAYS)(getProcAddr("glDrawArrays"))
+ if gpDrawArrays == nil {
+ return errors.New("glDrawArrays")
+ }
+ gpDrawArraysIndirect = (C.GPDRAWARRAYSINDIRECT)(getProcAddr("glDrawArraysIndirect"))
+ gpDrawArraysInstanced = (C.GPDRAWARRAYSINSTANCED)(getProcAddr("glDrawArraysInstanced"))
+ if gpDrawArraysInstanced == nil {
+ return errors.New("glDrawArraysInstanced")
+ }
+ gpDrawArraysInstancedARB = (C.GPDRAWARRAYSINSTANCEDARB)(getProcAddr("glDrawArraysInstancedARB"))
+ gpDrawArraysInstancedBaseInstance = (C.GPDRAWARRAYSINSTANCEDBASEINSTANCE)(getProcAddr("glDrawArraysInstancedBaseInstance"))
+ gpDrawArraysInstancedEXT = (C.GPDRAWARRAYSINSTANCEDEXT)(getProcAddr("glDrawArraysInstancedEXT"))
+ gpDrawBuffer = (C.GPDRAWBUFFER)(getProcAddr("glDrawBuffer"))
+ if gpDrawBuffer == nil {
+ return errors.New("glDrawBuffer")
+ }
+ gpDrawBuffers = (C.GPDRAWBUFFERS)(getProcAddr("glDrawBuffers"))
+ if gpDrawBuffers == nil {
+ return errors.New("glDrawBuffers")
+ }
+ gpDrawCommandsAddressNV = (C.GPDRAWCOMMANDSADDRESSNV)(getProcAddr("glDrawCommandsAddressNV"))
+ gpDrawCommandsNV = (C.GPDRAWCOMMANDSNV)(getProcAddr("glDrawCommandsNV"))
+ gpDrawCommandsStatesAddressNV = (C.GPDRAWCOMMANDSSTATESADDRESSNV)(getProcAddr("glDrawCommandsStatesAddressNV"))
+ gpDrawCommandsStatesNV = (C.GPDRAWCOMMANDSSTATESNV)(getProcAddr("glDrawCommandsStatesNV"))
+ gpDrawElements = (C.GPDRAWELEMENTS)(getProcAddr("glDrawElements"))
+ if gpDrawElements == nil {
+ return errors.New("glDrawElements")
+ }
+ gpDrawElementsBaseVertex = (C.GPDRAWELEMENTSBASEVERTEX)(getProcAddr("glDrawElementsBaseVertex"))
+ if gpDrawElementsBaseVertex == nil {
+ return errors.New("glDrawElementsBaseVertex")
+ }
+ gpDrawElementsIndirect = (C.GPDRAWELEMENTSINDIRECT)(getProcAddr("glDrawElementsIndirect"))
+ gpDrawElementsInstanced = (C.GPDRAWELEMENTSINSTANCED)(getProcAddr("glDrawElementsInstanced"))
+ if gpDrawElementsInstanced == nil {
+ return errors.New("glDrawElementsInstanced")
+ }
+ gpDrawElementsInstancedARB = (C.GPDRAWELEMENTSINSTANCEDARB)(getProcAddr("glDrawElementsInstancedARB"))
+ gpDrawElementsInstancedBaseInstance = (C.GPDRAWELEMENTSINSTANCEDBASEINSTANCE)(getProcAddr("glDrawElementsInstancedBaseInstance"))
+ gpDrawElementsInstancedBaseVertex = (C.GPDRAWELEMENTSINSTANCEDBASEVERTEX)(getProcAddr("glDrawElementsInstancedBaseVertex"))
+ if gpDrawElementsInstancedBaseVertex == nil {
+ return errors.New("glDrawElementsInstancedBaseVertex")
+ }
+ gpDrawElementsInstancedBaseVertexBaseInstance = (C.GPDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCE)(getProcAddr("glDrawElementsInstancedBaseVertexBaseInstance"))
+ gpDrawElementsInstancedEXT = (C.GPDRAWELEMENTSINSTANCEDEXT)(getProcAddr("glDrawElementsInstancedEXT"))
+ gpDrawMeshTasksIndirectNV = (C.GPDRAWMESHTASKSINDIRECTNV)(getProcAddr("glDrawMeshTasksIndirectNV"))
+ gpDrawMeshTasksNV = (C.GPDRAWMESHTASKSNV)(getProcAddr("glDrawMeshTasksNV"))
+ gpDrawRangeElements = (C.GPDRAWRANGEELEMENTS)(getProcAddr("glDrawRangeElements"))
+ if gpDrawRangeElements == nil {
+ return errors.New("glDrawRangeElements")
+ }
+ gpDrawRangeElementsBaseVertex = (C.GPDRAWRANGEELEMENTSBASEVERTEX)(getProcAddr("glDrawRangeElementsBaseVertex"))
+ if gpDrawRangeElementsBaseVertex == nil {
+ return errors.New("glDrawRangeElementsBaseVertex")
+ }
+ gpDrawTransformFeedback = (C.GPDRAWTRANSFORMFEEDBACK)(getProcAddr("glDrawTransformFeedback"))
+ gpDrawTransformFeedbackInstanced = (C.GPDRAWTRANSFORMFEEDBACKINSTANCED)(getProcAddr("glDrawTransformFeedbackInstanced"))
+ gpDrawTransformFeedbackStream = (C.GPDRAWTRANSFORMFEEDBACKSTREAM)(getProcAddr("glDrawTransformFeedbackStream"))
+ gpDrawTransformFeedbackStreamInstanced = (C.GPDRAWTRANSFORMFEEDBACKSTREAMINSTANCED)(getProcAddr("glDrawTransformFeedbackStreamInstanced"))
+ gpDrawVkImageNV = (C.GPDRAWVKIMAGENV)(getProcAddr("glDrawVkImageNV"))
+ gpEGLImageTargetTexStorageEXT = (C.GPEGLIMAGETARGETTEXSTORAGEEXT)(getProcAddr("glEGLImageTargetTexStorageEXT"))
+ gpEGLImageTargetTextureStorageEXT = (C.GPEGLIMAGETARGETTEXTURESTORAGEEXT)(getProcAddr("glEGLImageTargetTextureStorageEXT"))
+ gpEdgeFlagFormatNV = (C.GPEDGEFLAGFORMATNV)(getProcAddr("glEdgeFlagFormatNV"))
+ gpEnable = (C.GPENABLE)(getProcAddr("glEnable"))
+ if gpEnable == nil {
+ return errors.New("glEnable")
+ }
+ gpEnableClientStateIndexedEXT = (C.GPENABLECLIENTSTATEINDEXEDEXT)(getProcAddr("glEnableClientStateIndexedEXT"))
+ gpEnableClientStateiEXT = (C.GPENABLECLIENTSTATEIEXT)(getProcAddr("glEnableClientStateiEXT"))
+ gpEnableIndexedEXT = (C.GPENABLEINDEXEDEXT)(getProcAddr("glEnableIndexedEXT"))
+ gpEnableVertexArrayAttrib = (C.GPENABLEVERTEXARRAYATTRIB)(getProcAddr("glEnableVertexArrayAttrib"))
+ gpEnableVertexArrayAttribEXT = (C.GPENABLEVERTEXARRAYATTRIBEXT)(getProcAddr("glEnableVertexArrayAttribEXT"))
+ gpEnableVertexArrayEXT = (C.GPENABLEVERTEXARRAYEXT)(getProcAddr("glEnableVertexArrayEXT"))
+ gpEnableVertexAttribArray = (C.GPENABLEVERTEXATTRIBARRAY)(getProcAddr("glEnableVertexAttribArray"))
+ if gpEnableVertexAttribArray == nil {
+ return errors.New("glEnableVertexAttribArray")
+ }
+ gpEnablei = (C.GPENABLEI)(getProcAddr("glEnablei"))
+ if gpEnablei == nil {
+ return errors.New("glEnablei")
+ }
+ gpEndConditionalRender = (C.GPENDCONDITIONALRENDER)(getProcAddr("glEndConditionalRender"))
+ if gpEndConditionalRender == nil {
+ return errors.New("glEndConditionalRender")
+ }
+ gpEndConditionalRenderNV = (C.GPENDCONDITIONALRENDERNV)(getProcAddr("glEndConditionalRenderNV"))
+ gpEndPerfMonitorAMD = (C.GPENDPERFMONITORAMD)(getProcAddr("glEndPerfMonitorAMD"))
+ gpEndPerfQueryINTEL = (C.GPENDPERFQUERYINTEL)(getProcAddr("glEndPerfQueryINTEL"))
+ gpEndQuery = (C.GPENDQUERY)(getProcAddr("glEndQuery"))
+ if gpEndQuery == nil {
+ return errors.New("glEndQuery")
+ }
+ gpEndQueryIndexed = (C.GPENDQUERYINDEXED)(getProcAddr("glEndQueryIndexed"))
+ gpEndTransformFeedback = (C.GPENDTRANSFORMFEEDBACK)(getProcAddr("glEndTransformFeedback"))
+ if gpEndTransformFeedback == nil {
+ return errors.New("glEndTransformFeedback")
+ }
+ gpEvaluateDepthValuesARB = (C.GPEVALUATEDEPTHVALUESARB)(getProcAddr("glEvaluateDepthValuesARB"))
+ gpFenceSync = (C.GPFENCESYNC)(getProcAddr("glFenceSync"))
+ if gpFenceSync == nil {
+ return errors.New("glFenceSync")
+ }
+ gpFinish = (C.GPFINISH)(getProcAddr("glFinish"))
+ if gpFinish == nil {
+ return errors.New("glFinish")
+ }
+ gpFlush = (C.GPFLUSH)(getProcAddr("glFlush"))
+ if gpFlush == nil {
+ return errors.New("glFlush")
+ }
+ gpFlushMappedBufferRange = (C.GPFLUSHMAPPEDBUFFERRANGE)(getProcAddr("glFlushMappedBufferRange"))
+ if gpFlushMappedBufferRange == nil {
+ return errors.New("glFlushMappedBufferRange")
+ }
+ gpFlushMappedNamedBufferRange = (C.GPFLUSHMAPPEDNAMEDBUFFERRANGE)(getProcAddr("glFlushMappedNamedBufferRange"))
+ gpFlushMappedNamedBufferRangeEXT = (C.GPFLUSHMAPPEDNAMEDBUFFERRANGEEXT)(getProcAddr("glFlushMappedNamedBufferRangeEXT"))
+ gpFogCoordFormatNV = (C.GPFOGCOORDFORMATNV)(getProcAddr("glFogCoordFormatNV"))
+ gpFragmentCoverageColorNV = (C.GPFRAGMENTCOVERAGECOLORNV)(getProcAddr("glFragmentCoverageColorNV"))
+ gpFramebufferDrawBufferEXT = (C.GPFRAMEBUFFERDRAWBUFFEREXT)(getProcAddr("glFramebufferDrawBufferEXT"))
+ gpFramebufferDrawBuffersEXT = (C.GPFRAMEBUFFERDRAWBUFFERSEXT)(getProcAddr("glFramebufferDrawBuffersEXT"))
+ gpFramebufferFetchBarrierEXT = (C.GPFRAMEBUFFERFETCHBARRIEREXT)(getProcAddr("glFramebufferFetchBarrierEXT"))
+ gpFramebufferParameteri = (C.GPFRAMEBUFFERPARAMETERI)(getProcAddr("glFramebufferParameteri"))
+ gpFramebufferParameteriMESA = (C.GPFRAMEBUFFERPARAMETERIMESA)(getProcAddr("glFramebufferParameteriMESA"))
+ gpFramebufferReadBufferEXT = (C.GPFRAMEBUFFERREADBUFFEREXT)(getProcAddr("glFramebufferReadBufferEXT"))
+ gpFramebufferRenderbuffer = (C.GPFRAMEBUFFERRENDERBUFFER)(getProcAddr("glFramebufferRenderbuffer"))
+ if gpFramebufferRenderbuffer == nil {
+ return errors.New("glFramebufferRenderbuffer")
+ }
+ gpFramebufferSampleLocationsfvARB = (C.GPFRAMEBUFFERSAMPLELOCATIONSFVARB)(getProcAddr("glFramebufferSampleLocationsfvARB"))
+ gpFramebufferSampleLocationsfvNV = (C.GPFRAMEBUFFERSAMPLELOCATIONSFVNV)(getProcAddr("glFramebufferSampleLocationsfvNV"))
+ gpFramebufferTexture = (C.GPFRAMEBUFFERTEXTURE)(getProcAddr("glFramebufferTexture"))
+ if gpFramebufferTexture == nil {
+ return errors.New("glFramebufferTexture")
+ }
+ gpFramebufferTexture1D = (C.GPFRAMEBUFFERTEXTURE1D)(getProcAddr("glFramebufferTexture1D"))
+ if gpFramebufferTexture1D == nil {
+ return errors.New("glFramebufferTexture1D")
+ }
+ gpFramebufferTexture2D = (C.GPFRAMEBUFFERTEXTURE2D)(getProcAddr("glFramebufferTexture2D"))
+ if gpFramebufferTexture2D == nil {
+ return errors.New("glFramebufferTexture2D")
+ }
+ gpFramebufferTexture3D = (C.GPFRAMEBUFFERTEXTURE3D)(getProcAddr("glFramebufferTexture3D"))
+ if gpFramebufferTexture3D == nil {
+ return errors.New("glFramebufferTexture3D")
+ }
+ gpFramebufferTextureARB = (C.GPFRAMEBUFFERTEXTUREARB)(getProcAddr("glFramebufferTextureARB"))
+ gpFramebufferTextureFaceARB = (C.GPFRAMEBUFFERTEXTUREFACEARB)(getProcAddr("glFramebufferTextureFaceARB"))
+ gpFramebufferTextureLayer = (C.GPFRAMEBUFFERTEXTURELAYER)(getProcAddr("glFramebufferTextureLayer"))
+ if gpFramebufferTextureLayer == nil {
+ return errors.New("glFramebufferTextureLayer")
+ }
+ gpFramebufferTextureLayerARB = (C.GPFRAMEBUFFERTEXTURELAYERARB)(getProcAddr("glFramebufferTextureLayerARB"))
+ gpFramebufferTextureMultiviewOVR = (C.GPFRAMEBUFFERTEXTUREMULTIVIEWOVR)(getProcAddr("glFramebufferTextureMultiviewOVR"))
+ gpFrontFace = (C.GPFRONTFACE)(getProcAddr("glFrontFace"))
+ if gpFrontFace == nil {
+ return errors.New("glFrontFace")
+ }
+ gpGenBuffers = (C.GPGENBUFFERS)(getProcAddr("glGenBuffers"))
+ if gpGenBuffers == nil {
+ return errors.New("glGenBuffers")
+ }
+ gpGenFramebuffers = (C.GPGENFRAMEBUFFERS)(getProcAddr("glGenFramebuffers"))
+ if gpGenFramebuffers == nil {
+ return errors.New("glGenFramebuffers")
+ }
+ gpGenPathsNV = (C.GPGENPATHSNV)(getProcAddr("glGenPathsNV"))
+ gpGenPerfMonitorsAMD = (C.GPGENPERFMONITORSAMD)(getProcAddr("glGenPerfMonitorsAMD"))
+ gpGenProgramPipelines = (C.GPGENPROGRAMPIPELINES)(getProcAddr("glGenProgramPipelines"))
+ gpGenProgramPipelinesEXT = (C.GPGENPROGRAMPIPELINESEXT)(getProcAddr("glGenProgramPipelinesEXT"))
+ gpGenQueries = (C.GPGENQUERIES)(getProcAddr("glGenQueries"))
+ if gpGenQueries == nil {
+ return errors.New("glGenQueries")
+ }
+ gpGenRenderbuffers = (C.GPGENRENDERBUFFERS)(getProcAddr("glGenRenderbuffers"))
+ if gpGenRenderbuffers == nil {
+ return errors.New("glGenRenderbuffers")
+ }
+ gpGenSamplers = (C.GPGENSAMPLERS)(getProcAddr("glGenSamplers"))
+ if gpGenSamplers == nil {
+ return errors.New("glGenSamplers")
+ }
+ gpGenTextures = (C.GPGENTEXTURES)(getProcAddr("glGenTextures"))
+ if gpGenTextures == nil {
+ return errors.New("glGenTextures")
+ }
+ gpGenTransformFeedbacks = (C.GPGENTRANSFORMFEEDBACKS)(getProcAddr("glGenTransformFeedbacks"))
+ gpGenVertexArrays = (C.GPGENVERTEXARRAYS)(getProcAddr("glGenVertexArrays"))
+ if gpGenVertexArrays == nil {
+ return errors.New("glGenVertexArrays")
+ }
+ gpGenerateMipmap = (C.GPGENERATEMIPMAP)(getProcAddr("glGenerateMipmap"))
+ if gpGenerateMipmap == nil {
+ return errors.New("glGenerateMipmap")
+ }
+ gpGenerateMultiTexMipmapEXT = (C.GPGENERATEMULTITEXMIPMAPEXT)(getProcAddr("glGenerateMultiTexMipmapEXT"))
+ gpGenerateTextureMipmap = (C.GPGENERATETEXTUREMIPMAP)(getProcAddr("glGenerateTextureMipmap"))
+ gpGenerateTextureMipmapEXT = (C.GPGENERATETEXTUREMIPMAPEXT)(getProcAddr("glGenerateTextureMipmapEXT"))
+ gpGetActiveAtomicCounterBufferiv = (C.GPGETACTIVEATOMICCOUNTERBUFFERIV)(getProcAddr("glGetActiveAtomicCounterBufferiv"))
+ gpGetActiveAttrib = (C.GPGETACTIVEATTRIB)(getProcAddr("glGetActiveAttrib"))
+ if gpGetActiveAttrib == nil {
+ return errors.New("glGetActiveAttrib")
+ }
+ gpGetActiveSubroutineName = (C.GPGETACTIVESUBROUTINENAME)(getProcAddr("glGetActiveSubroutineName"))
+ gpGetActiveSubroutineUniformName = (C.GPGETACTIVESUBROUTINEUNIFORMNAME)(getProcAddr("glGetActiveSubroutineUniformName"))
+ gpGetActiveSubroutineUniformiv = (C.GPGETACTIVESUBROUTINEUNIFORMIV)(getProcAddr("glGetActiveSubroutineUniformiv"))
+ gpGetActiveUniform = (C.GPGETACTIVEUNIFORM)(getProcAddr("glGetActiveUniform"))
+ if gpGetActiveUniform == nil {
+ return errors.New("glGetActiveUniform")
+ }
+ gpGetActiveUniformBlockName = (C.GPGETACTIVEUNIFORMBLOCKNAME)(getProcAddr("glGetActiveUniformBlockName"))
+ if gpGetActiveUniformBlockName == nil {
+ return errors.New("glGetActiveUniformBlockName")
+ }
+ gpGetActiveUniformBlockiv = (C.GPGETACTIVEUNIFORMBLOCKIV)(getProcAddr("glGetActiveUniformBlockiv"))
+ if gpGetActiveUniformBlockiv == nil {
+ return errors.New("glGetActiveUniformBlockiv")
+ }
+ gpGetActiveUniformName = (C.GPGETACTIVEUNIFORMNAME)(getProcAddr("glGetActiveUniformName"))
+ if gpGetActiveUniformName == nil {
+ return errors.New("glGetActiveUniformName")
+ }
+ gpGetActiveUniformsiv = (C.GPGETACTIVEUNIFORMSIV)(getProcAddr("glGetActiveUniformsiv"))
+ if gpGetActiveUniformsiv == nil {
+ return errors.New("glGetActiveUniformsiv")
+ }
+ gpGetAttachedShaders = (C.GPGETATTACHEDSHADERS)(getProcAddr("glGetAttachedShaders"))
+ if gpGetAttachedShaders == nil {
+ return errors.New("glGetAttachedShaders")
+ }
+ gpGetAttribLocation = (C.GPGETATTRIBLOCATION)(getProcAddr("glGetAttribLocation"))
+ if gpGetAttribLocation == nil {
+ return errors.New("glGetAttribLocation")
+ }
+ gpGetBooleanIndexedvEXT = (C.GPGETBOOLEANINDEXEDVEXT)(getProcAddr("glGetBooleanIndexedvEXT"))
+ gpGetBooleani_v = (C.GPGETBOOLEANI_V)(getProcAddr("glGetBooleani_v"))
+ if gpGetBooleani_v == nil {
+ return errors.New("glGetBooleani_v")
+ }
+ gpGetBooleanv = (C.GPGETBOOLEANV)(getProcAddr("glGetBooleanv"))
+ if gpGetBooleanv == nil {
+ return errors.New("glGetBooleanv")
+ }
+ gpGetBufferParameteri64v = (C.GPGETBUFFERPARAMETERI64V)(getProcAddr("glGetBufferParameteri64v"))
+ if gpGetBufferParameteri64v == nil {
+ return errors.New("glGetBufferParameteri64v")
+ }
+ gpGetBufferParameteriv = (C.GPGETBUFFERPARAMETERIV)(getProcAddr("glGetBufferParameteriv"))
+ if gpGetBufferParameteriv == nil {
+ return errors.New("glGetBufferParameteriv")
+ }
+ gpGetBufferParameterui64vNV = (C.GPGETBUFFERPARAMETERUI64VNV)(getProcAddr("glGetBufferParameterui64vNV"))
+ gpGetBufferPointerv = (C.GPGETBUFFERPOINTERV)(getProcAddr("glGetBufferPointerv"))
+ if gpGetBufferPointerv == nil {
+ return errors.New("glGetBufferPointerv")
+ }
+ gpGetBufferSubData = (C.GPGETBUFFERSUBDATA)(getProcAddr("glGetBufferSubData"))
+ if gpGetBufferSubData == nil {
+ return errors.New("glGetBufferSubData")
+ }
+ gpGetCommandHeaderNV = (C.GPGETCOMMANDHEADERNV)(getProcAddr("glGetCommandHeaderNV"))
+ gpGetCompressedMultiTexImageEXT = (C.GPGETCOMPRESSEDMULTITEXIMAGEEXT)(getProcAddr("glGetCompressedMultiTexImageEXT"))
+ gpGetCompressedTexImage = (C.GPGETCOMPRESSEDTEXIMAGE)(getProcAddr("glGetCompressedTexImage"))
+ if gpGetCompressedTexImage == nil {
+ return errors.New("glGetCompressedTexImage")
+ }
+ gpGetCompressedTextureImage = (C.GPGETCOMPRESSEDTEXTUREIMAGE)(getProcAddr("glGetCompressedTextureImage"))
+ gpGetCompressedTextureImageEXT = (C.GPGETCOMPRESSEDTEXTUREIMAGEEXT)(getProcAddr("glGetCompressedTextureImageEXT"))
+ gpGetCompressedTextureSubImage = (C.GPGETCOMPRESSEDTEXTURESUBIMAGE)(getProcAddr("glGetCompressedTextureSubImage"))
+ gpGetCoverageModulationTableNV = (C.GPGETCOVERAGEMODULATIONTABLENV)(getProcAddr("glGetCoverageModulationTableNV"))
+ gpGetDebugMessageLog = (C.GPGETDEBUGMESSAGELOG)(getProcAddr("glGetDebugMessageLog"))
+ gpGetDebugMessageLogARB = (C.GPGETDEBUGMESSAGELOGARB)(getProcAddr("glGetDebugMessageLogARB"))
+ gpGetDebugMessageLogKHR = (C.GPGETDEBUGMESSAGELOGKHR)(getProcAddr("glGetDebugMessageLogKHR"))
+ gpGetDoubleIndexedvEXT = (C.GPGETDOUBLEINDEXEDVEXT)(getProcAddr("glGetDoubleIndexedvEXT"))
+ gpGetDoublei_v = (C.GPGETDOUBLEI_V)(getProcAddr("glGetDoublei_v"))
+ gpGetDoublei_vEXT = (C.GPGETDOUBLEI_VEXT)(getProcAddr("glGetDoublei_vEXT"))
+ gpGetDoublev = (C.GPGETDOUBLEV)(getProcAddr("glGetDoublev"))
+ if gpGetDoublev == nil {
+ return errors.New("glGetDoublev")
+ }
+ gpGetError = (C.GPGETERROR)(getProcAddr("glGetError"))
+ if gpGetError == nil {
+ return errors.New("glGetError")
+ }
+ gpGetFirstPerfQueryIdINTEL = (C.GPGETFIRSTPERFQUERYIDINTEL)(getProcAddr("glGetFirstPerfQueryIdINTEL"))
+ gpGetFloatIndexedvEXT = (C.GPGETFLOATINDEXEDVEXT)(getProcAddr("glGetFloatIndexedvEXT"))
+ gpGetFloati_v = (C.GPGETFLOATI_V)(getProcAddr("glGetFloati_v"))
+ gpGetFloati_vEXT = (C.GPGETFLOATI_VEXT)(getProcAddr("glGetFloati_vEXT"))
+ gpGetFloatv = (C.GPGETFLOATV)(getProcAddr("glGetFloatv"))
+ if gpGetFloatv == nil {
+ return errors.New("glGetFloatv")
+ }
+ gpGetFragDataIndex = (C.GPGETFRAGDATAINDEX)(getProcAddr("glGetFragDataIndex"))
+ if gpGetFragDataIndex == nil {
+ return errors.New("glGetFragDataIndex")
+ }
+ gpGetFragDataLocation = (C.GPGETFRAGDATALOCATION)(getProcAddr("glGetFragDataLocation"))
+ if gpGetFragDataLocation == nil {
+ return errors.New("glGetFragDataLocation")
+ }
+ gpGetFramebufferAttachmentParameteriv = (C.GPGETFRAMEBUFFERATTACHMENTPARAMETERIV)(getProcAddr("glGetFramebufferAttachmentParameteriv"))
+ if gpGetFramebufferAttachmentParameteriv == nil {
+ return errors.New("glGetFramebufferAttachmentParameteriv")
+ }
+ gpGetFramebufferParameteriv = (C.GPGETFRAMEBUFFERPARAMETERIV)(getProcAddr("glGetFramebufferParameteriv"))
+ gpGetFramebufferParameterivEXT = (C.GPGETFRAMEBUFFERPARAMETERIVEXT)(getProcAddr("glGetFramebufferParameterivEXT"))
+ gpGetFramebufferParameterivMESA = (C.GPGETFRAMEBUFFERPARAMETERIVMESA)(getProcAddr("glGetFramebufferParameterivMESA"))
+ gpGetGraphicsResetStatus = (C.GPGETGRAPHICSRESETSTATUS)(getProcAddr("glGetGraphicsResetStatus"))
+ gpGetGraphicsResetStatusARB = (C.GPGETGRAPHICSRESETSTATUSARB)(getProcAddr("glGetGraphicsResetStatusARB"))
+ gpGetGraphicsResetStatusKHR = (C.GPGETGRAPHICSRESETSTATUSKHR)(getProcAddr("glGetGraphicsResetStatusKHR"))
+ gpGetImageHandleARB = (C.GPGETIMAGEHANDLEARB)(getProcAddr("glGetImageHandleARB"))
+ gpGetImageHandleNV = (C.GPGETIMAGEHANDLENV)(getProcAddr("glGetImageHandleNV"))
+ gpGetInteger64i_v = (C.GPGETINTEGER64I_V)(getProcAddr("glGetInteger64i_v"))
+ if gpGetInteger64i_v == nil {
+ return errors.New("glGetInteger64i_v")
+ }
+ gpGetInteger64v = (C.GPGETINTEGER64V)(getProcAddr("glGetInteger64v"))
+ if gpGetInteger64v == nil {
+ return errors.New("glGetInteger64v")
+ }
+ gpGetIntegerIndexedvEXT = (C.GPGETINTEGERINDEXEDVEXT)(getProcAddr("glGetIntegerIndexedvEXT"))
+ gpGetIntegeri_v = (C.GPGETINTEGERI_V)(getProcAddr("glGetIntegeri_v"))
+ if gpGetIntegeri_v == nil {
+ return errors.New("glGetIntegeri_v")
+ }
+ gpGetIntegerui64i_vNV = (C.GPGETINTEGERUI64I_VNV)(getProcAddr("glGetIntegerui64i_vNV"))
+ gpGetIntegerui64vNV = (C.GPGETINTEGERUI64VNV)(getProcAddr("glGetIntegerui64vNV"))
+ gpGetIntegerv = (C.GPGETINTEGERV)(getProcAddr("glGetIntegerv"))
+ if gpGetIntegerv == nil {
+ return errors.New("glGetIntegerv")
+ }
+ gpGetInternalformatSampleivNV = (C.GPGETINTERNALFORMATSAMPLEIVNV)(getProcAddr("glGetInternalformatSampleivNV"))
+ gpGetInternalformati64v = (C.GPGETINTERNALFORMATI64V)(getProcAddr("glGetInternalformati64v"))
+ gpGetInternalformativ = (C.GPGETINTERNALFORMATIV)(getProcAddr("glGetInternalformativ"))
+ gpGetMemoryObjectDetachedResourcesuivNV = (C.GPGETMEMORYOBJECTDETACHEDRESOURCESUIVNV)(getProcAddr("glGetMemoryObjectDetachedResourcesuivNV"))
+ gpGetMultiTexEnvfvEXT = (C.GPGETMULTITEXENVFVEXT)(getProcAddr("glGetMultiTexEnvfvEXT"))
+ gpGetMultiTexEnvivEXT = (C.GPGETMULTITEXENVIVEXT)(getProcAddr("glGetMultiTexEnvivEXT"))
+ gpGetMultiTexGendvEXT = (C.GPGETMULTITEXGENDVEXT)(getProcAddr("glGetMultiTexGendvEXT"))
+ gpGetMultiTexGenfvEXT = (C.GPGETMULTITEXGENFVEXT)(getProcAddr("glGetMultiTexGenfvEXT"))
+ gpGetMultiTexGenivEXT = (C.GPGETMULTITEXGENIVEXT)(getProcAddr("glGetMultiTexGenivEXT"))
+ gpGetMultiTexImageEXT = (C.GPGETMULTITEXIMAGEEXT)(getProcAddr("glGetMultiTexImageEXT"))
+ gpGetMultiTexLevelParameterfvEXT = (C.GPGETMULTITEXLEVELPARAMETERFVEXT)(getProcAddr("glGetMultiTexLevelParameterfvEXT"))
+ gpGetMultiTexLevelParameterivEXT = (C.GPGETMULTITEXLEVELPARAMETERIVEXT)(getProcAddr("glGetMultiTexLevelParameterivEXT"))
+ gpGetMultiTexParameterIivEXT = (C.GPGETMULTITEXPARAMETERIIVEXT)(getProcAddr("glGetMultiTexParameterIivEXT"))
+ gpGetMultiTexParameterIuivEXT = (C.GPGETMULTITEXPARAMETERIUIVEXT)(getProcAddr("glGetMultiTexParameterIuivEXT"))
+ gpGetMultiTexParameterfvEXT = (C.GPGETMULTITEXPARAMETERFVEXT)(getProcAddr("glGetMultiTexParameterfvEXT"))
+ gpGetMultiTexParameterivEXT = (C.GPGETMULTITEXPARAMETERIVEXT)(getProcAddr("glGetMultiTexParameterivEXT"))
+ gpGetMultisamplefv = (C.GPGETMULTISAMPLEFV)(getProcAddr("glGetMultisamplefv"))
+ if gpGetMultisamplefv == nil {
+ return errors.New("glGetMultisamplefv")
+ }
+ gpGetNamedBufferParameteri64v = (C.GPGETNAMEDBUFFERPARAMETERI64V)(getProcAddr("glGetNamedBufferParameteri64v"))
+ gpGetNamedBufferParameteriv = (C.GPGETNAMEDBUFFERPARAMETERIV)(getProcAddr("glGetNamedBufferParameteriv"))
+ gpGetNamedBufferParameterivEXT = (C.GPGETNAMEDBUFFERPARAMETERIVEXT)(getProcAddr("glGetNamedBufferParameterivEXT"))
+ gpGetNamedBufferParameterui64vNV = (C.GPGETNAMEDBUFFERPARAMETERUI64VNV)(getProcAddr("glGetNamedBufferParameterui64vNV"))
+ gpGetNamedBufferPointerv = (C.GPGETNAMEDBUFFERPOINTERV)(getProcAddr("glGetNamedBufferPointerv"))
+ gpGetNamedBufferPointervEXT = (C.GPGETNAMEDBUFFERPOINTERVEXT)(getProcAddr("glGetNamedBufferPointervEXT"))
+ gpGetNamedBufferSubData = (C.GPGETNAMEDBUFFERSUBDATA)(getProcAddr("glGetNamedBufferSubData"))
+ gpGetNamedBufferSubDataEXT = (C.GPGETNAMEDBUFFERSUBDATAEXT)(getProcAddr("glGetNamedBufferSubDataEXT"))
+ gpGetNamedFramebufferAttachmentParameteriv = (C.GPGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIV)(getProcAddr("glGetNamedFramebufferAttachmentParameteriv"))
+ gpGetNamedFramebufferAttachmentParameterivEXT = (C.GPGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXT)(getProcAddr("glGetNamedFramebufferAttachmentParameterivEXT"))
+ gpGetNamedFramebufferParameteriv = (C.GPGETNAMEDFRAMEBUFFERPARAMETERIV)(getProcAddr("glGetNamedFramebufferParameteriv"))
+ gpGetNamedFramebufferParameterivEXT = (C.GPGETNAMEDFRAMEBUFFERPARAMETERIVEXT)(getProcAddr("glGetNamedFramebufferParameterivEXT"))
+ gpGetNamedProgramLocalParameterIivEXT = (C.GPGETNAMEDPROGRAMLOCALPARAMETERIIVEXT)(getProcAddr("glGetNamedProgramLocalParameterIivEXT"))
+ gpGetNamedProgramLocalParameterIuivEXT = (C.GPGETNAMEDPROGRAMLOCALPARAMETERIUIVEXT)(getProcAddr("glGetNamedProgramLocalParameterIuivEXT"))
+ gpGetNamedProgramLocalParameterdvEXT = (C.GPGETNAMEDPROGRAMLOCALPARAMETERDVEXT)(getProcAddr("glGetNamedProgramLocalParameterdvEXT"))
+ gpGetNamedProgramLocalParameterfvEXT = (C.GPGETNAMEDPROGRAMLOCALPARAMETERFVEXT)(getProcAddr("glGetNamedProgramLocalParameterfvEXT"))
+ gpGetNamedProgramStringEXT = (C.GPGETNAMEDPROGRAMSTRINGEXT)(getProcAddr("glGetNamedProgramStringEXT"))
+ gpGetNamedProgramivEXT = (C.GPGETNAMEDPROGRAMIVEXT)(getProcAddr("glGetNamedProgramivEXT"))
+ gpGetNamedRenderbufferParameteriv = (C.GPGETNAMEDRENDERBUFFERPARAMETERIV)(getProcAddr("glGetNamedRenderbufferParameteriv"))
+ gpGetNamedRenderbufferParameterivEXT = (C.GPGETNAMEDRENDERBUFFERPARAMETERIVEXT)(getProcAddr("glGetNamedRenderbufferParameterivEXT"))
+ gpGetNamedStringARB = (C.GPGETNAMEDSTRINGARB)(getProcAddr("glGetNamedStringARB"))
+ gpGetNamedStringivARB = (C.GPGETNAMEDSTRINGIVARB)(getProcAddr("glGetNamedStringivARB"))
+ gpGetNextPerfQueryIdINTEL = (C.GPGETNEXTPERFQUERYIDINTEL)(getProcAddr("glGetNextPerfQueryIdINTEL"))
+ gpGetObjectLabel = (C.GPGETOBJECTLABEL)(getProcAddr("glGetObjectLabel"))
+ gpGetObjectLabelEXT = (C.GPGETOBJECTLABELEXT)(getProcAddr("glGetObjectLabelEXT"))
+ gpGetObjectLabelKHR = (C.GPGETOBJECTLABELKHR)(getProcAddr("glGetObjectLabelKHR"))
+ gpGetObjectPtrLabel = (C.GPGETOBJECTPTRLABEL)(getProcAddr("glGetObjectPtrLabel"))
+ gpGetObjectPtrLabelKHR = (C.GPGETOBJECTPTRLABELKHR)(getProcAddr("glGetObjectPtrLabelKHR"))
+ gpGetPathCommandsNV = (C.GPGETPATHCOMMANDSNV)(getProcAddr("glGetPathCommandsNV"))
+ gpGetPathCoordsNV = (C.GPGETPATHCOORDSNV)(getProcAddr("glGetPathCoordsNV"))
+ gpGetPathDashArrayNV = (C.GPGETPATHDASHARRAYNV)(getProcAddr("glGetPathDashArrayNV"))
+ gpGetPathLengthNV = (C.GPGETPATHLENGTHNV)(getProcAddr("glGetPathLengthNV"))
+ gpGetPathMetricRangeNV = (C.GPGETPATHMETRICRANGENV)(getProcAddr("glGetPathMetricRangeNV"))
+ gpGetPathMetricsNV = (C.GPGETPATHMETRICSNV)(getProcAddr("glGetPathMetricsNV"))
+ gpGetPathParameterfvNV = (C.GPGETPATHPARAMETERFVNV)(getProcAddr("glGetPathParameterfvNV"))
+ gpGetPathParameterivNV = (C.GPGETPATHPARAMETERIVNV)(getProcAddr("glGetPathParameterivNV"))
+ gpGetPathSpacingNV = (C.GPGETPATHSPACINGNV)(getProcAddr("glGetPathSpacingNV"))
+ gpGetPerfCounterInfoINTEL = (C.GPGETPERFCOUNTERINFOINTEL)(getProcAddr("glGetPerfCounterInfoINTEL"))
+ gpGetPerfMonitorCounterDataAMD = (C.GPGETPERFMONITORCOUNTERDATAAMD)(getProcAddr("glGetPerfMonitorCounterDataAMD"))
+ gpGetPerfMonitorCounterInfoAMD = (C.GPGETPERFMONITORCOUNTERINFOAMD)(getProcAddr("glGetPerfMonitorCounterInfoAMD"))
+ gpGetPerfMonitorCounterStringAMD = (C.GPGETPERFMONITORCOUNTERSTRINGAMD)(getProcAddr("glGetPerfMonitorCounterStringAMD"))
+ gpGetPerfMonitorCountersAMD = (C.GPGETPERFMONITORCOUNTERSAMD)(getProcAddr("glGetPerfMonitorCountersAMD"))
+ gpGetPerfMonitorGroupStringAMD = (C.GPGETPERFMONITORGROUPSTRINGAMD)(getProcAddr("glGetPerfMonitorGroupStringAMD"))
+ gpGetPerfMonitorGroupsAMD = (C.GPGETPERFMONITORGROUPSAMD)(getProcAddr("glGetPerfMonitorGroupsAMD"))
+ gpGetPerfQueryDataINTEL = (C.GPGETPERFQUERYDATAINTEL)(getProcAddr("glGetPerfQueryDataINTEL"))
+ gpGetPerfQueryIdByNameINTEL = (C.GPGETPERFQUERYIDBYNAMEINTEL)(getProcAddr("glGetPerfQueryIdByNameINTEL"))
+ gpGetPerfQueryInfoINTEL = (C.GPGETPERFQUERYINFOINTEL)(getProcAddr("glGetPerfQueryInfoINTEL"))
+ gpGetPointerIndexedvEXT = (C.GPGETPOINTERINDEXEDVEXT)(getProcAddr("glGetPointerIndexedvEXT"))
+ gpGetPointeri_vEXT = (C.GPGETPOINTERI_VEXT)(getProcAddr("glGetPointeri_vEXT"))
+ gpGetPointerv = (C.GPGETPOINTERV)(getProcAddr("glGetPointerv"))
+ gpGetPointervKHR = (C.GPGETPOINTERVKHR)(getProcAddr("glGetPointervKHR"))
+ gpGetProgramBinary = (C.GPGETPROGRAMBINARY)(getProcAddr("glGetProgramBinary"))
+ gpGetProgramInfoLog = (C.GPGETPROGRAMINFOLOG)(getProcAddr("glGetProgramInfoLog"))
+ if gpGetProgramInfoLog == nil {
+ return errors.New("glGetProgramInfoLog")
+ }
+ gpGetProgramInterfaceiv = (C.GPGETPROGRAMINTERFACEIV)(getProcAddr("glGetProgramInterfaceiv"))
+ gpGetProgramPipelineInfoLog = (C.GPGETPROGRAMPIPELINEINFOLOG)(getProcAddr("glGetProgramPipelineInfoLog"))
+ gpGetProgramPipelineInfoLogEXT = (C.GPGETPROGRAMPIPELINEINFOLOGEXT)(getProcAddr("glGetProgramPipelineInfoLogEXT"))
+ gpGetProgramPipelineiv = (C.GPGETPROGRAMPIPELINEIV)(getProcAddr("glGetProgramPipelineiv"))
+ gpGetProgramPipelineivEXT = (C.GPGETPROGRAMPIPELINEIVEXT)(getProcAddr("glGetProgramPipelineivEXT"))
+ gpGetProgramResourceIndex = (C.GPGETPROGRAMRESOURCEINDEX)(getProcAddr("glGetProgramResourceIndex"))
+ gpGetProgramResourceLocation = (C.GPGETPROGRAMRESOURCELOCATION)(getProcAddr("glGetProgramResourceLocation"))
+ gpGetProgramResourceLocationIndex = (C.GPGETPROGRAMRESOURCELOCATIONINDEX)(getProcAddr("glGetProgramResourceLocationIndex"))
+ gpGetProgramResourceName = (C.GPGETPROGRAMRESOURCENAME)(getProcAddr("glGetProgramResourceName"))
+ gpGetProgramResourcefvNV = (C.GPGETPROGRAMRESOURCEFVNV)(getProcAddr("glGetProgramResourcefvNV"))
+ gpGetProgramResourceiv = (C.GPGETPROGRAMRESOURCEIV)(getProcAddr("glGetProgramResourceiv"))
+ gpGetProgramStageiv = (C.GPGETPROGRAMSTAGEIV)(getProcAddr("glGetProgramStageiv"))
+ gpGetProgramiv = (C.GPGETPROGRAMIV)(getProcAddr("glGetProgramiv"))
+ if gpGetProgramiv == nil {
+ return errors.New("glGetProgramiv")
+ }
+ gpGetQueryBufferObjecti64v = (C.GPGETQUERYBUFFEROBJECTI64V)(getProcAddr("glGetQueryBufferObjecti64v"))
+ gpGetQueryBufferObjectiv = (C.GPGETQUERYBUFFEROBJECTIV)(getProcAddr("glGetQueryBufferObjectiv"))
+ gpGetQueryBufferObjectui64v = (C.GPGETQUERYBUFFEROBJECTUI64V)(getProcAddr("glGetQueryBufferObjectui64v"))
+ gpGetQueryBufferObjectuiv = (C.GPGETQUERYBUFFEROBJECTUIV)(getProcAddr("glGetQueryBufferObjectuiv"))
+ gpGetQueryIndexediv = (C.GPGETQUERYINDEXEDIV)(getProcAddr("glGetQueryIndexediv"))
+ gpGetQueryObjecti64v = (C.GPGETQUERYOBJECTI64V)(getProcAddr("glGetQueryObjecti64v"))
+ if gpGetQueryObjecti64v == nil {
+ return errors.New("glGetQueryObjecti64v")
+ }
+ gpGetQueryObjectiv = (C.GPGETQUERYOBJECTIV)(getProcAddr("glGetQueryObjectiv"))
+ if gpGetQueryObjectiv == nil {
+ return errors.New("glGetQueryObjectiv")
+ }
+ gpGetQueryObjectui64v = (C.GPGETQUERYOBJECTUI64V)(getProcAddr("glGetQueryObjectui64v"))
+ if gpGetQueryObjectui64v == nil {
+ return errors.New("glGetQueryObjectui64v")
+ }
+ gpGetQueryObjectuiv = (C.GPGETQUERYOBJECTUIV)(getProcAddr("glGetQueryObjectuiv"))
+ if gpGetQueryObjectuiv == nil {
+ return errors.New("glGetQueryObjectuiv")
+ }
+ gpGetQueryiv = (C.GPGETQUERYIV)(getProcAddr("glGetQueryiv"))
+ if gpGetQueryiv == nil {
+ return errors.New("glGetQueryiv")
+ }
+ gpGetRenderbufferParameteriv = (C.GPGETRENDERBUFFERPARAMETERIV)(getProcAddr("glGetRenderbufferParameteriv"))
+ if gpGetRenderbufferParameteriv == nil {
+ return errors.New("glGetRenderbufferParameteriv")
+ }
+ gpGetSamplerParameterIiv = (C.GPGETSAMPLERPARAMETERIIV)(getProcAddr("glGetSamplerParameterIiv"))
+ if gpGetSamplerParameterIiv == nil {
+ return errors.New("glGetSamplerParameterIiv")
+ }
+ gpGetSamplerParameterIuiv = (C.GPGETSAMPLERPARAMETERIUIV)(getProcAddr("glGetSamplerParameterIuiv"))
+ if gpGetSamplerParameterIuiv == nil {
+ return errors.New("glGetSamplerParameterIuiv")
+ }
+ gpGetSamplerParameterfv = (C.GPGETSAMPLERPARAMETERFV)(getProcAddr("glGetSamplerParameterfv"))
+ if gpGetSamplerParameterfv == nil {
+ return errors.New("glGetSamplerParameterfv")
+ }
+ gpGetSamplerParameteriv = (C.GPGETSAMPLERPARAMETERIV)(getProcAddr("glGetSamplerParameteriv"))
+ if gpGetSamplerParameteriv == nil {
+ return errors.New("glGetSamplerParameteriv")
+ }
+ gpGetShaderInfoLog = (C.GPGETSHADERINFOLOG)(getProcAddr("glGetShaderInfoLog"))
+ if gpGetShaderInfoLog == nil {
+ return errors.New("glGetShaderInfoLog")
+ }
+ gpGetShaderPrecisionFormat = (C.GPGETSHADERPRECISIONFORMAT)(getProcAddr("glGetShaderPrecisionFormat"))
+ gpGetShaderSource = (C.GPGETSHADERSOURCE)(getProcAddr("glGetShaderSource"))
+ if gpGetShaderSource == nil {
+ return errors.New("glGetShaderSource")
+ }
+ gpGetShaderiv = (C.GPGETSHADERIV)(getProcAddr("glGetShaderiv"))
+ if gpGetShaderiv == nil {
+ return errors.New("glGetShaderiv")
+ }
+ gpGetShadingRateImagePaletteNV = (C.GPGETSHADINGRATEIMAGEPALETTENV)(getProcAddr("glGetShadingRateImagePaletteNV"))
+ gpGetShadingRateSampleLocationivNV = (C.GPGETSHADINGRATESAMPLELOCATIONIVNV)(getProcAddr("glGetShadingRateSampleLocationivNV"))
+ gpGetStageIndexNV = (C.GPGETSTAGEINDEXNV)(getProcAddr("glGetStageIndexNV"))
+ gpGetString = (C.GPGETSTRING)(getProcAddr("glGetString"))
+ if gpGetString == nil {
+ return errors.New("glGetString")
+ }
+ gpGetStringi = (C.GPGETSTRINGI)(getProcAddr("glGetStringi"))
+ if gpGetStringi == nil {
+ return errors.New("glGetStringi")
+ }
+ gpGetSubroutineIndex = (C.GPGETSUBROUTINEINDEX)(getProcAddr("glGetSubroutineIndex"))
+ gpGetSubroutineUniformLocation = (C.GPGETSUBROUTINEUNIFORMLOCATION)(getProcAddr("glGetSubroutineUniformLocation"))
+ gpGetSynciv = (C.GPGETSYNCIV)(getProcAddr("glGetSynciv"))
+ if gpGetSynciv == nil {
+ return errors.New("glGetSynciv")
+ }
+ gpGetTexImage = (C.GPGETTEXIMAGE)(getProcAddr("glGetTexImage"))
+ if gpGetTexImage == nil {
+ return errors.New("glGetTexImage")
+ }
+ gpGetTexLevelParameterfv = (C.GPGETTEXLEVELPARAMETERFV)(getProcAddr("glGetTexLevelParameterfv"))
+ if gpGetTexLevelParameterfv == nil {
+ return errors.New("glGetTexLevelParameterfv")
+ }
+ gpGetTexLevelParameteriv = (C.GPGETTEXLEVELPARAMETERIV)(getProcAddr("glGetTexLevelParameteriv"))
+ if gpGetTexLevelParameteriv == nil {
+ return errors.New("glGetTexLevelParameteriv")
+ }
+ gpGetTexParameterIiv = (C.GPGETTEXPARAMETERIIV)(getProcAddr("glGetTexParameterIiv"))
+ if gpGetTexParameterIiv == nil {
+ return errors.New("glGetTexParameterIiv")
+ }
+ gpGetTexParameterIuiv = (C.GPGETTEXPARAMETERIUIV)(getProcAddr("glGetTexParameterIuiv"))
+ if gpGetTexParameterIuiv == nil {
+ return errors.New("glGetTexParameterIuiv")
+ }
+ gpGetTexParameterfv = (C.GPGETTEXPARAMETERFV)(getProcAddr("glGetTexParameterfv"))
+ if gpGetTexParameterfv == nil {
+ return errors.New("glGetTexParameterfv")
+ }
+ gpGetTexParameteriv = (C.GPGETTEXPARAMETERIV)(getProcAddr("glGetTexParameteriv"))
+ if gpGetTexParameteriv == nil {
+ return errors.New("glGetTexParameteriv")
+ }
+ gpGetTextureHandleARB = (C.GPGETTEXTUREHANDLEARB)(getProcAddr("glGetTextureHandleARB"))
+ gpGetTextureHandleNV = (C.GPGETTEXTUREHANDLENV)(getProcAddr("glGetTextureHandleNV"))
+ gpGetTextureImage = (C.GPGETTEXTUREIMAGE)(getProcAddr("glGetTextureImage"))
+ gpGetTextureImageEXT = (C.GPGETTEXTUREIMAGEEXT)(getProcAddr("glGetTextureImageEXT"))
+ gpGetTextureLevelParameterfv = (C.GPGETTEXTURELEVELPARAMETERFV)(getProcAddr("glGetTextureLevelParameterfv"))
+ gpGetTextureLevelParameterfvEXT = (C.GPGETTEXTURELEVELPARAMETERFVEXT)(getProcAddr("glGetTextureLevelParameterfvEXT"))
+ gpGetTextureLevelParameteriv = (C.GPGETTEXTURELEVELPARAMETERIV)(getProcAddr("glGetTextureLevelParameteriv"))
+ gpGetTextureLevelParameterivEXT = (C.GPGETTEXTURELEVELPARAMETERIVEXT)(getProcAddr("glGetTextureLevelParameterivEXT"))
+ gpGetTextureParameterIiv = (C.GPGETTEXTUREPARAMETERIIV)(getProcAddr("glGetTextureParameterIiv"))
+ gpGetTextureParameterIivEXT = (C.GPGETTEXTUREPARAMETERIIVEXT)(getProcAddr("glGetTextureParameterIivEXT"))
+ gpGetTextureParameterIuiv = (C.GPGETTEXTUREPARAMETERIUIV)(getProcAddr("glGetTextureParameterIuiv"))
+ gpGetTextureParameterIuivEXT = (C.GPGETTEXTUREPARAMETERIUIVEXT)(getProcAddr("glGetTextureParameterIuivEXT"))
+ gpGetTextureParameterfv = (C.GPGETTEXTUREPARAMETERFV)(getProcAddr("glGetTextureParameterfv"))
+ gpGetTextureParameterfvEXT = (C.GPGETTEXTUREPARAMETERFVEXT)(getProcAddr("glGetTextureParameterfvEXT"))
+ gpGetTextureParameteriv = (C.GPGETTEXTUREPARAMETERIV)(getProcAddr("glGetTextureParameteriv"))
+ gpGetTextureParameterivEXT = (C.GPGETTEXTUREPARAMETERIVEXT)(getProcAddr("glGetTextureParameterivEXT"))
+ gpGetTextureSamplerHandleARB = (C.GPGETTEXTURESAMPLERHANDLEARB)(getProcAddr("glGetTextureSamplerHandleARB"))
+ gpGetTextureSamplerHandleNV = (C.GPGETTEXTURESAMPLERHANDLENV)(getProcAddr("glGetTextureSamplerHandleNV"))
+ gpGetTextureSubImage = (C.GPGETTEXTURESUBIMAGE)(getProcAddr("glGetTextureSubImage"))
+ gpGetTransformFeedbackVarying = (C.GPGETTRANSFORMFEEDBACKVARYING)(getProcAddr("glGetTransformFeedbackVarying"))
+ if gpGetTransformFeedbackVarying == nil {
+ return errors.New("glGetTransformFeedbackVarying")
+ }
+ gpGetTransformFeedbacki64_v = (C.GPGETTRANSFORMFEEDBACKI64_V)(getProcAddr("glGetTransformFeedbacki64_v"))
+ gpGetTransformFeedbacki_v = (C.GPGETTRANSFORMFEEDBACKI_V)(getProcAddr("glGetTransformFeedbacki_v"))
+ gpGetTransformFeedbackiv = (C.GPGETTRANSFORMFEEDBACKIV)(getProcAddr("glGetTransformFeedbackiv"))
+ gpGetUniformBlockIndex = (C.GPGETUNIFORMBLOCKINDEX)(getProcAddr("glGetUniformBlockIndex"))
+ if gpGetUniformBlockIndex == nil {
+ return errors.New("glGetUniformBlockIndex")
+ }
+ gpGetUniformIndices = (C.GPGETUNIFORMINDICES)(getProcAddr("glGetUniformIndices"))
+ if gpGetUniformIndices == nil {
+ return errors.New("glGetUniformIndices")
+ }
+ gpGetUniformLocation = (C.GPGETUNIFORMLOCATION)(getProcAddr("glGetUniformLocation"))
+ if gpGetUniformLocation == nil {
+ return errors.New("glGetUniformLocation")
+ }
+ gpGetUniformSubroutineuiv = (C.GPGETUNIFORMSUBROUTINEUIV)(getProcAddr("glGetUniformSubroutineuiv"))
+ gpGetUniformdv = (C.GPGETUNIFORMDV)(getProcAddr("glGetUniformdv"))
+ gpGetUniformfv = (C.GPGETUNIFORMFV)(getProcAddr("glGetUniformfv"))
+ if gpGetUniformfv == nil {
+ return errors.New("glGetUniformfv")
+ }
+ gpGetUniformi64vARB = (C.GPGETUNIFORMI64VARB)(getProcAddr("glGetUniformi64vARB"))
+ gpGetUniformi64vNV = (C.GPGETUNIFORMI64VNV)(getProcAddr("glGetUniformi64vNV"))
+ gpGetUniformiv = (C.GPGETUNIFORMIV)(getProcAddr("glGetUniformiv"))
+ if gpGetUniformiv == nil {
+ return errors.New("glGetUniformiv")
+ }
+ gpGetUniformui64vARB = (C.GPGETUNIFORMUI64VARB)(getProcAddr("glGetUniformui64vARB"))
+ gpGetUniformui64vNV = (C.GPGETUNIFORMUI64VNV)(getProcAddr("glGetUniformui64vNV"))
+ gpGetUniformuiv = (C.GPGETUNIFORMUIV)(getProcAddr("glGetUniformuiv"))
+ if gpGetUniformuiv == nil {
+ return errors.New("glGetUniformuiv")
+ }
+ gpGetVertexArrayIndexed64iv = (C.GPGETVERTEXARRAYINDEXED64IV)(getProcAddr("glGetVertexArrayIndexed64iv"))
+ gpGetVertexArrayIndexediv = (C.GPGETVERTEXARRAYINDEXEDIV)(getProcAddr("glGetVertexArrayIndexediv"))
+ gpGetVertexArrayIntegeri_vEXT = (C.GPGETVERTEXARRAYINTEGERI_VEXT)(getProcAddr("glGetVertexArrayIntegeri_vEXT"))
+ gpGetVertexArrayIntegervEXT = (C.GPGETVERTEXARRAYINTEGERVEXT)(getProcAddr("glGetVertexArrayIntegervEXT"))
+ gpGetVertexArrayPointeri_vEXT = (C.GPGETVERTEXARRAYPOINTERI_VEXT)(getProcAddr("glGetVertexArrayPointeri_vEXT"))
+ gpGetVertexArrayPointervEXT = (C.GPGETVERTEXARRAYPOINTERVEXT)(getProcAddr("glGetVertexArrayPointervEXT"))
+ gpGetVertexArrayiv = (C.GPGETVERTEXARRAYIV)(getProcAddr("glGetVertexArrayiv"))
+ gpGetVertexAttribIiv = (C.GPGETVERTEXATTRIBIIV)(getProcAddr("glGetVertexAttribIiv"))
+ if gpGetVertexAttribIiv == nil {
+ return errors.New("glGetVertexAttribIiv")
+ }
+ gpGetVertexAttribIuiv = (C.GPGETVERTEXATTRIBIUIV)(getProcAddr("glGetVertexAttribIuiv"))
+ if gpGetVertexAttribIuiv == nil {
+ return errors.New("glGetVertexAttribIuiv")
+ }
+ gpGetVertexAttribLdv = (C.GPGETVERTEXATTRIBLDV)(getProcAddr("glGetVertexAttribLdv"))
+ gpGetVertexAttribLi64vNV = (C.GPGETVERTEXATTRIBLI64VNV)(getProcAddr("glGetVertexAttribLi64vNV"))
+ gpGetVertexAttribLui64vARB = (C.GPGETVERTEXATTRIBLUI64VARB)(getProcAddr("glGetVertexAttribLui64vARB"))
+ gpGetVertexAttribLui64vNV = (C.GPGETVERTEXATTRIBLUI64VNV)(getProcAddr("glGetVertexAttribLui64vNV"))
+ gpGetVertexAttribPointerv = (C.GPGETVERTEXATTRIBPOINTERV)(getProcAddr("glGetVertexAttribPointerv"))
+ if gpGetVertexAttribPointerv == nil {
+ return errors.New("glGetVertexAttribPointerv")
+ }
+ gpGetVertexAttribdv = (C.GPGETVERTEXATTRIBDV)(getProcAddr("glGetVertexAttribdv"))
+ if gpGetVertexAttribdv == nil {
+ return errors.New("glGetVertexAttribdv")
+ }
+ gpGetVertexAttribfv = (C.GPGETVERTEXATTRIBFV)(getProcAddr("glGetVertexAttribfv"))
+ if gpGetVertexAttribfv == nil {
+ return errors.New("glGetVertexAttribfv")
+ }
+ gpGetVertexAttribiv = (C.GPGETVERTEXATTRIBIV)(getProcAddr("glGetVertexAttribiv"))
+ if gpGetVertexAttribiv == nil {
+ return errors.New("glGetVertexAttribiv")
+ }
+ gpGetVkProcAddrNV = (C.GPGETVKPROCADDRNV)(getProcAddr("glGetVkProcAddrNV"))
+ gpGetnCompressedTexImageARB = (C.GPGETNCOMPRESSEDTEXIMAGEARB)(getProcAddr("glGetnCompressedTexImageARB"))
+ gpGetnTexImageARB = (C.GPGETNTEXIMAGEARB)(getProcAddr("glGetnTexImageARB"))
+ gpGetnUniformdvARB = (C.GPGETNUNIFORMDVARB)(getProcAddr("glGetnUniformdvARB"))
+ gpGetnUniformfv = (C.GPGETNUNIFORMFV)(getProcAddr("glGetnUniformfv"))
+ gpGetnUniformfvARB = (C.GPGETNUNIFORMFVARB)(getProcAddr("glGetnUniformfvARB"))
+ gpGetnUniformfvKHR = (C.GPGETNUNIFORMFVKHR)(getProcAddr("glGetnUniformfvKHR"))
+ gpGetnUniformi64vARB = (C.GPGETNUNIFORMI64VARB)(getProcAddr("glGetnUniformi64vARB"))
+ gpGetnUniformiv = (C.GPGETNUNIFORMIV)(getProcAddr("glGetnUniformiv"))
+ gpGetnUniformivARB = (C.GPGETNUNIFORMIVARB)(getProcAddr("glGetnUniformivARB"))
+ gpGetnUniformivKHR = (C.GPGETNUNIFORMIVKHR)(getProcAddr("glGetnUniformivKHR"))
+ gpGetnUniformui64vARB = (C.GPGETNUNIFORMUI64VARB)(getProcAddr("glGetnUniformui64vARB"))
+ gpGetnUniformuiv = (C.GPGETNUNIFORMUIV)(getProcAddr("glGetnUniformuiv"))
+ gpGetnUniformuivARB = (C.GPGETNUNIFORMUIVARB)(getProcAddr("glGetnUniformuivARB"))
+ gpGetnUniformuivKHR = (C.GPGETNUNIFORMUIVKHR)(getProcAddr("glGetnUniformuivKHR"))
+ gpHint = (C.GPHINT)(getProcAddr("glHint"))
+ if gpHint == nil {
+ return errors.New("glHint")
+ }
+ gpIndexFormatNV = (C.GPINDEXFORMATNV)(getProcAddr("glIndexFormatNV"))
+ gpInsertEventMarkerEXT = (C.GPINSERTEVENTMARKEREXT)(getProcAddr("glInsertEventMarkerEXT"))
+ gpInterpolatePathsNV = (C.GPINTERPOLATEPATHSNV)(getProcAddr("glInterpolatePathsNV"))
+ gpInvalidateBufferData = (C.GPINVALIDATEBUFFERDATA)(getProcAddr("glInvalidateBufferData"))
+ gpInvalidateBufferSubData = (C.GPINVALIDATEBUFFERSUBDATA)(getProcAddr("glInvalidateBufferSubData"))
+ gpInvalidateFramebuffer = (C.GPINVALIDATEFRAMEBUFFER)(getProcAddr("glInvalidateFramebuffer"))
+ gpInvalidateNamedFramebufferData = (C.GPINVALIDATENAMEDFRAMEBUFFERDATA)(getProcAddr("glInvalidateNamedFramebufferData"))
+ gpInvalidateNamedFramebufferSubData = (C.GPINVALIDATENAMEDFRAMEBUFFERSUBDATA)(getProcAddr("glInvalidateNamedFramebufferSubData"))
+ gpInvalidateSubFramebuffer = (C.GPINVALIDATESUBFRAMEBUFFER)(getProcAddr("glInvalidateSubFramebuffer"))
+ gpInvalidateTexImage = (C.GPINVALIDATETEXIMAGE)(getProcAddr("glInvalidateTexImage"))
+ gpInvalidateTexSubImage = (C.GPINVALIDATETEXSUBIMAGE)(getProcAddr("glInvalidateTexSubImage"))
+ gpIsBuffer = (C.GPISBUFFER)(getProcAddr("glIsBuffer"))
+ if gpIsBuffer == nil {
+ return errors.New("glIsBuffer")
+ }
+ gpIsBufferResidentNV = (C.GPISBUFFERRESIDENTNV)(getProcAddr("glIsBufferResidentNV"))
+ gpIsCommandListNV = (C.GPISCOMMANDLISTNV)(getProcAddr("glIsCommandListNV"))
+ gpIsEnabled = (C.GPISENABLED)(getProcAddr("glIsEnabled"))
+ if gpIsEnabled == nil {
+ return errors.New("glIsEnabled")
+ }
+ gpIsEnabledIndexedEXT = (C.GPISENABLEDINDEXEDEXT)(getProcAddr("glIsEnabledIndexedEXT"))
+ gpIsEnabledi = (C.GPISENABLEDI)(getProcAddr("glIsEnabledi"))
+ if gpIsEnabledi == nil {
+ return errors.New("glIsEnabledi")
+ }
+ gpIsFramebuffer = (C.GPISFRAMEBUFFER)(getProcAddr("glIsFramebuffer"))
+ if gpIsFramebuffer == nil {
+ return errors.New("glIsFramebuffer")
+ }
+ gpIsImageHandleResidentARB = (C.GPISIMAGEHANDLERESIDENTARB)(getProcAddr("glIsImageHandleResidentARB"))
+ gpIsImageHandleResidentNV = (C.GPISIMAGEHANDLERESIDENTNV)(getProcAddr("glIsImageHandleResidentNV"))
+ gpIsNamedBufferResidentNV = (C.GPISNAMEDBUFFERRESIDENTNV)(getProcAddr("glIsNamedBufferResidentNV"))
+ gpIsNamedStringARB = (C.GPISNAMEDSTRINGARB)(getProcAddr("glIsNamedStringARB"))
+ gpIsPathNV = (C.GPISPATHNV)(getProcAddr("glIsPathNV"))
+ gpIsPointInFillPathNV = (C.GPISPOINTINFILLPATHNV)(getProcAddr("glIsPointInFillPathNV"))
+ gpIsPointInStrokePathNV = (C.GPISPOINTINSTROKEPATHNV)(getProcAddr("glIsPointInStrokePathNV"))
+ gpIsProgram = (C.GPISPROGRAM)(getProcAddr("glIsProgram"))
+ if gpIsProgram == nil {
+ return errors.New("glIsProgram")
+ }
+ gpIsProgramPipeline = (C.GPISPROGRAMPIPELINE)(getProcAddr("glIsProgramPipeline"))
+ gpIsProgramPipelineEXT = (C.GPISPROGRAMPIPELINEEXT)(getProcAddr("glIsProgramPipelineEXT"))
+ gpIsQuery = (C.GPISQUERY)(getProcAddr("glIsQuery"))
+ if gpIsQuery == nil {
+ return errors.New("glIsQuery")
+ }
+ gpIsRenderbuffer = (C.GPISRENDERBUFFER)(getProcAddr("glIsRenderbuffer"))
+ if gpIsRenderbuffer == nil {
+ return errors.New("glIsRenderbuffer")
+ }
+ gpIsSampler = (C.GPISSAMPLER)(getProcAddr("glIsSampler"))
+ if gpIsSampler == nil {
+ return errors.New("glIsSampler")
+ }
+ gpIsShader = (C.GPISSHADER)(getProcAddr("glIsShader"))
+ if gpIsShader == nil {
+ return errors.New("glIsShader")
+ }
+ gpIsStateNV = (C.GPISSTATENV)(getProcAddr("glIsStateNV"))
+ gpIsSync = (C.GPISSYNC)(getProcAddr("glIsSync"))
+ if gpIsSync == nil {
+ return errors.New("glIsSync")
+ }
+ gpIsTexture = (C.GPISTEXTURE)(getProcAddr("glIsTexture"))
+ if gpIsTexture == nil {
+ return errors.New("glIsTexture")
+ }
+ gpIsTextureHandleResidentARB = (C.GPISTEXTUREHANDLERESIDENTARB)(getProcAddr("glIsTextureHandleResidentARB"))
+ gpIsTextureHandleResidentNV = (C.GPISTEXTUREHANDLERESIDENTNV)(getProcAddr("glIsTextureHandleResidentNV"))
+ gpIsTransformFeedback = (C.GPISTRANSFORMFEEDBACK)(getProcAddr("glIsTransformFeedback"))
+ gpIsVertexArray = (C.GPISVERTEXARRAY)(getProcAddr("glIsVertexArray"))
+ if gpIsVertexArray == nil {
+ return errors.New("glIsVertexArray")
+ }
+ gpLabelObjectEXT = (C.GPLABELOBJECTEXT)(getProcAddr("glLabelObjectEXT"))
+ gpLineWidth = (C.GPLINEWIDTH)(getProcAddr("glLineWidth"))
+ if gpLineWidth == nil {
+ return errors.New("glLineWidth")
+ }
+ gpLinkProgram = (C.GPLINKPROGRAM)(getProcAddr("glLinkProgram"))
+ if gpLinkProgram == nil {
+ return errors.New("glLinkProgram")
+ }
+ gpListDrawCommandsStatesClientNV = (C.GPLISTDRAWCOMMANDSSTATESCLIENTNV)(getProcAddr("glListDrawCommandsStatesClientNV"))
+ gpLogicOp = (C.GPLOGICOP)(getProcAddr("glLogicOp"))
+ if gpLogicOp == nil {
+ return errors.New("glLogicOp")
+ }
+ gpMakeBufferNonResidentNV = (C.GPMAKEBUFFERNONRESIDENTNV)(getProcAddr("glMakeBufferNonResidentNV"))
+ gpMakeBufferResidentNV = (C.GPMAKEBUFFERRESIDENTNV)(getProcAddr("glMakeBufferResidentNV"))
+ gpMakeImageHandleNonResidentARB = (C.GPMAKEIMAGEHANDLENONRESIDENTARB)(getProcAddr("glMakeImageHandleNonResidentARB"))
+ gpMakeImageHandleNonResidentNV = (C.GPMAKEIMAGEHANDLENONRESIDENTNV)(getProcAddr("glMakeImageHandleNonResidentNV"))
+ gpMakeImageHandleResidentARB = (C.GPMAKEIMAGEHANDLERESIDENTARB)(getProcAddr("glMakeImageHandleResidentARB"))
+ gpMakeImageHandleResidentNV = (C.GPMAKEIMAGEHANDLERESIDENTNV)(getProcAddr("glMakeImageHandleResidentNV"))
+ gpMakeNamedBufferNonResidentNV = (C.GPMAKENAMEDBUFFERNONRESIDENTNV)(getProcAddr("glMakeNamedBufferNonResidentNV"))
+ gpMakeNamedBufferResidentNV = (C.GPMAKENAMEDBUFFERRESIDENTNV)(getProcAddr("glMakeNamedBufferResidentNV"))
+ gpMakeTextureHandleNonResidentARB = (C.GPMAKETEXTUREHANDLENONRESIDENTARB)(getProcAddr("glMakeTextureHandleNonResidentARB"))
+ gpMakeTextureHandleNonResidentNV = (C.GPMAKETEXTUREHANDLENONRESIDENTNV)(getProcAddr("glMakeTextureHandleNonResidentNV"))
+ gpMakeTextureHandleResidentARB = (C.GPMAKETEXTUREHANDLERESIDENTARB)(getProcAddr("glMakeTextureHandleResidentARB"))
+ gpMakeTextureHandleResidentNV = (C.GPMAKETEXTUREHANDLERESIDENTNV)(getProcAddr("glMakeTextureHandleResidentNV"))
+ gpMapBuffer = (C.GPMAPBUFFER)(getProcAddr("glMapBuffer"))
+ if gpMapBuffer == nil {
+ return errors.New("glMapBuffer")
+ }
+ gpMapBufferRange = (C.GPMAPBUFFERRANGE)(getProcAddr("glMapBufferRange"))
+ if gpMapBufferRange == nil {
+ return errors.New("glMapBufferRange")
+ }
+ gpMapNamedBuffer = (C.GPMAPNAMEDBUFFER)(getProcAddr("glMapNamedBuffer"))
+ gpMapNamedBufferEXT = (C.GPMAPNAMEDBUFFEREXT)(getProcAddr("glMapNamedBufferEXT"))
+ gpMapNamedBufferRange = (C.GPMAPNAMEDBUFFERRANGE)(getProcAddr("glMapNamedBufferRange"))
+ gpMapNamedBufferRangeEXT = (C.GPMAPNAMEDBUFFERRANGEEXT)(getProcAddr("glMapNamedBufferRangeEXT"))
+ gpMatrixFrustumEXT = (C.GPMATRIXFRUSTUMEXT)(getProcAddr("glMatrixFrustumEXT"))
+ gpMatrixLoad3x2fNV = (C.GPMATRIXLOAD3X2FNV)(getProcAddr("glMatrixLoad3x2fNV"))
+ gpMatrixLoad3x3fNV = (C.GPMATRIXLOAD3X3FNV)(getProcAddr("glMatrixLoad3x3fNV"))
+ gpMatrixLoadIdentityEXT = (C.GPMATRIXLOADIDENTITYEXT)(getProcAddr("glMatrixLoadIdentityEXT"))
+ gpMatrixLoadTranspose3x3fNV = (C.GPMATRIXLOADTRANSPOSE3X3FNV)(getProcAddr("glMatrixLoadTranspose3x3fNV"))
+ gpMatrixLoadTransposedEXT = (C.GPMATRIXLOADTRANSPOSEDEXT)(getProcAddr("glMatrixLoadTransposedEXT"))
+ gpMatrixLoadTransposefEXT = (C.GPMATRIXLOADTRANSPOSEFEXT)(getProcAddr("glMatrixLoadTransposefEXT"))
+ gpMatrixLoaddEXT = (C.GPMATRIXLOADDEXT)(getProcAddr("glMatrixLoaddEXT"))
+ gpMatrixLoadfEXT = (C.GPMATRIXLOADFEXT)(getProcAddr("glMatrixLoadfEXT"))
+ gpMatrixMult3x2fNV = (C.GPMATRIXMULT3X2FNV)(getProcAddr("glMatrixMult3x2fNV"))
+ gpMatrixMult3x3fNV = (C.GPMATRIXMULT3X3FNV)(getProcAddr("glMatrixMult3x3fNV"))
+ gpMatrixMultTranspose3x3fNV = (C.GPMATRIXMULTTRANSPOSE3X3FNV)(getProcAddr("glMatrixMultTranspose3x3fNV"))
+ gpMatrixMultTransposedEXT = (C.GPMATRIXMULTTRANSPOSEDEXT)(getProcAddr("glMatrixMultTransposedEXT"))
+ gpMatrixMultTransposefEXT = (C.GPMATRIXMULTTRANSPOSEFEXT)(getProcAddr("glMatrixMultTransposefEXT"))
+ gpMatrixMultdEXT = (C.GPMATRIXMULTDEXT)(getProcAddr("glMatrixMultdEXT"))
+ gpMatrixMultfEXT = (C.GPMATRIXMULTFEXT)(getProcAddr("glMatrixMultfEXT"))
+ gpMatrixOrthoEXT = (C.GPMATRIXORTHOEXT)(getProcAddr("glMatrixOrthoEXT"))
+ gpMatrixPopEXT = (C.GPMATRIXPOPEXT)(getProcAddr("glMatrixPopEXT"))
+ gpMatrixPushEXT = (C.GPMATRIXPUSHEXT)(getProcAddr("glMatrixPushEXT"))
+ gpMatrixRotatedEXT = (C.GPMATRIXROTATEDEXT)(getProcAddr("glMatrixRotatedEXT"))
+ gpMatrixRotatefEXT = (C.GPMATRIXROTATEFEXT)(getProcAddr("glMatrixRotatefEXT"))
+ gpMatrixScaledEXT = (C.GPMATRIXSCALEDEXT)(getProcAddr("glMatrixScaledEXT"))
+ gpMatrixScalefEXT = (C.GPMATRIXSCALEFEXT)(getProcAddr("glMatrixScalefEXT"))
+ gpMatrixTranslatedEXT = (C.GPMATRIXTRANSLATEDEXT)(getProcAddr("glMatrixTranslatedEXT"))
+ gpMatrixTranslatefEXT = (C.GPMATRIXTRANSLATEFEXT)(getProcAddr("glMatrixTranslatefEXT"))
+ gpMaxShaderCompilerThreadsARB = (C.GPMAXSHADERCOMPILERTHREADSARB)(getProcAddr("glMaxShaderCompilerThreadsARB"))
+ gpMaxShaderCompilerThreadsKHR = (C.GPMAXSHADERCOMPILERTHREADSKHR)(getProcAddr("glMaxShaderCompilerThreadsKHR"))
+ gpMemoryBarrier = (C.GPMEMORYBARRIER)(getProcAddr("glMemoryBarrier"))
+ gpMemoryBarrierByRegion = (C.GPMEMORYBARRIERBYREGION)(getProcAddr("glMemoryBarrierByRegion"))
+ gpMinSampleShadingARB = (C.GPMINSAMPLESHADINGARB)(getProcAddr("glMinSampleShadingARB"))
+ gpMultiDrawArrays = (C.GPMULTIDRAWARRAYS)(getProcAddr("glMultiDrawArrays"))
+ if gpMultiDrawArrays == nil {
+ return errors.New("glMultiDrawArrays")
+ }
+ gpMultiDrawArraysIndirect = (C.GPMULTIDRAWARRAYSINDIRECT)(getProcAddr("glMultiDrawArraysIndirect"))
+ gpMultiDrawArraysIndirectBindlessCountNV = (C.GPMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNV)(getProcAddr("glMultiDrawArraysIndirectBindlessCountNV"))
+ gpMultiDrawArraysIndirectBindlessNV = (C.GPMULTIDRAWARRAYSINDIRECTBINDLESSNV)(getProcAddr("glMultiDrawArraysIndirectBindlessNV"))
+ gpMultiDrawArraysIndirectCountARB = (C.GPMULTIDRAWARRAYSINDIRECTCOUNTARB)(getProcAddr("glMultiDrawArraysIndirectCountARB"))
+ gpMultiDrawElements = (C.GPMULTIDRAWELEMENTS)(getProcAddr("glMultiDrawElements"))
+ if gpMultiDrawElements == nil {
+ return errors.New("glMultiDrawElements")
+ }
+ gpMultiDrawElementsBaseVertex = (C.GPMULTIDRAWELEMENTSBASEVERTEX)(getProcAddr("glMultiDrawElementsBaseVertex"))
+ if gpMultiDrawElementsBaseVertex == nil {
+ return errors.New("glMultiDrawElementsBaseVertex")
+ }
+ gpMultiDrawElementsIndirect = (C.GPMULTIDRAWELEMENTSINDIRECT)(getProcAddr("glMultiDrawElementsIndirect"))
+ gpMultiDrawElementsIndirectBindlessCountNV = (C.GPMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNV)(getProcAddr("glMultiDrawElementsIndirectBindlessCountNV"))
+ gpMultiDrawElementsIndirectBindlessNV = (C.GPMULTIDRAWELEMENTSINDIRECTBINDLESSNV)(getProcAddr("glMultiDrawElementsIndirectBindlessNV"))
+ gpMultiDrawElementsIndirectCountARB = (C.GPMULTIDRAWELEMENTSINDIRECTCOUNTARB)(getProcAddr("glMultiDrawElementsIndirectCountARB"))
+ gpMultiDrawMeshTasksIndirectCountNV = (C.GPMULTIDRAWMESHTASKSINDIRECTCOUNTNV)(getProcAddr("glMultiDrawMeshTasksIndirectCountNV"))
+ gpMultiDrawMeshTasksIndirectNV = (C.GPMULTIDRAWMESHTASKSINDIRECTNV)(getProcAddr("glMultiDrawMeshTasksIndirectNV"))
+ gpMultiTexBufferEXT = (C.GPMULTITEXBUFFEREXT)(getProcAddr("glMultiTexBufferEXT"))
+ gpMultiTexCoordPointerEXT = (C.GPMULTITEXCOORDPOINTEREXT)(getProcAddr("glMultiTexCoordPointerEXT"))
+ gpMultiTexEnvfEXT = (C.GPMULTITEXENVFEXT)(getProcAddr("glMultiTexEnvfEXT"))
+ gpMultiTexEnvfvEXT = (C.GPMULTITEXENVFVEXT)(getProcAddr("glMultiTexEnvfvEXT"))
+ gpMultiTexEnviEXT = (C.GPMULTITEXENVIEXT)(getProcAddr("glMultiTexEnviEXT"))
+ gpMultiTexEnvivEXT = (C.GPMULTITEXENVIVEXT)(getProcAddr("glMultiTexEnvivEXT"))
+ gpMultiTexGendEXT = (C.GPMULTITEXGENDEXT)(getProcAddr("glMultiTexGendEXT"))
+ gpMultiTexGendvEXT = (C.GPMULTITEXGENDVEXT)(getProcAddr("glMultiTexGendvEXT"))
+ gpMultiTexGenfEXT = (C.GPMULTITEXGENFEXT)(getProcAddr("glMultiTexGenfEXT"))
+ gpMultiTexGenfvEXT = (C.GPMULTITEXGENFVEXT)(getProcAddr("glMultiTexGenfvEXT"))
+ gpMultiTexGeniEXT = (C.GPMULTITEXGENIEXT)(getProcAddr("glMultiTexGeniEXT"))
+ gpMultiTexGenivEXT = (C.GPMULTITEXGENIVEXT)(getProcAddr("glMultiTexGenivEXT"))
+ gpMultiTexImage1DEXT = (C.GPMULTITEXIMAGE1DEXT)(getProcAddr("glMultiTexImage1DEXT"))
+ gpMultiTexImage2DEXT = (C.GPMULTITEXIMAGE2DEXT)(getProcAddr("glMultiTexImage2DEXT"))
+ gpMultiTexImage3DEXT = (C.GPMULTITEXIMAGE3DEXT)(getProcAddr("glMultiTexImage3DEXT"))
+ gpMultiTexParameterIivEXT = (C.GPMULTITEXPARAMETERIIVEXT)(getProcAddr("glMultiTexParameterIivEXT"))
+ gpMultiTexParameterIuivEXT = (C.GPMULTITEXPARAMETERIUIVEXT)(getProcAddr("glMultiTexParameterIuivEXT"))
+ gpMultiTexParameterfEXT = (C.GPMULTITEXPARAMETERFEXT)(getProcAddr("glMultiTexParameterfEXT"))
+ gpMultiTexParameterfvEXT = (C.GPMULTITEXPARAMETERFVEXT)(getProcAddr("glMultiTexParameterfvEXT"))
+ gpMultiTexParameteriEXT = (C.GPMULTITEXPARAMETERIEXT)(getProcAddr("glMultiTexParameteriEXT"))
+ gpMultiTexParameterivEXT = (C.GPMULTITEXPARAMETERIVEXT)(getProcAddr("glMultiTexParameterivEXT"))
+ gpMultiTexRenderbufferEXT = (C.GPMULTITEXRENDERBUFFEREXT)(getProcAddr("glMultiTexRenderbufferEXT"))
+ gpMultiTexSubImage1DEXT = (C.GPMULTITEXSUBIMAGE1DEXT)(getProcAddr("glMultiTexSubImage1DEXT"))
+ gpMultiTexSubImage2DEXT = (C.GPMULTITEXSUBIMAGE2DEXT)(getProcAddr("glMultiTexSubImage2DEXT"))
+ gpMultiTexSubImage3DEXT = (C.GPMULTITEXSUBIMAGE3DEXT)(getProcAddr("glMultiTexSubImage3DEXT"))
+ gpNamedBufferAttachMemoryNV = (C.GPNAMEDBUFFERATTACHMEMORYNV)(getProcAddr("glNamedBufferAttachMemoryNV"))
+ gpNamedBufferData = (C.GPNAMEDBUFFERDATA)(getProcAddr("glNamedBufferData"))
+ gpNamedBufferDataEXT = (C.GPNAMEDBUFFERDATAEXT)(getProcAddr("glNamedBufferDataEXT"))
+ gpNamedBufferPageCommitmentARB = (C.GPNAMEDBUFFERPAGECOMMITMENTARB)(getProcAddr("glNamedBufferPageCommitmentARB"))
+ gpNamedBufferPageCommitmentEXT = (C.GPNAMEDBUFFERPAGECOMMITMENTEXT)(getProcAddr("glNamedBufferPageCommitmentEXT"))
+ gpNamedBufferPageCommitmentMemNV = (C.GPNAMEDBUFFERPAGECOMMITMENTMEMNV)(getProcAddr("glNamedBufferPageCommitmentMemNV"))
+ gpNamedBufferStorage = (C.GPNAMEDBUFFERSTORAGE)(getProcAddr("glNamedBufferStorage"))
+ gpNamedBufferStorageEXT = (C.GPNAMEDBUFFERSTORAGEEXT)(getProcAddr("glNamedBufferStorageEXT"))
+ gpNamedBufferSubData = (C.GPNAMEDBUFFERSUBDATA)(getProcAddr("glNamedBufferSubData"))
+ gpNamedBufferSubDataEXT = (C.GPNAMEDBUFFERSUBDATAEXT)(getProcAddr("glNamedBufferSubDataEXT"))
+ gpNamedCopyBufferSubDataEXT = (C.GPNAMEDCOPYBUFFERSUBDATAEXT)(getProcAddr("glNamedCopyBufferSubDataEXT"))
+ gpNamedFramebufferDrawBuffer = (C.GPNAMEDFRAMEBUFFERDRAWBUFFER)(getProcAddr("glNamedFramebufferDrawBuffer"))
+ gpNamedFramebufferDrawBuffers = (C.GPNAMEDFRAMEBUFFERDRAWBUFFERS)(getProcAddr("glNamedFramebufferDrawBuffers"))
+ gpNamedFramebufferParameteri = (C.GPNAMEDFRAMEBUFFERPARAMETERI)(getProcAddr("glNamedFramebufferParameteri"))
+ gpNamedFramebufferParameteriEXT = (C.GPNAMEDFRAMEBUFFERPARAMETERIEXT)(getProcAddr("glNamedFramebufferParameteriEXT"))
+ gpNamedFramebufferReadBuffer = (C.GPNAMEDFRAMEBUFFERREADBUFFER)(getProcAddr("glNamedFramebufferReadBuffer"))
+ gpNamedFramebufferRenderbuffer = (C.GPNAMEDFRAMEBUFFERRENDERBUFFER)(getProcAddr("glNamedFramebufferRenderbuffer"))
+ gpNamedFramebufferRenderbufferEXT = (C.GPNAMEDFRAMEBUFFERRENDERBUFFEREXT)(getProcAddr("glNamedFramebufferRenderbufferEXT"))
+ gpNamedFramebufferSampleLocationsfvARB = (C.GPNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARB)(getProcAddr("glNamedFramebufferSampleLocationsfvARB"))
+ gpNamedFramebufferSampleLocationsfvNV = (C.GPNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNV)(getProcAddr("glNamedFramebufferSampleLocationsfvNV"))
+ gpNamedFramebufferTexture = (C.GPNAMEDFRAMEBUFFERTEXTURE)(getProcAddr("glNamedFramebufferTexture"))
+ gpNamedFramebufferTexture1DEXT = (C.GPNAMEDFRAMEBUFFERTEXTURE1DEXT)(getProcAddr("glNamedFramebufferTexture1DEXT"))
+ gpNamedFramebufferTexture2DEXT = (C.GPNAMEDFRAMEBUFFERTEXTURE2DEXT)(getProcAddr("glNamedFramebufferTexture2DEXT"))
+ gpNamedFramebufferTexture3DEXT = (C.GPNAMEDFRAMEBUFFERTEXTURE3DEXT)(getProcAddr("glNamedFramebufferTexture3DEXT"))
+ gpNamedFramebufferTextureEXT = (C.GPNAMEDFRAMEBUFFERTEXTUREEXT)(getProcAddr("glNamedFramebufferTextureEXT"))
+ gpNamedFramebufferTextureFaceEXT = (C.GPNAMEDFRAMEBUFFERTEXTUREFACEEXT)(getProcAddr("glNamedFramebufferTextureFaceEXT"))
+ gpNamedFramebufferTextureLayer = (C.GPNAMEDFRAMEBUFFERTEXTURELAYER)(getProcAddr("glNamedFramebufferTextureLayer"))
+ gpNamedFramebufferTextureLayerEXT = (C.GPNAMEDFRAMEBUFFERTEXTURELAYEREXT)(getProcAddr("glNamedFramebufferTextureLayerEXT"))
+ gpNamedFramebufferTextureMultiviewOVR = (C.GPNAMEDFRAMEBUFFERTEXTUREMULTIVIEWOVR)(getProcAddr("glNamedFramebufferTextureMultiviewOVR"))
+ gpNamedProgramLocalParameter4dEXT = (C.GPNAMEDPROGRAMLOCALPARAMETER4DEXT)(getProcAddr("glNamedProgramLocalParameter4dEXT"))
+ gpNamedProgramLocalParameter4dvEXT = (C.GPNAMEDPROGRAMLOCALPARAMETER4DVEXT)(getProcAddr("glNamedProgramLocalParameter4dvEXT"))
+ gpNamedProgramLocalParameter4fEXT = (C.GPNAMEDPROGRAMLOCALPARAMETER4FEXT)(getProcAddr("glNamedProgramLocalParameter4fEXT"))
+ gpNamedProgramLocalParameter4fvEXT = (C.GPNAMEDPROGRAMLOCALPARAMETER4FVEXT)(getProcAddr("glNamedProgramLocalParameter4fvEXT"))
+ gpNamedProgramLocalParameterI4iEXT = (C.GPNAMEDPROGRAMLOCALPARAMETERI4IEXT)(getProcAddr("glNamedProgramLocalParameterI4iEXT"))
+ gpNamedProgramLocalParameterI4ivEXT = (C.GPNAMEDPROGRAMLOCALPARAMETERI4IVEXT)(getProcAddr("glNamedProgramLocalParameterI4ivEXT"))
+ gpNamedProgramLocalParameterI4uiEXT = (C.GPNAMEDPROGRAMLOCALPARAMETERI4UIEXT)(getProcAddr("glNamedProgramLocalParameterI4uiEXT"))
+ gpNamedProgramLocalParameterI4uivEXT = (C.GPNAMEDPROGRAMLOCALPARAMETERI4UIVEXT)(getProcAddr("glNamedProgramLocalParameterI4uivEXT"))
+ gpNamedProgramLocalParameters4fvEXT = (C.GPNAMEDPROGRAMLOCALPARAMETERS4FVEXT)(getProcAddr("glNamedProgramLocalParameters4fvEXT"))
+ gpNamedProgramLocalParametersI4ivEXT = (C.GPNAMEDPROGRAMLOCALPARAMETERSI4IVEXT)(getProcAddr("glNamedProgramLocalParametersI4ivEXT"))
+ gpNamedProgramLocalParametersI4uivEXT = (C.GPNAMEDPROGRAMLOCALPARAMETERSI4UIVEXT)(getProcAddr("glNamedProgramLocalParametersI4uivEXT"))
+ gpNamedProgramStringEXT = (C.GPNAMEDPROGRAMSTRINGEXT)(getProcAddr("glNamedProgramStringEXT"))
+ gpNamedRenderbufferStorage = (C.GPNAMEDRENDERBUFFERSTORAGE)(getProcAddr("glNamedRenderbufferStorage"))
+ gpNamedRenderbufferStorageEXT = (C.GPNAMEDRENDERBUFFERSTORAGEEXT)(getProcAddr("glNamedRenderbufferStorageEXT"))
+ gpNamedRenderbufferStorageMultisample = (C.GPNAMEDRENDERBUFFERSTORAGEMULTISAMPLE)(getProcAddr("glNamedRenderbufferStorageMultisample"))
+ gpNamedRenderbufferStorageMultisampleAdvancedAMD = (C.GPNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMD)(getProcAddr("glNamedRenderbufferStorageMultisampleAdvancedAMD"))
+ gpNamedRenderbufferStorageMultisampleCoverageEXT = (C.GPNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXT)(getProcAddr("glNamedRenderbufferStorageMultisampleCoverageEXT"))
+ gpNamedRenderbufferStorageMultisampleEXT = (C.GPNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXT)(getProcAddr("glNamedRenderbufferStorageMultisampleEXT"))
+ gpNamedStringARB = (C.GPNAMEDSTRINGARB)(getProcAddr("glNamedStringARB"))
+ gpNormalFormatNV = (C.GPNORMALFORMATNV)(getProcAddr("glNormalFormatNV"))
+ gpObjectLabel = (C.GPOBJECTLABEL)(getProcAddr("glObjectLabel"))
+ gpObjectLabelKHR = (C.GPOBJECTLABELKHR)(getProcAddr("glObjectLabelKHR"))
+ gpObjectPtrLabel = (C.GPOBJECTPTRLABEL)(getProcAddr("glObjectPtrLabel"))
+ gpObjectPtrLabelKHR = (C.GPOBJECTPTRLABELKHR)(getProcAddr("glObjectPtrLabelKHR"))
+ gpPatchParameterfv = (C.GPPATCHPARAMETERFV)(getProcAddr("glPatchParameterfv"))
+ gpPatchParameteri = (C.GPPATCHPARAMETERI)(getProcAddr("glPatchParameteri"))
+ gpPathCommandsNV = (C.GPPATHCOMMANDSNV)(getProcAddr("glPathCommandsNV"))
+ gpPathCoordsNV = (C.GPPATHCOORDSNV)(getProcAddr("glPathCoordsNV"))
+ gpPathCoverDepthFuncNV = (C.GPPATHCOVERDEPTHFUNCNV)(getProcAddr("glPathCoverDepthFuncNV"))
+ gpPathDashArrayNV = (C.GPPATHDASHARRAYNV)(getProcAddr("glPathDashArrayNV"))
+ gpPathGlyphIndexArrayNV = (C.GPPATHGLYPHINDEXARRAYNV)(getProcAddr("glPathGlyphIndexArrayNV"))
+ gpPathGlyphIndexRangeNV = (C.GPPATHGLYPHINDEXRANGENV)(getProcAddr("glPathGlyphIndexRangeNV"))
+ gpPathGlyphRangeNV = (C.GPPATHGLYPHRANGENV)(getProcAddr("glPathGlyphRangeNV"))
+ gpPathGlyphsNV = (C.GPPATHGLYPHSNV)(getProcAddr("glPathGlyphsNV"))
+ gpPathMemoryGlyphIndexArrayNV = (C.GPPATHMEMORYGLYPHINDEXARRAYNV)(getProcAddr("glPathMemoryGlyphIndexArrayNV"))
+ gpPathParameterfNV = (C.GPPATHPARAMETERFNV)(getProcAddr("glPathParameterfNV"))
+ gpPathParameterfvNV = (C.GPPATHPARAMETERFVNV)(getProcAddr("glPathParameterfvNV"))
+ gpPathParameteriNV = (C.GPPATHPARAMETERINV)(getProcAddr("glPathParameteriNV"))
+ gpPathParameterivNV = (C.GPPATHPARAMETERIVNV)(getProcAddr("glPathParameterivNV"))
+ gpPathStencilDepthOffsetNV = (C.GPPATHSTENCILDEPTHOFFSETNV)(getProcAddr("glPathStencilDepthOffsetNV"))
+ gpPathStencilFuncNV = (C.GPPATHSTENCILFUNCNV)(getProcAddr("glPathStencilFuncNV"))
+ gpPathStringNV = (C.GPPATHSTRINGNV)(getProcAddr("glPathStringNV"))
+ gpPathSubCommandsNV = (C.GPPATHSUBCOMMANDSNV)(getProcAddr("glPathSubCommandsNV"))
+ gpPathSubCoordsNV = (C.GPPATHSUBCOORDSNV)(getProcAddr("glPathSubCoordsNV"))
+ gpPauseTransformFeedback = (C.GPPAUSETRANSFORMFEEDBACK)(getProcAddr("glPauseTransformFeedback"))
+ gpPixelStoref = (C.GPPIXELSTOREF)(getProcAddr("glPixelStoref"))
+ if gpPixelStoref == nil {
+ return errors.New("glPixelStoref")
+ }
+ gpPixelStorei = (C.GPPIXELSTOREI)(getProcAddr("glPixelStorei"))
+ if gpPixelStorei == nil {
+ return errors.New("glPixelStorei")
+ }
+ gpPointAlongPathNV = (C.GPPOINTALONGPATHNV)(getProcAddr("glPointAlongPathNV"))
+ gpPointParameterf = (C.GPPOINTPARAMETERF)(getProcAddr("glPointParameterf"))
+ if gpPointParameterf == nil {
+ return errors.New("glPointParameterf")
+ }
+ gpPointParameterfv = (C.GPPOINTPARAMETERFV)(getProcAddr("glPointParameterfv"))
+ if gpPointParameterfv == nil {
+ return errors.New("glPointParameterfv")
+ }
+ gpPointParameteri = (C.GPPOINTPARAMETERI)(getProcAddr("glPointParameteri"))
+ if gpPointParameteri == nil {
+ return errors.New("glPointParameteri")
+ }
+ gpPointParameteriv = (C.GPPOINTPARAMETERIV)(getProcAddr("glPointParameteriv"))
+ if gpPointParameteriv == nil {
+ return errors.New("glPointParameteriv")
+ }
+ gpPointSize = (C.GPPOINTSIZE)(getProcAddr("glPointSize"))
+ if gpPointSize == nil {
+ return errors.New("glPointSize")
+ }
+ gpPolygonMode = (C.GPPOLYGONMODE)(getProcAddr("glPolygonMode"))
+ if gpPolygonMode == nil {
+ return errors.New("glPolygonMode")
+ }
+ gpPolygonOffset = (C.GPPOLYGONOFFSET)(getProcAddr("glPolygonOffset"))
+ if gpPolygonOffset == nil {
+ return errors.New("glPolygonOffset")
+ }
+ gpPolygonOffsetClamp = (C.GPPOLYGONOFFSETCLAMP)(getProcAddr("glPolygonOffsetClamp"))
+ gpPolygonOffsetClampEXT = (C.GPPOLYGONOFFSETCLAMPEXT)(getProcAddr("glPolygonOffsetClampEXT"))
+ gpPopDebugGroup = (C.GPPOPDEBUGGROUP)(getProcAddr("glPopDebugGroup"))
+ gpPopDebugGroupKHR = (C.GPPOPDEBUGGROUPKHR)(getProcAddr("glPopDebugGroupKHR"))
+ gpPopGroupMarkerEXT = (C.GPPOPGROUPMARKEREXT)(getProcAddr("glPopGroupMarkerEXT"))
+ gpPrimitiveBoundingBoxARB = (C.GPPRIMITIVEBOUNDINGBOXARB)(getProcAddr("glPrimitiveBoundingBoxARB"))
+ gpPrimitiveRestartIndex = (C.GPPRIMITIVERESTARTINDEX)(getProcAddr("glPrimitiveRestartIndex"))
+ if gpPrimitiveRestartIndex == nil {
+ return errors.New("glPrimitiveRestartIndex")
+ }
+ gpProgramBinary = (C.GPPROGRAMBINARY)(getProcAddr("glProgramBinary"))
+ gpProgramParameteri = (C.GPPROGRAMPARAMETERI)(getProcAddr("glProgramParameteri"))
+ gpProgramParameteriARB = (C.GPPROGRAMPARAMETERIARB)(getProcAddr("glProgramParameteriARB"))
+ gpProgramParameteriEXT = (C.GPPROGRAMPARAMETERIEXT)(getProcAddr("glProgramParameteriEXT"))
+ gpProgramPathFragmentInputGenNV = (C.GPPROGRAMPATHFRAGMENTINPUTGENNV)(getProcAddr("glProgramPathFragmentInputGenNV"))
+ gpProgramUniform1d = (C.GPPROGRAMUNIFORM1D)(getProcAddr("glProgramUniform1d"))
+ gpProgramUniform1dEXT = (C.GPPROGRAMUNIFORM1DEXT)(getProcAddr("glProgramUniform1dEXT"))
+ gpProgramUniform1dv = (C.GPPROGRAMUNIFORM1DV)(getProcAddr("glProgramUniform1dv"))
+ gpProgramUniform1dvEXT = (C.GPPROGRAMUNIFORM1DVEXT)(getProcAddr("glProgramUniform1dvEXT"))
+ gpProgramUniform1f = (C.GPPROGRAMUNIFORM1F)(getProcAddr("glProgramUniform1f"))
+ gpProgramUniform1fEXT = (C.GPPROGRAMUNIFORM1FEXT)(getProcAddr("glProgramUniform1fEXT"))
+ gpProgramUniform1fv = (C.GPPROGRAMUNIFORM1FV)(getProcAddr("glProgramUniform1fv"))
+ gpProgramUniform1fvEXT = (C.GPPROGRAMUNIFORM1FVEXT)(getProcAddr("glProgramUniform1fvEXT"))
+ gpProgramUniform1i = (C.GPPROGRAMUNIFORM1I)(getProcAddr("glProgramUniform1i"))
+ gpProgramUniform1i64ARB = (C.GPPROGRAMUNIFORM1I64ARB)(getProcAddr("glProgramUniform1i64ARB"))
+ gpProgramUniform1i64NV = (C.GPPROGRAMUNIFORM1I64NV)(getProcAddr("glProgramUniform1i64NV"))
+ gpProgramUniform1i64vARB = (C.GPPROGRAMUNIFORM1I64VARB)(getProcAddr("glProgramUniform1i64vARB"))
+ gpProgramUniform1i64vNV = (C.GPPROGRAMUNIFORM1I64VNV)(getProcAddr("glProgramUniform1i64vNV"))
+ gpProgramUniform1iEXT = (C.GPPROGRAMUNIFORM1IEXT)(getProcAddr("glProgramUniform1iEXT"))
+ gpProgramUniform1iv = (C.GPPROGRAMUNIFORM1IV)(getProcAddr("glProgramUniform1iv"))
+ gpProgramUniform1ivEXT = (C.GPPROGRAMUNIFORM1IVEXT)(getProcAddr("glProgramUniform1ivEXT"))
+ gpProgramUniform1ui = (C.GPPROGRAMUNIFORM1UI)(getProcAddr("glProgramUniform1ui"))
+ gpProgramUniform1ui64ARB = (C.GPPROGRAMUNIFORM1UI64ARB)(getProcAddr("glProgramUniform1ui64ARB"))
+ gpProgramUniform1ui64NV = (C.GPPROGRAMUNIFORM1UI64NV)(getProcAddr("glProgramUniform1ui64NV"))
+ gpProgramUniform1ui64vARB = (C.GPPROGRAMUNIFORM1UI64VARB)(getProcAddr("glProgramUniform1ui64vARB"))
+ gpProgramUniform1ui64vNV = (C.GPPROGRAMUNIFORM1UI64VNV)(getProcAddr("glProgramUniform1ui64vNV"))
+ gpProgramUniform1uiEXT = (C.GPPROGRAMUNIFORM1UIEXT)(getProcAddr("glProgramUniform1uiEXT"))
+ gpProgramUniform1uiv = (C.GPPROGRAMUNIFORM1UIV)(getProcAddr("glProgramUniform1uiv"))
+ gpProgramUniform1uivEXT = (C.GPPROGRAMUNIFORM1UIVEXT)(getProcAddr("glProgramUniform1uivEXT"))
+ gpProgramUniform2d = (C.GPPROGRAMUNIFORM2D)(getProcAddr("glProgramUniform2d"))
+ gpProgramUniform2dEXT = (C.GPPROGRAMUNIFORM2DEXT)(getProcAddr("glProgramUniform2dEXT"))
+ gpProgramUniform2dv = (C.GPPROGRAMUNIFORM2DV)(getProcAddr("glProgramUniform2dv"))
+ gpProgramUniform2dvEXT = (C.GPPROGRAMUNIFORM2DVEXT)(getProcAddr("glProgramUniform2dvEXT"))
+ gpProgramUniform2f = (C.GPPROGRAMUNIFORM2F)(getProcAddr("glProgramUniform2f"))
+ gpProgramUniform2fEXT = (C.GPPROGRAMUNIFORM2FEXT)(getProcAddr("glProgramUniform2fEXT"))
+ gpProgramUniform2fv = (C.GPPROGRAMUNIFORM2FV)(getProcAddr("glProgramUniform2fv"))
+ gpProgramUniform2fvEXT = (C.GPPROGRAMUNIFORM2FVEXT)(getProcAddr("glProgramUniform2fvEXT"))
+ gpProgramUniform2i = (C.GPPROGRAMUNIFORM2I)(getProcAddr("glProgramUniform2i"))
+ gpProgramUniform2i64ARB = (C.GPPROGRAMUNIFORM2I64ARB)(getProcAddr("glProgramUniform2i64ARB"))
+ gpProgramUniform2i64NV = (C.GPPROGRAMUNIFORM2I64NV)(getProcAddr("glProgramUniform2i64NV"))
+ gpProgramUniform2i64vARB = (C.GPPROGRAMUNIFORM2I64VARB)(getProcAddr("glProgramUniform2i64vARB"))
+ gpProgramUniform2i64vNV = (C.GPPROGRAMUNIFORM2I64VNV)(getProcAddr("glProgramUniform2i64vNV"))
+ gpProgramUniform2iEXT = (C.GPPROGRAMUNIFORM2IEXT)(getProcAddr("glProgramUniform2iEXT"))
+ gpProgramUniform2iv = (C.GPPROGRAMUNIFORM2IV)(getProcAddr("glProgramUniform2iv"))
+ gpProgramUniform2ivEXT = (C.GPPROGRAMUNIFORM2IVEXT)(getProcAddr("glProgramUniform2ivEXT"))
+ gpProgramUniform2ui = (C.GPPROGRAMUNIFORM2UI)(getProcAddr("glProgramUniform2ui"))
+ gpProgramUniform2ui64ARB = (C.GPPROGRAMUNIFORM2UI64ARB)(getProcAddr("glProgramUniform2ui64ARB"))
+ gpProgramUniform2ui64NV = (C.GPPROGRAMUNIFORM2UI64NV)(getProcAddr("glProgramUniform2ui64NV"))
+ gpProgramUniform2ui64vARB = (C.GPPROGRAMUNIFORM2UI64VARB)(getProcAddr("glProgramUniform2ui64vARB"))
+ gpProgramUniform2ui64vNV = (C.GPPROGRAMUNIFORM2UI64VNV)(getProcAddr("glProgramUniform2ui64vNV"))
+ gpProgramUniform2uiEXT = (C.GPPROGRAMUNIFORM2UIEXT)(getProcAddr("glProgramUniform2uiEXT"))
+ gpProgramUniform2uiv = (C.GPPROGRAMUNIFORM2UIV)(getProcAddr("glProgramUniform2uiv"))
+ gpProgramUniform2uivEXT = (C.GPPROGRAMUNIFORM2UIVEXT)(getProcAddr("glProgramUniform2uivEXT"))
+ gpProgramUniform3d = (C.GPPROGRAMUNIFORM3D)(getProcAddr("glProgramUniform3d"))
+ gpProgramUniform3dEXT = (C.GPPROGRAMUNIFORM3DEXT)(getProcAddr("glProgramUniform3dEXT"))
+ gpProgramUniform3dv = (C.GPPROGRAMUNIFORM3DV)(getProcAddr("glProgramUniform3dv"))
+ gpProgramUniform3dvEXT = (C.GPPROGRAMUNIFORM3DVEXT)(getProcAddr("glProgramUniform3dvEXT"))
+ gpProgramUniform3f = (C.GPPROGRAMUNIFORM3F)(getProcAddr("glProgramUniform3f"))
+ gpProgramUniform3fEXT = (C.GPPROGRAMUNIFORM3FEXT)(getProcAddr("glProgramUniform3fEXT"))
+ gpProgramUniform3fv = (C.GPPROGRAMUNIFORM3FV)(getProcAddr("glProgramUniform3fv"))
+ gpProgramUniform3fvEXT = (C.GPPROGRAMUNIFORM3FVEXT)(getProcAddr("glProgramUniform3fvEXT"))
+ gpProgramUniform3i = (C.GPPROGRAMUNIFORM3I)(getProcAddr("glProgramUniform3i"))
+ gpProgramUniform3i64ARB = (C.GPPROGRAMUNIFORM3I64ARB)(getProcAddr("glProgramUniform3i64ARB"))
+ gpProgramUniform3i64NV = (C.GPPROGRAMUNIFORM3I64NV)(getProcAddr("glProgramUniform3i64NV"))
+ gpProgramUniform3i64vARB = (C.GPPROGRAMUNIFORM3I64VARB)(getProcAddr("glProgramUniform3i64vARB"))
+ gpProgramUniform3i64vNV = (C.GPPROGRAMUNIFORM3I64VNV)(getProcAddr("glProgramUniform3i64vNV"))
+ gpProgramUniform3iEXT = (C.GPPROGRAMUNIFORM3IEXT)(getProcAddr("glProgramUniform3iEXT"))
+ gpProgramUniform3iv = (C.GPPROGRAMUNIFORM3IV)(getProcAddr("glProgramUniform3iv"))
+ gpProgramUniform3ivEXT = (C.GPPROGRAMUNIFORM3IVEXT)(getProcAddr("glProgramUniform3ivEXT"))
+ gpProgramUniform3ui = (C.GPPROGRAMUNIFORM3UI)(getProcAddr("glProgramUniform3ui"))
+ gpProgramUniform3ui64ARB = (C.GPPROGRAMUNIFORM3UI64ARB)(getProcAddr("glProgramUniform3ui64ARB"))
+ gpProgramUniform3ui64NV = (C.GPPROGRAMUNIFORM3UI64NV)(getProcAddr("glProgramUniform3ui64NV"))
+ gpProgramUniform3ui64vARB = (C.GPPROGRAMUNIFORM3UI64VARB)(getProcAddr("glProgramUniform3ui64vARB"))
+ gpProgramUniform3ui64vNV = (C.GPPROGRAMUNIFORM3UI64VNV)(getProcAddr("glProgramUniform3ui64vNV"))
+ gpProgramUniform3uiEXT = (C.GPPROGRAMUNIFORM3UIEXT)(getProcAddr("glProgramUniform3uiEXT"))
+ gpProgramUniform3uiv = (C.GPPROGRAMUNIFORM3UIV)(getProcAddr("glProgramUniform3uiv"))
+ gpProgramUniform3uivEXT = (C.GPPROGRAMUNIFORM3UIVEXT)(getProcAddr("glProgramUniform3uivEXT"))
+ gpProgramUniform4d = (C.GPPROGRAMUNIFORM4D)(getProcAddr("glProgramUniform4d"))
+ gpProgramUniform4dEXT = (C.GPPROGRAMUNIFORM4DEXT)(getProcAddr("glProgramUniform4dEXT"))
+ gpProgramUniform4dv = (C.GPPROGRAMUNIFORM4DV)(getProcAddr("glProgramUniform4dv"))
+ gpProgramUniform4dvEXT = (C.GPPROGRAMUNIFORM4DVEXT)(getProcAddr("glProgramUniform4dvEXT"))
+ gpProgramUniform4f = (C.GPPROGRAMUNIFORM4F)(getProcAddr("glProgramUniform4f"))
+ gpProgramUniform4fEXT = (C.GPPROGRAMUNIFORM4FEXT)(getProcAddr("glProgramUniform4fEXT"))
+ gpProgramUniform4fv = (C.GPPROGRAMUNIFORM4FV)(getProcAddr("glProgramUniform4fv"))
+ gpProgramUniform4fvEXT = (C.GPPROGRAMUNIFORM4FVEXT)(getProcAddr("glProgramUniform4fvEXT"))
+ gpProgramUniform4i = (C.GPPROGRAMUNIFORM4I)(getProcAddr("glProgramUniform4i"))
+ gpProgramUniform4i64ARB = (C.GPPROGRAMUNIFORM4I64ARB)(getProcAddr("glProgramUniform4i64ARB"))
+ gpProgramUniform4i64NV = (C.GPPROGRAMUNIFORM4I64NV)(getProcAddr("glProgramUniform4i64NV"))
+ gpProgramUniform4i64vARB = (C.GPPROGRAMUNIFORM4I64VARB)(getProcAddr("glProgramUniform4i64vARB"))
+ gpProgramUniform4i64vNV = (C.GPPROGRAMUNIFORM4I64VNV)(getProcAddr("glProgramUniform4i64vNV"))
+ gpProgramUniform4iEXT = (C.GPPROGRAMUNIFORM4IEXT)(getProcAddr("glProgramUniform4iEXT"))
+ gpProgramUniform4iv = (C.GPPROGRAMUNIFORM4IV)(getProcAddr("glProgramUniform4iv"))
+ gpProgramUniform4ivEXT = (C.GPPROGRAMUNIFORM4IVEXT)(getProcAddr("glProgramUniform4ivEXT"))
+ gpProgramUniform4ui = (C.GPPROGRAMUNIFORM4UI)(getProcAddr("glProgramUniform4ui"))
+ gpProgramUniform4ui64ARB = (C.GPPROGRAMUNIFORM4UI64ARB)(getProcAddr("glProgramUniform4ui64ARB"))
+ gpProgramUniform4ui64NV = (C.GPPROGRAMUNIFORM4UI64NV)(getProcAddr("glProgramUniform4ui64NV"))
+ gpProgramUniform4ui64vARB = (C.GPPROGRAMUNIFORM4UI64VARB)(getProcAddr("glProgramUniform4ui64vARB"))
+ gpProgramUniform4ui64vNV = (C.GPPROGRAMUNIFORM4UI64VNV)(getProcAddr("glProgramUniform4ui64vNV"))
+ gpProgramUniform4uiEXT = (C.GPPROGRAMUNIFORM4UIEXT)(getProcAddr("glProgramUniform4uiEXT"))
+ gpProgramUniform4uiv = (C.GPPROGRAMUNIFORM4UIV)(getProcAddr("glProgramUniform4uiv"))
+ gpProgramUniform4uivEXT = (C.GPPROGRAMUNIFORM4UIVEXT)(getProcAddr("glProgramUniform4uivEXT"))
+ gpProgramUniformHandleui64ARB = (C.GPPROGRAMUNIFORMHANDLEUI64ARB)(getProcAddr("glProgramUniformHandleui64ARB"))
+ gpProgramUniformHandleui64NV = (C.GPPROGRAMUNIFORMHANDLEUI64NV)(getProcAddr("glProgramUniformHandleui64NV"))
+ gpProgramUniformHandleui64vARB = (C.GPPROGRAMUNIFORMHANDLEUI64VARB)(getProcAddr("glProgramUniformHandleui64vARB"))
+ gpProgramUniformHandleui64vNV = (C.GPPROGRAMUNIFORMHANDLEUI64VNV)(getProcAddr("glProgramUniformHandleui64vNV"))
+ gpProgramUniformMatrix2dv = (C.GPPROGRAMUNIFORMMATRIX2DV)(getProcAddr("glProgramUniformMatrix2dv"))
+ gpProgramUniformMatrix2dvEXT = (C.GPPROGRAMUNIFORMMATRIX2DVEXT)(getProcAddr("glProgramUniformMatrix2dvEXT"))
+ gpProgramUniformMatrix2fv = (C.GPPROGRAMUNIFORMMATRIX2FV)(getProcAddr("glProgramUniformMatrix2fv"))
+ gpProgramUniformMatrix2fvEXT = (C.GPPROGRAMUNIFORMMATRIX2FVEXT)(getProcAddr("glProgramUniformMatrix2fvEXT"))
+ gpProgramUniformMatrix2x3dv = (C.GPPROGRAMUNIFORMMATRIX2X3DV)(getProcAddr("glProgramUniformMatrix2x3dv"))
+ gpProgramUniformMatrix2x3dvEXT = (C.GPPROGRAMUNIFORMMATRIX2X3DVEXT)(getProcAddr("glProgramUniformMatrix2x3dvEXT"))
+ gpProgramUniformMatrix2x3fv = (C.GPPROGRAMUNIFORMMATRIX2X3FV)(getProcAddr("glProgramUniformMatrix2x3fv"))
+ gpProgramUniformMatrix2x3fvEXT = (C.GPPROGRAMUNIFORMMATRIX2X3FVEXT)(getProcAddr("glProgramUniformMatrix2x3fvEXT"))
+ gpProgramUniformMatrix2x4dv = (C.GPPROGRAMUNIFORMMATRIX2X4DV)(getProcAddr("glProgramUniformMatrix2x4dv"))
+ gpProgramUniformMatrix2x4dvEXT = (C.GPPROGRAMUNIFORMMATRIX2X4DVEXT)(getProcAddr("glProgramUniformMatrix2x4dvEXT"))
+ gpProgramUniformMatrix2x4fv = (C.GPPROGRAMUNIFORMMATRIX2X4FV)(getProcAddr("glProgramUniformMatrix2x4fv"))
+ gpProgramUniformMatrix2x4fvEXT = (C.GPPROGRAMUNIFORMMATRIX2X4FVEXT)(getProcAddr("glProgramUniformMatrix2x4fvEXT"))
+ gpProgramUniformMatrix3dv = (C.GPPROGRAMUNIFORMMATRIX3DV)(getProcAddr("glProgramUniformMatrix3dv"))
+ gpProgramUniformMatrix3dvEXT = (C.GPPROGRAMUNIFORMMATRIX3DVEXT)(getProcAddr("glProgramUniformMatrix3dvEXT"))
+ gpProgramUniformMatrix3fv = (C.GPPROGRAMUNIFORMMATRIX3FV)(getProcAddr("glProgramUniformMatrix3fv"))
+ gpProgramUniformMatrix3fvEXT = (C.GPPROGRAMUNIFORMMATRIX3FVEXT)(getProcAddr("glProgramUniformMatrix3fvEXT"))
+ gpProgramUniformMatrix3x2dv = (C.GPPROGRAMUNIFORMMATRIX3X2DV)(getProcAddr("glProgramUniformMatrix3x2dv"))
+ gpProgramUniformMatrix3x2dvEXT = (C.GPPROGRAMUNIFORMMATRIX3X2DVEXT)(getProcAddr("glProgramUniformMatrix3x2dvEXT"))
+ gpProgramUniformMatrix3x2fv = (C.GPPROGRAMUNIFORMMATRIX3X2FV)(getProcAddr("glProgramUniformMatrix3x2fv"))
+ gpProgramUniformMatrix3x2fvEXT = (C.GPPROGRAMUNIFORMMATRIX3X2FVEXT)(getProcAddr("glProgramUniformMatrix3x2fvEXT"))
+ gpProgramUniformMatrix3x4dv = (C.GPPROGRAMUNIFORMMATRIX3X4DV)(getProcAddr("glProgramUniformMatrix3x4dv"))
+ gpProgramUniformMatrix3x4dvEXT = (C.GPPROGRAMUNIFORMMATRIX3X4DVEXT)(getProcAddr("glProgramUniformMatrix3x4dvEXT"))
+ gpProgramUniformMatrix3x4fv = (C.GPPROGRAMUNIFORMMATRIX3X4FV)(getProcAddr("glProgramUniformMatrix3x4fv"))
+ gpProgramUniformMatrix3x4fvEXT = (C.GPPROGRAMUNIFORMMATRIX3X4FVEXT)(getProcAddr("glProgramUniformMatrix3x4fvEXT"))
+ gpProgramUniformMatrix4dv = (C.GPPROGRAMUNIFORMMATRIX4DV)(getProcAddr("glProgramUniformMatrix4dv"))
+ gpProgramUniformMatrix4dvEXT = (C.GPPROGRAMUNIFORMMATRIX4DVEXT)(getProcAddr("glProgramUniformMatrix4dvEXT"))
+ gpProgramUniformMatrix4fv = (C.GPPROGRAMUNIFORMMATRIX4FV)(getProcAddr("glProgramUniformMatrix4fv"))
+ gpProgramUniformMatrix4fvEXT = (C.GPPROGRAMUNIFORMMATRIX4FVEXT)(getProcAddr("glProgramUniformMatrix4fvEXT"))
+ gpProgramUniformMatrix4x2dv = (C.GPPROGRAMUNIFORMMATRIX4X2DV)(getProcAddr("glProgramUniformMatrix4x2dv"))
+ gpProgramUniformMatrix4x2dvEXT = (C.GPPROGRAMUNIFORMMATRIX4X2DVEXT)(getProcAddr("glProgramUniformMatrix4x2dvEXT"))
+ gpProgramUniformMatrix4x2fv = (C.GPPROGRAMUNIFORMMATRIX4X2FV)(getProcAddr("glProgramUniformMatrix4x2fv"))
+ gpProgramUniformMatrix4x2fvEXT = (C.GPPROGRAMUNIFORMMATRIX4X2FVEXT)(getProcAddr("glProgramUniformMatrix4x2fvEXT"))
+ gpProgramUniformMatrix4x3dv = (C.GPPROGRAMUNIFORMMATRIX4X3DV)(getProcAddr("glProgramUniformMatrix4x3dv"))
+ gpProgramUniformMatrix4x3dvEXT = (C.GPPROGRAMUNIFORMMATRIX4X3DVEXT)(getProcAddr("glProgramUniformMatrix4x3dvEXT"))
+ gpProgramUniformMatrix4x3fv = (C.GPPROGRAMUNIFORMMATRIX4X3FV)(getProcAddr("glProgramUniformMatrix4x3fv"))
+ gpProgramUniformMatrix4x3fvEXT = (C.GPPROGRAMUNIFORMMATRIX4X3FVEXT)(getProcAddr("glProgramUniformMatrix4x3fvEXT"))
+ gpProgramUniformui64NV = (C.GPPROGRAMUNIFORMUI64NV)(getProcAddr("glProgramUniformui64NV"))
+ gpProgramUniformui64vNV = (C.GPPROGRAMUNIFORMUI64VNV)(getProcAddr("glProgramUniformui64vNV"))
+ gpProvokingVertex = (C.GPPROVOKINGVERTEX)(getProcAddr("glProvokingVertex"))
+ if gpProvokingVertex == nil {
+ return errors.New("glProvokingVertex")
+ }
+ gpPushClientAttribDefaultEXT = (C.GPPUSHCLIENTATTRIBDEFAULTEXT)(getProcAddr("glPushClientAttribDefaultEXT"))
+ gpPushDebugGroup = (C.GPPUSHDEBUGGROUP)(getProcAddr("glPushDebugGroup"))
+ gpPushDebugGroupKHR = (C.GPPUSHDEBUGGROUPKHR)(getProcAddr("glPushDebugGroupKHR"))
+ gpPushGroupMarkerEXT = (C.GPPUSHGROUPMARKEREXT)(getProcAddr("glPushGroupMarkerEXT"))
+ gpQueryCounter = (C.GPQUERYCOUNTER)(getProcAddr("glQueryCounter"))
+ if gpQueryCounter == nil {
+ return errors.New("glQueryCounter")
+ }
+ gpRasterSamplesEXT = (C.GPRASTERSAMPLESEXT)(getProcAddr("glRasterSamplesEXT"))
+ gpReadBuffer = (C.GPREADBUFFER)(getProcAddr("glReadBuffer"))
+ if gpReadBuffer == nil {
+ return errors.New("glReadBuffer")
+ }
+ gpReadPixels = (C.GPREADPIXELS)(getProcAddr("glReadPixels"))
+ if gpReadPixels == nil {
+ return errors.New("glReadPixels")
+ }
+ gpReadnPixels = (C.GPREADNPIXELS)(getProcAddr("glReadnPixels"))
+ gpReadnPixelsARB = (C.GPREADNPIXELSARB)(getProcAddr("glReadnPixelsARB"))
+ gpReadnPixelsKHR = (C.GPREADNPIXELSKHR)(getProcAddr("glReadnPixelsKHR"))
+ gpReleaseShaderCompiler = (C.GPRELEASESHADERCOMPILER)(getProcAddr("glReleaseShaderCompiler"))
+ gpRenderbufferStorage = (C.GPRENDERBUFFERSTORAGE)(getProcAddr("glRenderbufferStorage"))
+ if gpRenderbufferStorage == nil {
+ return errors.New("glRenderbufferStorage")
+ }
+ gpRenderbufferStorageMultisample = (C.GPRENDERBUFFERSTORAGEMULTISAMPLE)(getProcAddr("glRenderbufferStorageMultisample"))
+ if gpRenderbufferStorageMultisample == nil {
+ return errors.New("glRenderbufferStorageMultisample")
+ }
+ gpRenderbufferStorageMultisampleAdvancedAMD = (C.GPRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMD)(getProcAddr("glRenderbufferStorageMultisampleAdvancedAMD"))
+ gpRenderbufferStorageMultisampleCoverageNV = (C.GPRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENV)(getProcAddr("glRenderbufferStorageMultisampleCoverageNV"))
+ gpResetMemoryObjectParameterNV = (C.GPRESETMEMORYOBJECTPARAMETERNV)(getProcAddr("glResetMemoryObjectParameterNV"))
+ gpResolveDepthValuesNV = (C.GPRESOLVEDEPTHVALUESNV)(getProcAddr("glResolveDepthValuesNV"))
+ gpResumeTransformFeedback = (C.GPRESUMETRANSFORMFEEDBACK)(getProcAddr("glResumeTransformFeedback"))
+ gpSampleCoverage = (C.GPSAMPLECOVERAGE)(getProcAddr("glSampleCoverage"))
+ if gpSampleCoverage == nil {
+ return errors.New("glSampleCoverage")
+ }
+ gpSampleMaski = (C.GPSAMPLEMASKI)(getProcAddr("glSampleMaski"))
+ if gpSampleMaski == nil {
+ return errors.New("glSampleMaski")
+ }
+ gpSamplerParameterIiv = (C.GPSAMPLERPARAMETERIIV)(getProcAddr("glSamplerParameterIiv"))
+ if gpSamplerParameterIiv == nil {
+ return errors.New("glSamplerParameterIiv")
+ }
+ gpSamplerParameterIuiv = (C.GPSAMPLERPARAMETERIUIV)(getProcAddr("glSamplerParameterIuiv"))
+ if gpSamplerParameterIuiv == nil {
+ return errors.New("glSamplerParameterIuiv")
+ }
+ gpSamplerParameterf = (C.GPSAMPLERPARAMETERF)(getProcAddr("glSamplerParameterf"))
+ if gpSamplerParameterf == nil {
+ return errors.New("glSamplerParameterf")
+ }
+ gpSamplerParameterfv = (C.GPSAMPLERPARAMETERFV)(getProcAddr("glSamplerParameterfv"))
+ if gpSamplerParameterfv == nil {
+ return errors.New("glSamplerParameterfv")
+ }
+ gpSamplerParameteri = (C.GPSAMPLERPARAMETERI)(getProcAddr("glSamplerParameteri"))
+ if gpSamplerParameteri == nil {
+ return errors.New("glSamplerParameteri")
+ }
+ gpSamplerParameteriv = (C.GPSAMPLERPARAMETERIV)(getProcAddr("glSamplerParameteriv"))
+ if gpSamplerParameteriv == nil {
+ return errors.New("glSamplerParameteriv")
+ }
+ gpScissor = (C.GPSCISSOR)(getProcAddr("glScissor"))
+ if gpScissor == nil {
+ return errors.New("glScissor")
+ }
+ gpScissorArrayv = (C.GPSCISSORARRAYV)(getProcAddr("glScissorArrayv"))
+ gpScissorExclusiveArrayvNV = (C.GPSCISSOREXCLUSIVEARRAYVNV)(getProcAddr("glScissorExclusiveArrayvNV"))
+ gpScissorExclusiveNV = (C.GPSCISSOREXCLUSIVENV)(getProcAddr("glScissorExclusiveNV"))
+ gpScissorIndexed = (C.GPSCISSORINDEXED)(getProcAddr("glScissorIndexed"))
+ gpScissorIndexedv = (C.GPSCISSORINDEXEDV)(getProcAddr("glScissorIndexedv"))
+ gpSecondaryColorFormatNV = (C.GPSECONDARYCOLORFORMATNV)(getProcAddr("glSecondaryColorFormatNV"))
+ gpSelectPerfMonitorCountersAMD = (C.GPSELECTPERFMONITORCOUNTERSAMD)(getProcAddr("glSelectPerfMonitorCountersAMD"))
+ gpShaderBinary = (C.GPSHADERBINARY)(getProcAddr("glShaderBinary"))
+ gpShaderSource = (C.GPSHADERSOURCE)(getProcAddr("glShaderSource"))
+ if gpShaderSource == nil {
+ return errors.New("glShaderSource")
+ }
+ gpShaderStorageBlockBinding = (C.GPSHADERSTORAGEBLOCKBINDING)(getProcAddr("glShaderStorageBlockBinding"))
+ gpShadingRateImageBarrierNV = (C.GPSHADINGRATEIMAGEBARRIERNV)(getProcAddr("glShadingRateImageBarrierNV"))
+ gpShadingRateImagePaletteNV = (C.GPSHADINGRATEIMAGEPALETTENV)(getProcAddr("glShadingRateImagePaletteNV"))
+ gpShadingRateSampleOrderCustomNV = (C.GPSHADINGRATESAMPLEORDERCUSTOMNV)(getProcAddr("glShadingRateSampleOrderCustomNV"))
+ gpShadingRateSampleOrderNV = (C.GPSHADINGRATESAMPLEORDERNV)(getProcAddr("glShadingRateSampleOrderNV"))
+ gpSignalVkFenceNV = (C.GPSIGNALVKFENCENV)(getProcAddr("glSignalVkFenceNV"))
+ gpSignalVkSemaphoreNV = (C.GPSIGNALVKSEMAPHORENV)(getProcAddr("glSignalVkSemaphoreNV"))
+ gpSpecializeShaderARB = (C.GPSPECIALIZESHADERARB)(getProcAddr("glSpecializeShaderARB"))
+ gpStateCaptureNV = (C.GPSTATECAPTURENV)(getProcAddr("glStateCaptureNV"))
+ gpStencilFillPathInstancedNV = (C.GPSTENCILFILLPATHINSTANCEDNV)(getProcAddr("glStencilFillPathInstancedNV"))
+ gpStencilFillPathNV = (C.GPSTENCILFILLPATHNV)(getProcAddr("glStencilFillPathNV"))
+ gpStencilFunc = (C.GPSTENCILFUNC)(getProcAddr("glStencilFunc"))
+ if gpStencilFunc == nil {
+ return errors.New("glStencilFunc")
+ }
+ gpStencilFuncSeparate = (C.GPSTENCILFUNCSEPARATE)(getProcAddr("glStencilFuncSeparate"))
+ if gpStencilFuncSeparate == nil {
+ return errors.New("glStencilFuncSeparate")
+ }
+ gpStencilMask = (C.GPSTENCILMASK)(getProcAddr("glStencilMask"))
+ if gpStencilMask == nil {
+ return errors.New("glStencilMask")
+ }
+ gpStencilMaskSeparate = (C.GPSTENCILMASKSEPARATE)(getProcAddr("glStencilMaskSeparate"))
+ if gpStencilMaskSeparate == nil {
+ return errors.New("glStencilMaskSeparate")
+ }
+ gpStencilOp = (C.GPSTENCILOP)(getProcAddr("glStencilOp"))
+ if gpStencilOp == nil {
+ return errors.New("glStencilOp")
+ }
+ gpStencilOpSeparate = (C.GPSTENCILOPSEPARATE)(getProcAddr("glStencilOpSeparate"))
+ if gpStencilOpSeparate == nil {
+ return errors.New("glStencilOpSeparate")
+ }
+ gpStencilStrokePathInstancedNV = (C.GPSTENCILSTROKEPATHINSTANCEDNV)(getProcAddr("glStencilStrokePathInstancedNV"))
+ gpStencilStrokePathNV = (C.GPSTENCILSTROKEPATHNV)(getProcAddr("glStencilStrokePathNV"))
+ gpStencilThenCoverFillPathInstancedNV = (C.GPSTENCILTHENCOVERFILLPATHINSTANCEDNV)(getProcAddr("glStencilThenCoverFillPathInstancedNV"))
+ gpStencilThenCoverFillPathNV = (C.GPSTENCILTHENCOVERFILLPATHNV)(getProcAddr("glStencilThenCoverFillPathNV"))
+ gpStencilThenCoverStrokePathInstancedNV = (C.GPSTENCILTHENCOVERSTROKEPATHINSTANCEDNV)(getProcAddr("glStencilThenCoverStrokePathInstancedNV"))
+ gpStencilThenCoverStrokePathNV = (C.GPSTENCILTHENCOVERSTROKEPATHNV)(getProcAddr("glStencilThenCoverStrokePathNV"))
+ gpSubpixelPrecisionBiasNV = (C.GPSUBPIXELPRECISIONBIASNV)(getProcAddr("glSubpixelPrecisionBiasNV"))
+ gpTexAttachMemoryNV = (C.GPTEXATTACHMEMORYNV)(getProcAddr("glTexAttachMemoryNV"))
+ gpTexBuffer = (C.GPTEXBUFFER)(getProcAddr("glTexBuffer"))
+ if gpTexBuffer == nil {
+ return errors.New("glTexBuffer")
+ }
+ gpTexBufferARB = (C.GPTEXBUFFERARB)(getProcAddr("glTexBufferARB"))
+ gpTexBufferRange = (C.GPTEXBUFFERRANGE)(getProcAddr("glTexBufferRange"))
+ gpTexCoordFormatNV = (C.GPTEXCOORDFORMATNV)(getProcAddr("glTexCoordFormatNV"))
+ gpTexImage1D = (C.GPTEXIMAGE1D)(getProcAddr("glTexImage1D"))
+ if gpTexImage1D == nil {
+ return errors.New("glTexImage1D")
+ }
+ gpTexImage2D = (C.GPTEXIMAGE2D)(getProcAddr("glTexImage2D"))
+ if gpTexImage2D == nil {
+ return errors.New("glTexImage2D")
+ }
+ gpTexImage2DMultisample = (C.GPTEXIMAGE2DMULTISAMPLE)(getProcAddr("glTexImage2DMultisample"))
+ if gpTexImage2DMultisample == nil {
+ return errors.New("glTexImage2DMultisample")
+ }
+ gpTexImage3D = (C.GPTEXIMAGE3D)(getProcAddr("glTexImage3D"))
+ if gpTexImage3D == nil {
+ return errors.New("glTexImage3D")
+ }
+ gpTexImage3DMultisample = (C.GPTEXIMAGE3DMULTISAMPLE)(getProcAddr("glTexImage3DMultisample"))
+ if gpTexImage3DMultisample == nil {
+ return errors.New("glTexImage3DMultisample")
+ }
+ gpTexPageCommitmentARB = (C.GPTEXPAGECOMMITMENTARB)(getProcAddr("glTexPageCommitmentARB"))
+ gpTexPageCommitmentMemNV = (C.GPTEXPAGECOMMITMENTMEMNV)(getProcAddr("glTexPageCommitmentMemNV"))
+ gpTexParameterIiv = (C.GPTEXPARAMETERIIV)(getProcAddr("glTexParameterIiv"))
+ if gpTexParameterIiv == nil {
+ return errors.New("glTexParameterIiv")
+ }
+ gpTexParameterIuiv = (C.GPTEXPARAMETERIUIV)(getProcAddr("glTexParameterIuiv"))
+ if gpTexParameterIuiv == nil {
+ return errors.New("glTexParameterIuiv")
+ }
+ gpTexParameterf = (C.GPTEXPARAMETERF)(getProcAddr("glTexParameterf"))
+ if gpTexParameterf == nil {
+ return errors.New("glTexParameterf")
+ }
+ gpTexParameterfv = (C.GPTEXPARAMETERFV)(getProcAddr("glTexParameterfv"))
+ if gpTexParameterfv == nil {
+ return errors.New("glTexParameterfv")
+ }
+ gpTexParameteri = (C.GPTEXPARAMETERI)(getProcAddr("glTexParameteri"))
+ if gpTexParameteri == nil {
+ return errors.New("glTexParameteri")
+ }
+ gpTexParameteriv = (C.GPTEXPARAMETERIV)(getProcAddr("glTexParameteriv"))
+ if gpTexParameteriv == nil {
+ return errors.New("glTexParameteriv")
+ }
+ gpTexStorage1D = (C.GPTEXSTORAGE1D)(getProcAddr("glTexStorage1D"))
+ gpTexStorage1DEXT = (C.GPTEXSTORAGE1DEXT)(getProcAddr("glTexStorage1DEXT"))
+ gpTexStorage2D = (C.GPTEXSTORAGE2D)(getProcAddr("glTexStorage2D"))
+ gpTexStorage2DEXT = (C.GPTEXSTORAGE2DEXT)(getProcAddr("glTexStorage2DEXT"))
+ gpTexStorage2DMultisample = (C.GPTEXSTORAGE2DMULTISAMPLE)(getProcAddr("glTexStorage2DMultisample"))
+ gpTexStorage3D = (C.GPTEXSTORAGE3D)(getProcAddr("glTexStorage3D"))
+ gpTexStorage3DEXT = (C.GPTEXSTORAGE3DEXT)(getProcAddr("glTexStorage3DEXT"))
+ gpTexStorage3DMultisample = (C.GPTEXSTORAGE3DMULTISAMPLE)(getProcAddr("glTexStorage3DMultisample"))
+ gpTexSubImage1D = (C.GPTEXSUBIMAGE1D)(getProcAddr("glTexSubImage1D"))
+ if gpTexSubImage1D == nil {
+ return errors.New("glTexSubImage1D")
+ }
+ gpTexSubImage2D = (C.GPTEXSUBIMAGE2D)(getProcAddr("glTexSubImage2D"))
+ if gpTexSubImage2D == nil {
+ return errors.New("glTexSubImage2D")
+ }
+ gpTexSubImage3D = (C.GPTEXSUBIMAGE3D)(getProcAddr("glTexSubImage3D"))
+ if gpTexSubImage3D == nil {
+ return errors.New("glTexSubImage3D")
+ }
+ gpTextureAttachMemoryNV = (C.GPTEXTUREATTACHMEMORYNV)(getProcAddr("glTextureAttachMemoryNV"))
+ gpTextureBarrier = (C.GPTEXTUREBARRIER)(getProcAddr("glTextureBarrier"))
+ gpTextureBarrierNV = (C.GPTEXTUREBARRIERNV)(getProcAddr("glTextureBarrierNV"))
+ gpTextureBuffer = (C.GPTEXTUREBUFFER)(getProcAddr("glTextureBuffer"))
+ gpTextureBufferEXT = (C.GPTEXTUREBUFFEREXT)(getProcAddr("glTextureBufferEXT"))
+ gpTextureBufferRange = (C.GPTEXTUREBUFFERRANGE)(getProcAddr("glTextureBufferRange"))
+ gpTextureBufferRangeEXT = (C.GPTEXTUREBUFFERRANGEEXT)(getProcAddr("glTextureBufferRangeEXT"))
+ gpTextureImage1DEXT = (C.GPTEXTUREIMAGE1DEXT)(getProcAddr("glTextureImage1DEXT"))
+ gpTextureImage2DEXT = (C.GPTEXTUREIMAGE2DEXT)(getProcAddr("glTextureImage2DEXT"))
+ gpTextureImage3DEXT = (C.GPTEXTUREIMAGE3DEXT)(getProcAddr("glTextureImage3DEXT"))
+ gpTexturePageCommitmentEXT = (C.GPTEXTUREPAGECOMMITMENTEXT)(getProcAddr("glTexturePageCommitmentEXT"))
+ gpTexturePageCommitmentMemNV = (C.GPTEXTUREPAGECOMMITMENTMEMNV)(getProcAddr("glTexturePageCommitmentMemNV"))
+ gpTextureParameterIiv = (C.GPTEXTUREPARAMETERIIV)(getProcAddr("glTextureParameterIiv"))
+ gpTextureParameterIivEXT = (C.GPTEXTUREPARAMETERIIVEXT)(getProcAddr("glTextureParameterIivEXT"))
+ gpTextureParameterIuiv = (C.GPTEXTUREPARAMETERIUIV)(getProcAddr("glTextureParameterIuiv"))
+ gpTextureParameterIuivEXT = (C.GPTEXTUREPARAMETERIUIVEXT)(getProcAddr("glTextureParameterIuivEXT"))
+ gpTextureParameterf = (C.GPTEXTUREPARAMETERF)(getProcAddr("glTextureParameterf"))
+ gpTextureParameterfEXT = (C.GPTEXTUREPARAMETERFEXT)(getProcAddr("glTextureParameterfEXT"))
+ gpTextureParameterfv = (C.GPTEXTUREPARAMETERFV)(getProcAddr("glTextureParameterfv"))
+ gpTextureParameterfvEXT = (C.GPTEXTUREPARAMETERFVEXT)(getProcAddr("glTextureParameterfvEXT"))
+ gpTextureParameteri = (C.GPTEXTUREPARAMETERI)(getProcAddr("glTextureParameteri"))
+ gpTextureParameteriEXT = (C.GPTEXTUREPARAMETERIEXT)(getProcAddr("glTextureParameteriEXT"))
+ gpTextureParameteriv = (C.GPTEXTUREPARAMETERIV)(getProcAddr("glTextureParameteriv"))
+ gpTextureParameterivEXT = (C.GPTEXTUREPARAMETERIVEXT)(getProcAddr("glTextureParameterivEXT"))
+ gpTextureRenderbufferEXT = (C.GPTEXTURERENDERBUFFEREXT)(getProcAddr("glTextureRenderbufferEXT"))
+ gpTextureStorage1D = (C.GPTEXTURESTORAGE1D)(getProcAddr("glTextureStorage1D"))
+ gpTextureStorage1DEXT = (C.GPTEXTURESTORAGE1DEXT)(getProcAddr("glTextureStorage1DEXT"))
+ gpTextureStorage2D = (C.GPTEXTURESTORAGE2D)(getProcAddr("glTextureStorage2D"))
+ gpTextureStorage2DEXT = (C.GPTEXTURESTORAGE2DEXT)(getProcAddr("glTextureStorage2DEXT"))
+ gpTextureStorage2DMultisample = (C.GPTEXTURESTORAGE2DMULTISAMPLE)(getProcAddr("glTextureStorage2DMultisample"))
+ gpTextureStorage2DMultisampleEXT = (C.GPTEXTURESTORAGE2DMULTISAMPLEEXT)(getProcAddr("glTextureStorage2DMultisampleEXT"))
+ gpTextureStorage3D = (C.GPTEXTURESTORAGE3D)(getProcAddr("glTextureStorage3D"))
+ gpTextureStorage3DEXT = (C.GPTEXTURESTORAGE3DEXT)(getProcAddr("glTextureStorage3DEXT"))
+ gpTextureStorage3DMultisample = (C.GPTEXTURESTORAGE3DMULTISAMPLE)(getProcAddr("glTextureStorage3DMultisample"))
+ gpTextureStorage3DMultisampleEXT = (C.GPTEXTURESTORAGE3DMULTISAMPLEEXT)(getProcAddr("glTextureStorage3DMultisampleEXT"))
+ gpTextureSubImage1D = (C.GPTEXTURESUBIMAGE1D)(getProcAddr("glTextureSubImage1D"))
+ gpTextureSubImage1DEXT = (C.GPTEXTURESUBIMAGE1DEXT)(getProcAddr("glTextureSubImage1DEXT"))
+ gpTextureSubImage2D = (C.GPTEXTURESUBIMAGE2D)(getProcAddr("glTextureSubImage2D"))
+ gpTextureSubImage2DEXT = (C.GPTEXTURESUBIMAGE2DEXT)(getProcAddr("glTextureSubImage2DEXT"))
+ gpTextureSubImage3D = (C.GPTEXTURESUBIMAGE3D)(getProcAddr("glTextureSubImage3D"))
+ gpTextureSubImage3DEXT = (C.GPTEXTURESUBIMAGE3DEXT)(getProcAddr("glTextureSubImage3DEXT"))
+ gpTextureView = (C.GPTEXTUREVIEW)(getProcAddr("glTextureView"))
+ gpTransformFeedbackBufferBase = (C.GPTRANSFORMFEEDBACKBUFFERBASE)(getProcAddr("glTransformFeedbackBufferBase"))
+ gpTransformFeedbackBufferRange = (C.GPTRANSFORMFEEDBACKBUFFERRANGE)(getProcAddr("glTransformFeedbackBufferRange"))
+ gpTransformFeedbackVaryings = (C.GPTRANSFORMFEEDBACKVARYINGS)(getProcAddr("glTransformFeedbackVaryings"))
+ if gpTransformFeedbackVaryings == nil {
+ return errors.New("glTransformFeedbackVaryings")
+ }
+ gpTransformPathNV = (C.GPTRANSFORMPATHNV)(getProcAddr("glTransformPathNV"))
+ gpUniform1d = (C.GPUNIFORM1D)(getProcAddr("glUniform1d"))
+ gpUniform1dv = (C.GPUNIFORM1DV)(getProcAddr("glUniform1dv"))
+ gpUniform1f = (C.GPUNIFORM1F)(getProcAddr("glUniform1f"))
+ if gpUniform1f == nil {
+ return errors.New("glUniform1f")
+ }
+ gpUniform1fv = (C.GPUNIFORM1FV)(getProcAddr("glUniform1fv"))
+ if gpUniform1fv == nil {
+ return errors.New("glUniform1fv")
+ }
+ gpUniform1i = (C.GPUNIFORM1I)(getProcAddr("glUniform1i"))
+ if gpUniform1i == nil {
+ return errors.New("glUniform1i")
+ }
+ gpUniform1i64ARB = (C.GPUNIFORM1I64ARB)(getProcAddr("glUniform1i64ARB"))
+ gpUniform1i64NV = (C.GPUNIFORM1I64NV)(getProcAddr("glUniform1i64NV"))
+ gpUniform1i64vARB = (C.GPUNIFORM1I64VARB)(getProcAddr("glUniform1i64vARB"))
+ gpUniform1i64vNV = (C.GPUNIFORM1I64VNV)(getProcAddr("glUniform1i64vNV"))
+ gpUniform1iv = (C.GPUNIFORM1IV)(getProcAddr("glUniform1iv"))
+ if gpUniform1iv == nil {
+ return errors.New("glUniform1iv")
+ }
+ gpUniform1ui = (C.GPUNIFORM1UI)(getProcAddr("glUniform1ui"))
+ if gpUniform1ui == nil {
+ return errors.New("glUniform1ui")
+ }
+ gpUniform1ui64ARB = (C.GPUNIFORM1UI64ARB)(getProcAddr("glUniform1ui64ARB"))
+ gpUniform1ui64NV = (C.GPUNIFORM1UI64NV)(getProcAddr("glUniform1ui64NV"))
+ gpUniform1ui64vARB = (C.GPUNIFORM1UI64VARB)(getProcAddr("glUniform1ui64vARB"))
+ gpUniform1ui64vNV = (C.GPUNIFORM1UI64VNV)(getProcAddr("glUniform1ui64vNV"))
+ gpUniform1uiv = (C.GPUNIFORM1UIV)(getProcAddr("glUniform1uiv"))
+ if gpUniform1uiv == nil {
+ return errors.New("glUniform1uiv")
+ }
+ gpUniform2d = (C.GPUNIFORM2D)(getProcAddr("glUniform2d"))
+ gpUniform2dv = (C.GPUNIFORM2DV)(getProcAddr("glUniform2dv"))
+ gpUniform2f = (C.GPUNIFORM2F)(getProcAddr("glUniform2f"))
+ if gpUniform2f == nil {
+ return errors.New("glUniform2f")
+ }
+ gpUniform2fv = (C.GPUNIFORM2FV)(getProcAddr("glUniform2fv"))
+ if gpUniform2fv == nil {
+ return errors.New("glUniform2fv")
+ }
+ gpUniform2i = (C.GPUNIFORM2I)(getProcAddr("glUniform2i"))
+ if gpUniform2i == nil {
+ return errors.New("glUniform2i")
+ }
+ gpUniform2i64ARB = (C.GPUNIFORM2I64ARB)(getProcAddr("glUniform2i64ARB"))
+ gpUniform2i64NV = (C.GPUNIFORM2I64NV)(getProcAddr("glUniform2i64NV"))
+ gpUniform2i64vARB = (C.GPUNIFORM2I64VARB)(getProcAddr("glUniform2i64vARB"))
+ gpUniform2i64vNV = (C.GPUNIFORM2I64VNV)(getProcAddr("glUniform2i64vNV"))
+ gpUniform2iv = (C.GPUNIFORM2IV)(getProcAddr("glUniform2iv"))
+ if gpUniform2iv == nil {
+ return errors.New("glUniform2iv")
+ }
+ gpUniform2ui = (C.GPUNIFORM2UI)(getProcAddr("glUniform2ui"))
+ if gpUniform2ui == nil {
+ return errors.New("glUniform2ui")
+ }
+ gpUniform2ui64ARB = (C.GPUNIFORM2UI64ARB)(getProcAddr("glUniform2ui64ARB"))
+ gpUniform2ui64NV = (C.GPUNIFORM2UI64NV)(getProcAddr("glUniform2ui64NV"))
+ gpUniform2ui64vARB = (C.GPUNIFORM2UI64VARB)(getProcAddr("glUniform2ui64vARB"))
+ gpUniform2ui64vNV = (C.GPUNIFORM2UI64VNV)(getProcAddr("glUniform2ui64vNV"))
+ gpUniform2uiv = (C.GPUNIFORM2UIV)(getProcAddr("glUniform2uiv"))
+ if gpUniform2uiv == nil {
+ return errors.New("glUniform2uiv")
+ }
+ gpUniform3d = (C.GPUNIFORM3D)(getProcAddr("glUniform3d"))
+ gpUniform3dv = (C.GPUNIFORM3DV)(getProcAddr("glUniform3dv"))
+ gpUniform3f = (C.GPUNIFORM3F)(getProcAddr("glUniform3f"))
+ if gpUniform3f == nil {
+ return errors.New("glUniform3f")
+ }
+ gpUniform3fv = (C.GPUNIFORM3FV)(getProcAddr("glUniform3fv"))
+ if gpUniform3fv == nil {
+ return errors.New("glUniform3fv")
+ }
+ gpUniform3i = (C.GPUNIFORM3I)(getProcAddr("glUniform3i"))
+ if gpUniform3i == nil {
+ return errors.New("glUniform3i")
+ }
+ gpUniform3i64ARB = (C.GPUNIFORM3I64ARB)(getProcAddr("glUniform3i64ARB"))
+ gpUniform3i64NV = (C.GPUNIFORM3I64NV)(getProcAddr("glUniform3i64NV"))
+ gpUniform3i64vARB = (C.GPUNIFORM3I64VARB)(getProcAddr("glUniform3i64vARB"))
+ gpUniform3i64vNV = (C.GPUNIFORM3I64VNV)(getProcAddr("glUniform3i64vNV"))
+ gpUniform3iv = (C.GPUNIFORM3IV)(getProcAddr("glUniform3iv"))
+ if gpUniform3iv == nil {
+ return errors.New("glUniform3iv")
+ }
+ gpUniform3ui = (C.GPUNIFORM3UI)(getProcAddr("glUniform3ui"))
+ if gpUniform3ui == nil {
+ return errors.New("glUniform3ui")
+ }
+ gpUniform3ui64ARB = (C.GPUNIFORM3UI64ARB)(getProcAddr("glUniform3ui64ARB"))
+ gpUniform3ui64NV = (C.GPUNIFORM3UI64NV)(getProcAddr("glUniform3ui64NV"))
+ gpUniform3ui64vARB = (C.GPUNIFORM3UI64VARB)(getProcAddr("glUniform3ui64vARB"))
+ gpUniform3ui64vNV = (C.GPUNIFORM3UI64VNV)(getProcAddr("glUniform3ui64vNV"))
+ gpUniform3uiv = (C.GPUNIFORM3UIV)(getProcAddr("glUniform3uiv"))
+ if gpUniform3uiv == nil {
+ return errors.New("glUniform3uiv")
+ }
+ gpUniform4d = (C.GPUNIFORM4D)(getProcAddr("glUniform4d"))
+ gpUniform4dv = (C.GPUNIFORM4DV)(getProcAddr("glUniform4dv"))
+ gpUniform4f = (C.GPUNIFORM4F)(getProcAddr("glUniform4f"))
+ if gpUniform4f == nil {
+ return errors.New("glUniform4f")
+ }
+ gpUniform4fv = (C.GPUNIFORM4FV)(getProcAddr("glUniform4fv"))
+ if gpUniform4fv == nil {
+ return errors.New("glUniform4fv")
+ }
+ gpUniform4i = (C.GPUNIFORM4I)(getProcAddr("glUniform4i"))
+ if gpUniform4i == nil {
+ return errors.New("glUniform4i")
+ }
+ gpUniform4i64ARB = (C.GPUNIFORM4I64ARB)(getProcAddr("glUniform4i64ARB"))
+ gpUniform4i64NV = (C.GPUNIFORM4I64NV)(getProcAddr("glUniform4i64NV"))
+ gpUniform4i64vARB = (C.GPUNIFORM4I64VARB)(getProcAddr("glUniform4i64vARB"))
+ gpUniform4i64vNV = (C.GPUNIFORM4I64VNV)(getProcAddr("glUniform4i64vNV"))
+ gpUniform4iv = (C.GPUNIFORM4IV)(getProcAddr("glUniform4iv"))
+ if gpUniform4iv == nil {
+ return errors.New("glUniform4iv")
+ }
+ gpUniform4ui = (C.GPUNIFORM4UI)(getProcAddr("glUniform4ui"))
+ if gpUniform4ui == nil {
+ return errors.New("glUniform4ui")
+ }
+ gpUniform4ui64ARB = (C.GPUNIFORM4UI64ARB)(getProcAddr("glUniform4ui64ARB"))
+ gpUniform4ui64NV = (C.GPUNIFORM4UI64NV)(getProcAddr("glUniform4ui64NV"))
+ gpUniform4ui64vARB = (C.GPUNIFORM4UI64VARB)(getProcAddr("glUniform4ui64vARB"))
+ gpUniform4ui64vNV = (C.GPUNIFORM4UI64VNV)(getProcAddr("glUniform4ui64vNV"))
+ gpUniform4uiv = (C.GPUNIFORM4UIV)(getProcAddr("glUniform4uiv"))
+ if gpUniform4uiv == nil {
+ return errors.New("glUniform4uiv")
+ }
+ gpUniformBlockBinding = (C.GPUNIFORMBLOCKBINDING)(getProcAddr("glUniformBlockBinding"))
+ if gpUniformBlockBinding == nil {
+ return errors.New("glUniformBlockBinding")
+ }
+ gpUniformHandleui64ARB = (C.GPUNIFORMHANDLEUI64ARB)(getProcAddr("glUniformHandleui64ARB"))
+ gpUniformHandleui64NV = (C.GPUNIFORMHANDLEUI64NV)(getProcAddr("glUniformHandleui64NV"))
+ gpUniformHandleui64vARB = (C.GPUNIFORMHANDLEUI64VARB)(getProcAddr("glUniformHandleui64vARB"))
+ gpUniformHandleui64vNV = (C.GPUNIFORMHANDLEUI64VNV)(getProcAddr("glUniformHandleui64vNV"))
+ gpUniformMatrix2dv = (C.GPUNIFORMMATRIX2DV)(getProcAddr("glUniformMatrix2dv"))
+ gpUniformMatrix2fv = (C.GPUNIFORMMATRIX2FV)(getProcAddr("glUniformMatrix2fv"))
+ if gpUniformMatrix2fv == nil {
+ return errors.New("glUniformMatrix2fv")
+ }
+ gpUniformMatrix2x3dv = (C.GPUNIFORMMATRIX2X3DV)(getProcAddr("glUniformMatrix2x3dv"))
+ gpUniformMatrix2x3fv = (C.GPUNIFORMMATRIX2X3FV)(getProcAddr("glUniformMatrix2x3fv"))
+ if gpUniformMatrix2x3fv == nil {
+ return errors.New("glUniformMatrix2x3fv")
+ }
+ gpUniformMatrix2x4dv = (C.GPUNIFORMMATRIX2X4DV)(getProcAddr("glUniformMatrix2x4dv"))
+ gpUniformMatrix2x4fv = (C.GPUNIFORMMATRIX2X4FV)(getProcAddr("glUniformMatrix2x4fv"))
+ if gpUniformMatrix2x4fv == nil {
+ return errors.New("glUniformMatrix2x4fv")
+ }
+ gpUniformMatrix3dv = (C.GPUNIFORMMATRIX3DV)(getProcAddr("glUniformMatrix3dv"))
+ gpUniformMatrix3fv = (C.GPUNIFORMMATRIX3FV)(getProcAddr("glUniformMatrix3fv"))
+ if gpUniformMatrix3fv == nil {
+ return errors.New("glUniformMatrix3fv")
+ }
+ gpUniformMatrix3x2dv = (C.GPUNIFORMMATRIX3X2DV)(getProcAddr("glUniformMatrix3x2dv"))
+ gpUniformMatrix3x2fv = (C.GPUNIFORMMATRIX3X2FV)(getProcAddr("glUniformMatrix3x2fv"))
+ if gpUniformMatrix3x2fv == nil {
+ return errors.New("glUniformMatrix3x2fv")
+ }
+ gpUniformMatrix3x4dv = (C.GPUNIFORMMATRIX3X4DV)(getProcAddr("glUniformMatrix3x4dv"))
+ gpUniformMatrix3x4fv = (C.GPUNIFORMMATRIX3X4FV)(getProcAddr("glUniformMatrix3x4fv"))
+ if gpUniformMatrix3x4fv == nil {
+ return errors.New("glUniformMatrix3x4fv")
+ }
+ gpUniformMatrix4dv = (C.GPUNIFORMMATRIX4DV)(getProcAddr("glUniformMatrix4dv"))
+ gpUniformMatrix4fv = (C.GPUNIFORMMATRIX4FV)(getProcAddr("glUniformMatrix4fv"))
+ if gpUniformMatrix4fv == nil {
+ return errors.New("glUniformMatrix4fv")
+ }
+ gpUniformMatrix4x2dv = (C.GPUNIFORMMATRIX4X2DV)(getProcAddr("glUniformMatrix4x2dv"))
+ gpUniformMatrix4x2fv = (C.GPUNIFORMMATRIX4X2FV)(getProcAddr("glUniformMatrix4x2fv"))
+ if gpUniformMatrix4x2fv == nil {
+ return errors.New("glUniformMatrix4x2fv")
+ }
+ gpUniformMatrix4x3dv = (C.GPUNIFORMMATRIX4X3DV)(getProcAddr("glUniformMatrix4x3dv"))
+ gpUniformMatrix4x3fv = (C.GPUNIFORMMATRIX4X3FV)(getProcAddr("glUniformMatrix4x3fv"))
+ if gpUniformMatrix4x3fv == nil {
+ return errors.New("glUniformMatrix4x3fv")
+ }
+ gpUniformSubroutinesuiv = (C.GPUNIFORMSUBROUTINESUIV)(getProcAddr("glUniformSubroutinesuiv"))
+ gpUniformui64NV = (C.GPUNIFORMUI64NV)(getProcAddr("glUniformui64NV"))
+ gpUniformui64vNV = (C.GPUNIFORMUI64VNV)(getProcAddr("glUniformui64vNV"))
+ gpUnmapBuffer = (C.GPUNMAPBUFFER)(getProcAddr("glUnmapBuffer"))
+ if gpUnmapBuffer == nil {
+ return errors.New("glUnmapBuffer")
+ }
+ gpUnmapNamedBuffer = (C.GPUNMAPNAMEDBUFFER)(getProcAddr("glUnmapNamedBuffer"))
+ gpUnmapNamedBufferEXT = (C.GPUNMAPNAMEDBUFFEREXT)(getProcAddr("glUnmapNamedBufferEXT"))
+ gpUseProgram = (C.GPUSEPROGRAM)(getProcAddr("glUseProgram"))
+ if gpUseProgram == nil {
+ return errors.New("glUseProgram")
+ }
+ gpUseProgramStages = (C.GPUSEPROGRAMSTAGES)(getProcAddr("glUseProgramStages"))
+ gpUseProgramStagesEXT = (C.GPUSEPROGRAMSTAGESEXT)(getProcAddr("glUseProgramStagesEXT"))
+ gpUseShaderProgramEXT = (C.GPUSESHADERPROGRAMEXT)(getProcAddr("glUseShaderProgramEXT"))
+ gpValidateProgram = (C.GPVALIDATEPROGRAM)(getProcAddr("glValidateProgram"))
+ if gpValidateProgram == nil {
+ return errors.New("glValidateProgram")
+ }
+ gpValidateProgramPipeline = (C.GPVALIDATEPROGRAMPIPELINE)(getProcAddr("glValidateProgramPipeline"))
+ gpValidateProgramPipelineEXT = (C.GPVALIDATEPROGRAMPIPELINEEXT)(getProcAddr("glValidateProgramPipelineEXT"))
+ gpVertexArrayAttribBinding = (C.GPVERTEXARRAYATTRIBBINDING)(getProcAddr("glVertexArrayAttribBinding"))
+ gpVertexArrayAttribFormat = (C.GPVERTEXARRAYATTRIBFORMAT)(getProcAddr("glVertexArrayAttribFormat"))
+ gpVertexArrayAttribIFormat = (C.GPVERTEXARRAYATTRIBIFORMAT)(getProcAddr("glVertexArrayAttribIFormat"))
+ gpVertexArrayAttribLFormat = (C.GPVERTEXARRAYATTRIBLFORMAT)(getProcAddr("glVertexArrayAttribLFormat"))
+ gpVertexArrayBindVertexBufferEXT = (C.GPVERTEXARRAYBINDVERTEXBUFFEREXT)(getProcAddr("glVertexArrayBindVertexBufferEXT"))
+ gpVertexArrayBindingDivisor = (C.GPVERTEXARRAYBINDINGDIVISOR)(getProcAddr("glVertexArrayBindingDivisor"))
+ gpVertexArrayColorOffsetEXT = (C.GPVERTEXARRAYCOLOROFFSETEXT)(getProcAddr("glVertexArrayColorOffsetEXT"))
+ gpVertexArrayEdgeFlagOffsetEXT = (C.GPVERTEXARRAYEDGEFLAGOFFSETEXT)(getProcAddr("glVertexArrayEdgeFlagOffsetEXT"))
+ gpVertexArrayElementBuffer = (C.GPVERTEXARRAYELEMENTBUFFER)(getProcAddr("glVertexArrayElementBuffer"))
+ gpVertexArrayFogCoordOffsetEXT = (C.GPVERTEXARRAYFOGCOORDOFFSETEXT)(getProcAddr("glVertexArrayFogCoordOffsetEXT"))
+ gpVertexArrayIndexOffsetEXT = (C.GPVERTEXARRAYINDEXOFFSETEXT)(getProcAddr("glVertexArrayIndexOffsetEXT"))
+ gpVertexArrayMultiTexCoordOffsetEXT = (C.GPVERTEXARRAYMULTITEXCOORDOFFSETEXT)(getProcAddr("glVertexArrayMultiTexCoordOffsetEXT"))
+ gpVertexArrayNormalOffsetEXT = (C.GPVERTEXARRAYNORMALOFFSETEXT)(getProcAddr("glVertexArrayNormalOffsetEXT"))
+ gpVertexArraySecondaryColorOffsetEXT = (C.GPVERTEXARRAYSECONDARYCOLOROFFSETEXT)(getProcAddr("glVertexArraySecondaryColorOffsetEXT"))
+ gpVertexArrayTexCoordOffsetEXT = (C.GPVERTEXARRAYTEXCOORDOFFSETEXT)(getProcAddr("glVertexArrayTexCoordOffsetEXT"))
+ gpVertexArrayVertexAttribBindingEXT = (C.GPVERTEXARRAYVERTEXATTRIBBINDINGEXT)(getProcAddr("glVertexArrayVertexAttribBindingEXT"))
+ gpVertexArrayVertexAttribDivisorEXT = (C.GPVERTEXARRAYVERTEXATTRIBDIVISOREXT)(getProcAddr("glVertexArrayVertexAttribDivisorEXT"))
+ gpVertexArrayVertexAttribFormatEXT = (C.GPVERTEXARRAYVERTEXATTRIBFORMATEXT)(getProcAddr("glVertexArrayVertexAttribFormatEXT"))
+ gpVertexArrayVertexAttribIFormatEXT = (C.GPVERTEXARRAYVERTEXATTRIBIFORMATEXT)(getProcAddr("glVertexArrayVertexAttribIFormatEXT"))
+ gpVertexArrayVertexAttribIOffsetEXT = (C.GPVERTEXARRAYVERTEXATTRIBIOFFSETEXT)(getProcAddr("glVertexArrayVertexAttribIOffsetEXT"))
+ gpVertexArrayVertexAttribLFormatEXT = (C.GPVERTEXARRAYVERTEXATTRIBLFORMATEXT)(getProcAddr("glVertexArrayVertexAttribLFormatEXT"))
+ gpVertexArrayVertexAttribLOffsetEXT = (C.GPVERTEXARRAYVERTEXATTRIBLOFFSETEXT)(getProcAddr("glVertexArrayVertexAttribLOffsetEXT"))
+ gpVertexArrayVertexAttribOffsetEXT = (C.GPVERTEXARRAYVERTEXATTRIBOFFSETEXT)(getProcAddr("glVertexArrayVertexAttribOffsetEXT"))
+ gpVertexArrayVertexBindingDivisorEXT = (C.GPVERTEXARRAYVERTEXBINDINGDIVISOREXT)(getProcAddr("glVertexArrayVertexBindingDivisorEXT"))
+ gpVertexArrayVertexBuffer = (C.GPVERTEXARRAYVERTEXBUFFER)(getProcAddr("glVertexArrayVertexBuffer"))
+ gpVertexArrayVertexBuffers = (C.GPVERTEXARRAYVERTEXBUFFERS)(getProcAddr("glVertexArrayVertexBuffers"))
+ gpVertexArrayVertexOffsetEXT = (C.GPVERTEXARRAYVERTEXOFFSETEXT)(getProcAddr("glVertexArrayVertexOffsetEXT"))
+ gpVertexAttrib1d = (C.GPVERTEXATTRIB1D)(getProcAddr("glVertexAttrib1d"))
+ if gpVertexAttrib1d == nil {
+ return errors.New("glVertexAttrib1d")
+ }
+ gpVertexAttrib1dv = (C.GPVERTEXATTRIB1DV)(getProcAddr("glVertexAttrib1dv"))
+ if gpVertexAttrib1dv == nil {
+ return errors.New("glVertexAttrib1dv")
+ }
+ gpVertexAttrib1f = (C.GPVERTEXATTRIB1F)(getProcAddr("glVertexAttrib1f"))
+ if gpVertexAttrib1f == nil {
+ return errors.New("glVertexAttrib1f")
+ }
+ gpVertexAttrib1fv = (C.GPVERTEXATTRIB1FV)(getProcAddr("glVertexAttrib1fv"))
+ if gpVertexAttrib1fv == nil {
+ return errors.New("glVertexAttrib1fv")
+ }
+ gpVertexAttrib1s = (C.GPVERTEXATTRIB1S)(getProcAddr("glVertexAttrib1s"))
+ if gpVertexAttrib1s == nil {
+ return errors.New("glVertexAttrib1s")
+ }
+ gpVertexAttrib1sv = (C.GPVERTEXATTRIB1SV)(getProcAddr("glVertexAttrib1sv"))
+ if gpVertexAttrib1sv == nil {
+ return errors.New("glVertexAttrib1sv")
+ }
+ gpVertexAttrib2d = (C.GPVERTEXATTRIB2D)(getProcAddr("glVertexAttrib2d"))
+ if gpVertexAttrib2d == nil {
+ return errors.New("glVertexAttrib2d")
+ }
+ gpVertexAttrib2dv = (C.GPVERTEXATTRIB2DV)(getProcAddr("glVertexAttrib2dv"))
+ if gpVertexAttrib2dv == nil {
+ return errors.New("glVertexAttrib2dv")
+ }
+ gpVertexAttrib2f = (C.GPVERTEXATTRIB2F)(getProcAddr("glVertexAttrib2f"))
+ if gpVertexAttrib2f == nil {
+ return errors.New("glVertexAttrib2f")
+ }
+ gpVertexAttrib2fv = (C.GPVERTEXATTRIB2FV)(getProcAddr("glVertexAttrib2fv"))
+ if gpVertexAttrib2fv == nil {
+ return errors.New("glVertexAttrib2fv")
+ }
+ gpVertexAttrib2s = (C.GPVERTEXATTRIB2S)(getProcAddr("glVertexAttrib2s"))
+ if gpVertexAttrib2s == nil {
+ return errors.New("glVertexAttrib2s")
+ }
+ gpVertexAttrib2sv = (C.GPVERTEXATTRIB2SV)(getProcAddr("glVertexAttrib2sv"))
+ if gpVertexAttrib2sv == nil {
+ return errors.New("glVertexAttrib2sv")
+ }
+ gpVertexAttrib3d = (C.GPVERTEXATTRIB3D)(getProcAddr("glVertexAttrib3d"))
+ if gpVertexAttrib3d == nil {
+ return errors.New("glVertexAttrib3d")
+ }
+ gpVertexAttrib3dv = (C.GPVERTEXATTRIB3DV)(getProcAddr("glVertexAttrib3dv"))
+ if gpVertexAttrib3dv == nil {
+ return errors.New("glVertexAttrib3dv")
+ }
+ gpVertexAttrib3f = (C.GPVERTEXATTRIB3F)(getProcAddr("glVertexAttrib3f"))
+ if gpVertexAttrib3f == nil {
+ return errors.New("glVertexAttrib3f")
+ }
+ gpVertexAttrib3fv = (C.GPVERTEXATTRIB3FV)(getProcAddr("glVertexAttrib3fv"))
+ if gpVertexAttrib3fv == nil {
+ return errors.New("glVertexAttrib3fv")
+ }
+ gpVertexAttrib3s = (C.GPVERTEXATTRIB3S)(getProcAddr("glVertexAttrib3s"))
+ if gpVertexAttrib3s == nil {
+ return errors.New("glVertexAttrib3s")
+ }
+ gpVertexAttrib3sv = (C.GPVERTEXATTRIB3SV)(getProcAddr("glVertexAttrib3sv"))
+ if gpVertexAttrib3sv == nil {
+ return errors.New("glVertexAttrib3sv")
+ }
+ gpVertexAttrib4Nbv = (C.GPVERTEXATTRIB4NBV)(getProcAddr("glVertexAttrib4Nbv"))
+ if gpVertexAttrib4Nbv == nil {
+ return errors.New("glVertexAttrib4Nbv")
+ }
+ gpVertexAttrib4Niv = (C.GPVERTEXATTRIB4NIV)(getProcAddr("glVertexAttrib4Niv"))
+ if gpVertexAttrib4Niv == nil {
+ return errors.New("glVertexAttrib4Niv")
+ }
+ gpVertexAttrib4Nsv = (C.GPVERTEXATTRIB4NSV)(getProcAddr("glVertexAttrib4Nsv"))
+ if gpVertexAttrib4Nsv == nil {
+ return errors.New("glVertexAttrib4Nsv")
+ }
+ gpVertexAttrib4Nub = (C.GPVERTEXATTRIB4NUB)(getProcAddr("glVertexAttrib4Nub"))
+ if gpVertexAttrib4Nub == nil {
+ return errors.New("glVertexAttrib4Nub")
+ }
+ gpVertexAttrib4Nubv = (C.GPVERTEXATTRIB4NUBV)(getProcAddr("glVertexAttrib4Nubv"))
+ if gpVertexAttrib4Nubv == nil {
+ return errors.New("glVertexAttrib4Nubv")
+ }
+ gpVertexAttrib4Nuiv = (C.GPVERTEXATTRIB4NUIV)(getProcAddr("glVertexAttrib4Nuiv"))
+ if gpVertexAttrib4Nuiv == nil {
+ return errors.New("glVertexAttrib4Nuiv")
+ }
+ gpVertexAttrib4Nusv = (C.GPVERTEXATTRIB4NUSV)(getProcAddr("glVertexAttrib4Nusv"))
+ if gpVertexAttrib4Nusv == nil {
+ return errors.New("glVertexAttrib4Nusv")
+ }
+ gpVertexAttrib4bv = (C.GPVERTEXATTRIB4BV)(getProcAddr("glVertexAttrib4bv"))
+ if gpVertexAttrib4bv == nil {
+ return errors.New("glVertexAttrib4bv")
+ }
+ gpVertexAttrib4d = (C.GPVERTEXATTRIB4D)(getProcAddr("glVertexAttrib4d"))
+ if gpVertexAttrib4d == nil {
+ return errors.New("glVertexAttrib4d")
+ }
+ gpVertexAttrib4dv = (C.GPVERTEXATTRIB4DV)(getProcAddr("glVertexAttrib4dv"))
+ if gpVertexAttrib4dv == nil {
+ return errors.New("glVertexAttrib4dv")
+ }
+ gpVertexAttrib4f = (C.GPVERTEXATTRIB4F)(getProcAddr("glVertexAttrib4f"))
+ if gpVertexAttrib4f == nil {
+ return errors.New("glVertexAttrib4f")
+ }
+ gpVertexAttrib4fv = (C.GPVERTEXATTRIB4FV)(getProcAddr("glVertexAttrib4fv"))
+ if gpVertexAttrib4fv == nil {
+ return errors.New("glVertexAttrib4fv")
+ }
+ gpVertexAttrib4iv = (C.GPVERTEXATTRIB4IV)(getProcAddr("glVertexAttrib4iv"))
+ if gpVertexAttrib4iv == nil {
+ return errors.New("glVertexAttrib4iv")
+ }
+ gpVertexAttrib4s = (C.GPVERTEXATTRIB4S)(getProcAddr("glVertexAttrib4s"))
+ if gpVertexAttrib4s == nil {
+ return errors.New("glVertexAttrib4s")
+ }
+ gpVertexAttrib4sv = (C.GPVERTEXATTRIB4SV)(getProcAddr("glVertexAttrib4sv"))
+ if gpVertexAttrib4sv == nil {
+ return errors.New("glVertexAttrib4sv")
+ }
+ gpVertexAttrib4ubv = (C.GPVERTEXATTRIB4UBV)(getProcAddr("glVertexAttrib4ubv"))
+ if gpVertexAttrib4ubv == nil {
+ return errors.New("glVertexAttrib4ubv")
+ }
+ gpVertexAttrib4uiv = (C.GPVERTEXATTRIB4UIV)(getProcAddr("glVertexAttrib4uiv"))
+ if gpVertexAttrib4uiv == nil {
+ return errors.New("glVertexAttrib4uiv")
+ }
+ gpVertexAttrib4usv = (C.GPVERTEXATTRIB4USV)(getProcAddr("glVertexAttrib4usv"))
+ if gpVertexAttrib4usv == nil {
+ return errors.New("glVertexAttrib4usv")
+ }
+ gpVertexAttribBinding = (C.GPVERTEXATTRIBBINDING)(getProcAddr("glVertexAttribBinding"))
+ gpVertexAttribDivisor = (C.GPVERTEXATTRIBDIVISOR)(getProcAddr("glVertexAttribDivisor"))
+ if gpVertexAttribDivisor == nil {
+ return errors.New("glVertexAttribDivisor")
+ }
+ gpVertexAttribDivisorARB = (C.GPVERTEXATTRIBDIVISORARB)(getProcAddr("glVertexAttribDivisorARB"))
+ gpVertexAttribFormat = (C.GPVERTEXATTRIBFORMAT)(getProcAddr("glVertexAttribFormat"))
+ gpVertexAttribFormatNV = (C.GPVERTEXATTRIBFORMATNV)(getProcAddr("glVertexAttribFormatNV"))
+ gpVertexAttribI1i = (C.GPVERTEXATTRIBI1I)(getProcAddr("glVertexAttribI1i"))
+ if gpVertexAttribI1i == nil {
+ return errors.New("glVertexAttribI1i")
+ }
+ gpVertexAttribI1iv = (C.GPVERTEXATTRIBI1IV)(getProcAddr("glVertexAttribI1iv"))
+ if gpVertexAttribI1iv == nil {
+ return errors.New("glVertexAttribI1iv")
+ }
+ gpVertexAttribI1ui = (C.GPVERTEXATTRIBI1UI)(getProcAddr("glVertexAttribI1ui"))
+ if gpVertexAttribI1ui == nil {
+ return errors.New("glVertexAttribI1ui")
+ }
+ gpVertexAttribI1uiv = (C.GPVERTEXATTRIBI1UIV)(getProcAddr("glVertexAttribI1uiv"))
+ if gpVertexAttribI1uiv == nil {
+ return errors.New("glVertexAttribI1uiv")
+ }
+ gpVertexAttribI2i = (C.GPVERTEXATTRIBI2I)(getProcAddr("glVertexAttribI2i"))
+ if gpVertexAttribI2i == nil {
+ return errors.New("glVertexAttribI2i")
+ }
+ gpVertexAttribI2iv = (C.GPVERTEXATTRIBI2IV)(getProcAddr("glVertexAttribI2iv"))
+ if gpVertexAttribI2iv == nil {
+ return errors.New("glVertexAttribI2iv")
+ }
+ gpVertexAttribI2ui = (C.GPVERTEXATTRIBI2UI)(getProcAddr("glVertexAttribI2ui"))
+ if gpVertexAttribI2ui == nil {
+ return errors.New("glVertexAttribI2ui")
+ }
+ gpVertexAttribI2uiv = (C.GPVERTEXATTRIBI2UIV)(getProcAddr("glVertexAttribI2uiv"))
+ if gpVertexAttribI2uiv == nil {
+ return errors.New("glVertexAttribI2uiv")
+ }
+ gpVertexAttribI3i = (C.GPVERTEXATTRIBI3I)(getProcAddr("glVertexAttribI3i"))
+ if gpVertexAttribI3i == nil {
+ return errors.New("glVertexAttribI3i")
+ }
+ gpVertexAttribI3iv = (C.GPVERTEXATTRIBI3IV)(getProcAddr("glVertexAttribI3iv"))
+ if gpVertexAttribI3iv == nil {
+ return errors.New("glVertexAttribI3iv")
+ }
+ gpVertexAttribI3ui = (C.GPVERTEXATTRIBI3UI)(getProcAddr("glVertexAttribI3ui"))
+ if gpVertexAttribI3ui == nil {
+ return errors.New("glVertexAttribI3ui")
+ }
+ gpVertexAttribI3uiv = (C.GPVERTEXATTRIBI3UIV)(getProcAddr("glVertexAttribI3uiv"))
+ if gpVertexAttribI3uiv == nil {
+ return errors.New("glVertexAttribI3uiv")
+ }
+ gpVertexAttribI4bv = (C.GPVERTEXATTRIBI4BV)(getProcAddr("glVertexAttribI4bv"))
+ if gpVertexAttribI4bv == nil {
+ return errors.New("glVertexAttribI4bv")
+ }
+ gpVertexAttribI4i = (C.GPVERTEXATTRIBI4I)(getProcAddr("glVertexAttribI4i"))
+ if gpVertexAttribI4i == nil {
+ return errors.New("glVertexAttribI4i")
+ }
+ gpVertexAttribI4iv = (C.GPVERTEXATTRIBI4IV)(getProcAddr("glVertexAttribI4iv"))
+ if gpVertexAttribI4iv == nil {
+ return errors.New("glVertexAttribI4iv")
+ }
+ gpVertexAttribI4sv = (C.GPVERTEXATTRIBI4SV)(getProcAddr("glVertexAttribI4sv"))
+ if gpVertexAttribI4sv == nil {
+ return errors.New("glVertexAttribI4sv")
+ }
+ gpVertexAttribI4ubv = (C.GPVERTEXATTRIBI4UBV)(getProcAddr("glVertexAttribI4ubv"))
+ if gpVertexAttribI4ubv == nil {
+ return errors.New("glVertexAttribI4ubv")
+ }
+ gpVertexAttribI4ui = (C.GPVERTEXATTRIBI4UI)(getProcAddr("glVertexAttribI4ui"))
+ if gpVertexAttribI4ui == nil {
+ return errors.New("glVertexAttribI4ui")
+ }
+ gpVertexAttribI4uiv = (C.GPVERTEXATTRIBI4UIV)(getProcAddr("glVertexAttribI4uiv"))
+ if gpVertexAttribI4uiv == nil {
+ return errors.New("glVertexAttribI4uiv")
+ }
+ gpVertexAttribI4usv = (C.GPVERTEXATTRIBI4USV)(getProcAddr("glVertexAttribI4usv"))
+ if gpVertexAttribI4usv == nil {
+ return errors.New("glVertexAttribI4usv")
+ }
+ gpVertexAttribIFormat = (C.GPVERTEXATTRIBIFORMAT)(getProcAddr("glVertexAttribIFormat"))
+ gpVertexAttribIFormatNV = (C.GPVERTEXATTRIBIFORMATNV)(getProcAddr("glVertexAttribIFormatNV"))
+ gpVertexAttribIPointer = (C.GPVERTEXATTRIBIPOINTER)(getProcAddr("glVertexAttribIPointer"))
+ if gpVertexAttribIPointer == nil {
+ return errors.New("glVertexAttribIPointer")
+ }
+ gpVertexAttribL1d = (C.GPVERTEXATTRIBL1D)(getProcAddr("glVertexAttribL1d"))
+ gpVertexAttribL1dv = (C.GPVERTEXATTRIBL1DV)(getProcAddr("glVertexAttribL1dv"))
+ gpVertexAttribL1i64NV = (C.GPVERTEXATTRIBL1I64NV)(getProcAddr("glVertexAttribL1i64NV"))
+ gpVertexAttribL1i64vNV = (C.GPVERTEXATTRIBL1I64VNV)(getProcAddr("glVertexAttribL1i64vNV"))
+ gpVertexAttribL1ui64ARB = (C.GPVERTEXATTRIBL1UI64ARB)(getProcAddr("glVertexAttribL1ui64ARB"))
+ gpVertexAttribL1ui64NV = (C.GPVERTEXATTRIBL1UI64NV)(getProcAddr("glVertexAttribL1ui64NV"))
+ gpVertexAttribL1ui64vARB = (C.GPVERTEXATTRIBL1UI64VARB)(getProcAddr("glVertexAttribL1ui64vARB"))
+ gpVertexAttribL1ui64vNV = (C.GPVERTEXATTRIBL1UI64VNV)(getProcAddr("glVertexAttribL1ui64vNV"))
+ gpVertexAttribL2d = (C.GPVERTEXATTRIBL2D)(getProcAddr("glVertexAttribL2d"))
+ gpVertexAttribL2dv = (C.GPVERTEXATTRIBL2DV)(getProcAddr("glVertexAttribL2dv"))
+ gpVertexAttribL2i64NV = (C.GPVERTEXATTRIBL2I64NV)(getProcAddr("glVertexAttribL2i64NV"))
+ gpVertexAttribL2i64vNV = (C.GPVERTEXATTRIBL2I64VNV)(getProcAddr("glVertexAttribL2i64vNV"))
+ gpVertexAttribL2ui64NV = (C.GPVERTEXATTRIBL2UI64NV)(getProcAddr("glVertexAttribL2ui64NV"))
+ gpVertexAttribL2ui64vNV = (C.GPVERTEXATTRIBL2UI64VNV)(getProcAddr("glVertexAttribL2ui64vNV"))
+ gpVertexAttribL3d = (C.GPVERTEXATTRIBL3D)(getProcAddr("glVertexAttribL3d"))
+ gpVertexAttribL3dv = (C.GPVERTEXATTRIBL3DV)(getProcAddr("glVertexAttribL3dv"))
+ gpVertexAttribL3i64NV = (C.GPVERTEXATTRIBL3I64NV)(getProcAddr("glVertexAttribL3i64NV"))
+ gpVertexAttribL3i64vNV = (C.GPVERTEXATTRIBL3I64VNV)(getProcAddr("glVertexAttribL3i64vNV"))
+ gpVertexAttribL3ui64NV = (C.GPVERTEXATTRIBL3UI64NV)(getProcAddr("glVertexAttribL3ui64NV"))
+ gpVertexAttribL3ui64vNV = (C.GPVERTEXATTRIBL3UI64VNV)(getProcAddr("glVertexAttribL3ui64vNV"))
+ gpVertexAttribL4d = (C.GPVERTEXATTRIBL4D)(getProcAddr("glVertexAttribL4d"))
+ gpVertexAttribL4dv = (C.GPVERTEXATTRIBL4DV)(getProcAddr("glVertexAttribL4dv"))
+ gpVertexAttribL4i64NV = (C.GPVERTEXATTRIBL4I64NV)(getProcAddr("glVertexAttribL4i64NV"))
+ gpVertexAttribL4i64vNV = (C.GPVERTEXATTRIBL4I64VNV)(getProcAddr("glVertexAttribL4i64vNV"))
+ gpVertexAttribL4ui64NV = (C.GPVERTEXATTRIBL4UI64NV)(getProcAddr("glVertexAttribL4ui64NV"))
+ gpVertexAttribL4ui64vNV = (C.GPVERTEXATTRIBL4UI64VNV)(getProcAddr("glVertexAttribL4ui64vNV"))
+ gpVertexAttribLFormat = (C.GPVERTEXATTRIBLFORMAT)(getProcAddr("glVertexAttribLFormat"))
+ gpVertexAttribLFormatNV = (C.GPVERTEXATTRIBLFORMATNV)(getProcAddr("glVertexAttribLFormatNV"))
+ gpVertexAttribLPointer = (C.GPVERTEXATTRIBLPOINTER)(getProcAddr("glVertexAttribLPointer"))
+ gpVertexAttribP1ui = (C.GPVERTEXATTRIBP1UI)(getProcAddr("glVertexAttribP1ui"))
+ if gpVertexAttribP1ui == nil {
+ return errors.New("glVertexAttribP1ui")
+ }
+ gpVertexAttribP1uiv = (C.GPVERTEXATTRIBP1UIV)(getProcAddr("glVertexAttribP1uiv"))
+ if gpVertexAttribP1uiv == nil {
+ return errors.New("glVertexAttribP1uiv")
+ }
+ gpVertexAttribP2ui = (C.GPVERTEXATTRIBP2UI)(getProcAddr("glVertexAttribP2ui"))
+ if gpVertexAttribP2ui == nil {
+ return errors.New("glVertexAttribP2ui")
+ }
+ gpVertexAttribP2uiv = (C.GPVERTEXATTRIBP2UIV)(getProcAddr("glVertexAttribP2uiv"))
+ if gpVertexAttribP2uiv == nil {
+ return errors.New("glVertexAttribP2uiv")
+ }
+ gpVertexAttribP3ui = (C.GPVERTEXATTRIBP3UI)(getProcAddr("glVertexAttribP3ui"))
+ if gpVertexAttribP3ui == nil {
+ return errors.New("glVertexAttribP3ui")
+ }
+ gpVertexAttribP3uiv = (C.GPVERTEXATTRIBP3UIV)(getProcAddr("glVertexAttribP3uiv"))
+ if gpVertexAttribP3uiv == nil {
+ return errors.New("glVertexAttribP3uiv")
+ }
+ gpVertexAttribP4ui = (C.GPVERTEXATTRIBP4UI)(getProcAddr("glVertexAttribP4ui"))
+ if gpVertexAttribP4ui == nil {
+ return errors.New("glVertexAttribP4ui")
+ }
+ gpVertexAttribP4uiv = (C.GPVERTEXATTRIBP4UIV)(getProcAddr("glVertexAttribP4uiv"))
+ if gpVertexAttribP4uiv == nil {
+ return errors.New("glVertexAttribP4uiv")
+ }
+ gpVertexAttribPointer = (C.GPVERTEXATTRIBPOINTER)(getProcAddr("glVertexAttribPointer"))
+ if gpVertexAttribPointer == nil {
+ return errors.New("glVertexAttribPointer")
+ }
+ gpVertexBindingDivisor = (C.GPVERTEXBINDINGDIVISOR)(getProcAddr("glVertexBindingDivisor"))
+ gpVertexFormatNV = (C.GPVERTEXFORMATNV)(getProcAddr("glVertexFormatNV"))
+ gpViewport = (C.GPVIEWPORT)(getProcAddr("glViewport"))
+ if gpViewport == nil {
+ return errors.New("glViewport")
+ }
+ gpViewportArrayv = (C.GPVIEWPORTARRAYV)(getProcAddr("glViewportArrayv"))
+ gpViewportIndexedf = (C.GPVIEWPORTINDEXEDF)(getProcAddr("glViewportIndexedf"))
+ gpViewportIndexedfv = (C.GPVIEWPORTINDEXEDFV)(getProcAddr("glViewportIndexedfv"))
+ gpViewportPositionWScaleNV = (C.GPVIEWPORTPOSITIONWSCALENV)(getProcAddr("glViewportPositionWScaleNV"))
+ gpViewportSwizzleNV = (C.GPVIEWPORTSWIZZLENV)(getProcAddr("glViewportSwizzleNV"))
+ gpWaitSync = (C.GPWAITSYNC)(getProcAddr("glWaitSync"))
+ if gpWaitSync == nil {
+ return errors.New("glWaitSync")
+ }
+ gpWaitVkSemaphoreNV = (C.GPWAITVKSEMAPHORENV)(getProcAddr("glWaitVkSemaphoreNV"))
+ gpWeightPathsNV = (C.GPWEIGHTPATHSNV)(getProcAddr("glWeightPathsNV"))
+ gpWindowRectanglesEXT = (C.GPWINDOWRECTANGLESEXT)(getProcAddr("glWindowRectanglesEXT"))
+ return nil
+}
diff --git a/internal/gl/opengl/procaddr.go b/internal/gl/opengl/procaddr.go
new file mode 100644
index 0000000..4bcc6b2
--- /dev/null
+++ b/internal/gl/opengl/procaddr.go
@@ -0,0 +1,75 @@
+// Code generated by glow (https://github.com/go-gl/glow). DO NOT EDIT.
+
+// This file implements GlowGetProcAddress for every supported platform. The
+// correct version is chosen automatically based on build tags:
+//
+// windows: WGL
+// darwin: CGL
+// linux freebsd netbsd openbsd: GLX
+//
+// Use of EGL instead of the platform's default (listed above) is made possible
+// via the "egl" build tag.
+//
+// It is also possible to install your own function outside this package for
+// retrieving OpenGL function pointers, to do this see InitWithProcAddrFunc.
+
+package gl
+
+/*
+#cgo windows CFLAGS: -DTAG_WINDOWS
+#cgo !gles2,windows LDFLAGS: -lopengl32
+#cgo gles2,windows LDFLAGS: -lGLESv2
+#cgo darwin CFLAGS: -DTAG_DARWIN
+#cgo !gles2,darwin LDFLAGS: -framework OpenGL
+#cgo gles2,darwin LDFLAGS: -framework OpenGLES
+#cgo linux freebsd netbsd openbsd CFLAGS: -DTAG_POSIX
+#cgo !egl,linux !egl,freebsd !egl,netbsd !egl,openbsd pkg-config: gl
+#cgo egl,linux egl,freebsd egl,netbsd egl,openbsd egl,windows CFLAGS: -DTAG_EGL
+#cgo egl,linux egl,freebsd egl,netbsd egl,openbsd pkg-config: egl
+#cgo egl,windows LDFLAGS: -lEGL
+#cgo egl,darwin LDFLAGS: -lEGL
+// Check the EGL tag first as it takes priority over the platform's default
+// configuration of WGL/GLX/CGL.
+#if defined(TAG_EGL)
+ #include
+ #include
+ static void* GlowGetProcAddress(const char* name) {
+ return eglGetProcAddress(name);
+ }
+#elif defined(TAG_WINDOWS)
+ #define WIN32_LEAN_AND_MEAN 1
+ #include
+ #include
+ static HMODULE ogl32dll = NULL;
+ static void* GlowGetProcAddress(const char* name) {
+ void* pf = wglGetProcAddress((LPCSTR) name);
+ if (pf) {
+ return pf;
+ }
+ if (ogl32dll == NULL) {
+ ogl32dll = LoadLibraryA("opengl32.dll");
+ }
+ return GetProcAddress(ogl32dll, (LPCSTR) name);
+ }
+#elif defined(TAG_DARWIN)
+ #include
+ #include
+ static void* GlowGetProcAddress(const char* name) {
+ return dlsym(RTLD_DEFAULT, name);
+ }
+#elif defined(TAG_POSIX)
+ #include
+ #include
+ static void* GlowGetProcAddress(const char* name) {
+ return glXGetProcAddress((const GLubyte *) name);
+ }
+#endif
+*/
+import "C"
+import "unsafe"
+
+func getProcAddress(namea string) unsafe.Pointer {
+ cname := C.CString(namea)
+ defer C.free(unsafe.Pointer(cname))
+ return C.GlowGetProcAddress(cname)
+}
diff --git a/internal/gl/opengl/types.go b/internal/gl/opengl/types.go
new file mode 100644
index 0000000..70aff09
--- /dev/null
+++ b/internal/gl/opengl/types.go
@@ -0,0 +1,10 @@
+package gl
+
+func Uint16ToInt32(u16 []uint16) []int32 {
+ i32 := make([]int32, len(u16))
+
+ for i, v := range u16 {
+ i32[i] = int32(v)
+ }
+ return i32
+}
diff --git a/internal/gl/shader.go b/internal/gl/shader.go
new file mode 100644
index 0000000..8c919c8
--- /dev/null
+++ b/internal/gl/shader.go
@@ -0,0 +1,25 @@
+//go:build windows || linux || darwin || js || wasm
+// +build windows linux darwin js wasm
+
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package gl
+
+type VertexShader struct {
+ WebShader string
+ DesktopShader string
+}
+type FragmentShader struct {
+ WebShader string
+ DesktopShader string
+}
diff --git a/internal/gl/ushaders/loader.go b/internal/gl/ushaders/loader.go
new file mode 100644
index 0000000..0b29647
--- /dev/null
+++ b/internal/gl/ushaders/loader.go
@@ -0,0 +1,30 @@
+//go:build windows || linux || darwin || js || wasm
+// +build windows linux darwin js wasm
+
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package ushaders
+
+import _ "embed"
+
+//go:embed shaders/desktop.vs
+var DesktopVShader string
+
+//go:embed shaders/desktop.fs
+var DesktopFShader string
+
+//go:embed shaders/web.vs
+var WebVShader string
+
+//go:embed shaders/web.fs
+var WebFShader string
diff --git a/internal/gl/ushaders/shaders/desktop.fs b/internal/gl/ushaders/shaders/desktop.fs
new file mode 100644
index 0000000..97928b0
--- /dev/null
+++ b/internal/gl/ushaders/shaders/desktop.fs
@@ -0,0 +1,16 @@
+#version 330 core
+
+in vec2 TexCoord;
+out vec4 FragColor;
+
+uniform sampler2D ourTexture;
+uniform bool useTexture;
+uniform vec4 uniformColor;
+
+void main() {
+ if (useTexture) {
+ FragColor = texture(ourTexture, TexCoord);
+ } else {
+ FragColor = uniformColor;
+ }
+}
diff --git a/internal/gl/ushaders/shaders/desktop.vs b/internal/gl/ushaders/shaders/desktop.vs
new file mode 100644
index 0000000..f6d398c
--- /dev/null
+++ b/internal/gl/ushaders/shaders/desktop.vs
@@ -0,0 +1,11 @@
+#version 330 core
+
+layout(location = 0) in vec3 aPos;
+layout(location = 1) in vec2 aTexCoord;
+
+out vec2 TexCoord;
+
+void main() {
+ gl_Position = vec4(aPos, 1.0);
+ TexCoord = aTexCoord;
+}
diff --git a/internal/gl/ushaders/shaders/web.fs b/internal/gl/ushaders/shaders/web.fs
new file mode 100644
index 0000000..7900575
--- /dev/null
+++ b/internal/gl/ushaders/shaders/web.fs
@@ -0,0 +1,18 @@
+#version 300 es
+
+precision mediump float;
+
+in vec2 TexCoord;
+out vec4 FragColor;
+
+uniform sampler2D ourTexture;
+uniform bool useTexture;
+uniform vec4 uniformColor;
+
+void main() {
+ if (useTexture) {
+ FragColor = texture(ourTexture, TexCoord);
+ } else {
+ FragColor = uniformColor;
+ }
+}
diff --git a/internal/gl/ushaders/shaders/web.vs b/internal/gl/ushaders/shaders/web.vs
new file mode 100644
index 0000000..220cd69
--- /dev/null
+++ b/internal/gl/ushaders/shaders/web.vs
@@ -0,0 +1,11 @@
+#version 300 es
+
+in vec3 aPos;
+in vec2 aTexCoord;
+
+out vec2 TexCoord;
+
+void main() {
+ gl_Position = vec4(aPos, 1.0);
+ TexCoord = aTexCoord;
+}
diff --git a/internal/gl/webgl.go b/internal/gl/webgl.go
new file mode 100755
index 0000000..5d8220e
--- /dev/null
+++ b/internal/gl/webgl.go
@@ -0,0 +1,301 @@
+//go:build js && wasm
+// +build js,wasm
+
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package gl
+
+import (
+ "log"
+ "syscall/js"
+
+ "vuelto.pp.ua/internal/gl/webgl"
+ "vuelto.pp.ua/internal/image"
+ "vuelto.pp.ua/internal/trita"
+)
+
+type Arguments struct {
+ Arg *js.Value
+}
+
+type Shader struct {
+ WebShader string
+ DesktopShader string
+
+ Type js.Value
+ Shader js.Value
+}
+
+type Program struct {
+ Program js.Value
+
+ VertexShader js.Value
+ FragmentShader js.Value
+}
+
+type Buffer struct {
+ Vao js.Value
+ Vbo js.Value
+ Ebo js.Value
+
+ Vertices []float32
+ Indices []uint16
+}
+
+type Location struct {
+ UniformLocation js.Value
+}
+
+type Texture struct {
+ Texture js.Value
+}
+
+var TEXTURE_2D = &Arguments{&webgl.TEXTURE_2D}
+var BLEND = &Arguments{&webgl.BLEND}
+var LINEAR = &Arguments{&webgl.LINEAR}
+var NEAREST = &Arguments{&webgl.NEAREST}
+var VBO = &Arguments{&webgl.ARRAY_BUFFER}
+var EBO = &Arguments{&webgl.ELEMENT_ARRAY_BUFFER}
+var VA = &Arguments{&webgl.VERTEX_ARRAY}
+
+func NewShader(shadertype any) *Shader {
+ shader := &Shader{}
+
+ switch trita.YourType(shadertype) {
+ case trita.YourType(FragmentShader{}):
+ shader.Type = webgl.FRAGMENT_SHADER
+ shader.DesktopShader = shadertype.(FragmentShader).DesktopShader
+ shader.WebShader = shadertype.(FragmentShader).WebShader
+ case trita.YourType(VertexShader{}):
+ shader.Type = webgl.VERTEX_SHADER
+ shader.DesktopShader = shadertype.(VertexShader).DesktopShader
+ shader.WebShader = shadertype.(VertexShader).WebShader
+ default:
+ panic("Unknown shader type")
+ }
+
+ shader.Shader = webgl.CreateShader(shader.Type)
+ webgl.ShaderSource(shader.Shader, shader.WebShader)
+
+ return shader
+}
+
+func (s *Shader) Compile() {
+ webgl.CompileShader(s.Shader)
+}
+
+func (s *Shader) Delete() {
+ webgl.DeleteShader(s.Shader)
+}
+
+func NewProgram(vertexshader, fragmentshader Shader) *Program {
+ return &Program{
+ VertexShader: vertexshader.Shader,
+ FragmentShader: fragmentshader.Shader,
+ Program: webgl.CreateProgram(),
+ }
+}
+
+func (p *Program) Link() {
+ webgl.AttachShader(p.Program, p.VertexShader)
+ webgl.AttachShader(p.Program, p.FragmentShader)
+ webgl.LinkProgram(p.Program)
+}
+
+func (p *Program) Use() {
+ webgl.UseProgram(p.Program)
+}
+
+func (p *Program) UnUse() {
+ webgl.UseProgram(js.Null())
+}
+
+func (p *Program) Delete() {
+ webgl.DeleteProgram(p.Program)
+}
+
+func (p *Program) UniformLocation(location string) *Location {
+ return &Location{
+ UniformLocation: webgl.GetUniformLocation(p.Program, location),
+ }
+}
+
+func (l *Location) Set(arg ...float32) {
+ switch len(arg) {
+ case 1:
+ webgl.Uniform1f(l.UniformLocation, arg[0])
+ case 2:
+ webgl.Uniform2f(l.UniformLocation, arg[0], arg[1])
+ case 3:
+ webgl.Uniform3f(l.UniformLocation, arg[0], arg[1], arg[2])
+ case 4:
+ webgl.Uniform4f(l.UniformLocation, arg[0], arg[1], arg[2], arg[3])
+ default:
+ panic("Unsupported uniform length")
+ }
+}
+
+func GenBuffers(vertices []float32, indices []uint16) *Buffer {
+ vao := webgl.CreateVertexArray()
+ vbo := webgl.CreateBuffer()
+ ebo := webgl.CreateBuffer()
+
+ webgl.BindBuffer(webgl.ARRAY_BUFFER, vbo)
+ webgl.BufferData(webgl.ARRAY_BUFFER, webgl.NewFloat32Array(vertices), webgl.STATIC_DRAW)
+
+ webgl.BindBuffer(webgl.ELEMENT_ARRAY_BUFFER, ebo)
+ webgl.BufferData(webgl.ELEMENT_ARRAY_BUFFER, webgl.NewUint16Array(indices), webgl.STATIC_DRAW)
+
+ return &Buffer{
+ Vao: vao,
+ Vbo: vbo,
+ Ebo: ebo,
+ Vertices: vertices,
+ Indices: indices,
+ }
+}
+
+func (b *Buffer) Bind(args ...*Arguments) {
+ for _, arg := range args {
+ switch arg {
+ case VA:
+ webgl.BindVertexArray(b.Vao)
+ case VBO:
+ webgl.BindBuffer(webgl.ARRAY_BUFFER, b.Vbo)
+ case EBO:
+ webgl.BindBuffer(webgl.ELEMENT_ARRAY_BUFFER, b.Ebo)
+ default:
+ log.Fatalln("Unknown argument: ", arg)
+ }
+ }
+}
+
+func (b *Buffer) UnBind(args ...*Arguments) {
+ for _, arg := range args {
+ switch arg {
+ case VA:
+ webgl.BindVertexArray(js.Null())
+ case VBO:
+ webgl.BindBuffer(webgl.ARRAY_BUFFER, js.Null())
+ case EBO:
+ webgl.BindBuffer(webgl.ELEMENT_ARRAY_BUFFER, js.Null())
+ default:
+ log.Fatalln("Unknown argument: ", arg)
+ }
+ }
+}
+
+func (b *Buffer) Data() {
+ webgl.BufferData(webgl.ARRAY_BUFFER, webgl.NewFloat32Array(b.Vertices), webgl.STATIC_DRAW)
+ webgl.BufferData(webgl.ELEMENT_ARRAY_BUFFER, webgl.NewUint16Array(b.Indices), webgl.STATIC_DRAW)
+}
+
+func (b *Buffer) Update(data []float32) {
+ webgl.BufferData(webgl.ARRAY_BUFFER, webgl.NewFloat32Array(data), webgl.DYNAMIC_DRAW)
+}
+
+func (b *Buffer) Delete(args ...*Arguments) {
+ for _, arg := range args {
+ switch arg {
+ case VA:
+ webgl.DeleteVertexArray(b.Vao)
+ case VBO:
+ webgl.DeleteBuffer(b.Vbo)
+ case EBO:
+ webgl.DeleteBuffer(b.Ebo)
+ default:
+ log.Fatalln("Unknown argument: ", arg)
+ }
+ }
+}
+
+func GenTexture() *Texture {
+ return &Texture{Texture: webgl.CreateTexture()}
+}
+
+func (t *Texture) Bind() {
+ webgl.ActiveTexture(webgl.TEXTURE0)
+ webgl.BindTexture(webgl.TEXTURE_2D, t.Texture)
+}
+
+func (t *Texture) UnBind() {
+ webgl.BindTexture(webgl.TEXTURE_2D, js.Null())
+}
+
+func (t *Texture) Configure(image *image.Image, filter *Arguments) {
+ webgl.TexImage2D(webgl.TEXTURE_2D, 0, webgl.RGBA, image.Width, image.Height, 0, webgl.RGBA, webgl.UNSIGNED_BYTE, image.Texture)
+
+ webgl.TexParameteri(webgl.TEXTURE_2D, webgl.TEXTURE_MIN_FILTER, *filter.Arg)
+ webgl.TexParameteri(webgl.TEXTURE_2D, webgl.TEXTURE_MAG_FILTER, *filter.Arg)
+ webgl.TexParameteri(webgl.TEXTURE_2D, webgl.TEXTURE_WRAP_S, webgl.CLAMP_TO_EDGE)
+ webgl.TexParameteri(webgl.TEXTURE_2D, webgl.TEXTURE_WRAP_T, webgl.CLAMP_TO_EDGE)
+}
+
+func (t *Texture) Delete() {
+ webgl.DeleteTexture(t.Texture)
+}
+
+func SetupVertexAttrib(program *Program) {
+ useTexture := webgl.GetUniform(program.Program, webgl.GetUniformLocation(program.Program, "useTexture")).Bool()
+ if useTexture == true {
+ webgl.EnableVertexAttribArray(1)
+ webgl.VertexAttribPointer(0, 3, webgl.FLOAT, false, 5*4, 0)
+ webgl.EnableVertexAttribArray(0)
+
+ webgl.VertexAttribPointer(1, 2, webgl.FLOAT, false, 5*4, 3*4)
+ webgl.EnableVertexAttribArray(0)
+ } else {
+ webgl.VertexAttribPointer(0, 3, webgl.FLOAT, false, 3*4, 0)
+ webgl.EnableVertexAttribArray(0)
+ }
+}
+
+func DrawElements(indices []uint16) {
+ if len(indices) == 2 {
+ webgl.DrawElements(webgl.LINES, len(indices), webgl.UNSIGNED_SHORT, 0)
+ } else {
+ webgl.DrawElements(webgl.TRIANGLES, len(indices), webgl.UNSIGNED_SHORT, 0)
+ }
+}
+
+func DrawArrays(verticesCount int) {
+ webgl.DrawArrays(webgl.TRIANGLE_FAN, 0, verticesCount)
+}
+
+func Clear() {
+ webgl.Clear(webgl.COLOR_BUFFER_BIT)
+ webgl.Clear(webgl.DEPTH_BUFFER_BIT)
+}
+
+func ClearColor(r, g, b, a float32) {
+ webgl.ClearColor(r, g, b, a)
+}
+
+func Enable(args ...*Arguments) {
+ for _, capability := range args {
+ webgl.Enable(*capability.Arg)
+ }
+}
+
+func EnableBlend() {
+ webgl.BlendFunc(webgl.SRC_ALPHA, webgl.ONE_MINUS_SRC_ALPHA)
+}
+
+func Viewport(x, y, width, height int) {
+ webgl.Viewport(x, y, width, height)
+}
+
+func Init() error {
+ webgl.InitWebGL()
+ return nil
+}
diff --git a/internal/gl/webgl/binding.go b/internal/gl/webgl/binding.go
new file mode 100755
index 0000000..ea56e5f
--- /dev/null
+++ b/internal/gl/webgl/binding.go
@@ -0,0 +1,318 @@
+//go:build js && wasm
+// +build js,wasm
+
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package webgl
+
+import (
+ "syscall/js"
+
+ "vuelto.pp.ua/internal/window/web"
+)
+
+var (
+ canvas web.Canvas
+ gl js.Value
+
+ VERTEX_SHADER js.Value
+ FRAGMENT_SHADER js.Value
+ ARRAY_BUFFER js.Value
+ STATIC_DRAW js.Value
+ TRIANGLES js.Value
+ TRIANGLE_FAN js.Value
+ FLOAT js.Value
+ FALSE js.Value
+ TRUE js.Value
+ COLOR_BUFFER_BIT js.Value
+ TEXTURE_2D js.Value
+ TEXTURE_WRAP_S js.Value
+ TEXTURE_WRAP_T js.Value
+ TEXTURE_MIN_FILTER js.Value
+ TEXTURE_MAG_FILTER js.Value
+ CLAMP_TO_EDGE js.Value
+ LINEAR js.Value
+ RGBA js.Value
+ UNSIGNED_BYTE js.Value
+ SRC_ALPHA js.Value
+ ONE_MINUS_SRC_ALPHA js.Value
+ BLEND js.Value
+ DEPTH_BUFFER_BIT js.Value
+ NEAREST js.Value
+ UNSIGNED_SHORT js.Value
+ ELEMENT_ARRAY_BUFFER js.Value
+ TEXTURE0 js.Value
+ VERTEX_ARRAY js.Value
+ DYNAMIC_DRAW js.Value
+ LINES js.Value
+)
+
+func InitWebGL() {
+ canvas = web.Document.GetElementById("vuelto")
+ gl = canvas.GetContext("webgl2").JSContext
+
+ VERTEX_SHADER = gl.Get("VERTEX_SHADER")
+ FRAGMENT_SHADER = gl.Get("FRAGMENT_SHADER")
+ ARRAY_BUFFER = gl.Get("ARRAY_BUFFER")
+ STATIC_DRAW = gl.Get("STATIC_DRAW")
+ TRIANGLES = gl.Get("TRIANGLES")
+ TRIANGLE_FAN = gl.Get("TRIANGLE_FAN")
+ FLOAT = gl.Get("FLOAT")
+ FALSE = gl.Get("FALSE")
+ TRUE = gl.Get("TRUE")
+ COLOR_BUFFER_BIT = gl.Get("COLOR_BUFFER_BIT")
+ TEXTURE_2D = gl.Get("TEXTURE_2D")
+ TEXTURE_WRAP_S = gl.Get("TEXTURE_WRAP_S")
+ TEXTURE_WRAP_T = gl.Get("TEXTURE_WRAP_T")
+ TEXTURE_MIN_FILTER = gl.Get("TEXTURE_MIN_FILTER")
+ TEXTURE_MAG_FILTER = gl.Get("TEXTURE_MAG_FILTER")
+ CLAMP_TO_EDGE = gl.Get("CLAMP_TO_EDGE")
+ LINEAR = gl.Get("LINEAR")
+ RGBA = gl.Get("RGBA")
+ UNSIGNED_BYTE = gl.Get("UNSIGNED_BYTE")
+ SRC_ALPHA = gl.Get("SRC_ALPHA")
+ ONE_MINUS_SRC_ALPHA = gl.Get("ONE_MINUS_SRC_ALPHA")
+ BLEND = gl.Get("BLEND")
+ DEPTH_BUFFER_BIT = gl.Get("DEPTH_BUFFER_BIT")
+ NEAREST = gl.Get("NEAREST")
+ UNSIGNED_SHORT = gl.Get("UNSIGNED_SHORT")
+ ELEMENT_ARRAY_BUFFER = gl.Get("ELEMENT_ARRAY_BUFFER")
+ TEXTURE0 = gl.Get("TEXTURE0")
+ VERTEX_ARRAY = gl.Get("VERTEX_ARRAY")
+ DYNAMIC_DRAW = gl.Get("DYNAMIC_DRAW")
+ LINES = gl.Get("LINES")
+}
+
+func CreateShader(inputType js.Value) js.Value {
+ return gl.Call("createShader", inputType)
+}
+
+func ShaderSource(shader js.Value, source string) {
+ gl.Call("shaderSource", shader, source)
+}
+
+func CompileShader(shader js.Value) {
+ gl.Call("compileShader", shader)
+}
+
+func CreateProgram() js.Value {
+ return gl.Call("createProgram")
+}
+
+func AttachShader(program, shaderType js.Value) {
+ gl.Call("attachShader", program, shaderType)
+}
+
+func DeleteShader(shader js.Value) {
+ gl.Call("deleteShader", shader)
+}
+
+func LinkProgram(program js.Value) {
+ gl.Call("linkProgram", program)
+}
+
+func DeleteProgram(program js.Value) {
+ gl.Call("deleteProgram", program)
+}
+
+func CreateVertexArray() js.Value {
+ return gl.Call("createVertexArray")
+}
+
+func BindVertexArray(vao js.Value) {
+ if vao.IsUndefined() || vao.IsNull() {
+ gl.Call("bindVertexArray", nil)
+ } else {
+ gl.Call("bindVertexArray", vao)
+ }
+}
+
+func DeleteVertexArray(vao js.Value) {
+ gl.Call("deleteVertexArray", vao)
+}
+
+func CreateBuffer() js.Value {
+ return gl.Call("createBuffer")
+}
+
+func BindBuffer(target js.Value, buffer js.Value) {
+ if buffer.IsUndefined() || buffer.IsNull() {
+ gl.Call("bindBuffer", target, nil)
+ } else {
+ gl.Call("bindBuffer", target, buffer)
+ }
+}
+
+func BufferData(target js.Value, data js.Value, usage js.Value) {
+ gl.Call("bufferData", target, data, usage)
+}
+
+func DeleteBuffer(buffer js.Value) {
+ gl.Call("deleteBuffer", buffer)
+}
+
+func UseProgram(program js.Value) {
+ gl.Call("useProgram", program)
+}
+
+func GetAttribLocation(program js.Value, name string) js.Value {
+ return gl.Call("getAttribLocation", program, name)
+}
+
+func EnableVertexAttribArray(index int) {
+ gl.Call("enableVertexAttribArray", index)
+}
+
+func VertexAttribPointer(index int, size int, typ js.Value, normalized bool, stride int, offset int) {
+ gl.Call("vertexAttribPointer", index, size, typ, normalized, stride, offset)
+}
+
+func GetUniformLocation(program js.Value, name string) js.Value {
+ return gl.Call("getUniformLocation", program, name)
+}
+
+func GetUniform(program js.Value, location js.Value) js.Value {
+ return gl.Call("getUniform", program, location)
+}
+
+func Uniform1f(location js.Value, x float32) {
+ gl.Call("uniform1f", location, x)
+}
+
+func Uniform2f(location js.Value, x, y float32) {
+ gl.Call("uniform2f", location, x, y)
+}
+
+func Uniform3f(location js.Value, x, y, z float32) {
+ gl.Call("uniform3f", location, x, y, z)
+}
+
+func Uniform4f(location js.Value, x, y, z, w float32) {
+ gl.Call("uniform4f", location, x, y, z, w)
+}
+
+func DrawArrays(mode js.Value, first int, count int) {
+ gl.Call("drawArrays", mode, first, count)
+}
+
+func DrawElements(mode js.Value, count int, typ js.Value, offset int) {
+ gl.Call("drawElements", mode, count, typ, offset)
+}
+
+func DrawElementsInstanced(mode js.Value, count int, typ js.Value, offset int, primcount int) {
+ gl.Call("drawElementsInstanced", mode, count, typ, offset, primcount)
+}
+
+func GetShaderParameter(shader js.Value, pname js.Value) js.Value {
+ return gl.Call("getShaderParameter", shader, pname)
+}
+
+func GetShaderInfoLog(shader js.Value) string {
+ return gl.Call("getShaderInfoLog", shader).String()
+}
+
+func GetProgramParameter(program js.Value, pname js.Value) js.Value {
+ return gl.Call("getProgramParameter", program, pname)
+}
+
+func GetProgramInfoLog(program js.Value) string {
+ return gl.Call("getProgramInfoLog", program).String()
+}
+
+func CreateTexture() js.Value {
+ return gl.Call("createTexture")
+}
+
+func DeleteTexture(texture js.Value) {
+ gl.Call("deleteTexture", texture)
+}
+
+func BindTexture(target js.Value, texture js.Value) {
+ if texture.IsUndefined() || texture.IsNull() {
+ gl.Call("bindTexture", target, nil)
+ } else {
+ gl.Call("bindTexture", target, texture)
+ }
+}
+
+func ActiveTexture(texture js.Value) {
+ gl.Call("activeTexture", texture)
+}
+
+func TexParameteri(target js.Value, pname js.Value, param js.Value) {
+ gl.Call("texParameteri", target, pname, param)
+}
+
+func TexImage2D(target js.Value, level int, internalFormat js.Value, width, height, border int, format, typ, pixels js.Value) {
+ gl.Call("texImage2D", target, level, internalFormat, width, height, border, format, typ, pixels)
+}
+
+func ClearColor(r, g, b, a float32) {
+ gl.Call("clearColor", r, g, b, a)
+}
+
+func Clear(mask js.Value) {
+ gl.Call("clear", mask)
+}
+
+func ClearDepth(depth float64) {
+ gl.Call("clearDepth", depth)
+}
+
+func BlendFunc(sfactor, dfactor js.Value) {
+ gl.Call("blendFunc", sfactor, dfactor)
+}
+
+func Enable(capability js.Value) {
+ gl.Call("enable", capability)
+}
+
+func Viewport(x, y, width, height int) {
+ gl.Call("viewport", x, y, width, height)
+}
+
+func NewFloat32Array(values []float32) js.Value {
+ array := js.Global().Get("Float32Array").New(len(values))
+ for i, v := range values {
+ array.SetIndex(i, v)
+ }
+ return array
+}
+
+func NewUint16Array(values []uint16) js.Value {
+ array := js.Global().Get("Uint16Array").New(len(values))
+ for i, v := range values {
+ array.SetIndex(i, v)
+ }
+ return array
+}
+
+func Int32ToFloat32(input []int32) []float32 {
+ output := make([]float32, len(input))
+ for i, v := range input {
+ output[i] = float32(v)
+ }
+ return output
+}
+
+func Int32ToUint16(input []int32) []uint16 {
+ output := make([]uint16, len(input))
+ for i, v := range input {
+ output[i] = uint16(v)
+ }
+ return output
+}
+
+func NewUint16ArrayFromInt32(input []int32) js.Value {
+ return NewUint16Array(Int32ToUint16(input))
+}
diff --git a/internal/image/image_go.go b/internal/image/image_go.go
new file mode 100644
index 0000000..4ef3a86
--- /dev/null
+++ b/internal/image/image_go.go
@@ -0,0 +1,87 @@
+//go:build windows || linux || darwin
+// +build windows linux darwin
+
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package image
+
+import (
+ "bytes"
+ "embed"
+ "image"
+ "image/draw"
+ _ "image/jpeg"
+ _ "image/png"
+ "log"
+ "os"
+)
+
+type Image struct {
+ Path string
+ Texture []uint8
+
+ Width int
+ Height int
+}
+
+func Load(imagePath string) *Image {
+ file, err := os.Open(imagePath)
+ if err != nil {
+ log.Fatalln("Failed to open image: ", err)
+ }
+ defer file.Close()
+
+ img, _, err := image.Decode(file)
+ if err != nil {
+ log.Fatalln("Failed to decode image: ", err)
+ }
+
+ rgba := image.NewRGBA(img.Bounds())
+ draw.Draw(rgba, rgba.Bounds(), img, image.Point{}, draw.Over)
+
+ return &Image{
+ Texture: rgba.Pix,
+ Width: rgba.Rect.Size().X,
+ Height: rgba.Rect.Size().Y,
+ }
+}
+
+func LoadAsEmbed(fs embed.FS, imagePath string) *Image {
+ imgFile, err := fs.ReadFile(imagePath)
+ if err != nil {
+ log.Fatalf("failed to read embedded image '%s': %v", imagePath, err)
+ }
+
+ img, _, err := image.Decode(bytes.NewReader(imgFile))
+ if err != nil {
+ log.Fatalf("failed to decode image '%s': %v", imagePath, err)
+ }
+
+ rgbaImg, ok := img.(*image.RGBA)
+ if !ok {
+ bounds := img.Bounds()
+ rgbaImg = image.NewRGBA(bounds)
+ for y := bounds.Min.Y; y < bounds.Max.Y; y++ {
+ for x := bounds.Min.X; x < bounds.Max.X; x++ {
+ rgbaImg.Set(x, y, img.At(x, y))
+ }
+ }
+ }
+
+ return &Image{
+ Path: imagePath,
+ Texture: rgbaImg.Pix,
+ Width: rgbaImg.Bounds().Dx(),
+ Height: rgbaImg.Bounds().Dy(),
+ }
+}
diff --git a/internal/image/image_web.go b/internal/image/image_web.go
new file mode 100644
index 0000000..b641d2e
--- /dev/null
+++ b/internal/image/image_web.go
@@ -0,0 +1,72 @@
+//go:build js && wasm
+// +build js,wasm
+
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package image
+
+import (
+ "bytes"
+ "embed"
+ "image"
+ _ "image/jpeg"
+ _ "image/png"
+ "log"
+ "syscall/js"
+)
+
+type Image struct {
+ Path string
+ Texture js.Value
+ Width int
+ Height int
+}
+
+func Load(imagePath string) *Image {
+ panic("Load() is not supported in web assembly")
+}
+
+func LoadAsEmbed(fs embed.FS, imagePath string) *Image {
+ imgFile, err := fs.ReadFile(imagePath)
+ if err != nil {
+ log.Fatalf("failed to read embedded image '%s': %v", imagePath, err)
+ }
+
+ img, _, err := image.Decode(bytes.NewReader(imgFile))
+ if err != nil {
+ log.Fatalf("failed to decode image '%s': %v", imagePath, err)
+ }
+
+ rgbaImg, ok := img.(*image.RGBA)
+ if !ok {
+ bounds := img.Bounds()
+ rgbaImg = image.NewRGBA(bounds)
+ for y := bounds.Min.Y; y < bounds.Max.Y; y++ {
+ for x := bounds.Min.X; x < bounds.Max.X; x++ {
+ rgbaImg.Set(x, y, img.At(x, y))
+ }
+ }
+ }
+
+ data := js.Global().Get("Uint8Array").New(len(rgbaImg.Pix))
+ for i, v := range rgbaImg.Pix {
+ data.SetIndex(i, v)
+ }
+
+ return &Image{
+ Path: imagePath,
+ Texture: data,
+ Width: rgbaImg.Bounds().Dx(),
+ Height: rgbaImg.Bounds().Dy(),
+ }
+}
diff --git a/internal/js/canvas.go b/internal/js/canvas.go
deleted file mode 100644
index 8080e87..0000000
--- a/internal/js/canvas.go
+++ /dev/null
@@ -1,51 +0,0 @@
-package js
-
-import "syscall/js"
-
-type Canvas struct {
- JSCanvas Value
-}
-
-type Context struct {
- JSContext Value
-}
-
-func (c *canvas) GetContext(context_str string) context {
- return context{c.canvas.Call("getContext", context_str)}
-}
-
-func (c *canvas) Get(key string) js.Value {
- return c.canvas.Get(key)
-}
-
-func (c *canvas) Set(key string, value interface{}) {
- c.canvas.Set(key, value)
-}
-
-func (c *canvas) IsNull() bool {
- return c.canvas.IsNull()
-}
-
-func (c *canvas) AddEventListener(ev string, fn js.Func) {
- js.Global().Get("window").Call("addEventListener", ev, fn)
-}
-
-func (c *context) Set(key string, value interface{}) {
- c.context.Set(key, value)
-}
-
-func (c *context) FillText(text string, x, y float64) {
- c.context.Call("fillText", text, x, y)
-}
-
-func (c *context) FillRect(x, y, width, height float64) {
- c.context.Call("fillRect", x, y, width, height)
-}
-
-func (c *context) ClearRect(x, y, width, height float64) {
- c.context.Call("clearRect", x, y, width, height)
-}
-
-func (c *context) DrawImage(img js.Value, x, y, width, height float64) {
- c.context.Call("drawImage", img, x, y, width, height)
-}
diff --git a/internal/js/value.go b/internal/js/value.go
deleted file mode 100644
index a2e2592..0000000
--- a/internal/js/value.go
+++ /dev/null
@@ -1,5 +0,0 @@
-package js
-
-import "syscall/js"
-
-type Value js.Value
diff --git a/internal/trita/type.go b/internal/trita/type.go
new file mode 100644
index 0000000..a896667
--- /dev/null
+++ b/internal/trita/type.go
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package trita
+
+import (
+ "reflect"
+)
+
+const Func = reflect.Func
+
+type TritaType struct {
+ Kind any
+ NumArguments int
+ ReflectValue reflect.Value
+}
+
+func NewTritaValue(Variable any) *TritaType {
+ varoutput := reflect.ValueOf(Variable)
+ return &TritaType{
+ Kind: varoutput.Kind(),
+ NumArguments: varoutput.Type().NumIn(),
+ ReflectValue: varoutput,
+ }
+}
+
+func (trita *TritaType) TypeArgument(ArgumentNum int) any {
+ return trita.ReflectValue.Type().In(ArgumentNum)
+}
+
+func YourType(Types any) any {
+ return reflect.TypeOf(Types)
+}
+
+func (trita *TritaType) Call(args ...any) []reflect.Value {
+ argumentsList := make([]reflect.Value, len(args))
+ for i, arg := range args {
+ argumentsList[i] = reflect.ValueOf(arg)
+ }
+ return trita.ReflectValue.Call(argumentsList)
+}
+
+func (trita *TritaType) HasReturn() bool {
+ return trita.ReflectValue.Type().NumOut() > 0
+}
diff --git a/internal/window/cocoa/cocoa.go b/internal/window/cocoa/cocoa.go
new file mode 100755
index 0000000..8ca62d3
--- /dev/null
+++ b/internal/window/cocoa/cocoa.go
@@ -0,0 +1,13 @@
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package cocoa
diff --git a/internal/window/wayland/wayland.go b/internal/window/wayland/wayland.go
new file mode 100755
index 0000000..fb104ae
--- /dev/null
+++ b/internal/window/wayland/wayland.go
@@ -0,0 +1,13 @@
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package wayland
diff --git a/internal/window/web/canvas.go b/internal/window/web/canvas.go
new file mode 100755
index 0000000..56a70e2
--- /dev/null
+++ b/internal/window/web/canvas.go
@@ -0,0 +1,92 @@
+//go:build js && wasm
+// +build js,wasm
+
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package web
+
+import (
+ "log"
+ "syscall/js"
+
+ "strconv"
+)
+
+type Canvas struct {
+ JSCanvas js.Value
+}
+
+type Context struct {
+ JSContext js.Value
+}
+
+func (c *Canvas) GetContext(inputContext string) Context {
+ context := c.JSCanvas.Call("getContext", inputContext)
+ if context.IsNull() {
+ log.Fatalln("failed to get context: ", inputContext)
+ return Context{}
+ }
+ return Context{context}
+}
+
+func (c *Canvas) Get(inputKey string) js.Value {
+ return c.JSCanvas.Get(inputKey)
+}
+
+func (c *Canvas) Set(inputKey string, inputValue any) {
+ c.JSCanvas.Set(inputKey, inputValue)
+}
+
+func (c *Canvas) IsNull() bool {
+ return c.JSCanvas.IsNull()
+}
+
+func (c *Canvas) AddEventListener(inputEvent string, inputFunc func(this js.Value, args []js.Value) any) {
+ js.Global().Get("window").Call("addEventListener", inputEvent, js.FuncOf(inputFunc))
+}
+
+func (c *Context) Set(inputKey string, inputValue any) {
+ c.JSContext.Set(inputKey, inputValue)
+}
+
+func (c *Context) FillText(inputText string, x, y float64) {
+ c.JSContext.Call("fillText", inputText, x, y)
+}
+
+func (c *Context) FillRect(x, y, width, height float64) {
+ c.JSContext.Call("fillRect", x, y, width, height)
+}
+
+func (c *Context) ClearRect(x, y, width, height float64) {
+ c.JSContext.Call("clearRect", x, y, width, height)
+}
+
+func (c *Context) DrawImage(inputImage js.Value, x, y, width, height float64) {
+ c.JSContext.Call("drawImage", inputImage, x, y, width, height)
+}
+
+func (c *Context) Call(inputKey string, inputArgs ...any) js.Value {
+ return c.JSContext.Call(inputKey, inputArgs)
+}
+
+func (c *Context) Get(inputKey string) js.Value {
+ return c.JSContext.Get(inputKey)
+}
+
+func GetRGBA(color [4]int) string {
+ return "rgba(" +
+ strconv.Itoa(color[0]) + "," +
+ strconv.Itoa(color[1]) + "," +
+ strconv.Itoa(color[2]) + "," +
+ strconv.FormatFloat(float64(color[3])/255.0, 'f', -1, 64) + ")"
+}
diff --git a/internal/window/web/console.go b/internal/window/web/console.go
new file mode 100644
index 0000000..1a145cd
--- /dev/null
+++ b/internal/window/web/console.go
@@ -0,0 +1,34 @@
+//go:build js && wasm
+// +build js,wasm
+
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package web
+
+import "syscall/js"
+
+var Console JSConsole
+
+type JSConsole struct{}
+
+func (c *JSConsole) Log(message ...any) {
+ js.Global().Get("console").Call("log", message...)
+}
+
+func (c *JSConsole) Warn(message ...any) {
+ js.Global().Get("console").Call("warn", message...)
+}
+
+func (c *JSConsole) Error(message ...any) {
+ js.Global().Get("console").Call("error", message...)
+}
diff --git a/internal/js/document.go b/internal/window/web/document.go
old mode 100644
new mode 100755
similarity index 58%
rename from internal/js/document.go
rename to internal/window/web/document.go
index 22e9fe8..d7af7fc
--- a/internal/js/document.go
+++ b/internal/window/web/document.go
@@ -1,10 +1,27 @@
-package js
+//go:build js && wasm
+// +build js,wasm
+
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package web
import "syscall/js"
-type Document struct {
- Body *Body
- DocumentElement *DocumentElement
+var Document JSDocument
+
+type JSDocument struct {
+ Body Body
+ DocumentElement DocumentElement
}
type Body struct {
@@ -23,25 +40,25 @@ type DocumentElement struct {
type StyleDocument struct{}
type StyleBody struct{}
-func CreateElement(newElement string) *Element {
+func (d *JSDocument) CreateElement(newElement string) Element {
docElement := js.Global().Get("document").Call("createElement", newElement)
style := docElement.Get("style")
- return &Element{
+ return Element{
JSElement: docElement,
Style: style,
}
}
-func CreateCanvasElement() *Canvas {
+func (d *JSDocument) CreateCanvasElement() Canvas {
newElement := js.Global().Get("document").Call("createElement", "canvas")
- return &Canvas{
+ return Canvas{
JSCanvas: newElement,
}
}
-func AddEventListener(inputEvent string, inputFunc func(Value, []Value)) {
+func (d *JSDocument) AddEventListener(inputEvent string, inputFunc func(js.Value, []js.Value) any) {
js.Global().Get("document").Call("addEventListener", inputEvent, js.FuncOf(inputFunc))
}
@@ -49,22 +66,26 @@ func (e *Element) Set(keyValue string, inputValue any) {
e.JSElement.Set(keyValue, inputValue)
}
-func (e *Element) AddEventListener(inputEvent string, inputFunc func(Value, []Value)) {
+func (e *Element) AddEventListener(inputEvent string, inputFunc func(js.Value, []js.Value) any) {
e.JSElement.Call("addEventListener", inputEvent, js.FuncOf(inputFunc))
}
-func (b *Body) AppendChild(inputElement *Element) {
+func (e *Element) SetAttribute(inputKey string, inputValue any) {
+ e.JSElement.Call("setAttribute", inputKey, inputValue)
+}
+
+func (b *Body) AppendChild(inputElement Element) {
appendChild := inputElement.JSElement
js.Global().Get("document").Get("body").Call("appendChild", appendChild)
}
-func (b *Body) AppendCanvasChild(inputCanvas *Canvas) {
+func (b *Body) AppendCanvasChild(inputCanvas Canvas) {
appendChild := inputCanvas.JSCanvas
js.Global().Get("document").Get("body").Call("appendChild", appendChild)
}
-func GetElementById(inputID string) *Canvas {
- return &Canvas{
+func (d *JSDocument) GetElementById(inputID string) Canvas {
+ return Canvas{
JSCanvas: js.Global().Get("document").Call("getElementById", inputID),
}
}
diff --git a/internal/window/web/window.go b/internal/window/web/window.go
new file mode 100755
index 0000000..282ed21
--- /dev/null
+++ b/internal/window/web/window.go
@@ -0,0 +1,34 @@
+//go:build js && wasm
+// +build js,wasm
+
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package web
+
+import "syscall/js"
+
+var Window JSWindow
+
+type JSWindow struct{}
+
+var funcMaps = make(map[string]func(js.Value, []js.Value) any)
+
+func (w *JSWindow) AddEventListener(inputEvent string, inputFunc func(js.Value, []js.Value) any) {
+ js.Global().Get("window").Call("addEventListener", inputEvent, js.FuncOf(inputFunc))
+ funcMaps[inputEvent] = inputFunc
+}
+
+func (w *JSWindow) RemoveEventListener(inputEvent string) {
+ js.Global().Get("window").Call("removeEventListener", inputEvent, js.FuncOf(funcMaps[inputEvent]))
+ delete(funcMaps, inputEvent)
+}
diff --git a/internal/window/win32/win32.go b/internal/window/win32/win32.go
new file mode 100755
index 0000000..57b2687
--- /dev/null
+++ b/internal/window/win32/win32.go
@@ -0,0 +1,13 @@
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package win32
diff --git a/internal/window/win_glfw.go b/internal/window/win_glfw.go
new file mode 100755
index 0000000..79a54ca
--- /dev/null
+++ b/internal/window/win_glfw.go
@@ -0,0 +1,145 @@
+//go:build windows || linux || darwin
+// +build windows linux darwin
+
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package windowing
+
+import (
+ "runtime"
+ "time"
+
+ "github.com/go-gl/glfw/v3.3/glfw"
+)
+
+type Window struct {
+ Resizable bool
+
+ GlfwGLMajor int
+ GlfwGLMinor int
+ GlfwWindow *glfw.Window
+
+ Title string
+ Width int
+ Height int
+
+ lastTime time.Time
+ deltaTime float32
+ desiredFPS int
+ frameDuration time.Duration
+}
+
+func InitWindow() (*Window, error) {
+ runtime.LockOSThread()
+
+ if err := glfw.Init(); err != nil {
+ return nil, err
+ }
+ return &Window{
+ desiredFPS: 60,
+ frameDuration: time.Second / 60,
+ lastTime: time.Now(),
+ }, nil
+}
+
+func (w *Window) Create() error {
+ if w.Resizable {
+ glfw.WindowHint(glfw.Resizable, glfw.True)
+ } else {
+ glfw.WindowHint(glfw.Resizable, glfw.False)
+ }
+
+ if w.GlfwGLMajor != 0 {
+ glfw.WindowHint(glfw.ContextVersionMajor, w.GlfwGLMajor)
+ }
+ if w.GlfwGLMinor != 0 {
+ glfw.WindowHint(glfw.ContextVersionMinor, w.GlfwGLMinor)
+ }
+
+ if w.GlfwGLMajor >= 3 {
+ glfw.WindowHint(glfw.OpenGLProfile, glfw.OpenGLCoreProfile)
+
+ if runtime.GOOS == "darwin" {
+ glfw.WindowHint(glfw.OpenGLForwardCompatible, glfw.True)
+ }
+ }
+
+ var err error
+ w.GlfwWindow, err = glfw.CreateWindow(w.Width, w.Height, w.Title, nil, nil)
+ if err != nil {
+ return err
+ }
+
+ return nil
+}
+
+func (w *Window) ResizingCallback(inputFunc func(*Window, int, int)) {
+ w.GlfwWindow.SetFramebufferSizeCallback(func(win *glfw.Window, newWidth, newHeight int) {
+ inputFunc(w, newWidth, newHeight)
+ })
+}
+
+func (w *Window) SetResizable(resizable bool) {
+ if resizable {
+ w.GlfwWindow.SetAttrib(glfw.Resizable, glfw.True)
+ } else {
+ w.GlfwWindow.SetAttrib(glfw.Resizable, glfw.False)
+ }
+}
+
+func (w *Window) Close() bool {
+ for !w.GlfwWindow.ShouldClose() {
+ return false
+ }
+ return true
+}
+
+func (w *Window) HandleEvents() {
+ now := time.Now()
+ w.deltaTime = float32(now.Sub(w.lastTime).Seconds())
+ w.lastTime = now
+
+ glfw.PollEvents()
+
+ duration := time.Since(w.lastTime)
+ if duration < w.frameDuration {
+ time.Sleep(w.frameDuration - duration)
+ }
+}
+
+func (w *Window) UpdateBuffers() {
+ w.GlfwWindow.SwapBuffers()
+}
+
+func (w *Window) ContextCurrent() {
+ w.GlfwWindow.MakeContextCurrent()
+}
+
+func (w *Window) Destroy() {
+ w.GlfwWindow.Destroy()
+}
+
+func (w *Window) GetDeltaTime() float32 {
+ return w.deltaTime
+}
+
+func (w *Window) SetFPS(fps int) {
+ if fps > 0 {
+ w.desiredFPS = fps
+ w.frameDuration = time.Second / time.Duration(fps)
+ }
+}
+
+func (w *Window) GetFPS() int {
+ return w.desiredFPS
+}
diff --git a/internal/window/win_web.go b/internal/window/win_web.go
new file mode 100755
index 0000000..b0725c4
--- /dev/null
+++ b/internal/window/win_web.go
@@ -0,0 +1,164 @@
+//go:build js && wasm
+// +build js,wasm
+
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package windowing
+
+import (
+ "fmt"
+ "syscall/js"
+ "time"
+
+ "vuelto.pp.ua/internal/gl"
+ "vuelto.pp.ua/internal/window/web"
+)
+
+type Window struct {
+ Resizable bool
+
+ JSCanvas web.Canvas
+
+ GlfwGLMajor int
+ GlfwGLMinor int
+
+ Title string
+ Width int
+ Height int
+
+ lastTime time.Time
+ deltaTime float32
+ desiredFPS int
+ frameDuration time.Duration
+}
+
+var initialized bool
+
+func InitWindow() (*Window, error) {
+ if initialized {
+ panic("Web doesnt support having multiple windows!")
+ } else {
+ initialized = true
+ }
+
+ w := &Window{
+ desiredFPS: 60,
+ frameDuration: time.Second / 60,
+ lastTime: time.Now(),
+ }
+
+ w.JSCanvas = web.Document.GetElementById("vuelto")
+ if w.JSCanvas.IsNull() {
+ w.JSCanvas = web.Document.CreateCanvasElement()
+ w.JSCanvas.Set("id", "vuelto")
+ web.Document.Body.AppendCanvasChild(w.JSCanvas)
+ }
+
+ if w.JSCanvas.IsNull() {
+ return nil, fmt.Errorf("failed to create or fetch canvas")
+ }
+
+ return w, nil
+}
+
+func (w *Window) Create() error {
+ web.Document.DocumentElement.Style.Set("overflow", "hidden")
+ web.Document.Body.Style.Set("overflow", "hidden")
+
+ if w.Resizable {
+ w.JSCanvas.Set("width", web.Document.DocumentElement.ClientWidth())
+ w.JSCanvas.Set("height", web.Document.DocumentElement.ClientHeight())
+
+ web.Window.AddEventListener("resize", func(this js.Value, p []js.Value) any {
+ w.JSCanvas.Set("width", web.Document.DocumentElement.ClientWidth())
+ w.JSCanvas.Set("height", web.Document.DocumentElement.ClientHeight())
+
+ w.Width = web.Document.DocumentElement.ClientWidth()
+ w.Height = web.Document.DocumentElement.ClientHeight()
+ return nil
+ })
+ } else {
+ w.JSCanvas.Set("width", w.Width)
+ w.JSCanvas.Set("height", w.Height)
+ }
+
+ return nil
+}
+
+func (w *Window) ResizingCallback(inputFunc func(*Window, int, int)) {
+ web.Window.AddEventListener("resize", func(this js.Value, p []js.Value) any {
+ newWidth := web.Document.DocumentElement.ClientWidth()
+ newHeight := web.Document.DocumentElement.ClientHeight()
+
+ w.JSCanvas.Set("width", newWidth)
+ w.JSCanvas.Set("height", newHeight)
+
+ gl.Viewport(0, 0, newWidth, newHeight)
+
+ inputFunc(w, newWidth, newHeight)
+ return nil
+ })
+}
+
+func (w *Window) UpdateBuffers() {}
+
+func (w *Window) SetResizable(resizable bool) {
+ if resizable {
+ w.JSCanvas.Set("width", web.Document.DocumentElement.ClientWidth())
+ w.JSCanvas.Set("height", web.Document.DocumentElement.ClientHeight())
+
+ web.Window.AddEventListener("resize", func(this js.Value, p []js.Value) any {
+ w.JSCanvas.Set("width", web.Document.DocumentElement.ClientWidth())
+ w.JSCanvas.Set("height", web.Document.DocumentElement.ClientHeight())
+ return nil
+ })
+ } else {
+ web.Window.RemoveEventListener("resize")
+ w.JSCanvas.Set("width", w.Width)
+ w.JSCanvas.Set("height", w.Height)
+ }
+}
+
+func (w *Window) Close() bool {
+ return false
+}
+
+func (w *Window) ContextCurrent() {}
+
+func (w *Window) Destroy() {}
+
+func (w *Window) HandleEvents() {
+ now := time.Now()
+ w.deltaTime = now.Sub(w.lastTime).Seconds()
+ w.lastTime = now
+
+ duration := time.Since(w.lastTime)
+ if duration < w.frameDuration {
+ time.Sleep(w.frameDuration - duration)
+ }
+}
+
+func (w *Window) GetDeltaTime() float32 {
+ return w.deltaTime
+}
+
+func (w *Window) SetFPS(fps int) {
+ if fps > 0 {
+ w.desiredFPS = fps
+ w.frameDuration = time.Second / time.Duration(fps)
+ }
+}
+
+func (w *Window) GetFPS() int {
+ return w.desiredFPS
+}
diff --git a/internal/window/x11/x11.go b/internal/window/x11/x11.go
new file mode 100755
index 0000000..1eb92eb
--- /dev/null
+++ b/internal/window/x11/x11.go
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package x11
+
+/*
+#cgo LDFLAGS: -lX11
+
+
+#include
+#include
+#include
+*/
+import "C"
+
+func XOpenDisplay() {
+ C.XOpenDisplay(nil)
+}
+
+func XCloseDisplay(display *C.Display) {
+ C.XCloseDisplay(nil)
+}
diff --git a/internal/windowing/cocoa/cocoa.go b/internal/windowing/cocoa/cocoa.go
deleted file mode 100644
index 67e4742..0000000
--- a/internal/windowing/cocoa/cocoa.go
+++ /dev/null
@@ -1 +0,0 @@
-package cocoa
\ No newline at end of file
diff --git a/internal/windowing/wayland/wayland.go b/internal/windowing/wayland/wayland.go
deleted file mode 100644
index 138a741..0000000
--- a/internal/windowing/wayland/wayland.go
+++ /dev/null
@@ -1 +0,0 @@
-package wayland
diff --git a/internal/windowing/win.go b/internal/windowing/win.go
deleted file mode 100644
index 3c0cdb5..0000000
--- a/internal/windowing/win.go
+++ /dev/null
@@ -1 +0,0 @@
-package windowing
\ No newline at end of file
diff --git a/internal/windowing/win32/win32.go b/internal/windowing/win32/win32.go
deleted file mode 100644
index b224731..0000000
--- a/internal/windowing/win32/win32.go
+++ /dev/null
@@ -1 +0,0 @@
-package win32
\ No newline at end of file
diff --git a/internal/windowing/x11/x11.go b/internal/windowing/x11/x11.go
deleted file mode 100644
index c00009b..0000000
--- a/internal/windowing/x11/x11.go
+++ /dev/null
@@ -1,20 +0,0 @@
-package x11
-
-/*
-#cgo LDFLAGS: -lX11
-
-
-#include
-#include
-#include
-*/
-import "C"
-
-func XOpenDisplay() {
- C.XOpenDisplay(nil)
-}
-
-func XCloseDisplay(display *C.Display) {
- C.XCloseDisplay(nil)
-}
-
diff --git a/logo/ascii.txt b/logo/ascii.txt
new file mode 100755
index 0000000..df7027a
--- /dev/null
+++ b/logo/ascii.txt
@@ -0,0 +1,40 @@
+
+ ____ ____ __ __
+ \ \ / /_ __ ____ | |_/ |_ ____
+ \ Y / | \_/ __ \| |\ __\/ _ \
+ \ /| | /\ ___/| |_| | ( <_> )
+ \___/ |____/ \_____|____/__| \____/
+
+
+
+ .%&&&(
+ ,&&&&&&&&&&&&&&&&&&&&&&&&,
+ *%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%
+ *&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%(((((((
+ **%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%((((((((((((((((((
+ **********/&&&&&&&&&&&&&&&&&&&&&&&&&&, .((((((((((((((((((((((
+ *******************#&&&&&%* .((((((((((((((((((((((
+ ********************** .((((((((((((((((((((((
+ ********************** .((((((((((((((((((((((
+ ********************** .((((((((((((((((((((((
+ ********************** ((((((((((((((((((((((
+ ********************** ((((((((((((((((((((((
+ ********************** ((((((((((((((((((((((
+ ********************** ((((((((((((((((((((((
+ ********************** ((((((((((((((((((((((
+ ********************** ((((((((((((((((((((((
+ ********************** ((((((((((((((((((((((
+ ********************** ((((((((((((((((((((((
+ ********************** ((((((((((((((((((((((
+ ********************** ((((((((((((((((((((((
+ ********************** ((((((((((((((((((((((
+ ********************** .((((((((((((((((((((((
+ ********************** .((((((((((((((((((((((
+ ********************** .((((((((((((((((((((((
+ ********************** .#&&((((((((((((((((((((
+ ********************** .%&&&&&&&&&&&&&&&&&&&&&&%((((((((((((
+ **********************%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%(((
+ **********************%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&(
+ ********************%&&&&&&&&&&&&&&&&&&&&&&&&%(
+ .***********%&&&&&&&&&&&&&&/
+ ,**%&&&*
diff --git a/logo/banner-dark.png b/logo/banner-dark.png
new file mode 100644
index 0000000..8841969
Binary files /dev/null and b/logo/banner-dark.png differ
diff --git a/logo/banner-dev.png b/logo/banner-dev.png
new file mode 100644
index 0000000..ee26a21
Binary files /dev/null and b/logo/banner-dev.png differ
diff --git a/logo/banner-light.png b/logo/banner-light.png
new file mode 100644
index 0000000..45f01af
Binary files /dev/null and b/logo/banner-light.png differ
diff --git a/logo/banner-nobg.png b/logo/banner-nobg.png
index c0529c8..3d1dc47 100644
Binary files a/logo/banner-nobg.png and b/logo/banner-nobg.png differ
diff --git a/logo/banner-darkmode.png b/logo/old/banner-darkmode.png
old mode 100644
new mode 100755
similarity index 100%
rename from logo/banner-darkmode.png
rename to logo/old/banner-darkmode.png
diff --git a/logo/old/banner-nobg.png b/logo/old/banner-nobg.png
new file mode 100755
index 0000000..c0529c8
Binary files /dev/null and b/logo/old/banner-nobg.png differ
diff --git a/logo/banner.png b/logo/old/banner.png
old mode 100644
new mode 100755
similarity index 100%
rename from logo/banner.png
rename to logo/old/banner.png
diff --git a/logo/banner1.png b/logo/old/banner1.png
old mode 100644
new mode 100755
similarity index 100%
rename from logo/banner1.png
rename to logo/old/banner1.png
diff --git a/logo/icon-no-bg.png b/logo/old/icon-no-bg.png
old mode 100644
new mode 100755
similarity index 100%
rename from logo/icon-no-bg.png
rename to logo/old/icon-no-bg.png
diff --git a/logo/icon.png b/logo/old/icon.png
old mode 100644
new mode 100755
similarity index 100%
rename from logo/icon.png
rename to logo/old/icon.png
diff --git a/logo/pfp-nobg.png b/logo/pfp-nobg.png
new file mode 100644
index 0000000..6eacfe7
Binary files /dev/null and b/logo/pfp-nobg.png differ
diff --git a/logo/pfp.png b/logo/pfp.png
new file mode 100644
index 0000000..342025f
Binary files /dev/null and b/logo/pfp.png differ
diff --git a/mkdocs.yml b/mkdocs.yml
old mode 100644
new mode 100755
index 81511e9..dab8683
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -1,6 +1,8 @@
site_name: Vuelto
site_description: A fast and lightweight game engine powered by Go and OpenGL. Easy, fast and lightweight!
-site_url: https://vuelto.me
+site_url: https://vuelto.pp.ua
+site_author: The Vuelto Team
+copyright: The Vuelto Team
repo_name: vuelto-org/vuelto
repo_url: https://github.com/vuelto-org/vuelto
@@ -8,21 +10,50 @@ repo_url: https://github.com/vuelto-org/vuelto
docs_dir: "website"
nav:
- - Home: "home.md"
-
+ - Home: "index.md"
- Getting started:
- - 🚀 Quick start: "get-started.md"
- - 🛠️ Indepth Installation: "install.md"
+ - 🚀 Quick start: "get-started.md"
+ - 🛠️ In-depth Installation: "install.md"
+
+ - Docs:
+ - 🏠 Home: "docs/index.md"
+ - 👤 User Docs:
+ - 🖥️ Windowing and Renderer: "docs/latest/window-render.md"
+ - 🔊 Audio: "docs/latest/audio.md"
+ - 🔥 Events: "docs/latest/events.md"
+ - 🖼️ Images: "docs/latest/image.md"
+ - 🎨 Drawing: "docs/latest/draw.md"
+ - 🔢 Vector Math: "docs/latest/vectors.md"
+ - 📱 Developer Docs:
+ - 💻 Dev Home: "docs/developers/index.md"
+ - 💍 3 Ring approach: "docs/developers/rings.md"
+ - 📋 Contribution Guidelines: "docs/developers/contribution.md"
+
+ - Blog:
+ - blog/index.md
+ - Tutorials:
+ - 🎓 Home: "tutorials/index.md"
+ - 🌱 Beginner:
+ - 🚀 Getting Started: "tutorials/beginner/new-project.md"
+ - 🎨 Rendering: "tutorials/beginner/rendering.md"
- Roadmap:
- - 🛣️ V1: "roadmap/v1.md"
- - 🛣️ V2: "roadmap/v2.md"
+ - 📅 Upcoming: "roadmap/index.md"
+ - 🛣️ V1: "roadmap/v1.md"
+ - 🛣️ V2: "roadmap/v2.md"
+
+ - About:
+ - 🛈 About: "about/index.md"
+ - 🛡️ License: "about/license.md"
+ - 🤝 Code of Conduct: "about/coc.md"
+ - 👥 Contributing: "about/contributing.md"
theme:
name: material
+ custom_dir: website/overrides
- logo: logo/icon-no-bg.png
- favicon: logo/icon-no-bg.png
+ logo: /logo/pfp-nobg.png
+ favicon: logo/favicon.png
features:
- navigation.path
@@ -34,7 +65,6 @@ theme:
- content.code.copy
-
palette:
- media: "(prefers-color-scheme)"
toggle:
@@ -42,19 +72,26 @@ theme:
name: Switch to light mode
- media: "(prefers-color-scheme: light)"
scheme: default
- primary: teal
- accent: indigo
+ primary: white
+ accent: deep-orange # close to vuelto orange
toggle:
icon: material/toggle-switch
name: Switch to dark mode
- media: "(prefers-color-scheme: dark)"
scheme: slate
primary: black
- accent: indigo
+ accent: indigo # close to vuelto blue
toggle:
icon: material/toggle-switch-off
name: Switch to system preference
+plugins:
+ - blog
+ - redirects:
+ redirect_maps:
+ "discord.md": "https://discord.gg/gZqdRXbbqg"
+ "repo.md": "https://github.com/vuelto-org/vuelto"
+
markdown_extensions:
- abbr
- admonition
@@ -89,6 +126,9 @@ markdown_extensions:
- name: mermaid
class: mermaid
format: !!python/name:pymdownx.superfences.fence_code_format
+ - pymdownx.emoji:
+ emoji_index: !!python/name:material.extensions.emoji.twemoji
+ emoji_generator: !!python/name:material.extensions.emoji.to_svg
- pymdownx.tasklist:
custom_checkbox: true
- pymdownx.tilde
diff --git a/pkg/audio.go b/pkg/audio.go
old mode 100644
new mode 100755
index 0e231b9..dcd8c52
--- a/pkg/audio.go
+++ b/pkg/audio.go
@@ -1,3 +1,15 @@
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
package vuelto
import (
@@ -49,11 +61,11 @@ func OpenAudioFile(filePath string) *AudioPlayer {
}
return &AudioPlayer{
- Streamer: streamer,
- Format: format,
- File: f,
- Done: make(chan bool),
- }
+ Streamer: streamer,
+ Format: format,
+ File: f,
+ Done: make(chan bool),
+ }
}
// Starts playing the audio file.
diff --git a/pkg/draw.go b/pkg/draw.go
old mode 100644
new mode 100755
index f576c96..d9deb33
--- a/pkg/draw.go
+++ b/pkg/draw.go
@@ -1,25 +1,28 @@
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
package vuelto
-import "vuelto.me/internal/gl"
+import (
+ "vuelto.pp.ua/internal/gl"
+)
-// Draws a new rect by the given x, y, width, height and color
+// Draws a new rect by the given x, y, width, height and color.
func (r *Renderer2D) DrawRect(x, y, width, height float32, color [4]int) {
- gl.Begin(gl.QUADS)
- defer gl.End()
-
- gl.Color4f(
- float32(color[0])/255,
- float32(color[1])/255,
- float32(color[2])/255,
- float32(color[3])/255,
- )
- gl.Vertex2f(x, y)
- gl.Vertex2f(x+width, y)
- gl.Vertex2f(x+width, y+height)
- gl.Vertex2f(x, y+height)
+ rect := r.NewRect(x, y, width, height, color)
+ rect.Draw()
}
-// Clears the screen whith the specific color that is provided
+// Clears the screen with the specific color that is provided
func (r *Renderer2D) ClearColor(color [4]int) {
gl.ClearColor(
float32(color[0])/255,
@@ -29,19 +32,8 @@ func (r *Renderer2D) ClearColor(color [4]int) {
)
}
-// Draws a new line by the given x1, x2, y1, y2 and color
-func (r *Renderer2D) DrawLine(x1, x2, y1, y2 float32, color [4]int) {
- gl.LineWidth(1)
-
- gl.Begin(gl.LINES)
- defer gl.End()
-
- gl.Color4f(
- float32(color[0])/255,
- float32(color[1])/255,
- float32(color[2])/255,
- float32(color[3])/255,
- )
- gl.Vertex2f(x1, y1)
- gl.Vertex2f(x2, y2)
+// Draws a new line by the given x1, y1, x2, y2 and color
+func (r *Renderer2D) DrawLine(x1, y1, x2, y2 float32, color [4]int) {
+ line := r.NewLine(x1, y1, x2, y2, color)
+ line.Draw()
}
diff --git a/pkg/events.go b/pkg/events.go
new file mode 100644
index 0000000..7fff8bc
--- /dev/null
+++ b/pkg/events.go
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package vuelto
+
+import "vuelto.pp.ua/internal/event"
+
+var (
+ Keys = event.KeyMap
+ keyState = make(map[event.Key]bool)
+)
+
+func (w *Window) KeyPressed(key event.Key) bool {
+ return w.Event.Key(key) == event.PRESSED
+}
+
+func (w *Window) KeyReleased(key event.Key) bool {
+ return w.Event.Key(key) == event.RELEASED
+}
+
+func (w *Window) KeyPressedOnce(key event.Key) bool {
+ if pressed := w.KeyPressed(key); pressed && !keyState[key] {
+ keyState[key] = true
+ return true
+ } else if !pressed {
+ keyState[key] = false
+ }
+ return false
+}
+
+func (w *Window) MousePos() *Vector2D {
+ return NewVector2D(w.Event.MousePos())
+}
diff --git a/pkg/image.go b/pkg/image.go
old mode 100644
new mode 100755
index 4d5ece5..0a9a186
--- a/pkg/image.go
+++ b/pkg/image.go
@@ -1,84 +1,129 @@
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
package vuelto
import (
- "image"
- "image/draw"
- _ "image/jpeg"
- _ "image/png"
- "log"
-
- "os"
+ "embed"
- "vuelto.me/internal/gl"
+ "vuelto.pp.ua/internal/gl"
+ "vuelto.pp.ua/internal/gl/ushaders"
+ "vuelto.pp.ua/internal/image"
+ "vuelto.pp.ua/internal/trita"
)
type Image struct {
- Texture uint32
- X, Y float32
+ Pos *Vector2D
Width, Height float32
+
+ Buffer *gl.Buffer
+ Texture *gl.Texture
+ Indices []uint16
+ Program *gl.Program
+}
+
+type ImageEmbed struct {
+ Filesystem embed.FS
+ Image string
}
var ImageArray []uint32
// Loads a new image and returns a Image struct. Can be later drawn using the Draw() method
-func (r *Renderer2D) LoadImage(imagePath string, x, y, width, height float32) *Image {
- file, err := os.Open(imagePath)
- if err != nil {
- log.Fatalln("Failed to open image: ", err)
- }
- defer file.Close()
-
- img, _, err := image.Decode(file)
- if err != nil {
- log.Fatalln("Failed to decode image: ", err)
+func (r *Renderer2D) LoadImage(imageFile any, x, y, width, height float32) *Image {
+ vertexShader := gl.NewShader(gl.VertexShader{
+ WebShader: ushaders.WebVShader,
+ DesktopShader: ushaders.DesktopVShader,
+ })
+ fragmentShader := gl.NewShader(gl.FragmentShader{
+ WebShader: ushaders.WebFShader,
+ DesktopShader: ushaders.DesktopFShader,
+ })
+
+ vertexShader.Compile()
+ defer vertexShader.Delete()
+
+ fragmentShader.Compile()
+ defer fragmentShader.Delete()
+
+ program := gl.NewProgram(*vertexShader, *fragmentShader)
+ program.Link()
+
+ program.Use()
+
+ vertices := []float32{
+ x, y, 0.0, 0.0, 0.0,
+ x, y - height, 0.0, 0.0, 1.0,
+ x + width, y - height, 0.0, 1.0, 1.0,
+ x + width, y, 0.0, 1.0, 0.0,
}
- rgba := image.NewRGBA(img.Bounds())
- draw.Draw(rgba, rgba.Bounds(), img, image.Point{}, draw.Over)
+ program.UniformLocation("uniformColor").Set(0, 0, 0, 1.0)
+ program.UniformLocation("useTexture").Set(1)
- var textureID uint32
- gl.GenTextures(1, &textureID)
+ indices := []uint16{
+ 0, 1, 3,
+ 1, 2, 3,
+ }
- gl.BindTexture(gl.TEXTURE_2D, textureID)
+ var file *image.Image
+ switch trita.YourType(imageFile) {
+ case trita.YourType(""):
+ file = image.Load(imageFile.(string))
+ case trita.YourType(ImageEmbed{}):
+ embed := imageFile.(ImageEmbed)
+ file = image.LoadAsEmbed(embed.Filesystem, embed.Image)
+ }
- gl.TexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, rgba.Rect.Size().X, rgba.Rect.Size().Y, 0, gl.RGBA, gl.UNSIGNED_BYTE, rgba.Pix)
+ texture := gl.GenTexture()
+ texture.Bind()
+ texture.Configure(file, gl.NEAREST)
+ texture.UnBind()
- gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE)
- gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE)
- gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR)
- gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR)
+ buffer := gl.GenBuffers(vertices, indices)
+ buffer.Bind(gl.VA, gl.VBO, gl.EBO)
- ImageArray = append(ImageArray, textureID)
+ buffer.Data()
+ gl.SetupVertexAttrib(program)
return &Image{
- Texture: textureID,
- X: x,
- Y: y,
- Width: width,
- Height: height,
+ Pos: NewVector2D(x, y),
+ Width: width,
+ Height: height,
+
+ Buffer: buffer,
+ Texture: texture,
+ Indices: indices,
+ Program: program,
}
}
// Draws the image that's loaded before.
func (img *Image) Draw() {
- gl.BindTexture(gl.TEXTURE_2D, img.Texture)
- defer gl.BindTexture(gl.TEXTURE_2D, 0)
-
- gl.Begin(gl.QUADS)
- defer gl.End()
-
- gl.TexCoord2f(0.0, 0.0)
- gl.Vertex2f(img.X, img.Y)
- gl.TexCoord2f(1.0, 0.0)
- gl.Vertex2f(img.X+img.Width, img.Y)
- gl.TexCoord2f(1.0, 1.0)
- gl.Vertex2f(img.X+img.Width, img.Y+img.Height)
- gl.TexCoord2f(0.0, 1.0)
- gl.Vertex2f(img.X, img.Y+img.Height)
-}
-
-func cleanTex() {
- for _, i := range ImageArray {
- gl.DeleteTextures(1, &i)
+ vertices := []float32{
+ img.Pos.X, img.Pos.Y, 0.0, 0.0, 0.0,
+ img.Pos.X, img.Pos.Y - img.Height, 0.0, 0.0, 1.0,
+ img.Pos.X + img.Width, img.Pos.Y - img.Height, 0.0, 1.0, 1.0,
+ img.Pos.X + img.Width, img.Pos.Y, 0.0, 1.0, 0.0,
}
+
+ img.Program.Use()
+
+ img.Buffer.Bind(gl.VA, gl.VBO, gl.EBO)
+ img.Buffer.Update(vertices)
+
+ img.Texture.Bind()
+ gl.DrawElements(img.Indices)
+ img.Texture.UnBind()
+
+ img.Buffer.UnBind(gl.VA, gl.VBO, gl.EBO)
}
diff --git a/pkg/renderer.go b/pkg/renderer.go
old mode 100644
new mode 100755
index 3825e8b..bd78318
--- a/pkg/renderer.go
+++ b/pkg/renderer.go
@@ -1,3 +1,15 @@
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
package vuelto
type Renderer2D struct {
@@ -7,6 +19,6 @@ type Renderer2D struct {
// Creates a new renderer thats connected to the window.
func (w *Window) NewRenderer2D() *Renderer2D {
return &Renderer2D{
- Window: w,
- }
+ Window: w,
+ }
}
diff --git a/pkg/shapes.go b/pkg/shapes.go
old mode 100644
new mode 100755
index d5d9ef3..49014c4
--- a/pkg/shapes.go
+++ b/pkg/shapes.go
@@ -1,47 +1,192 @@
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
package vuelto
+import (
+ "vuelto.pp.ua/internal/gl"
+ "vuelto.pp.ua/internal/gl/ushaders"
+)
+
type Line struct {
- Renderer *Renderer2D
- X1, Y1, X2, Y2 float32
- Color [4]int
+ Renderer *Renderer2D
+ Pos1 *Vector2D
+ Pos2 *Vector2D
+ Color [4]int
+
+ Buffer *gl.Buffer
+ Program *gl.Program
+ Indices []uint16
}
type Rect struct {
- Renderer *Renderer2D
- X, Y, Width, Height float32
- Color [4]int
+ Renderer *Renderer2D
+ Pos *Vector2D
+ Width float32
+ Height float32
+ Color [4]int
+
+ Buffer *gl.Buffer
+ Program *gl.Program
+ Indices []uint16
}
// Loads a new line and returns a Line struct. Can be later drawn using Draw() method
func (r *Renderer2D) NewLine(x1, y1, x2, y2 float32, color [4]int) *Line {
+ vertexShader := gl.NewShader(gl.VertexShader{
+ WebShader: ushaders.WebVShader,
+ DesktopShader: ushaders.DesktopVShader,
+ })
+ fragmentShader := gl.NewShader(gl.FragmentShader{
+ WebShader: ushaders.WebFShader,
+ DesktopShader: ushaders.DesktopFShader,
+ })
+
+ vertexShader.Compile()
+ defer vertexShader.Delete()
+
+ fragmentShader.Compile()
+ defer fragmentShader.Delete()
+
+ program := gl.NewProgram(*vertexShader, *fragmentShader)
+ program.Link()
+
+ program.Use()
+
+ vertices := []float32{
+ x1, y1, 0.0,
+ x2, y2, 0.0,
+ }
+
+ program.UniformLocation("uniformColor").Set(
+ float32(color[0])/255,
+ float32(color[1])/255,
+ float32(color[2])/255,
+ float32(color[3])/255,
+ )
+
+ program.UniformLocation("useTexture").Set(0)
+
+ indices := []uint16{
+ 0, 1,
+ }
+
+ buffer := gl.GenBuffers(vertices, indices)
+ buffer.Bind(gl.VA, gl.VBO, gl.EBO)
+
+ buffer.Data()
+ gl.SetupVertexAttrib(program)
+
return &Line{
Renderer: r,
- X1: x1,
- Y1: y1,
- X2: x2,
- Y2: y2,
+ Pos1: NewVector2D(x1, y1),
+ Pos2: NewVector2D(x2, y2),
Color: color,
+
+ Buffer: buffer,
+ Program: program,
+ Indices: indices,
}
}
// Loads a new rect and returns a Rect struct. Can be later drawn using Draw() method
func (r *Renderer2D) NewRect(x, y, width, height float32, color [4]int) *Rect {
+ vertexShader := gl.NewShader(gl.VertexShader{
+ WebShader: ushaders.WebVShader,
+ DesktopShader: ushaders.DesktopVShader,
+ })
+ fragmentShader := gl.NewShader(gl.FragmentShader{
+ WebShader: ushaders.WebFShader,
+ DesktopShader: ushaders.DesktopFShader,
+ })
+
+ vertexShader.Compile()
+ defer vertexShader.Delete()
+
+ fragmentShader.Compile()
+ defer fragmentShader.Delete()
+
+ program := gl.NewProgram(*vertexShader, *fragmentShader)
+ program.Link()
+
+ program.Use()
+
+ vertices := []float32{
+ x, y, 0.0,
+ x, y - height, 0.0,
+ x + width, y - height, 0.0,
+ x + width, y, 0.0,
+ }
+ program.UniformLocation("useTexture").Set(0)
+ program.UniformLocation("uniformColor").Set(
+ float32(color[0])/255,
+ float32(color[1])/255,
+ float32(color[2])/255,
+ float32(color[3])/255,
+ )
+
+ indices := []uint16{
+ 0, 1, 3,
+ 1, 2, 3,
+ }
+
+ buffer := gl.GenBuffers(vertices, indices)
+ buffer.Bind(gl.VA, gl.VBO, gl.EBO)
+
+ buffer.Data()
+ gl.SetupVertexAttrib(program)
+
return &Rect{
Renderer: r,
- X: x,
- Y: y,
Width: width,
Height: height,
+ Pos: NewVector2D(x, y),
Color: color,
+
+ Buffer: buffer,
+ Program: program,
+ Indices: indices,
}
}
// Draws the line loaded previously
func (l *Line) Draw() {
- l.Renderer.DrawLine(l.X1, l.Y1, l.X2, l.Y2, l.Color)
+ vertices := []float32{
+ l.Pos1.X, l.Pos1.Y, 0.0,
+ l.Pos2.X, l.Pos2.Y, 0.0,
+ }
+
+ l.Program.Use()
+
+ l.Buffer.Bind(gl.VA, gl.VBO, gl.EBO)
+ l.Buffer.Update(vertices)
+ gl.DrawElements(l.Indices)
+ l.Buffer.UnBind(gl.VA, gl.VBO, gl.EBO)
}
// Draws the rect loaded previously
func (r *Rect) Draw() {
- r.Renderer.DrawRect(r.X, r.Y, r.Width, r.Height, r.Color)
+
+ vertices := []float32{
+ r.Pos.X, r.Pos.Y, 0.0,
+ r.Pos.X, r.Pos.Y - r.Height, 0.0,
+ r.Pos.X + r.Width, r.Pos.Y - r.Height, 0.0,
+ r.Pos.X + r.Width, r.Pos.Y, 0.0,
+ }
+
+ r.Program.Use()
+
+ r.Buffer.Bind(gl.VA, gl.VBO, gl.EBO)
+ r.Buffer.Update(vertices)
+ gl.DrawElements(r.Indices)
+ r.Buffer.UnBind(gl.VA, gl.VBO, gl.EBO)
}
diff --git a/pkg/vectors.go b/pkg/vectors.go
old mode 100644
new mode 100755
index 8d1cd33..eb57399
--- a/pkg/vectors.go
+++ b/pkg/vectors.go
@@ -1,63 +1,79 @@
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
package vuelto
type Vector2D struct {
- X float64
- Y float64
+ X float32
+ Y float32
}
type Vector3D struct {
- X float64
- Y float64
- Z float64
+ X float32
+ Y float32
+ Z float32
}
// Creates a new 2D vector with x and y values
-func NewVector2D(x, y float64) *Vector2D {
+func NewVector2D(x, y float32) *Vector2D {
return &Vector2D{
- X: x,
- Y: y,
- }
+ X: x,
+ Y: y,
+ }
+}
+
+func (v2d *Vector2D) Pos() (float32, float32) {
+ return v2d.X, v2d.Y
}
// Adds two 2D vectors together
func AddVector2D(v1, v2 Vector2D) *Vector2D {
- return &Vector2D{
- X: v1.X + v2.X,
- Y: v1.Y + v2.Y,
- }
+ return &Vector2D{
+ X: v1.X + v2.X,
+ Y: v1.Y + v2.Y,
+ }
}
// Subtracts two 2D vectors from each other
func SubtractVector2D(v1, v2 Vector2D) *Vector2D {
return &Vector2D{
- X: v1.X - v2.X,
- Y: v1.Y - v2.Y,
- }
+ X: v1.X - v2.X,
+ Y: v1.Y - v2.Y,
+ }
}
// Creates a new 3D vector with x, y and z values
-func NewVector3D(x, y, z float64) *Vector3D {
+func NewVector3D(x, y, z float32) *Vector3D {
return &Vector3D{
- X: x,
- Y: y,
- Z: z,
- }
+ X: x,
+ Y: y,
+ Z: z,
+ }
}
// Adds two 3D vectors together
func AddVector3D(v1, v2 Vector3D) *Vector3D {
return &Vector3D{
- X: v1.X + v2.X,
- Y: v1.Y + v2.Y,
- Z: v1.Z + v2.Z,
- }
+ X: v1.X + v2.X,
+ Y: v1.Y + v2.Y,
+ Z: v1.Z + v2.Z,
+ }
}
// Subtracts two 3D vectors from each other
func SubtractVector3D(v1, v2 Vector3D) *Vector3D {
return &Vector3D{
- X: v1.X - v2.X,
- Y: v1.Y - v2.Y,
- Z: v1.Z - v2.Z,
- }
+ X: v1.X - v2.X,
+ Y: v1.Y - v2.Y,
+ Z: v1.Z - v2.Z,
+ }
}
diff --git a/pkg/window.go b/pkg/window.go
old mode 100644
new mode 100755
index 23be7fc..1f87349
--- a/pkg/window.go
+++ b/pkg/window.go
@@ -1,96 +1,121 @@
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the VL-Cv1.1 License.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1.1,
+ * at which point the copyright no longer applies.
+ *
+ * Distributed WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
package vuelto
import (
"log"
- "runtime"
- "github.com/go-gl/glfw/v3.3/glfw"
- "vuelto.me/internal/gl"
+ "vuelto.pp.ua/internal/event"
+ "vuelto.pp.ua/internal/gl"
+ windowing "vuelto.pp.ua/internal/window"
)
type Window struct {
- Window *glfw.Window
+ Window *windowing.Window
Title string
Width, Height int
+
+ Event *event.Event
}
-func framebuffersizecallback(window *glfw.Window, newWidth, newHeight int) {
+func frameBufferSizeCallback(window *windowing.Window, newWidth, newHeight int) {
gl.Viewport(0, 0, newWidth, newHeight)
}
// Creates a new window and returns a Window struct.
func NewWindow(title string, width, height int, resizable bool) *Window {
- runtime.LockOSThread()
-
- if err := glfw.Init(); err != nil {
- log.Fatalln("failed to initialize glfw:", err)
+ window, err := windowing.InitWindow()
+ if err != nil {
+ log.Fatalln("Could not initialize a new window: ", err)
+ return nil
}
+ defer window.Close()
- if resizable {
- glfw.WindowHint(glfw.Resizable, glfw.True)
- } else {
- glfw.WindowHint(glfw.Resizable, glfw.False)
- }
+ window.GlfwGLMajor = 3
+ window.GlfwGLMinor = 3
+
+ window.Title = title
+ window.Width = width
+ window.Height = height
- glfw.WindowHint(glfw.ContextVersionMajor, 2)
- glfw.WindowHint(glfw.ContextVersionMinor, 1)
+ window.Resizable = resizable
- window, err := glfw.CreateWindow(width, height, title, nil, nil)
+ err = window.Create()
if err != nil {
log.Fatalln("Error create window:", err)
}
- window.SetFramebufferSizeCallback(framebuffersizecallback)
+ window.ResizingCallback(frameBufferSizeCallback)
- window.MakeContextCurrent()
+ events := event.Init(window)
- gl.Ortho(0, float64(width), float64(height), 0, -1, 1)
+ err = gl.Init()
+ if err != nil {
+ log.Fatalf("Failed to initialize: %s", err)
+ }
- gl.Enable(gl.BLEND)
- gl.Enable(gl.TEXTURE_2D)
+ gl.Enable(gl.TEXTURE_2D, gl.BLEND)
+ gl.EnableBlend()
- gl.BlendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA)
+ window.ContextCurrent()
return &Window{
- Window: window,
- Title: title,
- Width: width,
- Height: height,
- }
+ Window: window,
+ Title: title,
+ Width: width,
+ Height: height,
+ Event: events,
+ }
}
// Sets the resizable attribute of the window.
func (w *Window) SetResizable(resizable bool) {
- if resizable {
- w.Window.SetAttrib(glfw.Resizable, glfw.True)
- } else {
- w.Window.SetAttrib(glfw.Resizable, glfw.False)
- }
+ w.Window.SetResizable(resizable)
}
// Function created for a loop. Returns true when being closed, and returns false when being active.
func (w *Window) Close() bool {
- for !w.Window.ShouldClose() {
- glfw.PollEvents()
+ for !w.Window.Close() {
return false
}
- cleanTex()
return true
}
// Refreshes te window. Run this at the end of your loop (except if you're having multiple windows)
func (w *Window) Refresh() {
- w.Window.SwapBuffers()
- gl.Clear(gl.COLOR_BUFFER_BIT)
+ w.Window.HandleEvents()
+ w.Window.UpdateBuffers()
+ gl.Clear()
}
// Sets the context of the window to the current context. (Only use when having multiple windows)
-func (w *Window) SetContextCurrent() {
- w.Window.MakeContextCurrent()
+func (w *Window) SetCurrent() {
+ w.Window.ContextCurrent()
}
// Destroys the window and cleans up the memory.
func (w *Window) Destroy() {
w.Window.Destroy()
- cleanTex()
+}
+
+func (w *Window) GetDeltaTime() float32 {
+ return float32(w.Window.GetDeltaTime())
+}
+
+func (w *Window) SetFPS(fps int) {
+ w.Window.SetFPS(fps)
+}
+
+func (w *Window) GetFPS() int {
+ return w.Window.GetFPS()
}
diff --git a/test/backend/test.go b/test/backend/test.go
new file mode 100755
index 0000000..42f7812
--- /dev/null
+++ b/test/backend/test.go
@@ -0,0 +1,138 @@
+package main
+
+import (
+ "embed"
+ _ "embed"
+ "log"
+
+ "vuelto.pp.ua/internal/event"
+ "vuelto.pp.ua/internal/gl"
+ "vuelto.pp.ua/internal/gl/ushaders"
+ "vuelto.pp.ua/internal/image"
+
+ windowing "vuelto.pp.ua/internal/window"
+)
+
+//go:embed tree.png
+var embeddedFiles embed.FS
+
+func frameBufferSizeCallback(window *windowing.Window, newWidth, newHeight int) {
+ gl.Viewport(0, 0, newWidth, newHeight)
+}
+
+func main() {
+ win, err := windowing.InitWindow()
+ if err != nil {
+ log.Fatalf("Failed to initialize: %s", err)
+ }
+ defer win.Close()
+
+ win.Resizable = false
+ win.Title = "Test"
+
+ win.Width = 500
+ win.Height = 500
+
+ win.GlfwGLMajor = 3
+ win.GlfwGLMinor = 3
+ win.SetFPS(30)
+
+ err = win.Create()
+ if err != nil {
+ log.Fatalln("Error create window:", err)
+ }
+
+ win.ResizingCallback(frameBufferSizeCallback)
+
+ events := event.Init(win)
+
+ err = gl.Init()
+ if err != nil {
+ log.Fatalf("Failed to initialize: %s", err)
+ }
+
+ gl.Enable(gl.TEXTURE_2D)
+
+ win.ContextCurrent()
+
+ vertexShader := gl.NewShader(gl.VertexShader{
+ WebShader: ushaders.WebVShader,
+ DesktopShader: ushaders.DesktopVShader,
+ })
+ fragmentShader := gl.NewShader(gl.FragmentShader{
+ WebShader: ushaders.WebFShader,
+ DesktopShader: ushaders.DesktopFShader,
+ })
+
+ vertexShader.Compile()
+ defer vertexShader.Delete()
+
+ fragmentShader.Compile()
+ defer fragmentShader.Delete()
+
+ program := gl.NewProgram(*vertexShader, *fragmentShader)
+ program.Link()
+ defer program.Delete()
+
+ program.Use()
+
+ vertices := []float32{
+ // Positions // Texture Coords
+ -0.5, 0.5, 0.0, 0.0, 0.0, // Top-left
+ -0.5, -0.5, 0.0, 0.0, 1.0, // Bottom-left
+ 0.5, -0.5, 0.0, 1.0, 1.0, // Bottom-right
+ 0.5, 0.5, 0.0, 1.0, 0.0, // Top-right
+ }
+
+ program.UniformLocation("uniformColor").Set(0, 0, 0, 1.0)
+ program.UniformLocation("useTexture").Set(1)
+
+ indices := []uint16{
+ 0, 1, 3, // bottom-left, bottom-right, top-right
+ 1, 2, 3, // bottom-left, top-right, top-left
+ }
+
+ texture := gl.GenTexture()
+ texture.Bind()
+ texture.Configure(image.LoadAsEmbed(embeddedFiles, "tree.png"), gl.NEAREST)
+ texture.UnBind()
+ defer texture.Delete()
+
+ buffer := gl.GenBuffers(vertices, indices)
+ buffer.Bind(gl.VA, gl.VBO, gl.EBO)
+ defer buffer.Delete(gl.VA, gl.VBO, gl.EBO)
+
+ buffer.Data()
+ gl.SetupVertexAttrib(program)
+
+ dx := float32(0.01)
+ dy := float32(0.0)
+
+ for !win.Close() {
+ gl.Clear()
+ gl.ClearColor(0.2, 0.2, 0.2, 1)
+
+ if events.Key(event.KeyMap["Left"]) == event.PRESSED {
+ dx = -0.01
+ } else if events.Key(event.KeyMap["Right"]) == event.PRESSED {
+ dx = 0.01
+ } else {
+ dx = 0.0
+ }
+
+ for i := 0; i < len(vertices); i += 5 {
+ vertices[i] += dx
+ vertices[i+1] += dy
+ }
+
+ buffer.Bind(gl.VBO)
+ buffer.Update(vertices)
+
+ texture.Bind()
+ gl.DrawElements(indices)
+ texture.UnBind()
+
+ win.HandleEvents()
+ win.UpdateBuffers()
+ }
+}
diff --git a/test/backend/tree.png b/test/backend/tree.png
new file mode 100755
index 0000000..36d2211
Binary files /dev/null and b/test/backend/tree.png differ
diff --git a/test/backend2/test.go b/test/backend2/test.go
new file mode 100644
index 0000000..f5386bc
--- /dev/null
+++ b/test/backend2/test.go
@@ -0,0 +1,101 @@
+package main
+
+import (
+ _ "embed"
+ "log"
+
+ "vuelto.pp.ua/internal/gl"
+ "vuelto.pp.ua/internal/gl/ushaders"
+
+ windowing "vuelto.pp.ua/internal/window"
+)
+
+func framebuffersizecallback(window *windowing.Window, newWidth, newHeight int) {
+ gl.Viewport(0, 0, newWidth, newHeight)
+}
+
+func main() {
+ win, err := windowing.InitWindow()
+ if err != nil {
+ log.Fatalf("Failed to initialise: %s", err)
+ }
+ defer win.Close()
+
+ win.Resizable = false
+ win.Title = "Test"
+
+ win.Width = 500
+ win.Height = 500
+
+ win.GlfwGLMajor = 3
+ win.GlfwGLMinor = 3
+ win.SetFPS(30)
+
+ err = win.Create()
+ if err != nil {
+ log.Fatalln("Error create window:", err)
+ }
+
+ win.ResizingCallback(framebuffersizecallback)
+
+ err = gl.Init()
+ if err != nil {
+ log.Fatalf("Failed to initialise: %s", err)
+ }
+
+ gl.Enable(gl.TEXTURE_2D)
+
+ win.ContextCurrent()
+
+ vertexShader := gl.NewShader(gl.VertexShader{
+ WebShader: ushaders.WebVShader,
+ DesktopShader: ushaders.DesktopVShader,
+ })
+ fragmentShader := gl.NewShader(gl.FragmentShader{
+ WebShader: ushaders.WebFShader,
+ DesktopShader: ushaders.DesktopFShader,
+ })
+
+ vertexShader.Compile()
+ defer vertexShader.Delete()
+
+ fragmentShader.Compile()
+ defer fragmentShader.Delete()
+
+ program := gl.NewProgram(*vertexShader, *fragmentShader)
+ program.Link()
+ defer program.Delete()
+
+ program.Use()
+
+ vertices := []float32{
+ -0.9, -0.9, 0.0,
+ 0.9, -0.9, 0.0,
+ }
+
+ program.UniformLocation("uniformColor").Set(0.2, 0.6, 0.3, 1.0)
+ program.UniformLocation("useTexture").Set(0)
+
+ indices := []uint16{
+ 0, 1,
+ }
+
+ buffer := gl.GenBuffers(vertices, indices)
+ buffer.Bind(gl.VA, gl.VBO, gl.EBO)
+ defer buffer.Delete(gl.VA, gl.VBO, gl.EBO)
+
+ buffer.Data()
+ gl.SetupVertexAttrib(program)
+
+ for !win.Close() {
+ gl.Clear()
+ gl.ClearColor(0.2, 0.2, 0.2, 1)
+
+ buffer.Bind(gl.VA, gl.VBO, gl.EBO)
+ gl.DrawElements(indices)
+ buffer.UnBind(gl.VA, gl.VBO, gl.EBO)
+
+ win.HandleEvents()
+ win.UpdateBuffers()
+ }
+}
diff --git a/test/test.sh b/test/test.sh
deleted file mode 100644
index d83684f..0000000
--- a/test/test.sh
+++ /dev/null
@@ -1 +0,0 @@
-go run test1/test.go
diff --git a/test/test/galaxy.png b/test/test/galaxy.png
new file mode 100755
index 0000000..8f860ca
Binary files /dev/null and b/test/test/galaxy.png differ
diff --git a/test/test/test.go b/test/test/test.go
new file mode 100755
index 0000000..dbf3942
--- /dev/null
+++ b/test/test/test.go
@@ -0,0 +1,49 @@
+package main
+
+import (
+ "fmt"
+
+ vuelto "vuelto.pp.ua/pkg"
+)
+
+func main() {
+ w1 := vuelto.NewWindow("hi", 800, 600, false)
+ w2 := vuelto.NewWindow("hi2", 800, 600, false)
+
+ ren1 := w1.NewRenderer2D()
+ ren2 := w2.NewRenderer2D()
+
+ w1.SetCurrent()
+ rect := ren1.NewRect(0, 0, 0.5, 0.5, [4]int{10, 145, 245, 255})
+ line := ren1.NewLine(0.1, 0.1, 0.4, 0.4, [4]int{10, 145, 245, 255})
+
+ w2.SetCurrent()
+ image := ren2.LoadImage("test/test/tree.png", 0.1, -0.1, 0.4, -0.4)
+ image1 := ren2.LoadImage("test/test/galaxy.png", -0.1, -0.1, 0.4, 0.4)
+
+ for !w1.Close() && !w2.Close() {
+ w1.SetCurrent()
+ ren1.ClearColor([4]int{100, 100, 100, 255})
+
+ if w1.KeyPressed(vuelto.Keys["Left"]) {
+ rect.Pos.X = rect.Pos.X - 0.5*w1.GetDeltaTime()
+ } else if w1.KeyPressed(vuelto.Keys["Right"]) {
+ rect.Pos.X = rect.Pos.X + 0.5*w1.GetDeltaTime()
+ }
+
+ fmt.Println(w1.MousePos())
+
+ rect.Draw()
+
+ line.Draw()
+
+ w1.Refresh()
+ w2.SetCurrent()
+
+ image.Draw()
+ image1.Draw()
+
+ w2.Refresh()
+
+ }
+}
diff --git a/test/test/tree.png b/test/test/tree.png
new file mode 100755
index 0000000..36d2211
Binary files /dev/null and b/test/test/tree.png differ
diff --git a/test/test1/test.go b/test/test1/test.go
deleted file mode 100644
index a27b60f..0000000
--- a/test/test1/test.go
+++ /dev/null
@@ -1,30 +0,0 @@
-package main
-
-import "vuelto.me/pkg"
-
-func main() {
- w1 := vuelto.NewWindow("hi", 800, 600, false)
- w2 := vuelto.NewWindow("hi2", 800, 600, false)
-
- ren1 := w1.NewRenderer2D()
- ren2 := w2.NewRenderer2D()
-
- image := ren2.LoadImage("test/test1/tree.png", 300, 300, 250, 250)
- image1 := ren2.LoadImage("test/test1/image.png", 100, 100, 150, 150)
-
- for !w1.Close() && !w2.Close() {
- w1.SetContextCurrent()
- ren1.ClearColor([4]int{100, 100, 100, 255})
-
- ren1.DrawRect(0, 0, 500, 500, [4]int{10, 145, 245, 255})
-
- w1.Refresh()
- w2.SetContextCurrent()
-
- image.Draw()
- image1.Draw()
-
- w2.Refresh()
-
- }
-}
diff --git a/test/web/test.go b/test/web/test.go
new file mode 100644
index 0000000..f1b8788
--- /dev/null
+++ b/test/web/test.go
@@ -0,0 +1,130 @@
+//go:build js && wasm
+// +build js,wasm
+
+package main
+
+import (
+ "embed"
+ _ "image/png"
+ "syscall/js"
+
+ vimage "vuelto.pp.ua/internal/image"
+)
+
+//go:embed tree.png
+var embeddedFiles embed.FS
+
+func renderImage() {
+ doc := js.Global().Get("document")
+ canvas := doc.Call("createElement", "canvas")
+ canvas.Set("width", 800)
+ canvas.Set("height", 600)
+ doc.Get("body").Call("appendChild", canvas)
+
+ gl := canvas.Call("getContext", "webgl")
+ if gl.IsNull() {
+ panic("WebGL not supported")
+ }
+
+ vertexShaderSource := `
+ attribute vec4 position;
+ attribute vec2 texCoord;
+ varying vec2 vTexCoord;
+ void main() {
+ gl_Position = position;
+ vTexCoord = texCoord;
+ }
+ `
+
+ fragmentShaderSource := `
+ precision mediump float;
+ varying vec2 vTexCoord;
+ uniform sampler2D texture;
+ void main() {
+ gl_FragColor = texture2D(texture, vTexCoord);
+ }
+ `
+
+ program := createProgram(gl, vertexShaderSource, fragmentShaderSource)
+ gl.Call("useProgram", program)
+
+ data := []float32{
+ -1, 1, 0, 0, 1, // Top-left
+ -1, -1, 0, 0, 0, // Bottom-left
+ 1, 1, 0, 1, 1, // Top-right
+ 1, -1, 0, 1, 0, // Bottom-right
+ }
+
+ indices := []uint16{
+ 0, 1, 2,
+ 2, 1, 3,
+ }
+
+ vertexBuffer := gl.Call("createBuffer")
+ gl.Call("bindBuffer", gl.Get("ARRAY_BUFFER"), vertexBuffer)
+
+ vertices := js.Global().Get("Float32Array").New(len(data))
+ for i, v := range data {
+ vertices.SetIndex(i, v)
+ }
+ gl.Call("bufferData", gl.Get("ARRAY_BUFFER"), vertices, gl.Get("STATIC_DRAW"))
+
+ indexBuffer := gl.Call("createBuffer")
+ gl.Call("bindBuffer", gl.Get("ELEMENT_ARRAY_BUFFER"), indexBuffer)
+
+ indicesTyped := js.Global().Get("Uint16Array").New(len(indices))
+ for i, v := range indices {
+ indicesTyped.SetIndex(i, v)
+ }
+ gl.Call("bufferData", gl.Get("ELEMENT_ARRAY_BUFFER"), indicesTyped, gl.Get("STATIC_DRAW"))
+
+ // position := gl.Call("getAttribLocation", program, "position")
+ gl.Call("enableVertexAttribArray", 1)
+ gl.Call("vertexAttribPointer", 0, 3, gl.Get("FLOAT"), false, 20, 0)
+
+ // texCoord := gl.Call("getAttribLocation", program, "texCoord")
+ gl.Call("enableVertexAttribArray", 0)
+ gl.Call("vertexAttribPointer", 1, 2, gl.Get("FLOAT"), false, 20, 12)
+
+ texture := gl.Call("createTexture")
+ gl.Call("bindTexture", gl.Get("TEXTURE_2D"), texture)
+
+ img := vimage.LoadAsEmbed(embeddedFiles, "tree.png")
+ gl.Call("texImage2D", gl.Get("TEXTURE_2D"), 0, gl.Get("RGBA"), img.Width, img.Height, 0, gl.Get("RGBA"), gl.Get("UNSIGNED_BYTE"), img.Texture)
+
+ gl.Call("texParameteri", gl.Get("TEXTURE_2D"), gl.Get("TEXTURE_MIN_FILTER"), gl.Get("LINEAR"))
+ gl.Call("texParameteri", gl.Get("TEXTURE_2D"), gl.Get("TEXTURE_WRAP_S"), gl.Get("CLAMP_TO_EDGE"))
+ gl.Call("texParameteri", gl.Get("TEXTURE_2D"), gl.Get("TEXTURE_WRAP_T"), gl.Get("CLAMP_TO_EDGE"))
+
+ gl.Call("clearColor", 0.0, 0.0, 0.0, 1.0)
+ gl.Call("clear", gl.Get("COLOR_BUFFER_BIT"))
+ gl.Call("drawElements", gl.Get("TRIANGLES"), len(indices), gl.Get("UNSIGNED_SHORT"), 0)
+}
+
+func createShader(gl js.Value, shaderType int, source string) js.Value {
+ shader := gl.Call("createShader", shaderType)
+ gl.Call("shaderSource", shader, source)
+ gl.Call("compileShader", shader)
+ if !gl.Call("getShaderParameter", shader, gl.Get("COMPILE_STATUS")).Bool() {
+ panic(gl.Call("getShaderInfoLog", shader).String())
+ }
+ return shader
+}
+
+func createProgram(gl js.Value, vertexShaderSource, fragmentShaderSource string) js.Value {
+ vertexShader := createShader(gl, gl.Get("VERTEX_SHADER").Int(), vertexShaderSource)
+ fragmentShader := createShader(gl, gl.Get("FRAGMENT_SHADER").Int(), fragmentShaderSource)
+
+ program := gl.Call("createProgram")
+ gl.Call("attachShader", program, vertexShader)
+ gl.Call("attachShader", program, fragmentShader)
+ gl.Call("linkProgram", program)
+ if !gl.Call("getProgramParameter", program, gl.Get("LINK_STATUS")).Bool() {
+ panic(gl.Call("getProgramInfoLog", program).String())
+ }
+ return program
+}
+
+func main() {
+ renderImage()
+}
diff --git a/test/web/tree.png b/test/web/tree.png
new file mode 100755
index 0000000..36d2211
Binary files /dev/null and b/test/web/tree.png differ
diff --git a/website/CNAME b/website/CNAME
old mode 100644
new mode 100755
index a1f8843..f225558
--- a/website/CNAME
+++ b/website/CNAME
@@ -1 +1 @@
-vuelto.me
+vuelto.pp.ua
diff --git a/website/about/coc.md b/website/about/coc.md
new file mode 100644
index 0000000..10d05c6
--- /dev/null
+++ b/website/about/coc.md
@@ -0,0 +1,19 @@
+# Vuelto Code of Conduct
+
+Vuelto is built by developers, for developers. We are committed to fostering a welcoming and inclusive community. By participating in this project, you agree to the following principles:
+
+1. **Respect Everyone**
+Treat all contributors with kindness and respect. Discrimination, harassment, or offensive language is not tolerated.
+
+2. **Collaborate Openly**
+ Share ideas, feedback, and code in a constructive and respectful manner. Assume good intentions and work to resolve disagreements with empathy.
+
+3. **Stay Professional**
+ Keep discussions focused on the project. Avoid disruptive behavior, spamming, or derailing conversations.
+
+4. **Be Inclusive**
+ Make the community accessible to everyone, regardless of experience level, background, or identity.
+
+Violations of this Code of Conduct may result in warnings, bans, or other actions as necessary. If you experience or witness any unacceptable behavior, please report it to the maintainers.
+
+Together, let's build a community where creativity and collaboration thrive!
diff --git a/website/about/contributing.md b/website/about/contributing.md
new file mode 100644
index 0000000..bed0211
--- /dev/null
+++ b/website/about/contributing.md
@@ -0,0 +1,60 @@
+# Contributing rules
+
+We are happy and welcome if you want to contribute to Vuelto. But please consider a few details before continuing:
+
+1. Branch: Please when working on your fork, work in the dev branch, because we only will accept commits to the dev branch. It will later be released with the next version of Vuelto.
+2. Explain: Please explain why this should be considered and merged. That will make our life easier.
+3. Test: Please test your code before even opening a new pull request.
+4. Documentation: Please, if you’re adding something new, like a feature, please document everything.
+5. Format: Please, run `make format` for formatting of the code.
+
+Not following these rules
+If we see a pull request that doesn't follow these rules, we will tell you that, and close the pull request.
+We allow you to re-open a new pull request, but we expect you to have your code fixed.
+So make sure that you followed [the rules](#contributing-rules)
+
+Some technologies we are using
+
+- GLFW: We use this for the desktop windowing
+- “syscall/js”: We use this to interact with the JS runtime
+- glow: Generate OpenGL Go bindings (only happened one)
+- CGo: Interface to use C with Go
+
+## How to setup the work environment
+
+If you want to contribute, you have to set up the work environment, so you can develop vuelto the right way.
+
+1. Install the packages
+
+```bash
+go mod tidy
+```
+
+2. Fork [the repository](https://vuelto.pp.ua/repo).
+
+3. Clone your forked github repository:
+
+```bash
+git clone https://github.com/your_username_/vuelto.git
+cd vuelto
+```
+
+4. Change the branch to the dev branch to follow rule \#1:
+
+```bash
+git checkout dev
+```
+
+## Pull Request
+
+If you're ready with your changes, then you must follow a few steps before pull requesting.
+
+1. Run `make` to format your code:
+
+```bash
+make format
+```
+
+Then make sure your pull request code works without erroring and you followed the [contribution rules](#contributing-rules)
+
+After all of this, you can create a pull request and one of our main organization members will look at it.
diff --git a/website/about/index.md b/website/about/index.md
new file mode 100644
index 0000000..21d9ac7
--- /dev/null
+++ b/website/about/index.md
@@ -0,0 +1,37 @@
+# 👋 About
+
+Vuelto is an open-source, fast, and light game engine, based on Golang, CGo, and OpenGL. It's really easy to use, yet very powerful, and it also supports cross-platform compiling. Our goal is to provide our community a solid game engine that is easy to use and powerful enough to create amazing games. All ported to work with Go's ecosystem.
+
+## 📖 Guidelines
+
+We’re excited to have you here! To ensure a welcoming and productive environment, we kindly ask you to follow our **Guidelines**. Please take a moment to review the following:
+
+- **[Contributing](https://vuelto.pp.ua/about/contributing/)**: Learn how to make meaningful contributions to our project.
+- **[Code of Conduct](https://vuelto.pp.ua/about/coc/)**: Understand the principles that foster a respectful and inclusive community.
+
+By participating in this project, you agree to uphold these guidelines and help us maintain a collaborative space for everyone. Thank you for being part of the journey! 🚀
+
+## 🔐 License
+
+Vuelto is licensed under the [VL-Cv1.1 License](https://vuelto.pp.ua/about/license). Any PRs that will change the license won't be accepted.
+
+## 🌐 Socials
+
+We have multiple ways to reach us, like the following:
+
+- 🐙 [Github repo](https://vuelto.pp.ua/repo)
+- 🗨️ [Discord server](https://vuelto.pp.ua/discord)
+- ✉️ [Email](mailto:dima@vuelto.pp.ua)
+
+## 🙌 Thanks To
+
+A special thanks to:
+
+- **Dimkauzh** for the initial idea and development.
+- **ZakaHaceCosas** for the great improvements on top of vuelto.
+
+Without your help, Vuelto wouldn't be where it is today. 🙌
+
+Also a big shoutout to our homies and partners at [**Sokora**](https://sokora.org), [**Atom**](https://atomlabs.ie) and [**Epic-Bot**](https://bamb.cl/epic-bot/)
+
+Your support has helped make Vuelto even better! 🤝
diff --git a/website/about/license.md b/website/about/license.md
new file mode 100644
index 0000000..27ddaf8
--- /dev/null
+++ b/website/about/license.md
@@ -0,0 +1,92 @@
+# Vuelto License V1.1
+
+This software is licensed under the terms of the [GNU General Public License version 3 (GPLv3)](https://www.gnu.org/licenses/gpl-3.0.en.html) except as noted by the license below.
+
+## **0. Definitions**
+
+"_The main license_" refers to the [GNU General Public License version 3](https://www.gnu.org/licenses/gpl-3.0.en.html) as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+
+"_The fallback License_" refers to the [MIT License](https://opensource.org/licenses/MIT) as published by the Massachusetts Institute of Technology
+
+"_The software_" refers to the combination of all works and pieces of source code that are under the conditions of The license.
+
+"_The maintainer(s)_" refers to the original maintainer(s) of The software, or the designated project governance body for The software.
+
+“_The source code_” refers to any piece of source code, including but not limited to scripts, computer code, and compiled binaries, that is directly associated with The software.
+
+
+"_The main repository_" refers to the repository where most of The software's development occurs, and/or where The source code of The software itself (or at least it’s primary / most important parts) is hosted, _not_ implying that other code repositories that are directly linked to the project are to be excluded by the terms of the Vuelto License.
+
+## **1. Primary License**
+
+The software is, by default, licensed under the terms of the main license unless otherwise specified, as the license of The software can change under the conditions outlined by **Sections 2 and 3** of the Vuelto License.
+
+## **2. Condition for License Change**
+
+The software shall be deemed "unmaintained" if any of the following conditions are met:
+- The project repository has been archived or set to read-only.
+- The project has been officially pronounced as "dead", "unmaintained", or something else with the same meaning by The maintainer(s).
+- No substantial code contributions (beyond minor maintenance tasks or dependency updates) have been made to The main repository for a continuous period of 1.5 years (18 months).
+
+## **3. Fallback License**
+
+If The software is determined to be unmaintained as per the conditions above, the license for The software automatically changes to the MIT License as follows:
+
+```txt
+MIT License
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+```
+
+## **4. Interpretation**
+
+The decision on whether The software is unmaintained will be made by the original maintainer(s) or the designated project governance body, if any. In the absence of such a body, the community of contributors may reach a consensus according to the project's documented processes.
+
+## **5. Communication of License change**
+
+If The software is declared unmaintained by The maintainer(s), the change shall be communicated by an update to The sroject's "_README_ file", website, or any other mean of communication that makes this change clear.
+
+## **6. Extensibility of the License**
+
+It is possible for The maintainer(s) to extend the Vuelto License with additional terms. These must be made clear by The maintainer(s) by specifying them when using the License's identifier.
+
+All possible extensions are shipped in the License's text, but they shall apply only if specified by The maintainer(s). Extensions are not part of the License's numerical order (Section 1, Section 2, and so); instead they are found at the end, preceeded by a heading with their specific identifier, and then using "A, B, C..." notation rather than "1, 2, 3..." notation for each section.
+
+### **6.1. License identification**
+
+Every piece of software shall specify the License they are licensed under via a text block, an SPDX identifier, or such. Version 1.1 of the Vuelto License shall be identified by the "VLv1.1" code, and, optionally, a text block indicating it's the Version 1.1 of the Vuelto License.
+
+### **6.2. Possible extensions**
+
+The following extensions, with their content available at the end of this License as outlined in **Section 6**, are available to the Vuelto License, and must be identified using the specified Identifier that follows their name.
+
+- VL-C (Vuelto License-Copyright). Identifier: "VL-Cv1.1".
+
+
+## VL-C
+
+### **A. Copyright on Artwork**
+
+Any artwork associated with The software, including but not limited to logos, icons, and other visual assets, is copyrighted and licensed under the terms of the Primary License (GNU GPLv3 or later). However, if The software license changes to the MIT License under the conditions outlined in **Section 3**, this copyright on artwork no longer applies, and the artwork is included under the MIT License.
+
+
+### **B. Copyright on Code**
+
+The source code is copyrighted and licensed under the terms of the Primary License (GNU GPLv3 or later). However, if The software license changes to the MIT License under the conditions outlined in **Section 3**, this copyright on The source code no longer applies, and The source code is included under the MIT License.
+
diff --git a/website/blog/.authors.yml b/website/blog/.authors.yml
new file mode 100644
index 0000000..4a21ff8
--- /dev/null
+++ b/website/blog/.authors.yml
@@ -0,0 +1,9 @@
+authors:
+ zaka:
+ name: Zaka
+ description: Vuelto Team
+ avatar: https://0.gravatar.com/avatar/97d096fa42833c482e4e2f5636421ac224790ff071e431e59448f01e27dce5d2?size=512
+ # dimkauzh: uncomment when we got an avatar for bro (no avatar = failed build)
+ # name: Dima
+ # description: Vuelto Founder
+ # avatar: todo ig
\ No newline at end of file
diff --git a/website/blog/assets/vuelto-1-1-cover.png b/website/blog/assets/vuelto-1-1-cover.png
new file mode 100644
index 0000000..dccf9db
Binary files /dev/null and b/website/blog/assets/vuelto-1-1-cover.png differ
diff --git a/website/blog/assets/were-one-year-old-cover.png b/website/blog/assets/were-one-year-old-cover.png
new file mode 100644
index 0000000..55e416e
Binary files /dev/null and b/website/blog/assets/were-one-year-old-cover.png differ
diff --git a/website/blog/assets/were-one-year-old-image1.png b/website/blog/assets/were-one-year-old-image1.png
new file mode 100644
index 0000000..f7dec2f
Binary files /dev/null and b/website/blog/assets/were-one-year-old-image1.png differ
diff --git a/website/blog/index.md b/website/blog/index.md
new file mode 100644
index 0000000..09e5f3c
--- /dev/null
+++ b/website/blog/index.md
@@ -0,0 +1,3 @@
+# Vuelto's Blog
+
+Hey there! Welcome to Vuelto's blog. Here, you will find all the latest updates and news about Vuelto.
diff --git a/website/blog/posts/vuelto-1-1.md b/website/blog/posts/vuelto-1-1.md
new file mode 100644
index 0000000..6b038b1
--- /dev/null
+++ b/website/blog/posts/vuelto-1-1.md
@@ -0,0 +1,137 @@
+---
+draft: false
+date: 2025-01-05
+categories:
+ - Updates
+ - Releases
+authors:
+ - zaka
+slug: vuelto-1-1-release
+pin: true
+readtime: 5 # more or less
+---
+
+# Vuelto 1.1 released\! Here's what's new
+
+
+
+Hi there! Happy new year to everyone. We’re *a bit* late, but still hyped to give you everyone this year’s gift: **Vuelto 1.1!** While it’s a *minor* update from a user perspective, it’s a whole revamp of Vuelto’s internals, bringing - among other things - support for making web-based games from the same codebase! We also improved performance, made the groundwork for the now available events system, and even more. So let's dive into it!
+
+
+## The new Vuelto renderer
+
+Vuelto 1.0’s legacy renderer uses a pipelined system for rendering graphics. It looks kinda like this:
+
+```go
+// ...
+gl.Vertex2f(x, y)
+gl.Vertex2f(x+width, y)
+gl.Vertex2f(x+width, y+height)
+gl.Vertex2f(x, y+height)
+// ...
+```
+
+Vuelto 1.1 refactored the rendering system, using OpenGL 3.3 Core and taking a shader based approach like this:
+
+```go
+vertexShader := NewShader(VERTEX_SHADER, "vertex_shader_web.glsl", "vertex_shader_desktop.glsl")
+fragmentShader := NewShader(FRAGMENT_SHADER, "fragment_shader_web.glsl", "fragment_shader_desktop.glsl")
+
+vertexShader.Compile()
+fragmentShader.Compile()
+
+program := NewProgram(*vertexShader, *fragmentShader)
+program.Link()
+program.Use()
+```
+
+This brings in performance improvements and sets the groundwork for supporting advanced features like material textures in future versions.
+
+!!! note
+ Keep in mind GL 3.3 is not compatible with super old hardware. The legacy renderer has been removed, so you’ll have to stick with it.
+
+## Web support
+
+Now Vuelto is capable of compiling your games to both the desktop with GLFW and the web with WebAssembly and WebGL from the same codebase! That’s made possible thanks to a bunch of refactors to the widowing system that, besides improving code maintainability, made this possible. All features supported by Vuelto will work seamlessly on the web, we’ll take care of code splitting and conversion everywhere possible.
+
+There are two exceptions for this, as of now:
+
+- Images won’t work on the web by default. If you’re targeting web & desktop at the same time, a small different approach is needed.
+- Games that launch more than one window won’t work on the web at all.
+
+In the end, as long as you don’t open two windows on the web and use `ImageEmbed` instead of an image path (more onto that later), your Vuelto games are now fully cross-platform: Linux, Windows, macOS, and the web.
+
+## Enhanced windowing and rendering
+
+We just told you that we refactored the windowing system. This doesn’t only bring the almighty web support, but also adds **framerate management**. You can now get the framerate of your game with `window.GetFPS()`, or even better, you can **set your window’s framerate** with `window.SetFPS()`.
+
+And besides that, a function most game devs can’t get off their head and somehow wasn’t in Vuelto - until now. **`window.GetDeltaTime()`**! Finally, we brought this good boy in.
+
+Another change, regarding the previously mentioned image support for the web, is that now images support embedding.
+
+The classic way to render an image in Vuelto is to go this:
+
+```go
+image := renderer.LoadImage("path/to/image.png", 10, 10, 50, 50) // returns an Image (internal type)
+```
+
+This works fine, but only on the desktop. For an image that works both on the desktop and the web, you’ll need an ImageEmbed instead of a file path.
+
+An ImageEmbed struct takes two parameters, Filesystem, which should always be embed.FS, and then the filename of the image to use.
+
+```go
+var embeddedFiles embed.FS
+
+imageEmbed := vuelto.ImageEmbed{
+ Filesystem: embeddedFiles,
+ Image: "image.png",
+}
+
+image := renderer.LoadImage(imageEmbed, 0, 0, 1, 1)
+```
+
+Once loaded like this, you can just do image.Draw(), and you now got a web-proof image on screen.
+
+## Events system
+
+As promised in our birthday blog post, we’re bringing events to Vuelto. They are still basic, but the groundwork made so far is sufficient for making v1.1 a great release, and also sets a base we’ll build on top of in the following releases. For now you can get **key press** and **key release** events reactively, and the **mouse position** imperatively.
+
+Key press & release events are used like this:
+
+```go
+if KeyPressed(“E”) == true {
+ fmt.Println(“you pressed it”)
+}
+// ...
+if KeyReleased(“E”) {
+ fmt.Println(“you’re not pressing it”)
+}
+```
+
+We said you can get these “reactively” because the boolean return of both functions immediately switches as soon as the user toggles the event. `”you pressed it”` will be immediately printed each time I press `E`, as each time the event is fired, the state of the function changes, firing the code inside the `if` block. The same happens with release events, each time I release the `E` key, `”you’re not pressing it”` would print.
+
+Keep in mind code inside `if KeyPressed(“E”)` will fire multiple times - one per frame, actually. `KeyPressed(“E”)` will stay true until I release the key, and the window’s life-cycle itself is a loop, so events get fired repeatedly.
+
+If you need to fire code only once, you can use `KeyPressedOnce(“E”)`.
+
+Besides these, we also have `MousePos()` (not *Get*MousePos())
+
+```go
+position := window.MousePos() // imagine X is 20 and Y is 30
+```
+
+From here, we can access `position.X`, which will return 20, `position.Y`, which will return 30, and `position.Pos()` to get both together as `20, 30`.
+
+Keep in mind the `position` variable won’t change as the window refreshes. That’s why we said *you can get it “imperatively”*. `MousePos()` returns the value for the moment of the call and doesn’t update it, so you’ll have to call `MousePos()` exactly where you want to use it (or just use some sort of loop).
+
+## Better documentation
+
+Vuelto 1.0 was, to be honest, almost documentation less. We’ve fixed that! Here, at vuelto.pp.ua, Vuelto 1.1 is now fully documented and includes code examples, easy to follow explanations on core concepts such as the game loop, and more. All of that with that nicely refreshed branding we told you about on our last (and first too!) blog post. It’s something to be proud of, isn’t it?
+—
+And that’s all, my fellows! We hope you’re as excited to try out Vuelto 1.1 as we are to release it right now. See the full release notes at our [CHANGELOG.md file](https://github.com/vuelto-org/vuelto/blob/main/CHANGELOG.md), and have fun with it!
+
+Best wishes for this newly started year from the Vuelto team.
+
+Onward and upward,
+
+> Zaka, from the Vuelto Team.
diff --git a/website/blog/posts/were-one-year-old.md b/website/blog/posts/were-one-year-old.md
new file mode 100644
index 0000000..2e96e28
--- /dev/null
+++ b/website/blog/posts/were-one-year-old.md
@@ -0,0 +1,113 @@
+---
+draft: false
+date: 2024-11-13
+categories:
+ - Updates
+authors:
+ - zaka
+slug: were-one-year-old
+pin: false
+readtime: 3 # more or less
+---
+
+# We’re one year old\! V1.1 is coming, and it’s looking good
+
+
+
+Hi there\! I’m [Zaka](https://github.com/ZakaHaceCosas), and I’m a new addition to the Vuelto Team, though I’ve known this engine for a while. Feels like it’s already been a year since I got to know this engine \- and indeed, it has been a year since it was made\! Today, one year ago, Vuelto was created as an alternative to [Fusion Engine](https://github.com/fusionengine-org/fusion), another engine made by the same creator.
+
+We at Vuelto have been cooking a new release for a while now, and while it’s not ready for today as we still work on it, it’s coming soon (in fact, there’s already a [PR draft](https://github.com/vuelto-org/vuelto/pull/8)), and it’s looking pretty neat.
+
+
+## New rendering system approach
+
+Currently, Vuelto 1.0 uses a pipelined system for rendering graphics. It looks kinda like this:
+
+```go
+// …
+gl.Vertex2f(x, y)
+gl.Vertex2f(x+width, y)
+gl.Vertex2f(x+width, y+height)
+gl.Vertex2f(x, y+height)
+// …
+```
+
+Version 1.1 adds new GL 3.3 Core and refactors the rendering system to be more shader based, like this:
+
+```go
+vertexShader := NewShader(VERTEX_SHADER, "vertex_shader_web.glsl", "vertex_shader_desktop.glsl")
+fragmentShader := NewShader(FRAGMENT_SHADER, "fragment_shader_web.glsl", "fragment_shader_desktop.glsl")
+
+vertexShader.Compile()
+fragmentShader.Compile()
+
+program := NewProgram(*vertexShader, *fragmentShader)
+program.Link()
+program.Use()
+```
+
+It doesn’t only make the code more maintainable, but it also improves performance, since we now work with GL 3.3’s shaders system.
+
+Also, this will allow us to implement in a future release support for more advanced things like material textures and more\!
+
+## New windowing system
+
+We replaced Vuelto’s old windowing library with a homemade one, supporting GLFW and JS Canvases. This adds \- among other things \- web support\! In general, this new library gives us much more flexibility for cross-platforming.
+
+Now, from a single piece of code like this one:
+
+```go
+window, err := windowing.InitWindow()
+if err != nil {
+ log.Fatalln("Could not initialize a new window: ", err)
+ return nil
+}
+
+window.Title = title
+window.Width = width
+window.Height = height
+window.Resizable = resizable
+```
+
+\- you now have something that works with both the web and GLFW. Under the hood, Vuelto will take care of code filtering for each platform, so you don’t gotta worry about that.
+
+## Events\
+
+*There’s less progress on this area* BUT \- it’s a thing, and it’s coming in V1.1\! While this is still in early stages and subject to changes, for now the idea is to make them using a boolean (`true`/`false`) structure.
+
+Basically:
+
+```go
+if vuelto.Key["e"].Pressed == true {
+ // do something
+}
+```
+
+`.Pressed` will change to true as soon as the event is called, firing the code inside the block. It will turn false immediately after (as it’s a one time event) so it can be called again as many times as needed.
+
+For data that isn’t an event *itself* but *depends* on an event (e.g. the mouse position), the idea is to provide a function to get the value. For example:
+
+```go
+vuelto.GetMousePox() // {x: 483, y: 131}
+vuelto.GetMousePox().X // 483
+vuelto.GetMousePox().Y // 131
+```
+
+!!! note
+ Keep in mind that the function returns the value for the moment of the call.
+ The value is not “reactive” like a web dev would say, so if you want to constantly keep track of the value, you’ll have to use some sort of loop.
+
+## Better engine, better looks
+
+The priority is to *be* a good option, but we also gotta *look like* a good option. That’s why we did some iterations on our branding\! We kept the core idea (the main logo), but changed typefaces, colors, banners, styling, and more.
+
+
+
+We want Vuelto to look more professional, so we’re giving it a well-needed refresh. Talking about being professional, we’re finally finishing the documentation, and we’ll also get contributing guidelines and more cool-looking documents soon.
+
+And that’s all, my fellows\! Again, this is still in the works, V1.1 will have more (and more polished) stuff upon its final release, and we're thrilled to share more details as soon as we can.
+
+For now, happy birthday, Vuelto\!
+
+Onward and upward,
+> \- [Zaka](https://github.com/ZakaHaceCosas), from the Vuelto Team.
diff --git a/website/docs/developers/contribution.md b/website/docs/developers/contribution.md
new file mode 100644
index 0000000..d08a239
--- /dev/null
+++ b/website/docs/developers/contribution.md
@@ -0,0 +1,32 @@
+# 📋 Contribution guidelines
+
+## 📜 Rules
+
+We are happy and welcome if you want to contribute to Vuelto. But please consider a few details before continuing:
+
+1. Fork: Please before working, make sure you forked the repo and are working inside the fork
+2. Branch: Please before working in your own fork, make sure you are in the `latest` branch.
+3. Explain: Please explain why this should be considered and merged. That can increase he chance for us to merge and will safe the maintainers time.
+4. Test: Please test your code before even opening a new pull request. Make sure the CI doesn't fail.
+5. Documentation: Please, if your adding something new, like a feature, please document everything.
+6. Format: Please, run `make format` for formatting of the code. Without this we won't merge your code
+7. CI: We cannot merge if the CI fails. Incase that it fails, please fix your code or fix the CI (only incase of breaking changes or improvements).
+
+## ⚠️ Not following these rules
+
+If we see a pull request that doesn't follow these rules, we will tell you that, and close the pull request.
+We allow you to re-open a new pull request, but we expect you to have your code fixed.
+So make sure that you followed the rules from above.
+
+## 🔄 Pull Request
+
+If you're ready with your changes, then you must follow a few steps before pull requesting.
+First, run our make command to format your code:
+
+```bash
+make format
+```
+
+Then make sure your pull request code works without erroring and you followed the contribution rules from above.
+
+After all of this, you can create a pull request and one of the maintainers will take a look at it. Please have patience.
diff --git a/website/docs/developers/index.md b/website/docs/developers/index.md
new file mode 100644
index 0000000..fc0507d
--- /dev/null
+++ b/website/docs/developers/index.md
@@ -0,0 +1,8 @@
+# 💻 Developers Guide
+
+Hey and welcome to the developers part of the docs! This part is focused on people who want to contribute or develop Vuelto. Here you will find couple of things that guide you through how you can help vuelto, how you could setup your development environment and the Vuelto codebase structure. Also here you could go through couple of contributing guidelines that you should read before contributing. Not following these, a maintainer has the right to close/not-accept the pull request. Anyways, lets get to work, shall we?
+
+## 📑 Table of contents
+
+- [Contributing guidelines](contribution.md)
+- [Vuelto's 3 ring Engine structure approach](rings.md)
diff --git a/website/docs/developers/rings.md b/website/docs/developers/rings.md
new file mode 100644
index 0000000..c89914d
--- /dev/null
+++ b/website/docs/developers/rings.md
@@ -0,0 +1,24 @@
+# 💍 Vuelto's rings approach
+
+Hey and welcome to this small explanation how Vuelto's 3 ring Engine approach works, and how you can help and improve it! Lets start off with a very easy explanation what this is; this is an implementation how Vuelto goes from a system library to a full fledges API thats being used in the Engine. We call it the "3 Ring Engine approach".
+
+## 🔘 3 Rings
+
+Vuelto is build up from 3 rings. An important concept in this structure is that a ring above is always dependant on the ring below. This is very important, because if ring 1 is not functioning correctly, then ring 2 and 3 won't function correctly either.
+
+We refer to Ring 1 and Ring 2 as "The Underground", while Ring 3 as "The Engine", or "The top layer".
+
+The ring are build in this structure:
+
+- Ring 1: Bare metal API, interacts with the system libraries directly (or Go bindings of them). This is a basic wrapper around the bare metal system libraries.
+- Ring 2: The multipurpose API: The API that Vuelto itself is gonna use. This API mixes all the Bare Metal API's in a way, that it comes out as a multi-platform and powerful API.
+- Ring 3: The Engine itself: The top layer, the last layer. This is the API that the user is going to interact with. This API must follow the semantic version to not cause chaos.
+
+## 🔢 Versioning
+
+This is a very important part of the rings approach. Vuelto, as every project, can introduce breaking changes. This can happen in both the underground and the Engine. Only these two are really different in the breaking changes approach:
+
+- The Underground: The underground can introduce breaking changes, without worries. But of course, The Engine needs to be ported to support these changes.
+- The Engine: In here, things get more strictly. Breaking changes may only be introduces under MAJOR[^1] release. Deprecations are preferably made under MAJOR[^1] releases, but MINOR[^1] is also allowed.
+
+[^1]: Vuelto uses [semantic versioning](https://semver.org/), as MAJOR.MINOR.PATCH.
diff --git a/website/docs/index.md b/website/docs/index.md
old mode 100644
new mode 100755
index 9492359..73e4608
--- a/website/docs/index.md
+++ b/website/docs/index.md
@@ -1,5 +1,10 @@
# 📄 Vuelto Documentation
-Welcome to the documentation of Vuelto! Here you will find a wiki, which is basically all function explained. New to Vuelto? Then head over to the [tutorials](../tutorials/index.md).
+Welcome to the Vuelto documentation! Here you'll find a page for each Vuelto feature, where all functions (and types where needed) are explained to you.
-To start with, make sure you have everything setup and Vuelto ready to use. If you are not sure that you have everything setup, head over to the [Get Started tab.](../get-started.md)
+New to Vuelto? Then head over to the [tutorials tab](../tutorials/index.md).
+
+## 📑 Table of contents
+
+- [Latest stable docs](latest/window-render.md)
+- [Docs for developers and contributors](developers/index.md)
diff --git a/website/docs/latest/audio.md b/website/docs/latest/audio.md
new file mode 100644
index 0000000..47ae46a
--- /dev/null
+++ b/website/docs/latest/audio.md
@@ -0,0 +1,25 @@
+# 🔊 Audio docs
+
+Features for playing audio files, supporting `mp3` and `wav`.
+
+## 📜 Usage
+
+First, open a file with `OpenAudioFile()`. This func takes one arg, the file path to your audio file. Returns an `AudioPlayer` struct.
+
+```go
+myAudioFile := OpenAudioFile("path/to/audio.mp3")
+```
+
+You can now call the `Start()` and `Stop()` methods passing your audio player.
+
+```go
+// play!
+myAudioFile.Start()
+
+// ...
+
+// stop.
+myAudioFile.Stop()
+```
+
+If you don't need the audio anymore, you should `myAudioFile.Close()` to close the file.
diff --git a/website/docs/latest/draw.md b/website/docs/latest/draw.md
new file mode 100644
index 0000000..371de36
--- /dev/null
+++ b/website/docs/latest/draw.md
@@ -0,0 +1,44 @@
+
+# 🎨 Draw module
+
+A module for drawing UI elements, such as rects.
+
+## 🔢 Types
+
+```go
+[4]int{R, G, B, A} // for colors
+```
+
+## ℹ️ Usage
+
+!!! note
+ For this you will need a [renderer](window-render.md) initialized.
+
+For now this module is pretty basic. You can draw a rectangle using the `DrawRect()` function, passing X position, Y position, width & height, and an RGBA color (int array as described above).
+
+```go
+myRect := renderer.DrawRect(0, 0, 0.8, 0.8, [4]int{255, 255, 255, 255}) // draws a white square
+```
+
+You can also use `DrawLine()` to draw line that goes from `x1`, `y1` to `x2`, `y2`, and again, with a color.
+
+```go
+myLine := renderer.DrawLine(0.5, 0.5, -0.5, -0.5, [4]int{255, 255, 255, 255})
+```
+
+You can also create them and render them later, using "New" instead of "Draw", with the same arguments.
+
+```go
+myRect := renderer.NewRect(-0.4, -0.3, 0.4, 0.4, [4]int{67, 239, 189, 255})
+myLine := renderer.NewLine(0.5, 0.5, -0.5, -0.5, [4]int{255, 255, 255, 255})
+
+// then, when you feel like it, draw them
+myRect.Draw();
+myLine.Draw();
+```
+
+If you want to "clear" the window, you can use `ClearColor()`, passing a color that'll be used as the background of the window.
+
+```go
+renderer.ClearColor([4]int{255, 255, 255, 255}) // flashbang!
+```
diff --git a/website/docs/latest/events.md b/website/docs/latest/events.md
new file mode 100644
index 0000000..7209ecb
--- /dev/null
+++ b/website/docs/latest/events.md
@@ -0,0 +1,69 @@
+
+# 🔥 Events module
+
+Features for detecting user events.
+
+## 🔢 Types
+
+```go
+type Vector2D struct {
+ X float32
+ Y float32
+}
+```
+!!! note
+ Every event should be checked in the game loop, else it won't work.
+
+Events include detecting keyboard keys, so here's the names Vuelto uses for identifying keys when asked.
+
+```json
+{
+ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", // letters
+ "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", // letters
+ "Up", "Down", "Left", "Right", // arrows
+ "Num0", "Num1", "Num2", "Num3", "Num4", "Num5", "Num6", "Num7", "Num8", "Num9", // numberpad
+ "Space", "Enter", "Escape", "Tab", "Shift", "Control", "Alt", // command keys
+ "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", // function keys
+}
+```
+
+All of these keys are stored in a map:
+
+```go
+vuelto.Keys[""]
+```
+
+## ℹ️ Usage
+
+For now you have the ability to detect key press and key release, with `KeyPressed()`, `KeyReleased()` and `KeyPressedOnce()`. All these functions take a key name (as shown above) as a unique argument, and return a boolean indicating the status.
+
+```go
+if window.KeyPressed(vuelto.Keys["E"]) {
+ // This runs when I press the E key
+}
+
+if window.KeyPressedOnce(vuelto.Keys["G"]) {
+ // This runs only once when I press the G key
+}
+
+if window.KeyReleased(vuelto.Keys["F"]) {
+ // This runs when I release the F key
+}
+```
+
+The return value of these functions is _reactive_, meaning their values changes immediately to reflect what the user's doing. With `if KeyPressed("E")`, the code inside the `if` statement will fire as many times as I press `E`.
+
+For mouse position, you can use `MousePos()` with no args. It returns a `Vector2D`.
+
+```go
+// assume my mouse is at X 20 and Y 30
+pos := win.MousePos() // { X: 20, Y: 30 }
+pos.X // 20 (X)
+pos.Y // 30 (Y)
+pos.Pos() // 20, 30
+```
+
+!!! note
+ pos.Pos() returns two values, X and Y.
+
+Unlike key press events, this value does not constantly change, it gives the exact value for the moment of the call. Use loops if you constantly need the value.
diff --git a/website/docs/latest/image.md b/website/docs/latest/image.md
new file mode 100644
index 0000000..e0a9841
--- /dev/null
+++ b/website/docs/latest/image.md
@@ -0,0 +1,51 @@
+
+# 🖼️ Image module
+
+Features for rendering images
+
+## 🔢 Types
+
+```go
+type ImageEmbed struct {
+ Filesystem embed.FS
+ Image string
+}
+```
+
+## ℹ️ Usage
+
+!!! note
+ For this you will need a [renderer](window-render.md) initialized.
+
+First, load an image using `LoadImage()` and specify file path, pos X and Y, width, and height.
+
+```go
+image := renderer.LoadImage("path/to/image.png", 10, 10, 50, 50) // returns an Image (internal type)
+```
+
+Then, whenever you feel like it, draw it. Just make sure to do it inside the game loop.
+
+```go
+image.Draw() // renders your image
+```
+
+We recommend using raw paths, however, **heads up as they won't work on the web.**
+
+For supporting web, you'll need to use the same func, but passing an `ImageEmbed` instead of a raw path. See the `ImageEmbed` struct under here.
+
+```go
+var embeddedFiles embed.FS
+
+imageEmbed := vuelto.ImageEmbed{
+ Filesystem: embeddedFiles,
+ Image: "image.png",
+}
+
+image := renderer.LoadImage(imageEmbed, 0, 0, 1, 1)
+```
+
+And then you can draw it as usual.
+
+```go
+image.Draw()
+```
diff --git a/website/docs/latest/vectors.md b/website/docs/latest/vectors.md
new file mode 100644
index 0000000..6c2503d
--- /dev/null
+++ b/website/docs/latest/vectors.md
@@ -0,0 +1,84 @@
+
+# 📐 Vector math module
+
+Features for doing math with both 2D and 3D vectors.
+
+## 🔢 Types
+
+```go
+type Vector2D struct {
+ X float32
+ Y float32
+}
+
+type Vector3D struct {
+ X float32
+ Y float32
+ Z float32
+}
+```
+
+## ℹ️ Usage
+
+You can create a 2D vector or a 3D vector using the `NewVector2D()` and `NewVector3D()` functions. Both take their X and Y (and Z for 3D) values as arguments.
+
+For example:
+
+```go
+my2dVector := NewVector2D(20, 40) // { X: 20, Y: 40 }
+
+my3dVector := NewVector2D(20, 40, 10) // { X: 20, Y: 40, Z: 10 }
+```
+
+Then, you can do math with them. For now we support adding and subtracting vectors. Basically, given two vectors:
+
+```go
+vector1 := {
+ X: 20,
+ Y: 20
+}
+// and
+vector2 := {
+ X: 10,
+ Y: 15
+}
+```
+
+For each value, the operation will be done with it's counterpart from the other vector. In other words:
+
+```go
+// vector1 has X 20 - vector2 has X 10
+// subtract will do this:
+X: 20 - 10 = 10
+
+// vector1 has Y 20 - vector2 has Y 15
+Y: 20 - 15 = 5
+```
+
+So, subtracting vector2 from vector1 would give us the following `Vector2D`:
+
+```go
+{
+ X: 10,
+ Y: 5
+}
+```
+
+That said, you can add or subtract 2D / 3D vectors as follows. All functions follow the same structure, take one vector as the 1st argument, vector to add/subtract as the 2nd argument, and returns a new 2D / 3D vector:
+
+```go
+vector3 := AddVector2D(vector1, vector2)
+// vector3 = { X: 30, Y: 25 }
+
+vector4 := SubtractVector2D(vector1, vector2)
+// vector4 = { X: 10, Y: 5 }
+
+vector5 := NewVector3D(20, 20, 20)
+vector6 := NewVector3D(5, 10, 10)
+
+vector7 := AddVector3D(vector5, vector6)
+// vector7 = { X: 25, Y: 30, Z: 30 }
+
+vector8 := SubtractVector3D(vector5, vector6)
+// vector8 = { X: 15, Y: 10, Z: 10 }
+```
diff --git a/website/docs/latest/window-render.md b/website/docs/latest/window-render.md
new file mode 100644
index 0000000..76f5e9e
--- /dev/null
+++ b/website/docs/latest/window-render.md
@@ -0,0 +1,63 @@
+# 🎥 Windowing and Rendering Module
+
+The main modules of Vuelto: the main window and the main renderer. Your entire project depends on these.
+
+## 🌆 Overview
+
+This module allows you to manage the main window and rendering operations, essential for any Vuelto project.
+
+## 🏠 Window
+
+To create a window, initialize a new instance and store it in a variable. Pass the following arguments:
+- **Title**: The title of your window.
+- **Width**: The width of the window in pixels.
+- **Height**: The height of the window in pixels.
+- **Resizable**: A boolean indicating whether the window can be resized.
+
+### Example
+
+```go
+window := vuelto.NewWindow("My Game", 800, 600, true)
+```
+
+The renderer depends on this window to function.
+
+## 🌈 Renderer
+
+The renderer is responsible for drawing content onto the screen. To use it, initialize it using the window instance and store it in a variable.
+
+### Example
+
+```go
+renderer := window.NewRenderer2D()
+```
+
+All drawing and rendering operations rely on this renderer.
+
+## ♻️ Game Loop
+
+Rendering operations should be performed within the game loop. This ensures that the application continues to respond to user input and updates the display correctly.
+
+### Structure of the Game Loop
+
+```go
+for !window.Close() {
+ // Perform rendering and update logic here
+}
+```
+
+- **`window.Close()`**: This function returns `true` when the window is closed and `false` when it is active. Use it to control the loop's execution.
+
+### Example Usage
+
+```go
+for !window.Close() {
+ image.Draw()
+
+ // ...
+
+ window.Refresh()
+}
+```
+
+Ensure all rendering tasks are enclosed within this loop to maintain smooth operation.
diff --git a/website/favicon.ico b/website/favicon.ico
new file mode 100644
index 0000000..dc272f0
Binary files /dev/null and b/website/favicon.ico differ
diff --git a/website/get-started.md b/website/get-started.md
old mode 100644
new mode 100755
index 51e2089..8c19a34
--- a/website/get-started.md
+++ b/website/get-started.md
@@ -1,40 +1,43 @@
# 🚀 Get Started
+
## 🛠️ Requirements
-There are some extra things you will need to use Vuelto.
-- A C compiler
-- A Go compiler
-- Xorg development packages (For Linux only)
+There are some extra things you will need to use Vuelto.
+- 🖥️ A C compiler
+- 🔧 A Go compiler (Go 1.18 and above)
+- 🪟 Xorg/Wayland development packages (For Linux only)
+- 🖱️ Supported platform
For a installation guide, [go here](install.md).
## 📦 Go package
+
We have a Go package published, so run this command to add it to your go.mod:
+
```bash
-go get vuelto.me@latest
+go get vuelto.pp.ua@latest
```
## 🌟 Examples
+
All of our examples are inside the examples directory, so take a look there is you want a example. Here one small example of how easy Vuelto is:
+
```go
package main
import (
- vuelto "vuelto.me/pkg"
+ vuelto "vuelto.pp.ua/pkg"
)
func main() {
- w := vuelto.NewWindow("Image Example - Vuelto", 800, 600, false)
- ren := w.NewRenderer2D()
+ w := vuelto.NewWindow("Image Example - Vuelto", 800, 600, false)
+ ren := w.NewRenderer2D()
- image := ren.LoadImage("your_image1.png", 300, 300, 250, 250)
- image1 := ren.LoadImage("your_image2.png", 100, 100, 150, 150)
+ image := ren.LoadImage("test/image.png", 0, 0, 0.5, 0.5)
- for !w.Close() {
- image.Draw()
- image1.Draw()
- w.Refresh()
-
- }
+ for !w.Close() {
+ image.Draw()
+ w.Refresh()
+ }
}
-```
\ No newline at end of file
+```
diff --git a/website/home.md b/website/home.md
deleted file mode 100644
index 8debf71..0000000
--- a/website/home.md
+++ /dev/null
@@ -1,40 +0,0 @@
----
-hide:
- - navigation
----
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Vuelto is a fast and lightweight Go game engine which uses CGo and OpenGL to display your graphics. It is really easy to start with, but it can be really powerful to work with. It's cross-platform, meaning that every game you make with Vuelto will work on Windows, Linux and Mac. It's also open-source, meaning that you can see the source code and contribute to the engine. Have fun!
-
-## 👋 Welcome
-Welcome to the Vuelto website! Here you will find things like documentation, blogs, tutorials and everything about Vuelto!
-
-
-## 📋 Roadmap
-You can find our [roadmap in the `Roadmap` tab in the navigation bar.](roadmap/v1.md)
-
-## 🎉 Discord server
-We have a [discord server at this link](https://discord.gg/gZqdRXbbqg). It's a fun server mainly created for vuelto, but you can talk about whatever you want.
-
-## 🤝 Contributing
-We are fully open to contributions, but I will check and test your code before merging it into the dev branch. All your code thats accepted will only be merged into the dev branch, and will be later released with the next release.
-
-## 🔐 License
-Vuelto is licensed under the [GPLv3 Licence](https://github.com/vuelto-org/vuelto/blob/main/LICENSE).
-
-## ℹ️ About
-Vuelto is a game engine powered by CGo and OpenGL. It leverages the power of Go to create a fast and lightweight game engine. It's cross-platform, meaning that every game you make with Vuelto will work on Windows, Linux and Mac. It's also open-source, meaning that you can see the source code and contribute to the engine. We have created this engine so you can create your graphical application fast and easy.
-Made by the Vuelto Team :heart:
diff --git a/website/index.html b/website/index.html
deleted file mode 100644
index d0f57a8..0000000
--- a/website/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/website/index.md b/website/index.md
new file mode 100755
index 0000000..d4ba041
--- /dev/null
+++ b/website/index.md
@@ -0,0 +1,108 @@
+---
+hide:
+ - navigation
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Welcome to the Vuelto website! Here you will find things like documentation, blogs, tutorials and everything about Vuelto!
+
+## ℹ️ About
+
+Vuelto is an open-source, fast, and lightweight game engine, based on Golang, CGo, and OpenGL. It's easy to use yet very powerful, and it's also cross platform, meaning it can be deployed on almost all major platforms
+
+## ✨ Features
+
+- 🌍 Cross Platform
+- 🛠️ Open-Source
+- 📚 Easy to learn
+- 🚀 Fully built using CGo (and some other libraries)
+
+## 📦 Installation
+
+### 📋 Requirements
+
+You need to have the following installed on your system:
+
+- 🖥️ A C compiler
+- 🔧 A Go compiler (Go 1.18 and above)
+- 🪟 Xorg/Wayland development packages (For Linux only)
+- 🖱️ Supported platform
+
+For an installation guide, [go here](https://vuelto.pp.ua/install/).
+
+### 🐹 Go package
+
+You can get the latest Go package by running this command:
+
+```sh
+go get vuelto.pp.ua@latest
+```
+
+## 🖥️ Platform support
+
+Vuelto has built-in deployment support for the following platforms:
+
+| Platform | Status | Version |
+| :---- | :---- | :---- |
+| Windows | ✅ | v1.0 |
+| macOS (Darwin) | ✅ | v1.0 |
+| Linux | ✅ | v1.0 |
+| Web | ✅ | v1.1 |
+
+## 📖 Docs
+
+You can check out Vuelto's documentation at [Vuelto's website](https://vuelto.pp.ua/docs/).
+
+!!! tip
+ In case the documentation is missing something or there is something wrong, use the [GoDoc](https://pkg.go.dev/vuelto.pp.ua) page for API documentation. Use the [examples](https://github.com/vuelto-org/vuelto/tree/latest/examples) directory for usage examples.
+
+### 🛣️ Roadmap
+
+Our roadmap is available on the website (URL here) or in the ROADMAP.md file in the root of the GitHub repo.
+
+### 🤝 Contributing
+
+We're really thankful for your contributions! Please see our [Contributing Guide](https://github.com/vuelto-org/vuelto/blob/latest/CONTRIBUTING.md) for details.
+
+1. 🍴 Fork the repository
+2. 🌟 Create your feature branch (`git checkout -b feature/amazing-feature`)
+3. 📝 Commit your changes (`git commit -m 'Add some amazing feature'`)
+4. 🚀 Push to the branch (`git push origin feature/amazing-feature`)
+5. 🔄 Open a Pull Request
+
+## 🛡️ Support & Security
+
+### 🐛 Issues
+
+See the [Issues](https://github.com/vuelto-org/vuelto/issues) page for current bugs and feature requests. In case you find any issues, please open an issue or search for any other form of contact to submit a bug report.
+
+#### 🔒 Security Issues
+
+If you find a security vulnerability, please follow the instructions in [SECURITY.md](https://github.com/vuelto-org/vuelto/blob/latest/SECURITY.md) to safely report it.
+
+### 🔐 License
+
+Vuelto is licensed under the [VL-Cv1.1 License](https://vuelto.pp.ua/about/license). Any PRs that primarily focus on changing the license won't be accepted.
+
+### ℹ️ About
+
+All of our contact info, project info and our team/partners can be found on the [About](https://vuelto.pp.ua/about/) page.
diff --git a/website/install.md b/website/install.md
old mode 100644
new mode 100755
index f4f5209..6e67fd4
--- a/website/install.md
+++ b/website/install.md
@@ -1,39 +1,49 @@
-# 📦 Go package
+# 🔧 Installation
+
+## 📦 Go package
+
We have a Go package published, so run this command to add it to your go.mod:
+
```bash
-go get vuelto.me@latest
+go get vuelto.pp.ua@latest
```
-# 🔧 Installation
-
## 🐧 Linux
+
You have to have X11-dev-packages and C compiler installed.
#### 🖥️ X11
-On Debian and derivates like Ubuntu and Linux Mint the xorg-dev meta-package pulls in the development packages for all of X11.
+
+On Debian and derivate distributions like Ubuntu and Linux Mint the xorg-dev meta-package pulls in the development packages for all of X11.
+
```bash
sudo apt install xorg-dev libasound2-dev gcc
```
On Fedora and derivatives like Red Hat the X11 extension packages libXcursor-devel, libXi-devel, libXinerama-devel and libXrandr-devel required by GLFW pull in all its other dependencies.
+
```bash
sudo dnf install libXcursor-devel libXi-devel libXinerama-devel libXrandr-devel alsa-lib-devel gcc
```
## 🍎 Mac
+
You have to have Xcode command line tools installed.
+
### 📝 Xcode
+
```bash
xcode-select --install
```
## 🪟 Windows
-You have to have a C compiler installed. You can also use WSL, if so follow the Linux instructions.
+You have to have a C compiler installed. You can also use WSL, if so follow the Linux instructions.
-Download Go from the download page and follow instructions.
+Download Go from the download page and follow instructions.
Install one of the available C compilers for windows, the following are tested with Go and Fyne:
+
- MSYS2 with MingW-w64 - msys2.org
- TDM-GCC - tdm-gcc.tdragon.net
- Cygwin - cygwin.com
@@ -47,15 +57,16 @@ The steps for installing with MSYS2 (recommended) are as follows:
3. Open "MSYS2 MinGW 64-bit" from the start menu
Execute the following commands (if asked for install options be sure to choose "all"):
+
```bash
pacman -Syu
pacman -S git mingw-w64-x86_64-toolchain
```
You will need to add /c/Program\ Files/Go/bin and ~/Go/bin to your $PATH, for MSYS2 you can paste the following command into your terminal:
+
```bash
echo "export PATH=\$PATH:/c/Program\ Files/Go/bin:~/Go/bin" >> ~/.bashrc
```
-For the compiler to work on other terminals you will need to set up the windows %PATH% variable to find these tools. Go to the "Edit the system environment variables" control panel, tap "Advanced" and add "C:\msys64\mingw64\bin" to the Path list.
-
+For the compiler to work on other terminals you will need to set up the windows %PATH% variable to find these tools. Go to the "Edit the system environment variables" control panel, tap "Advanced" and add "C:\msys64\mingw64\bin" to the Path list.
diff --git a/website/logo/ascii.txt b/website/logo/ascii.txt
new file mode 100755
index 0000000..df7027a
--- /dev/null
+++ b/website/logo/ascii.txt
@@ -0,0 +1,40 @@
+
+ ____ ____ __ __
+ \ \ / /_ __ ____ | |_/ |_ ____
+ \ Y / | \_/ __ \| |\ __\/ _ \
+ \ /| | /\ ___/| |_| | ( <_> )
+ \___/ |____/ \_____|____/__| \____/
+
+
+
+ .%&&&(
+ ,&&&&&&&&&&&&&&&&&&&&&&&&,
+ *%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%
+ *&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%(((((((
+ **%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%((((((((((((((((((
+ **********/&&&&&&&&&&&&&&&&&&&&&&&&&&, .((((((((((((((((((((((
+ *******************#&&&&&%* .((((((((((((((((((((((
+ ********************** .((((((((((((((((((((((
+ ********************** .((((((((((((((((((((((
+ ********************** .((((((((((((((((((((((
+ ********************** ((((((((((((((((((((((
+ ********************** ((((((((((((((((((((((
+ ********************** ((((((((((((((((((((((
+ ********************** ((((((((((((((((((((((
+ ********************** ((((((((((((((((((((((
+ ********************** ((((((((((((((((((((((
+ ********************** ((((((((((((((((((((((
+ ********************** ((((((((((((((((((((((
+ ********************** ((((((((((((((((((((((
+ ********************** ((((((((((((((((((((((
+ ********************** ((((((((((((((((((((((
+ ********************** .((((((((((((((((((((((
+ ********************** .((((((((((((((((((((((
+ ********************** .((((((((((((((((((((((
+ ********************** .#&&((((((((((((((((((((
+ ********************** .%&&&&&&&&&&&&&&&&&&&&&&%((((((((((((
+ **********************%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%(((
+ **********************%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&(
+ ********************%&&&&&&&&&&&&&&&&&&&&&&&&%(
+ .***********%&&&&&&&&&&&&&&/
+ ,**%&&&*
diff --git a/website/logo/banner-dark.png b/website/logo/banner-dark.png
new file mode 100644
index 0000000..8841969
Binary files /dev/null and b/website/logo/banner-dark.png differ
diff --git a/website/logo/banner-dev.png b/website/logo/banner-dev.png
new file mode 100644
index 0000000..ee26a21
Binary files /dev/null and b/website/logo/banner-dev.png differ
diff --git a/website/logo/banner-light.png b/website/logo/banner-light.png
new file mode 100644
index 0000000..45f01af
Binary files /dev/null and b/website/logo/banner-light.png differ
diff --git a/website/logo/banner-nobg.png b/website/logo/banner-nobg.png
index c0529c8..3d1dc47 100644
Binary files a/website/logo/banner-nobg.png and b/website/logo/banner-nobg.png differ
diff --git a/website/logo/favicon.png b/website/logo/favicon.png
new file mode 100644
index 0000000..06e2ce9
Binary files /dev/null and b/website/logo/favicon.png differ
diff --git a/website/logo/banner-darkmode.png b/website/logo/old/banner-darkmode.png
old mode 100644
new mode 100755
similarity index 100%
rename from website/logo/banner-darkmode.png
rename to website/logo/old/banner-darkmode.png
diff --git a/website/logo/old/banner-nobg.png b/website/logo/old/banner-nobg.png
new file mode 100755
index 0000000..c0529c8
Binary files /dev/null and b/website/logo/old/banner-nobg.png differ
diff --git a/website/logo/banner.png b/website/logo/old/banner.png
old mode 100644
new mode 100755
similarity index 100%
rename from website/logo/banner.png
rename to website/logo/old/banner.png
diff --git a/website/logo/banner1.png b/website/logo/old/banner1.png
old mode 100644
new mode 100755
similarity index 100%
rename from website/logo/banner1.png
rename to website/logo/old/banner1.png
diff --git a/website/logo/icon-no-bg.png b/website/logo/old/icon-no-bg.png
old mode 100644
new mode 100755
similarity index 100%
rename from website/logo/icon-no-bg.png
rename to website/logo/old/icon-no-bg.png
diff --git a/website/logo/icon.png b/website/logo/old/icon.png
old mode 100644
new mode 100755
similarity index 100%
rename from website/logo/icon.png
rename to website/logo/old/icon.png
diff --git a/website/logo/pfp-nobg.png b/website/logo/pfp-nobg.png
new file mode 100644
index 0000000..6886418
Binary files /dev/null and b/website/logo/pfp-nobg.png differ
diff --git a/website/logo/pfp.png b/website/logo/pfp.png
new file mode 100644
index 0000000..342025f
Binary files /dev/null and b/website/logo/pfp.png differ
diff --git a/website/overrides/main.html b/website/overrides/main.html
new file mode 100755
index 0000000..4f48961
--- /dev/null
+++ b/website/overrides/main.html
@@ -0,0 +1,46 @@
+{% extends "base.html" %} {% block site_meta %}
+
+
+
+
+
+{% if page.meta and page.meta.description %}
+
+{% elif config.site_description %}
+
+{% endif %}
+
+
+{% if page.meta and page.meta.author %}
+
+{% elif config.site_author %}
+
+{% endif %}
+
+
+{% if page.canonical_url %}
+
+{% endif %}
+
+
+{% if page.previous_page %}
+
+{% endif %}
+
+
+{% if page.next_page %}
+
+{% endif %}
+
+
+
+
+
+
+{% endblock %}
diff --git a/website/roadmap/index.md b/website/roadmap/index.md
new file mode 100644
index 0000000..d0a0773
--- /dev/null
+++ b/website/roadmap/index.md
@@ -0,0 +1,73 @@
+# 📅 Upcoming release
+## V1.1
+
+- [x] Framerates
+ - [x] Set framerate
+ - [x] Get framerate
+ - [x] Deltatime
+
+- [x] Events
+ - [x] Keyboard
+ - [x] Mouse
+
+- [x] Renderer
+ - [x] Move the main API to the Rendering driver
+ - [x] Web
+ - [x] Web-windowing
+ - [x] Support for web using wasm
+ - [x] Web-rendering
+ - [x] Support for building graphics driver
+ - [x] WebGL
+ - [x] Desktop
+ - [x] Move to OpenGL v3.3
+
+- [x] Windowing
+ - [x] Platforms
+ - [x] Windowing for web
+ - [x] Windowing for desktop
+ - [x] Framerates
+ - [x] Set framerate
+ - [x] Get framerate
+ - [x] Deltatime
+
+- [x] Imaging
+ - [x] Load images
+ - [x] Process images (to string)
+
+- [x] 2 Ring Rendering Driver
+ - [x] Ring 1
+ - [x] Wrapper around OpenGL C api
+ - [x] Wrapper around WebGL JS api
+ - [x] Ring 2
+ - [x] API around OpenGL and WebGL
+
+- [x] 2 Ring Window Driver
+ - [x] Ring 1
+ - [x] Wrapper around GLFW
+ - [x] Wrapper around JS runtime
+ - [x] Ring 2
+ - [x] API around GLFW and JS windowing
+
+- [x] 2 Ring Input Driver
+ - [x] Ring 1 (No ring 1 needed)
+ - [x] Ring 2
+ - [x] API around GLFW and JS events
+
+- [x] 2 Ring Image Driver
+ - [x] Ring 1 (No ring 1 needed)
+ - [x] Ring 2
+ - [x] API around Go image library
+
+- [ ] Website
+ - [ ] Docs
+ - [ ] Vuelto Docs
+ - [ ] Vuelto API
+ - [ ] How to use vuelto
+ - [ ] Vuelto's functionality
+ - [x] Developer Docs
+ - [x] Vuelto's 3 ring structure
+ - [x] CONTRIBUTING.md
+ - [x] Code of Conduct
+ - [ ] Tutorials
+ - [ ] Examples
+ - [ ] Tutorials to build small games
diff --git a/website/roadmap/v1.md b/website/roadmap/v1.md
old mode 100644
new mode 100755
index cf0edca..2524a2a
--- a/website/roadmap/v1.md
+++ b/website/roadmap/v1.md
@@ -1,13 +1,14 @@
# 🛣️ Roadmap for V1
## V1
+
- [x] Application
- [x] Window
- [x] Input
- [x] Renderer
- [x] Custom OpenGL
- - [x] Rects, linex, etc
+ - [x] Rects, lines, etc
- [x] Images
- [x] Shapes
@@ -30,28 +31,40 @@
- [x] Installation.md
- [x] Update the requirements
- - [x] Clean up old stuffm
+ - [x] Clean up old stuff
- [x] Docs
- [x] GoDoc
## V1.1
-- [ ] Input
- - [ ] Keyboard
- - [ ] Mouse
+Moved to the upcoming releases page. See [here](https://vuelto.pp.ua/roadmap).
+
+## V1.2
- [ ] Renderer
- [ ] SetPixel
- - [ ] LoadText and draw it
+ - [ ] LoadText and .Draw()
-- [ ] Animations
- - [ ] Using images
- - [ ] Using spritesheets
+- [ ] Image
+ - [ ] Manipulate images
- [ ] Spritesheets
- [ ] Using images
- [ ] returning images
- [ ] Usable with animations
-## V1.2
-- [ ] Node system
\ No newline at end of file
+- [ ] Node system
+ - [ ] Movable nodes
+ - [ ] Custom physics option
+ - [ ] Static nodes
+ - [ ] Unmovable
+ - [ ] Just a basic image/shape
+
+- [ ] Animations
+ - [ ] Using images
+ - [ ] Using spritesheets
+
+- [ ] Custom color system
+ - [ ] Color struct
+ - [ ] NewColor function
+ - [ ] Predefined Color constants
diff --git a/website/roadmap/v2.md b/website/roadmap/v2.md
old mode 100644
new mode 100755
index 9d5abc3..1ec146c
--- a/website/roadmap/v2.md
+++ b/website/roadmap/v2.md
@@ -1,27 +1,33 @@
# 🛣️ Roadmap for V2
## V2
-- [ ] Custom color system
- - [ ] Color struct
- - [ ] NewColor function
- - [ ] Predefined Color constants
-- [ ] Custom window system
- - [ ] Linux
- - [ ] X11
- - [ ] Wayland
- - [ ] Windows
- - [ ] Win32
- - [ ] Mac
- - [ ] Coco
+- [ ] 2 Ring Window System
+ - [ ] Ring 1
+ - [ ] Linux C Wrapper
+ - [ ] X11
+ - [ ] Wayland
+ - [ ] Windows C Wrapper
+ - [ ] Win32
+ - [ ] Mac Objective-C++ Wrapper
+ - [ ] Cocoo
+ - [ ] Ring 2
+ - [ ] API around Ring 1 wrappers
- [ ] GUI
- [ ] Buttons
- [ ] Text
- [ ] Networking
- - [ ] TCP
- - [ ] UDP
+ - [ ] Websockets
+ - [ ] Webtransport
+
+## V2.1
+
+- [ ] Add-ons to 2 Ring Window system
+ - [ ] Ring 1
+ - [ ] Mac Objective-C++ Wrapper
+ - [ ] Cocoo
- [ ] Vuelto Editor
- [ ] Full blown editor
@@ -30,4 +36,4 @@
- [ ] Customization
- [ ] Exporting
- [ ] Importing
- - [ ] Project management
\ No newline at end of file
+ - [ ] Project management
diff --git a/website/tutorials/beginner/new-project.md b/website/tutorials/beginner/new-project.md
new file mode 100644
index 0000000..5925c92
--- /dev/null
+++ b/website/tutorials/beginner/new-project.md
@@ -0,0 +1,143 @@
+
+# 📂 Creating a new project
+
+Hello and welcome to the first tutorial in the beginner series! In this tutorial, we will create a new project using Vuelto. Let's get started!
+
+!!! note
+ This tutorial assumes you have a basic understanding of Go. If you are new to Go, you can learn more about it.
+ If you want to follow along, the example we are building is available in the [Github repo](https://github.com/vuelto-org/vuelto/blob/latest/examples/basic-window/main.go).
+
+## 📦 Prerequisites
+
+Before we start, make sure you have the following installed:
+
+- 🖥️ A C compiler
+- 🔧 A Go compiler (Go 1.18 and above)
+- 🪟 Xorg/Wayland development packages (For Linux only)
+
+Also make sure you're on a supported platform (Windows, macOS, or Linux), and you're targeting supported platforms too (Windows, macOS, Linux, and the web).
+
+Without this, vuelto might not function. For a installation guide, [go here](../../get-started.md).
+
+## 🚀 Creating a new project
+
+First, create a new directory for your project. You can name it whatever you want. For the sake of this tutorial, we will name it `my-vuelto-project`.
+
+On any shell, run:
+
+```bash
+mkdir my-vuelto-project
+cd my-vuelto-project
+```
+
+Then init a new Go module:
+
+```bash
+go mod init my-vuelto-project
+```
+
+To get started lets create a new file called `main.go`. Here out game will be built in, and this can be expanded into multiple files later on.
+
+On Linux/macOS:
+
+```bash
+touch main.go
+```
+
+On Windows (PowerShell):
+
+```powershell
+New-Item main.go -type file
+```
+
+Or, with Windows CMD
+
+```cmd
+type nul > main.go
+```
+
+Now open the file in your favorite text editor. To check if everything is setup correctly lets print "Hello, Vuelto!" to the console.
+Put the following go code in the `main.go` file:
+
+```go
+package main
+
+import (
+ "fmt"
+)
+
+func main() {
+ fmt.Println("Hello, Vuelto!")
+}
+```
+
+Now you can run the project by running:
+
+```bash
+go run main.go
+```
+
+This should print `Hello, Vuelto!` to the console. If it does, you have successfully created a new project! 🎉
+
+## 📚 Setup vuelto
+
+In the steps above, we have created a new project and printed "Hello, Vuelto!" to the console. Now we will setup vuelto in our project.
+
+First, we need to get the vuelto package. Run the following command in your terminal:
+
+```bash
+go get vuelto.pp.ua@latest
+```
+
+This will download the latest version of vuelto and add it to your `go.mod` file.
+Now that we have the package installed, we can start with using it in our project!
+
+First up, import the vuelto package in your `main.go` file:
+
+```go
+// ...
+import (
+ // ..
+ vuelto "vuelto.pp.ua/pkg"
+ // ..
+)
+// ...
+```
+
+Next, we need to initialize Vuelto and create a new window. Add the following code to your `main.go` file:
+
+```go
+// ...
+func main() {
+ // ...
+ win := vuelto.NewWindow("My Vuelto Window", 800, 600, false)
+ // ...
+}
+// ...
+```
+
+This will create a window with the following properties:
+
+| Property | Value |
+| :--- | ---: |
+| Window's title | `My Vuelto Window` |
+| Window's width | `800` |
+| Window's height | `600` |
+| Is the window resizable? | `false` |
+
+Now we need to keep the game running. This is done by creating a so called game loop. This loop will keep the game running until the window is closed. Add the following code to your `main.go` file:
+
+```go
+// ...
+func main() {
+ // ...
+ for !win.Close() {
+ // ...
+ win.Refresh()
+ }
+ // ...
+}
+// ...
+```
+
+Now you can run the project (the same way as before, `go run main.go`) and you should see a window pop up with the title `My Vuelto Window`. If you do, you've successfully setup Vuelto in your project! 🎉
diff --git a/website/tutorials/beginner/rendering.md b/website/tutorials/beginner/rendering.md
new file mode 100644
index 0000000..b12a4f3
--- /dev/null
+++ b/website/tutorials/beginner/rendering.md
@@ -0,0 +1,130 @@
+
+# 📂 Basic Rendering with vuelto
+Hello and welcome to the second tutorial in the beginner series! In this tutorial, we will learn how to render a window with Vuelto. We expect you to at least have the basics from the [first tutorial](new-project.md) setup and ready to go. Let's get started!
+
+!!! note
+ This tutorial is designed for the desktop platforms (Windows, macOS, and Linux). The changes for the web platform will be covered in the last paragrap of the tutorial.
+
+## 🖌️ Settings up the renderer
+So before the tutorial starts, we need to make sure we have a working renderer. The renderer is a struct that is responsible for rendering everything on the screen. We will use the `vuelto.NewRenderer` function to create a new renderer. Here is how you can do it:
+```go
+ren := w.NewRenderer2D()
+```
+And thats it for the renderer! Now we can move on to rendering different things!.
+
+## 🚀 Rendering different shapes onto the window
+So lets get started with some graphics. A colored background will be our start for now. So lets run the `ClearColor()` function from the `vuelto` package. This function takes in 4 arguments, the red, green, blue, and alpha values. The values follow RGBA color model, where each value is between 0 and 255. Here is an example of how to set the background color to a gray-ish color. Make sure to run this code inside of the game loop.
+
+```go
+// ...
+for !w.Close() {
+ // ...
+ ren.ClearColor([4]int{100, 100, 100, 255}) // R, B, G, A
+ // ...
+}
+// ...
+```
+And now if you run the code, you should see a gray window. You can change the values to get different colors.
+
+Next up, we can get some geometry on the screen. Lets start off with a basic line. For this we first will need to initialize a new line outside of the game loop (`vuelto.NewLine`), and after that draw it inside of the game loop (`line.Draw`). The line arguments work as follows:
+- `x1` and `y1` are the starting point of the line.
+- `x2` and `y2` are the ending point of the line.
+- `color` is the color of the line, following the RGBA color model (just like in `ClearColor`).
+```go
+// ...
+line := ren.NewLine(0.5, 0.5, -0.5, -0.5, [4]int{10, 145, 245, 255})
+// ...
+```
+
+And now we can render the line inside of the game loop.
+```go
+// ...
+for !w.Close() {
+ // ...
+ line.Draw()
+ // ...
+}
+// ...
+```
+And now you should see a line on the screen. You can change the values to get different lines!
+
+Now that we got basic lines, lets move on to rectangles. It works really similar to lines. The rectangle arguments work as follows:
+- `x` and `y` are the top left corner of the rectangle.
+- `width` and `height` are the width and height of the rectangle.
+- `color` is the color of the rectangle, following the RGBA color model.
+
+First initialize a new rectangle outside of the game loop (`vuelto.NewRect`).
+```go
+rect := ren.NewRect(0, 0, 1, 1, [4]int{245, 145, 10, 255})
+```
+And now we can render the rectangle inside of the game loop.
+```go
+// ...
+for !w.Close() {
+ // ...
+ rect.Draw()
+ // ...
+}
+// ...
+```
+And now you should see a rectangle on the screen. You can change the values to get different rectangles!
+
+## 🎨 Rendering images
+Now that we got some basic shapes on the screen, lets move on to images. The will be a little more complex, but still pretty simple. First we will need to load an image. For this we will use the `ren.LoadImage` function. This function takes in the path to the image and returns a new image. Here is an example of how to load an image:
+```go
+img := ren.LoadImage("path/to/image.png", 0.5, 0.5, -0.5, 0.5)
+```
+The arguments work as follows:
+- The first argument is the path to the image.
+- The next 4 arguments are the x and y coordinates of the top left corner of the image, and the width and height of the image.
+
+And now we can render the image inside of the game loop.
+```go
+// ...
+for !w.Close() {
+ // ...
+ img.Draw()
+ // ...
+}
+// ...
+```
+
+## 🌐 Rendering for the web
+If you want to render your game for the web, you will need to make a few changes.
+- You will need to adapt your image paths to the web. This means that you will need to change the path to the image to an embedded image.
+Thats it!
+
+### 🔄 Adapting the image paths
+To adapt the image paths to the web, you will need to embed the images into the binary. This can be done with the `go:embed` directive. Here is an example of how to embed an image:
+
+First import the `embed` package.
+```go
+// ...
+import (
+ // ...
+ "embed"
+ // ...
+)
+// ...
+```
+Then, create an embed filesystem with your image/images.
+```go
+// ...
+//go:embed tree.png /path/to/image.png
+var embeddedFiles embed.FS
+// ...
+```
+
+And now create a new `ImageEmbed` object with the path to the image and the filesystem
+```go
+imageEmbed := vuelto.ImageEmbed{
+ Filesystem: embeddedFiles,
+ Image: ".png",
+}
+```
+
+And now you can use the `LoadImage` function with the `imageEmbed` object.
+```go
+image := ren.LoadImage(imageEmbed, 0.5, 0.5, -0.5, 0.5)
+```
+And now you should be able to render the image on the web!
diff --git a/website/tutorials/index.md b/website/tutorials/index.md
old mode 100644
new mode 100755
index bebd2c7..6d6e435
--- a/website/tutorials/index.md
+++ b/website/tutorials/index.md
@@ -1 +1,11 @@
# 🎓 Vuelto Tutorials
+
+Welcome to Vuelto tutorials! Here will you find different tutorials/ways to use Vuelto, and also how to use it with a small explanation what
+everything does. Don't know how to get started with Vuelto? This is the best way!
+
+## 💡 Tutorials
+
+Here are some tutorials:
+
+- [Setting up](../get-started.md)
+- [Creating a new project](beginner/new-project.md)