70 lines
1.7 KiB
C++
70 lines
1.7 KiB
C++
#include <GL/glfw.h>
|
|
|
|
int main()
|
|
{
|
|
int width, height;
|
|
int frame = 0;
|
|
bool running = true;
|
|
|
|
glfwInit();
|
|
|
|
if( !glfwOpenWindow( 512, 512, 0, 0, 0, 0, 0, 0, GLFW_WINDOW ) )
|
|
{
|
|
glfwTerminate();
|
|
return 0;
|
|
}
|
|
|
|
glfwSetWindowTitle("GLFW Application");
|
|
|
|
while(running)
|
|
{
|
|
frame++;
|
|
|
|
glfwGetWindowSize( &width, &height );
|
|
height = height > 0 ? height : 1;
|
|
|
|
glViewport( 0, 0, width, height );
|
|
|
|
glClearColor( 0.0f, 0.0f, 0.0f, 0.0f );
|
|
glClear( GL_COLOR_BUFFER_BIT );
|
|
|
|
glMatrixMode( GL_PROJECTION );
|
|
glLoadIdentity();
|
|
gluPerspective( 65.0f, (GLfloat)width/(GLfloat)height, 1.0f, 100.0f );
|
|
|
|
// Draw some rotating garbage
|
|
glMatrixMode( GL_MODELVIEW );
|
|
glLoadIdentity();
|
|
gluLookAt(0.0f, -10.0f, 0.0f,
|
|
0.0f, 0.0f, 0.0f,
|
|
0.0f, 0.0f, 1.0f );
|
|
|
|
//glTranslatef( 1.0f, 1.0f, 0.0f );
|
|
glRotatef(frame, 0.25f, 1.0f, 0.75f);
|
|
glBegin( GL_TRIANGLES );
|
|
glColor3f(0.1f, 0.0f, 0.0f );
|
|
glVertex3f(0.0f, 3.0f, -4.0f);
|
|
glColor3f(0.0f, 1.0f, 0.0f );
|
|
glVertex3f(3.0f, -2.0f, -4.0f);
|
|
glColor3f(0.0f, 0.0f, 1.0f );
|
|
glVertex3f(-3.0f, -2.0f, -4.0f);
|
|
glEnd();
|
|
glBegin( GL_TRIANGLES );
|
|
glColor3f(0.0f, 0.1f, 0.0f );
|
|
glVertex3f(0.0f, 3.0f, -3.0f);
|
|
glColor3f(0.0f, 0.0f, 1.0f );
|
|
glVertex3f(3.0f, -2.0f, -2.0f);
|
|
glColor3f(1.0f, 0.0f, 0.0f );
|
|
glVertex3f(-3.0f, -2.0f, 2.0f);
|
|
glEnd();
|
|
glfwSwapBuffers();
|
|
|
|
// exit if ESC was pressed or window was closed
|
|
running = !glfwGetKey(GLFW_KEY_ESC) && glfwGetWindowParam( GLFW_OPENED);
|
|
}
|
|
|
|
glfwTerminate();
|
|
|
|
return 0;
|
|
}
|