#ifndef FRAME_MANAGER_H_INCLUDED #define FRAME_MANAGER_H_INCLUDED /* This code contains frame manager to do posteffects Use global variable ResourceManager to get access to light manager */ #ifdef TARGET_ANDROID #include #include #endif #ifdef TARGET_WIN32 #include "include/OpenGlExt/OpenGlExt.h" #endif #include "include/Utils/Utils.h" #include "include/TextureManager/SalmonTexture.h" namespace SE { extern const int CONST_SCREEN_FRAMEBUFFER; struct TFrame { cardinal FrameBuffer; cardinal DepthRenderBuffer; cardinal TexID; cardinal Width; cardinal Height; std::string TexName; }; typedef std::map TFrameMap; class TRendererInterface; class THalibutRendererInterface; class THalibutRenderer; class THalibutRendererAndroid; class THalibutRendererIos; class TSalmonRendererInterface; class TSalmonRenderer; class TSalmonRendererAndroid; class TSalmonRendererIos; class TFrameManager { protected: TFrameMap FrameMap; public: TFrameManager() {} ~TFrameManager(); void FreeFrameManager(); //Clean up frame map cardinal AddFrameRenderBuffer(const std::string& frameName, cardinal width, cardinal height); //Add a new render buffer with name frameName. Width and height must be power of two (512, 1024 etc) void DeleteFrameRenderBuffer(const std::string& frameName); //Delete render / depth buffer with name frameName cardinal AddDepthBuffer(const std::string& frameName, cardinal width, cardinal height); //Add depth buffer with name frameName Width and height must be power of two (512, 1024 etc) cardinal AddCubemapBuffer(const std::string& frameName, cardinal width, cardinal height); //Add cubemap render buffer with name frameName Width and height must be power of two (512, 1024 etc) cardinal GetFrameTexture(const std::string& frameName); //Get texture ID from frame with name frameName ivec2 GetFrameWidthHeight(const std::string& frameName); TTextureData ReadFromBufferToTexData(const std::string& frameName); friend class TRendererInterface; friend class THalibutRendererInterface; friend class THalibutRenderer; friend class THalibutRendererAndroid; friend class THalibutRendererIos; friend class TSalmonRendererInterface; friend class TSalmonRenderer; friend class TSalmonRendererAndroid; friend class TSalmonRendererIos; }; } //namespace SE #endif