CmD3D11IndexBuffer.cpp 1.4 KB

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