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 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 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