void DrawEnd()
	{
		IsRendererInitialized();

 		g_CurrentProgram->SetModelViewProjection();
		g_CurrentProgram->SetUniform("color", g_CurrentColor);

		if(!g_DrawVertices->empty() && g_HasDrawBegun)
		{
			switch(g_Drawtype)
			{
			case CL_QUADS:
				DrawQuads();
				break;
			case CL_TRIANGLES:
				DrawTriangles(*g_DrawVertices, *g_DrawTextureCoords, *g_DrawNormals);
				break;
			case CL_POINTS:
				DrawPoints();
				break;
			case CL_LINES:
				DrawLines();
				break;
			}
		}

		g_DrawVertices->clear();
		g_DrawTextureCoords->clear();
		g_DrawNormals->clear();

		g_HasDrawBegun = false;

		g_CurrentProgram->ClearTextureUnits();
	}
示例#2
0
int DrawGLScene(GLvoid)									// Here's where we do all the drawing
{
	GLfloat angle1[3] = { 0.0f, 1.0f, 0.0f };
	GLfloat angle2[3] = {-1.0f,-1.0f, 0.0f };
	GLfloat angle3[3] = { 1.0f,-1.0f, 0.0f };
	GLfloat color1[3] = { 1.0f, 0.0f, 0.0f };
	GLfloat color2[3] = { 0.0f, 1.0f, 0.0f };
	GLfloat color3[3] = { 0.0f, 0.0f, 1.0f };
	GLfloat color4[3] = { 0.5f, 0.5f, 1.0f };
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);	// Clear screen and depth buffer
	glLoadIdentity();									// Reset the current model-view matrix
	glTranslatef(g_MoveX, g_MoveY, g_MoveZ);					// Move Left 1.5 Units And Into The Screen 6.0
	glRotatef(g_RotateY, 0.0f, 1.0f, 0.0f);             // Rotate The Triangle On The Y axis

	DrawTriAngles(angle1, angle2, angle3,				// Drawing Using Triangles
		color1, color2, color3);
	glLoadIdentity();
	glTranslatef(1.5f, 0.0f, -6.0f);					// Move Right 3 Units
	glRotatef(g_RotateX, 1.0f, 0.0f, 0.0f);
	glColor3fv(color4);
	DrawQuads(  -1.0f,  1.0f, 0.0f,						// Draw A Quad
				 1.0f,  1.0f, 0.0f,
				 1.0f, -1.0f, 0.0f,
				-1.0f, -1.0f, 0.0f);
	g_RotateX += g_RDeltaX;
	g_RotateY -= g_RDeltaY;
	return TRUE;										// Everything went OK
}
示例#3
0
void COglshapeView::DrawWithOpenGL() {
    glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(0.0f, 0.0f, 0.0f);

    switch(m_shape) {
    case Points        :
        DrawPoints();
        break;

    case Lines         :
        DrawLines();
        break;

    case LineStrip     :
        DrawLineStrip();
        break;

    case LineLoop      :
        DrawLineLoop();
        break;

    case Polygons      :
        DrawPolygons();
        break;

    case Triangles     :
        DrawTriangles();
        break;

    case TriangleStrip :
        DrawTriangleStrip();
        break;

    case TriangleFan   :
        DrawTriangleFan();
        break;

    case Quads         :
        DrawQuads();
        break;

    case QuadStrip     :
        DrawQuadStrip();
        break;

    case Nonconvex     :
        DrawNonconvex();
        break;
    }

    glFlush();
}
示例#4
0
int DrawGLScene(GLvoid)									// Here's where we do all the drawing
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);	// Clear screen and depth buffer
	glLoadIdentity();									// Reset the current model-view matrix
	glTranslatef(-1.5f, 0.0f, -6.0f);					// Move Left 1.5 Units And Into The Screen 6.0
	DrawTriAngles(	 0.0f,  1.0f, 0.0f,					// Drawing Using Triangles
					-1.0f, -1.0f, 0.0f,
					 1.0f, -1.0f, 0.0f);
	glTranslatef(3.0f, 0.0f, 0.0f);						// Move Right 3 Units
	DrawQuads(  -1.0f,  1.0f, 0.0f,						// Draw A Quad
				 1.0f,  1.0f, 0.0f,
				 1.0f, -1.0f, 0.0f,
				-1.0f, -1.0f, 0.0f);
	return TRUE;										// Everything went OK
}