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

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

?? graphicswindow.cpp

?? 骨骼動畫....把魔獸模型解出的代碼..
?? CPP
字號:
//+-----------------------------------------------------------------------------
//| Included files
//+-----------------------------------------------------------------------------
#include "GraphicsWindow.h"


//+-----------------------------------------------------------------------------
//| Constructor
//+-----------------------------------------------------------------------------
GRAPHICS_WINDOW::GRAPHICS_WINDOW()
{
	Window = NULL;
	SwapChain = NULL;
	BackBuffer = NULL;
	ZBuffer = NULL;

	Width = 0;
	Height = 0;
	ScreenAspect = 0.0f;

	GraphicsWindowReference.SetData(this);
}


//+-----------------------------------------------------------------------------
//| Destructor
//+-----------------------------------------------------------------------------
GRAPHICS_WINDOW::~GRAPHICS_WINDOW()
{
	Destroy();
}


//+-----------------------------------------------------------------------------
//| Creates a new graphics window
//+-----------------------------------------------------------------------------
BOOL GRAPHICS_WINDOW::Create(HWND NewWindow)
{
	RECT TempRect;
	GRAPHICS_INFO* NewGraphicsInfo;

	Destroy();

	Window = NewWindow;

	::GetClientRect(Window, &TempRect);
	Width = TempRect.right;
	Height = TempRect.bottom;
	ScreenAspect = (Height == 0) ? 0.0f : (static_cast<FLOAT>(Width) / static_cast<FLOAT>(Height));

	NewGraphicsInfo = Graphics.GetGraphicsInfo();
	if(NewGraphicsInfo == NULL)
	{
		Error.SetMessage("Unable to retrieve the Direct3D device info!");
		return FALSE;
	}

	GraphicsInfo = (*NewGraphicsInfo);
	GraphicsInfo.DeviceInfo.BackBufferWidth = Width;
	GraphicsInfo.DeviceInfo.BackBufferHeight = Height;

	if(!Acquire()) return FALSE;

	GraphicsWindowReference.Attach(Graphics.GraphicsWindowReferenceObject);

	return TRUE;
}


//+-----------------------------------------------------------------------------
//| Destroys the graphics window
//+-----------------------------------------------------------------------------
VOID GRAPHICS_WINDOW::Destroy()
{
	GraphicsWindowReference.Detach();

	Release();

	Window =  NULL;
	SwapChain = NULL;
	BackBuffer = NULL;
	ZBuffer = NULL;

	Width = 0;
	Height = 0;
	ScreenAspect = 0.0f;
}


//+-----------------------------------------------------------------------------
//| Resets the graphics window
//+-----------------------------------------------------------------------------
BOOL GRAPHICS_WINDOW::Reset()
{
	Release();

	if(!Acquire()) return FALSE;

	return TRUE;
}


//+-----------------------------------------------------------------------------
//| Resizes the graphics window
//+-----------------------------------------------------------------------------
BOOL GRAPHICS_WINDOW::Resize()
{
	RECT TempRect;

	::GetClientRect(Window, &TempRect);
	Width = TempRect.right;
	Height = TempRect.bottom;
	ScreenAspect = (Height == 0) ? 0.0f : (static_cast<FLOAT>(Width) / static_cast<FLOAT>(Height));

	GraphicsInfo.DeviceInfo.BackBufferWidth = Width;
	GraphicsInfo.DeviceInfo.BackBufferHeight = Height;

	if(!Reset()) return FALSE;

	return TRUE;
}


//+-----------------------------------------------------------------------------
//| Returns the window pointer
//+-----------------------------------------------------------------------------
HWND GRAPHICS_WINDOW::GetWindow()
{
	return Window;
}


//+-----------------------------------------------------------------------------
//| Returns the swapchain pointer
//+-----------------------------------------------------------------------------
LPDIRECT3DSWAPCHAIN9 GRAPHICS_WINDOW::GetSwapChain()
{
	return SwapChain;
}


//+-----------------------------------------------------------------------------
//| Returns the Z-buffer
//+-----------------------------------------------------------------------------
LPDIRECT3DSURFACE9 GRAPHICS_WINDOW::GetZBuffer()
{
	return ZBuffer;
}


//+-----------------------------------------------------------------------------
//| Returns the back buffer
//+-----------------------------------------------------------------------------
LPDIRECT3DSURFACE9 GRAPHICS_WINDOW::GetBackBuffer()
{
	return BackBuffer;
}


