CmD3D11VertexBuffer.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. delete mBuffer;
  13. }
  14. void* D3D11VertexBuffer::lockImpl(UINT32 offset, UINT32 length, GpuLockOptions options)
  15. {
  16. return mBuffer->lock(offset, length, options);
  17. }
  18. void D3D11VertexBuffer::unlockImpl()
  19. {
  20. mBuffer->unlock();
  21. }
  22. void D3D11VertexBuffer::readData(UINT32 offset, UINT32 length, void* pDest)
  23. {
  24. mBuffer->readData(offset, length, pDest);
  25. }
  26. void D3D11VertexBuffer::writeData(UINT32 offset, UINT32 length, const void* pSource, bool discardWholeBuffer)
  27. {
  28. mBuffer->writeData(offset, length, pSource, discardWholeBuffer);
  29. }
  30. void D3D11VertexBuffer::copyData(HardwareBuffer& srcBuffer, UINT32 srcOffset,
  31. UINT32 dstOffset, UINT32 length, bool discardWholeBuffer)
  32. {
  33. mBuffer->copyData(srcBuffer, srcOffset, dstOffset, length, discardWholeBuffer);
  34. }
  35. }