17 #ifndef GZ_RENDERING_OGRE2_OGRE2CAMERA_HH_
18 #define GZ_RENDERING_OGRE2_OGRE2CAMERA_HH_
37 inline namespace GZ_RENDERING_VERSION_NAMESPACE {
40 class Ogre2CameraPrivate;
41 class Ogre2SelectionBuffer;
58 public:
virtual void SetHFOV(
const math::Angle &_hfov)
override;
61 public:
virtual double AspectRatio()
const override;
64 public:
virtual void SetAspectRatio(
const double _ratio)
override;
67 public:
virtual unsigned int AntiAliasing()
const override;
70 public:
virtual void SetAntiAliasing(
const unsigned int _aa)
override;
73 public:
virtual void SetFarClipPlane(
const double _far)
override;
76 public:
virtual void SetNearClipPlane(
const double _near)
override;
78 public:
virtual math::Color BackgroundColor()
const;
80 public:
virtual void SetBackgroundColor(
const math::Color &_color);
84 public:
virtual MaterialPtr BackgroundMaterial()
const;
88 public:
virtual void SetBackgroundMaterial(
MaterialPtr _material);
91 public:
virtual void Render()
override;
98 protected:
void DestroyRenderTexture();
104 public:
virtual void SetProjectionMatrix(
116 &_mousePos)
override;
120 public:
virtual void SetMaterial(
124 public:
virtual unsigned int RenderTextureGLId()
const override;
127 public:
virtual void RenderTextureMetalId(
void *_textureIdPtr)
131 public:
void SetShadowsDirty()
override;
134 public:
virtual void Destroy()
override;
137 public:
virtual void SetVisibilityMask(uint32_t _mask)
override;
144 public:
virtual Ogre::Camera *
OgreCamera()
const override;
150 protected:
virtual void Init()
override;
153 protected:
virtual void CreateRenderTexture();
157 protected:
virtual void SetSelectionBuffer();
161 protected:
void SyncOgreCameraAspectRatio();
164 private:
void CreateCamera();
171 private:
void SetShadowsNodeDefDirty();
174 protected: Ogre::Camera *ogreCamera =
nullptr;