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

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

?? directxobject.cpp

?? 這個是我第一次完成的一個簡單的3D ALIEN SHOOTING GAME的RESOURCE MANAGER部分,大家可以看看,然后提點意見~THX
?? CPP
字號:
// DirectXObject.cpp
//

// Author:			Lea Hayes
// Date Created:	13/03/2006
// Date Modified:	13/03/2006

#include "Common.h"
#include "DirectXObject.h"

using namespace std;
using namespace Resources;


// DirectXObject - Construction and destruction.

DirectXObject::DirectXObject(LPCSTR lpszFilename /*=NULL*/)
: m_pMesh(NULL)
, m_pMaterials(NULL)
, m_pTextures(NULL)
, m_dwMatCount(0L)
{
	// If filename and path were specified then attempt to
	// load this texture.
	if(lpszFilename != NULL)
	{
		// If read failed then throw an exception.
		if(FAILED(ReadFromFile(lpszFilename)))
		{
			// Generate exception and then throw it.
			ResException e = ResException::UnableToOpenFile EXTRA_DEBUGINFO;
			e.SetExtraInfo(lpszFilename);
			throw e;
		}
	}
}

DirectXObject::~DirectXObject()
{
}


// DirectXObject - Functions which must be overriden.

DWORD DirectXObject::GetUniqueID() const
{
	return DIRECTX_OBJECTX;
}


// DirectXObject - Functions which can be overriden.


// Function Name:	OnProcess
//
// Author:			Lea Hayes
// Date Created:	13/03/2006
// Date Modified:	13/03/2006
//
// Description:		Can be overriden for processing.
//
void DirectXObject::OnProcess(float nTime)
{
}

// Function Name:	OnRender
//
// Author:			Lea Hayes
// Date Created:	13/03/2006
// Date Modified:	13/03/2006
//
// Description:		Simply renders mesh to device. Any world transforms
//					must happen prior to calling this function.
//
void DirectXObject::OnRender(float nTime)
{
	// Retrieve DirectX device.
	LPDIRECT3DDEVICE9 pDevice = ResourceManager::GetActiveDevice();

	// Render each material subset.
	for(DWORD i = 0; i < m_dwMatCount; i++)
	{
		// Set the material and texture for this subset
		pDevice->SetMaterial(&m_pMaterials[i]);
		m_pTextures[i]->SelectTexture(0);

		// Draw the mesh subset
		m_pMesh->DrawSubset(i);
	}
}

// Function Name:	OnDestroy
//
// Author:			Lea Hayes
// Date Created:	13/03/2006
// Date Modified:	13/03/2006
//
// Description:		Perform automatic cleanup.
//
void DirectXObject::OnDestroy()
{
	// Clean up object object.
	CleanUp();
}

// Function Name:	ReadFromFile
//
// Author:			Lea Hayes
// Date Created:	13/03/2006
// Date Modified:	13/03/2006
//
// Description:		Attempt to read object resource from an x file.
//					Note: Result is returned.
//
HRESULT DirectXObject::ReadFromFile(LPCSTR lpszFilename)
{
	// Retrieve resolved resource filename and path.
	string szFilePath = ResourceManager::ResolveFilePath(lpszFilename, "Model");
	if(szFilePath.size() > 0) szFilePath += '\\';
	szFilePath += lpszFilename;

	// Clean up texture object.
	CleanUp();

	// Will point at material buffer.
	LPD3DXBUFFER pD3DXMtrlBuffer;

	// Attempt to load mesh specified.
	HRESULT hResult = D3DXLoadMeshFromX(szFilePath.c_str(), D3DXMESH_SYSTEMMEM,
		ResourceManager::GetActiveDevice(), NULL, &pD3DXMtrlBuffer,
		NULL, &m_dwMatCount, &m_pMesh);

	if(FAILED(hResult)) return hResult;

	// Note:	When filenames are specified a matching path will be
	//			be found. However when the path is found the filename
	//			and path paramter within the resource manager will be
	//			stored; we do not want to store the entire filename
	//			and path; just the original.
	//
	//			Doing this will improve upon efficiency.
	//
	SetFilePath(lpszFilename);

	// Retrieve materials.
	D3DXMATERIAL* d3dxMaterials =
		(D3DXMATERIAL*)pD3DXMtrlBuffer->GetBufferPointer();
	m_pMaterials = new D3DMATERIAL9[m_dwMatCount];
	if(m_pMaterials == NULL)
		return E_OUTOFMEMORY;

	m_pTextures = new DirectXTexture*[GetMaterialCount()];
	if(m_pTextures == NULL)
		return E_OUTOFMEMORY;

	try
	{
		for(DWORD i = 0; i < m_dwMatCount; i++ )
		{
			// Copy the material
			m_pMaterials[i] = d3dxMaterials[i].MatD3D;

			// Set the ambient color for the material.
			m_pMaterials[i].Ambient = m_pMaterials[i].Diffuse;

			m_pTextures[i] = ResourceManager::AquireTexture(
				d3dxMaterials[i].pTextureFilename).ToDirectXTexture();
		}
	}
	catch(HRESULT hError)
	{
		// Set error result.
		hResult = hError;
	}

	// Done with the material buffer
	pD3DXMtrlBuffer->Release();

	return hResult;
}


