亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? general.h

?? 《OpenGL游戲編程》這本書的配套源碼。
?? H
字號:
//========================================================
/**
*  @file      general.h
*
*  項目描述: 構造游戲引擎
*  文件描述:  常用結構和全局函數(shù)  
*  適用平臺: Windows98/2000/NT/XP
*  
*  作者:     WWBOSS
*  電子郵件:  wwboss123@gmail.com
*  創(chuàng)建日期: 2007-07-26	
*  修改日期: 2007-07-26
*
*/     
//========================================================


#ifndef _GENERAL_H_
#define _GENERAL_H_

#include "stdafx.h"
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdio.h>

#pragma warning(disable: 4267)

/** 一些常量 */
#define F3D_DEPTH	800.f
#define SYS_HWND	(SWindowInfo::GetSysWinInfo()->m_hWnd)
#define SYS_WIDTH	(SWindowInfo::GetSysWinInfo()->m_iWidth)
#define SYS_HEIGHT	(SWindowInfo::GetSysWinInfo()->m_iHeight)

#define SYS_KEYBOARD (CInput::GetSysInput()->GetKeyboard())
#define SYS_MOUSE	(CInput::GetSysInput()->GetMouse())


/** 按鈕的狀態(tài) */
#define BUTTON_NORMAL	0
#define BUTTON_ACTIVE	1
#define BUTTON_DISABLE	2
#define BUTTON_DOWNL	3
#define BUTTON_DOWNR	4
#define BUTTON_CLICK	5



/** 按鈕上字的類型 */
#define BTN_TEXT_LEFT	0
#define BTN_TEXT_CENTER	1
#define BTN_TEXT_RIGHT	2


/**  游戲進度 */
#define GAME_INIT		0
#define GAME_TITLE		1
#define GAME_CG			2
#define GAME_MENU		3
#define GAME_SETTING	4
#define GAME_MAIN		5
#define GAME_END		6


/** 常用宏 */
#define _ERROR(info)	MessageBox(NULL,info,"error",MB_OK)

#define _DELETE(X)		try{ if((X)!=NULL){delete (X); (X) = NULL; } } catch(...) { _ERROR("error delete!"); }
#define _DELETE_ARRAY(X)try{ if((X)!=NULL){delete[] (X); (X) = NULL; } } catch(...) { _ERROR("error delete[]!"); }
#define _FREE(X)		try{ if((X)!=NULL){free(X);(X)=NULL; } } catch(...) { _ERROR("error free()!"); }
#define _RELEASE(A)		try{ if((A)!=NULL){(A)->Release(); (A) = NULL; } } catch(...) { _ERROR("error ->Release!"); }


/** 定義顏色的類型 */
typedef DWORD DWCOLOR;


/** 隨機數(shù) */
#define _RANDOM(nMax) (rand()*nMax/RAND_MAX)


/** 將INI文件中的int型數(shù)轉化為float型 */
#define PERSENT(iNum) ((float)(iNum)*0.01f)



/**\brief
 * 在v1和v2之間隨機返回一個數(shù)
 */
template<class T>
inline static T RangedRandom(T v1,T v2)
{
	return v1 + (v2-v1)*((T)rand())/((T)RAND_MAX);
}



/**\brief
 * 獲取文件長度
 */
static int GetFileLength(char *name)
{
	int fh, nbytes;

	fh = _open( name, _O_RDONLY );//只讀模式
	if( fh== -1 ){return -1;}
	nbytes=_filelength(fh);
	_close(fh);

	return nbytes;
}



/**\brief
 * 判斷文件是否存在
 */
static BOOL CheckFile(char *name)
{
	//查找文件
	WIN32_FIND_DATA fdt;
	HANDLE hFile = FindFirstFile(name,&fdt);
	if( hFile ==INVALID_HANDLE_VALUE )
		return FALSE;
	else 
	{
		FindClose(hFile);
		return TRUE;
	}
}



/**\brief
 * 由文件名獲取文件路徑
 */
static char* GetFilePath(char *filename)
{
	char *Ret;
	int Len=strlen(filename);
	Ret=(char *)malloc(Len+1);
	strcpy(Ret, filename);
	for(int i=Len-1; i>=0; i--)
	{
		if( Ret[i] == '\\' )//從后向前找'\'
			break;
		Ret[i]=0;			//設置成結束點
	}

	return Ret;
}



/**\brief
 * 從文件名含路徑分離出文件名不含路徑
 */
