| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #pragma once
- #include "BsGLPrerequisites.h"
- #include "BsMultiRenderTexture.h"
- #include "BsGLFrameBufferObject.h"
- namespace BansheeEngine
- {
- class GLMultiRenderTexture;
- /**
- * @brief OpenGL implementation of a render texture with multiple color surfaces.
- *
- * @note Core thread only.
- */
- class BS_RSGL_EXPORT GLMultiRenderTextureCore : public MultiRenderTextureCore
- {
- public:
- GLMultiRenderTextureCore(GLMultiRenderTexture* parent, MultiRenderTextureProperties* properties, const MULTI_RENDER_TEXTURE_DESC& desc);
- virtual ~GLMultiRenderTextureCore();
- /**
- * @copydoc MultiRenderTextureCore::getCustomAttribute
- */
- void getCustomAttribute(const String& name, void* pData) const;
- protected:
- friend class GLTextureManager;
- private:
- GLFrameBufferObject* mFB;
- };
- /**
- * @brief OpenGL implementation of a render texture with multiple color surfaces.
- *
- * @note Sim thread only.
- */
- class BS_RSGL_EXPORT GLMultiRenderTexture : public MultiRenderTexture
- {
- public:
- virtual ~GLMultiRenderTexture() { }
- /**
- * @copydoc MultiRenderTexture::requiresTextureFlipping
- */
- bool requiresTextureFlipping() const { return true; }
- protected:
- friend class GLTextureManager;
- GLMultiRenderTexture() { }
- /**
- * @copydoc MultiRenderTexture::createProperties
- */
- virtual RenderTargetProperties* createProperties() const;
- /**
- * @copydoc MultiRenderTexture::createCore
- */
- virtual MultiRenderTextureCore* createCore(MultiRenderTextureProperties* properties, const MULTI_RENDER_TEXTURE_DESC& desc);
- };
- }
|