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

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

?? glframework.cpp

?? 實戰粒子系統例程
?? CPP
字號:
/*
	glframework.cpp - OpenGL framework
	Copyright (c) HalfLucifer, 2001.6.20
*/
#include "glframework.h"

bool SetScreenResolution(int width, int height, int bpp)
{
	DEVMODE ScreenSettings;
	ZeroMemory(&ScreenSettings, sizeof(DEVMODE));
	ScreenSettings.dmSize		= sizeof(DEVMODE);
	ScreenSettings.dmPelsWidth	= width;
	ScreenSettings.dmPelsHeight	= height;
	ScreenSettings.dmBitsPerPel	= bpp;
	ScreenSettings.dmFields		= DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;
	if (ChangeDisplaySettings (&ScreenSettings, CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL)
		return FALSE;
	return TRUE;
}

LRESULT CALLBACK WindowProcedure(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch (uMsg)
	{
		case WM_SYSCOMMAND:
		{
			switch (wParam)
			{
				case SC_SCREENSAVE:
				case SC_MONITORPOWER:
				return 0;
			}
			break;
		}
		return 0;

		case WM_CLOSE:
			PostQuitMessage(0);
		return 0;
			
		case WM_SIZE:
			switch (wParam)
			{
				case SIZE_MINIMIZED:
					VISIBLE_FLAG = false;
				return 0;

				case SIZE_MAXIMIZED:
					VISIBLE_FLAG = true;
					glReshape(LOWORD(lParam), HIWORD(lParam));
				return 0;

				case SIZE_RESTORED:
					VISIBLE_FLAG = true;
					glReshape(LOWORD(lParam), HIWORD(lParam));
				return 0;
			}
		break;
	}

	return DefWindowProc (hWnd, uMsg, wParam, lParam);
}

bool glCreateWindow(char *title, int width, int height, int bpp, bool fsflag)
{
	unsigned int	PixelFormat;
	WNDCLASS		WindowClass;
	DWORD			WindowExStyle;
	DWORD			WindowStyle;
	RECT			WindowRect;

	WindowRect.left		= (long)0;
	WindowRect.top		= (long)0;
	WindowRect.right	= (long)width;
	WindowRect.bottom	= (long)height;
	FULLSCREEN_FLAG		= fsflag;

	hInstance					= GetModuleHandle(NULL);
	WindowClass.style			= CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
	WindowClass.lpfnWndProc		= (WNDPROC) WindowProcedure;
	WindowClass.cbClsExtra		= 0;
	WindowClass.cbWndExtra		= 0;
	WindowClass.hInstance		= hInstance;
	WindowClass.hIcon			= LoadIcon(NULL, IDI_WINLOGO);
	WindowClass.hCursor			= LoadCursor(NULL, IDC_ARROW);
	WindowClass.hbrBackground	= NULL;
	WindowClass.lpszMenuName	= NULL;
	WindowClass.lpszClassName	= "OpenGLFrameWork";

	if (!RegisterClass(&WindowClass))
	{
		MessageBox(NULL,"RegisterClass() Error","ERROR",MB_OK|MB_ICONEXCLAMATION);
		return FALSE;
	}
	
	if (fsflag)
	{
		if (!SetScreenResolution(width, height, bpp))
		{
			MessageBox(HWND_DESKTOP, "SetScreenResolution() Error", "ERROR", MB_OK | MB_ICONEXCLAMATION);
			FULLSCREEN_FLAG = false;
		}
		else
		{
			ShowCursor(FALSE);
			WindowStyle = WS_POPUP;
			WindowExStyle = WS_EX_APPWINDOW;
		}	
	}
	else
	{
		WindowStyle = WS_OVERLAPPEDWINDOW;
		WindowExStyle = WS_EX_APPWINDOW | WS_EX_WINDOWEDGE;
		AdjustWindowRectEx(&WindowRect, WindowStyle, 0, WindowExStyle);
	}

	if ( !( hWnd = CreateWindowEx( WindowExStyle,
								   "OpenGLFrameWork",
								   title,
								   WindowStyle |
								   WS_CLIPSIBLINGS |
								   WS_CLIPCHILDREN,
								   0, 0,
								   WindowRect.right-WindowRect.left,
								   WindowRect.bottom-WindowRect.top,
								   NULL,
								   NULL,
								   hInstance,
								   NULL ) ) )
	{
		glDestroyWindow();
		MessageBox(NULL,"CreateWindowEx() Error","ERROR",MB_OK|MB_ICONEXCLAMATION);
		return FALSE;
	}

	static	PIXELFORMATDESCRIPTOR pfd=
	{
		sizeof(PIXELFORMATDESCRIPTOR),				// Size of the pixel format descriptor
		1,											// Version number
		PFD_DRAW_TO_WINDOW |						// Format must support window
		PFD_SUPPORT_OPENGL |						// Format must support openGL
		PFD_DOUBLEBUFFER,							// Must support double buffering
		PFD_TYPE_RGBA,								// Request an RGBA format
		bpp,										// Select color depth
		0, 0, 0, 0, 0, 0,							// Color bits ignored
		0,											// No alpha buffer
		0,											// Shift bit ignored
		0,											// No accumulation buffer
		0, 0, 0, 0,									// Accumulation bits ignored
		16,											// 16bits Z-buffer (depth buffer)  
		0,											// No stencil buffer
		0,											// No auxiliary buffer
		PFD_MAIN_PLANE,								// Main drawing layer
		0,											// Reserved
		0, 0, 0										// Layer masks ignored
	};
	
	if (!(hDC=GetDC(hWnd)))
	{
		glDestroyWindow();
		MessageBox(NULL,"GetDC() Error","ERROR",MB_OK|MB_ICONEXCLAMATION);
		return FALSE;
	}

	if (!(PixelFormat=ChoosePixelFormat(hDC,&pfd)))
	{
		glDestroyWindow();
		MessageBox(NULL,"ChoosePixelFormat() Error","ERROR",MB_OK|MB_ICONEXCLAMATION);
		return FALSE;
	}

	if(!SetPixelFormat(hDC,PixelFormat,&pfd))
	{
		glDestroyWindow();
		MessageBox(NULL,"SetPixelFormat() Error","ERROR",MB_OK|MB_ICONEXCLAMATION);
		return FALSE;
	}

	if (!(hRC=wglCreateContext(hDC)))
	{
		glDestroyWindow();
		MessageBox(NULL,"wglCreateContext() Error","ERROR",MB_OK|MB_ICONEXCLAMATION);
		return FALSE;
	}

	if(!wglMakeCurrent(hDC,hRC))
	{
		glDestroyWindow();
		MessageBox(NULL,"wglMakeCurrent() Error","ERROR",MB_OK|MB_ICONEXCLAMATION);
		return FALSE;
	}

	ShowWindow(hWnd,SW_SHOW);
	SetForegroundWindow(hWnd);
	SetFocus(hWnd);
	glReshape(width, height);
	VISIBLE_FLAG = true;

	return true;
}

bool glDestroyWindow(void)
{
	if (FULLSCREEN_FLAG)
	{
		ChangeDisplaySettings(NULL,0);
		ShowCursor(true);
	}

	if (hWnd != NULL)
	{	
		if (hDC != NULL)
		{
			wglMakeCurrent(hDC, NULL);
			if (hRC != NULL)
			{
				wglDeleteContext(hRC);
				hRC = NULL;
			}
			ReleaseDC (hWnd, hDC);
			hDC = NULL;
		}
		DestroyWindow (hWnd);
		hWnd = NULL;
	}

	UnregisterClass("OpenGLFrameWork", hInstance);

	return true;
}

int WINAPI WinMain(HINSTANCE hInstance,	HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	MSG		msg;
	bool	fsflag = true;

	if (MessageBox(NULL,"Would You Like To Run In Fullscreen Mode?", "Start FullScreen?",MB_YESNO|MB_ICONQUESTION)==IDNO)
		fsflag = false;
	
	if (glCreateWindow("HalfLucifer's OpenGL Framework", 800, 600, 32, fsflag))
	{
		if (!glInitialize())
		{
			glDestroyWindow();
			MessageBox(NULL,"glInitialize() Error","ERROR",MB_OK|MB_ICONEXCLAMATION);
		}
		else
		{
			while (!PROGRAM_QUIT)
			{
				if (PeekMessage(&msg, hWnd, 0, 0, PM_REMOVE) != 0)
				{
					if (msg.message != WM_QUIT)
						DispatchMessage(&msg);
					else
						PROGRAM_QUIT = true;
				}
				else
				{
					if (VISIBLE_FLAG == false)
						WaitMessage();
					else
					{
					// Begin of application main loop
						glDrawScene();							// Draw Scene
						SwapBuffers(hDC);						// Swap Buffers (Double Buffering)
					// End of application main loop
					}
				}
			}
		}
	}

	glDestroyWindow();
	return (msg.wParam);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本欧美久久久久免费播放网| 亚洲综合丝袜美腿| 欧美乱妇23p| 91成人网在线| 欧美视频一区二区| 在线亚洲+欧美+日本专区| 91网站在线观看视频| 成人黄色电影在线| 一本到不卡精品视频在线观看| 99久久久久免费精品国产| 波多野结衣精品在线| 99久精品国产| 欧美酷刑日本凌虐凌虐| 欧美酷刑日本凌虐凌虐| 3d动漫精品啪啪一区二区竹菊| 日韩一区二区高清| 精品国产精品网麻豆系列| 久久精品一区蜜桃臀影院| 国产精品系列在线| 一区二区在线电影| 亚洲超碰精品一区二区| 精品一区二区三区久久久| 国产精品99久久久久| av中文字幕不卡| 欧美天堂亚洲电影院在线播放| 欧美日韩一卡二卡三卡 | 国产精品少妇自拍| 亚洲人快播电影网| 五月天久久比比资源色| 成人美女在线观看| 不卡的电影网站| 欧美日韩精品欧美日韩精品一综合| 日韩一区和二区| 国产精品传媒视频| 日本一区中文字幕| 国产成人精品三级麻豆| 欧美久久一二三四区| 国产精品毛片a∨一区二区三区| 一区二区国产视频| 国产剧情一区二区| 欧美日韩精品二区第二页| 精品精品国产高清a毛片牛牛| 国产精品久久三| 久久精品免费观看| 99精品偷自拍| 久久久精品综合| 肉色丝袜一区二区| 一本色道久久综合精品竹菊| 日韩精品影音先锋| 一区二区三区免费看视频| 精品一区免费av| 欧美人与禽zozo性伦| 亚洲欧美成人一区二区三区| 国产一区二区三区国产| 91精品国产综合久久精品app| 国产精品国产三级国产aⅴ中文| 蜜桃视频在线观看一区| 欧美影片第一页| 国产精品视频一区二区三区不卡| 男女男精品网站| 欧美性淫爽ww久久久久无| 中文字幕日韩一区| 成人中文字幕合集| 久久久精品2019中文字幕之3| 日韩激情视频网站| 欧美日韩极品在线观看一区| 亚洲精品高清在线| 9i在线看片成人免费| 精品欧美一区二区久久| 奇米777欧美一区二区| 欧美一级生活片| 日本欧美一区二区三区| 欧美一级高清片| 日本午夜精品视频在线观看| 51精品国自产在线| 欧美96一区二区免费视频| 日韩三级电影网址| 久久99热国产| 久久精品网站免费观看| 国产一区二区伦理| 国产欧美视频一区二区| 国产一区二区三区精品视频| 国产视频亚洲色图| 成人激情视频网站| 亚洲天堂精品在线观看| 91麻豆国产香蕉久久精品| 亚洲精品第1页| 欧美午夜在线观看| 五月天丁香久久| 欧美电视剧免费全集观看 | 久久亚洲一区二区三区明星换脸| 国内精品免费**视频| 久久久91精品国产一区二区三区| 成人综合婷婷国产精品久久免费| 亚洲日本在线天堂| 欧美日韩高清一区二区不卡| 日本最新不卡在线| 久久久久久久久久久久电影| 91免费视频大全| 午夜伦欧美伦电影理论片| 欧美va亚洲va香蕉在线| 处破女av一区二区| 亚洲午夜私人影院| 精品久久久久香蕉网| 成人动漫一区二区在线| 五月婷婷激情综合| 国产女人18毛片水真多成人如厕 | 91麻豆.com| 蜜臀91精品一区二区三区| 久久久精品天堂| 欧美曰成人黄网| 美腿丝袜亚洲三区| 中文字幕在线视频一区| 欧美日韩夫妻久久| 成人高清免费观看| 裸体歌舞表演一区二区| 亚洲精品精品亚洲| 久久久午夜精品| 在线电影欧美成精品| 色综合天天性综合| 偷窥国产亚洲免费视频| 国产精品丝袜一区| 精品日本一线二线三线不卡| 欧美性生交片4| 成人一区二区视频| 奇米影视一区二区三区小说| 亚洲欧美一区二区三区久本道91| 日韩一二三四区| 一本久久a久久精品亚洲| 国产99精品国产| 久久99日本精品| 日本怡春院一区二区| 亚洲色图.com| 日本一二三四高清不卡| 日韩精品中文字幕在线不卡尤物 | 亚洲一区二区视频在线观看| 国产日韩av一区| 欧美成人性战久久| 在线成人av影院| 欧美在线三级电影| 91麻豆国产福利在线观看| 成人小视频免费观看| 国产精品99久久久久久似苏梦涵| 人人超碰91尤物精品国产| 亚洲sss视频在线视频| 亚洲裸体xxx| 亚洲欧美在线观看| 亚洲国产成人在线| 国产欧美日韩在线| 国产视频一区二区在线| 中文字幕乱码一区二区免费| 精品国产乱码久久久久久浪潮| 欧美成人a视频| 精品日韩在线观看| 国产日韩欧美一区二区三区乱码| 久久综合狠狠综合久久综合88| 欧美电影免费观看高清完整版| 91精品国产欧美一区二区18| 欧美一区二视频| 日韩一区二区视频| 欧美r级在线观看| 久久女同精品一区二区| 欧美国产日本视频| 亚洲图片另类小说| 亚洲国产精品嫩草影院| 日韩在线观看一区二区| 美洲天堂一区二卡三卡四卡视频| 激情图片小说一区| 成人小视频免费在线观看| 色一情一伦一子一伦一区| 欧美午夜在线观看| 精品盗摄一区二区三区| 欧美激情一区二区三区蜜桃视频| 国产精品美女www爽爽爽| 亚洲精品videosex极品| 日本va欧美va精品发布| 韩国av一区二区三区| 成人av网站免费| 欧美亚洲综合另类| 日韩免费观看高清完整版| 久久久久免费观看| 亚洲精品伦理在线| 极品少妇xxxx精品少妇偷拍| a亚洲天堂av| 欧美日韩免费视频| 久久久亚洲精华液精华液精华液| 亚洲欧美自拍偷拍色图| 日本成人中文字幕| 不卡的电视剧免费网站有什么| 欧美日韩亚洲综合在线| 日本一区二区三区高清不卡 | 欧美电影免费观看高清完整版在线| 欧美国产一区在线| 五月激情综合网| 99久久精品免费看| 久久影院视频免费| 亚洲一区二区三区激情| 成人免费视频网站在线观看| 91精品国产色综合久久久蜜香臀| 久久久久久久综合狠狠综合|