static char* GetFileName(char* filename)
{
	char * szTemp = strrchr(filename,'\\'); //找最后一個'\'
	++szTemp;								//跳過'\'
	char *Ret = (char*)malloc(strlen(szTemp)+1);
	strcpy(Ret,szTemp);

	return Ret;
}



/**\brief
 * 顯示調試信息
 */
static void ShowMessage(char *msg,...)
{
	va_list va;
	char str[256];

	va_start(va,msg);
	vsprintf(str,msg,va);
	va_end(va);

	MessageBox(NULL,str,"Message",MB_OK);
}



/**\brief
 * char to wchar
 */
static WCHAR* WChar(char *str)
{
	WORD *wchr;
	//將后兩個參數(shù)設置成NULL和0
	//得到需要的緩沖區(qū)長度
	int wsize=MultiByteToWideChar(CP_ACP, NULL, str, strlen(str), NULL, 0);

	wchr=new WORD[wsize+1];		//多出一個放0
	MultiByteToWideChar(CP_ACP, NULL, str, strlen(str), wchr, wsize);
	wchr[wsize]=0;

	return wchr;
}




/**\brief
 * wchar to char
 */
static char* Char(WCHAR *str)
{
	char *chr;
	chr=new char[wcslen(str)+1];
	memset(chr, 0, wcslen(str)+1);

	for(unsigned int i=0;i<wcslen(str);++i)
	{
		chr[i]=(unsigned char)str[i];
	}

	return chr;
}


/**\brief
 * 開始2D渲染
 */
static void BeginOrtho(int _width,int _height)
{
	//glMatrixMode(GL_MODELVIEW);
	//glPushMatrix();
	glMatrixMode(GL_PROJECTION);
	glPushMatrix();
	glLoadIdentity();
	glOrtho(0,_width,0,_height,-1,F3D_DEPTH);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
}


/**\brief
 * 結束2D渲染
 */
static void EndOrtho()
{
	glMatrixMode(GL_PROJECTION);
	glPopMatrix();
	//glMatrixMode(GL_MODELVIEW);
	//glPopMatrix();
}


