blob: a566097582f7faaebb7b78ef1f9427124033b359 [file] [log] [blame]
XXX - Not complete yet!!!
Name
EXT_index_func
Name Strings
GL_EXT_index_func
Version
$Date: 1996/11/21 00:52:23 $ $Revision: 1.3 $
Number
95
Dependencies
None
Overview
This extension provides a way to discard fragments when a comparison
between the fragment's index value and a reference index fails. This
may be used similarly to the alpha test which is available in RGBA mode.
New Procedures and Functions
void IndexFuncEXT (enum func, float ref)
New Tokens
Accepted by the <cap> parameter of Enable, Disable, and IsEnabled,
and by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv,
and GetDoublev:
INDEX_TEST_EXT
Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
GetFloatv, and GetDoublev:
INDEX_TEST_FUNC_EXT
INDEX_TEST_REF_EXT
Additions to Chapter 2 of the 1.1 Specification (OpenGL Operation)
None
Additions to Chapter 3 of the 1.1 Specification (Rasterization)
None
Additions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations
and the Frame Buffer)
A new section is added immediately following section 4.1.3 Alpha Test.
Index Test
This step applies only to color index mode. The index test discards
a fragment conditional on the outcome of a comparison between the
incoming fragment's index value and a constant reference value. The
comparison is enabled or disabled with the generic Enable and Disable
commands using the symbolic constant INDEX_TEST_EXT. When disabled,
it is as if the comparison always passes. The test is controlled with
void IndexFunc (enum func, float ref);
<func> is a symbolic constant indicating the index test function; <ref>
is a reference value. <ref> is converted to a fixed-point value
according to the rules given for a color index in section 2.13.9. For
purposes of the index test, the fragment's index value is also rounded
to the nearest integer representable in the color index portion of the
framebuffer. The possible constants specifying the test function are
NEVER, ALWAYS, LESS, LEQUAL, EQUAL, GEQUAL, GREATER, or NOTEQUAL,
meaning pass the fragment never, always, if the fragment's index value
is less than, less than or equal to, equal to, greater than, or not
equal to the reference value, respectively.
Additions to Chapter 5 of the 1.1 Specification (Special Functions)
None
Additions to Chapter 6 of the 1.1 Specification (State and State Requests)
None
Additions to the GLX Specification
XXX - Not complete yet!!!
GLX Protocol
XXX - Not complete yet!!!
Errors
INVALID_ENUM is generated if the <func> parameter of IndexFuncEXT
is not one of NEVER, ALWAYS, LESS, LEQUAL, EQUAL, GEQUAL, GREATER, or
NOTEQUAL.
INVALID_OPERATION is generated if IndexFuncEXT is called between
execution of Begin and corresponding execution of End.
New State
Initial
Get Value Get Command Type Value Attrib
--------- ----------- ---- ------- ------
INDEX_TEST_EXT IsEnabled B False color-buffer/enable
INDEX_TEST_FUNC_EXT GetFloatv Z8 ALWAYS color-buffer
INDEX_TEST_REF_EXT GetFloatv R 0 color-buffer
New Implementation Dependent State
None