Texturas.c



/*  TEXTURAS USANDO ARCHIVOS BMP */

#include <GL/glut.h>
#include "IMAGENES/bitmap.h"
#include "IMAGENES/bitmap.c"
BITMAPINFO *TexInfo; /* Texture bitmap information */
GLubyte    *TexBits; /* Texture bitmap pixel bits */

void display(void) {
  glClearColor (1.0, 0.0, 0.0, 0.0);
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  TexBits = LoadDIBitmap("IMAGENES/Tigre.bmp", &TexInfo);
  glTexImage2D(GL_TEXTURE_2D, 0, 3, TexInfo->bmiHeader.biWidth, TexInfo->bmiHeader.biHeight, 0, GL_BGR_EXT, GL_UNSIGNED_BYTE, TexBits);
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
  glColor3f(1.0, 1.0, 1.0);
		//se activa el mapeado de texturas
  glEnable(GL_TEXTURE_2D);
  glBegin(GL_POLYGON);
	glTexCoord2f(0.0, 0.0);  glVertex2f(-1.0, -1.0);
	glTexCoord2f(1.0, 0.0);  glVertex2f(1.0, -1.0);
	glTexCoord2f(1.0, 1.0);  glVertex2f(1.0, 1.0);
	glTexCoord2f(0.0, 1.0);  glVertex2f(-1.0, 1.0);
  glEnd();
  glDisable(GL_TEXTURE_2D);
  glutSwapBuffers() ;
}
void reshape(int width, int height) {
  glViewport(0, 0, width, height);
  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();
  gluPerspective(60.0, (GLfloat)height / (GLfloat)width, 1.0, 128.0);
  glMatrixMode(GL_MODELVIEW);
  glLoadIdentity();
  gluLookAt(0.0, 1.0, 3.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
}
int main(int argc, char** argv)
{
  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
  glutInitWindowSize(400, 400);
  glutInitWindowPosition(100, 100);
  glutCreateWindow("IMAGENES BMP");
  glutReshapeFunc(reshape);
  glutDisplayFunc(display);
  glutMainLoop();
  return 0;
}