#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区在线观看免费 | 欧美日韩色综合| 在线免费观看日韩欧美| 欧美日韩一本到| 久久美女艺术照精彩视频福利播放 | 91精品午夜视频| 国产日韩欧美a| 久久久精品综合| 亚洲激情校园春色| 九九精品视频在线看| 91视频免费看| 久久亚洲综合av| 亚洲成人动漫在线观看| 福利一区二区在线| 一区二区三区免费看视频| 日韩高清在线电影| 成人国产在线观看| 日韩一级二级三级精品视频| 国产精品久久久久久久久快鸭| 午夜天堂影视香蕉久久| 成人小视频免费观看| 91精品久久久久久久91蜜桃| 国产精品久久影院| 日韩成人伦理电影在线观看| 91视频观看视频| 国产色产综合产在线视频| 午夜国产精品影院在线观看| 看片网站欧美日韩| 欧美日韩一区二区三区在线 | 久久久噜噜噜久噜久久综合| 五月婷婷另类国产| 在线免费不卡电影| 中文字幕在线一区免费| 欧美色爱综合网| 色婷婷精品大在线视频| 久久噜噜亚洲综合| 麻豆精品一区二区三区| 欧美三级一区二区| 亚洲免费看黄网站| www.亚洲色图.com| 国产日韩欧美精品一区| 美国毛片一区二区三区| 欧美日韩mp4| 亚洲成人黄色小说| 成人动漫视频在线| 国产精品免费人成网站| 国产69精品久久久久毛片 | 亚洲mv在线观看| 91美女福利视频| 亚洲色图制服丝袜| 成人黄页毛片网站| 国产精品国产三级国产a| 97精品久久久久中文字幕| 精品国产免费一区二区三区香蕉| 日韩和欧美一区二区| 91精品国产91久久久久久最新毛片| 亚洲成人tv网| 欧美一区二区二区| 国产美女久久久久| 国产欧美一区二区精品仙草咪| 99精品欧美一区二区蜜桃免费| 亚洲国产视频直播| 国产亚洲综合性久久久影院| 色婷婷综合中文久久一本| 毛片一区二区三区| 国产精品美女久久久久久久久久久| 91久久精品网| 国产在线精品免费| 一区二区三区不卡在线观看 | 激情都市一区二区| 亚洲精品高清视频在线观看| 日韩一区二区高清| 91欧美激情一区二区三区成人| 免费在线一区观看| 亚洲青青青在线视频| 精品国产伦一区二区三区免费| 91丝袜美腿高跟国产极品老师 | 午夜精品久久久久久久蜜桃app| 久久这里只有精品首页| 欧美综合欧美视频| 成人福利视频在线| 免费成人在线观看| 一区二区高清在线| 国产精品拍天天在线| 欧美一级黄色大片| 欧美日韩亚洲综合在线 | 国产美女精品一区二区三区| 一区二区三区不卡视频| 国产日韩欧美a| 欧美成人vr18sexvr| 在线观看日韩av先锋影音电影院| 国产91在线看| 韩国女主播一区| 男女性色大片免费观看一区二区 | 欧美一区二区三区免费观看视频| 91香蕉国产在线观看软件| 国产suv精品一区二区三区| 免费看日韩精品| 日韩国产精品久久| 午夜精品一区二区三区免费视频| 尤物视频一区二区| 中文字幕亚洲一区二区av在线| 国产亚洲人成网站| 久久午夜国产精品| 欧美精品一区二区三区蜜臀| 日韩亚洲欧美一区| 欧美一区二区播放| 欧美一级久久久| 日韩欧美一二三四区| 日韩精品一区二区三区四区| 91精品国产综合久久精品图片| 欧美久久一二区| 欧美精品粉嫩高潮一区二区| 在线电影国产精品| 日韩亚洲欧美中文三级| 精品日韩99亚洲| 久久日韩粉嫩一区二区三区| www欧美成人18+| 中文字幕+乱码+中文字幕一区| 国产精品私人影院| 1000部国产精品成人观看| 中文字幕一区二区视频| 亚洲视频一区二区在线| 一区二区三区在线免费| 亚洲一区二区精品视频| 香蕉成人伊视频在线观看| 男人操女人的视频在线观看欧美| 久久99精品久久久久久国产越南| 国产乱国产乱300精品| 粉嫩一区二区三区性色av| 色诱视频网站一区| 欧美美女视频在线观看| 精品黑人一区二区三区久久 | gogogo免费视频观看亚洲一| 91在线视频在线| 欧美性欧美巨大黑白大战| 欧美乱熟臀69xxxxxx| 精品国产伦一区二区三区观看方式 | 日韩毛片视频在线看| 亚洲一区二区三区四区五区黄| 亚洲超碰97人人做人人爱| 久久99精品一区二区三区三区| 精品一区二区三区在线观看国产| 国产.欧美.日韩| 在线视频欧美区| 精品成人a区在线观看| 亚洲欧洲国产专区| 夜色激情一区二区| 精品中文字幕一区二区小辣椒| 国产成人亚洲综合色影视| 在线一区二区观看| 精品美女一区二区三区| 亚洲精品第1页| 国产一区欧美二区| 欧美综合在线视频| 中文字幕第一区| 免费欧美在线视频| 色美美综合视频| 欧美国产丝袜视频| 日韩高清中文字幕一区| 91偷拍与自偷拍精品| 久久人人97超碰com| 午夜精品爽啪视频| a亚洲天堂av| 久久综合九色综合97_久久久| 亚洲综合图片区| 成人免费视频视频| 日韩美一区二区三区| 亚洲一区二区在线播放相泽| 国产成人精品亚洲午夜麻豆| 欧美麻豆精品久久久久久| 国产精品久久久久久亚洲毛片| 久久精品国产99国产精品| 欧美色爱综合网| 亚洲日本欧美天堂| 国产成人精品午夜视频免费| 欧美一区二区三区播放老司机| 亚洲精品视频在线看| 成人午夜视频免费看| 精品国产三级电影在线观看| 日韩国产一区二| 欧美日韩三级一区二区| 一区二区三区在线影院| a美女胸又www黄视频久久| 国产日韩高清在线| 久久成人麻豆午夜电影| 日韩精品一区在线| 欧美aⅴ一区二区三区视频| 91麻豆精品国产91久久久久 | 一级女性全黄久久生活片免费| 成人精品免费视频| 国产精品久久久久久一区二区三区| 国产一区二区三区美女| 久久综合九色综合97婷婷女人| 黄色小说综合网站| 久久人人爽爽爽人久久久| 国产一区二区按摩在线观看| 久久久久久久久久看片| 国产一区二区精品久久91| 国产亚洲女人久久久久毛片|