Skip to content

Commit

Permalink
Initially populate the merged GL / ES / SC Registry repository from the
Browse files Browse the repository at this point in the history
various API-specific Subversion repositories. Some fine-tuning and
process documentation will follow.
  • Loading branch information
oddhack committed Jan 21, 2017
1 parent 2f2b0f9 commit f37a01b
Show file tree
Hide file tree
Showing 1,071 changed files with 556,947 additions and 2 deletions.
55 changes: 55 additions & 0 deletions .htaccess
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
Options +Indexes

RewriteEngine on

# Avoid redirect loops
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]

# Paths under www.khronos.org/registry/OpenGL are being redirected relative to that path
RewriteBase /registry/OpenGL/

# Periods in filenames are not escaped in the regular expressions below.
# That just means nonexistent URLs will get remapped, too, which is OK.

# GL extension spec redirections
# Redirect specs/<vendor>/<extension> -> extensions/<vendor>/<vendor>_extension
# There are a few cases where the rest of the file was renamed too, not
# dealt with at present.

# Example: specs/EXT/texture.txt -> extensions/EXT/EXT_texture.txt
RewriteRule ^specs/([A-Z0-9]+)/([a-z].*\.txt) extensions/$1/$1_$2 [L,R=301]

# ES spec redirections.

# Redirect specs/#.#/... -> specs/es/#.#/...
# Redirect specs with release number to specs without

# Specs with release numbers
# Example: specs/2.0/es_cm_spec_2.0.23.pdf -> specs/es/2.0/es_cm_spec_2.0.pdf
# Example: specs/3.0/GLSL_ES_Specification_3.00.3.pdf -> specs/es/3.0/GLSL_ES_Specification_3.00.pdf
RewriteRule ^specs/([23].0)/((GLSL|es)_.*[0-9].[0-9]+)(.[0-9]+).pdf specs/es/$1/$2.pdf [L,R=301]

# Specs without release numbers
# Example: specs/3.1/es_spec_3.1.pdf -> specs/es/3.1/es_spec_3.1.pdf
RewriteRule ^specs/([123].[012])/((opengles|GLSL|es).*pdf) specs/es/$1/$2 [L,R=301]

# GL spec redirections
# Redirect doc/... -> specs/gl/...
# Redirect specs with release number to specs without

# GLSL specs with release numbers
# Example: doc/GLSLangSpec.Full.1.10.59.pdf -> specs/GL/GLSLangSpec.1.10.pdf
RewriteRule ^doc/GLSLangSpec(.Full|).([1-4].[1-5]0)(.[0-9]+|)(.withchanges|.clean|).pdf specs/gl/GLSLangSpec.$2.pdf [L,R=301]

# GL specs with release numbers

# Example: doc/glspec20.20041022.pdf -> specs/gl/glspec20.pdf
# Example: doc/glspec31undep.20090324.pdf -> specs/gl/glspec31undep.pdf
RewriteRule ^doc/glspec([23][01])(undep|)\.([0-9]+|).pdf specs/gl/glspec$1$2.pdf [L,R=301]

# Example: doc/glspec43.core.20130214.pdf -> specs/gl/glspec43.core.pdf
RewriteRule ^doc/glspec([34][0-5]).(compatibility|core)(.[0-9]+|).pdf specs/gl/glspec$1.$2.pdf [L,R=301]

# Everything else under doc/
RewriteRule ^doc/(.*) specs/gl/$1 [L,R=301]
85 changes: 85 additions & 0 deletions README.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
= OpenGL-Registry

== OpenGL, OpenGL ES, and OpenGL ES-SC API and Extension Registry

This site contains the API and Extension registries for the OpenGL family
APIs - OpenGL, OpenGL ES, and OpenGL SC. It includes API specifications;
specifications of Khronos- and vendor-approved extensions; header files
corresponding to the specifications; the XML API Registry definining each
API; and related tools and scripts.

If you want to add an extension specification to the Registry, correct an
existing specification, request allocation of enumerants and other
controlled resources in the OpenGL / GLX / WGL namespaces, or otherwise
change the Registry, propose a pull request against the OpenGL-Registry
repository adding the appropriate extension specifications, making changes
to the appropriate XML file, etc. Note that any changes you propose to
reserved values in the registry are not official until your pull request is
*accepted* into the master branch.

