# pragma comment (lib, "glaux.lib")    
#include<GL/glut.h>
#include <windows.h>	 
#include <stdio.h>
#include <gl\glaux.h>
		
GLuint		texture[2];

AUX_RGBImageRec *LoadBMP(char *FileName)
{
	FILE *File=NULL;							
 	File=fopen(FileName,"r");				
	
	if (File)										 
	{
		fclose(File);		 
		return auxDIBImageLoad(FileName);
	}

	return NULL;
}

void LoadGLTextures()
{

	AUX_RGBImageRec *TextureImage[1];					 
	memset(TextureImage,0,sizeof(void *)*1);  

	for(int i=0; i<=1; i++)
	{

	if(TextureImage[0])
	{
	LoadBMP("photo/1.bmp");
	}
	if(TextureImage[1])
	{
	 LoadBMP("photo/2.bmp");
	}

	glGenTextures(1,  &texture[i]);					 
	glBindTexture(GL_TEXTURE_2D, texture[i]);

	glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[i]->sizeX, TextureImage[i]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[i]->data);

	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);

	if(TextureImage[i])
	{
		if(TextureImage[i]->data)
		{
			free(TextureImage[i]->data);
		}
		free(TextureImage[i]);
	}

	
	}
}

void reshape(int w, int h) {

	glViewport(0, 0, w, h);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
 	gluPerspective(45.0, (float)w/(float)h, 1.0, 800.0);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
}

void render(void) 
{
	glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );


/****************************************************
*               picture number 1                    *
*****************************************************/
	
	glBindTexture(GL_TEXTURE_2D,  texture[0]);
 	glLoadIdentity();							 
	glTranslatef(-1,0.8,-3.0f );
		glBegin(GL_QUADS);

			glTexCoord2f(1.0f, 1.0f);
		glVertex2f(-0.3f,  0.3f );
		
		glTexCoord2f(0.0f, 1.0f);
		glVertex2f( 0.3f,  0.3f );
		
		glTexCoord2f(0.0f, 0.0f);
		glVertex2f( 0.3f, -0.3f );


		glTexCoord2f(1.0f, 0.0f);
		glVertex2f(-0.3f, -0.3f );

		glEnd(); 
/********************************************************/		
		
/****************************************************
*               picture number 2                    *
*****************************************************/
	

	glBindTexture(GL_TEXTURE_2D, texture[1]);
 	glLoadIdentity();							 
	glTranslatef(-0.4,0.8,-3.0f );
		glBegin(GL_QUADS);

			glTexCoord2f(1.0f, 1.0f);
		glVertex2f(-0.3f,  0.3f );
		
		glTexCoord2f(0.0f, 1.0f);
		glVertex2f( 0.3f,  0.3f );
		
		glTexCoord2f(0.0f, 0.0f);
		glVertex2f( 0.3f, -0.3f );


		glTexCoord2f(1.0f, 0.0f);
		glVertex2f(-0.3f, -0.3f );
			
		glEnd(); 

/********************************************************/
		
	glutSwapBuffers();
	
}
void main(int argc, char **argv) {
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
	glutInitWindowPosition(50,50);
	glutInitWindowSize(900,700);
	glutCreateWindow("puzzle  ");

glutMainLoop();
}
 