CmD3D11VertexBuffer.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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), mDevice(device), mStreamOut(streamOut)
  7. { }
  8. D3D11VertexBuffer::~D3D11VertexBuffer()
  9. { }
  10. void* D3D11VertexBuffer::lockImpl(UINT32 offset, UINT32 length, GpuLockOptions options)
  11. {
  12. return mBuffer->lock(offset, length, options);
  13. }
  14. void D3D11VertexBuffer::unlockImpl()
  15. {
  16. mBuffer->unlock();
  17. }
  18. void D3D11VertexBuffer::readData(UINT32 offset, UINT32 length, void* pDest)
  19. {
  20. mBuffer->readData(offset, length, pDest);
  21. }
  22. void D3D11VertexBuffer::writeData(UINT32 offset, UINT32 length, const void* pSource, bool discardWholeBuffer)
  23. {
  24. mBuffer->writeData(offset, length, pSource, discardWholeBuffer);
  25. }
  26. void D3D11VertexBuffer::copyData(HardwareBuffer& srcBuffer, UINT32 srcOffset,
  27. UINT32 dstOffset, UINT32 length, bool discardWholeBuffer)
  28. {
  29. mBuffer->copyData(srcBuffer, srcOffset, dstOffset, length, discardWholeBuffer);
  30. }
  31. void D3D11VertexBuffer::initialize_internal()
  32. {
  33. mBuffer = new D3D11HardwareBuffer(D3D11HardwareBuffer::BT_VERTEX,
  34. mUsage, 1, mSizeInBytes, mDevice, mSystemMemory, mStreamOut);
  35. VertexBuffer::initialize_internal();
  36. }
  37. void D3D11VertexBuffer::destroy_internal()
  38. {
  39. if(mBuffer != nullptr)
  40. delete mBuffer;
  41. VertexBuffer::destroy_internal();
  42. }
  43. }