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

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

?? asl_winapp.cpp

?? 泡泡堂單機版(含ASL游戲引擎源碼 泡泡堂單機版(含ASL游戲引擎源碼
?? CPP
字號:
//-----------------------------------------------------------------------------
//
//    ____ Azure Star Game Engine 藍星游戲引擎 ____
//
//    Copyright (c) 2006, 藍星工作室
//    All rights reserved.
//
//    文件名稱: asl_winapp.cpp
//    摘    要: 應用程序框架類實現
//
//    當前版本: 1.0
//    作    者: 湯  祺
//    創建日期: 2006-7-23
//
//-----------------------------------------------------------------------------

#include "asl_winapp.h"
#include "asl_timer.h"

namespace ASL
{

// 全局變量, 指向全局唯一的應用程序對象
ASLWinApp *Application = 0;

//-----------------------------------------------------------------------------
// 函數名: ASLWinApp::ASLWinApp()
// 功  能: 構造函數
// 參  數: [void] - 無
// 返回值: [void] - 無
//-----------------------------------------------------------------------------
ASLWinApp::ASLWinApp(void)
: m_hWnd(NULL)
, m_hInst(GetModuleHandle(0))
, m_dwFixedDelta(0)
, m_Timer(TIMER_PRECISION, false)
, m_nFps(0)
, m_fDelta(0.0f)
, m_bActive(false)
, m_bShowCursor(false)
{
	Application = this;
	EnableMemoryLeakCheck();
}

//-----------------------------------------------------------------------------
// 函數名: ASLWinApp::~ASLWinApp()
// 功  能: 析構函數
// 參  數: [void] - 無
// 返回值: [void] - 無
//-----------------------------------------------------------------------------
ASLWinApp::~ASLWinApp(void)
{
}

//-----------------------------------------------------------------------------
// 函數名: ASLWinApp::Run()
// 功  能: 運行應用程序
// 參  數: [void] - 無
// 返回值: [void] - 無
//-----------------------------------------------------------------------------
void ASLWinApp::Run(void)
{
	ASSERT(m_hWnd != NULL);

	MSG msg;
	
	m_Timer.Play();
	m_bActive = true;

	while (true)
	{
		if (PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))
		{
			if (!GetMessage( &msg, NULL, 0, 0))
			{
				break;
			}
			TranslateMessage(&msg); 
			DispatchMessage(&msg);
		}
		else if (m_bActive)
		{
			DWORD dwTime = m_Timer.GetTime();

			// 間隔達到要求
			if (dwTime >= m_dwFixedDelta)
			{
				// 重置計時器
				m_Timer.Stop();
				m_Timer.Play();

				// 計算FPS
				if (dwTime != 0) // 防止除0錯誤
				{
					m_nFps = TIMER_PRECISION / dwTime;
				}
				else
				{
					m_nFps = TIMER_PRECISION;
				}

				// 計算間隔
				m_fDelta = (float)dwTime / TIMER_PRECISION;
				
				// 執行程序邏輯
				INPUT.Update();
				GUI.Update(m_fDelta);
				OnIdle();
				SCREEN.Update();
			}
		}
		else
		{
			WaitMessage();
		}
	}
}

//-----------------------------------------------------------------------------
// 函數名: ASLWinApp::Create()
// 功  能: 創建應用程序, 必須在Init()中調用
// 參  數: [width]		- 窗口寬度
//         [height]		- 窗口高度
//         [wndName]	- 窗口名
//         [fullScreen]	- 是否全屏
//         [showCursor]	- 是否顯示鼠標指針
//         [waitVSync]	- 是否等待垂直刷新
//         [iconName]	- 圖標名
// 返回值: [void]		- 無
//-----------------------------------------------------------------------------
void ASLWinApp::Create(int width, int height, LPCSTR wndName, bool fullScreen,
	bool showCursor, bool waitVSync, LPCSTR iconName)
{
	// 檢測是否支持MMX指令
	if (!IsMMX())
	{
		MessageBox(0, "CPU不支持MMX指令,程序無法執行!", "錯誤", MB_OK | MB_ICONSTOP);
		exit(1);
	}

	// 注冊窗口
	WNDCLASS wc;

	wc.style			= CS_HREDRAW | CS_VREDRAW;
	wc.lpfnWndProc		= (WNDPROC)_WndProc;
	wc.cbClsExtra		= 0;
	wc.cbWndExtra		= 0;
	wc.hInstance		= m_hInst;
	wc.hCursor			= LoadCursor(NULL, IDC_ARROW);
	wc.hbrBackground	= NULL;//(HBRUSH)GetStockObject(WHITE_BRUSH);
	wc.lpszMenuName		= NULL;
	wc.lpszClassName	= wndName;
	wc.hIcon			= iconName == NULL ? LoadIcon(NULL, IDI_APPLICATION)
							: LoadIcon(m_hInst, iconName);

	RegisterClass(&wc);

	// 創建窗口
	DWORD style;
	RECT rc;

	if (fullScreen)
	{
		style = WS_POPUP;
	}
	else
	{
		style = WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX;
	}
	
	SetRect(&rc, 0, 0, width, height);

	AdjustWindowRect(&rc, style, NULL);
	int w = rc.right - rc.left;
	int h = rc.bottom - rc.top;

	SystemParametersInfo(SPI_GETWORKAREA, NULL, &rc, NULL);
	int x = rc.left + (rc.right - rc.left - w) / 2;
	int y = rc.top + (rc.bottom - rc.top - h) / 2;

	m_hWnd = CreateWindow(wndName, wndName, style,
		x, y, w, h, NULL, NULL, m_hInst, NULL);

	// 顯示窗口
	ShowWindow(m_hWnd, SW_SHOW);

	m_bShowCursor = showCursor;
	SCREEN.Init(m_hWnd, width, height, fullScreen, waitVSync);
	INPUT.Init(m_hWnd);
	AUDIO.Init(m_hWnd);
	GUI.Init(SCREEN);
}

//-----------------------------------------------------------------------------
// 函數名: CALLBACK ASLWinApp::_WndProc()
// 功  能: 窗口消息處理函數
// 參  數: [hWnd]		- 窗口句柄
//         [message]	- 消息類型
//         [wParam]		- 第1輔助參數
//         [lParam]		- 第2輔助參數
// 返回值: [LRESULT]	- 處理結果
//-----------------------------------------------------------------------------
LRESULT CALLBACK ASLWinApp::_WndProc(HWND hWnd, UINT message, 
	WPARAM wParam, LPARAM lParam)
{
	if (Application == NULL)
	{
		return DefWindowProc(hWnd, message, wParam, lParam);
	}

	INPUT.MsgProc(message, wParam, lParam);
	
	switch (message) 
	{
	case WM_SETCURSOR:
		if (Application->m_bActive && LOWORD(lParam) == HTCLIENT)
		{
			if (Application->m_bShowCursor)
			{
				SetCursor(LoadCursor(NULL, IDC_ARROW));
			}
			else
			{
				SetCursor(NULL);
			}
		}
		else
		{
			SetCursor(LoadCursor(NULL, IDC_ARROW));
		}
		break;

	case WM_ACTIVATEAPP:
		Application->m_bActive = wParam == TRUE ? true : false;
		Application->OnActivate(Application->m_bActive);
		if (Application->m_bActive)
		{
			Application->m_Timer.Play();
		}
		else
		{
			Application->m_Timer.Stop();
		}
		break;

	case WM_PAINT:
		ValidateRect(hWnd, NULL);
		break;

	case WM_DESTROY:
		PostQuitMessage(0);
		break;

	case WM_CLOSE:
		if (Application->OnClose())
		{
			Application->m_bActive = false;
			DestroyWindow(hWnd);
		}
		break;

	default:
		return DefWindowProc(hWnd, message, wParam, lParam);
	}

	return 0;
}

} // namespace ASL

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
26uuu另类欧美| 国产三级精品视频| ww久久中文字幕| 中文字幕精品—区二区四季| 1区2区3区精品视频| 亚洲成人一区二区| 国产aⅴ精品一区二区三区色成熟| 99久久精品国产毛片| 欧美吻胸吃奶大尺度电影 | 欧美成人高清电影在线| 国产肉丝袜一区二区| 午夜视频在线观看一区| 激情小说欧美图片| 久久这里只有精品首页| 中文字幕视频一区二区三区久| 午夜婷婷国产麻豆精品| jvid福利写真一区二区三区| 欧美日韩国产高清一区二区| 欧美国产日韩在线观看| 日本不卡在线视频| 色播五月激情综合网| 久久久精品影视| 日韩高清欧美激情| 色综合天天性综合| 国产色产综合色产在线视频| 日韩在线播放一区二区| 色一情一伦一子一伦一区| 欧美日韩在线三区| 国产精品每日更新| 久久99精品久久久久久动态图| 日本高清无吗v一区| 欧美国产日产图区| 韩国理伦片一区二区三区在线播放| 欧美三日本三级三级在线播放| 国产日韩av一区| 国产精品1024| 久久色.com| 久久99久久久欧美国产| 欧美美女一区二区| 亚洲图片有声小说| 91丨九色丨蝌蚪丨老版| 国产精品卡一卡二| 国产夫妻精品视频| 欧美精品一区二区三| 麻豆精品久久精品色综合| 欧美日本韩国一区| 午夜国产不卡在线观看视频| 91视视频在线直接观看在线看网页在线看 | 免费看日韩精品| 欧美视频在线观看一区| 亚洲一级在线观看| 欧美丝袜丝交足nylons图片| 一区二区三区影院| 色综合久久综合网欧美综合网| 欧美精品一区二区三区在线播放| 国产在线精品国自产拍免费| 亚洲综合小说图片| 久久久久久久久蜜桃| 国产在线播精品第三| 欧美精品一区男女天堂| 国产成人av资源| 国产精品视频在线看| 欧美丰满少妇xxxxx高潮对白| 欧美福利视频导航| 亚洲色图都市小说| 精品一区二区三区欧美| 91福利社在线观看| 欧美韩日一区二区三区| 首页亚洲欧美制服丝腿| 91亚洲国产成人精品一区二区三| 日韩欧美久久久| 一区二区三区在线免费播放 | 亚洲综合一区二区三区| 国产精品99久久久| 日韩一区二区三区四区| 亚洲精品第1页| 波多野结衣91| 日本一区二区视频在线观看| 久久爱www久久做| 在线成人免费视频| 视频一区免费在线观看| 欧美亚洲综合一区| 最新欧美精品一区二区三区| 国产福利精品导航| 精品国产乱码91久久久久久网站| 性久久久久久久久久久久| 91久久精品网| 一区二区在线观看视频| 99久久综合99久久综合网站| 久久久电影一区二区三区| 精品中文字幕一区二区| 91精品国产综合久久久蜜臀图片 | 久久超碰97人人做人人爱| 91麻豆精品国产无毒不卡在线观看| 亚洲男人天堂av网| 91久久精品一区二区三区| 日韩理论片在线| 色欧美日韩亚洲| 亚洲一二三区视频在线观看| 欧美午夜免费电影| 亚洲图片自拍偷拍| 欧美精品乱码久久久久久按摩| 午夜精品久久久久影视| 69堂成人精品免费视频| 免费在线看成人av| 337p日本欧洲亚洲大胆色噜噜| 精油按摩中文字幕久久| 国产欧美精品日韩区二区麻豆天美| 国产伦理精品不卡| 国产精品美女视频| 欧洲av在线精品| 日本在线播放一区二区三区| 日韩欧美在线123| 国产精品99久| 一色屋精品亚洲香蕉网站| 色婷婷av一区| 美女一区二区久久| 国产三级三级三级精品8ⅰ区| 成人美女在线视频| 亚洲一卡二卡三卡四卡五卡| 日韩一区二区影院| 99久久精品免费观看| 午夜精品123| 69精品人人人人| 国产伦精品一区二区三区免费| 国产精品免费aⅴ片在线观看| 欧美最猛性xxxxx直播| 黑人巨大精品欧美一区| 亚洲欧洲一区二区三区| 欧美日韩在线直播| 国产在线一区观看| 亚洲综合av网| 久久久精品天堂| 欧美男生操女生| 成年人国产精品| 麻豆中文一区二区| 亚洲情趣在线观看| 久久精品在线免费观看| 欧美肥胖老妇做爰| 91在线视频播放地址| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲欧美偷拍卡通变态| 精品美女被调教视频大全网站| 97精品国产97久久久久久久久久久久 | 亚洲mv大片欧洲mv大片精品| 亚洲精品一区二区三区四区高清| 国产99久久精品| 免费在线观看一区| 亚洲成av人片在线观看| 中文字幕永久在线不卡| 精品国产sm最大网站| 欧美精品丝袜久久久中文字幕| 懂色av中文字幕一区二区三区| 三级一区在线视频先锋| 一区二区三区美女视频| 国产精品视频线看| 日韩一区二区不卡| 欧美精品自拍偷拍| 欧美性受极品xxxx喷水| 99精品国产99久久久久久白柏| 国产v日产∨综合v精品视频| 激情欧美日韩一区二区| 蜜桃视频免费观看一区| 日本欧美一区二区三区乱码| 亚洲图片欧美一区| 亚洲一卡二卡三卡四卡 | 久久久国际精品| 久久网这里都是精品| 欧美tk—视频vk| 日韩美女在线视频| 日韩免费在线观看| 日韩欧美久久一区| 欧美mv日韩mv国产网站| 日韩欧美亚洲一区二区| 7777精品伊人久久久大香线蕉经典版下载 | 欧美电影免费观看高清完整版在线观看| 成人午夜视频福利| 蜜桃一区二区三区在线观看| 亚洲线精品一区二区三区八戒| 一区二区三区色| 午夜伦欧美伦电影理论片| 亚洲成av人片一区二区| 午夜精品久久久久久不卡8050| 亚洲国产乱码最新视频| 无码av中文一区二区三区桃花岛| 亚洲第一激情av| 欧美bbbbb| 国产精品亚洲第一区在线暖暖韩国 | 久久久另类综合| 国产亚洲成av人在线观看导航| 精品日韩在线观看| 亚洲国产岛国毛片在线| 国产清纯美女被跳蛋高潮一区二区久久w | 国产农村妇女毛片精品久久麻豆| 久久久电影一区二区三区| 国产精品白丝在线| 毛片av中文字幕一区二区| 色综合一个色综合| 久久久影院官网| 日韩精品一二区|