1XXX - Not complete yet!!! 2 3Name 4 5 SGIX_shadow 6 7Name Strings 8 9 GL_SGIX_shadow 10 11Version 12 13 $Date: 1997/08/27 19:54:45 $ $Revision: 1.15 $ 14 15Number 16 17 34 18 19Dependencies 20 21 None. 22 23Overview 24 25 This extension defines two new operations to be performed on texture 26 values before they are passed on to the filtering subsystem. These 27 operations perform either a <= or >= test on the value from texture 28 memory and the iterated R value, and return 1.0 or 0.0 if the test 29 passes or fails, respectively. 30 31New Procedures and Functions 32 33 None 34 35New Tokens 36 37 Accepted by the <pname> parameter of TexParameterf, TexParameteri, 38 TexParameterfv, TexParameteriv, GetTexParameterfv, and 39 GetTexParameteriv, with the <pname> parameter of TRUE or FALSE: 40 41 TEXTURE_COMPARE_SGIX 42 43 Accepted by the <pname> parameter of TexParameterf, TexParameteri, 44 TexParameterfv, TexParameteriv, GetTexParameterfv, and 45 GetTexParameteriv: 46 47 TEXTURE_COMPARE_OPERATOR_SGIX 48 49 Accepted by the <param> parameter of TexParameterf and TexParameteri, 50 and by the <params> parameter of TexParameterfv and TexParameteriv, 51 when their <pname> parameter is TEXTURE_COMPARE_OPERATOR_SGIX: 52 53 TEXTURE_LEQUAL_R_SGIX 54 TEXTURE_GEQUAL_R_SGIX 55 56Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation) 57 58 None 59 60Additions to Chapter 3 of the 1.0 Specification (Rasterization) 61 62 XXX - lots 63 64 GL Specification Table 3.8 is updated as follows: 65 66 Name Type Legal Values 67 ---- ---- ------------ 68 TEXTURE_WRAP_S integer CLAMP, REPEAT 69 TEXTURE_WRAP_T integer CLAMP, REPEAT 70 TEXTURE_WRAP_R_EXT integer CLAMP, REPEAT 71 TEXTURE_MIN_FILTER integer NEAREST, LINEAR, 72 NEAREST_MIPMAP_NEAREST, 73 NEAREST_MIPMAP_LINEAR, 74 LINEAR_MIPMAP_NEAREST, 75 LINEAR_MIPMAP_LINEAR, 76 FILTER4_SGIS, 77 LINEAR_CLIPMAP_LINEAR_SGIX 78 TEXTURE_MAG_FILTER integer NEAREST, LINEAR, 79 FILTER4_SGIS, 80 LINEAR_DETAIL_SGIS, 81 LINEAR_DETAIL_ALPHA_SGIS, 82 LINEAR_DETAIL_COLOR_SGIS, 83 LINEAR_SHARPEN_SGIS, 84 LINEAR_SHARPEN_ALPHA_SGIS, 85 LINEAR_SHARPEN_COLOR_SGIS, 86 TEXTURE_BORDER_COLOR 4 floats any 4 values in [0,1] 87 DETAIL_TEXTURE_LEVEL_SGIS integer any non-negative integer 88 DETAIL_TEXTURE_MODE_SGIS integer ADD, MODULATE 89 TEXTURE_MIN_LOD_SGIS float any value 90 TEXTURE_MAX_LOD_SGIS float any value 91 TEXTURE_BASE_LEVEL_SGIS integer any non-negative integer 92 TEXTURE_MAX_LEVEL_SGIS integer any non-negative integer 93 GENERATE_MIPMAP_SGIS boolean TRUE or FALSE 94 TEXTURE_CLIPMAP_OFFSET_SGIX 2 floats any 2 values 95 TEXTURE_COMPARE_SGIX boolean TRUE or FALSE 96 TEXTURE_COMPARE_OPERATOR_SGIX integer TEXTURE_LEQUAL_R_SGIX, 97 TEXTURE_GEQUAL_R_SGIX 98 99 Table 3.8: Texture parameters and their values. 100 101 Notes: 102 103 * Two new texture operators are defined which alter the sampled texture 104 values before they are filtered. These operators are defined only for 105 textures with internal format DEPTH_COMPONENT or DEPTH_COMPONENTS*_SGI. 106 107 * The new operators compare the sample texel value to the value of the 108 third texture coordinate, R. The texture components are treated as though 109 they range from 0.0 through 1.0. The value of the test is zero if the 110 test fails, and one if it passes. 111 112 * The test for operator TEXTURE_LEQUAL_R_SGIX passes if the texel value 113 is less than or equal to R. The test for operator TEXTURE_GEQUAL_R_SGIX 114 passes if the texel value is greater than or equal to R. 115 116 * The modified texels (with value 0.0 or 1.0 depending on 117 the test result) are treated as if the texture internal format 118 were LUMINANCE. 119 120Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations 121and the Frame Buffer) 122 123 None 124 125Additions to Chapter 5 of the 1.0 Specification (Special Functions) 126 127 None 128 129Additions to Chapter 6 of the 1.0 Specification (State and State Requests) 130 131 The texture compare operator is queried by calling GetTexParameteriv 132 and GetTexParameterfv with <pname> set to 133 TEXTURE_COMPARE_OPERATOR_SGIX. Texture compare enable/disable state 134 is queried by calling GetTexParameteriv or GetTexParameterif with 135 <pname> TEXTURE_COMPARE_SGIX. 136 137Additions to the GLX Specification 138 139 None 140 141Errors 142 143 INVALID_OPERATION is generated if TexParameter[if] parameter <pname> 144 is TEXTURE_COMPARE_OPERATOR_SGIX and parameter <param> is not 145 TEXTURE_LEQUAL_R_SGIX,or TEXTURE_GEQUAL_R_SGIX. 146 147New State 148 149Get Value Get Command Type Initial Value Attribute 150--------- ----------- ---- ------------- --------- 151TEXTURE_COMPARE_SGIX GetTexParameter[if]v B False texture 152TEXTURE_COMPARE_OPERATOR_SGIX GetTexParameter[if]v Z_2 TEXTURE_LEQUAL_R_SGIX texture 153 154 155New Implementation Dependent State 156 157 None 158 159NVIDIA Implementation Details 160 161 The specification is unclear if the R texture coordinate is 162 clamped to the range [0,1]. NVIDIA hardware supporting this 163 extension does clamp the R texture coordinate to the range [0,1] 164 on a per-fragment basis. 165 166 The behavior of the NV_register_combiners SIGNED_NEGATE_NV mapping 167 mode is undefined when used to map the initial value of a texture 168 register corresponding to an enabled texture with a base internal 169 format of GL_DEPTH_COMPONENT and a true TEXTURE_COMPARE_SGIX 170 mode when multiple enabled textures have different values for 171 TEXTURE_COMPARE_OPERATOR_SGIX. Values subsequently assigned to 172 such registers and then mapped with SIGNED_NEGATIE_NV operate 173 as expected. 174