Routines (alphabetical) > Object Classes > Graphics Object Classes > IDLgrWindow::GetDeviceInfo

# IDLgrWindow::GetDeviceInfo

Syntax | Arguments | Keywords | Version History

The IDLgrWindow::GetDeviceInfo procedure method returns information which allows IDL applications to intelligently make decisions for optimal performance. For example, it allows an application to determine if RENDERER=0 is actually implemented in hardware. It also allows applications to make optimal quality decisions when dynamically building texture maps.

## Syntax

Obj->[IDLgrWindow::]GetDeviceInfo [, ALL=variable] [, FRAMEBUFFER_OBJECT_EXTENSION=variable] [, MAX_FRAGMENT_UNIFORM_COMPONENTS=variable] [, MAX_NUM_CLIP_PLANES=variable] [, MAX_TEXTURE_DIMENSIONS=variable] [, MAX_TILE_DIMENSIONS=variable] [, MAX_TEXTURE_IMAGE_UNITS=variable] [, MAX_VERTEX_ATTRIBUTES=variable] [, MAX_VERTEX_TEXTURE_IMAGE_UNITS=variable] [, MAX_VERTEX_UNIFORM_COMPONENTS=variable] [, MAX_VIEWPORT_DIMENSIONS=variable] [, NAME=variable] [, NUM_CPUS=variable] [, SHADING_LANGUAGE_VERSION=variable] [, VENDOR=variable] [, VERSION=variable]

## Arguments

None

## Keywords

### ALL

Set this keyword to a named variable which, upon return, contains a structure with the values of all the device information keywords as fields.

### FRAMEBUFFER_OBJECT_EXTENSION

Set this keyword to a named variable that will indicate whether the graphics card and OpenGL driver support the GLSL `framebuffer_object_extension`, which is required for IDLgrFilterChain object support and image caching (using IDLgrShader’s CACHE_RESULT property):

0 | No support for chaining shaders or caching
1 | Support for chaining shaders and caching

### MAX_FRAGMENT_UNIFORM_COMPONENTS

Set this keyword to a named variable that will contain the maximum number of components, or storage units, declared by active uniform variables in a fragment shader program. For example, a uniform variable of GLSL vector variable type `vec2` uses 2 components. This value is zero for devices that do not support shader programs, implemented using the IDLgrShader object.

### MAX_NUM_CLIP_PLANES

Set this keyword to a named variable that upon return will contain an integer that specifies the maximum number of user-defined clipping planes supported by the device.

### MAX_TEXTURE_DIMENSIONS

Set this keyword equal to a named variable. Upon return, MAX_TEXTURE_DIMENSIONS contains a two element integer array that specifies the maximum texture size supported by the device.

### MAX_TEXTURE_IMAGE_UNITS

Set this keyword to a named variable that will contain the number of texture units available to the fragment shader program. This value is zero for devices that do not support shader programs, implemented using the IDLgrShader object.

### MAX_TILE_DIMENSIONS

Set this keyword equal to a named variable. Upon return, MAX_TILE_DIMENSIONS contains a two element integer array that specifies the maximum tile size supported by the device.

### MAX_VERTEX_ATTRIBUTES

Set this keyword to a named variable that will contain the maximum number of positions available for GLSL vertex attribute variables associated with a shader program. Each shader program attribute variable occupies one position, except for GLSL matrix attribute variables of type `mat2`, `mat3`, and `mat4`, which occupy 2, 3, and 4 attribute variable positions, respectively. This value is zero for devices that do not support shader programs, implemented using the IDLgrShader object.

Note: IDL always uses one vertex attribute variable. The value reported by the MAX_VERTEX_ATTRIBUTES property is the number of positions that remain after deducting the variable used by IDL. Thus, if the graphics hardware provides 16 slots for vertex attribute variables, this property will report 15 available slots.

### MAX_VERTEX_TEXTURE_IMAGE_UNITS

Set this keyword to a named variable that will contain the maximum number of texture units available to the vertex shader program. This value is zero for devices that do not support vertex shader texture units.

### MAX_VERTEX_UNIFORM_COMPONENTS

Set this keyword to a named variable that will contain the maximum number of components, or storage units, declared by active uniform variables in a vertex shader program. For example, a uniform variable of GLSL vector type `vec2` uses 2 components. This value is zero for devices that do not support shader programs, implemented using the IDLgrShader object.

### MAX_VIEWPORT_DIMENSIONS

Set this keyword equal to a named variable. Upon return, MAX_VIEWPORT_DIMENSIONS contains a two element integer array that specifies the maximum size of a graphics display supported by the device.

### NAME

Set this keyword equal to a named variable. Upon return, NAME contains the name of the rendering device as a string.

### NUM_CPUS

Set this keyword equal to a named variable. Upon return, NUM_CPUS contains an integer that specifies the number of CPUs that are known to, and available to IDL.

Note: The NUM_CPUS keyword accurately returns the number of CPUs for the SUN and Microsoft Windows platforms. For platforms other than these, the number returned may not reflect the actual number of CPUs available to IDL in the current system.

### SHADING_LANGUAGE_VERSION

Set this keyword to a named variable that will contain a string indicating the version of OpenGL Shading Language (GLSL) supported by the system’s graphic card. The string is of the form:

<version number><space><vendor-specific information>

where the version number is defined as

majorVersionNumber.minorVersionNumber

or

majorVersionNumber.minorVersionNumber.releaseNumber

This value is the empty string for devices that do not support shader programs, implemented using IDLgrShader. For information on the level of support needed by the IDLgrShader object.

### VENDOR

Set this keyword equal to a named variable. Upon return, VENDOR contains the name of the rendering device creator as a string.

### VERSION

Set this keyword equal to a named variable. Upon return, VERSION contains the version of the rendering device driver as a string.

## Version History

5.0 | Introduced
5.6 | Added MAX_NUM_CLIP_PLANES keyword
6.2 | Added MAX_TILE_DIMENSIONS keyword
6.4 | Added FRAMEBUFFER_OBJECT_EXTENSION, MAX_FRAGMENT_UNIFORM_COMPONENTS, MAX_TEXTURE_IMAGE_UNITS, MAX_VERTEX_ATTRIBUTES, MAX_VERTEX_TEXTURE_IMAGE_UNITS, MAX_VERTEX_UNIFORM_COMPONENTS, and SHADING_LANGUAGE_VERSION keywords

## See Also

IDLsysMonitorInfo