Feel free to post issues on the repository if it's unclear how to do
something you need to with extensions, or if you find problems.

=== Defining New Extensions

To create a new extension specification, take these steps:

* Request one or more blocks of unused enumerants for GL, GLX, or WGL
depending on the needs of your extension, by adding the reservation(s) to
the end of xml/gl.xml, glx.xml, and/or wgl.xml.
* Once the pull request modifying the XML files is accepted into master, you
have control of those enumerant blocks.
* Create an extension specification, following the model of existing vendor
specifications under extensions/*vendor*/ .
* Obtain whatever degree of review, implementation, and signoff you need
from affected parties before declaring the extension complete.
* Add the extension specification under extensions/*vendor*/*extension* .
* Modify extensions/registry.py to include the extension, using the next
free GL and/or ES extension numbers (depending on which API the extension
is defined for).
* Add the extension interfaces and enumerant assignments to xml/gl.xml,
glx.xml, and/or wgl.xml following existing examples. Verify that the
relevant extension headers are generated with the correct interfaces.
* Once the pull request adding the extension specification and modifying
registry.py is accepted, your extension is registered.

There are some documents under the docs/ directory describing some of the
processes for making extensions, but they are largely out of date. They may
be updated or removed over time:

* link:doc/rules.html[How to create extensions]
* link:doc/enums.html[Enumerant allocation policies]
* link:doc/template.txt[Extension specification template]
* link:doc/promoting.html[Extension promotion guidelines]
* link:doc/reserved.txt[GLX opcode registry (rarely updated)]
* link:doc/syntaxrules.txt[OpenGL Syntax Rules (updated 2006/12/13)]
* link:doc/GLSLExtensionRules.txt[OpenGL Shading Language Extension Conventions (updated 2006/12/18)]
* link:doc/fog_coord.txt[Extension Specification Example]

=== Repository Contents

* abi - OpenGL ABI for Linux
* api - Header files for all APIs
** api/ES - Headers for OpenGL ES
** api/GL - Headers for OpenGL
** api/SC - Headers for OpenGL SC
* docs - Miscellaneous documentation on creating extensions, mostly out of date.
* extensions - Extension specifications for all APIs
** extensions/registry.py - combined extension registry for all APIs
** extensions/makeindex.py - create HTML extension indices from registry.py
* index_{es,gl,sc}.php - Index files for the website, linking to specifications, headers, and extensions relevant to each API
* specs - API and Shading Language Specifications for all APIs
** specs/es - OpenGL ES Specifications
** specs/gl - OpenGL Specifications
** specs/sc - OpenGL SC Specifications
* xml - XML API Registry and related tools

=== There Sure Is A Lot Of Stuff In Here!

Yes, there sure is. The specs/ directory contains about 125 MB of PDFs
including the latest specs for each version of OpenGL and OpenGL ES. While
this may be somewhat distressing to people who just want to add a single
extension, due to the repository download time, the *primary* purpose of
this repository is to be the backing store for the web registry on
khronos.org. Fortunately git is very efficient, so once you've done the
initial repository clone, updates will be small and quick.
2 changes: 0 additions & 2 deletions README.md

This file was deleted.

32 changes: 32 additions & 0 deletions abi/ext/3dlabs.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
From: Barthold Lichtenbelt <barthold.lichtenbelt 'at' 3dlabs.com>
Date: Wed, 01 Dec 1999 10:32:55 -0700

3Dlabs extension support for:

Permedia3 Create!, Oxygen VX1, Oxygen GVX1, Oxygen GVX210
---------------------------------------------------------

GL_Autodesk_valid_back_buffer_hint *
GL_EXT_bgra
GL_EXT_blend_minmax
GL_EXT_blend_subtract
GL_EXT_paletted_texture
GL_EXT_polygon_offset
GL_EXT_shared_texture_palette
GL_EXT_texture3D
GL_EXT_texture_edge_clamp
GL_EXT_texture_env_add
GL_EXT_texture_env_combine
GL_EXT_texture_object
GL_EXT_vertex_array
GL_KTX_buffer_region *
GL_WIN_swap_hint

