예제 #1
0
static void RunState( void )
{
	GET_THREAD(thread);
	if (! thread->server.conn->Barf ) return;
	if (thread->BeginEndState == -1) return;
	switch(thread->BeginEndMode) {
	case GL_POLYGON:
		return;
	case GL_LINES:
		if ((thread->BeginEndState + 1) % 2)
		{
			thread->BeginEndState = (thread->BeginEndState + 1) % 2;
			return;
		}
		break;
	case GL_TRIANGLES:
		if ((thread->BeginEndState + 1) % 3)
		{
			thread->BeginEndState = (thread->BeginEndState + 1) % 3;
			return;
		}
		break;
	case GL_QUADS:
		if ((thread->BeginEndState + 1) % 4)
		{
			thread->BeginEndState = (thread->BeginEndState + 1) % 4;
			return;
		}
		break;
	}
	DoVertex();
}
static void
VertexAttrib3fARB(GLuint index, GLfloat x, GLfloat y, GLfloat z)
{
	if (index == 0)
		DoVertex(x, y, z, 1.0f);
}
static void
Vertex4fv(const GLfloat *v)
{
	DoVertex(v[0], v[1], v[2], v[3]);
}
static void
Vertex4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
{
	DoVertex(x, y, z, w);
}
static void
Vertex3fv(const GLfloat *v)
{
	DoVertex(v[0], v[1], v[2], 1.0f);
}
static void
Vertex3f(GLfloat x, GLfloat y, GLfloat z)
{
	DoVertex(x, y, z, 1.0f);
}
static void
Vertex2fv(const GLfloat *v)
{
	DoVertex(v[0], v[1], 0.0f, 1.0f);
}
static void
Vertex2f(GLfloat x, GLfloat y)
{
	DoVertex(x, y, 0.0f, 1.0f);
}