blob: 306b8af7d15631b74f93608afb780f23d4edf4f4 [file] [log] [blame]
Name
INGR_color_clamp
Name Strings
GL_INGR_color_clamp
Version
Date: 9/28/1998 Version 1.1
Number
174
Dependencies
None
Overview
Various RGBA color space conversions require clamping to values
in a more constrained range than [0, 1]. This extension allows
the definition of independent color clamp values for each of the
four color components as part of the Final Conversion in the pixel
transfer path for draws, reads, and copies.
New Procedures and Functions
None
New Tokens
Accepted by the <pname> parameter of PixelTransferf and
PixelTransferi:
RED_MIN_CLAMP_INGR 0x8560
GREEN_MIN_CLAMP_INGR 0x8561
BLUE_MIN_CLAMP_INGR 0x8562
ALPHA_MIN_CLAMP_INGR 0x8563
RED_MAX_CLAMP_INGR 0x8564
GREEN_MAX_CLAMP_INGR 0x8565
BLUE_MAX_CLAMP_INGR 0x8566
ALPHA_MAX_CLAMP_INGR 0x8567
Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
GetFloatv, and GetDoublev:
RED_MIN_CLAMP_INGR 0x8560
GREEN_MIN_CLAMP_INGR 0x8561
BLUE_MIN_CLAMP_INGR 0x8562
ALPHA_MIN_CLAMP_INGR 0x8563
RED_MAX_CLAMP_INGR 0x8564
GREEN_MAX_CLAMP_INGR 0x8565
BLUE_MAX_CLAMP_INGR 0x8566
ALPHA_MAX_CLAMP_INGR 0x8567
Additions to Chapter 2 of the 1.2 GL Specification (OpenGL Operation)
None
Additions to Chapter 3 of the 1.2 GL Specification (Rasterization)
Pixel Transfer Modes [Add to Table 3.2]
Parameter Name Type Initial Value Valid Range
-------------------------------------------------------------
RED_MIN_CLAMP_INGR float 0.0 0.0, 1.0
GREEN_MIN_CLAMP_INGR float 0.0 0.0, 1.0
BLUE_MIN_CLAMP_INGR float 0.0 0.0, 1.0
ALPHA_MIN_CLAMP_INGR float 0.0 0.0, 1.0
RED_MAX_CLAMP_INGR float 1.0 0.0, 1.0
GREEN_MAX_CLAMP_INGR float 1.0 0.0, 1.0
BLUE_MAX_CLAMP_INGR float 1.0 0.0, 1.0
ALPHA_MAX_CLAMP_INGR float 1.0 0.0, 1.0
Final Conversion
For RGBA components, each element is clamped to the range
specified by [*_MIN_CLAMP_INGR, *_MAX_CLAMP_INGR]. The results
are converted to fixed-point according to the rules given in
section 2.13.9 (Final Color Processing). If *_MIN_CLAMP_INGR
is greater than *_MAX_CLAMP_INGR, then the behavior is
implementation dependent.
Additions to Chapter 4 of the 1.2 GL Specification (Per-Fragment Operations
and the Framebuffer)
Final Conversion
For RGBA components, each element is clamped to the range
specified by [*_MIN_CLAMP_INGR, *_MAX_CLAMP_INGR]. Then the
appropriate conversion formula from table 4.7 is applied to
the component. If *_MIN_CLAMP_INGR is greater than
*_MAX_CLAMP_INGR, then the behavior is implementation dependent.
Additions to Chapter 5 of the 1.2 GL Specification (Special Functions)
None
Additions to Chapter 6 of the 1.2 GL Specification (State and State Requests)
The state required is eight floating-point numbers that are the
red, green, blue, and alpha minimum and maximum clamp values.
The initial value for the minimum clamp values is 0.0. The
initial state for the maximum clamp values is 1.0.
Additions to the GLX Specification
None
GLX Protocol
None
Errors
None
New State
Initial
Get Value Get Command Type Value Attribute
------------------------ ----------- ------- ------- ----------
RED_MIN_CLAMP_INGR GetFloatv R[0,1] 0.0 pixel
GREEN_MIN_CLAMP_INGR GetFloatv R[0,1] 0.0 pixel
BLUE_MIN_CLAMP_INGR GetFloatv R[0,1] 0.0 pixel
ALPHA_MIN_CLAMP_INGR GetFloatv R[0,1] 0.0 pixel
RED_MAX_CLAMP_INGR GetFloatv R[0,1] 1.0 pixel
GREEN_MAX_CLAMP_INGR GetFloatv R[0,1] 1.0 pixel
BLUE_MAX_CLAMP_INGR GetFloatv R[0,1] 1.0 pixel
ALPHA_MAX_CLAMP_INGR GetFloatv R[0,1] 1.0 pixel
New Implementation Dependent State
None