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

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

?? 3d.cpp

?? 我們使用多邊形和四邊形創建3D物體
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
		dmScreenSettings.dmFields=DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT;

		// 嘗試設置顯示模式并返回結果。注: CDS_FULLSCREEN 移去了狀態條
		if (ChangeDisplaySettings(&dmScreenSettings,CDS_FULLSCREEN)!=DISP_CHANGE_SUCCESSFUL)
		{
			// 若模式失敗,提供兩個選項:退出或在窗口內運行。
			if (MessageBox(NULL,"全屏模式在當前顯卡上設置失敗!\n使用窗口模式?","NeHe G",MB_YESNO|MB_ICONEXCLAMATION)==IDYES)
			{
				//如果用戶選擇窗口模式,變量fullscreen 的值變為FALSE,程序繼續運行
				fullscreen=FALSE;		// 選擇窗口模式(Fullscreen=FALSE)
			}
			else
			{
				//如果用戶選擇退出,彈出消息窗口告知用戶程序將結束。并返回FALSE告訴程序窗口未能成功創建。程序退出。
				MessageBox(NULL,"程序將被關閉","錯誤",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);		// 調整窗口達到真正要求的大小

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

	static	PIXELFORMATDESCRIPTOR pfd=				//pfd 告訴窗口我們所希望的東東,即窗口使用的像素格式
	{
		sizeof(PIXELFORMATDESCRIPTOR),				// 上述格式描述符的大小
		1,											// 版本號
		PFD_DRAW_TO_WINDOW |						// 格式支持窗口
		PFD_SUPPORT_OPENGL |						// 格式必須支持OpenGL
		PFD_DOUBLEBUFFER,							// 必須支持雙緩沖
		PFD_TYPE_RGBA,								// 申請 RGBA 格式
		bits,										// 選定色彩深度
		0, 0, 0, 0, 0, 0,							// 忽略的色彩位
		0,											// 無Alpha緩存
		0,											// 忽略Shift Bit
		0,											// 無累加緩存
		0, 0, 0, 0,									// 忽略聚集位
		16,											// 16位 Z-緩存 (深度緩存) 
		0,											// 無蒙板緩存
		0,											// 無輔助緩存
		PFD_MAIN_PLANE,								// 主繪圖層
		0,											// 不使用重疊層
		0, 0, 0										// 忽略層遮罩
	};
	
	if (!(hDC=GetDC(hWnd)))							// 取得設備描述表了么?
	{
		KillGLWindow();								// 重置顯示區
		MessageBox(NULL,"不能創建一個窗口設備描述表","錯誤",MB_OK|MB_ICONEXCLAMATION);
		return FALSE;								// 返回 FALSE
	}

	if (!(PixelFormat=ChoosePixelFormat(hDC,&pfd)))	// Windows 找到相應的象素格式了嗎?
	{
		KillGLWindow();								// 重置顯示區
		MessageBox(NULL,"不能創建一種相匹配的像素格式","錯誤",MB_OK|MB_ICONEXCLAMATION);
		return FALSE;								// 返回 FALSE
	}

	if(!SetPixelFormat(hDC,PixelFormat,&pfd))		// 能夠設置象素格式么?
	{
		KillGLWindow();								// 重置顯示區
		MessageBox(NULL,"不能設置像素格式","錯誤",MB_OK|MB_ICONEXCLAMATION);
		return FALSE;								// 返回 FALSE
	}

	if (!(hRC=wglCreateContext(hDC)))				// 能否取得OpenGL渲染描述表?
	{
		KillGLWindow();								// 重置顯示區
		MessageBox(NULL,"不能創建OpenGL渲染描述表","錯誤",MB_OK|MB_ICONEXCLAMATION);
		return FALSE;								// 返回 FALSE
	}

	if(!wglMakeCurrent(hDC,hRC))					// 嘗試激活著色描述表
	{
		KillGLWindow();								// 重置顯示區
		MessageBox(NULL,"不能激活當前的OpenGL渲然描述表","錯誤",MB_OK|MB_ICONEXCLAMATION);
		return FALSE;								// 返回 FALSE
	}

	ShowWindow(hWnd,SW_SHOW);						// 顯示窗口
	SetForegroundWindow(hWnd);						// 略略提高優先級
	SetFocus(hWnd);									// 設置鍵盤的焦點至此窗口
	ReSizeGLScene(width, height);					// 設置透視 GL 屏幕

	if (!InitGL())									// 初始化新建的GL窗口
	{
		KillGLWindow();								// 重置顯示區
		MessageBox(NULL,"初始化失敗","錯誤",MB_OK|MB_ICONEXCLAMATION);
		return FALSE;								// 返回 FALSE
	}

	return TRUE;									// 成功
}

LRESULT CALLBACK WndProc(	HWND	hWnd,			// 窗口的句柄	
							UINT	uMsg,			// 窗口的消息
							WPARAM	wParam,			// 附加的消息內容
							LPARAM	lParam)			// 附加的消息內容
{
	switch (uMsg)									// 檢查Windows消息
	{
		case WM_ACTIVATE:							// 監視窗口激活消息
		{
			if (!HIWORD(wParam))					// 檢查最小化狀態
			{
				active=TRUE;						// 程序處于激活狀態
			}
			else
			{
				active=FALSE;						// 程序不再激活
			}

			return 0;								// 返回消息循環
		}

		case WM_SYSCOMMAND:							// 系統中斷命令
		{
			switch (wParam)							// 檢查系統調用
			{
				case SC_SCREENSAVE:					// 屏保要運行?
				case SC_MONITORPOWER:				// 顯示器要進入節電模式?
				return 0;							// 阻止發生
			}
			break;									// 退出
		}

		case WM_CLOSE:								// 收到Close消息?
		{
			PostQuitMessage(0);						// 發出退出消息
			return 0;								// 返回
		}

		case WM_KEYDOWN:							// 有鍵按下么?
		{
			keys[wParam] = TRUE;					// 如果是,設為TRUE
			return 0;								// 返回
		}

		case WM_KEYUP:								// 有鍵放開么?
		{
			keys[wParam] = FALSE;					// 如果是,設為FALSE
			return 0;								// 返回
		}

		case WM_SIZE:								// 調整OpenGL窗口大小
		{
			ReSizeGLScene(LOWORD(lParam),HIWORD(lParam));  // LoWord=Width,HiWord=Height
			return 0;								// 返回
		}
	}

	// 向 DefWindowProc傳遞所有未處理的消息。
	return DefWindowProc(hWnd,uMsg,wParam,lParam);
}

int WINAPI WinMain(HINSTANCE	hInstance,			// 當前窗口實例
					HINSTANCE	hPrevInstance,		// 前一個窗口實例
					LPSTR		lpCmdLine,			// 命令行參數
					int			nCmdShow)			// 窗口顯示狀態
{
	MSG		msg;									// Windowsx消息結構
	BOOL	done=FALSE;								// 用來退出循環的Bool 變量

	// 提示用戶選擇運行模式
	if (MessageBox(NULL,"你想在全屏模式下運行么?", "設置全屏模式",MB_YESNO|MB_ICONQUESTION)==IDNO)
	{
		fullscreen=FALSE;							// FALSE為窗口模式
	}

	// 創建OpenGL窗口
//	if (!CreateGLWindow("NeHe's 旋轉實例",640,480,16,fullscreen))
/***********************************新添的代碼***********************************************************************************/
	if (!CreateGLWindow("NeHe's 3D實例",640,480,16,fullscreen))
/********************************************************************************************************************************/
	{
		return 0;									// 失敗退出
	}

	while(!done)									// 保持循環直到 done=TRUE
	{
		if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))	// 有消息在等待嗎?
		{
			if (msg.message==WM_QUIT)				// 收到退出消息?
			{
				done=TRUE;							// 是,則done=TRUE
			}
			else									// 不是,處理窗口消息
			{
				TranslateMessage(&msg);				// 翻譯消息
				DispatchMessage(&msg);				// 發送消息
			}
		}
		else										// 如果沒有消息
		{
			// 繪制場景。監視ESC鍵和來自DrawGLScene()的退出消息
			if (active)								// 程序激活的么?
			{
				if (keys[VK_ESCAPE])				// ESC 按下了么?
				{
					done=TRUE;						// ESC 發出退出信號
				}
				else								// 不是退出的時候,刷新屏幕
				{
					DrawGLScene();					// 繪制場景
					SwapBuffers(hDC);				// 交換緩存 (雙緩存)
				}
			}

			if (keys[VK_F1])						// F1鍵按下了么?
			{
				keys[VK_F1]=FALSE;					// 若是,使對應的Key數組中的值為 FALSE
				KillGLWindow();						// 銷毀當前的窗口
				fullscreen=!fullscreen;				// 切換 全屏 / 窗口 模式
				// 重建 OpenGL 窗口
//				if (!CreateGLWindow("NeHe's 旋轉實例",640,480,16,fullscreen))
/***********************************新添的代碼***********************************************************************************/
				if (!CreateGLWindow("NeHe's 3D實例",640,480,16,fullscreen))
/********************************************************************************************************************************/
				{
					return 0;						// 如果窗口未能創建,程序退出
				}
			}
		}
	}

	// 關閉程序
	KillGLWindow();									// 銷毀窗口
	return (msg.wParam);							// 退出程序
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品进线69影院| www.久久久久久久久| 日本一区二区三区国色天香| 91麻豆免费观看| 黄色资源网久久资源365| 亚洲免费看黄网站| 久久久精品一品道一区| 精品视频免费在线| 99精品国产热久久91蜜凸| 美腿丝袜亚洲一区| 午夜精品视频在线观看| 国产精品家庭影院| 久久亚洲影视婷婷| 日韩一区二区三区精品视频| 色天使久久综合网天天| 国产成人av一区二区| 免费在线观看视频一区| 亚洲一区二区三区四区在线 | 久久精品夜夜夜夜久久| 欧美日韩精品三区| 色哟哟一区二区| jiyouzz国产精品久久| 国产真实精品久久二三区| 日韩精品欧美精品| 亚洲大片免费看| 亚洲伊人色欲综合网| 亚洲丝袜制服诱惑| 一区二区中文视频| 国产精品久久久久四虎| 久久蜜臀中文字幕| 久久美女艺术照精彩视频福利播放 | 国产精品1区2区3区在线观看| 日韩二区三区四区| 视频一区二区三区入口| 亚洲一区在线观看网站| 一区二区三区成人| 亚洲高清免费视频| 婷婷开心久久网| 日韩av一区二区在线影视| 日韩专区在线视频| 人人狠狠综合久久亚洲| 蜜桃一区二区三区在线观看| 日韩福利电影在线| 激情五月婷婷综合| 国内精品久久久久影院一蜜桃| 久久国产尿小便嘘嘘尿| 国内精品久久久久影院色 | 91国偷自产一区二区开放时间| 成人综合日日夜夜| 99久久精品国产毛片| 色乱码一区二区三区88| 欧美日韩在线直播| 欧美一区二区三区色| 欧美电影免费观看高清完整版在线 | 日韩欧美电影一二三| 精品少妇一区二区三区在线视频| 欧美电影免费观看高清完整版在线| 久久嫩草精品久久久精品一| 久久精品欧美日韩精品| 欧美极品另类videosde| 一区二区三区小说| 全国精品久久少妇| 国产电影精品久久禁18| 91丨porny丨最新| 欧美三级韩国三级日本三斤| 日韩一级欧美一级| 中文一区二区在线观看| 洋洋av久久久久久久一区| 奇米在线7777在线精品| 国产精品一区免费在线观看| 91女神在线视频| 欧美一区二区三区色| 国产精品麻豆久久久| 亚洲国产日韩一区二区| 国产乱码精品一区二区三区五月婷 | 久久综合九色欧美综合狠狠| 国产精品卡一卡二| 亚洲成人福利片| 国产福利91精品| 欧美日韩日本视频| 国产日韩精品久久久| 亚洲成人免费在线观看| 国产精品一线二线三线| 欧美男男青年gay1069videost| 久久久不卡网国产精品一区| 亚洲成人自拍一区| 国产成人精品三级麻豆| 欧美精品123区| 中文字幕在线不卡一区| 蜜臀av一级做a爰片久久| 99re视频精品| 精品国产一区二区三区久久影院| 亚洲欧美激情在线| 国产不卡视频在线观看| 欧美精品色一区二区三区| 国产精品久久久久久久久免费相片| 日产精品久久久久久久性色| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 国产在线精品一区二区不卡了| 色一情一乱一乱一91av| 久久久久久一二三区| 亚洲成人免费av| 97久久超碰精品国产| 精品国产免费视频| 午夜精品久久久久久久久| 99国产欧美久久久精品| 国产日韩欧美不卡| 九九**精品视频免费播放| 欧美色涩在线第一页| 亚洲视频一二三| 成人深夜在线观看| 欧美不卡在线视频| 日韩成人一区二区| 欧美日韩电影一区| 亚洲第一成年网| 欧美最猛性xxxxx直播| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 韩国一区二区在线观看| 欧美一区二区网站| 午夜精品福利久久久| 91久久精品网| 亚洲精品久久久蜜桃| 91污片在线观看| 亚洲三级电影网站| 91在线观看成人| 亚洲黄色小视频| 91麻豆6部合集magnet| 亚洲欧洲无码一区二区三区| 国产成人av电影在线观看| 久久久久久亚洲综合影院红桃| 国产呦精品一区二区三区网站| 日韩视频一区二区三区| 久草在线在线精品观看| 精品国产一区二区三区久久久蜜月| 五月开心婷婷久久| 91精品国产一区二区三区蜜臀| 午夜精品一区二区三区免费视频| 欧美日韩大陆在线| 欧美96一区二区免费视频| 日韩欧美国产一区在线观看| 免费国产亚洲视频| 欧美精品一区二区三区四区| 韩国v欧美v日本v亚洲v| 久久久午夜精品| av在线不卡免费看| 亚洲精品videosex极品| 欧美日韩高清不卡| 久久精品72免费观看| 久久青草国产手机看片福利盒子| 国产黄色精品视频| 中文字幕日本不卡| 欧美色图12p| 老司机精品视频一区二区三区| 欧美精品一区二区三区一线天视频| 国产精品综合在线视频| 国产精品美日韩| 在线一区二区视频| 日韩电影网1区2区| 国产欧美日韩综合精品一区二区| 国内不卡的二区三区中文字幕| 国产日韩亚洲欧美综合| 色哟哟国产精品| 美女www一区二区| 国产精品久久午夜夜伦鲁鲁| av在线不卡观看免费观看| 一区二区三区美女| 日韩美女一区二区三区| 成人综合在线观看| 午夜久久久影院| 欧美国产日韩a欧美在线观看 | 蜜桃av噜噜一区| 国产拍欧美日韩视频二区| 99re这里只有精品视频首页| 日韩激情一二三区| 国产亚洲精品aa午夜观看| www.色精品| 丝袜亚洲另类欧美| 亚洲国产精品二十页| 欧美日韩精品二区第二页| 毛片基地黄久久久久久天堂| 国产精品高潮呻吟久久| 欧美二区三区91| 成人激情动漫在线观看| 一区二区高清免费观看影视大全| 欧美一区二区视频免费观看| 成人精品高清在线| 麻豆精品在线观看| 亚洲视频在线观看三级| 久久久www免费人成精品| 欧美亚洲综合一区| 国产成人啪免费观看软件| 亚洲制服丝袜av| 中文字幕不卡在线观看| 欧美精品乱码久久久久久 | 欧美一三区三区四区免费在线看| 成人手机电影网| 激情另类小说区图片区视频区| 一区二区三区中文免费| 久久久精品蜜桃| 欧美一区二区三区爱爱|