15bd8deadSopenharmony_ciXXX - Incomplete
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ciName
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ci    EXT_multiple_textures
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ciName Strings
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ci    GL_EXT_multiple_textures
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ciNumber
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ci    ???
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ciBasic approach:
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ciInitially I started out adding enumerants and functions everywhere to
185bd8deadSopenharmony_ciadd the concept of multiple current textures to the OpenGL API.  This
195bd8deadSopenharmony_ciquickly became unwieldy because the number of functions affected is very
205bd8deadSopenharmony_cilarge and the number of enumerants needed for texture control, queries,
215bd8deadSopenharmony_citexgen, evaluators, vertex arrays, etc. soared into the hundreds.
225bd8deadSopenharmony_ci
235bd8deadSopenharmony_ciRather than try to change a fundamental assumption of the API, I decided
245bd8deadSopenharmony_cito keep the notion of a current texture but add a function to allow
255bd8deadSopenharmony_cisetting that current texture to any of a number of textures kept current
265bd8deadSopenharmony_ciin the implementation.  The API changes are thus much smaller.  The
275bd8deadSopenharmony_ciinternal changes are still substantial but smaller than in the previous
285bd8deadSopenharmony_ciapproach because of the lack of new parameters to verify and new
295bd8deadSopenharmony_cifunctions to implement.
305bd8deadSopenharmony_ci
315bd8deadSopenharmony_ciNew enumerants:
325bd8deadSopenharmony_ci
335bd8deadSopenharmony_ciGL_MAX_CURRENT_TEXTURES
345bd8deadSopenharmony_ci
355bd8deadSopenharmony_ciSpecifies the maximum number of textures which may simultaneously be
365bd8deadSopenharmony_cicurrent.  This number must be at least two and can be no more than
375bd8deadSopenharmony_cisixteen.
385bd8deadSopenharmony_ci
395bd8deadSopenharmony_ciGL_CURRENT_TEXTURE_INDEX
405bd8deadSopenharmony_ci
415bd8deadSopenharmony_ciRetrieves the index of the current texture.
425bd8deadSopenharmony_ci
435bd8deadSopenharmony_ciGL_SUB
445bd8deadSopenharmony_ciGL_COMBINE_COLOR
455bd8deadSopenharmony_ciGL_TWICE_COMBINE_COLOR
465bd8deadSopenharmony_ciGL_TEX_COLOR
475bd8deadSopenharmony_ciGL_TWICE_TEX_COLOR
485bd8deadSopenharmony_ciGL_ONE_MINUS_COMBINE_COLOR
495bd8deadSopenharmony_ciGL_ONE_MINUS_TEX_COLOR
505bd8deadSopenharmony_ciGL_COMBINE_ALPHA
515bd8deadSopenharmony_ciGL_TWICE_COMBINE_ALPHA
525bd8deadSopenharmony_ciGL_COMBINE_ALPHA_REPLACES_COLOR
535bd8deadSopenharmony_ciGL_TEX_ALPHA
545bd8deadSopenharmony_ciGL_TWICE_TEX_ALPHA
555bd8deadSopenharmony_ciGL_TEX_ALPHA_REPLACES_COLOR
565bd8deadSopenharmony_ciGL_ONE_MINUS_COMBINE_ALPHA
575bd8deadSopenharmony_ciGL_ONE_MINUS_TEX_ALPHA
585bd8deadSopenharmony_ci
595bd8deadSopenharmony_ciAdd operations allowed for texturing combining.
605bd8deadSopenharmony_ci
615bd8deadSopenharmony_ciGL_TEXCOMBINE_CLAMP
625bd8deadSopenharmony_ci
635bd8deadSopenharmony_ciSpecifies whether intermediate results should be clamped during texture
645bd8deadSopenharmony_cicombining.  This may result in higher or lower performance depending on
655bd8deadSopenharmony_cithe implementation.  An application can check whether clamping is
665bd8deadSopenharmony_cidesirable or not by querying the following enumerant.
675bd8deadSopenharmony_ci
685bd8deadSopenharmony_ciGL_TEXCOMBINE_NATURAL_CLAMP
695bd8deadSopenharmony_ci
705bd8deadSopenharmony_ciIndicates whether the implementation prefers texcombine clamping or not.
715bd8deadSopenharmony_ciQuerying this enumerant returns GL_TRUE, GL_FALSE or GL_DONTCARE,
725bd8deadSopenharmony_ciindicating that the implementation prefers clamping, does not prefer
735bd8deadSopenharmony_ciclamping or is unaffected by the clamping setting.
745bd8deadSopenharmony_ci
755bd8deadSopenharmony_ciThe following enumerants are numbered consecutively from the 0 entry to
765bd8deadSopenharmony_cithe 15 entry, where n is replaced by the number of the particular
775bd8deadSopenharmony_ciinstance.  This restricts the possible set of current textures to
785bd8deadSopenharmony_cisixteen simultaneously active textures.
795bd8deadSopenharmony_ci
805bd8deadSopenharmony_ciGL_TEXCOORDn_BIT
815bd8deadSopenharmony_ci
825bd8deadSopenharmony_ciUsed to indicate the texture coordinate to affect.  The legal range for
835bd8deadSopenharmony_cin for a particular implementation is from 0 to
845bd8deadSopenharmony_ciGL_MAX_CURRENT_TEXTURES-1.
855bd8deadSopenharmony_ci
865bd8deadSopenharmony_ciGL_TEXCOMBINE_COMBINE_COLORn
875bd8deadSopenharmony_ciGL_TEXCOMBINE_COLOR_OPn
885bd8deadSopenharmony_ciGL_TEXCOMBINE_TEX_COLORn 
895bd8deadSopenharmony_ciGL_TEXCOMBINE_COMBINE_ALPHAn
905bd8deadSopenharmony_ciGL_TEXCOMBINE_ALPHA_OPn
915bd8deadSopenharmony_ciGL_TEXCOMBINE_TEX_ALPHAn
925bd8deadSopenharmony_ci
935bd8deadSopenharmony_ciUsed to query the current settings for texture combine functions.  The
945bd8deadSopenharmony_cilegal range for n for a particular implementation is 0 to
955bd8deadSopenharmony_ciGL_MAX_CURRENT_TEXTURES-2.
965bd8deadSopenharmony_ci
975bd8deadSopenharmony_ciNew functions:
985bd8deadSopenharmony_ci
995bd8deadSopenharmony_civoid glCurrentTextureIndex(GLuint index);
1005bd8deadSopenharmony_ci
1015bd8deadSopenharmony_ciSets the current texture index.  index must range from 0 to
1025bd8deadSopenharmony_ciGL_MAX_CURRENT_TEXTURES-1 or GL_INVALID_VALUE is generated.  The current
1035bd8deadSopenharmony_citexture index is used for every OpenGL API which references texture
1045bd8deadSopenharmony_cistate without explicitly specifying a texture index.
1055bd8deadSopenharmony_ci
1065bd8deadSopenharmony_ciThe default index is zero.  The current index can be retrieved with
1075bd8deadSopenharmony_ciglGet for GL_CURRENT_TEXTURE_INDEX.
1085bd8deadSopenharmony_ci
1095bd8deadSopenharmony_civoid glMultiTexCoord{1234}{sifd}{v}(GLbitfield mask, T coords);
1105bd8deadSopenharmony_ci
1115bd8deadSopenharmony_ciSets the texture coordinate for all textures with a corresponding bit
1125bd8deadSopenharmony_ciset in the given mask.  mask is a bitfield made up of any combination of
1135bd8deadSopenharmony_cibits taken from the GL_TEXCOORDn_BIT values. Other parameters are as for
1145bd8deadSopenharmony_ciglTexCoord.  glMultiTexCoord(n, ...) can be replaced by the code
1155bd8deadSopenharmony_cisequence
1165bd8deadSopenharmony_ci	glCurrentTextureIndex(n);
1175bd8deadSopenharmony_ci	glTexCoord(...);
1185bd8deadSopenharmony_cifor each bit n set in the mask.  It is included for performance and
1195bd8deadSopenharmony_ciprogramming convenience.
1205bd8deadSopenharmony_ci
1215bd8deadSopenharmony_ciThere is no corresponding function for retrieval as queries are not
1225bd8deadSopenharmony_ciexpected to be common enough to warrant a special query enumerant.  To
1235bd8deadSopenharmony_ciquery the n'th texture coordinate, set the texture index to n and do a
1245bd8deadSopenharmony_ciglGet for GL_CURRENT_TEXTURE_COORDS.
1255bd8deadSopenharmony_ci
1265bd8deadSopenharmony_civoid glBindNthTexture(GLuint index, GLenum target, GLuint texture);
1275bd8deadSopenharmony_ci
1285bd8deadSopenharmony_ciBind the given texture object to the n'th slot for the given target.
1295bd8deadSopenharmony_ciOperates exactly as glBindTexture except for directly acting on the
1305bd8deadSopenharmony_ciindexed texture instead of the current texture index.  The current
1315bd8deadSopenharmony_citexture index is not changed.
1325bd8deadSopenharmony_ci
1335bd8deadSopenharmony_civoid glNthTexCombineFunc(GLuint index, GLenum combineColorFactor, GLenum
1345bd8deadSopenharmony_cicolorOp, GLenum texColorFactor, GLenum combineAlphaFactor, GLenum
1355bd8deadSopenharmony_cialphaOp, GLenum texAlphaFactor);
1365bd8deadSopenharmony_ci
1375bd8deadSopenharmony_ciglNthTexCombineFunc is used to control how all of the currently enabled
1385bd8deadSopenharmony_citextures are combined together before being combined with the fragment.
1395bd8deadSopenharmony_ciThe n'th combine function controls how texture values at index n and n+1
1405bd8deadSopenharmony_ciare combined, so there are m-1 combine functions for m enabled textures.
1415bd8deadSopenharmony_ciindex selects the function to be set while combineColorFactor, colorOp,
1425bd8deadSopenharmony_citexColorFactor, combineAlphaFactor, alphaOp and texAlphaFactor control
1435bd8deadSopenharmony_cihow texture values are combined to produce the resulting texture value.
1445bd8deadSopenharmony_ci
1455bd8deadSopenharmony_ciWhen a fragment is being textured all current textures contribute to a
1465bd8deadSopenharmony_cifinal texture value which is combined with the fragment through the
1475bd8deadSopenharmony_cinormal texture environment function.  This texture value is initialized
1485bd8deadSopenharmony_cifrom the first enabled texture and then modified by following enabled
1495bd8deadSopenharmony_citextures using the texture combine functions.
1505bd8deadSopenharmony_ci
1515bd8deadSopenharmony_ciIn the following equation:
1525bd8deadSopenharmony_ci	Tc is the current combined texture color.
1535bd8deadSopenharmony_ci	Ta is the current combined texture alpha.
1545bd8deadSopenharmony_ci	texColor(n) is the n'th texture's color.
1555bd8deadSopenharmony_ci	texAlpha(n) is the n'th texture's alpha.  If the texture has no
1565bd8deadSopenharmony_cialpha the value is one.
1575bd8deadSopenharmony_ci
1585bd8deadSopenharmony_ci	n = 0
1595bd8deadSopenharmony_ci				Tc = texColor(0), Ta = texAlpha(0).
1605bd8deadSopenharmony_ci
1615bd8deadSopenharmony_ci	n > 0
1625bd8deadSopenharmony_ci				Tc = (Tc * combineColorFactor) colorOp
1635bd8deadSopenharmony_ci(texColor(n) * texColorFactor).
1645bd8deadSopenharmony_ci				Ta = (Ta * combineAlphaFactor) alphaOp
1655bd8deadSopenharmony_ci(texAlpha(n) * texAlphaFactor).
1665bd8deadSopenharmony_ci
1675bd8deadSopenharmony_cicombineColorFactor and texColorFactor are one of GL_ZERO, GL_ONE,
1685bd8deadSopenharmony_ciGL_COMBINE_COLOR, GL_TWICE_COMBINE_COLOR, GL_TEX_COLOR,
1695bd8deadSopenharmony_ciGL_TWICE_TEX_COLOR, GL_COMBINE_ALPHA, GL_TWICE_COMBINE_ALPHA,
1705bd8deadSopenharmony_ciGL_COMBINE_ALPHA_REPLACES_COLOR, GL_TEX_ALPHA, GL_TWICE_TEX_ALPHA,
1715bd8deadSopenharmony_ciGL_TEX_ALPHA_REPLACES_COLOR, GL_ONE_MINUS_COMBINE_COLOR,
1725bd8deadSopenharmony_ciGL_ONE_MINUS_TEX_COLOR, GL_ONE_MINUS_COMBINE_ALPHA and
1735bd8deadSopenharmony_ciGL_ONE_MINUS_TEX_ALPHA.  Most of these factors are self-explanatory.
1745bd8deadSopenharmony_ciThe ALPHA_REPLACES_COLOR enumerants replicate the requested alpha and
1755bd8deadSopenharmony_cireplace the color rather than doing a multiply.  This allows the alpha
1765bd8deadSopenharmony_cichannel to contain a monochrome color for specular highlights or other
1775bd8deadSopenharmony_cieffects.
1785bd8deadSopenharmony_ci
1795bd8deadSopenharmony_cicombineAlphaFactor and texAlphaFactor are one of GL_ZERO, GL_ONE,
1805bd8deadSopenharmony_ciGL_COMBINE_ALPHA, GL_TWICE_COMBINE_ALPHA, GL_TEX_ALPHA,
1815bd8deadSopenharmony_ciGL_TWICE_TEX_ALPHA, GL_ONE_MINUS_COMBINE_ALPHA and
1825bd8deadSopenharmony_ciGL_ONE_MINUS_TEX_ALPHA.
1835bd8deadSopenharmony_ci
1845bd8deadSopenharmony_cicolorOp and alphaOp are one of GL_ADD or GL_SUB.
1855bd8deadSopenharmony_ci
1865bd8deadSopenharmony_ciIf GL_TEXCOMBINE_CLAMP is enabled then the results produced at each
1875bd8deadSopenharmony_cistage are clamped to the range (0.0, 1.0).  If it isn't enabled, results
1885bd8deadSopenharmony_ciare only clamped after the final computation.  Since results are always
1895bd8deadSopenharmony_ciclamped after the final texcombine stage, GL_TEXCOMBINE_CLAMP only has
1905bd8deadSopenharmony_cian effect if more than two textures are enabled.
1915bd8deadSopenharmony_ci
1925bd8deadSopenharmony_ciTexture combine functions can be set for any index regardless of the
1935bd8deadSopenharmony_citexture enable state.  The functions may not be used but it is legal to
1945bd8deadSopenharmony_ciset them.  Texture values are treated in a generic way during texture
1955bd8deadSopenharmony_cicombining so there are no inherent restrictions on the formats of the
1965bd8deadSopenharmony_citextures in the current texture vector.  Implementations are encouraged
1975bd8deadSopenharmony_cito support arbitrary mixtures of texture size, format and
1985bd8deadSopenharmony_cidimensionality.  Applications can determine if an implementation cannot
1995bd8deadSopenharmony_cisupport a particular mix of textures through the proxy mechanism.
2005bd8deadSopenharmony_ci
2015bd8deadSopenharmony_ciThe default functions are (GL_ONE, GL_ADD, GL_ONE, GL_ONE, GL_ADD,
2025bd8deadSopenharmony_ciGL_ONE).
2035bd8deadSopenharmony_ci
2045bd8deadSopenharmony_ciNew capabilities for existing functions:
2055bd8deadSopenharmony_ci
2065bd8deadSopenharmony_ciglGet{*}v
2075bd8deadSopenharmony_ci
2085bd8deadSopenharmony_ciGL_MAX_CURRENT_TEXTURES and GL_CURRENT_TEXTURE_INDEX can be retrieved
2095bd8deadSopenharmony_cithrough glGet.  The enable state of GL_TEXCOMBINE_CLAMP can be retrieved
2105bd8deadSopenharmony_ciwith glGet.  GL_TEXCOMBINE_NATURAL_CLAMP's setting can be retrieved with
2115bd8deadSopenharmony_ciglGet.
2125bd8deadSopenharmony_ci
2135bd8deadSopenharmony_ciThe current texture combine functions can be retrieved through glGet
2145bd8deadSopenharmony_ciusing the GL_TEXCOMBINE_COMBINE_COLORn, GL_TEXCOMBINE_COLOR_OPn,
2155bd8deadSopenharmony_ciGL_TEXCOMBINE_TEX_COLORn, GL_TEXCOMBINE_COMBINE_ALPHAn,
2165bd8deadSopenharmony_ciGL_TEXCOMBINE_ALPHA_OPn and GL_TECOMBINE_TEX_ALPHAn enumerants.
2175bd8deadSopenharmony_ci
2185bd8deadSopenharmony_ciglEnable, glDisable, glIsEnabled
2195bd8deadSopenharmony_ci
2205bd8deadSopenharmony_ciGL_TEXCOMBINE_CLAMP can be enabled, disabled and checked using the
2215bd8deadSopenharmony_cistandard enable functions.
2225bd8deadSopenharmony_ci
2235bd8deadSopenharmony_ciImpact of texture index on existing functions:
2245bd8deadSopenharmony_ci
2255bd8deadSopenharmony_ciglMatrixMode
2265bd8deadSopenharmony_ci
2275bd8deadSopenharmony_ciEach texture coordinate has its own texture matrix so N texture matrices
2285bd8deadSopenharmony_cimust be kept instead of one.
2295bd8deadSopenharmony_ci
2305bd8deadSopenharmony_ciglEnable
2315bd8deadSopenharmony_ciglDisable
2325bd8deadSopenharmony_ciglIsEnabled
2335bd8deadSopenharmony_ciglGet{*}v
2345bd8deadSopenharmony_ci
2355bd8deadSopenharmony_ciAll of the textures supported by an implementation can be enabled and
2365bd8deadSopenharmony_cidisabled using the GL_TEXTURE_1D and GL_TEXTURE_2D enumerants.  As with
2375bd8deadSopenharmony_cisingle texture implementations, if both textures for a particular n are
2385bd8deadSopenharmony_cienabled then the 2D texture takes precedence.  Enabling texture n
2395bd8deadSopenharmony_cienables all textures between zero and n.  Disabling texture n disables
2405bd8deadSopenharmony_ciall textures from n to GL_MAX_CURRENT_TEXTURES-1.  This behavior allows
2415bd8deadSopenharmony_ciquick enabling and disabling of multiple textures while preventing
2425bd8deadSopenharmony_cisparse enable states.
2435bd8deadSopenharmony_ci
2445bd8deadSopenharmony_ciEach enabled texture must be consistent according to the OpenGL rules or
2455bd8deadSopenharmony_ciit is as if texturing is disabled.
2465bd8deadSopenharmony_ci
2475bd8deadSopenharmony_ciglTexImage{12}D
2485bd8deadSopenharmony_ciglCopyTexImage{12}D
2495bd8deadSopenharmony_ciglTexSubImage{12}D
2505bd8deadSopenharmony_ciglCopyTexSubImage{12}D
2515bd8deadSopenharmony_ciglTexParam{if}{v}
2525bd8deadSopenharmony_ciglBindTexture
2535bd8deadSopenharmony_ciglGetTexGen{if}v
2545bd8deadSopenharmony_ciglGetTexParameter{if}v
2555bd8deadSopenharmony_ciglGetTexLevelParameter{if}v
2565bd8deadSopenharmony_ciglGetTexImage
2575bd8deadSopenharmony_ci
2585bd8deadSopenharmony_ciAll of the texture control functions must now cope with N times as many
2595bd8deadSopenharmony_citextures.
2605bd8deadSopenharmony_ci
2615bd8deadSopenharmony_ciProxies become even more important with multiple texture support as some
2625bd8deadSopenharmony_ciimplementations may have restrictions on what kinds of textures can be
2635bd8deadSopenharmony_ciused simultaneously.  The proxy mechanism can be used to determine if a
2645bd8deadSopenharmony_ciparticular mix of textures is supported or not.
2655bd8deadSopenharmony_ci
2665bd8deadSopenharmony_ciglPushAttrib
2675bd8deadSopenharmony_ciglPopAttrib
2685bd8deadSopenharmony_ci
2695bd8deadSopenharmony_ciAll current texture state is pushed and popped.
2705bd8deadSopenharmony_ci
2715bd8deadSopenharmony_ciglMatrixMode
2725bd8deadSopenharmony_ciglPushMatrix
2735bd8deadSopenharmony_ciglPopMatrix
2745bd8deadSopenharmony_ci
2755bd8deadSopenharmony_ciEach texture coordinate has its own transform and texture stack.
2765bd8deadSopenharmony_ci
2775bd8deadSopenharmony_ciTexture Coordinate Generation and Evaluators
2785bd8deadSopenharmony_ci
2795bd8deadSopenharmony_ciAutomatically generated texture coordinates affect the n'th texture
2805bd8deadSopenharmony_cicoordinate, where n is the current texture index.  N times as many
2815bd8deadSopenharmony_citexture coordinate generators or texture-coordinate-affecting evaluators
2825bd8deadSopenharmony_cican now be active.  It is invalid to specify evaluator targets other
2835bd8deadSopenharmony_cithan the texture coordinates for non-zero current texture indices.
2845bd8deadSopenharmony_ci
2855bd8deadSopenharmony_ciOther State Queries
2865bd8deadSopenharmony_ci
2875bd8deadSopenharmony_ciAll state queries for texture-related information must now return
2885bd8deadSopenharmony_ciinformation for the currently selected texture.
2895bd8deadSopenharmony_ci
2905bd8deadSopenharmony_ciChange History
2915bd8deadSopenharmony_ci
2925bd8deadSopenharmony_ci04/15/97
2935bd8deadSopenharmony_ci				Changed 'left' to 'combine' and 'right'
2945bd8deadSopenharmony_cito 'tex' to try and make names more descriptive.
2955bd8deadSopenharmony_ci				Changed all enumerants ending in _n to
2965bd8deadSopenharmony_cijust n to match existing style for consecutive enumerants.
2975bd8deadSopenharmony_ci				Changed TEXCOORD_BIT_n to TEXCOORDn_BIT
2985bd8deadSopenharmony_cifor consistency.
2995bd8deadSopenharmony_ci
3005bd8deadSopenharmony_ci02/06/97
3015bd8deadSopenharmony_ci				Changed glNthTexCoord to glMultiTexCoord
3025bd8deadSopenharmony_cito allow multiple texture coordinates to be set with a single call.  It
3035bd8deadSopenharmony_ciis expected that texture coordinates will commonly be the same for
3045bd8deadSopenharmony_cimultiple textures and there is some hardware that supports texture
3055bd8deadSopenharmony_cicoordinate broadcasting so this is an important programming and
3065bd8deadSopenharmony_ciperformance issue.
3075bd8deadSopenharmony_ci
3085bd8deadSopenharmony_ci02/04/97	
3095bd8deadSopenharmony_ci				Added GL_TEXCOMBINE_NATURAL_CLAMP to
3105bd8deadSopenharmony_cigive applications a way to determine whether texcombine clamping should
3115bd8deadSopenharmony_cibe enabled or not for maximum performance.
3125bd8deadSopenharmony_ci
3135bd8deadSopenharmony_ci01/27/97
3145bd8deadSopenharmony_ci				Added GL_*_ALPHA_REPLACES_COLOR so that
3155bd8deadSopenharmony_cialpha values can override color values when doing texture combining.
3165bd8deadSopenharmony_ci
3175bd8deadSopenharmony_ci01/21/97
3185bd8deadSopenharmony_ci				Chose sixteen as the maximum number of
3195bd8deadSopenharmony_cicurrent textures possibly supported.
3205bd8deadSopenharmony_ci				glBindNthTexture added.
3215bd8deadSopenharmony_ci				glNthTexBlendFunc changed to
3225bd8deadSopenharmony_ciglNthTexCombineFunc.
3235bd8deadSopenharmony_ci				Scaling factors split into separate
3245bd8deadSopenharmony_cicolor and alpha factors in glNthTexCombineFunc.  New scaling factors
3255bd8deadSopenharmony_ciadded and all scaling factors explicitly specified.
3265bd8deadSopenharmony_ci				Combine function query enumerants
3275bd8deadSopenharmony_cichanged and extended to match glNthTexCombineFunc.
3285bd8deadSopenharmony_ci				GL_MULT deleted as an allowed operator
3295bd8deadSopenharmony_ciin glNthTexCombineFunc.
3305bd8deadSopenharmony_ci				GL_TEXCOMBINE_CLAMP added.
3315bd8deadSopenharmony_ci				Changed texture enabled/disable to be
3325bd8deadSopenharmony_cibulk operations rather than affecting a single texture.
3335bd8deadSopenharmony_ci				Specified that multiple texture
3345bd8deadSopenharmony_citransforms and stacks must be kept.
3355bd8deadSopenharmony_ci				Encouraged implementations to support
3365bd8deadSopenharmony_cimixing texture types in the current texture vector.
3375bd8deadSopenharmony_ci				Deleted Questions section as all
3385bd8deadSopenharmony_cipreviously open issues have been closed.
3395bd8deadSopenharmony_ci
3405bd8deadSopenharmony_ci01/16/97
3415bd8deadSopenharmony_ci				Initial release.
342