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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? base.cpp

?? it just to check a math problem
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*
 *		這些代碼是由Jeff Molofee 與2000年寫的,再次我必須感謝Fredric Echols,因為他使這些代碼看起來更簡潔和高效,并使他易于使用。
 *		如果你發(fā)現(xiàn)這些代碼對你有所幫助,請訪問我的站點 http://nehe.gamedev.net/default.asp ,并讓我知道。
 *********************************************************************************************************************************
 *		這份文檔是由DancingWind翻譯的,如果有什么錯誤請e-mail:zhouwei02@mails.tsinghua.edu.cn
 */

/*********************包含鏈接的庫文件*******************************************************************************************/
#pragma comment( lib, "opengl32.lib" )				
#pragma comment( lib, "glu32.lib" )	
#pragma comment( lib, "glut32.lib")
#pragma comment( lib, "glew32.lib")
#pragma comment( lib, "glaux.lib")
#pragma comment( lib, "vfw32.lib" )	
/********************************************************************************************************************************/

#include <windows.h>		// Windows的頭文件
//#include "glew.h"			// 包含最新的gl.h,glu.h庫
#include "glut.h"			// 包含OpenGL實用庫


HDC			hDC=NULL;		// 窗口著色描述表句柄
HGLRC		hRC=NULL;		// OpenGL渲染描述表句柄
HWND		hWnd=NULL;		// 保存我們的窗口句柄
HINSTANCE	hInstance;		// 保存程序的實例

bool	keys[256];			// 保存鍵盤按鍵的數(shù)組
bool	active=TRUE;		// 窗口的活動標志,缺省為TRUE
bool	fullscreen=TRUE;	// 全屏標志缺省,缺省設(shè)定成全屏模式
LRESULT	CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);	// WndProc的定義

GLvoid ReSizeGLScene(GLsizei width, GLsizei height)		// 重置OpenGL窗口大小
{
	if (height==0)										// 防止被零除
	{
		height=1;										// 將Height設(shè)為1
	}

	glViewport(0,0,width,height);						// 重置當前的視口

	glMatrixMode(GL_PROJECTION);						// 選擇投影矩陣
	glLoadIdentity();									// 重置投影矩陣

	// 設(shè)置視口的大小
	gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f);

	glMatrixMode(GL_MODELVIEW);							// 選擇模型觀察矩陣
	glLoadIdentity();									// 重置模型觀察矩陣
}

int InitGL(GLvoid)										// 此處開始對OpenGL進行所有設(shè)置
{
	glShadeModel(GL_SMOOTH);							// 啟用陰影平滑
	glClearColor(0.0f, 0.0f, 0.0f, 0.5f);				// 黑色背景
	glClearDepth(1.0f);									// 設(shè)置深度緩存
	glEnable(GL_DEPTH_TEST);							// 啟用深度測試
	glDepthFunc(GL_LEQUAL);								// 所作深度測試的類型
	glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);	// 告訴系統(tǒng)對透視進行修正
	return TRUE;										// 初始化 OK
}

int DrawGLScene(GLvoid)									// 從這里開始進行所有的繪制
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);	// 清除屏幕和深度緩存
	glLoadIdentity();									// 重置當前的模型觀察矩陣
	return TRUE;										// 一切 OK
}

GLvoid KillGLWindow(GLvoid)								// 正常銷毀窗口
{
	if (fullscreen)										// 我們處于全屏模式嗎?
	{
		ChangeDisplaySettings(NULL,0);					// 是的話,切換回桌面
		ShowCursor(TRUE);								// 顯示鼠標指針
	}

	if (hRC)											//我們擁有OpenGL描述表嗎?
	{
		if (!wglMakeCurrent(NULL,NULL))					// 我們能否釋放DC和RC描述表?
		{
			MessageBox(NULL,"釋放DC或RC失敗。","關(guān)閉錯誤",MB_OK | MB_ICONINFORMATION);
		}

		if (!wglDeleteContext(hRC))						// 我們能否刪除RC?
		{
			MessageBox(NULL,"釋放RC失敗。","關(guān)閉錯誤",MB_OK | MB_ICONINFORMATION);
		}
		hRC=NULL;										// 將RC設(shè)為 NULL
	}

	if (hDC && !ReleaseDC(hWnd,hDC))					// 我們能否釋放 DC?
	{
		MessageBox(NULL,"釋放DC失敗。","關(guān)閉錯誤",MB_OK | MB_ICONINFORMATION);
		hDC=NULL;										// 將 DC 設(shè)為 NULL
	}

	if (hWnd && !DestroyWindow(hWnd))					// 能否銷毀窗口?
	{
		MessageBox(NULL,"釋放窗口句柄失敗。","關(guān)閉錯誤",MB_OK | MB_ICONINFORMATION);
		hWnd=NULL;										// 將 hWnd 設(shè)為 NULL
	}

	if (!UnregisterClass("OpenG",hInstance))			// 能否注銷類?
	{
		MessageBox(NULL,"不能注銷窗口類。","關(guān)閉錯誤",MB_OK | MB_ICONINFORMATION);
		hInstance=NULL;									// 將 hInstance 設(shè)為 NULL
	}
}

