#include "BsD3D9HardwareBufferManager.h" #include "BsD3D9VertexBuffer.h" #include "BsD3D9IndexBuffer.h" #include "BsD3D9VertexDeclaration.h" #include "BsD3D9GpuBuffer.h" #include "BsGpuParamBlockBuffer.h" #include "BsException.h" namespace BansheeEngine { SPtr D3D9HardwareBufferCoreManager::createVertexBufferInternal(UINT32 vertexSize, UINT32 numVerts, GpuBufferUsage usage, bool streamOut) { assert(numVerts > 0); SPtr ret = bs_shared_ptr_new(vertexSize, numVerts, usage, streamOut); ret->_setThisPtr(ret); return ret; } SPtr D3D9HardwareBufferCoreManager::createIndexBufferInternal(IndexType itype, UINT32 numIndexes, GpuBufferUsage usage) { assert(numIndexes > 0); SPtr ret = bs_shared_ptr_new(itype, numIndexes, usage); ret->_setThisPtr(ret); return ret; } SPtr D3D9HardwareBufferCoreManager::createVertexDeclarationInternal(const List& elements) { D3D9VertexDeclarationCore* decl = new (bs_alloc()) D3D9VertexDeclarationCore(elements); SPtr declPtr = bs_shared_ptr(decl); declPtr->_setThisPtr(declPtr); return declPtr; } SPtr D3D9HardwareBufferCoreManager::createGpuParamBlockBufferInternal(UINT32 size, GpuParamBlockUsage usage) { GenericGpuParamBlockBufferCore* paramBlockBuffer = new (bs_alloc()) GenericGpuParamBlockBufferCore(size, usage); SPtr paramBlockBufferPtr = bs_shared_ptr(paramBlockBuffer); paramBlockBufferPtr->_setThisPtr(paramBlockBufferPtr); return paramBlockBufferPtr; } SPtr D3D9HardwareBufferCoreManager::createGpuBufferInternal(UINT32 elementCount, UINT32 elementSize, GpuBufferType type, GpuBufferUsage usage, bool randomGpuWrite, bool useCounter) { D3D9GpuBufferCore* buffer = new (bs_alloc()) D3D9GpuBufferCore(elementCount, elementSize, type, usage, randomGpuWrite, useCounter); SPtr bufferPtr = bs_shared_ptr(buffer); bufferPtr->_setThisPtr(bufferPtr); return bufferPtr; } }