15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci SUN_vertex 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_SUN_vertex 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciContact 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Jack Middleton, Sun (Jack.Middleton 'at' eng.sun.com) 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ciStatus 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ci Shipping 165bd8deadSopenharmony_ci 175bd8deadSopenharmony_ciVersion 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ci $Date: 1999/12/28 01:40:37 $ $Revision: 1.5 $ 205bd8deadSopenharmony_ci SUN Date: 99/07/01 10:29:03 Revision: 1.7 215bd8deadSopenharmony_ci 225bd8deadSopenharmony_ciNumber 235bd8deadSopenharmony_ci 245bd8deadSopenharmony_ci 166 255bd8deadSopenharmony_ci 265bd8deadSopenharmony_ciDependencies 275bd8deadSopenharmony_ci 285bd8deadSopenharmony_ci SUN_triangle_list affects part of the definition of this extension 295bd8deadSopenharmony_ci 305bd8deadSopenharmony_ciOverview 315bd8deadSopenharmony_ci 325bd8deadSopenharmony_ci This extension provides new GL commands to specify vertex data such as 335bd8deadSopenharmony_ci color and normal along with the vertex in one single GL command in order to 345bd8deadSopenharmony_ci minimize the overhead in making GL commands for each set of vertex data. 355bd8deadSopenharmony_ci 365bd8deadSopenharmony_ciNew Procedures and Functions 375bd8deadSopenharmony_ci 385bd8deadSopenharmony_ci void Color4ubVertex2fSUN(ubyte r, ubyte g, ubyte b, ubyte a, 395bd8deadSopenharmony_ci float x, float y); 405bd8deadSopenharmony_ci void Color4ubVertex2fvSUN(const ubyte *c, const float *v); 415bd8deadSopenharmony_ci 425bd8deadSopenharmony_ci void Color4ubVertex3fSUN(ubyte r, ubyte g, ubyte b, ubyte a, 435bd8deadSopenharmony_ci float x, float y, float z); 445bd8deadSopenharmony_ci void Color4ubVertex3fvSUN(const ubyte *c, const float *v); 455bd8deadSopenharmony_ci 465bd8deadSopenharmony_ci void Color3fVertex3fSUN(float r, float g, float b, 475bd8deadSopenharmony_ci float x, float y, float z); 485bd8deadSopenharmony_ci void Color3fVertex3fvSUN(const float *c, const float *v); 495bd8deadSopenharmony_ci 505bd8deadSopenharmony_ci void Normal3fVertex3fSUN(float nx, float ny, float nz, 515bd8deadSopenharmony_ci float x, float y, float z); 525bd8deadSopenharmony_ci void Normal3fVertex3fvSUN(const float *n, const float *v); 535bd8deadSopenharmony_ci 545bd8deadSopenharmony_ci void Color4fNormal3fVertex3fSUN(float r, float g, float b, float a, 555bd8deadSopenharmony_ci float nx, float ny, float nz, 565bd8deadSopenharmony_ci float x, float y, float z); 575bd8deadSopenharmony_ci void Color4fNormal3fVertex3fvSUN(const float *c, const float *n, const float 585bd8deadSopenharmony_ci*v); 595bd8deadSopenharmony_ci 605bd8deadSopenharmony_ci void TexCoord2fVertex3fSUN(float s, float t, float x, float y, float z); 615bd8deadSopenharmony_ci void TexCoord2fVertex3fvSUN(const float *tc, const float *v); 625bd8deadSopenharmony_ci 635bd8deadSopenharmony_ci void TexCoord4fVertex4fSUN(float s, float t, float p, float q, 645bd8deadSopenharmony_ci float x, float y, float z, float w); 655bd8deadSopenharmony_ci void TexCoord4fVertex4fvSUN(const float *tc, const float *v); 665bd8deadSopenharmony_ci 675bd8deadSopenharmony_ci void TexCoord2fColor4ubVertex3fSUN(float s, float t, 685bd8deadSopenharmony_ci ubyte r, ubyte g, ubyte b, ubyte a, 695bd8deadSopenharmony_ci float x, float y, float z); 705bd8deadSopenharmony_ci void TexCoord2fColor4ubVertex3fvSUN(const float *tc, const ubyte *c, const 715bd8deadSopenharmony_cifloat *v); 725bd8deadSopenharmony_ci 735bd8deadSopenharmony_ci void TexCoord2fColor3fVertex3fSUN(float s, float t, 745bd8deadSopenharmony_ci float r, float g, float b, 755bd8deadSopenharmony_ci float x, float y, float z); 765bd8deadSopenharmony_ci void TexCoord2fColor3fVertex3fvSUN(const float *tc, const float *c, const 775bd8deadSopenharmony_cifloat *v); 785bd8deadSopenharmony_ci 795bd8deadSopenharmony_ci void TexCoord2fNormal3fVertex3fSUN(float s, float t, 805bd8deadSopenharmony_ci float nx, float ny, float nz, 815bd8deadSopenharmony_ci float x, float y, float z); 825bd8deadSopenharmony_ci void TexCoord2fNormal3fVertex3fvSUN(const float *tc, const float *n, const 835bd8deadSopenharmony_cifloat *v); 845bd8deadSopenharmony_ci 855bd8deadSopenharmony_ci void TexCoord2fColor4fNormal3fVertex3fSUN(float s, float t, 865bd8deadSopenharmony_ci float r, float g, float b, float a, 875bd8deadSopenharmony_ci float nx, float ny, float nz, 885bd8deadSopenharmony_ci float x, float y, float z); 895bd8deadSopenharmony_ci void TexCoord2fColor4fNormal3fVertex3fvSUN(const float *tc, const float *c, 905bd8deadSopenharmony_ci const float *n, const float *v); 915bd8deadSopenharmony_ci 925bd8deadSopenharmony_ci void TexCoord4fColor4fNormal3fVertex4fSUN(float s, float t, float p, float 935bd8deadSopenharmony_ciq, 945bd8deadSopenharmony_ci float r, float g, float b, float a, 955bd8deadSopenharmony_ci float nx, float ny, float nz, 965bd8deadSopenharmony_ci float x, float y, float z, float w); 975bd8deadSopenharmony_ci void TexCoord4fColor4fNormal3fVertex4fvSUN(const float *tc, const float *c, 985bd8deadSopenharmony_ci const float *n, const float *v); 995bd8deadSopenharmony_ci 1005bd8deadSopenharmony_ci void ReplacementCodeuiVertex3fSUN(uint rc, float x, float y, float z); 1015bd8deadSopenharmony_ci void ReplacementCodeuiVertex3fvSUN(const uint *rc, const float *v); 1025bd8deadSopenharmony_ci 1035bd8deadSopenharmony_ci void ReplacementCodeuiColor4ubVertex3fSUN(uint rc, 1045bd8deadSopenharmony_ci ubyte r, ubyte g, ubyte b, ubyte a, 1055bd8deadSopenharmony_ci float x, float y, float z); 1065bd8deadSopenharmony_ci void ReplacementCodeuiColor4ubVertex3fvSUN(const uint *rc, const ubyte *c, 1075bd8deadSopenharmony_ciconst float *v); 1085bd8deadSopenharmony_ci 1095bd8deadSopenharmony_ci void ReplacementCodeuiColor3fVertex3fSUN(uint rc, 1105bd8deadSopenharmony_ci float r, float g, float b, 1115bd8deadSopenharmony_ci float x, float y, float z); 1125bd8deadSopenharmony_ci void ReplacementCodeuiColor3fVertex3fvSUN(const uint *rc, const float *c, 1135bd8deadSopenharmony_ciconst float *v); 1145bd8deadSopenharmony_ci 1155bd8deadSopenharmony_ci void ReplacementCodeuiNormal3fVertex3fSUN(uint rc, 1165bd8deadSopenharmony_ci float nx, float ny, float nz, 1175bd8deadSopenharmony_ci float x, float y, float z); 1185bd8deadSopenharmony_ci void ReplacementCodeuiNormal3fVertex3fvSUN(const uint *rc, const float *n, 1195bd8deadSopenharmony_ciconst float *v); 1205bd8deadSopenharmony_ci 1215bd8deadSopenharmony_ci void ReplacementCodeuiColor4fNormal3fVertex3fSUN(uint rc, 1225bd8deadSopenharmony_ci float r, float g, float b, float a, 1235bd8deadSopenharmony_ci float nx, float ny, float nz, 1245bd8deadSopenharmony_ci float x, float y, float z); 1255bd8deadSopenharmony_ci void ReplacementCodeuiColor4fNormal3fVertex3fvSUN(const uint *rc, const 1265bd8deadSopenharmony_cifloat *c, 1275bd8deadSopenharmony_ci const float *n, const 1285bd8deadSopenharmony_cifloat *v); 1295bd8deadSopenharmony_ci 1305bd8deadSopenharmony_ci void ReplacementCodeuiTexCoord2fVertex3fSUN(uint rc, 1315bd8deadSopenharmony_ci float s, float t, 1325bd8deadSopenharmony_ci float x, float y, float z); 1335bd8deadSopenharmony_ci void ReplacementCodeuiTexCoord2fVertex3fvSUN(const uint *rc, const float 1345bd8deadSopenharmony_ci*tc, const float *v); 1355bd8deadSopenharmony_ci 1365bd8deadSopenharmony_ci void ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN(uint rc, 1375bd8deadSopenharmony_ci float s, float t, 1385bd8deadSopenharmony_ci float nx, float ny, float nz, 1395bd8deadSopenharmony_ci float x, float y, float z); 1405bd8deadSopenharmony_ci void ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN(const uint *rc, const 1415bd8deadSopenharmony_cifloat *tc, 1425bd8deadSopenharmony_ci const float *n, const 1435bd8deadSopenharmony_cifloat *v); 1445bd8deadSopenharmony_ci 1455bd8deadSopenharmony_ci void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN(uint rc, 1465bd8deadSopenharmony_ci float s, float t, 1475bd8deadSopenharmony_ci float r, float g, float b, float a, 1485bd8deadSopenharmony_ci float nx, float ny, float nz, 1495bd8deadSopenharmony_ci float x, float y, float z); 1505bd8deadSopenharmony_ci void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN( 1515bd8deadSopenharmony_ci const uint *rc, const float *tc, const 1525bd8deadSopenharmony_cifloat *c, 1535bd8deadSopenharmony_ci const float *n, const float *v); 1545bd8deadSopenharmony_ci 1555bd8deadSopenharmony_ci 1565bd8deadSopenharmony_ciNew Tokens 1575bd8deadSopenharmony_ci 1585bd8deadSopenharmony_ci None 1595bd8deadSopenharmony_ci 1605bd8deadSopenharmony_ci 1615bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.2 Specification (OpenGL Operation) 1625bd8deadSopenharmony_ci 1635bd8deadSopenharmony_ci The following paragraph will be added to the end of section 2.7 1645bd8deadSopenharmony_ci Vertex Specification. 1655bd8deadSopenharmony_ci 1665bd8deadSopenharmony_ci Multiple vertex data can also be specified in one single GL command 1675bd8deadSopenharmony_ci along with the vertex using the following GL commands. The order 1685bd8deadSopenharmony_ci of processing is always first texture coordinates, then colors, then 1695bd8deadSopenharmony_cinormals, 1705bd8deadSopenharmony_ci and vertex coordinates last. 1715bd8deadSopenharmony_ci 1725bd8deadSopenharmony_ci void Color4ubVertex2fSUN(ubyte r, ubyte g, ubyte b, ubyte a, 1735bd8deadSopenharmony_ci float x, float y); 1745bd8deadSopenharmony_ci void Color4ubVertex2fvSUN(const ubyte *c, const float *v); 1755bd8deadSopenharmony_ci 1765bd8deadSopenharmony_ci void Color4ubVertex3fSUN(ubyte r, ubyte g, ubyte b, ubyte a, 1775bd8deadSopenharmony_ci float x, float y, float z); 1785bd8deadSopenharmony_ci void Color4ubVertex3fvSUN(const ubyte *c, const float *v); 1795bd8deadSopenharmony_ci 1805bd8deadSopenharmony_ci void Color3fVertex3fSUN(float r, float g, float b, 1815bd8deadSopenharmony_ci float x, float y, float z); 1825bd8deadSopenharmony_ci void Color3fVertex3fvSUN(const float *c, const float *v); 1835bd8deadSopenharmony_ci 1845bd8deadSopenharmony_ci void Normal3fVertex3fSUN(float nx, float ny, float nz, 1855bd8deadSopenharmony_ci float x, float y, float z); 1865bd8deadSopenharmony_ci void Normal3fVertex3fvSUN(const float *n, const float *v); 1875bd8deadSopenharmony_ci 1885bd8deadSopenharmony_ci void Color4fNormal3fVertex3fSUN(float r, float g, float b, float a, 1895bd8deadSopenharmony_ci float nx, float ny, float nz, 1905bd8deadSopenharmony_ci float x, float y, float z); 1915bd8deadSopenharmony_ci void Color4fNormal3fVertex3fvSUN(const float *n, const float *v); 1925bd8deadSopenharmony_ci 1935bd8deadSopenharmony_ci void TexCoord2fVertex3fSUN(float s, float t, float x, float y, float z); 1945bd8deadSopenharmony_ci void TexCoord2fVertex3fvSUN(const float *tc, const float *v); 1955bd8deadSopenharmony_ci 1965bd8deadSopenharmony_ci void TexCoord4fVertex4fSUN(float s, float t, float p, float q, 1975bd8deadSopenharmony_ci float x, float y, float z, float w); 1985bd8deadSopenharmony_ci void TexCoord4fVertex4fvSUN(const float *tc, const float *v); 1995bd8deadSopenharmony_ci 2005bd8deadSopenharmony_ci void TexCoord2fColor4ubVertex3fSUN(float s, float t, 2015bd8deadSopenharmony_ci ubyte r, ubyte g, ubyte b, ubyte a, 2025bd8deadSopenharmony_ci float x, float y, float z); 2035bd8deadSopenharmony_ci void TexCoord2fColor4ubVertex3fvSUN(const float *tc, const ubyte *c, const 2045bd8deadSopenharmony_cifloat *v); 2055bd8deadSopenharmony_ci 2065bd8deadSopenharmony_ci void TexCoord2fColor3fVertex3fSUN(float s, float t, 2075bd8deadSopenharmony_ci float r, float g, float b, 2085bd8deadSopenharmony_ci float x, float y, float z); 2095bd8deadSopenharmony_ci void TexCoord2fColor3fVertex3fvSUN(const float *tc, const float *c, const 2105bd8deadSopenharmony_cifloat *v); 2115bd8deadSopenharmony_ci 2125bd8deadSopenharmony_ci void TexCoord2fNormal3fVertex3fSUN(float s, float t, 2135bd8deadSopenharmony_ci float nx, float ny, float nz, 2145bd8deadSopenharmony_ci float x, float y, float z); 2155bd8deadSopenharmony_ci void TexCoord2fNormal3fVertex3fvSUN(const float *tc, const float *n, const 2165bd8deadSopenharmony_cifloat *v); 2175bd8deadSopenharmony_ci 2185bd8deadSopenharmony_ci void TexCoord2fColor4fNormal3fVertex3fSUN(float s, float t, 2195bd8deadSopenharmony_ci float r, float g, float b, float a, 2205bd8deadSopenharmony_ci float nx, float ny, float nz, 2215bd8deadSopenharmony_ci float x, float y, float z); 2225bd8deadSopenharmony_ci void TexCoord2fColor4fNormal3fVertex3fvSUN(const float *tc, const float *c, 2235bd8deadSopenharmony_ciconst float *n, 2245bd8deadSopenharmony_ci const float *v); 2255bd8deadSopenharmony_ci 2265bd8deadSopenharmony_ci void TexCoord4fColor4fNormal3fVertex4fSUN(float s, float t, float p, float 2275bd8deadSopenharmony_ciq, 2285bd8deadSopenharmony_ci float r, float g, float b, float a, 2295bd8deadSopenharmony_ci float nx, float ny, float nz, 2305bd8deadSopenharmony_ci float x, float y, float z, float w); 2315bd8deadSopenharmony_ci void TexCoord4fColor4fNormal3fVertex4fvSUN(const float *tc, const float *c, 2325bd8deadSopenharmony_ciconst float *n, 2335bd8deadSopenharmony_ci const float *v); 2345bd8deadSopenharmony_ci 2355bd8deadSopenharmony_ci void ReplacementCodeuiVertex3fSUN(uint rc, float x, float y, float z); 2365bd8deadSopenharmony_ci void ReplacementCodeuiVertex3fvSUN(const uint *rc, const float *v); 2375bd8deadSopenharmony_ci 2385bd8deadSopenharmony_ci void ReplacementCodeuiColor4ubVertex3fSUN(uint rc, 2395bd8deadSopenharmony_ci ubyte r, ubyte g, ubyte b, ubyte a, 2405bd8deadSopenharmony_ci float x, float y, float z); 2415bd8deadSopenharmony_ci void ReplacementCodeuiColor4ubVertex3fvSUN(const uint *rc, const ubyte *c, 2425bd8deadSopenharmony_ciconst float *v); 2435bd8deadSopenharmony_ci 2445bd8deadSopenharmony_ci void ReplacementCodeuiColor3fVertex3fSUN(uint rc, 2455bd8deadSopenharmony_ci float r, float g, float b, 2465bd8deadSopenharmony_ci float x, float y, float z); 2475bd8deadSopenharmony_ci void ReplacementCodeuiColor3fVertex3fvSUN(const uint *rc, const float *c, 2485bd8deadSopenharmony_ciconst float *v); 2495bd8deadSopenharmony_ci 2505bd8deadSopenharmony_ci void ReplacementCodeuiNormal3fVertex3fSUN(uint rc, 2515bd8deadSopenharmony_ci float nx, float ny, float nz, 2525bd8deadSopenharmony_ci float x, float y, float z); 2535bd8deadSopenharmony_ci void ReplacementCodeuiNormal3fVertex3fvSUN(const uint *rc, const float *n, 2545bd8deadSopenharmony_ciconst float *v); 2555bd8deadSopenharmony_ci 2565bd8deadSopenharmony_ci void ReplacementCodeuiColor4fNormal3fVertex3fSUN(uint rc, 2575bd8deadSopenharmony_ci float r, float g, float b, float a, 2585bd8deadSopenharmony_ci float nx, float ny, float nz, 2595bd8deadSopenharmony_ci float x, float y, float z); 2605bd8deadSopenharmony_ci void ReplacementCodeuiColor4fNormal3fVertex3fvSUN(const uint *rc, const 2615bd8deadSopenharmony_cifloat *c, 2625bd8deadSopenharmony_ci const float *n, const 2635bd8deadSopenharmony_cifloat *v); 2645bd8deadSopenharmony_ci 2655bd8deadSopenharmony_ci void ReplacementCodeuiTexCoord2fVertex3fSUN(uint rc, 2665bd8deadSopenharmony_ci float s, float t, 2675bd8deadSopenharmony_ci float x, float y, float z); 2685bd8deadSopenharmony_ci void ReplacementCodeuiTexCoord2fVertex3fvSUN(const uint *rc, const float 2695bd8deadSopenharmony_ci*tc, const float *v); 2705bd8deadSopenharmony_ci 2715bd8deadSopenharmony_ci void ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN(uint rc, 2725bd8deadSopenharmony_ci float s, float t, 2735bd8deadSopenharmony_ci float nx, float ny, float nz, 2745bd8deadSopenharmony_ci float x, float y, float z); 2755bd8deadSopenharmony_ci void ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN(const uint *rc, const 2765bd8deadSopenharmony_cifloat *tc, 2775bd8deadSopenharmony_ci const float *n, const 2785bd8deadSopenharmony_cifloat *v); 2795bd8deadSopenharmony_ci 2805bd8deadSopenharmony_ci void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN(uint rc, 2815bd8deadSopenharmony_ci float s, float t, 2825bd8deadSopenharmony_ci float r, float g, float b, float a, 2835bd8deadSopenharmony_ci float nx, float ny, float nz, 2845bd8deadSopenharmony_ci float x, float y, float z); 2855bd8deadSopenharmony_ci void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN( 2865bd8deadSopenharmony_ci const uint *rc, const float *tc, const 2875bd8deadSopenharmony_cifloat *c, 2885bd8deadSopenharmony_ci const float *n, const float *v); 2895bd8deadSopenharmony_ci 2905bd8deadSopenharmony_ci 2915bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.2 Specification (Rasterization) 2925bd8deadSopenharmony_ci 2935bd8deadSopenharmony_ci None 2945bd8deadSopenharmony_ci 2955bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.2 Specification (Per-Fragment Operations 2965bd8deadSopenharmony_ciand the Frame Buffer) 2975bd8deadSopenharmony_ci 2985bd8deadSopenharmony_ci None 2995bd8deadSopenharmony_ci 3005bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.2 Specification (Special Functions) 3015bd8deadSopenharmony_ci 3025bd8deadSopenharmony_ci None 3035bd8deadSopenharmony_ci 3045bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.2 Specification (State and State Requests) 3055bd8deadSopenharmony_ci 3065bd8deadSopenharmony_ci None 3075bd8deadSopenharmony_ci 3085bd8deadSopenharmony_ciAdditions to the GLX / WGL / AGL Specifications 3095bd8deadSopenharmony_ci 3105bd8deadSopenharmony_ci None 3115bd8deadSopenharmony_ci 3125bd8deadSopenharmony_ci 3135bd8deadSopenharmony_ciGLX Protocol 3145bd8deadSopenharmony_ci 3155bd8deadSopenharmony_ci No new GLX protocol is added. The vertex components in the new GL commands 3165bd8deadSopenharmony_ci will be sent to remote servers using the regular GL protocols as if 3175bd8deadSopenharmony_ci the vertex components are passed in using the regular GL commands. 3185bd8deadSopenharmony_ci 3195bd8deadSopenharmony_ci 3205bd8deadSopenharmony_ciDependencies on SUN_triangle_list 3215bd8deadSopenharmony_ci 3225bd8deadSopenharmony_ci If SUN_triangle_list is supported, those GL commands which include 3235bd8deadSopenharmony_ci a replacement code will be supported as well. Otherwise commands which 3245bd8deadSopenharmony_ci include replacement codes are not supported. 3255bd8deadSopenharmony_ci 3265bd8deadSopenharmony_ci 3275bd8deadSopenharmony_ciErrors 3285bd8deadSopenharmony_ci 3295bd8deadSopenharmony_ci None 3305bd8deadSopenharmony_ci 3315bd8deadSopenharmony_ciNew State 3325bd8deadSopenharmony_ci 3335bd8deadSopenharmony_ci None 3345bd8deadSopenharmony_ci 3355bd8deadSopenharmony_ciNew Implementation Dependent State 3365bd8deadSopenharmony_ci 3375bd8deadSopenharmony_ci None 338