CmD3D11VertexBuffer.cpp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #include "CmD3D11VertexBuffer.h"
  2. namespace CamelotEngine
  3. {
  4. D3D11VertexBuffer::D3D11VertexBuffer(D3D11Device& device, HardwareBufferManager* mgr, UINT32 vertexSize, UINT32 numVertices,
  5. GpuBufferUsage usage, bool useSystemMem, bool streamOut)
  6. :VertexBuffer(mgr, vertexSize, numVertices, usage, useSystemMem)
  7. {
  8. mBuffer = new D3D11HardwareBuffer(D3D11HardwareBuffer::BT_VERTEX, usage, 1, mSizeInBytes, device, useSystemMem, streamOut);
  9. }
  10. D3D11VertexBuffer::~D3D11VertexBuffer()
  11. {
  12. }
  13. void* D3D11VertexBuffer::lockImpl(UINT32 offset, UINT32 length, GpuLockOptions options)
  14. {
  15. return mBuffer->lock(offset, length, options);
  16. }
  17. void D3D11VertexBuffer::unlockImpl()
  18. {
  19. mBuffer->unlock();
  20. }
  21. void D3D11VertexBuffer::readData(UINT32 offset, UINT32 length, void* pDest)
  22. {
  23. mBuffer->readData(offset, length, pDest);
  24. }
  25. void D3D11VertexBuffer::writeData(UINT32 offset, UINT32 length, const void* pSource, bool discardWholeBuffer)
  26. {
  27. mBuffer->writeData(offset, length, pSource, discardWholeBuffer);
  28. }
  29. void D3D11VertexBuffer::copyData(HardwareBuffer& srcBuffer, UINT32 srcOffset,
  30. UINT32 dstOffset, UINT32 length, bool discardWholeBuffer)
  31. {
  32. mBuffer->copyData(srcBuffer, srcOffset, dstOffset, length, discardWholeBuffer);
  33. }
  34. void D3D11VertexBuffer::destroy_internal()
  35. {
  36. if(mBuffer != nullptr)
  37. delete mBuffer;
  38. VertexBuffer::destroy_internal();
  39. }
  40. }