17 #ifndef IGNITION_RENDERING_OGRE2_OGRE2RENDERTARGET_HH_ 18 #define IGNITION_RENDERING_OGRE2_OGRE2RENDERTARGET_HH_ 31 #pragma warning(push, 0) 33 #include <Compositor/OgreCompositorShadowNode.h> 49 inline namespace IGNITION_RENDERING_VERSION_NAMESPACE {
52 class Ogre2RenderTargetPrivate;
65 public:
virtual unsigned int AntiAliasing()
const;
69 public:
virtual void SetAntiAliasing(
unsigned int _aa);
73 public:
virtual void Copy(
Image &_image)
const override;
77 public:
virtual Ogre::Camera *
Camera()
const;
81 public:
virtual void SetCamera(Ogre::Camera *_camera);
84 public:
virtual math::Color BackgroundColor()
const override;
88 public:
virtual void SetBackgroundColor(
math::Color _color);
92 public:
virtual void SetBackgroundMaterial(
MaterialPtr _material);
96 public:
virtual MaterialPtr BackgroundMaterial()
const;
99 public:
virtual void PreRender()
override;
102 public:
virtual void PostRender()
override;
105 public:
virtual void Render();
108 public:
virtual void Destroy()
override = 0;
116 public:
void SetShadowsNodeDefDirty();
121 protected: Ogre::RenderTarget *RenderTargetImpl()
const;
125 public:
virtual Ogre::RenderTarget *
RenderTarget()
const = 0;
132 public:
bool IsRenderWindow()
const;
135 public:
unsigned int GLIdImpl()
const;
138 protected:
void DestroyTargetImpl();
141 protected:
void BuildTargetImpl();
146 public:
virtual uint32_t VisibilityMask()
const;
151 public:
virtual void SetVisibilityMask(uint32_t _mask);
154 public:
static IGN_DEPRECATED(5)
void UpdateRenderPassChain(
155 Ogre::CompositorWorkspace *_workspace,
159 bool _recreateNodes);
162 public:
static void UpdateRenderPassChain(
163 Ogre::CompositorWorkspace *_workspace,
168 Ogre::Texture *(*_ogreTextures)[2],
169 bool _isRenderWindow);
172 protected:
virtual void UpdateBackgroundColor();
175 protected:
virtual void UpdateBackgroundMaterial();
178 protected:
virtual void UpdateRenderPassChain();
181 protected:
void IGN_DEPRECATED(5) UpdateShadowNode();
184 protected:
virtual void RebuildImpl()
override;
187 protected:
virtual void RebuildTarget() = 0;
190 protected:
virtual void RebuildCompositor();
193 protected:
virtual void BuildCompositor();
196 protected:
virtual void DestroyCompositor();
202 protected:
void RebuildMaterial();
206 protected:
void SyncOgreTextureVars();
209 protected: Ogre::Camera *ogreCamera =
nullptr;
213 protected: Ogre::CompositorWorkspace *ogreCompositorWorkspace =
nullptr;
235 protected:
bool colorDirty =
true;
239 protected:
bool backgroundMaterialDirty =
false;
242 protected:
unsigned int antiAliasing = 4;
262 public:
virtual void Destroy()
override;
265 public:
virtual void PreRender()
override;
268 public:
virtual void PostRender()
override;
271 public:
virtual unsigned int GLId()
const override;
276 public:
virtual Ogre::RenderTarget *
RenderTarget()
const override;
279 protected:
virtual void RebuildTarget()
override;
282 protected:
virtual void DestroyTarget();
285 protected:
virtual void BuildTarget();
293 public:
void SetOgreTexture(Ogre::Texture *_ogreTexture);
300 protected: IGN_DEPRECATED(5)
Ogre::Texture * ogreTexture =
nullptr;
317 public:
virtual void Destroy()
override;
323 public:
bool IsRenderWindow()
const;
326 public:
virtual Ogre::RenderTarget *RenderTarget()
const override;
329 protected:
virtual void RebuildTarget()
override;
332 protected:
virtual void BuildTarget();
335 protected: Ogre::RenderTarget *ogreRenderWindow =
nullptr;
338 private:
friend class Ogre2Scene;
#define IGN_VISIBILITY_ALL
Render everything visibility mask.
Definition: RenderTypes.hh:26
Definition: BaseRenderTarget.hh:98
Ogre::ColourValue ogreBackgroundColor
Stores the background color of the render target.
Definition: Ogre2RenderTarget.hh:219
MaterialPtr material
a material used by for the render target
Definition: Ogre2RenderTarget.hh:225
Ogre2.x implementation of the render window class.
Definition: Ogre2RenderTarget.hh:307
Definition: BaseRenderTarget.hh:35
std::string ogreCompositorWorkspaceDefName
Ogre's compositor workspace definition name.
Definition: Ogre2RenderTarget.hh:216
Ogre2.x implementation of the scene class.
Definition: Ogre2Scene.hh:56
Represents a render-target to which cameras can render images.
Definition: RenderTarget.hh:37
Definition: BaseRenderTarget.hh:111
Encapsulates a raw image buffer and relevant properties.
Definition: Image.hh:36
Ogre2RenderTargetMaterialPtr materialApplicator
Unused. Kept for ABI reasons.
Definition: Ogre2RenderTarget.hh:232
MaterialPtr backgroundMaterial
Background material of the render target.
Definition: Ogre2RenderTarget.hh:222
Posable camera used for rendering the scene graph.
Definition: Camera.hh:40
Ogre2.x implementation of the render texture class.
Definition: Ogre2RenderTarget.hh:252
Definition: OgreCamera.hh:27
Ogre2.x implementation of the render target class.
Definition: Ogre2RenderTarget.hh:55