Types of OpenGL® extensions?

Print anything with Printful



OpenGL® extensions are used to manage and maintain the orderly structure of libraries. There are four types: vendor, approved, generic, and core. The ARB helps manage extensions, and approved extensions become part of the regular OpenGL® library.

There are several OpenGL® extensions, mainly used to help manage and maintain the orderly structure of OpenGL® libraries. There are four main types of OpenGL® extensions: vendor, approved, generic, and core. Approved, generic, and core extensions denote all functions and libraries that, in some way, are moving along a path toward inclusion in the general distribution of the OpenGL® development kit. Vendor extensions are custom features that apply to specific hardware or software environments. There are a few other types, although they are more for sub-classification of the many extensions that exist.

One reason why there are different types of OpenGL® extensions is the widespread use of the core libraries and the potentially confusing amount of proprietary code created to extend it. The OpenGL® Architecture Review Board (ARB) helps maintain and enforce the OpenGL® standard and manage extensions. Many extensions start out as vendor extensions or ubiquitous extensions and can, over time, be used by multiple vendors, earning them the title of a generic extension. Generic Extensions can then be reviewed by the ARB and become ARB-approved extensions that will most likely merge with the core extensions.

Vendor OpenGL® extensions are functions implemented by graphics hardware or operating system manufacturers. These types of extensions allow a vendor to improve or introduce new features to their graphics performance and then make those improvements available to OpenGL® programs. All vendor extensions begin with an ARB-assigned code to represent the vendor name, indicating the environment in which the feature might be available.

Generic OpenGL® extensions are functions that have been used and implemented by multiple vendors and no longer need to be designated with special vendor prefix codes. Not all generic extensions need to be implemented to maintain compliance with the OpenGL® standard. A generic extension uses the GL_EXT prefix before the function or constant name.

Approved OpenGL® extensions are those that have been adopted by more than one vendor and have been reviewed by the ARB, allowing them to become part of the regular OpenGL® library. Functions of this type are generally implemented by all vendors, regardless of which vendor actually invented the extension, and regardless of whether other vendors have hardware capable of supporting the required functions. This type of extension carries the prefix GL_ARB.

Core OpenGL® Extensions are functions that can upgrade the performance of older programs by allowing calls to older versions of the OpenGL® function to run newer code. When new versions of OpenGL® are released, the new core extensions can be called seamlessly from an older program without the need to change the source code. Despite the convenience of improving backward compatibility, core OpenGL® extensions can still depreciate over time.




Protect your devices with Threat Protection by NordVPN


Skip to content