BsGLGpuParamBlockBuffer.h 849 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #pragma once
  2. #include "BsGLPrerequisites.h"
  3. #include "BsGpuParamBlockBuffer.h"
  4. namespace BansheeEngine
  5. {
  6. /**
  7. * @brief OpenGL implementation of a GPU parameter buffer (Uniform buffer).
  8. */
  9. class BS_RSGL_EXPORT GLGpuParamBlockBufferCore : public GpuParamBlockBufferCore
  10. {
  11. public:
  12. GLGpuParamBlockBufferCore(UINT32 size, GpuParamBlockUsage usage);
  13. ~GLGpuParamBlockBufferCore();
  14. /**
  15. * @copydoc GpuParamBlockBufferCore::writeData
  16. */
  17. void writeToGPU(const UINT8* data);
  18. /**
  19. * @copydoc GpuParamBlockBufferCore::readData
  20. */
  21. void readFromGPU(UINT8* data) const;
  22. /**
  23. * @brief Returns internal OpenGL uniform buffer handle.
  24. */
  25. GLuint getGLHandle() const { return mGLHandle; }
  26. protected:
  27. /**
  28. * @copydoc GpuParamBlockBufferCore::initialize
  29. */
  30. virtual void initialize();
  31. private:
  32. GLuint mGLHandle;
  33. };
  34. }