1Name 2 3 SGIX_texture_scale_bias 4 5Name Strings 6 7 GL_SGIX_texture_scale_bias 8 9Version 10 11 $Date: 1997/02/26 03:36:38 $ $Revision: 1.9 $ 12 13Number 14 15 56 16 17Dependencies 18 19 EXT_texture 20 EXT_texture3D 21 EXT_texture_object 22 23Overview 24 25 This extension adds scale, bias, and clamp to [0, 1] operations to the 26 texture pipeline. 27 These operations are applied to the filtered result of a texture lookup, 28 before that result is used in the texture environment equations and 29 before the texture color lookup table of SGI_texture_color_table, 30 if that extension exists. 31 These operations are distinct from the scale, bias, and clamp operations 32 that appear in the SGI_color_table extension, which are used to 33 define a color lookup table. 34 35 Scale and bias operations on texels can be used to better utilize the 36 color resolution of a particular texture internal format (see EXT_texture). 37 38Issues 39 40 * still missing: GLX protocol, registry number 41 42 * RE and IMPACT do not have hardware support for this extension. 43 44New Procedures and Functions 45 46 None 47 48New Tokens 49 50 Accepted by the <pname> parameters of TexParameterfv, TexParameteriv, 51 and GetTexParameter: 52 53 POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 54 POST_TEXTURE_FILTER_SCALE_SGIX 0x817A 55 56 Accepted by the <pname> parameters of GetBooleanv, GetDoublev, GetFloatv, 57 and GetIntegerv: 58 59 POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B 60 POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C 61 62Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation) 63 64 None 65 66Additions to Chapter 3 of the 1.0 Specification (Rasterization) 67 68 A scale or bias is specified using TexParameterfv or 69 TexParameteriv with a <pname> of either POST_TEXTURE_FILTER_SCALE_SGIX 70 or POST_TEXTURE_FILTER_BIAS_SGIX and with <params> set to an array of 71 four values. The scale or bias values can be queried using 72 GetTexParameterfv or GetTexParameteriv. 73 74 The scale, bias, and clamp operations are applied, in that order, 75 directly before the texture environment equations, or, if the 76 SGI_texture_color_table extension exists, directly before the 77 texture color lookup table. 78 The four values for scale (or bias) correspond to the R, G, B, 79 and A scale (or bias) factors. 80 These are applied to the corresponding texture components, Rt, Gt, 81 Bt, and At, as denoted in the EXT_texture extension. 82 Following the scale and bias is a clamp to [0, 1]. 83 84 The scale, bias, and clamp operations are effectively disabled by 85 setting the four scale values to 1 and the four bias values to 0. 86 There is no specific enable or disable token for this extension. 87 88Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations and the 89 Frame Buffer) 90 91 None 92 93Additions to Chapter 5 of the 1.0 Specification (Special Functions) 94 95 None 96 97Additions to Chapter 6 of the 1.0 Specification (State and State Requests) 98 99 The specification for "EXT_texture_object" describes the state that 100 comprises a texture object. Here it is rewritten to include the 101 scale and bias state: 102 103 "A texture object comprises the image arrays, priority, border color, 104 filter modes, and wrap modes that are associated with that object. More 105 explicitly, the state list 106 107 TEXTURE, 108 TEXTURE_PRIORITY_EXT 109 TEXTURE_RED_SIZE, 110 TEXTURE_GREEN_SIZE, 111 TEXTURE_BLUE_SIZE, 112 TEXTURE_ALPHA_SIZE, 113 TEXTURE_LUMINANCE_SIZE, 114 TEXTURE_INTENSITY_SIZE, 115 TEXTURE_WIDTH, 116 TEXTURE_HEIGHT, 117 TEXTURE_DEPTH_EXT, 118 TEXTURE_BORDER, 119 TEXTURE_COMPONENTS, 120 TEXTURE_BORDER_COLOR, 121 TEXTURE_MIN_FILTER, 122 TEXTURE_MAG_FILTER, 123 TEXTURE_WRAP_S, 124 TEXTURE_WRAP_T, 125 TEXTURE_WRAP_R_EXT, 126 POST_TEXTURE_FILTER_BIAS_SGIX, 127 POST_TEXTURE_FILTER_SCALE_SGIX 128 129 composes a single texture object." 130 131 Since an implementation may have a limited range for the values of scale 132 and bias (e.g. due to hardware constraints), this range can be queried. 133 The scale or bias range is obtained using GetFloatv (or other Get) with a 134 <value> of POST_TEXTURE_FILTER_SCALE_RANGE_SGIX or 135 POST_TEXTURE_FILTER_BIAS_RANGE_SGIX, respectively. An array of two floats 136 is returned. The first is the minimum value and the second is the maximum 137 value. 138 139Additions to the GLX Specification 140 141 None 142 143GLX Protocol 144 145 XXX 146 147Dependencies on EXT_texture 148 149 This extension refers to texture components as Rt, Gt, Bt, and At, 150 as denoted in the EXT_texture extension. 151 152Dependencies on EXT_texture3D 153 154 If EXT_texture3D is not implemented, references to it should be deleted. 155 156Dependencies on EXT_texture_object 157 158 As described above, the scale and bias state is included as part of the 159 texture object state. 160 If EXT_texture_object is not implemented, references to it should be deleted. 161 162Errors 163 164 POST_TEXTURE_FILTER_BIAS_SGIX and POST_TEXTURE_FILTER_SCALE_SGIX are added 165 to the list of <pname> parameters that are accepted by TexParameter[fi]v 166 and GetTexParameter[fi]v. POST_TEXTURE_FILTER_BIAS_RANGE_SGIX and 167 POST_TEXTURE_FILTER_SCALE_RANGE_SGIX are added to the list of <value> 168 parameters that are accepted by Get. 169 170New State 171 172 Get Value Get Command Type Initial Value Attribute 173 --------- ----------- ---- ------------- --------- 174 175 POST_TEXTURE_FILTER_BIAS_SGIX GetTexParameterfv n x 4 x R (0,0,0,0) texture 176 POST_TEXTURE_FILTER_SCALE_SGIX GetTexParameterfv n x 4 x R (1,1,1,1) texture 177 178 Note: The "Type" column shows "n x ..." since this state will appear 179 in each of "n" texture objects defined by EXT_texture_object. 180 If EXT_texture_object is not implemented, then this state will appear 181 for each texture dimension (e.g. TEXTURE_1D, TEXTURE_2D, ...). 182 183New Implementation Dependent State 184 185 Get Value Get Command Type Minimum Value Attribute 186 --------- ----------- ---- ------------- --------- 187 188 POST_TEXTURE_FILTER_BIAS_RANGE_SGIX GetFloatv 2 x R (0,1) - 189 POST_TEXTURE_FILTER_SCALE_RANGE_SGIX GetFloatv 2 x R (0,1) - 190 191 Note: The "Minimum Value" for POST_TEXTURE_FILTER_BIAS_RANGE_SGIX and 192 POST_TEXTURE_FILTER_SCALE_RANGE_SGIX is listed as a range, which might seem 193 confusing. What is meant is that an implementation will support at least 194 the range listed. 195