www.pudn.com > HeightMap.rar > MAIN.H


#ifndef _MAIN_H 
#define _MAIN_H 
 
#include  
#include  
#include  
#include 	 
#include 	 
#include  
#include  
 
 
#include "Terrain.h" 
 
#define MAX_TEXTURES 1000				// 最大的纹理数目 
 
extern UINT g_Texture[MAX_TEXTURES];	// 保存纹理ID 
 
#define GL_CLAMP_TO_EDGE	0x812F		// 保存天空纹理 
 
 
#define SCREEN_WIDTH 400 
#define SCREEN_HEIGHT 300	 
#define SCREEN_DEPTH 16	 
 
extern bool  g_bFullScreen;									 
extern HWND  g_hWnd;										 
extern RECT  g_rRect;										 
extern HDC   g_hDC;											 
extern HGLRC g_hRC;											 
extern HINSTANCE g_hInstance;								 
 
 
// 下面的类是一个3D矢量类 
class CVector3 
{ 
public: 
	 
	// 缺省构造函数 
	CVector3() {} 
 
	// 用户构造函数 
	CVector3(float X, float Y, float Z)  
	{  
		x = X; y = Y; z = Z; 
	} 
 
	// 定义矢量之间的'+'法  
	CVector3 operator+(CVector3 vVector) 
	{ 
		// 返回结果 
		return CVector3(vVector.x + x, vVector.y + y, vVector.z + z); 
	} 
 
	// 定义矢量之间的'-'法  
	CVector3 operator-(CVector3 vVector) 
	{ 
		// 返回矢量相减的结果 
		return CVector3(x - vVector.x, y - vVector.y, z - vVector.z); 
	} 
	 
	// 定义矢量与数的'*'法 
	CVector3 operator*(float num) 
	{ 
		// 返回结果 
		return CVector3(x * num, y * num, z * num); 
	} 
 
	// 定义矢量与数的'/'法 
	CVector3 operator/(float num) 
	{ 
		// 返回结果 
		return CVector3(x / num, y / num, z / num); 
	} 
 
	float x, y, z;						 
}; 
 
 
 
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hprev, PSTR cmdline, int ishow); 
LRESULT CALLBACK WinProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam); 
WPARAM MainLoop(); 
 
bool CreateTexture(UINT &texture, LPSTR strFileName); 
 
// 改变显示为全屏模式 
void ChangeToFullScreen(); 
 
// 生成用户窗口 
HWND CreateMyWindow(LPSTR strWindowName, int width, int height, DWORD dwStyle, bool bFullScreen, HINSTANCE hInstance); 
 
// 设置像素格式 
bool bSetupPixelFormat(HDC hdc); 
 
// 初始化投影变换 
void SizeOpenGLScreen(int width, int height); 
 
// 初始化OpenGL 
void InitializeOpenGL(int width, int height); 
 
// 初始化整个程序 
void Init(HWND hWnd); 
 
// 渲染场景 
void RenderScene(); 
 
// 释放程序占用的内存空间 
void DeInit(); 
 
 
 
#endif