BsGLIndexBuffer.cpp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "BsGLIndexBuffer.h"
  4. #include "BsGLHardwareBufferManager.h"
  5. #include "BsRenderStats.h"
  6. #include "BsException.h"
  7. namespace BansheeEngine
  8. {
  9. GLIndexBufferCore::GLIndexBufferCore(IndexType idxType, UINT32 numIndices, GpuBufferUsage usage)
  10. :IndexBufferCore(idxType, numIndices, usage)
  11. { }
  12. GLIndexBufferCore::~GLIndexBufferCore()
  13. {
  14. BS_INC_RENDER_STAT_CAT(ResDestroyed, RenderStatObject_IndexBuffer);
  15. }
  16. void GLIndexBufferCore::initialize()
  17. {
  18. mBuffer.initialize(GL_ELEMENT_ARRAY_BUFFER, mSizeInBytes, mUsage);
  19. BS_INC_RENDER_STAT_CAT(ResCreated, RenderStatObject_IndexBuffer);
  20. IndexBufferCore::initialize();
  21. }
  22. void* GLIndexBufferCore::lockImpl(UINT32 offset, UINT32 length, GpuLockOptions options)
  23. {
  24. return mBuffer.lock(offset, length, options);
  25. }
  26. void GLIndexBufferCore::unlockImpl()
  27. {
  28. mBuffer.unlock();
  29. }
  30. void GLIndexBufferCore::readData(UINT32 offset, UINT32 length, void* pDest)
  31. {
  32. mBuffer.readData(offset, length, pDest);
  33. }
  34. void GLIndexBufferCore::writeData(UINT32 offset, UINT32 length,
  35. const void* pSource, BufferWriteType writeFlags)
  36. {
  37. mBuffer.writeData(offset, length, pSource, writeFlags);
  38. }
  39. }