* WinNT only. All other ones are for Win9x and WinNT.

OpenGL extensions for Permedia3 Create! and Oxygen VX1 only
-----------------------------------------------------------

GL_ARB_multitexture
GL_Autodesk_facet_normal
GL_SGIS_multitexture
7 changes: 7 additions & 0 deletions abi/ext/compaq.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
From: "Stockwell, Bruce" <Bruce.Stockwell 'at' compaq.com>
Date: Tue, 30 Nov 1999 10:16:29 -0500

PowerStorm 300/350 extension support (Tru64 UNIX and Windows NT):

GL_EXT_texture_object
GL_EXT_vertex_array
49 changes: 49 additions & 0 deletions abi/ext/intergraph.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
From: "Kirkland, Dale L" <dlkirkla 'at' intense3d.com>
Date: Thu, 9 Dec 1999 15:23:34 -0600

Intergraph extension support:

GL_Autodesk_valid_back_buffer_hint
GL_EXT_422_pixels
GL_EXT_bgra
GL_EXT_blend_color
GL_EXT_blend_func_separate
GL_EXT_blend_minmax
GL_EXT_blend_subtract
GL_EXT_color_matrix
GL_EXT_color_subtable
GL_EXT_color_table
GL_EXT_convolution
GL_EXT_convolution_border_modes
GL_EXT_fog_function
GL_EXT_fog_offset
GL_EXT_generate_mipmap
GL_EXT_interlace
GL_EXT_multisample
GL_EXT_occlusion_test
GL_EXT_packed_pixels
GL_EXT_pixel_texture
GL_EXT_rescale_normal
GL_EXT_separate_specular_color
GL_EXT_swap_control
GL_EXT_texture3D
GL_EXT_texture_border_clamp
GL_EXT_texture_color_table
GL_EXT_texture_edge_clamp
GL_EXT_texture_lod
GL_EXT_texture_object
GL_HP_occlusion_test
GL_I3D_color_clamp
GL_I3D_interlace_read
GL_KTX_buffer_region
GL_SGIS_fog_function
GL_SGIS_generate_mipmap
GL_SGIS_multisample
GL_SGIS_texture_border_clamp
GL_SGIX_fog_offset
GL_SGIX_interlace
GL_SGIX_pixel_texture
GL_SGI_color_matrix
GL_SGI_color_table
GL_SGI_texture_color_table
GL_WIN_swap_hint
29 changes: 29 additions & 0 deletions abi/ext/mesa.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
From: Brian Paul <brian_paul 'at' avid.com>
Date: Tue, 14 Sep 1999 16:27:11 -0400

Mesa 3.1 extension support:1

GL_ARB_multitexture
GL_EXT_abgr
GL_EXT_blend_color
GL_EXT_blend_logic_op
GL_EXT_blend_minmax
GL_EXT_blend_subtract
GL_EXT_clip_volume_hint
GL_EXT_compiled_vertex_array
GL_EXT_paletted_texture
GL_EXT_point_parameters
GL_EXT_polygon_offset
GL_EXT_rescale_normal
GL_EXT_shared_texture_palette
GL_EXT_stencil_wrap
GL_EXT_texture3D
GL_EXT_texture_object
GL_EXT_vertex_array
GL_EXT_vertex_array_set
GL_INGR_blend_func_separate
GL_MESA_resize_buffers
GL_MESA_window_pos
GL_NV_texgen_reflection
GL_PGI_misc_hints
GL_SGIS_texture_edge_clamp
77 changes: 77 additions & 0 deletions abi/ext/sgi.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
From: Jon Leech <ljp 'at' sgi.com>
Date: September 10, 1999

