76 lines
1.5 KiB
C++
76 lines
1.5 KiB
C++
|
#include <stdio.h>
|
||
|
#include <windows.h>
|
||
|
#include <gl\gl.h>
|
||
|
|
||
|
#include "skeltest.h"
|
||
|
#include "large1.h"
|
||
|
|
||
|
LargeTriangle::LargeTriangle()
|
||
|
{
|
||
|
td.swapbuffers = FALSE;
|
||
|
td.iDuration = 10000;
|
||
|
td.iX = 0;
|
||
|
td.iY = 0;
|
||
|
td.iW = 640;
|
||
|
td.iH = 480;
|
||
|
sprintf(td.acName, "Large Triangles (demo only)");
|
||
|
bd.cColorBits = 8;
|
||
|
bd.cDepthBits = 8;
|
||
|
|
||
|
fClr1 = 1.0f,
|
||
|
fClr2 = 1.0f,
|
||
|
fClr3 = 0.0f,
|
||
|
fClr4 = 0.0f,
|
||
|
fClr5 = 1.0f,
|
||
|
fClr6 = 0.0f;
|
||
|
}
|
||
|
|
||
|
void LargeTriangle::INITFUNCTION()
|
||
|
{
|
||
|
// Prevent a divide by zero, when window is too short
|
||
|
// (you cant make a window of zero width).
|
||
|
if(h == 0) h = 1;
|
||
|
|
||
|
// Set the viewport to be the entire window
|
||
|
glViewport(0, 0, w, h);
|
||
|
|
||
|
// Reset the coordinate system before modifying
|
||
|
glLoadIdentity();
|
||
|
|
||
|
fWindowWidth = (GLfloat) w;
|
||
|
fWindowHeight = (GLfloat) h;
|
||
|
|
||
|
// Set the clipping volume
|
||
|
glOrtho(0.0f, fWindowWidth, 0.0f, fWindowHeight, 1.0f, -1.0f);
|
||
|
}
|
||
|
|
||
|
void LargeTriangle::IDLEFUNCTION()
|
||
|
{
|
||
|
GLfloat fClr;
|
||
|
fClr = fClr1;
|
||
|
fClr1 = fClr2;
|
||
|
fClr2 = fClr3;
|
||
|
fClr3 = fClr4;
|
||
|
fClr4 = fClr5;
|
||
|
fClr5 = fClr6;
|
||
|
fClr6 = fClr;
|
||
|
}
|
||
|
|
||
|
void LargeTriangle::RENDFUNCTION()
|
||
|
{
|
||
|
// Set drawing colors, and draw (2) Large Triagles
|
||
|
glBegin(GL_TRIANGLES);
|
||
|
glColor3f(fClr1, fClr2, fClr3);
|
||
|
glVertex2f(0.0f,0.0f);
|
||
|
glVertex2f(0.0f,fWindowHeight);
|
||
|
glVertex2f(fWindowWidth,fWindowHeight);
|
||
|
|
||
|
glColor3f(fClr4, fClr5, fClr6);
|
||
|
glVertex2f(0.0f,0.0f);
|
||
|
glVertex2f(fWindowWidth,fWindowHeight);
|
||
|
glVertex2f(fWindowWidth,0.0f);
|
||
|
glEnd();
|
||
|
|
||
|
glFlush();
|
||
|
}
|