/*	這個函數(shù)創(chuàng)建我們OpenGL窗口,參數(shù)為:									*
 *	title			- 窗口標題												*
 *	width			- 窗口寬度												*
 *	height			- 窗口高度												*
 *	bits			- 顏色的位深(8/16/32)									*
 *	fullscreenflag	- 是否使用全屏模式,全屏模式(TRUE),窗口模式(FALSE)		*/
 
BOOL CreateGLWindow(char* title, int width, int height, int bits, bool fullscreenflag)
{
	GLuint		PixelFormat;			// 保存查找匹配的結(jié)果
	WNDCLASS	wc;						// 窗口類結(jié)構(gòu)
	DWORD		dwExStyle;				// 擴展窗口風格
	DWORD		dwStyle;				// 窗口風格
	RECT		WindowRect;				// 取得矩形的左上角和右下角的坐標值
	WindowRect.left=(long)0;			// 將Left   設(shè)為 0
	WindowRect.right=(long)width;		// 將Right  設(shè)為要求的寬度
	WindowRect.top=(long)0;				// 將Top    設(shè)為 0
	WindowRect.bottom=(long)height;		// 將Bottom 設(shè)為要求的高度

	fullscreen=fullscreenflag;			// 設(shè)置全局全屏標志

	hInstance			= GetModuleHandle(NULL);				// 取得我們窗口的實例
	wc.style			= CS_HREDRAW | CS_VREDRAW | CS_OWNDC;	// 移動時重畫,并為窗口取得DC
	wc.lpfnWndProc		= (WNDPROC) WndProc;					// WndProc處理消息
	wc.cbClsExtra		= 0;									// 無額外窗口數(shù)據(jù)
	wc.cbWndExtra		= 0;									// 無額外窗口數(shù)據(jù)
	wc.hInstance		= hInstance;							// 設(shè)置實例
	wc.hIcon			= LoadIcon(NULL, IDI_WINLOGO);			// 裝入缺省圖標
	wc.hCursor			= LoadCursor(NULL, IDC_ARROW);			// 裝入鼠標指針
	wc.hbrBackground	= NULL;									// GL不需要背景
	wc.lpszMenuName		= NULL;									// 不需要菜單
	wc.lpszClassName	= "OpenG";								// 設(shè)定類名字

	if (!RegisterClass(&wc))									// 嘗試注冊窗口類
	{
		MessageBox(NULL,"注冊窗口失敗","錯誤",MB_OK|MB_ICONEXCLAMATION);
		return FALSE;											// 退出并返回FALSE
	}
	
	if (fullscreen)												// 要嘗試全屏模式嗎?
	{
		DEVMODE dmScreenSettings;								// 設(shè)備模式
		memset(&dmScreenSettings,0,sizeof(dmScreenSettings));	// 確保內(nèi)存清空為零
		dmScreenSettings.dmSize=sizeof(dmScreenSettings);		// Devmode 結(jié)構(gòu)的大小
		dmScreenSettings.dmPelsWidth	= width;				// 所選屏幕寬度
		dmScreenSettings.dmPelsHeight	= height;				// 所選屏幕高度
		dmScreenSettings.dmBitsPerPel	= bits;					// 每象素所選的色彩深度
		dmScreenSettings.dmFields=DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT;

		// 嘗試設(shè)置顯示模式并返回結(jié)果。注: CDS_FULLSCREEN 移去了狀態(tài)條
		if (ChangeDisplaySettings(&dmScreenSettings,CDS_FULLSCREEN)!=DISP_CHANGE_SUCCESSFUL)
		{
			// 若模式失敗,提供兩個選項:退出或在窗口內(nèi)運行。
			if (MessageBox(NULL,"全屏模式在當前顯卡上設(shè)置失敗!\n使用窗口模式?","NeHe G",MB_YESNO|MB_ICONEXCLAMATION)==IDYES)
			{
				//如果用戶選擇窗口模式,變量fullscreen 的值變?yōu)镕ALSE,程序繼續(xù)運行
				fullscreen=FALSE;		// 選擇窗口模式(Fullscreen=FALSE)
			}
			else
			{
				//如果用戶選擇退出,彈出消息窗口告知用戶程序?qū)⒔Y(jié)束。并返回FALSE告訴程序窗口未能成功創(chuàng)建。程序退出。
				MessageBox(NULL,"程序?qū)⒈魂P(guān)閉","錯誤",MB_OK|MB_ICONSTOP);
				return FALSE;									// 退出并返回 FALSE
			}
		}
	}

	if (fullscreen)												// 仍處于全屏模式嗎?
	{
		dwExStyle=WS_EX_APPWINDOW;								// 擴展窗體風格
		dwStyle=WS_POPUP;										// 窗體風格
		ShowCursor(FALSE);										// 隱藏鼠標指針
	}
	else
	{
		dwExStyle=WS_EX_APPWINDOW | WS_EX_WINDOWEDGE;			// 擴展窗體風格
		dwStyle=WS_OVERLAPPEDWINDOW;							// 窗體風格
	}

	AdjustWindowRectEx(&WindowRect, dwStyle, FALSE, dwExStyle);		// 調(diào)整窗口達到真正要求的大小

	// 創(chuàng)建窗口
	if (!(hWnd=CreateWindowEx(	dwExStyle,							// 擴展窗體風格
								"OpenG",							// 類名字
								title,								// 窗口標題
								dwStyle |							// 必須的窗體風格屬性
								WS_CLIPSIBLINGS |					// 必須的窗體風格屬性
								WS_CLIPCHILDREN,					// 必須的窗體風格屬性
								0, 0,								// 窗口位置
								WindowRect.right-WindowRect.left,	// 計算調(diào)整好的窗口寬度
								WindowRect.bottom-WindowRect.top,	// 計算調(diào)整好的窗口高度
								NULL,								// 無父窗口
								NULL,								// 無菜單
								hInstance,							// 實例
								NULL)))								// 不向WM_CREATE傳遞任何東東
	{
		KillGLWindow();								// 重置顯示區(qū)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情一区二区三区在线| 一本色道久久综合狠狠躁的推荐| 国产精品911| 色老汉一区二区三区| 日韩午夜激情电影| 亚洲主播在线播放| 成人app软件下载大全免费| 欧美精品在线一区二区三区| 日本一区二区视频在线观看| 美国av一区二区| 91高清视频免费看| 亚洲一级电影视频| 国产精品美女久久久久久 | 精品亚洲porn| 在线免费观看日本一区| 国产亚洲欧美日韩在线一区| 日日欢夜夜爽一区| 色婷婷综合久久久| 亚洲国产激情av| 国产夫妻精品视频| 精品国产不卡一区二区三区| 亚洲综合另类小说| 欧洲精品一区二区三区在线观看| 国产精品久久久久精k8 | 麻豆91精品视频| 欧美日韩黄色一区二区| 一区二区久久久久| 色婷婷综合久色| 欧美v亚洲v综合ⅴ国产v| 精一区二区三区| 中文字幕国产一区| 国产呦精品一区二区三区网站| 欧美狂野另类xxxxoooo| 亚洲妇熟xx妇色黄| 欧美女孩性生活视频| 亚洲狠狠爱一区二区三区| 欧美色图免费看| 亚洲成人www| 日韩欧美卡一卡二| 国产一区二区三区免费观看| 久久久久综合网| 国产成人一级电影| 国产精品久久久久久久久久久免费看| 粉嫩aⅴ一区二区三区四区| 国产精品国产三级国产aⅴ中文| av不卡免费在线观看| 一区二区三区高清在线| 欧美日韩中字一区| 蜜桃视频一区二区| 久久丝袜美腿综合| 国产欧美日产一区| 欧美videossexotv100| 日本伦理一区二区| 久久久精品综合| 欧美日韩一卡二卡三卡| 国产精品久久二区二区| 国产精品久久久久一区二区三区| 亚洲va在线va天堂| 亚洲欧美日韩国产中文在线| 中文字幕国产精品一区二区| 亚洲电影一级片| av电影天堂一区二区在线观看| 91搞黄在线观看| 久久久久久久久蜜桃| 欧美一激情一区二区三区| 91网址在线看| 激情偷乱视频一区二区三区| 不卡的看片网站| 色综合中文字幕国产| 不卡视频在线观看| 69堂成人精品免费视频| xfplay精品久久| 亚洲品质自拍视频| 久久精品二区亚洲w码| 国产成人免费视| 91精品国产手机| 亚洲综合在线免费观看| 欧美日韩国产系列| 欧美在线视频日韩| 亚洲欧美综合色| 另类小说一区二区三区| 色综合久久综合中文综合网| 国产精品国产自产拍在线| 一区二区三区欧美亚洲| 国产成人亚洲综合a∨婷婷 | 国产一区视频网站| 欧美性生活一区| 一区二区国产盗摄色噜噜| 成人免费的视频| 亚洲一区欧美一区| 午夜精品久久久久久久| 色综合久久88色综合天天免费| 在线观看91精品国产入口| 欧美午夜精品电影| 亚洲国产精品久久不卡毛片| 欧美婷婷六月丁香综合色| 色狠狠桃花综合| 日韩欧美一二三区| 91免费看片在线观看| 免费av成人在线| 午夜精品成人在线| 亚洲综合色婷婷| 亚洲乱码国产乱码精品精98午夜| 久久精品视频免费观看| 亚洲精品在线观看视频| 日韩一区二区在线观看视频| 欧美高清www午色夜在线视频| 色综合久久综合| 色综合天天综合网天天狠天天 | 日日夜夜精品视频免费| 一区二区三区影院| 亚洲美女在线一区| 亚洲欧美日韩一区二区三区在线观看| 久久品道一品道久久精品| 久久久久久久综合日本| 久久先锋资源网| 91精品免费观看| 欧美一级片在线看| 日韩欧美高清在线| 精品国产乱码久久久久久蜜臀| 欧美一区二区精品在线| 69堂成人精品免费视频| 717成人午夜免费福利电影| 日韩欧美在线不卡| 精品第一国产综合精品aⅴ| 欧美精品一区二区高清在线观看| 欧美精品一区二区三区在线| 日本一区二区免费在线观看视频| 久久天天做天天爱综合色| 中文字幕第一区| 亚洲蜜臀av乱码久久精品| 亚洲一区二区三区免费视频| 亚洲一级二级在线| 久久www免费人成看片高清| 韩国三级中文字幕hd久久精品| 大尺度一区二区| 91蝌蚪porny| 在线成人小视频| 2023国产精品自拍| 综合av第一页| 亚洲aaa精品| 国产69精品久久99不卡| 91碰在线视频| 日韩欧美一级二级三级久久久| 国产午夜精品理论片a级大结局| 色系网站成人免费| 欧美mv和日韩mv国产网站| 欧美精品三级日韩久久| 欧美日韩卡一卡二| 欧美在线free| 久久综合色婷婷| 成人中文字幕在线| 久久综合国产精品| 国产999精品久久| 亚洲特黄一级片| 日韩一区二区免费视频| 国产精品一区二区三区乱码| 国产精品国产三级国产aⅴ无密码| 91福利精品视频| 91麻豆国产自产在线观看| 欧美大胆一级视频| 青青草国产成人av片免费| 色综合久久久久网| 亚洲日本在线天堂| 色系网站成人免费| 一卡二卡欧美日韩| 欧洲亚洲精品在线| 亚洲品质自拍视频| 在线看不卡av| 亚洲电影欧美电影有声小说| 欧美性色综合网| 午夜激情一区二区| 91精品国产色综合久久| 美国精品在线观看| 久久久一区二区三区捆绑**| 国产一区91精品张津瑜| 国产亚洲欧美一级| 99精品欧美一区二区三区小说 | 亚洲日穴在线视频| 91免费精品国自产拍在线不卡| 国产精品国产a级| 在线观看网站黄不卡| 亚洲高清久久久| 欧美tk—视频vk| 国产黄色精品网站| 一区免费观看视频| 欧美日精品一区视频| 蜜臀av一区二区在线免费观看| 26uuu国产一区二区三区| 国产成人自拍高清视频在线免费播放 | 久久精品国产亚洲高清剧情介绍 | 成人高清视频免费观看| 亚洲色图欧洲色图| 欧美剧在线免费观看网站| 久久不见久久见免费视频7| 国产精品久久久久久久久久久免费看 | 亚洲欧洲成人自拍| 精品婷婷伊人一区三区三| 久久9热精品视频| 亚洲天堂2016|