diff --git a/.github/workflows/ci_check.yml b/.github/workflows/ci_check.yml
old mode 100644
new mode 100755
index fd90b02..2a45380
--- a/.github/workflows/ci_check.yml
+++ b/.github/workflows/ci_check.yml
@@ -2,10 +2,14 @@ name: ci_check
on:
push:
- branches: "main"
+ branches:
+ - latest
+ - stable
pull_request:
- branches: "main"
+ branches:
+ - latest
+ - stable
jobs:
build:
@@ -15,7 +19,7 @@ jobs:
fail-fast: false
matrix:
- os: [ubuntu-latest, windows-latest]
+ os: [ubuntu-latest, windows-latest, macos-latest]
build_type: [Release]
c_compiler: [gcc, clang, cl]
include:
@@ -28,6 +32,9 @@ jobs:
- os: ubuntu-latest
c_compiler: clang
cpp_compiler: clang++
+ - os: macos-latest
+ c_compiler: clang
+ cpp_compiler: clang++
exclude:
- os: windows-latest
c_compiler: gcc
@@ -42,7 +49,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v4
with:
- go-version: '1.21'
+ go-version: '1.22'
- name: Update Packages (Linux)
if: startsWith(matrix.os, 'ubuntu')
@@ -57,3 +64,4 @@ jobs:
- name: Make Ci_Check
run: make ci_check
+
diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml
new file mode 100644
index 0000000..2d61f78
--- /dev/null
+++ b/.github/workflows/format.yml
@@ -0,0 +1,36 @@
+name: Go Format Check
+
+on:
+ push:
+ branches:
+ - latest
+ - stable
+
+ pull_request:
+ branches:
+ - latest
+ - stable
+jobs:
+ go-fmt-check:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v2
+
+ - name: Set up Go
+ uses: actions/setup-go@v3
+ with:
+ go-version: '1.22'
+
+ - name: Check Go format
+ run: |
+ files=$(gofmt -l .)
+ if [ -n "$files" ]; then
+ echo "Following files arent formatted:"
+ echo "$files"
+ exit 1
+ else
+ echo "Everything is formatted."
+ fi
+
diff --git a/.github/workflows/mkdocs.yml b/.github/workflows/mkdocs.yml
old mode 100644
new mode 100755
index 280f2aa..d390abf
--- a/.github/workflows/mkdocs.yml
+++ b/.github/workflows/mkdocs.yml
@@ -2,10 +2,12 @@ name: MkDocs Deploy
on:
push:
branches:
- - master
- - main
+ - latest
+ - stable
+
permissions:
contents: write
+
jobs:
deploy:
runs-on: ubuntu-latest
diff --git a/.gitignore b/.gitignore
old mode 100644
new mode 100755
index 729f576..3283ec6
--- a/.gitignore
+++ b/.gitignore
@@ -13,3 +13,5 @@ CMakeFiles/
.cmake
Testing
site
+
+internal/gl/opengl/old
diff --git a/CNAME b/CNAME
old mode 100644
new mode 100755
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..cefac96
--- /dev/null
+++ b/CODE_OF_CONDUCT.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/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..f5d43b4
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,58 @@
+# 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
+- 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://github.com/vuelto-org/vuelto).
+
+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/LICENSE b/LICENSE
deleted file mode 100644
index e62ec04..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,674 +0,0 @@
-GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- Copyright (C)
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-.
diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..25e9026
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,77 @@
+# 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
+ @@ -39,6 +54,39 @@ 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..51398b4
--- a/Makefile
+++ b/Makefile
@@ -14,9 +14,35 @@ proxy-release:
GOPROXY=proxy.golang.org go list -m vuelto.me@$(VERSION)
ci_check:
- go build -o bin/test/test test/test1/test.go
+ go build -o bin/test/test test/test/test.go
+ go build -o bin/test/backend test/backend/test.go
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
+
+test:
+ go run test/test/test.go
+
+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 fmt ./examples/images/
+ go fmt ./examples/rectangle/
+ 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..c304be7
--- a/README.md
+++ b/README.md
@@ -1,47 +1,42 @@
-
-
-
-
+
+
-
+
+
-
+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.
-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!
+## ✨ Features
+- 🌍 Cross Platform
+- 🛠️ Open-Source
+- 📚 Easy to learn
+- 🚀 Fully built using CGo (and some other libraries)
+## 📦 Installation
-## 📑 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)
+### 📋 Requirements
+You need to have the following installed on your system:
+- 🖥️ A C compiler
+- 🔧 A Go compiler
+- 🪟 Xorg/Wayland development packages (For Linux only)
+- 🖱️ Supported platform
+For an installation guide, [go here](https://vuelto-org.github.io/vuelto/install/).
-## 🚀 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)
+### 🐹 Gopkg
-For a installation guide, [go here](https://vuelto-org.github.io/vuelto/install/).
-
-### 📦 Go package
-We have a Go package published, so run this command to add it to your go.mod:
-```bash
+You can get the latest Go package by running this command:
+```sh
go get vuelto.me@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
@@ -53,36 +48,77 @@ func main() {
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", 300, 300, 250, 250)
+ image1 := ren.LoadImage("test/image.png", 100, 100, 150, 150)
for !w.Close() {
image.Draw()
image1.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
+
+| Platform | Status |
+| :---- | :---- |
+| Windows | ✅ |
+| macOS (Darwin) | ✅ |
+| Linux | ✅ |
+| Web | ❌ (*Work In Progress, V1.1*) |
+
+## 📖 Docs
+
+You can check out Vuelto's documentation at [Vuelto's website](https://vuelto.me/docs/).
+
+> [!TIP]
+> In case the documentation is missing something or there is something wrong, use the [GoDoc](https://pkg.go.dev/vuelto.me) 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](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](SECURITY.md) to safely report it.
+
+### 🔐 License
+
+Vuelto is licensed under the [VL-Cv1.1 Licence](LICENSE.md). Any PRs that primarily focus on changing the license won't be accepted.
+
+### 🌐 Community and Contact
+
+You can contact us via our Discord community or at our email:
+
+- 🗨️ [Discord server](https://discord.gg/gZqdRXbbqg)
+- ✉️ [Email](mailto:dima@vuelto.me)
-## 📋 Roadmap
-You can find our [roadmap on the website](https://vuelto-org.github.io/vuelto/roadmap/v1).
+### 🙌 Thanks To
+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.
+Your support has helped make Vuelto even better! ❤️
-## 🤝 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](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..de1e9c4
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,7 @@
+# Vuelto Security Policy
+
+## Reporting security vulnerabilites
+
+If you find a security issue with Vuelto, we please ask you that you contact us privately via [email](mailto:dima@vuelto.me) 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
diff --git a/examples/images/main.go b/examples/images/main.go
old mode 100644
new mode 100755
diff --git a/examples/rectangle/main.go b/examples/rectangle/main.go
old mode 100644
new mode 100755
diff --git a/examples/two-windows/main.go b/examples/two-windows/main.go
old mode 100644
new mode 100755
diff --git a/go.mod b/go.mod
old mode 100644
new mode 100755
diff --git a/go.sum b/go.sum
old mode 100644
new mode 100755
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..e2f4ee0
--- /dev/null
+++ b/internal/gl/legacy/legacy.go
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the Vuelto License V1.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1,
+ * 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..8edaaba
--- /dev/null
+++ b/internal/gl/opengl.go
@@ -0,0 +1,123 @@
+//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 Vuelto License V1.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1,
+ * 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{}
+type FragmentShader struct{}
+
+type Shader struct {
+ WebShader string
+ DesktopShader string
+
+ Type any
+}
+
+type Program struct {
+ Program uint32
+
+ VertexShader Shader
+ FragmentShader Shader
+}
+
+type Buffer struct {
+ Vao uint32
+ Vbo uint32
+
+ Vertices []float32
+}
+
+type Location struct {
+ UniformLocation int32
+}
+
+type Texture struct {
+ Texture uint32
+}
+
+var VERTEX_SHADER = &VertexShader{}
+var FRAGMENT_SHADER = &FragmentShader{}
+
+func NewShader(shadertype any, webshader, desktopshader string) *Shader {
+ return &Shader{
+ Type: shadertype,
+
+ WebShader: webshader,
+ DesktopShader: desktopshader,
+ }
+}
+
+func (s *Shader) Compile() {}
+
+func (s *Shader) Delete() {}
+
+func NewProgram(vertexshader, fragmentshader Shader) *Program {
+ return &Program{
+ VertexShader: vertexshader,
+ FragmentShader: fragmentshader,
+ }
+}
+
+func (p *Program) Link() {}
+
+func (p *Program) Use() {}
+
+func (p *Program) Delete() {}
+
+func (p *Program) UniformLocation(location string) *Location {
+ return &Location{}
+}
+
+func (l *Location) Set(arg ...float32) {}
+
+func GenBuffers(vertices []float32) *Buffer {
+ return &Buffer{
+ Vertices: vertices,
+ }
+}
+
+func (b *Buffer) BindVA() {}
+
+func (b *Buffer) BindVBO() {}
+
+func (b *Buffer) UnBindVA() {}
+
+func (b *Buffer) UnBindVBO() {}
+
+func (b *Buffer) Data() {}
+
+func (b *Buffer) Delete() {}
+
+func GenTexture() *Texture {
+ return &Texture{}
+}
+
+func (t *Texture) Bind() {}
+
+func (t *Texture) UnBind() {}
+
+func InitVertexAttrib() {}
+
+func DrawElements(corners int) {}
+
+func Clear() {}
+
+func Enable(args ...uint32) {}
+
+func Viewport(width, height int32) {}
+
+func Ortho() {}
+
+func Texture2D() {}
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/webgl.go b/internal/gl/webgl.go
new file mode 100755
index 0000000..5d9cf68
--- /dev/null
+++ b/internal/gl/webgl.go
@@ -0,0 +1,99 @@
+//go:build js && wasm
+// +build js,wasm
+
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the Vuelto License V1.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1,
+ * 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{}
+type FragmentShader struct{}
+
+type Shader struct {
+ WebShader string
+ DesktopShader string
+
+ Type any
+}
+
+type Program struct {
+ Program uint32
+
+ VertexShader Shader
+ FragmentShader Shader
+}
+
+type Buffer struct {
+ Vao uint32
+ Vbo uint32
+
+ Vertices []float32
+}
+
+type Location struct {
+ UniformLocation int32
+}
+
+var VERTEX_SHADER = &VertexShader{}
+var FRAGMENT_SHADER = &FragmentShader{}
+
+func NewShader(shadertype any, webshader, desktopshader string) *Shader {
+ return &Shader{
+ Type: shadertype,
+
+ WebShader: webshader,
+ DesktopShader: desktopshader,
+ }
+}
+
+func (s *Shader) Compile() {}
+
+func (s *Shader) Delete() {}
+
+func NewProgram(vertexshader, fragmentshader Shader) *Program {
+ return &Program{
+ VertexShader: vertexshader,
+ FragmentShader: fragmentshader,
+ }
+}
+
+func (p *Program) Link() {}
+
+func (p *Program) Use() {}
+
+func (p *Program) UniformLocation(location string) *Location {
+ return &Location{}
+}
+
+func (l *Location) Set(arg ...float32) {}
+
+func GenBuffers(vertices []float32) *Buffer {
+ return &Buffer{
+ Vertices: vertices,
+ }
+}
+
+func (b *Buffer) BindVA() {}
+
+func (b *Buffer) BindVBO() {}
+
+func (b *Buffer) Data() {}
+
+func (b *Buffer) Delete() {}
+
+func InitVertexAttrib() {}
+
+func DrawElements() {}
+
+func Clear() {}
+
+func Enable(args ...uint32) {}
diff --git a/internal/gl/webgl/binding.go b/internal/gl/webgl/binding.go
new file mode 100755
index 0000000..f5b66d3
--- /dev/null
+++ b/internal/gl/webgl/binding.go
@@ -0,0 +1,115 @@
+//go:build js && wasm
+// +build js,wasm
+
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the Vuelto License V1.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1,
+ * 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.me/internal/windowing/web"
+)
+
+var canvas web.Canvas = web.Document.GetElementById("vuelto")
+var gl web.Context = canvas.GetContext("webgl")
+
+var (
+ 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")
+
+ 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")
+)
+
+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 LinkProgram(program js.Value) {
+ gl.Call("linkProgram", program)
+}
+
+func CreateBuffer() js.Value {
+ return gl.Call("createBuffer")
+}
+
+func BindBuffer(target js.Value, buffer js.Value) {
+ gl.Call("bindBuffer", target, buffer)
+}
+
+func BufferData(target js.Value, data []float32, usage js.Value) {
+ gl.Call("bufferData", target, js.TypedArrayOf(data), usage)
+}
+
+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 js.Value) {
+ gl.Call("enableVertexAttribArray", index)
+}
+
+func VertexAttribPointer(index js.Value, 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 DrawArrays(mode js.Value, first int, count int) {
+ gl.Call("drawArrays", mode, first, count)
+}
diff --git a/internal/image/image_go.go b/internal/image/image_go.go
new file mode 100644
index 0000000..08b9584
--- /dev/null
+++ b/internal/image/image_go.go
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the Vuelto License V1.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1,
+ * 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 (
+ "image"
+ "image/draw"
+ _ "image/jpeg"
+ _ "image/png"
+ "log"
+ "os"
+)
+
+type Image struct {
+ Texture []uint8
+
+ ImageWidth int
+ ImageHeight 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,
+ ImageWidth: rgba.Rect.Size().X,
+ ImageHeight: rgba.Rect.Size().Y,
+ }
+}
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..69211e7
--- /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 Vuelto License V1.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1,
+ * 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..9bd1028
--- /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 Vuelto License V1.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1,
+ * 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..a4945cb
--- /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 Vuelto License V1.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1,
+ * 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..96420b0
--- /dev/null
+++ b/internal/window/web/canvas.go
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the Vuelto License V1.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1,
+ * 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"
+
+ "strconv"
+)
+
+type Canvas struct {
+ JSCanvas js.Value
+}
+
+type Context struct {
+ JSContext js.Value
+}
+
+func (c *Canvas) GetContext(inputContext string) Context {
+ return Context{c.JSCanvas.Call("getContext", inputContext)}
+}
+
+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/js/document.go b/internal/window/web/document.go
old mode 100644
new mode 100755
similarity index 61%
rename from internal/js/document.go
rename to internal/window/web/document.go
index 22e9fe8..710c92a
--- a/internal/js/document.go
+++ b/internal/window/web/document.go
@@ -1,10 +1,24 @@
-package js
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the Vuelto License V1.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1,
+ * 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 +37,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 +63,22 @@ 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 (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..57e82cf
--- /dev/null
+++ b/internal/window/web/window.go
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the Vuelto License V1.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1,
+ * 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..6d5a39f
--- /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 Vuelto License V1.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1,
+ * 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..934aab0
--- /dev/null
+++ b/internal/window/win_glfw.go
@@ -0,0 +1,106 @@
+//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 Vuelto License V1.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1,
+ * 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"
+
+ "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
+}
+
+func InitWindow() (*Window, error) {
+ runtime.LockOSThread()
+
+ if err := glfw.Init(); err != nil {
+ return nil, err
+ }
+ return &Window{}, 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)
+ }
+
+ 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() {
+ glfw.PollEvents()
+}
+
+func (w *Window) UpdateBuffers() {
+ w.GlfwWindow.SwapBuffers()
+}
+
+func (w *Window) ContextCurrent() {
+ w.GlfwWindow.MakeContextCurrent()
+}
+
+func (w *Window) Destroy() {
+ w.GlfwWindow.Destroy()
+}
+
+func (w *Window) DrawingTest() {
+}
diff --git a/internal/window/win_web.go b/internal/window/win_web.go
new file mode 100755
index 0000000..8539dfb
--- /dev/null
+++ b/internal/window/win_web.go
@@ -0,0 +1,106 @@
+//go:build js && wasm
+// +build js,wasm
+
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the Vuelto License V1.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1,
+ * 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 (
+ "syscall/js"
+ "time"
+
+ "vuelto.me/internal/windowing/web"
+)
+
+type Window struct {
+ Resizable bool
+
+ JSCanvas web.Canvas
+
+ GlfwGLMajor int
+ GlfwGLMinor int
+
+ Title string
+ Width int
+ Height int
+}
+
+func InitWindow() (*Window, error) {
+ w := &Window{}
+
+ w.JSCanvas = web.Document.GetElementById("vuelto")
+ if w.JSCanvas.IsNull() {
+ w.JSCanvas = web.Document.CreateCanvasElement()
+ w.JSCanvas.Set("id", "canvas")
+ web.Document.Body.AppendCanvasChild(w.JSCanvas)
+ }
+
+ return w, nil
+}
+
+func (w *Window) CreateWindow() 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 {
+ inputFunc(w, web.Document.DocumentElement.ClientWidth(), web.Document.DocumentElement.ClientHeight())
+ return nil
+ })
+}
+
+func (w *Window) UpdateBuffers() {
+ time.Sleep(time.Millisecond * 32)
+}
+
+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) ContextCurrent() {}
+func (w *Window) Destroy() {}
+func (w *Window) HandleEvents() {}
+func (w *Window) Close() {}
diff --git a/internal/window/x11/x11.go b/internal/window/x11/x11.go
new file mode 100755
index 0000000..0677e66
--- /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 Vuelto License V1.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1,
+ * 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..240d7f8
--- 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_author: The Vuelto Team
+copyright: The Vuelto Team
repo_name: vuelto-org/vuelto
repo_url: https://github.com/vuelto-org/vuelto
@@ -8,21 +10,41 @@ 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"
+ - 🛠️ Indepth Installation: "install.md"
+
+ - Docs:
+ - 🏠 Home: "docs/index.md"
+ - 👤 User Docs:
+ - 🪟 Windowing: "docs/latest/windowing.md"
+ - 🖥️ Renderer: "docs/latest/renderer.md"
+ - 🔊 Audio: "docs/latest/audio.md"
+ - 🔢 Math: "docs/latest/math.md"
+ - 📱 Developer Docs:
+ - 💻 Dev Home: "docs/developers/index.md"
+ - 💍 3 Ring approach: "docs/developers/rings.md"
+ - 📋 Contribution Guidelines: "docs/developers/contribution.md"
+
+ - Blog: # ✍️
+ - 📚 Articles: "blog/index.md"
+ - "We’re one year old!": "blog/were-one-year-old.md"
+
+ - Tutorials:
+ - 🎓 Home: "tutorials/index.md"
- Roadmap:
- - 🛣️ V1: "roadmap/v1.md"
- - 🛣️ V2: "roadmap/v2.md"
+ - 🛣️ V1: "roadmap/v1.md"
+ - 🛣️ V2: "roadmap/v2.md"
+
+ - Discord: "discord.html"
theme:
name: material
- logo: logo/icon-no-bg.png
- favicon: logo/icon-no-bg.png
+ logo: logo/pfp-nobg.png
+ favicon: logo/pfp-nobg.png
features:
- navigation.path
@@ -34,7 +56,6 @@ theme:
- content.code.copy
-
palette:
- media: "(prefers-color-scheme)"
toggle:
diff --git a/overrides/main.html b/overrides/main.html
new file mode 100755
index 0000000..6273b14
--- /dev/null
+++ b/overrides/main.html
@@ -0,0 +1,7 @@
+{% extends "base.html" %}
+
+{% block site_meta %}
+
+{% endblock %}
+
+
diff --git a/pkg/audio.go b/pkg/audio.go
old mode 100644
new mode 100755
index 0e231b9..185e025
--- 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 Vuelto License V1.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1,
+ * 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..eb26878
--- a/pkg/draw.go
+++ b/pkg/draw.go
@@ -1,6 +1,18 @@
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the Vuelto License V1.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1,
+ * 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 gl "vuelto.me/internal/gl/legacy"
// 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) {
diff --git a/pkg/image.go b/pkg/image.go
old mode 100644
new mode 100755
index 4d5ece5..aa65ee3
--- a/pkg/image.go
+++ b/pkg/image.go
@@ -1,15 +1,20 @@
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the Vuelto License V1.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1,
+ * 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"
-
- "vuelto.me/internal/gl"
+ gl "vuelto.me/internal/gl/legacy"
+ "vuelto.me/internal/image"
)
type Image struct {
@@ -22,26 +27,14 @@ 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)
- }
-
- rgba := image.NewRGBA(img.Bounds())
- draw.Draw(rgba, rgba.Bounds(), img, image.Point{}, draw.Over)
+ file := image.Load(imagePath)
var textureID uint32
gl.GenTextures(1, &textureID)
gl.BindTexture(gl.TEXTURE_2D, textureID)
- gl.TexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, rgba.Rect.Size().X, rgba.Rect.Size().Y, 0, gl.RGBA, gl.UNSIGNED_BYTE, rgba.Pix)
+ gl.TexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, file.ImageWidth, file.ImageHeight, 0, gl.RGBA, gl.UNSIGNED_BYTE, file.Texture)
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)
diff --git a/pkg/renderer.go b/pkg/renderer.go
old mode 100644
new mode 100755
index 3825e8b..9ce2f55
--- 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 Vuelto License V1.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1,
+ * 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..23c7640
--- a/pkg/shapes.go
+++ b/pkg/shapes.go
@@ -1,3 +1,15 @@
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the Vuelto License V1.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1,
+ * 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 Line struct {
diff --git a/pkg/vectors.go b/pkg/vectors.go
old mode 100644
new mode 100755
index 8d1cd33..0015cc3
--- a/pkg/vectors.go
+++ b/pkg/vectors.go
@@ -1,3 +1,15 @@
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the Vuelto License V1.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1,
+ * 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 {
@@ -14,50 +26,50 @@ type Vector3D struct {
// Creates a new 2D vector with x and y values
func NewVector2D(x, y float64) *Vector2D {
return &Vector2D{
- X: x,
- Y: y,
- }
+ X: x,
+ Y: 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 {
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..55a11d6
--- a/pkg/window.go
+++ b/pkg/window.go
@@ -1,48 +1,61 @@
+/*
+ * Copyright (C) 2024 vuelto-org
+ *
+ * This file is part of the Vuelto project, licensed under the Vuelto License V1.
+ * Primary License: GNU GPLv3 or later (see ).
+ * If unmaintained, this software defaults to the MIT License as per Vuelto License V1,
+ * 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"
+
+ gl "vuelto.me/internal/gl/legacy"
+ windowing "vuelto.me/internal/window"
)
type Window struct {
- Window *glfw.Window
+ Window *windowing.Window
Title string
Width, Height int
}
-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 initialise a new window: ", err)
+ return nil
}
- if resizable {
- glfw.WindowHint(glfw.Resizable, glfw.True)
- } else {
- glfw.WindowHint(glfw.Resizable, glfw.False)
- }
+ window.Title = title
+ window.Width = width
+ window.Height = height
+
+ window.GlfwGLMajor = 2
+ window.GlfwGLMinor = 1
- 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()
+ window.ContextCurrent()
gl.Ortho(0, float64(width), float64(height), 0, -1, 1)
@@ -52,25 +65,21 @@ func NewWindow(title string, width, height int, resizable bool) *Window {
gl.BlendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA)
return &Window{
- Window: window,
- Title: title,
- Width: width,
- Height: height,
- }
+ Window: window,
+ Title: title,
+ Width: width,
+ Height: height,
+ }
}
// 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() {
+ for !w.Window.Close() {
glfw.PollEvents()
return false
}
@@ -80,13 +89,13 @@ func (w *Window) Close() bool {
// 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()
+ w.Window.UpdateBuffers()
gl.Clear(gl.COLOR_BUFFER_BIT)
}
// Sets the context of the window to the current context. (Only use when having multiple windows)
func (w *Window) SetContextCurrent() {
- w.Window.MakeContextCurrent()
+ w.Window.ContextCurrent()
}
// Destroys the window and cleans up the memory.
diff --git a/test/backend/test.go b/test/backend/test.go
new file mode 100755
index 0000000..ac2357a
--- /dev/null
+++ b/test/backend/test.go
@@ -0,0 +1,31 @@
+package main
+
+import (
+ "log"
+
+ windowing "vuelto.me/internal/window"
+)
+
+func main() {
+ win, err := windowing.InitWindow()
+ if err != nil {
+ log.Fatalf("Failed to initialise: %s", err)
+ }
+
+ defer win.Close()
+
+ win.Resizable = true
+ win.Title = "Test"
+
+ win.Width = 500
+ win.Height = 500
+
+ win.Create()
+
+ for {
+ win.DrawingTest()
+
+ 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/test1/image.png b/test/test/image.png
old mode 100644
new mode 100755
similarity index 100%
rename from test/test1/image.png
rename to test/test/image.png
diff --git a/test/test1/test.go b/test/test/test.go
old mode 100644
new mode 100755
similarity index 72%
rename from test/test1/test.go
rename to test/test/test.go
index a27b60f..27795f1
--- a/test/test1/test.go
+++ b/test/test/test.go
@@ -1,6 +1,8 @@
package main
-import "vuelto.me/pkg"
+import (
+ "vuelto.me/pkg"
+)
func main() {
w1 := vuelto.NewWindow("hi", 800, 600, false)
@@ -9,8 +11,8 @@ func main() {
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)
+ image := ren2.LoadImage("test/test/tree.png", 300, 300, 250, 250)
+ image1 := ren2.LoadImage("test/test/image.png", 100, 100, 150, 150)
for !w1.Close() && !w2.Close() {
w1.SetContextCurrent()
diff --git a/test/test1/tree.png b/test/test/tree.png
old mode 100644
new mode 100755
similarity index 100%
rename from test/test1/tree.png
rename to test/test/tree.png
diff --git a/website/CNAME b/website/CNAME
old mode 100644
new mode 100755
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..e5bd170
--- /dev/null
+++ b/website/blog/index.md
@@ -0,0 +1,5 @@
+# Vuelto's Blog
+Hey there! Welcome to Vuelto's blog. Here, you will find all the latest updates and news about Vuelto.
+
+## Latest Posts
+- [We're one year old!](were-one-year-old.md)
diff --git a/website/blog/were-one-year-old.md b/website/blog/were-one-year-old.md
new file mode 100644
index 0000000..e8b3e23
--- /dev/null
+++ b/website/blog/were-one-year-old.md
@@ -0,0 +1,100 @@
+![Post cover](assets/were-one-year-old-cover.png)
+
+# We’re one year old\! V1.1 is coming, and it’s looking good\!
+
+Hi there\! I’m [ZakaHaceCosas](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 initialise 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.
+
+![An image showing some of the design tweaks we did to Vuelto's branding](assets/were-one-year-old-image1.png)
+
+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\!
+
+God bless you,
+> \- [ZakaHaceCosas](https://github.com/ZakaHaceCosas), from the Vuelto Team.
diff --git a/website/discord.html b/website/discord.html
new file mode 100644
index 0000000..c8db344
--- /dev/null
+++ b/website/discord.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
diff --git a/website/docs/developers/contribution.md b/website/docs/developers/contribution.md
new file mode 100644
index 0000000..1615122
--- /dev/null
+++ b/website/docs/developers/contribution.md
@@ -0,0 +1,28 @@
+# 📋 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 doesnt 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..c71776d
--- /dev/null
+++ b/website/docs/developers/index.md
@@ -0,0 +1,6 @@
+# 💻 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 enviorment 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..7e361aa
--- /dev/null
+++ b/website/docs/developers/rings.md
@@ -0,0 +1,21 @@
+# 💍 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 dependendant 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 multipurpouse 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 powerfull 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..3673d12
--- 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 documentation of Vuelto! Here you will find a wiki, which is basically all function explained. New to Vuelto? Then head over to the [tutorials tab](../tutorials/index.md) in the navigation bar.
+
+## 📑 Table of contents
+- [Latest stable docs](latest/windowing.md)
+- [Developers and contributors](developers/index.md)
+
+
-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)
diff --git a/website/docs/latest/audio.md b/website/docs/latest/audio.md
new file mode 100644
index 0000000..e69de29
diff --git a/website/docs/latest/math.md b/website/docs/latest/math.md
new file mode 100644
index 0000000..e69de29
diff --git a/website/docs/latest/renderer.md b/website/docs/latest/renderer.md
new file mode 100644
index 0000000..e69de29
diff --git a/website/docs/latest/windowing.md b/website/docs/latest/windowing.md
new file mode 100644
index 0000000..e69de29
diff --git a/website/get-started.md b/website/get-started.md
old mode 100644
new mode 100755
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..251a9e7
--- /dev/null
+++ b/website/index.md
@@ -0,0 +1,91 @@
+---
+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 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.
+
+## ✨ Features
+- 🌍 Cross Platform
+- 🛠️ Open-Source
+- 📚 Easy to learn
+- 🚀 Fully built using CGo (and some other libraries)
+
+## 📦 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
+```
+
+## 🖥️ Platform Support
+
+| Platform | Status |
+| :---- | :---- |
+| Windows | ✅ |
+| macOS (Darwin) | ✅ |
+| Linux | ✅ |
+| Web | ❌ (*Work In Progress, V1.1*) |
+
+## 📖 Docs
+
+You can check out Vuelto's documentation at [Vuelto's website](https://vuelto.me/docs/).
+
+!!! tip
+ In case the documentation is missing something or there is something wrong, use the [GoDoc](https://pkg.go.dev/vuelto.me) 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 Licence](https://github.com/vuelto-org/vuelto/blob/latest/LICENSE.md). Any PRs that primarily focus on changing the license won't be accepted.
+
+### 🌐 Community and Contact
+
+You can contact us via our Discord community or at our email:
+
+- 🗨️ [Discord server](https://discord.gg/gZqdRXbbqg)
+- ✉️ [Email](mailto:dima@vuelto.me)
+
+### 🙌 Thanks To
+
+A special thanks to:
+
+- **Dimkauzh** for the initial idea and development.
+- **ZakaHaceCosas** for the great improvements on top of vuelto.
+
+Your support has helped make Vuelto even better! ❤️
diff --git a/website/install.md b/website/install.md
old mode 100644
new mode 100755
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/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..6eacfe7
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/roadmap/v1.md b/website/roadmap/v1.md
old mode 100644
new mode 100755
index cf0edca..99ef494
--- a/website/roadmap/v1.md
+++ b/website/roadmap/v1.md
@@ -36,22 +36,96 @@
- [x] GoDoc
## V1.1
-- [ ] Input
+- [ ] Renderer
+ - [ ] SetPixel
+ - [ ] LoadText and .Draw()
+ - [ ] Web
+ - [ ] Web-windowing
+ - [ ] Support for web using wasm
+ - [ ] Web-rendering
+ - [ ] Support for buildin graphics driver
+ - [ ] WebGL
+ - [ ] Desktop
+ - [ ] Move to OpenGL v3.3
+
+- [x] Windowing
+ - [x] Platforms
+ - [x] Windowing for web
+ - [x] Windowing for desktop
+
+- [ ] Imaging
+ - [ ] Load images
+ - [ ] Process images (to string)
+
+ - [ ] Infrastucture for Images
+ - [ ] Possibly STB_image
+
+- [ ] Events
- [ ] Keyboard
- [ ] Mouse
-- [ ] Renderer
- - [ ] SetPixel
- - [ ] LoadText and draw it
+- [ ] 2 Ring Rendering Driver
+ - [ ] Ring 1
+ - [ ] Wrapper around OpenGL C api
+ - [ ] Wrapper around WebGL JS api
+ - [ ] Ring 2
+ - [ ] API around OpenGL and WebGL
-- [ ] Animations
- - [ ] Using images
- - [ ] Using spritesheets
+- [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
+
+- [ ] 2 Ring Input Driver
+ - [ ] Ring 1
+ - [ ] Wrapper around GLFW
+ - [ ] Wrapper around JS events
+ - [ ] Ring 2
+ - [ ] API around GLFW and JS events
+
+- [ ] 2 Ring Image Driver
+ - [ ] Ring 1
+ - [ ] Wrapper around go's image package
+ - [ ] Ring 2
+ - [ ] API around it
+
+
+- [ ] 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
+ - [ ] Tutorials
+ - [ ] Examples
+ - [ ] Tutorials to build small games
+
+## V1.2
+- [ ] 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..bb47a83
--- a/website/roadmap/v2.md
+++ b/website/roadmap/v2.md
@@ -1,27 +1,32 @@
# 🛣️ 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 +35,4 @@
- [ ] Customization
- [ ] Exporting
- [ ] Importing
- - [ ] Project management
\ No newline at end of file
+ - [ ] Project management
diff --git a/website/tutorials/index.md b/website/tutorials/index.md
old mode 100644
new mode 100755
index bebd2c7..5c22630
--- a/website/tutorials/index.md
+++ b/website/tutorials/index.md
@@ -1 +1,7 @@
# 🎓 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)