blob: 978b52de6cd10e6f90f6f3e6ed0dcc316aad676a [file] [log] [blame]
Name
SUN_vertex
Name Strings
GL_SUN_vertex
Contact
Jack Middleton, Sun (Jack.Middleton 'at' eng.sun.com)
Status
Shipping
Version
$Date: 1999/12/28 01:40:37 $ $Revision: 1.5 $
SUN Date: 99/07/01 10:29:03 Revision: 1.7
Number
166
Dependencies
SUN_triangle_list affects part of the definition of this extension
Overview
This extension provides new GL commands to specify vertex data such as
color and normal along with the vertex in one single GL command in order to
minimize the overhead in making GL commands for each set of vertex data.
New Procedures and Functions
void Color4ubVertex2fSUN(ubyte r, ubyte g, ubyte b, ubyte a,
float x, float y);
void Color4ubVertex2fvSUN(const ubyte *c, const float *v);
void Color4ubVertex3fSUN(ubyte r, ubyte g, ubyte b, ubyte a,
float x, float y, float z);
void Color4ubVertex3fvSUN(const ubyte *c, const float *v);
void Color3fVertex3fSUN(float r, float g, float b,
float x, float y, float z);
void Color3fVertex3fvSUN(const float *c, const float *v);
void Normal3fVertex3fSUN(float nx, float ny, float nz,
float x, float y, float z);
void Normal3fVertex3fvSUN(const float *n, const float *v);
void Color4fNormal3fVertex3fSUN(float r, float g, float b, float a,
float nx, float ny, float nz,
float x, float y, float z);
void Color4fNormal3fVertex3fvSUN(const float *c, const float *n, const float
*v);
void TexCoord2fVertex3fSUN(float s, float t, float x, float y, float z);
void TexCoord2fVertex3fvSUN(const float *tc, const float *v);
void TexCoord4fVertex4fSUN(float s, float t, float p, float q,
float x, float y, float z, float w);
void TexCoord4fVertex4fvSUN(const float *tc, const float *v);
void TexCoord2fColor4ubVertex3fSUN(float s, float t,
ubyte r, ubyte g, ubyte b, ubyte a,
float x, float y, float z);
void TexCoord2fColor4ubVertex3fvSUN(const float *tc, const ubyte *c, const
float *v);
void TexCoord2fColor3fVertex3fSUN(float s, float t,
float r, float g, float b,
float x, float y, float z);
void TexCoord2fColor3fVertex3fvSUN(const float *tc, const float *c, const
float *v);
void TexCoord2fNormal3fVertex3fSUN(float s, float t,
float nx, float ny, float nz,
float x, float y, float z);
void TexCoord2fNormal3fVertex3fvSUN(const float *tc, const float *n, const
float *v);
void TexCoord2fColor4fNormal3fVertex3fSUN(float s, float t,
float r, float g, float b, float a,
float nx, float ny, float nz,
float x, float y, float z);
void TexCoord2fColor4fNormal3fVertex3fvSUN(const float *tc, const float *c,
const float *n, const float *v);
void TexCoord4fColor4fNormal3fVertex4fSUN(float s, float t, float p, float
q,
float r, float g, float b, float a,
float nx, float ny, float nz,
float x, float y, float z, float w);
void TexCoord4fColor4fNormal3fVertex4fvSUN(const float *tc, const float *c,
const float *n, const float *v);
void ReplacementCodeuiVertex3fSUN(uint rc, float x, float y, float z);
void ReplacementCodeuiVertex3fvSUN(const uint *rc, const float *v);
void ReplacementCodeuiColor4ubVertex3fSUN(uint rc,
ubyte r, ubyte g, ubyte b, ubyte a,
float x, float y, float z);
void ReplacementCodeuiColor4ubVertex3fvSUN(const uint *rc, const ubyte *c,
const float *v);
void ReplacementCodeuiColor3fVertex3fSUN(uint rc,
float r, float g, float b,
float x, float y, float z);
void ReplacementCodeuiColor3fVertex3fvSUN(const uint *rc, const float *c,
const float *v);
void ReplacementCodeuiNormal3fVertex3fSUN(uint rc,
float nx, float ny, float nz,
float x, float y, float z);
void ReplacementCodeuiNormal3fVertex3fvSUN(const uint *rc, const float *n,
const float *v);
void ReplacementCodeuiColor4fNormal3fVertex3fSUN(uint rc,
float r, float g, float b, float a,
float nx, float ny, float nz,
float x, float y, float z);
void ReplacementCodeuiColor4fNormal3fVertex3fvSUN(const uint *rc, const
float *c,
const float *n, const
float *v);
void ReplacementCodeuiTexCoord2fVertex3fSUN(uint rc,
float s, float t,
float x, float y, float z);
void ReplacementCodeuiTexCoord2fVertex3fvSUN(const uint *rc, const float
*tc, const float *v);
void ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN(uint rc,
float s, float t,
float nx, float ny, float nz,
float x, float y, float z);
void ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN(const uint *rc, const
float *tc,
const float *n, const
float *v);
void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN(uint rc,
float s, float t,
float r, float g, float b, float a,
float nx, float ny, float nz,
float x, float y, float z);
void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN(
const uint *rc, const float *tc, const
float *c,
const float *n, const float *v);
New Tokens
None
Additions to Chapter 2 of the 1.2 Specification (OpenGL Operation)
The following paragraph will be added to the end of section 2.7
Vertex Specification.
Multiple vertex data can also be specified in one single GL command
along with the vertex using the following GL commands. The order
of processing is always first texture coordinates, then colors, then
normals,
and vertex coordinates last.
void Color4ubVertex2fSUN(ubyte r, ubyte g, ubyte b, ubyte a,
float x, float y);
void Color4ubVertex2fvSUN(const ubyte *c, const float *v);
void Color4ubVertex3fSUN(ubyte r, ubyte g, ubyte b, ubyte a,
float x, float y, float z);
void Color4ubVertex3fvSUN(const ubyte *c, const float *v);
void Color3fVertex3fSUN(float r, float g, float b,
float x, float y, float z);
void Color3fVertex3fvSUN(const float *c, const float *v);
void Normal3fVertex3fSUN(float nx, float ny, float nz,
float x, float y, float z);
void Normal3fVertex3fvSUN(const float *n, const float *v);
void Color4fNormal3fVertex3fSUN(float r, float g, float b, float a,
float nx, float ny, float nz,
float x, float y, float z);
void Color4fNormal3fVertex3fvSUN(const float *n, const float *v);
void TexCoord2fVertex3fSUN(float s, float t, float x, float y, float z);
void TexCoord2fVertex3fvSUN(const float *tc, const float *v);
void TexCoord4fVertex4fSUN(float s, float t, float p, float q,
float x, float y, float z, float w);
void TexCoord4fVertex4fvSUN(const float *tc, const float *v);
void TexCoord2fColor4ubVertex3fSUN(float s, float t,
ubyte r, ubyte g, ubyte b, ubyte a,
float x, float y, float z);
void TexCoord2fColor4ubVertex3fvSUN(const float *tc, const ubyte *c, const
float *v);
void TexCoord2fColor3fVertex3fSUN(float s, float t,
float r, float g, float b,
float x, float y, float z);
void TexCoord2fColor3fVertex3fvSUN(const float *tc, const float *c, const
float *v);
void TexCoord2fNormal3fVertex3fSUN(float s, float t,
float nx, float ny, float nz,
float x, float y, float z);
void TexCoord2fNormal3fVertex3fvSUN(const float *tc, const float *n, const
float *v);
void TexCoord2fColor4fNormal3fVertex3fSUN(float s, float t,
float r, float g, float b, float a,
float nx, float ny, float nz,
float x, float y, float z);
void TexCoord2fColor4fNormal3fVertex3fvSUN(const float *tc, const float *c,
const float *n,
const float *v);
void TexCoord4fColor4fNormal3fVertex4fSUN(float s, float t, float p, float
q,
float r, float g, float b, float a,
float nx, float ny, float nz,
float x, float y, float z, float w);
void TexCoord4fColor4fNormal3fVertex4fvSUN(const float *tc, const float *c,
const float *n,
const float *v);
void ReplacementCodeuiVertex3fSUN(uint rc, float x, float y, float z);
void ReplacementCodeuiVertex3fvSUN(const uint *rc, const float *v);
void ReplacementCodeuiColor4ubVertex3fSUN(uint rc,
ubyte r, ubyte g, ubyte b, ubyte a,
float x, float y, float z);
void ReplacementCodeuiColor4ubVertex3fvSUN(const uint *rc, const ubyte *c,
const float *v);
void ReplacementCodeuiColor3fVertex3fSUN(uint rc,
float r, float g, float b,
float x, float y, float z);
void ReplacementCodeuiColor3fVertex3fvSUN(const uint *rc, const float *c,
const float *v);
void ReplacementCodeuiNormal3fVertex3fSUN(uint rc,
float nx, float ny, float nz,
float x, float y, float z);
void ReplacementCodeuiNormal3fVertex3fvSUN(const uint *rc, const float *n,
const float *v);
void ReplacementCodeuiColor4fNormal3fVertex3fSUN(uint rc,
float r, float g, float b, float a,
float nx, float ny, float nz,
float x, float y, float z);
void ReplacementCodeuiColor4fNormal3fVertex3fvSUN(const uint *rc, const
float *c,
const float *n, const
float *v);
void ReplacementCodeuiTexCoord2fVertex3fSUN(uint rc,
float s, float t,
float x, float y, float z);
void ReplacementCodeuiTexCoord2fVertex3fvSUN(const uint *rc, const float
*tc, const float *v);
void ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN(uint rc,
float s, float t,
float nx, float ny, float nz,
float x, float y, float z);
void ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN(const uint *rc, const
float *tc,
const float *n, const
float *v);
void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN(uint rc,
float s, float t,
float r, float g, float b, float a,
float nx, float ny, float nz,
float x, float y, float z);
void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN(
const uint *rc, const float *tc, const
float *c,
const float *n, const float *v);
Additions to Chapter 3 of the 1.2 Specification (Rasterization)
None
Additions to Chapter 4 of the 1.2 Specification (Per-Fragment Operations
and the Frame Buffer)
None
Additions to Chapter 5 of the 1.2 Specification (Special Functions)
None
Additions to Chapter 6 of the 1.2 Specification (State and State Requests)
None
Additions to the GLX / WGL / AGL Specifications
None
GLX Protocol
No new GLX protocol is added. The vertex components in the new GL commands
will be sent to remote servers using the regular GL protocols as if
the vertex components are passed in using the regular GL commands.
Dependencies on SUN_triangle_list
If SUN_triangle_list is supported, those GL commands which include
a replacement code will be supported as well. Otherwise commands which
include replacement codes are not supported.
Errors
None
New State
None
New Implementation Dependent State
None