BsVertexBuffer.cpp 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #include "BsVertexBuffer.h"
  2. #include "BsColor.h"
  3. #include "BsException.h"
  4. #include "BsHardwareBufferManager.h"
  5. #include "BsRenderSystem.h"
  6. #include "BsVertexDeclarationRTTI.h"
  7. namespace BansheeEngine
  8. {
  9. VertexBufferProperties::VertexBufferProperties(UINT32 numVertices, UINT32 vertexSize)
  10. :mNumVertices(numVertices), mVertexSize(vertexSize)
  11. {
  12. }
  13. VertexBufferCore::VertexBufferCore(UINT32 vertexSize, UINT32 numVertices, GpuBufferUsage usage, bool streamOut)
  14. :HardwareBuffer(usage, false), mProperties(numVertices, vertexSize)
  15. {
  16. mSizeInBytes = mProperties.mVertexSize * mProperties.mNumVertices;
  17. }
  18. VertexBuffer::VertexBuffer(UINT32 vertexSize, UINT32 numVertices, GpuBufferUsage usage, bool streamOut)
  19. : mProperties(numVertices, vertexSize), mUsage(usage), mStreamOut(streamOut)
  20. {
  21. }
  22. SPtr<CoreObjectCore> VertexBuffer::createCore() const
  23. {
  24. return HardwareBufferCoreManager::instance().createVertexBuffer(mProperties.mVertexSize,
  25. mProperties.mNumVertices, mUsage, mStreamOut);
  26. }
  27. SPtr<VertexBufferCore> VertexBuffer::getCore() const
  28. {
  29. return std::static_pointer_cast<VertexBufferCore>(mCoreSpecific);
  30. }
  31. VertexBufferPtr VertexBuffer::create(UINT32 vertexSize, UINT32 numVerts, GpuBufferUsage usage, bool streamOut)
  32. {
  33. return HardwareBufferManager::instance().createVertexBuffer(vertexSize, numVerts, usage, streamOut);
  34. }
  35. }