15bd8deadSopenharmony_ciXXX - Not complete yet!!! 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ciName 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ci EXT_index_material 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ciName Strings 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ci GL_EXT_index_material 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ciVersion 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ci $Date: 1996/11/21 00:52:24 $ $Revision: 1.4 $ 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ciNumber 165bd8deadSopenharmony_ci 175bd8deadSopenharmony_ci 94 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ciDependencies 205bd8deadSopenharmony_ci 215bd8deadSopenharmony_ci None 225bd8deadSopenharmony_ci 235bd8deadSopenharmony_ciOverview 245bd8deadSopenharmony_ci 255bd8deadSopenharmony_ci This extends color index lighting to include a way for the current 265bd8deadSopenharmony_ci index to contribute to the color index produced by lighting. This 275bd8deadSopenharmony_ci works much like ColorMaterial does for RGBA lighting by allowing 285bd8deadSopenharmony_ci one or more color index material properties to be attached to the 295bd8deadSopenharmony_ci current index. 305bd8deadSopenharmony_ci 315bd8deadSopenharmony_ci The color index lighting formula is also modified so that the lit 325bd8deadSopenharmony_ci color index may be bitwise shifted in order to allow greater control 335bd8deadSopenharmony_ci when using lighting and fog together in color index mode. 345bd8deadSopenharmony_ci 355bd8deadSopenharmony_ciNew Procedures and Functions 365bd8deadSopenharmony_ci 375bd8deadSopenharmony_ci void IndexMaterialEXT (enum face, enum mode ) 385bd8deadSopenharmony_ci 395bd8deadSopenharmony_ciNew Tokens 405bd8deadSopenharmony_ci 415bd8deadSopenharmony_ci Accepted by the <cap> parameter of Enable, Disable, IsEnabled, 425bd8deadSopenharmony_ci and by the <pname> parameter of GetBooleanv, GetIntegerv, 435bd8deadSopenharmony_ci GetFloatv, and GetDoublev: 445bd8deadSopenharmony_ci 455bd8deadSopenharmony_ci INDEX_MATERIAL_EXT 465bd8deadSopenharmony_ci 475bd8deadSopenharmony_ci Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, 485bd8deadSopenharmony_ci GetFloatv, and GetDoublev: 495bd8deadSopenharmony_ci 505bd8deadSopenharmony_ci INDEX_MATERIAL_PARAMETER_EXT 515bd8deadSopenharmony_ci INDEX_MATERIAL_FACE_EXT 525bd8deadSopenharmony_ci 535bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.1 Specification (OpenGL Operation) 545bd8deadSopenharmony_ci 555bd8deadSopenharmony_ci In Section 2.13.5 "Color Index Lighting", the discussion of color 565bd8deadSopenharmony_ci index lighting is continued after the computation of the final color 575bd8deadSopenharmony_ci index as follows: 585bd8deadSopenharmony_ci 595bd8deadSopenharmony_ci Arithmetic on Color Indexes 605bd8deadSopenharmony_ci 615bd8deadSopenharmony_ci After a final color index is computed, the index is converted to a 625bd8deadSopenharmony_ci fixed-point value with an unspecified number of bits to the right 635bd8deadSopenharmony_ci of the binary point, the nearest fixed-point value is selected. 645bd8deadSopenharmony_ci Then the fixed-point value is shifted by |index_shift| bits, left 655bd8deadSopenharmony_ci if index_shift is > 0 and right otherwise. In either case the 665bd8deadSopenharmony_ci shift is zero filled. Then the signed integer offset index_offset 675bd8deadSopenharmony_ci is added to the index. index_shift and index_offset are set using 685bd8deadSopenharmony_ci the Material Command with <pname> set to INDEX_SHIFT and 695bd8deadSopenharmony_ci INDEX_OFFSET respectively. 705bd8deadSopenharmony_ci 715bd8deadSopenharmony_ci Index Material 725bd8deadSopenharmony_ci 735bd8deadSopenharmony_ci It is possible to attach one or more color index material properties 745bd8deadSopenharmony_ci to the current index, so that they continuously track its value. This 755bd8deadSopenharmony_ci behavior is enabled and disabled by calling Enable or Disable with 765bd8deadSopenharmony_ci the symbolic constant INDEX_MATERIAL_EXT. The command that controls 775bd8deadSopenharmony_ci which of these modes is selected is 785bd8deadSopenharmony_ci 795bd8deadSopenharmony_ci void IndexMaterial (enum face, enum mode); 805bd8deadSopenharmony_ci 815bd8deadSopenharmony_ci <face> is one of FRONT, BACK, or FRONT_AND_BACK, indicating whether 825bd8deadSopenharmony_ci the front material, back material, or both are affected by the current 835bd8deadSopenharmony_ci index. <mode> must be INDEX_OFFSET. The replacements made to 845bd8deadSopenharmony_ci material properties are permanent; the replaced values remain until 855bd8deadSopenharmony_ci changed by either sending a new index or by setting a new material 865bd8deadSopenharmony_ci value when IndexMaterial is not currently enabled to override that 875bd8deadSopenharmony_ci particular value. When INDEX_MATERIAL is enabled, the indicated 885bd8deadSopenharmony_ci parameter or parameters always track the current index. 895bd8deadSopenharmony_ci 905bd8deadSopenharmony_ci Section 2.13.6 "Clamping or Masking" is modified slightly as 915bd8deadSopenharmony_ci follows: "For a color index, if lighting is enabled, the color index 925bd8deadSopenharmony_ci is already in fixed-point, otherwise, the index is first converted 935bd8deadSopenharmony_ci to fixed-point..." 945bd8deadSopenharmony_ci 955bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.1 Specification (Rasterization) 965bd8deadSopenharmony_ci 975bd8deadSopenharmony_ci None 985bd8deadSopenharmony_ci 995bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations 1005bd8deadSopenharmony_ciand the Frame Buffer) 1015bd8deadSopenharmony_ci 1025bd8deadSopenharmony_ci None 1035bd8deadSopenharmony_ci 1045bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.1 Specification (Special Functions) 1055bd8deadSopenharmony_ci 1065bd8deadSopenharmony_ci None 1075bd8deadSopenharmony_ci 1085bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.1 Specification (State and State Requests) 1095bd8deadSopenharmony_ci 1105bd8deadSopenharmony_ci None 1115bd8deadSopenharmony_ci 1125bd8deadSopenharmony_ciAdditions to the GLX Specification 1135bd8deadSopenharmony_ci 1145bd8deadSopenharmony_ci XXX - Not complete yet!!! 1155bd8deadSopenharmony_ci 1165bd8deadSopenharmony_ciGLX Protocol 1175bd8deadSopenharmony_ci 1185bd8deadSopenharmony_ci XXX - Not complete yet!!! 1195bd8deadSopenharmony_ci 1205bd8deadSopenharmony_ciErrors 1215bd8deadSopenharmony_ci 1225bd8deadSopenharmony_ci INVALID_ENUM is generated if IndexMaterial parameter <face> is not FRONT, 1235bd8deadSopenharmony_ci BACK, or FRONT_AND_BACK. 1245bd8deadSopenharmony_ci 1255bd8deadSopenharmony_ci INVALID_ENUM is generated if IndexMaterial parameter <mode> is not 1265bd8deadSopenharmony_ci INDEX_OFFSET. 1275bd8deadSopenharmony_ci 1285bd8deadSopenharmony_ci INVALID_OPERATION is generated if IndexMaterial is called between 1295bd8deadSopenharmony_ci execution of Begin and the corresponding execution of End. 1305bd8deadSopenharmony_ci 1315bd8deadSopenharmony_ciNew State 1325bd8deadSopenharmony_ci 1335bd8deadSopenharmony_ci Initial 1345bd8deadSopenharmony_ci Get Value Get Command Type Value Attrib 1355bd8deadSopenharmony_ci --------- ----------- ---- ------- ------ 1365bd8deadSopenharmony_ci 1375bd8deadSopenharmony_ci INDEX_MATERIAL_EXT IsEnabled B False lighting/enable 1385bd8deadSopenharmony_ci INDEX_MATERIAL_PARAMETER_EXT GetIntegerv Z1 INDEX_OFFSET lighting 1395bd8deadSopenharmony_ci INDEX_MATERIAL_FACE_EXT GetIntegerv Z3 FRONT_AND_BACK lighting 1405bd8deadSopenharmony_ci INDEX_SHIFT GetMaterialfv 2 x R 0 lighting 1415bd8deadSopenharmony_ci INDEX_OFFSET GetMaterialfv 2 x R 0 lighting 1425bd8deadSopenharmony_ci 1435bd8deadSopenharmony_ciNew Implementation Dependent State 1445bd8deadSopenharmony_ci 1455bd8deadSopenharmony_ci None 146