//+-----------------------------------------------------------------------------
//| Returns the width
//+-----------------------------------------------------------------------------
INT GRAPHICS_WINDOW::GetWidth()
{
	return Width;
}


//+-----------------------------------------------------------------------------
//| Returns the height
//+-----------------------------------------------------------------------------
INT GRAPHICS_WINDOW::GetHeight()
{
	return Height;
}


//+-----------------------------------------------------------------------------
//| Returns the screen aspect
//+-----------------------------------------------------------------------------
FLOAT GRAPHICS_WINDOW::GetScreenAspect()
{
	return ScreenAspect;
}


//+-----------------------------------------------------------------------------
//| Acquires the swap chain
//+-----------------------------------------------------------------------------
BOOL GRAPHICS_WINDOW::Acquire()
{
	LPDIRECT3DDEVICE9 Direct3DDevice;

	Direct3DDevice = Graphics.GetDevice();
	if(Direct3DDevice == NULL)
	{
		Error.SetMessage("Unable to retrieve the Direct3D device!");
		return FALSE;
	}

	if(FAILED(Direct3DDevice->CreateAdditionalSwapChain(&GraphicsInfo.DeviceInfo, &SwapChain)))
	{
		Error.SetMessage("Unable to create a new swap chain!");
		return FALSE;
	}

	if(FAILED(SwapChain->GetBackBuffer(0, D3DBACKBUFFER_TYPE_MONO, &BackBuffer)))
	{
		Error.SetMessage("Unable to retrieve the swap chain back buffer!");
		return FALSE;
	}

	if(Width <= 0) return TRUE;
	if(Height <= 0) return TRUE;

	if(FAILED(Direct3DDevice->CreateDepthStencilSurface(Width, Height, GraphicsInfo.DeviceInfo.AutoDepthStencilFormat, D3DMULTISAMPLE_NONE, 0, TRUE, &ZBuffer, NULL)))
	{
		Error.SetMessage("Unable to create a new swap chain Z-buffer!");
		return FALSE;
	}

	return TRUE;
}