Silicon Graphics extension support (various platforms):
IR2 Extreme Impact Indy O2
--- ------- ------ ---- --
GL_EXT_abgr X X X X X
GL_EXT_blend_color X X X X X
GL_EXT_blend_logic_op X X X X X
GL_EXT_blend_minmax X X X X X
GL_EXT_blend_subtract X X X X X
GL_EXT_convolution X X X X X
GL_EXT_copy_texture X X X X X
GL_EXT_histogram X X X X X
GL_EXT_packed_pixels X X X X X
GL_EXT_polygon_offset X X X X X
GL_EXT_subtexture X X X X X
GL_EXT_texture X X X X X
GL_EXT_texture3D X X X X X
GL_EXT_texture_object X X X X X
GL_EXT_vertex_array X X X X X
GL_SGI_color_matrix X X X X X
GL_SGI_color_table X X X X X
GL_SGI_texture_color_table X X X X X
GL_SGIS_detail_texture X X
GL_SGIS_fog_function X
GL_SGIS_multisample X
GL_SGIS_point_line_texgen X
GL_SGIS_point_parameters X
GL_SGIS_sharpen_texture X
GL_SGIS_texture_border_clamp X
GL_SGIS_texture_edge_clamp X X
GL_SGIS_texture_filter4 X X X X
GL_SGIS_texture_lod X X
GL_SGIS_texture_select X X
GL_SGIX_calligraphic_fragment X
GL_SGIX_clipmap X
GL_SGIX_fog_offset X
GL_SGIX_instruments X
GL_SGIX_interlace X X
GL_SGIX_ir_instrument1 X
GL_SGIX_flush_raster X
GL_SGIX_list_priority X
GL_SGIX_pixel_texture X
GL_SGIX_reference_plane X
GL_SGIX_shadow X
GL_SGIX_shadow_ambient X
GL_SGIX_sprite X
GL_SGIX_subdiv_patch X X X
GL_SGIX_texture_add_env X
GL_SGIX_texture_lod_bias X
GL_SGIX_texture_multi_buffer X
GL_SGIX_texture_scale_bias X X X X
GL_SGIX_depth_texture X

GLX_EXT_import_context X X X X X
GLX_EXT_visual_info X X X X X
GLX_EXT_visual_rating X X X X X
GLX_SGI_make_current_read X X X
GLX_SGI_swap_control X X X X X
GLX_SGI_video_sync X X X X X
GLX_SGIS_multisample X
GLX_SGIX_dm_pbuffer X
GLX_SGIX_fbconfig X X X X X
GLX_SGIX_hyperpipe X
GLX_SGIX_pbuffer X X X
GLX_SGIX_swap_barrier X
GLX_SGIX_swap_group X X X X X
GLX_SGIX_video_resize X
GLX_SGIX_video_source X

GLU_EXT_abgr X X X X X
GLU_EXT_nurbs_tessellator X X X X X
GLU_EXT_object_space_tess X X X X X
GLU_EXT_packed_pixels X X X X X
GLU_EXT_texture X X X X X
GLU_SGI_filter4_parameters X X X X X
39 changes: 39 additions & 0 deletions abi/ext/sun_ultra.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
From: Ron Bielaski <Ron.Bielaski 'at' Eng.Sun.COM>
Date: Mon, 13 Sep 1999 07:56:04 -0700 (PDT)

Sun Ultra extension support:

GL_ARB_imaging
GL_EXT_abgr
GL_EXT_blend_color
GL_EXT_blend_logic_op
GL_EXT_blend_minmax
GL_EXT_blend_subtract
GL_EXT_convolution
GL_EXT_histogram
GL_EXT_multi_draw_arrays
GL_EXT_pixel_transform
GL_EXT_polygon_offset
GL_EXT_rescale_normal
GL_EXT_texture3D
GL_HP_convolution_border_modes
GL_HP_occlusion_test
GL_SGI_color_table
GL_SGI_texture_color_table
GL_SUNX_constant_data
GL_SUNX_geometry_compression
GL_SUNX_surface_hint
GL_SUN_convolution_border_modes
GL_SUN_global_alpha
GL_SUN_multi_draw_arrays
GL_SUN_triangle_list
GL_SUN_vertex

GLX_SGIX_fbconfig
GLX_SGIX_pbuffer
GLX_SGI_make_current_read
GLX_SUN_get_transparent_index
GLX_SUN_init_threads

GLU_EXT_nurbs_tessellator
GLU_EXT_object_space_tess
Loading

0 comments on commit f37a01b

Please sign in to comment.