BsGLGpuBuffer.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsGLPrerequisites.h"
  5. #include "BsGpuBuffer.h"
  6. namespace BansheeEngine
  7. {
  8. /**
  9. * @brief OpenGL implementation of a generic GPU buffer.
  10. */
  11. // TODO - Not implemented, just a dummy class for now
  12. class BS_RSGL_EXPORT GLGpuBufferCore : public GpuBufferCore
  13. {
  14. public:
  15. ~GLGpuBufferCore();
  16. /**
  17. * @copydoc GpuBufferCore::lock
  18. */
  19. virtual void* lock(UINT32 offset, UINT32 length, GpuLockOptions options);
  20. /**
  21. * @copydoc GpuBufferCore::unlock
  22. */
  23. virtual void unlock();
  24. /**
  25. * @copydoc GpuBufferCore::readData
  26. */
  27. virtual void readData(UINT32 offset, UINT32 length, void* pDest);
  28. /**
  29. * @copydoc GpuBufferCore::writeData
  30. */
  31. virtual void writeData(UINT32 offset, UINT32 length, const void* pSource,
  32. BufferWriteType writeFlags = BufferWriteType::Normal);
  33. /**
  34. * @copydoc GpuBufferCore::copyData
  35. */
  36. void copyData(GpuBufferCore& srcBuffer, UINT32 srcOffset,
  37. UINT32 dstOffset, UINT32 length, bool discardWholeBuffer = false);
  38. protected:
  39. friend class GLHardwareBufferCoreManager;
  40. GLGpuBufferCore(UINT32 elementCount, UINT32 elementSize, GpuBufferType type,
  41. GpuBufferUsage usage, bool randomGpuWrite = false, bool useCounter = false);
  42. /**
  43. * @copydoc GpuBufferCore::initialize
  44. */
  45. void initialize();
  46. /**
  47. * @copydoc GpuBufferCore::createView
  48. */
  49. virtual GpuBufferView* createView();
  50. /**
  51. * @copydoc GpuBufferCore::destroyView
  52. */
  53. virtual void destroyView(GpuBufferView* view);
  54. };
  55. }