BsGLMultiRenderTexture.h 914 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #pragma once
  2. #include "BsGLPrerequisites.h"
  3. #include "BsMultiRenderTexture.h"
  4. #include "BsGLFrameBufferObject.h"
  5. namespace BansheeEngine
  6. {
  7. /**
  8. * @brief OpenGL implementation of a render texture with multiple color surfaces.
  9. */
  10. class BS_RSGL_EXPORT GLMultiRenderTexture : public MultiRenderTexture
  11. {
  12. public:
  13. virtual ~GLMultiRenderTexture();
  14. /**
  15. * @copydoc MultiRenderTexture::requiresTextureFlipping
  16. */
  17. bool requiresTextureFlipping() const { return true; }
  18. /**
  19. * @copydoc MultiRenderTexture::getCustomAttribute
  20. */
  21. void getCustomAttribute(const String& name, void* pData) const;
  22. protected:
  23. friend class GLTextureManager;
  24. GLMultiRenderTexture();
  25. /**
  26. * @copydoc MultiRenderTexture::initialize_internal
  27. */
  28. void initialize_internal();
  29. /**
  30. * @copydoc MultiRenderTexture::destroy_internal
  31. */
  32. void destroy_internal();
  33. private:
  34. GLFrameBufferObject* mFB;
  35. };
  36. }