Legacy OpenGL Functionality by Version

OpenGL functionality changes with each version of the OpenGL API. This appendix describes the functionality that was added with each version. See the official OpenGL specification for detailed information.

The functionality for each version is guaranteed to be available through the OpenGL API even if a particular renderer does not support all of the extensions in a version. For example, a renderer that claims to support OpenGL 1.3 might not export the GL_ARB_texture_env_combine or GL_EXT_texture_env_combine extensions. It's important that you query both the renderer version and extension string to make sure that the renderer supports any functionality that you want to use.

In the following tables, the extensions describe the feature that the core functionality is based on. The core functionality might not be the same as the extension. For example, compare the core texture crossbar functionality with the extension that it's based on.

Version 1.1

Table A-1  Functionality added in OpenGL 1.1

Functionality

Extension

Copy texture and subtexture

GL_EXT_copy_texture and GL_EXT_subtexture

Logical operation

GL_EXT_blend_logic_op

Polygon offset

GL_EXT_polygon_offset

Texture image formats

GL_EXT_texture

Texture objects

GL_EXT_texture_object

Texture proxies

GL_EXT_texture

Texture replace environment

GL_EXT_texture

Vertex array

GL_EXT_vertex_array

There were a number of other minor changes outlined in Appendix C section 9 of the OpenGL specification. See http://www.opengl.org.

Version 1.2

Table A-2  Functionality added in OpenGL 1.2

Functionality

Extension

BGRA pixel formats

GL_EXT_bgra

Imaging subset (optional)

GL_SGI_color_table , GL_EXT_color_subtable, GL_EXT_convolution, GL_HP_convolution_border_modes, GL_SGI_color_matrix, GL_EXT_histogram, GL_EXT_blend_minmax, and GL_EXT_blend_subtract

Normal rescaling

GL_EXT_rescale_normal

Packed pixel formats

GL_EXT_packed_pixels

Separate specular color

GL_EXT_separate_specular_color

Texture coordinate edge clamping

GL_SGIS_texture_edge_clamp

Texture level of detail control

GL_SGIS_texture_lod

Three-dimensional texturing

GL_EXT_texture3D

Vertex array draw element range

GL_EXT_draw_range_elements

OpenGL 1.2.1 introduced ARB extensions with no specific core API changes.

Version 1.3

Table A-3  Functionality added in OpenGL 1.3

Functionality

Extension

Compressed textures

GL_ARB_texture_compression

Cube map textures

GL_ARB_texture_cube_map

Multisample

GL_ARB_multisample

Multitexture

GL_ARB_multitexture

Texture add environment mode

GL_ARB_texture_env_add

Texture border clamp

GL_ARB_texture_border_clamp

Texture combine environment mode

GL_ARB_texture_env_combine

Texture dot3 environment mode

GL_ARB_texture_env_dot3

Transpose matrix

GL_ARB_transpose_matrix

Version 1.4

Table A-4  Functionality added in OpenGL 1.4

Functionality

Extension

Automatic mipmap generation

GL_SGIS_generate_mipmap

Blend function separate

GL_ARB_blend_func_separate

Blend squaring

GL_NV_blend_square

Depth textures

GL_ARB_depth_texture

Fog coordinate

GL_EXT_fog_coord

Multiple draw arrays

GL_EXT_multi_draw_arrays

Point parameters

GL_ARB_point_parameters

Secondary color

GL_EXT_secondary_color

Separate blend functions

GL_EXT_blend_func_separate, GL_EXT_blend_color

Shadows

GL_ARB_shadow

Stencil wrap

GL_EXT_stencil_wrap

Texture crossbar environment mode

GL_ARB_texture_env_crossbar

Texture level of detail bias

GL_EXT_texture_lod_bias

Texture mirrored repeat

GL_ARB_texture_mirrored_repeat

Window raster position

GL_ARB_window_pos

Version 1.5

Table A-5  Functionality added in OpenGL 1.5

Functionality

Extension

Buffer objects

GL_ARB_vertex_buffer_object

Occlusion queries

GL_ARB_occlusion_query

Shadow functions

GL_EXT_shadow_funcs

Version 2.0

Table A-6  Functionality added in OpenGL 2.0

Functionality

Extension

Multiple render targets

GL_ARB_draw_buffers

Non–power-of-two textures

GL_ARB_texture_non_power_of_two

Point sprites

GL_ARB_point_sprite

Separate blend equation

GL_EXT_blend_equation_separate

Separate stencil

GL_ATI_separate_stencil

GL_EXT_stencil_two_side

Shading language

GL_ARB_shading_language_100

Shader objects

GL_ARB_shader_objects

Shader programs

GL_ARB_fragment_shader

GL_ARB_vertex_shader

Version 2.1

Table A-7  Functionality added in OpenGL 2.1

Functionality

Extension

Pixel buffer objects

GL_ARB_pixel_buffer_object

sRGB textures

GL_EXT_texture_sRGB