Gazebo Rendering

API Reference

6.6.4
gz/rendering/ogre/OgreRenderTarget.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2015 Open Source Robotics Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17 #ifndef GZ_RENDERING_OGRE_OGRERENDERTARGET_HH_
18 #define GZ_RENDERING_OGRE_OGRERENDERTARGET_HH_
19 
20 #include <gz/math/Color.hh>
21 
28 
29 namespace Ogre
30 {
31  class Camera;
32  class RenderTarget;
33  class Texture;
34 }
35 
36 namespace ignition
37 {
38  namespace rendering
39  {
40  inline namespace IGNITION_RENDERING_VERSION_NAMESPACE {
41  //
42  class IGNITION_RENDERING_OGRE_VISIBLE OgreRenderTarget :
43  public virtual BaseRenderTarget<OgreObject>
44  {
45  protected: OgreRenderTarget();
46 
47  public: virtual ~OgreRenderTarget();
48 
49  public: virtual unsigned int AntiAliasing() const;
50 
51  public: virtual void SetAntiAliasing(unsigned int _aa);
52 
53  public: virtual void Copy(Image &_image) const override;
54 
55  public: virtual Ogre::Camera *Camera() const;
56 
57  public: virtual void SetCamera(Ogre::Camera *_camera);
58 
59  // Documentation inherited
60  public: virtual math::Color BackgroundColor() const override;
61 
62  public: virtual void SetBackgroundColor(math::Color _color);
63 
64  // Documentation inherited.
65  public: virtual void PreRender() override;
66 
67  // Documentation inherited.
68  public: virtual void PostRender() override;
69 
70  public: virtual void Render();
71 
72  public: virtual void Destroy() override = 0;
73 
77  public: void SetMaterial(MaterialPtr _material);
78 
79  public: virtual Ogre::RenderTarget *RenderTarget() const = 0;
80 
81  public: Ogre::Viewport *AddViewport(Ogre::Camera *_viewport);
82 
83  public: Ogre::Viewport *Viewport(const int _viewportId) const;
84 
85  public: void SetUpdate(const bool _value);
86 
87  public: void SetAutoUpdated(const bool _value);
88 
92  public: virtual void SetVisibilityMask(uint32_t _mask);
93 
94  protected: virtual void UpdateBackgroundColor();
95 
97  protected: virtual void UpdateRenderPassChain();
98 
99  protected: virtual void RebuildImpl() override;
100 
101  protected: virtual void RebuildTarget() = 0;
102 
103  protected: virtual void RebuildViewport();
104 
109  protected: void RebuildMaterial();
110 
111  protected: Ogre::Camera *ogreCamera = nullptr;
112 
113  protected: Ogre::Viewport *ogreViewport = nullptr;
114 
115  protected: Ogre::ColourValue ogreBackgroundColor;
116 
118  protected: MaterialPtr material;
119 
122 
123  protected: bool colorDirty = true;
124 
125  protected: unsigned int antiAliasing = 4;
126 
128  protected: uint32_t visibilityMask = IGN_VISIBILITY_ALL;
129  };
130 
131  class IGNITION_RENDERING_OGRE_VISIBLE OgreRenderTexture :
132  public virtual BaseRenderTexture<OgreRenderTarget>
133  {
134  protected: OgreRenderTexture();
135 
136  public: virtual ~OgreRenderTexture();
137 
138  public: virtual void Destroy() override;
139 
140  // Documentation inherited.
141  public: virtual void PreRender() override;
142 
143  // Documentation inherited.
144  public: virtual void PostRender() override;
145 
146  // Documentation inherited.
147  public: virtual unsigned int GLId();
148 
149  public: virtual void Buffer(float *buffer);
150 
151  public: virtual Ogre::RenderTarget *RenderTarget() const override;
152 
153  protected: virtual void RebuildTarget() override;
154 
155  protected: virtual void DestroyTarget();
156 
157  protected: virtual void BuildTarget();
158 
159  protected: Ogre::Texture *ogreTexture = nullptr;
160 
161  private: friend class OgreScene;
162  };
163 
164  class IGNITION_RENDERING_OGRE_VISIBLE OgreRenderWindow :
165  public virtual BaseRenderWindow<OgreRenderTarget>
166  {
167  protected: OgreRenderWindow();
168 
169  public: virtual ~OgreRenderWindow();
170 
171  public: virtual void Destroy();
172 
173  protected: virtual Ogre::RenderTarget *RenderTarget() const;
174 
175  protected: virtual void RebuildTarget();
176 
177  protected: virtual void BuildTarget();
178 
179  protected: Ogre::RenderTarget *ogreRenderWindow = nullptr;
180 
181  private: friend class OgreScene;
182  };
183  }
184  }
185 }
186 #endif
Definition: gz/rendering/base/BaseRenderTarget.hh:38
Definition: gz/rendering/base/BaseRenderTarget.hh:101
Definition: gz/rendering/base/BaseRenderTarget.hh:114
Encapsulates a raw image buffer and relevant properties.
Definition: gz/rendering/Image.hh:37
Definition: gz/rendering/ogre/OgreRenderTarget.hh:44
Ogre::Viewport * AddViewport(Ogre::Camera *_viewport)
virtual void SetVisibilityMask(uint32_t _mask)
Set visibility mask for the viewport associated with this render target.
virtual unsigned int AntiAliasing() const
void SetAutoUpdated(const bool _value)
virtual void Copy(Image &_image) const override
Write rendered image to given Image. The RenderTarget will convert the underlying image to the specif...
virtual void SetCamera(Ogre::Camera *_camera)
void RebuildMaterial()
Re-initializes render target material to apply a material to everything in the scene....
Ogre::Viewport * Viewport(const int _viewportId) const
virtual Ogre::RenderTarget * RenderTarget() const =0
virtual void UpdateRenderPassChain()
Update render pass chain if changes were made.
virtual void SetBackgroundColor(math::Color _color)
Ogre::ColourValue ogreBackgroundColor
Definition: gz/rendering/ogre/OgreRenderTarget.hh:115
virtual void PreRender() override
Prepare this object and any of its children for rendering. This should be called for each object in a...
virtual void PostRender() override
Post process this object and any of its children after rendering.
void SetMaterial(MaterialPtr _material)
Set a material to render on every object. This method is used for special cases like the render targe...
void SetUpdate(const bool _value)
virtual void SetAntiAliasing(unsigned int _aa)
OgreRenderTargetMaterialPtr materialApplicator
Helper class that applies the material to the render target.
Definition: gz/rendering/ogre/OgreRenderTarget.hh:121
virtual void Destroy() override=0
virtual math::Color BackgroundColor() const override
Get the background color of the render target. This should be the same as the scene background color.
virtual void RebuildImpl() override
virtual Ogre::Camera * Camera() const
MaterialPtr material
a material used by for the render target
Definition: gz/rendering/ogre/OgreRenderTarget.hh:118
Definition: gz/rendering/ogre/OgreRenderTarget.hh:133
virtual Ogre::RenderTarget * RenderTarget() const override
virtual void RebuildTarget() override
virtual void PreRender() override
Prepare this object and any of its children for rendering. This should be called for each object in a...
virtual void Buffer(float *buffer)
virtual void PostRender() override
Post process this object and any of its children after rendering.
Definition: gz/rendering/ogre/OgreRenderTarget.hh:166
virtual Ogre::RenderTarget * RenderTarget() const
Definition: gz/rendering/ogre/OgreScene.hh:41
#define IGN_VISIBILITY_ALL
Render everything visibility mask.
Definition: gz/rendering/RenderTypes.hh:26
Definition: gz/rendering/ogre/OgreCamera.hh:28