BsVertexBuffer.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132
  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. VertexBufferCore::VertexBufferCore(GpuBufferUsage usage, bool useSystemMemory, const VertexBufferProperties& properties)
  10. :HardwareBuffer(usage, useSystemMemory), mProperties(properties)
  11. {
  12. mSizeInBytes = mProperties.mVertexSize * mProperties.mNumVertices;
  13. }
  14. VertexBuffer::VertexBuffer(UINT32 vertexSize, UINT32 numVertices, GpuBufferUsage usage, bool useSystemMemory)
  15. : mUseSystemMemory(useSystemMemory), mUsage(usage)
  16. {
  17. mProperties.mVertexSize = vertexSize;
  18. mProperties.mNumVertices = numVertices;
  19. }
  20. SPtr<VertexBufferCore> VertexBuffer::getCore() const
  21. {
  22. return std::static_pointer_cast<VertexBufferCore>(mCoreSpecific);
  23. }
  24. VertexBufferPtr VertexBuffer::create(UINT32 vertexSize, UINT32 numVerts, GpuBufferUsage usage, bool streamOut)
  25. {
  26. return HardwareBufferManager::instance().createVertexBuffer(vertexSize, numVerts, usage, streamOut);
  27. }
  28. }