Difference between revisions of "GLAPI/glGetString"

From OpenGL Wiki
Jump to navigation Jump to search
(→‎Description: added information about the format of glGetStringi(GL_SHADING_LANGUAGE_VERSION))
m (typo (``` -> '''))
Line 40: Line 40:
 
: For '''glGetStringi''' only, returns the extension string supported by the implementation at {{param|index}}. The index {{param|index}} is on the range [0 to {{apifunc|glGet|Integerv(GL_NUM_EXTENSIONS)}} - 1].
 
: For '''glGetStringi''' only, returns the extension string supported by the implementation at {{param|index}}. The index {{param|index}} is on the range [0 to {{apifunc|glGet|Integerv(GL_NUM_EXTENSIONS)}} - 1].
 
; {{enum|GL_SHADING_LANGUAGE_VERSION}}
 
; {{enum|GL_SHADING_LANGUAGE_VERSION}}
: Returns one of the versions of [[GLSL]] supported by this implementation. {{param|index}} is on the range [0 to {{apifunc|glGet|Integerv(GL_NUM_SHADING_LANGUAGE_VERSIONS)}} - 1]. Note that the format of this string differs from that returned by ```glGetString``` when called with {{enum|GL_SHADING_LANGUAGE_VERSION}}.
+
: Returns one of the versions of [[GLSL]] supported by this implementation. {{param|index}} is on the range [0 to {{apifunc|glGet|Integerv(GL_NUM_SHADING_LANGUAGE_VERSIONS)}} - 1]. Note that the format of this string differs from that returned by '''glGetString''' when called with {{enum|GL_SHADING_LANGUAGE_VERSION}}.
  
 
The {{enum|GL_VERSION}} and {{enum|GL_SHADING_LANGUAGE_VERSION}} strings begin with a version number. The version number uses one of these forms:
 
The {{enum|GL_VERSION}} and {{enum|GL_SHADING_LANGUAGE_VERSION}} strings begin with a version number. The version number uses one of these forms:

Revision as of 10:33, 28 March 2015

glGetString
Core in version 4.6
Core since version 1.0

glGetString: return a string describing the current GL connection

Function Definition

 const GLubyte* glGetString(GLenum name​);
 const GLubyte* glGetStringi(GLenum name​, GLuint index​);
name
Specifies a symbolic constant, one of GL_VENDOR, GL_RENDERER, GL_VERSION, or GL_SHADING_LANGUAGE_VERSION. Additionally, glGetStringi accepts the GL_EXTENSIONS token.
index
For glGetStringi, specifies the index of the string to return.

Description

glGetString returns a pointer to a static string describing some aspect of the current GL connection. name​ can be one of the following:

GL_VENDOR

Returns the company responsible for this GL implementation. This name does not change from release to release.

GL_RENDERER

Returns the name of the renderer. This name is typically specific to a particular configuration of a hardware platform. It does not change from release to release.

GL_VERSION

Returns a version or release number.

GL_SHADING_LANGUAGE_VERSION

Returns a version or release number for the shading language.

Strings GL_VENDOR and GL_RENDERER together uniquely specify a platform. They do not change from release to release and should be used by platform-recognition algorithms.

glGetStringi returns a pointer to a static string indexed by index​. name​ can be one of the following:

GL_EXTENSIONS
For glGetStringi only, returns the extension string supported by the implementation at index​. The index index​ is on the range [0 to glGetIntegerv(GL_NUM_EXTENSIONS) - 1].
GL_SHADING_LANGUAGE_VERSION
Returns one of the versions of GLSL supported by this implementation. index​ is on the range [0 to glGetIntegerv(GL_NUM_SHADING_LANGUAGE_VERSIONS) - 1]. Note that the format of this string differs from that returned by glGetString when called with GL_SHADING_LANGUAGE_VERSION.

The GL_VERSION and GL_SHADING_LANGUAGE_VERSION strings begin with a version number. The version number uses one of these forms:

major_number.minor_number

or

major_number.minor_number.release_number

Vendor-specific information may follow the version number. Its format depends on the implementation, but a space always separates the version number and the vendor-specific information.

In the case of querying GL_SHADING_LANGUAGE_VERSION using glGetStringi (as opposed to glGetString), the output has the same form as what follows "#version" in the shader source, which has the following forms:

number

or

number profile

For example, if the string returned is "450 core", that means that OpenGL Shading Language 4.50 in core profile is supported. If "450 compatibility" is returned, then OpenGL Shading Language 4.50 in compatibility profile is supported. Since the "profile" suffix is optional, another valid example return value is "140" for OpenGL Shading Language 1.40. It's also possible for something like "300 es" to be output, which means the OpenGL ES Shading Language version 300 is supported. Finally, if an empty string is returned (ie. ""), this indicates support for the OpenGL Shading Language 1.10, which did not include the #version compiler directive.

All strings returned by glGetString and glGetStringi are null-terminated.

Notes

If an error is generated, glGetString returns 0.

The client and server may support different versions. glGetString always returns a compatible version number. The release number always describes the server.

Errors

GL_INVALID_ENUM is generated if name​ is not an accepted value.

GL_INVALID_VALUE is generated by glGetStringi if index​ is outside the valid range for indexed state name​.

Copyright

Copyright © 1991-2006 Silicon Graphics, Inc. Copyright © 2010 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.