All pastes #394707 Raw Edit

Stuff

public text v1 · immutable
·published 2007-03-14 14:59 UTC
rendered paste body
#include <GLUT/glut.h>

#define WINDOW_WIDTH	640
#define WINDOW_HEIGHT	480

GLfloat angle_tri, angle_quad;

void gl_init(void) {
	glEnable(GL_DEPTH_TEST);

	glShadeModel(GL_SMOOTH);

	glClearColor(0.0f, 0.0f, 0.0f, 0.0f);

	glClearDepth(1.0f);
	glDepthFunc(GL_LEQUAL);

	glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);

	angle_tri =0;
	angle_quad = 0;
}

void gl_scene_draw(void) {
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	glLoadIdentity();

	glTranslatef(-1.5f, 0.0f, -6.0f);

	glRotatef(angle_tri, 0.0f, 1.0f, 0.0f);

	glBegin(GL_TRIANGLES);
		glColor3f(1.0f, 0.0f, 0.0f);
		glVertex3f( 0.0f,  1.0f, 0.0f);
		glColor3f(0.0f, 1.0f, 0.0f);
		glVertex3f(-1.0f, -1.0f, 0.0f);
		glColor3f(0.0f, 0.0f, 1.0f);
		glVertex3f( 1.0f, -1.0f, 0.0f);
	glEnd();

	glLoadIdentity();
	glTranslatef(1.5f, 0.0f, -6.0f);

	glRotatef(angle_quad, 1.0f, 0.0f, 0.0f);

	glColor3f(0.5f, 0.5f, 1.0f);
	glBegin(GL_QUADS);
		glVertex3f(-1.0f,  1.0f, 0.0f);
		glVertex3f( 1.0f,  1.0f, 0.0f);
		glVertex3f( 1.0f, -1.0f, 0.0f);
		glVertex3f(-1.0f, -1.0f, 0.0f);
	glEnd();

	glutSwapBuffers();

	angle_tri += 0.2f;
	angle_quad -= 0.15f;
}

void gl_scene_scale(int width, int height) {
	if(height == 0) height = 1;

	glViewport(0, 0, (GLsizei)width, (GLsizei)height);

	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();

	gluPerspective(45.0, (GLfloat)width/(GLfloat)height, 0.1, 100.0);

	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
}

int main(int argc, char** argv) {
	glutInit(&argc, (char **)argv);
	glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
		glutInitWindowPosition(100, 100);
		glutInitWindowSize(WINDOW_WIDTH, WINDOW_HEIGHT);
		glutCreateWindow(argv[0]);

	gl_init();

	glutReshapeFunc(gl_scene_scale);
	glutDisplayFunc(gl_scene_draw);

	glutMainLoop();

	return 0;
}