• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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