// DirectXObject - Properties.


// Function Name:	CleanUp
//
// Author:			Lea Hayes
// Date Created:	13/03/2006
// Date Modified:	13/03/2006
//
// Description:		Prepare object for reuse.
//
void DirectXObject::CleanUp()
{
	// Free object resource from memory.
	if(!!m_pMaterials)
	{
		delete[] m_pMaterials;
		m_pMaterials = NULL;
	}

	// Free texture resources from memory.
	if(!!m_pTextures)
	{
		for(DWORD i = 0; i < m_dwMatCount; i++)
		{
			m_pTextures[i]->Release();
		}

		delete[] m_pTextures;
		m_pTextures = NULL;
	}

	// Free mesh from memory.
	if(!!m_pMesh)
	{
		m_pMesh->Release();
		m_pMesh = NULL;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久精品图片 | 色狠狠一区二区| 日本黄色一区二区| 精品处破学生在线二十三| 国产精品成人一区二区艾草 | 中文字幕亚洲电影| 蜜桃视频在线观看一区| 色94色欧美sute亚洲线路一ni| 日韩免费在线观看| 午夜激情久久久| 不卡高清视频专区| 国产亚洲一区二区在线观看| 日本欧美一区二区三区乱码| 欧美在线不卡一区| 18欧美乱大交hd1984| 国产剧情一区二区| 日韩视频中午一区| 亚洲成人www| 欧美日韩精品三区| 一区二区三区产品免费精品久久75| 国产在线播放一区二区三区| 制服丝袜av成人在线看| 亚洲国产欧美另类丝袜| 在线视频你懂得一区| 亚洲免费在线视频| 99国产麻豆精品| 欧美亚洲一区三区| 一区二区成人在线| 欧美在线观看你懂的| 亚洲影视在线播放| 欧美视频一区二| 亚洲成人av一区二区三区| 欧美丝袜丝nylons| 亚洲综合成人在线视频| 91黄色激情网站| 亚洲国产精品久久久久婷婷884| 欧美伊人久久久久久午夜久久久久| 亚洲乱码中文字幕综合| 色婷婷狠狠综合| 亚洲chinese男男1069| 欧美一区三区二区| 韩国av一区二区三区四区| 欧美精品一区二| 国产成人激情av| 亚洲精品免费一二三区| 在线视频亚洲一区| 日韩高清一区在线| 国产亚洲欧美中文| 99久久免费视频.com| 亚洲国产精品久久一线不卡| 欧美成人精品3d动漫h| 国产真实乱偷精品视频免| 国产精品久久久久aaaa樱花| 在线亚洲欧美专区二区| 日本成人在线视频网站| 亚洲国产高清aⅴ视频| 色综合天天综合在线视频| 香蕉久久夜色精品国产使用方法| 欧美一级片在线| 懂色av噜噜一区二区三区av| 亚洲综合自拍偷拍| 欧美一区二区日韩| 91网页版在线| 日本成人中文字幕| 亚洲图片欧美激情| 欧美电视剧在线观看完整版| av一区二区三区四区| 丝袜诱惑制服诱惑色一区在线观看| 久久久亚洲高清| 欧美三级电影在线观看| 国产风韵犹存在线视精品| 亚洲成人先锋电影| 欧美激情在线一区二区三区| 欧美精品少妇一区二区三区| 国产成人综合网站| 日韩电影在线观看网站| 亚洲欧美日韩成人高清在线一区| 欧美成人在线直播| 欧美在线free| 91毛片在线观看| 国产成人在线观看免费网站| 日日欢夜夜爽一区| 成人免费在线播放视频| 久久精品视频一区二区三区| 欧美精品高清视频| 91久久精品国产91性色tv| 高清国产午夜精品久久久久久| 日韩不卡手机在线v区| 亚洲三级在线看| 国产精品你懂的| 久久久久成人黄色影片| 日韩美女主播在线视频一区二区三区| 91久久线看在观草草青青 | 麻豆成人91精品二区三区| 亚洲美女免费视频| 中文字幕一区二区三区色视频| 欧美xxxx在线观看| 91精品国产一区二区三区蜜臀| 一本色道久久综合亚洲91| 国产高清不卡二三区| 国产乱色国产精品免费视频| 老司机精品视频一区二区三区| 夜夜嗨av一区二区三区网页| 国产精品视频一区二区三区不卡| 精品乱人伦小说| 欧美不卡视频一区| 2021国产精品久久精品| 欧美一级艳片视频免费观看| 欧美视频精品在线观看| 91黄色免费观看| 欧美系列日韩一区| 精品少妇一区二区三区在线播放 | 91麻豆精品国产| 欧美另类一区二区三区| 欧美日韩一二三| 欧美日韩高清一区二区不卡| 在线播放中文一区| 91精品国产综合久久精品性色| 91精品国产一区二区三区香蕉 | 一本大道久久a久久综合 | 成人高清视频在线| 国产91精品一区二区麻豆亚洲| 成人精品国产一区二区4080| www.66久久| 91激情五月电影| 日韩丝袜美女视频| 国产偷v国产偷v亚洲高清| 国产精品传媒入口麻豆| 亚洲午夜羞羞片| 日韩和欧美的一区| 国产九色sp调教91| 91小视频在线观看| 欧美日韩另类一区| 精品久久久久久亚洲综合网| 中文字幕乱码一区二区免费| 亚洲欧美日本韩国| 麻豆91在线播放| 成人黄色在线网站| 欧美日韩国产免费| 久久久电影一区二区三区| 国产精品久久久久三级| 亚洲国产婷婷综合在线精品| 久色婷婷小香蕉久久| www.性欧美| 6080亚洲精品一区二区| 久久婷婷成人综合色| 中文字幕永久在线不卡| 日本不卡一区二区| 不卡av电影在线播放| 欧美精品欧美精品系列| 中文字幕不卡在线观看| 日韩中文字幕不卡| 成人影视亚洲图片在线| 欧美日韩亚洲高清一区二区| 久久久青草青青国产亚洲免观| 亚洲精品网站在线观看| 久久av资源站| 欧美性三三影院| 中文字幕欧美区| 韩国三级电影一区二区| 欧美视频在线观看一区二区| 国产精品午夜在线| 麻豆精品在线观看| 91极品美女在线| 国产精品伦理在线| 极品少妇一区二区| 在线观看免费一区| 国产精品视频yy9299一区| 美女精品一区二区| 欧美系列一区二区| 亚洲另类在线一区| 国产盗摄女厕一区二区三区| 欧美一区二区三区小说| 一区二区高清在线| 91偷拍与自偷拍精品| 国产欧美一区二区三区鸳鸯浴| 日韩二区在线观看| 欧美日韩国产影片| 一区二区三区91| 色妹子一区二区| 国产精品久久二区二区| 国产高清精品久久久久| 精品国产凹凸成av人网站| 日韩精品免费专区| 欧美日韩亚洲综合| 午夜精品久久久久| 欧美视频一区在线| 亚洲成年人影院| 欧美日韩一区视频| 亚洲电影一级黄| 欧美亚洲国产一区二区三区va| 亚洲欧美区自拍先锋| 成人亚洲一区二区一| 国产精品免费久久久久| 岛国av在线一区| 国产精品久久久久久亚洲毛片 | 亚洲激情六月丁香| 色综合久久中文字幕| 亚洲精品中文在线影院| 一本高清dvd不卡在线观看|