//+-----------------------------------------------------------------------------
//| Releases the swap chain
//+-----------------------------------------------------------------------------
VOID GRAPHICS_WINDOW::Release()
{
	SAFE_RELEASE(ZBuffer);
	SAFE_RELEASE(BackBuffer);
	SAFE_RELEASE(SwapChain);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品中文欧美| 中文一区二区在线观看| 欧美大片免费久久精品三p| 欧美大片免费久久精品三p| 久久嫩草精品久久久精品一| 国产人成亚洲第一网站在线播放| 亚洲国产精品精华液2区45| 一区二区三区在线视频观看58| 亚洲va在线va天堂| 国产一区二区在线视频| 一本色道a无线码一区v| 精品福利一二区| 亚洲精品五月天| 国产精品888| 欧美剧在线免费观看网站| 国产亚洲一区二区三区四区 | 国产精品区一区二区三区| 亚洲视频 欧洲视频| 久久99久久久久| 91久久精品一区二区三区| 久久综合久久综合久久| 亚洲国产精品嫩草影院| 国产成人一级电影| 欧美一区二区三区视频在线观看| 久久精品综合网| 免费看日韩a级影片| 色一情一伦一子一伦一区| xf在线a精品一区二区视频网站| 亚洲一区二区三区四区中文字幕 | 色成人在线视频| 国产性天天综合网| 激情小说亚洲一区| 日韩欧美国产一区二区在线播放 | 精品国产乱码久久久久久牛牛 | 偷拍与自拍一区| 欧美性videosxxxxx| 亚洲欧洲三级电影| 成人一区二区三区视频| 久久青草国产手机看片福利盒子| 视频一区二区国产| 欧美人妇做爰xxxⅹ性高电影| 亚洲色图色小说| 日本乱码高清不卡字幕| 亚洲区小说区图片区qvod| 91在线国内视频| 亚洲乱码精品一二三四区日韩在线| 丁香亚洲综合激情啪啪综合| 国产午夜精品久久久久久久| 国产一区二区在线视频| 中文字幕精品在线不卡| 成人精品国产一区二区4080| 国产精品理论在线观看| 色一区在线观看| 亚洲综合色噜噜狠狠| 91精品国产综合久久久蜜臀粉嫩| 日韩国产成人精品| 欧美精品一区二区三区蜜桃视频| 国产一区二区在线观看视频| 国产人妖乱国产精品人妖| 国产大陆亚洲精品国产| 亚洲日本电影在线| 日韩一区二区在线观看视频| 成人aaaa免费全部观看| 日日嗨av一区二区三区四区| 久久精品无码一区二区三区| 在线精品观看国产| 国产成人在线色| 日韩电影免费在线看| 中文字幕一区二区三区精华液 | 欧美一区二区三区电影| 成人免费av网站| 久色婷婷小香蕉久久| 一区二区三区四区视频精品免费 | 欧美亚洲高清一区二区三区不卡| 91国偷自产一区二区使用方法| 亚洲一区欧美一区| 国产精品乱码一区二三区小蝌蚪| 欧美一区二区三区在线观看 | 亚洲在线视频一区| 国产精品国产三级国产| 久久亚洲一级片| 欧美一卡2卡三卡4卡5免费| 在线一区二区三区四区五区 | 欧美一区二区黄色| 在线中文字幕不卡| 色综合久久中文字幕综合网| 东方欧美亚洲色图在线| 高清成人免费视频| 国产精品自在在线| 国产精品99久久久久久有的能看| 经典三级一区二区| 国产一区二区成人久久免费影院 | 久久夜色精品一区| 亚洲精品一区二区三区香蕉| 欧美成人激情免费网| 日韩欧美你懂的| 日韩欧美一区中文| 欧美一二三区在线| 精品国产乱码久久久久久老虎| 精品久久久久一区二区国产| 日韩午夜电影在线观看| 欧美成人三级电影在线| 久久久久久久久久久久久久久99| 久久精品综合网| 亚洲欧美一区二区不卡| 五月天中文字幕一区二区| 免费日本视频一区| 国产 欧美在线| 91丨九色丨尤物| 欧美一级视频精品观看| 国产亚洲福利社区一区| 国产美女视频一区| 色婷婷综合久久久中文一区二区| 欧美三级中文字| 精品福利一区二区三区免费视频| 国产无遮挡一区二区三区毛片日本| 亚洲欧洲精品一区二区三区 | 国产一区二区三区免费| 91麻豆国产福利精品| 欧美一区日本一区韩国一区| 国产欧美久久久精品影院| 亚洲1区2区3区视频| 精品在线一区二区三区| 色偷偷成人一区二区三区91| 精品国产伦一区二区三区观看方式 | 国产成人aaa| 9191久久久久久久久久久| 中国av一区二区三区| 日韩专区一卡二卡| 欧洲视频一区二区| 国产精品天干天干在观线| 日韩精品高清不卡| 欧美私人免费视频| 国产精品伦一区| 国产不卡在线播放| 精品国产一区二区三区忘忧草| 亚洲一区二区高清| 91在线观看高清| 国产精品久久久久一区二区三区| 麻豆精品视频在线观看| 欧美一区二区成人6969| 亚洲自拍偷拍综合| 色菇凉天天综合网| 亚洲免费观看高清| 日本高清无吗v一区| 一区二区三区日韩| 日本韩国欧美三级| 亚洲一区中文在线| 欧美影视一区在线| 亚洲一区二区三区精品在线| 99综合影院在线| 亚洲蜜臀av乱码久久精品| 99这里都是精品| 欧美极品美女视频| 国产精品自在欧美一区| 亚洲国产精品成人综合| 国产成人免费视频一区| 欧美日韩在线播放| 亚洲一区二区三区免费视频| 色又黄又爽网站www久久| 亚洲欧美日韩一区| 91蜜桃婷婷狠狠久久综合9色| 国产精品欧美经典| 99综合影院在线| 一卡二卡欧美日韩| 欧美喷潮久久久xxxxx| 日韩精品五月天| 欧美色中文字幕| 国产在线观看一区二区| 久久久亚洲高清| 欧美韩国日本一区| 国产精品888| 国产精品久久777777| 国产一区二区导航在线播放| 亚洲欧美综合网| 在线一区二区三区四区| 热久久一区二区| 中文字幕国产一区| 欧美日韩你懂得| 久久99国产精品久久99| 亚洲国产精品成人综合| 在线免费观看日本一区| 蜜臀久久99精品久久久久宅男| 欧美精品一区二区在线观看| 国产一区啦啦啦在线观看| 国产女人aaa级久久久级| 色先锋久久av资源部| 日韩电影一区二区三区四区| 欧美一区二区性放荡片| 成人免费看片app下载| 亚洲国产日日夜夜| 国产日韩欧美精品一区| 欧美视频在线一区二区三区| 国产精品一品二品| 免费三级欧美电影| 一区二区欧美视频| 国产精品午夜免费| 日韩一区二区三区在线| 91免费版在线| 久久电影网站中文字幕|