CmTransientMesh.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include "CmTransientMesh.h"
  2. #include "CmVertexData.h"
  3. #include "CmIndexData.h"
  4. #include "CmMeshHeap.h"
  5. namespace CamelotFramework
  6. {
  7. TransientMesh::TransientMesh(const MeshHeapPtr& parentHeap, UINT32 id, UINT32 numIndices, UINT32 numVertices, DrawOperationType drawOp)
  8. :MeshBase(numVertices, numIndices, drawOp), mParentHeap(parentHeap), mId(id)
  9. {
  10. }
  11. TransientMesh::~TransientMesh()
  12. {
  13. }
  14. void TransientMesh::writeSubresource(UINT32 subresourceIdx, const GpuResourceData& data, bool discardEntireBuffer)
  15. {
  16. CM_EXCEPT(InvalidStateException, "Updating is not supported on a transient mesh.");
  17. }
  18. void TransientMesh::readSubresource(UINT32 subresourceIdx, GpuResourceData& data)
  19. {
  20. CM_EXCEPT(InvalidStateException, "Reading is not supported on a transient mesh.");
  21. }
  22. std::shared_ptr<VertexData> TransientMesh::getVertexData() const
  23. {
  24. return mParentHeap->getVertexData();
  25. }
  26. std::shared_ptr<IndexData> TransientMesh::getIndexData() const
  27. {
  28. return mParentHeap->getIndexData();
  29. }
  30. UINT32 TransientMesh::getVertexOffset() const
  31. {
  32. return mParentHeap->getVertexOffset(mId);
  33. }
  34. UINT32 TransientMesh::getIndexOffset() const
  35. {
  36. return mParentHeap->getIndexOffset(mId);
  37. }
  38. void TransientMesh::notifyUsedOnGPU()
  39. {
  40. mParentHeap->notifyUsedOnGPU(mId);
  41. }
  42. }