#pragma once //disable inheritance warning caused by multiple inheritance #if _WIN32 #if _MSC_VER #pragma warning(disable: 4250) #endif #endif #include "OgreRenderingRun.h" #include "PhaseTextureRenderingRun.h" #include "OgreSharedRuns.h" /** @brief PhaseTextureRenderingRun used in an OGRE environment. */ class OgrePhaseTextureRenderingRun : public OgreRenderingRun, public PhaseTextureRenderingRun { public: /** @brief Constructor. @param name the name of the phase texture to be created @param resolutionX the resolution width of the phase texture @param resolutionY the resolution height of the phase texture @param materialName the name of the material to be used when rendering the phase texture */ OgrePhaseTextureRenderingRun( String name, unsigned int resolutionX, unsigned int resolutionY, String materialName); virtual ~OgrePhaseTextureRenderingRun(){} /** @brief returns the name of thew phase texture created by this run */ String getPhaseTextureName(){return name;} void freeAllResources(); protected: /** @brief the name of the material to be used when rendering the depth shadow map */ String materialName; /** @brief the name of the phase texture that was created by this run */ String name; /** @brief a pointer to the phase texture that was created by this run */ Texture* phaseTexture; /** @brief a pointer to the camera that was used while rendering the phase texture */ Camera* phaseCamera; //inherited void updateFrame(unsigned long frameNum); /** @brief Creates the phase texture. */ inline void createPhaseTexture(); };