EJEM_03_01.c



/*   EJEMPLO DE TEXTURAS   */

#include <GL/glut.h>

#include "ROSTRO.c"

void Inicializa()
{
	glClearColor(0.0,0.0,0.0,0.0); glClear(GL_COLOR_BUFFER_BIT);
	glMatrixMode(GL_PROJECTION); glLoadIdentity();
	gluPerspective(60.0,1.0,1.0,100.0);
	glMatrixMode(GL_MODELVIEW);
}


void display(void)
{
	int texture;
	glGenTextures(1,&texture);
	glBindTexture(GL_TEXTURE_2D,texture);
	glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
	gluBuild2DMipmaps( GL_TEXTURE_2D, gimp_image.bytes_per_pixel,
			gimp_image.width, gimp_image.height,GL_RGB, GL_UNSIGNED_BYTE,
			gimp_image.pixel_data );
	glEnable(GL_TEXTURE_2D);

	glTranslatef(0.0,0.0,-2.0);
	glBegin(GL_TRIANGLES);
	/*
		glTexCoord2d(0.0,1.0); glVertex3f(-0.5,-0.5,0.5);
		glTexCoord2d(1.0,1.0); glVertex3f(0.5,-0.5,0.5);
		glTexCoord2d(0.5,0.0); glVertex3f(0.0,0.5,0.5);
	*/
		glTexCoord2d(0.0,1.0); glVertex3f(-0.5,-0.5,0.5);
		glTexCoord2d(1.0,1.0); glVertex3f(0.5,-0.5,0.5);
		glTexCoord2d(0.5,0.0); glVertex3f(0.0,0.5,0.5);
	glEnd();
	glFlush();
	glDisable(GL_TEXTURE_2D);
	sleep(20);
	exit(0);
}

int main(int argc, char ** argv)
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
	glutInitWindowPosition(20,20);
	glutInitWindowSize(300,300);
	glutCreateWindow(argv[0]);
	glutDisplayFunc(display);
	Inicializa();
	glutMainLoop();
	return 0;
}