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

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

?? cd3dapp.cpp

?? 俄羅斯方塊3D 程序+源碼俄羅斯方塊3D(程序+源碼
?? CPP
字號:
#include "CD3DApp.h"
#include "normal.h"
#include "MsgHelp.h"
#include "3dhelp.h"
#include "CShakingCamera.h"
#include "CSnapshot.h"
#include "CLight.h"
#include "CMaterialManager.h"
#include "CGameRender.h"


extern CShakingCamera		theCamera;
extern CSnapshot	theSnapshot;
extern CLight		theLight;
extern CMaterialManager		theMaterialManager;				//材質管理器
extern CGameRender	theGameRender;


CD3DApp::CD3DApp()
{
	m_pD3D9 = NULL;
	m_pDevice = NULL;
	m_Color = D3DCOLOR_XRGB( 128, 128, 128 );
}

CD3DApp::~CD3DApp()
{

}

/////////////////////////////////////////////////////////////////////
//初始化D3D
/////////////////////////////////////////////////////////////////////
bool CD3DApp::InitD3D( bool IsWindow, HWND hWnd )
{
	HRESULT hr;

	//獲取D3D9對象指針:
	m_pD3D9 = Direct3DCreate9( D3D_SDK_VERSION );
	if ( m_pD3D9 == NULL )
	{
		Warn( "DX版本不符請正確安裝DX9版本" );
		return false;
	}

	//獲取當前顯示模式:
	D3DDISPLAYMODE d3dDisplayMode;
	hr = m_pD3D9->GetAdapterDisplayMode( D3DADAPTER_DEFAULT, 
										&d3dDisplayMode );
	if ( FAILED( hr ) )
	{
		Warn( "獲取顯示模式失敗" );
		return false;
	}

	//檢測硬件支持
	DWORD vp = 0;
	D3DCAPS9 d3dcaps;
	hr = m_pD3D9->GetDeviceCaps( D3DADAPTER_DEFAULT,
								D3DDEVTYPE_HAL, &d3dcaps );
	if ( FAILED( hr ) )
	{
		Warn( "檢測硬件失敗" );
		return false;
	}

	if ( d3dcaps.DevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT )
	{
		vp = D3DCREATE_HARDWARE_VERTEXPROCESSING;
	}
	else
	{
		vp = D3DCREATE_SOFTWARE_VERTEXPROCESSING;
		Warn( "不支持3D加速功能" );
	}
	

	//獲取窗口寬高:
	RECT rc;
	GetClientRect( hWnd, &rc );
	
	//填充D3DPRESENT_PARAMETERS
	D3DPRESENT_PARAMETERS m_d3dpp;
	ZeroMemory( &m_d3dpp, sizeof( D3DPRESENT_PARAMETERS ) );
	
	m_d3dpp.BackBufferWidth = rc.right - rc.left;
	m_d3dpp.BackBufferHeight = rc.bottom - rc.top;


	m_d3dpp.BackBufferFormat = d3dDisplayMode.Format;
	m_d3dpp.BackBufferCount = 1;

	m_d3dpp.hDeviceWindow = hWnd;
	m_d3dpp.Windowed = IsWindow;
	m_d3dpp.EnableAutoDepthStencil = TRUE;			//FALSE;
	m_d3dpp.AutoDepthStencilFormat = D3DFMT_D16;	//D3DFMT_UNKNOWN;
	m_d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;		//D3DSWAPEFFECT_FLIP
	m_d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE; //D3DPRESENT_INTERVAL_DEFAULT
	hr = m_pD3D9->CreateDevice( D3DADAPTER_DEFAULT,
								D3DDEVTYPE_HAL,
								hWnd,
								vp,
								&m_d3dpp,
								&m_pDevice
								);
	if ( FAILED( hr ) )
	{
		Warn( "創建設備失敗" );
		return false;
	}

	return true;	
}

/////////////////////////////////////////////////////////////////////
//釋放D3D
/////////////////////////////////////////////////////////////////////
void CD3DApp::FreeD3D()
{
	SafeRelease( m_pDevice );
	SafeRelease( m_pD3D9 );
}

/////////////////////////////////////////////////////////////////////
//初始化圖形層
/////////////////////////////////////////////////////////////////////
bool CD3DApp::InitApp()
{
	if ( !theSnapshot.Init() )
	{
		Warn( "Snapshot init failed" );
		return false;
	}
	
	if ( !theMaterialManager.Init() )
	{
		Warn( "MaterialManager init failed" );
		return false;
	}

	if ( !theGameRender.Init( m_pDevice ) )
	{
		Warn( "GameRender init failed" );
		return false;
	}

	theCamera.LookAtZ( -4.5f );
	theCamera.RotationR( AngleToRadian(15.0f ) );
	return true;
}

/////////////////////////////////////////////////////////////////////
//釋放圖形層
/////////////////////////////////////////////////////////////////////
void CD3DApp::FreeApp()
{
	theSnapshot.Free();

	theMaterialManager.Free();

	theGameRender.Free();
}

/////////////////////////////////////////////////////////////////////
//渲染
/////////////////////////////////////////////////////////////////////
void CD3DApp::Render()
{
	if ( m_pDevice == NULL ) return;

	//設置視圖矩陣:
	D3DXMATRIX v;
	theCamera.GetViewMatirx( v );
	m_pDevice->SetTransform( D3DTS_VIEW, &v );

	//設置投影矩陣:
	D3DXMATRIX m;
	D3DXMatrixPerspectiveFovLH( &m,
								D3DX_PI / 4.0f,
								(float)800 / (float)600,
								1.0f,
								500.0f
								);

	m_pDevice->SetTransform( D3DTS_PROJECTION, &m );

	//清空表面:
	m_pDevice->Clear( 0, NULL,
					  D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER,	
					  m_Color,
					  1.0f, 0
					);


	//繪制:
	m_pDevice->BeginScene();

	theLight.SetLight( m_pDevice );
	

	theGameRender.Draw( m_pDevice );

	m_pDevice->EndScene();
	theSnapshot.ScreenShot( m_pDevice );
	m_pDevice->Present( NULL, NULL, NULL, NULL );
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品乱码av一区二区| 久久精品国产亚洲aⅴ| 亚洲成av人在线观看| 国产ts人妖一区二区| 91精品国产麻豆| 最近中文字幕一区二区三区| 久久99精品久久久久久动态图| 色激情天天射综合网| 国产免费观看久久| 五月婷婷激情综合网| 91免费版在线看| 国产色产综合色产在线视频| 日本美女一区二区三区视频| 欧美视频在线一区| 亚洲视频一区二区免费在线观看| 国产一区二区三区精品视频| 日韩免费看的电影| 丝瓜av网站精品一区二区| 91久久精品日日躁夜夜躁欧美| 国产精品美女久久久久久2018| 裸体在线国模精品偷拍| 欧美高清视频在线高清观看mv色露露十八| 亚洲色欲色欲www| 97精品国产97久久久久久久久久久久| 国产精品色一区二区三区| 国产成人精品综合在线观看| 久久新电视剧免费观看| 黑人巨大精品欧美黑白配亚洲| 日韩视频一区二区| 蜜桃视频在线一区| 91精品国产91热久久久做人人| 五月激情六月综合| 欧美日韩成人在线| 美女看a上一区| 精品久久五月天| 美日韩一级片在线观看| 日韩精品一区二区三区视频在线观看| 久久精品国产亚洲5555| 欧美xxx久久| 成人综合婷婷国产精品久久蜜臀| 国产精品人妖ts系列视频| 国产suv精品一区二区6| 国产精品视频在线看| 色美美综合视频| 亚洲国产一区二区三区青草影视| 91精品婷婷国产综合久久竹菊| 青青草原综合久久大伊人精品 | 2欧美一区二区三区在线观看视频| www.亚洲激情.com| 亚洲视频一区在线观看| 欧美日韩在线观看一区二区| 视频一区二区三区在线| 久久综合狠狠综合| 99re视频这里只有精品| 亚洲高清视频中文字幕| 精品国产a毛片| 成人丝袜视频网| 洋洋av久久久久久久一区| 在线播放/欧美激情| 国产综合久久久久久久久久久久| 中文字幕高清一区| 欧美日韩不卡一区二区| 国产乱码精品一区二区三| 日韩伦理av电影| 欧美一级久久久久久久大片| 国产成人在线视频播放| 午夜精品福利一区二区三区av| 欧美xxxx在线观看| 色婷婷av一区二区三区gif| 免费av网站大全久久| 中文字幕中文字幕在线一区 | 国产精品的网站| 欧美福利电影网| 成人性生交大片| 蜜臀精品一区二区三区在线观看| 国产精品区一区二区三| 欧美美女一区二区在线观看| 成人激情图片网| 美腿丝袜亚洲三区| 亚洲一区二区三区三| 国产欧美日本一区视频| 日韩免费观看高清完整版 | 亚洲图片欧美色图| 国产蜜臀av在线一区二区三区| 在线不卡中文字幕| 一本到三区不卡视频| 国产成人亚洲综合色影视| 奇米777欧美一区二区| 亚洲综合在线观看视频| 欧美激情一区二区在线| 日韩欧美视频一区| 欧洲精品一区二区| 99r国产精品| 成人精品免费看| 国产黄色成人av| 激情久久久久久久久久久久久久久久| 亚洲成人午夜电影| 一二三区精品视频| 亚洲日本中文字幕区| 国产日韩亚洲欧美综合| 精品国产乱码久久久久久1区2区 | 中文字幕中文字幕中文字幕亚洲无线| 日韩精品一区二区三区在线观看| 欧美人妖巨大在线| 欧美日韩在线播放一区| 在线观看亚洲精品视频| 色悠悠久久综合| 97久久久精品综合88久久| 成人教育av在线| caoporen国产精品视频| av欧美精品.com| av在线不卡免费看| 91蜜桃免费观看视频| 99re这里只有精品视频首页| 99re在线视频这里只有精品| 91丨porny丨户外露出| 91网站最新地址| 在线欧美日韩国产| 欧美日韩卡一卡二| 欧美日韩精品福利| 日韩欧美不卡在线观看视频| 91精品国产综合久久福利软件| 欧美一级免费大片| 久久久久国色av免费看影院| 日本一区免费视频| 亚洲男同性恋视频| 五月婷婷综合网| 美女诱惑一区二区| 国产成人自拍网| av网站免费线看精品| 欧洲在线/亚洲| 欧美一区二区三区在线看| 精品国产凹凸成av人网站| 国产拍揄自揄精品视频麻豆| 亚洲精选一二三| 三级久久三级久久久| 激情综合网最新| 99精品国产一区二区三区不卡| 99久久99久久精品免费观看| 欧美三片在线视频观看| 精品99999| 最新热久久免费视频| 蜜桃传媒麻豆第一区在线观看| 国产精品18久久久久久久久久久久| 99视频精品在线| 5566中文字幕一区二区电影| 久久精品欧美日韩精品| 夜夜夜精品看看| 国产一区二区精品久久| 色中色一区二区| 精品播放一区二区| 亚洲国产日韩一区二区| 国产一区二区伦理| 欧美这里有精品| 国产亚洲一区二区在线观看| 一区二区三区精品在线| 激情久久久久久久久久久久久久久久| 91丨porny丨在线| 精品成人一区二区三区| 亚洲午夜激情av| 成人动漫精品一区二区| 日韩欧美久久一区| 亚洲影院理伦片| 岛国精品在线观看| 欧美一区二区在线观看| 成人欧美一区二区三区白人| 麻豆专区一区二区三区四区五区| 91美女视频网站| 久久精品夜色噜噜亚洲aⅴ| 全部av―极品视觉盛宴亚洲| 在线观看国产精品网站| 国产精品视频yy9299一区| 久久99精品久久久| 欧美日韩成人激情| 亚洲自拍另类综合| 不卡视频免费播放| 国产日韩亚洲欧美综合| 蜜臀精品一区二区三区在线观看 | 国产亚洲一二三区| 日本亚洲最大的色成网站www| 91啦中文在线观看| 成人欧美一区二区三区视频网页| 国产福利一区在线| 久久综合成人精品亚洲另类欧美| 秋霞影院一区二区| 欧美精品一级二级| 五月天丁香久久| 欧美美女激情18p| 亚洲成人免费av| 欧美日韩精品久久久| 亚洲午夜一二三区视频| 欧美网站一区二区| 亚洲午夜成aⅴ人片| 欧美午夜在线一二页| 亚洲综合色自拍一区| 欧美私人免费视频| 日韩影院免费视频| 欧美一区午夜视频在线观看| 日本午夜精品视频在线观看| 欧美一级二级三级乱码|