www.pudn.com > airhockey1.rar > texture.h


#ifndef __TEXTURE_H 
#define __TEXTURE_H 
 
#include  
#include  
#include  
#include  
#include  
#include  
 
#define BITMAP_ID 0x4D42		// the universal bitmap ID 
 
enum texTypes_t 
{ 
	PCX, 
	BMP, 
	TGA 
}; 
 
// only partial pcx file header 
typedef struct 
{ 
	unsigned char manufacturer; 
	unsigned char version; 
	unsigned char encoding; 
	unsigned char bits; 
	unsigned char xMin; 
	unsigned char yMin; 
	unsigned char xMax; 
	unsigned char yMax; 
	unsigned char *palette; 
} PCXHEADER; 
 
 
class CTexture 
{ 
private: 
	long int scaledWidth; 
	long int scaledHeight; 
 
	unsigned char *palette; 
 
	unsigned char *LoadBitmapFile(char *filename, BITMAPINFOHEADER *bitmapInfoHeader); 
	unsigned char *LoadPCXFile(char *filename, PCXHEADER *pcxHeader); 
	void LoadPCXTexture(char *filename); 
	void LoadBMPTexture(char *filename); 
 
public: 
	texTypes_t textureType; 
 
	int width; 
	int height; 
	unsigned int texID; 
 
	unsigned char *data; 
 
	CTexture() { data = NULL; palette = NULL; } 
	~CTexture() {} 
 
	void LoadTexture(char *filename); 
	void Unload() 
	{ 
		glDeleteTextures(1, &texID); 
 
		if (data != NULL) 
			free(data); 
		if (palette != NULL) 
			free(palette); 
		 
		data = NULL; 
		palette = NULL; 
	} 
}; 
 
#endif