BsVertexBuffer.cpp 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "BsVertexBuffer.h"
  4. #include "BsHardwareBufferManager.h"
  5. namespace BansheeEngine
  6. {
  7. VertexBufferProperties::VertexBufferProperties(UINT32 numVertices, UINT32 vertexSize)
  8. :mNumVertices(numVertices), mVertexSize(vertexSize)
  9. {
  10. }
  11. VertexBufferCore::VertexBufferCore(UINT32 vertexSize, UINT32 numVertices, GpuBufferUsage usage, bool streamOut)
  12. :HardwareBuffer(usage, false), mProperties(numVertices, vertexSize)
  13. {
  14. mSizeInBytes = mProperties.mVertexSize * mProperties.mNumVertices;
  15. }
  16. SPtr<VertexBufferCore> VertexBufferCore::create(UINT32 vertexSize, UINT32 numVerts, GpuBufferUsage usage, bool streamOut)
  17. {
  18. return HardwareBufferCoreManager::instance().createVertexBufferInternal(vertexSize, numVerts, usage, streamOut);
  19. }
  20. VertexBuffer::VertexBuffer(UINT32 vertexSize, UINT32 numVertices, GpuBufferUsage usage, bool streamOut)
  21. : mProperties(numVertices, vertexSize), mUsage(usage), mStreamOut(streamOut)
  22. {
  23. }
  24. SPtr<CoreObjectCore> VertexBuffer::createCore() const
  25. {
  26. return HardwareBufferCoreManager::instance().createVertexBufferInternal(mProperties.mVertexSize,
  27. mProperties.mNumVertices, mUsage, mStreamOut);
  28. }
  29. SPtr<VertexBufferCore> VertexBuffer::getCore() const
  30. {
  31. return std::static_pointer_cast<VertexBufferCore>(mCoreSpecific);
  32. }
  33. SPtr<VertexBuffer> VertexBuffer::create(UINT32 vertexSize, UINT32 numVerts, GpuBufferUsage usage, bool streamOut)
  34. {
  35. return HardwareBufferManager::instance().createVertexBuffer(vertexSize, numVerts, usage, streamOut);
  36. }
  37. }