⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d3d8bufferfactory.cpp

📁 game code对于游戏地图的编辑代码
💻 CPP
字号:
#include "D3D8BufferFactory.h"
#include "D3D8IndexBuffer.h"
#include "D3D8VertexBuffer.h"
#include "D3DMapping.h"
#include "../../Main/RenderOperation.h"

IndexBuffer* D3D8BufferFactory::CreateIndexBuffer(IndexData* id)
{
	D3D8IndexBuffer* buf = new D3D8IndexBuffer(m_pd3dDevice,id);
	return (IndexBuffer*)buf;
}

VertexBuffer* D3D8BufferFactory::CreateVertexBuffer(VertexData* vd)
{
	D3D8VertexBuffer* buf = new D3D8VertexBuffer(m_pd3dDevice,vd);
	return (VertexBuffer*)buf;
}

Int32	D3D8BufferFactory::CreateVertexDeclaration(RenderOperation* ro)
{
	DWORD shader= 0xFFFFFFFF;
	DWORD *shaderDecl = new DWORD[ro->vertexData.size()*2+1];
	std::vector<VertexData*>::iterator it;
	Int32 i=0;
	for(it =ro->vertexData.begin();it!=ro->vertexData.end();++it,++i )
	{
		shaderDecl[i*2] = D3DVSD_STREAM(i);
		DWORD _vertex_register,_type;
		D3DMapping::Get((*it)->vertex_type,_vertex_register,_type);
		shaderDecl[i*2+1] = D3DVSD_REG(_vertex_register,_type);
	}
	shaderDecl[i*2] = D3DVSD_END();
	HRESULT hr = m_pd3dDevice->CreateVertexShader(shaderDecl,NULL,&shader,0);
	delete[] shaderDecl;
	if( FAILED(hr))
		return 0xFFFFFFFF;
	return shader;
}

void	D3D8BufferFactory::DestroyIndexBuffer(IndexBuffer* ib)
{
	delete ib;
}
void	D3D8BufferFactory::DestroyVertexBuffer(VertexBuffer* vb)
{
	delete vb;
}
void	D3D8BufferFactory::DestroyVertexDeclaration(Int32 vd)
{
	m_pd3dDevice->DeleteVertexShader(vd);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -