BsGLMultiRenderTexture.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. //__________________________ Banshee Project - A modern game development toolkit _________________________________//
  2. //_____________________________________ www.banshee-project.com __________________________________________________//
  3. //________________________ Copyright (c) 2014 Marko Pintera. All rights reserved. ________________________________//
  4. #pragma once
  5. #include "BsGLPrerequisites.h"
  6. #include "BsMultiRenderTexture.h"
  7. #include "BsGLFrameBufferObject.h"
  8. namespace BansheeEngine
  9. {
  10. /**
  11. * @brief OpenGL implementation of a render texture with multiple color surfaces.
  12. */
  13. class BS_RSGL_EXPORT GLMultiRenderTexture : public MultiRenderTexture
  14. {
  15. public:
  16. virtual ~GLMultiRenderTexture();
  17. /**
  18. * @copydoc MultiRenderTexture::requiresTextureFlipping
  19. */
  20. bool requiresTextureFlipping() const { return true; }
  21. /**
  22. * @copydoc MultiRenderTexture::getCustomAttribute
  23. */
  24. void getCustomAttribute(const String& name, void* pData) const;
  25. protected:
  26. friend class GLTextureManager;
  27. GLMultiRenderTexture();
  28. /**
  29. * @copydoc MultiRenderTexture::initialize_internal
  30. */
  31. void initialize_internal();
  32. /**
  33. * @copydoc MultiRenderTexture::destroy_internal
  34. */
  35. void destroy_internal();
  36. private:
  37. GLFrameBufferObject* mFB;
  38. };
  39. }