15bd8deadSopenharmony_ciXXX - Not complete yet!!!
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ciName
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ci    SGIX_clipmap
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ciName Strings
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ci    GL_SGIX_clipmap
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ciVersion
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ci    $Date: 1996/06/12 17:19:43 $ $Revision: 1.9 $
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ciNumber
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ci    33
185bd8deadSopenharmony_ci
195bd8deadSopenharmony_ciDependencies
205bd8deadSopenharmony_ci
215bd8deadSopenharmony_ci    EXT_texture is required
225bd8deadSopenharmony_ci    EXT_texture_object affects the definition of this extension
235bd8deadSopenharmony_ci    SGIS_texture_lod affects the definition of this extension
245bd8deadSopenharmony_ci    SGI_detail_texture affects the definition of this extension
255bd8deadSopenharmony_ci    SGI_sharpen_texture affects the definition of this extension
265bd8deadSopenharmony_ci
275bd8deadSopenharmony_ciOverview
285bd8deadSopenharmony_ci
295bd8deadSopenharmony_ci    Mipmaps provide a general but expensive solution when the texture image
305bd8deadSopenharmony_ci    is very large.  This extension defines clipmaps, which occupy a small
315bd8deadSopenharmony_ci    subset of the memory required by equivalent mipmaps, but provide much
325bd8deadSopenharmony_ci    of the mipmap rendering capabilities.  Clipmaps are especially useful
335bd8deadSopenharmony_ci    for rendering terrain.
345bd8deadSopenharmony_ci
355bd8deadSopenharmony_ciIssues
365bd8deadSopenharmony_ci
375bd8deadSopenharmony_ci    *   Is lod clamping treated properly if we have no texel data?
385bd8deadSopenharmony_ci    *   Should we always have to specify a virtual depth?
395bd8deadSopenharmony_ci
405bd8deadSopenharmony_ciNew Procedures and Functions
415bd8deadSopenharmony_ci
425bd8deadSopenharmony_ci    None
435bd8deadSopenharmony_ci
445bd8deadSopenharmony_ciNew Tokens
455bd8deadSopenharmony_ci
465bd8deadSopenharmony_ci    Accepted by the <param> parameter of TexParameteri and TexParameterf,
475bd8deadSopenharmony_ci    and by the <params> parameter of TexParameteriv and TexParameterfv,
485bd8deadSopenharmony_ci    when their <pname> parameter is TEXTURE_MIN_FILTER:
495bd8deadSopenharmony_ci
505bd8deadSopenharmony_ci	LINEAR_CLIPMAP_LINEAR_SGIX
515bd8deadSopenharmony_ci
525bd8deadSopenharmony_ci    Accepted by the <pname> parameter of TexParameteri, TexParameterf,
535bd8deadSopenharmony_ci    TexParameteriv, TexParameterfv, GetTexParameteriv, and GetTexParameterfv:
545bd8deadSopenharmony_ci
555bd8deadSopenharmony_ci	TEXTURE_CLIPMAP_FRAME_SGIX
565bd8deadSopenharmony_ci
575bd8deadSopenharmony_ci    Accepted by the <pname> parameter of TexParameteriv, TexParameterfv,
585bd8deadSopenharmony_ci    GetTexParameteriv, and GetTexParameterfv:
595bd8deadSopenharmony_ci
605bd8deadSopenharmony_ci	TEXTURE_CLIPMAP_CENTER_SGIX
615bd8deadSopenharmony_ci	TEXTURE_CLIPMAP_OFFSET_SGIX
625bd8deadSopenharmony_ci	TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX
635bd8deadSopenharmony_ci
645bd8deadSopenharmony_ci    Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
655bd8deadSopenharmony_ci    GetFloatv, and GetDoublev:
665bd8deadSopenharmony_ci
675bd8deadSopenharmony_ci	MAX_CLIPMAP_DEPTH_SGIX
685bd8deadSopenharmony_ci	MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX
695bd8deadSopenharmony_ci
705bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.0 Specification (OpenGL Operation)
715bd8deadSopenharmony_ci
725bd8deadSopenharmony_ci    None
735bd8deadSopenharmony_ci
745bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.0 Specification (Rasterization)
755bd8deadSopenharmony_ci
765bd8deadSopenharmony_ci    GL Specification Table 3.7 is updated as follows:
775bd8deadSopenharmony_ci
785bd8deadSopenharmony_ci	Name				Type	    Legal Values
795bd8deadSopenharmony_ci	----				----	    ------------
805bd8deadSopenharmony_ci	TEXTURE_WRAP_S			integer	    CLAMP, REPEAT
815bd8deadSopenharmony_ci	TEXTURE_WRAP_T			integer	    CLAMP, REPEAT
825bd8deadSopenharmony_ci	TEXTURE_WRAP_R_EXT		integer	    CLAMP, REPEAT
835bd8deadSopenharmony_ci	TEXTURE_MIN_FILTER		integer	    NEAREST, LINEAR,
845bd8deadSopenharmony_ci						    NEAREST_MIPMAP_NEAREST,
855bd8deadSopenharmony_ci						    NEAREST_MIPMAP_LINEAR,
865bd8deadSopenharmony_ci						    LINEAR_MIPMAP_NEAREST,
875bd8deadSopenharmony_ci						    LINEAR_MIPMAP_LINEAR,
885bd8deadSopenharmony_ci						    FILTER4_SGIS,
895bd8deadSopenharmony_ci						    LINEAR_CLIPMAP_LINEAR_SGIX
905bd8deadSopenharmony_ci	TEXTURE_MAG_FILTER		integer	    NEAREST, LINEAR,
915bd8deadSopenharmony_ci						    FILTER4_SGIS,
925bd8deadSopenharmony_ci						    LINEAR_DETAIL_SGIS,
935bd8deadSopenharmony_ci						    LINEAR_DETAIL_ALPHA_SGIS,
945bd8deadSopenharmony_ci						    LINEAR_DETAIL_COLOR_SGIS,
955bd8deadSopenharmony_ci						    LINEAR_SHARPEN_SGIS,
965bd8deadSopenharmony_ci						    LINEAR_SHARPEN_ALPHA_SGIS,
975bd8deadSopenharmony_ci						    LINEAR_SHARPEN_COLOR_SGIS
985bd8deadSopenharmony_ci	TEXTURE_BORDER_COLOR		4 floats    any 4 values in [0,1]
995bd8deadSopenharmony_ci	DETAIL_TEXTURE_LEVEL_SGIS	integer	    any non-negative integer
1005bd8deadSopenharmony_ci	DETAIL_TEXTURE_MODE_SGIS	integer	    ADD, MODULATE
1015bd8deadSopenharmony_ci	TEXTURE_MIN_LOD_SGIS		float	    any value
1025bd8deadSopenharmony_ci	TEXTURE_MAX_LOD_SGIS		float	    any value
1035bd8deadSopenharmony_ci	TEXTURE_BASE_LEVEL_SGIS		integer	    any non-negative integer
1045bd8deadSopenharmony_ci	TEXTURE_MAX_LEVEL_SGIS		integer	    any non-negative integer
1055bd8deadSopenharmony_ci	GENERATE_MIPMAP_SGIS		boolean	    TRUE or FALSE
1065bd8deadSopenharmony_ci	TEXTURE_CLIPMAP_FRAME_SGIX	float       any non-negative value
1075bd8deadSopenharmony_ci	TEXTURE_CLIPMAP_CENTER_SGIX	2 integers  any 2 non-negative integers
1085bd8deadSopenharmony_ci	TEXTURE_CLIPMAP_OFFSET_SGIX	2 integers  any 2 non-negative integers
1095bd8deadSopenharmony_ci	TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 3 integers  any 3 non-negative integers
1105bd8deadSopenharmony_ci
1115bd8deadSopenharmony_ci	Table 3.7: Texture parameters and their values.
1125bd8deadSopenharmony_ci
1135bd8deadSopenharmony_ci    Notes:
1145bd8deadSopenharmony_ci
1155bd8deadSopenharmony_ci    *   Clipmap filtering is supported only for 2D, borderless textures.
1165bd8deadSopenharmony_ci
1175bd8deadSopenharmony_ci    *   Clipmap filtering is performed when the texture minification filter
1185bd8deadSopenharmony_ci	is LINEAR_CLIPMAP_LINEAR_SGIX.  We could define other clipmap
1195bd8deadSopenharmony_ci	filters with NEAREST sampling, but it probably isn't worth the
1205bd8deadSopenharmony_ci	trouble.
1215bd8deadSopenharmony_ci	
1225bd8deadSopenharmony_ci    *	Clipmap filtering is supported with all magnification filters
1235bd8deadSopenharmony_ci	except FILTER4_SGIS.  Detail and sharpen filtering are performed
1245bd8deadSopenharmony_ci	only when the texture data are supplied by the level 0 image.
1255bd8deadSopenharmony_ci
1265bd8deadSopenharmony_ci    *   A clipmap virtualizes a mipmap by holding, at any given time, only a
1275bd8deadSopenharmony_ci	portion of a full mipmap pyramid.  A clipmap is complete only if
1285bd8deadSopenharmony_ci	levels 0 through B have the same dimension, levels B through N form
1295bd8deadSopenharmony_ci	the base of a valid mipmap, all image dimensions are a power of 2,
1305bd8deadSopenharmony_ci	and N is less than MAX_CLIPMAP_DEPTH_SGIX.
1315bd8deadSopenharmony_ci
1325bd8deadSopenharmony_ci	Each image level P, where P ranges from B through N, is treated as
1335bd8deadSopenharmony_ci	though it contains the full image from the same level of the complete
1345bd8deadSopenharmony_ci	(N+1) level mipmap.
1355bd8deadSopenharmony_ci
1365bd8deadSopenharmony_ci	Each image level P, where P ranges from 0 through B-1, is treated as
1375bd8deadSopenharmony_ci	though it contains a subimage from the same level of the complete
1385bd8deadSopenharmony_ci	(N+1) level mipmap.  This subimage is centered at texel coordinates
1395bd8deadSopenharmony_ci
1405bd8deadSopenharmony_ci                S = (Scenter >> P)
1415bd8deadSopenharmony_ci                T = (Tcenter >> P)
1425bd8deadSopenharmony_ci
1435bd8deadSopenharmony_ci	where Scenter and Tcenter are specified by the application.
1445bd8deadSopenharmony_ci
1455bd8deadSopenharmony_ci	For instance, if the width of the clipmap is W=8, N=12, and Scenter=
1465bd8deadSopenharmony_ci	2048, the clipmap will contain the data given by 0's in the S-edge
1475bd8deadSopenharmony_ci	view below:
1485bd8deadSopenharmony_ci
1495bd8deadSopenharmony_ci  0 .********************************00000000********************************.
1505bd8deadSopenharmony_ci  1 .********************************00000000********************************.
1515bd8deadSopenharmony_ci  2 .********************************00000000********************************.
1525bd8deadSopenharmony_ci  3 .********************************00000000********************************.
1535bd8deadSopenharmony_ci  4 .********************************00000000********************************.
1545bd8deadSopenharmony_ci  5 .********************************00000000********************************.
1555bd8deadSopenharmony_ci  6      ****************************00000000****************************
1565bd8deadSopenharmony_ci  7                      ************00000000************
1575bd8deadSopenharmony_ci  8                              ****00000000****
1585bd8deadSopenharmony_ciB=9                                  00000000
1595bd8deadSopenharmony_ci  10                                   0000
1605bd8deadSopenharmony_ci  11                                    00
1615bd8deadSopenharmony_ciN=12                                    0
1625bd8deadSopenharmony_ci
1635bd8deadSopenharmony_ci	Likewise, if Scenter=2016 (32 less than above):
1645bd8deadSopenharmony_ci
1655bd8deadSopenharmony_ci  0 .00000000****************************************************************.
1665bd8deadSopenharmony_ci  1 .****************00000000************************************************.
1675bd8deadSopenharmony_ci  2 .************************00000000****************************************.
1685bd8deadSopenharmony_ci  3 .****************************00000000************************************.
1695bd8deadSopenharmony_ci  4 .******************************00000000**********************************.
1705bd8deadSopenharmony_ci  5 .*******************************00000000*********************************.
1715bd8deadSopenharmony_ci  6      ****************************00000000*****************************
1725bd8deadSopenharmony_ci  7                      ************00000000************
1735bd8deadSopenharmony_ci  8                              ****00000000****
1745bd8deadSopenharmony_ci  9                                  00000000
1755bd8deadSopenharmony_ci  10                                   0000
1765bd8deadSopenharmony_ci  11                                    00
1775bd8deadSopenharmony_ciN=12                                    0
1785bd8deadSopenharmony_ci
1795bd8deadSopenharmony_ci    *   Scenter and Tcenter are specified by the application by calling
1805bd8deadSopenharmony_ci	TexParameteriv or TexParameterfv with <target> set to TEXTURE_2D,
1815bd8deadSopenharmony_ci	<pname> set to <TEXTURE_CLIPMAP_CENTER_SGIX>, and <params> pointing
1825bd8deadSopenharmony_ci	to a vector whose first component is Scenter and whose second
1835bd8deadSopenharmony_ci	component is Tcenter.  The center can be changed at any time.
1845bd8deadSopenharmony_ci
1855bd8deadSopenharmony_ci    *	The clipped levels (i.e. those levels P, where P<B) of the map can
1865bd8deadSopenharmony_ci	be framed with a region of texels guaranteed not to be displayed.
1875bd8deadSopenharmony_ci	The frames allow for paging of new texture data into a non-active
1885bd8deadSopenharmony_ci	portion of texture memory, enabling efficient roaming throughout the
1895bd8deadSopenharmony_ci	larger virtual mipmap.  The frames for all of the clipped levels are
1905bd8deadSopenharmony_ci	the same width and are measured as a fraction of the width of the
1915bd8deadSopenharmony_ci	clipped levels.  Specifically,
1925bd8deadSopenharmony_ci
1935bd8deadSopenharmony_ci		width of frame in texels = Cframe * W / 2
1945bd8deadSopenharmony_ci
1955bd8deadSopenharmony_ci	The floating point value Cframe can take on values from 0.0 to 1.0
1965bd8deadSopenharmony_ci	and is specified by the application.
1975bd8deadSopenharmony_ci
1985bd8deadSopenharmony_ci	Cframe is a non-negative fraction of half the level width specified
1995bd8deadSopenharmony_ci	by calling TexParameterf or TexParameterfv with <target> set to
2005bd8deadSopenharmony_ci	TEXTURE_2D, <pname> set to <TEXTURE_CLIPMAP_FRAME_SGIX>, and <param>
2015bd8deadSopenharmony_ci	set to Cframe or <params> pointing to Cframe.  Cframe is clamped to
2025bd8deadSopenharmony_ci	the range [0,1].  The frame width can be changed at any time.
2035bd8deadSopenharmony_ci
2045bd8deadSopenharmony_ci    *	During filtering a level of detail is determined just as it would be
2055bd8deadSopenharmony_ci	for the equivalent (N+1) level mipmap.  If the level of detail falls
2065bd8deadSopenharmony_ci	into the clipped portion of the clipmap and the required texels are
2075bd8deadSopenharmony_ci	not available within the framed region of the two closest image
2085bd8deadSopenharmony_ci	levels, the level of detail is increased to the nearest image level
2095bd8deadSopenharmony_ci	that does include the required texels.  The values of TEXTURE_WRAP_S
2105bd8deadSopenharmony_ci	and TEXTURE_WRAP_T have no effect during clipmap minification.
2115bd8deadSopenharmony_ci
2125bd8deadSopenharmony_ci	If SGIS_texture_lod is supported, the level of detail is clamped to
2135bd8deadSopenharmony_ci	the range defined by TEXTURE_MIN_LOD_SGIS, TEXTURE_MAX_LOD_SGIS,
2145bd8deadSopenharmony_ci	TEXTURE_BASE_LEVEL_SGIS, and TEXTURE_MAX_LEVEL_SGIS.  (Issue:  what
2155bd8deadSopenharmony_ci	if texels do not exist on the level given by max_lod?)
2165bd8deadSopenharmony_ci
2175bd8deadSopenharmony_ci    *	As the center moves, only texels along the edges of the clipmap levels
2185bd8deadSopenharmony_ci	change.  To allow for incremental loading only of these texels via
2195bd8deadSopenharmony_ci	TexSubImage2DEXT, torroidal offset values are added to the texture
2205bd8deadSopenharmony_ci	addresses of each level.  For the Pth level where P ranges from 0 to
2215bd8deadSopenharmony_ci	B-1, these offsets are
2225bd8deadSopenharmony_ci
2235bd8deadSopenharmony_ci		Soffsetp = (Soffset >> P)
2245bd8deadSopenharmony_ci		Toffsetp = (Toffset >> P)
2255bd8deadSopenharmony_ci
2265bd8deadSopenharmony_ci	where Soffset and Toffset are specified by the application.  Note that
2275bd8deadSopenharmony_ci	Soffset and Toffset for the top level defines the offsets for
2285bd8deadSopenharmony_ci	subsequent levels by a simple shift just as with the center. 
2295bd8deadSopenharmony_ci
2305bd8deadSopenharmony_ci	Soffset and Toffset are specified by calling TexParameteriv or
2315bd8deadSopenharmony_ci	TexParameterfv with <target> set to TEXTURE_2D, <pname> set to
2325bd8deadSopenharmony_ci	<TEXTURE_CLIPMAP_OFFSET_SGIX>, and <params> pointing to a vector
2335bd8deadSopenharmony_ci	whose first component is Soffset and whose second component is
2345bd8deadSopenharmony_ci	Toffset.  The offset can be changed at any time.
2355bd8deadSopenharmony_ci
2365bd8deadSopenharmony_ci    *   To index into a clipmap of greater than MAX_CLIPMAP_DEPTH_SGIX levels
2375bd8deadSopenharmony_ci	of detail, additional parameters are provided to restrictively index
2385bd8deadSopenharmony_ci	a smaller clipmap of (N+1) levels located wholly within a complete,
2395bd8deadSopenharmony_ci	larger clipmap.  The larger clipmap is complete only if levels 0
2405bd8deadSopenharmony_ci	through B have the same dimension, levels B through V form the base
2415bd8deadSopenharmony_ci	of a valid mipmap, all image dimensions are a power of 2, and V is
2425bd8deadSopenharmony_ci	less than MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX.  These constraints are
2435bd8deadSopenharmony_ci	precisely those given above with the exception of the depth, V, being
2445bd8deadSopenharmony_ci	allowed to range up to MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX.
2455bd8deadSopenharmony_ci
2465bd8deadSopenharmony_ci        The second, smaller clipmap has a base level located at level D of
2475bd8deadSopenharmony_ci	the larger clipmap and has a depth of N.  Both parameters D and N are
2485bd8deadSopenharmony_ci	specified by the application.  The smaller clipmap is valid only if D
2495bd8deadSopenharmony_ci	is between 0 and V, (D+N) is less than or equal to V, and D is less
2505bd8deadSopenharmony_ci	than MAX_CLIPMAP_DEPTH_SGIX.
2515bd8deadSopenharmony_ci
2525bd8deadSopenharmony_ci	Scenter, Tcenter, Soffset, and Toffset are still relative the level
2535bd8deadSopenharmony_ci	0, the base level of the larger, virtual mipmap, as are the minimum
2545bd8deadSopenharmony_ci	and maximum levels of detail specified in the SGIS_texture_lod
2555bd8deadSopenharmony_ci	extension.
2565bd8deadSopenharmony_ci
2575bd8deadSopenharmony_ci	For D=2, N=5, V=12, and Scenter=2048, the valid texels are given by
2585bd8deadSopenharmony_ci	the x's in the diagram below.
2595bd8deadSopenharmony_ci
2605bd8deadSopenharmony_ci  0 ...******************************00000000******************************...
2615bd8deadSopenharmony_ci  1 ...******************************00000000******************************...
2625bd8deadSopenharmony_ciD=2 ...******************************xxxxxxxx******************************...
2635bd8deadSopenharmony_ci  3 ...******************************xxxxxxxx******************************...
2645bd8deadSopenharmony_ci  4 ...******************************xxxxxxxx******************************...
2655bd8deadSopenharmony_ci  5 ...******************************00xxxx00******************************...
2665bd8deadSopenharmony_ci  6      ****************************000xx000****************************
2675bd8deadSopenharmony_ciD+N=7                    ************000x0000************
2685bd8deadSopenharmony_ci  8                              ****00000000****
2695bd8deadSopenharmony_ci  9                                  00000000
2705bd8deadSopenharmony_ci  10                                   0000
2715bd8deadSopenharmony_ci  11                                    00
2725bd8deadSopenharmony_ciV=12                                    0
2735bd8deadSopenharmony_ci
2745bd8deadSopenharmony_ci	Likewise, if Scenter=2016 (32 less than above):
2755bd8deadSopenharmony_ci
2765bd8deadSopenharmony_ci  0 .00000000**************************************************************...
2775bd8deadSopenharmony_ci  1 .****************00000000**********************************************...
2785bd8deadSopenharmony_ciD=2 ...**********************xxxxxxxx**************************************...
2795bd8deadSopenharmony_ci  3 ...**************************xxxxxxxx**********************************...
2805bd8deadSopenharmony_ci  4 ...****************************xxxxxxxx********************************...
2815bd8deadSopenharmony_ci  5 ...*****************************00xxxx00*******************************...
2825bd8deadSopenharmony_ci  6      ****************************000xx000******************************
2835bd8deadSopenharmony_ciD+N=7                    ************000x0000************
2845bd8deadSopenharmony_ci  8                              ****00000000****
2855bd8deadSopenharmony_ci  9                                  00000000
2865bd8deadSopenharmony_ci  10                                   0000
2875bd8deadSopenharmony_ci  11                                    00
2885bd8deadSopenharmony_ciV=12                                    0
2895bd8deadSopenharmony_ci
2905bd8deadSopenharmony_ci	Texel address and level of detail generation proceed with the smaller
2915bd8deadSopenharmony_ci	clipmap precisely as described above for the original clipmap.  If
2925bd8deadSopenharmony_ci	the level of detail is such that a level below D would be indexed,
2935bd8deadSopenharmony_ci	texture magnification is performed even though the finer texture
2945bd8deadSopenharmony_ci	information may be present in texture memory.  Likewise, levels of
2955bd8deadSopenharmony_ci	detail coarser than D+N may demonstrate aliasing.  The onus is on the
2965bd8deadSopenharmony_ci	application to choose parameters D and N to prevent unwanted
2975bd8deadSopenharmony_ci	filtering operations.
2985bd8deadSopenharmony_ci
2995bd8deadSopenharmony_ci	The finest level of the clipmap, D, the depth of the clipmap, N+1, and
3005bd8deadSopenharmony_ci	the depth of the virtual clipmap, V+1, are specified by calling
3015bd8deadSopenharmony_ci	TexParameteriv, or TexParameterfv with <target> set to TEXTURE_2D,
3025bd8deadSopenharmony_ci	<pname> set to <TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX>, and <params> set
3035bd8deadSopenharmony_ci	to (D,N+1,V+1).  These parameters can be changed at any time.
3045bd8deadSopenharmony_ci
3055bd8deadSopenharmony_ci	If the depth of the virtual clipmap is zero, clipmap virtualization
3065bd8deadSopenharmony_ci	is ignored, and texturing proceeds as with a non-virtual clipmap.
3075bd8deadSopenharmony_ci
3085bd8deadSopenharmony_ci    *	Special Case:
3095bd8deadSopenharmony_ci	TEXTURE_CLIPMAP_LOD_OFFSET_SGIX is ignored
3105bd8deadSopenharmony_ci	TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX === TEXTURE_CLIPMAP_DEPTH_SGIX
3115bd8deadSopenharmony_ci
3125bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations
3135bd8deadSopenharmony_ciand the Frame Buffer)
3145bd8deadSopenharmony_ci
3155bd8deadSopenharmony_ci    None
3165bd8deadSopenharmony_ci
3175bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.0 Specification (Special Functions)
3185bd8deadSopenharmony_ci
3195bd8deadSopenharmony_ci    None
3205bd8deadSopenharmony_ci
3215bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.0 Specification (State and State Requests)
3225bd8deadSopenharmony_ci
3235bd8deadSopenharmony_ci    None
3245bd8deadSopenharmony_ci
3255bd8deadSopenharmony_ciAdditions to the GLX Specification
3265bd8deadSopenharmony_ci
3275bd8deadSopenharmony_ci    None
3285bd8deadSopenharmony_ci
3295bd8deadSopenharmony_ciDependencies on EXT_texture
3305bd8deadSopenharmony_ci
3315bd8deadSopenharmony_ci    EXT_texture is required
3325bd8deadSopenharmony_ci
3335bd8deadSopenharmony_ciDependencies on EXT_texture_object
3345bd8deadSopenharmony_ci
3355bd8deadSopenharmony_ci    If EXT_texture_object is implemented, the state values named
3365bd8deadSopenharmony_ci
3375bd8deadSopenharmony_ci	TEXTURE_CLIPMAP_FRAME_SGIX
3385bd8deadSopenharmony_ci	TEXTURE_CLIPMAP_CENTER_SGIX
3395bd8deadSopenharmony_ci	TEXTURE_CLIPMAP_OFFSET_SGIX
3405bd8deadSopenharmony_ci	TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX
3415bd8deadSopenharmony_ci
3425bd8deadSopenharmony_ci    are added to the state vector of each texture object. When an attribute
3435bd8deadSopenharmony_ci    set that includes texture information is popped, the bindings and
3445bd8deadSopenharmony_ci    enables are first restored to their pushed values, then the bound
3455bd8deadSopenharmony_ci    textures have their TEXTURE_CLIPMAP_FRAME_SGIX,
3465bd8deadSopenharmony_ci    TEXTURE_CLIPMAP_CENTER_SGIX, TEXTURE_CLIPMAP_OFFSET_SGIX, and
3475bd8deadSopenharmony_ci    TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX parameters restored to their pushed
3485bd8deadSopenharmony_ci    values.
3495bd8deadSopenharmony_ci
3505bd8deadSopenharmony_ciDependencies on SGIS_texture_lod
3515bd8deadSopenharmony_ci
3525bd8deadSopenharmony_ci    If SGIS_texture_lod is not supported, references to user-defined lod
3535bd8deadSopenharmony_ci    clamping and ranges in this document are invalid and should be ignored.
3545bd8deadSopenharmony_ci
3555bd8deadSopenharmony_ciDependencies on SGIS_detail_texture
3565bd8deadSopenharmony_ci
3575bd8deadSopenharmony_ci    If SGIS_detail_texture is not supported, references to detail texture
3585bd8deadSopenharmony_ci    mapping in this document are invalid and should be ignored.
3595bd8deadSopenharmony_ci
3605bd8deadSopenharmony_ciDependencies on SGIS_sharpen_texture
3615bd8deadSopenharmony_ci
3625bd8deadSopenharmony_ci    If SGIS_sharpen_texture is not supported, references to sharpen texture
3635bd8deadSopenharmony_ci    mapping in this document are invalid and should be ignored.
3645bd8deadSopenharmony_ci
3655bd8deadSopenharmony_ciErrors
3665bd8deadSopenharmony_ci
3675bd8deadSopenharmony_ci    INVALID_VALUE is generated if TexParameteriv, TexParameterfv,
3685bd8deadSopenharmony_ci    parameter <pname> is TEXTURE_CLIPMAP_CENTER_SGIX, and either of the two
3695bd8deadSopenharmony_ci    parameters <params> points to are negative.
3705bd8deadSopenharmony_ci
3715bd8deadSopenharmony_ci    INVALID_VALUE is generated if TexParameteriv, TexParameterfv,
3725bd8deadSopenharmony_ci    parameter <pname> is TEXTURE_CLIPMAP_OFFSET_SGIX, and either of the two
3735bd8deadSopenharmony_ci    parameters <params> points to are negative.
3745bd8deadSopenharmony_ci
3755bd8deadSopenharmony_ci    INVALID_VALUE is generated if TexParameteriv, TexParameterfv,
3765bd8deadSopenharmony_ci    parameter <pname> is TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX, and any of the
3775bd8deadSopenharmony_ci    three parameters <params> points to are negative.
3785bd8deadSopenharmony_ci
3795bd8deadSopenharmony_ci    INVALID_VALUE is generated if TexParameteriv, TexParameterfv,
3805bd8deadSopenharmony_ci    parameter <pname> is TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX, and the sum of
3815bd8deadSopenharmony_ci    the clipmap level of detail offset and the clipmap depth is greater than
3825bd8deadSopenharmony_ci    the virtual clipmap depth.
3835bd8deadSopenharmony_ci
3845bd8deadSopenharmony_ciNew State
3855bd8deadSopenharmony_ci
3865bd8deadSopenharmony_ci							     Initial
3875bd8deadSopenharmony_ci    Get Value			 Get Command	    Type     Value	Attrib
3885bd8deadSopenharmony_ci    ---------			 -----------	    ----     -------	------
3895bd8deadSopenharmony_ci    TEXTURE_CLIPMAP_FRAME_SGIX   GetTexParameterf  Z+   0		texture
3905bd8deadSopenharmony_ci    TEXTURE_CLIPMAP_CENTER_SGIX	 GetTexParameterfv  2 x Z+   0,0	texture
3915bd8deadSopenharmony_ci    TEXTURE_CLIPMAP_OFFSET_SGIX	 GetTexParameterfv  2 x Z+   0,0	texture
3925bd8deadSopenharmony_ci    TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX GetTexParameterfv 3 x Z+   0,0,0	texture
3935bd8deadSopenharmony_ci
3945bd8deadSopenharmony_ci
3955bd8deadSopenharmony_ciNew Implementation Dependent State
3965bd8deadSopenharmony_ci
3975bd8deadSopenharmony_ci									Minimum
3985bd8deadSopenharmony_ci    Get Value				Get Command	Type		Value
3995bd8deadSopenharmony_ci    ---------				-----------	----		-------
4005bd8deadSopenharmony_ci    MAX_CLIPMAP_DEPTH_SGIX		GetIntegerv	Z+		10
4015bd8deadSopenharmony_ci    MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX	GetIntegerv	Z+		10
402