Skip to content

Commit

Permalink
Ogre 2.2
Browse files Browse the repository at this point in the history
Signed-off-by: ahcorde <[email protected]>
  • Loading branch information
ahcorde committed Mar 19, 2021
1 parent 8f738e4 commit ce84c10
Show file tree
Hide file tree
Showing 113 changed files with 8,257 additions and 3,678 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ endif()

#--------------------------------------
# Find OGRE2
ign_find_package(IgnOGRE2 VERSION 2.1.0
ign_find_package(IgnOGRE2 VERSION 2.2.0
COMPONENTS HlmsPbs HlmsUnlit Overlay
REQUIRED_BY ogre2
PRIVATE_FOR ogre2)
Expand Down
1 change: 1 addition & 0 deletions ogre2/include/ignition/rendering/ogre2/Ogre2Camera.hh
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

#include "ignition/rendering/base/BaseCamera.hh"
#include "ignition/rendering/ogre2/Ogre2RenderTypes.hh"
#include "ignition/rendering/ogre2/Ogre2Includes.hh"
#include "ignition/rendering/ogre2/Ogre2Sensor.hh"

namespace Ogre
Expand Down
4 changes: 2 additions & 2 deletions ogre2/include/ignition/rendering/ogre2/Ogre2Conversions.hh
Original file line number Diff line number Diff line change
Expand Up @@ -96,10 +96,10 @@ namespace ignition
/// \brief Ign-rendering PixelFormat to Ogre PixelFormat
/// \param[in] _v Ign-rendering PixelFormat
/// return Ogre PixelFormat
public: static Ogre::PixelFormat Convert(PixelFormat _format);
public: static Ogre::PixelFormatGpu Convert(PixelFormat _format);

/// \brief A list of ogre pixel formats
private: static const Ogre::PixelFormat ogrePixelFormats[PF_COUNT];
private: static const Ogre::PixelFormatGpu ogrePixelFormats[PF_COUNT];
};
/// \}
}
Expand Down
58 changes: 33 additions & 25 deletions ogre2/include/ignition/rendering/ogre2/Ogre2Includes.hh
Original file line number Diff line number Diff line change
Expand Up @@ -27,54 +27,62 @@
// This prevents some deprecation #warning messages on OSX 10.9
#pragma clang diagnostic ignored "-W#warnings"

#include <memory>

#include <Ogre.h>
#include <OgreBillboard.h>
#include <OgreImageCodec.h>
#include <OgreMovableObject.h>
#include <OgreRenderable.h>
#include <OgreRenderWindow.h>
#include <OgrePlugin.h>
#include <OgreCamera.h>
#include <OgreColourValue.h>
#include <OgreDataStream.h>
#include <OgreLogManager.h>
#include <OgreWindowEventUtilities.h>
#include <OgreSceneQuery.h>
#include <OgreRoot.h>
#include <OgreDepthBuffer.h>
#include <OgreFrameListener.h>
#include <OgreGpuProgramManager.h>
#include <OgreHardwareBufferManager.h>
#include <OgreHighLevelGpuProgramManager.h>
#include <OgreItem.h>
#include <OgreSceneManager.h>
#include <OgreSceneNode.h>
#include <OgreVector3.h>
#include <OgreImage2.h>
#include <OgreLogManager.h>
#include <OgreManualObject.h>
#include <OgreMaterialManager.h>
#include <OgreMatrix4.h>
#include <OgreColourValue.h>
#include <OgreQuaternion.h>
#include <OgreMesh2.h>
#include <OgreSubMesh2.h>
#include <OgreMeshManager2.h>
#include <OgreHardwareBufferManager.h>
#include <OgreCamera.h>
#include <OgreMovableObject.h>
#include <OgreNode.h>
#include <OgreSimpleRenderable.h>
#include <OgreFrameListener.h>
#include <OgreTexture.h>
#include <OgreOldSkeletonManager.h>
#include <OgreParticleEmitter.h>
#include <OgreParticleSystem.h>
#include <OgrePass.h>
#include <OgrePixelFormatGpuUtils.h>
#include <OgrePlugin.h>
#include <OgreQuaternion.h>
#include <OgreRectangle2D.h>
#include <OgreRenderObjectListener.h>
#include <OgreRenderable.h>
#include <OgreRoot.h>
#include <OgreSceneManager.h>
#include <OgreSceneNode.h>
#include <OgreSceneQuery.h>
#include <OgreShadowCameraSetupPSSM.h>
#include <OgreSimpleRenderable.h>
#include <OgreStagingTexture.h>
#include <OgreSubMesh2.h>
#include <OgreTechnique.h>
#include <OgrePass.h>
#include <OgreOldSkeletonManager.h>
#include <OgreTextureGpu.h>
#include <OgreTextureGpuManager.h>
#include <OgreTextureUnitState.h>
#include <OgreGpuProgramManager.h>
#include <OgreHighLevelGpuProgramManager.h>
#include <OgreHardwarePixelBuffer.h>
#include <OgreShadowCameraSetupPSSM.h>
#include <OgreDepthBuffer.h>
#include <OgreParticleAffector.h>
#include <OgreParticleAffectorFactory.h>
#include <OgreParticleEmitter.h>
#include <OgreParticleSystem.h>
#include <OgreVector3.h>
#include <OgreWindow.h>
#include <OgreWindowEventUtilities.h>

#include <OgreHlmsManager.h>
#include <OgreHlmsTextureManager.h>
#include <Hlms/Unlit/OgreHlmsUnlit.h>
#include <Hlms/Pbs/OgreHlmsPbs.h>

Expand Down
2 changes: 1 addition & 1 deletion ogre2/include/ignition/rendering/ogre2/Ogre2Material.hh
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ namespace ignition

/// \brief Get a pointer to the ogre texture by name
/// \return Ogre texture
protected: virtual Ogre::TexturePtr Texture(const std::string &_name);
protected: virtual Ogre::TextureGpu *Texture(const std::string &_name);

/// \brief Updates the material transparency in the engine,
/// based on transparency and diffuse alpha values
Expand Down
10 changes: 5 additions & 5 deletions ogre2/include/ignition/rendering/ogre2/Ogre2MaterialSwitcher.hh
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ namespace ignition

/// \brief Helper class to assign unique colors to renderables
class IGNITION_RENDERING_OGRE2_VISIBLE Ogre2MaterialSwitcher :
public Ogre::RenderTargetListener
public Ogre::Camera::Listener
{
/// \brief Constructor
public: explicit Ogre2MaterialSwitcher(Ogre2ScenePtr _scene);
Expand All @@ -57,14 +57,14 @@ namespace ignition
/// \brief Ogre's pre render update callback
/// \param[in] _evt Ogre render target event containing information about
/// the source render target.
public: virtual void preRenderTargetUpdate(
const Ogre::RenderTargetEvent &_evt);
public: virtual void cameraPreRenderScene(
Ogre::Camera *_cam) override;

/// \brief Ogre's post render update callback
/// \param[in] _evt Ogre render target event containing information about
/// the source render target.
public: virtual void postRenderTargetUpdate(
const Ogre::RenderTargetEvent &_evt);
public: virtual void cameraPostRenderScene (
Ogre::Camera * _cam) override;

/// \brief Current unique color value
private: ignition::math::Color currentColor;
Expand Down
9 changes: 9 additions & 0 deletions ogre2/include/ignition/rendering/ogre2/Ogre2RenderEngine.hh
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,9 @@ namespace ignition
/// \brief Create GL context
private: void CreateContext();

/// \brief Register Hlms
private: void registerHlms();

/// \brief Create ogre root
private: void CreateRoot();

Expand Down Expand Up @@ -192,6 +195,12 @@ namespace ignition
/// \brief Dummy window Id needed for linux platform
private: uint64_t dummyWindowId = 0u;

/// \brief Ogre Window
private: Ogre::Window * window;

/// \brief return the ogre window
public: Ogre::Window *getWindow(){ return this->window; }

/// \brief True to use the current opengl context
private: bool useCurrentGLContext = false;

Expand Down
10 changes: 5 additions & 5 deletions ogre2/include/ignition/rendering/ogre2/Ogre2RenderTarget.hh
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ namespace ignition
public: void SetMaterial(MaterialPtr _material);

/// \brief Get a pointer to the ogre render target
public: virtual Ogre::RenderTarget *RenderTarget() const = 0;
public: virtual Ogre::TextureGpu *RenderTarget() const = 0;

/// \brief Get visibility mask for the viewport associated with this
/// render target
Expand Down Expand Up @@ -239,7 +239,7 @@ namespace ignition
public: virtual unsigned int GLId() const override;

// Documentation inherited.
public: virtual Ogre::RenderTarget *RenderTarget() const override;
public: virtual Ogre::TextureGpu *RenderTarget() const override;

// Documentation inherited.
protected: virtual void RebuildTarget() override;
Expand All @@ -251,7 +251,7 @@ namespace ignition
protected: virtual void BuildTarget();

/// \brief Pointer to the internal ogre render texture object
protected: Ogre::Texture *ogreTexture = nullptr;
protected: Ogre::TextureGpu *ogreTexture = nullptr;

/// \brief Make scene our friend so it can create a ogre2 render texture
private: friend class Ogre2Scene;
Expand All @@ -271,7 +271,7 @@ namespace ignition
public: virtual void Destroy() override;

// Documentation inherited.
public: virtual Ogre::RenderTarget *RenderTarget() const override;
public: virtual Ogre::TextureGpu *RenderTarget() const override;

// Documentation inherited.
protected: virtual void RebuildTarget() override;
Expand All @@ -280,7 +280,7 @@ namespace ignition
protected: virtual void BuildTarget();

/// \brief Pointer to the internal ogre render target object
protected: Ogre::RenderTarget *ogreRenderWindow = nullptr;
protected: Ogre::TextureGpu *ogreRenderWindow = nullptr;

/// \brief Make scene our friend so it can create a ogre2 render window
private: friend class Ogre2Scene;
Expand Down
24 changes: 11 additions & 13 deletions ogre2/include/ignition/rendering/ogre2/Ogre2RenderTargetMaterial.hh
Original file line number Diff line number Diff line change
Expand Up @@ -42,30 +42,28 @@ namespace ignition
/// handleSchemeNotFound which returns the first supported technique on the
/// material provided to this class's constructor.
class IGNITION_RENDERING_OGRE2_VISIBLE Ogre2RenderTargetMaterial :
public Ogre::RenderTargetListener,
public Ogre::Camera::Listener,
public Ogre::MaterialManager::Listener
{
/// \brief constructor
/// \param[in] _scene the scene manager responsible for rendering
/// \param[in] _renderTarget the RenderTarget this should apply to
/// \param[in] _material the material to apply to all renderables
public: Ogre2RenderTargetMaterial(Ogre::SceneManager *_scene,
Ogre::RenderTarget *_renderTarget, Ogre::Material *_material);
Ogre::Camera *renderTexture, Ogre::Material *_material);

/// \brief destructor
public: ~Ogre2RenderTargetMaterial();

/// \brief Callback when a render target is about to be rendered
/// \param[in] _evt Ogre render target event containing information about
/// the source render target.
private: virtual void preRenderTargetUpdate(
const Ogre::RenderTargetEvent &_evt) override;
/// \brief Callback when a camera is about to be rendered
/// \param[in] _cam Ogre camera.
private: virtual void cameraPreRenderScene(
Ogre::Camera *_cam) override;

/// \brief Callback when a render target is finisned being rendered
/// \param[in] _evt Ogre render target event containing information about
/// the source render target.
private: virtual void postRenderTargetUpdate(
const Ogre::RenderTargetEvent &_evt) override;
/// \brief Callback when a camera is finisned being rendered
/// \param[in] _evt Ogre camera
private: virtual void cameraPostRenderScene(
Ogre::Camera *_evt) override;

/// \brief Ogre callback that assigned same material to all renderables
/// when the requested scheme is not found
Expand All @@ -86,7 +84,7 @@ namespace ignition
private: Ogre::SceneManager *scene = nullptr;

/// \brief render target that should see a uniform material
private: Ogre::RenderTarget *renderTarget = nullptr;
private: Ogre::Camera *renderCamera = nullptr;

/// \brief material that should be applied to all objects
private: Ogre::Material *material = nullptr;
Expand Down
2 changes: 2 additions & 0 deletions ogre2/include/ignition/rendering/ogre2/Ogre2Scene.hh
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@

#include "ignition/rendering/ogre2/Export.hh"

// #include "Compositor/OgreCompositorManager2.h"

namespace Ogre
{
class Root;
Expand Down
1 change: 1 addition & 0 deletions ogre2/include/ignition/rendering/ogre2/Ogre2Storage.hh
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

#include "ignition/rendering/ogre2/Ogre2Light.hh"
#include "ignition/rendering/ogre2/Ogre2Mesh.hh"
#include "ignition/rendering/ogre2/Ogre2Geometry.hh"
#include "ignition/rendering/ogre2/Ogre2Node.hh"
#include "ignition/rendering/ogre2/Ogre2Sensor.hh"
#include "ignition/rendering/ogre2/Ogre2Scene.hh"
Expand Down
29 changes: 14 additions & 15 deletions ogre2/src/Ogre2Conversions.cc
Original file line number Diff line number Diff line change
Expand Up @@ -20,32 +20,32 @@ using namespace ignition;
using namespace rendering;

//////////////////////////////////////////////////
const Ogre::PixelFormat Ogre2Conversions::ogrePixelFormats[PF_COUNT] =
const Ogre::PixelFormatGpu Ogre2Conversions::ogrePixelFormats[PF_COUNT] =
{
// UKNOWN
Ogre::PF_UNKNOWN,
Ogre::PFG_UNKNOWN,
// L8
Ogre::PF_L8,
Ogre::PFG_R8_UNORM,
// R8G8B8
Ogre::PF_BYTE_RGB,
Ogre::PFG_RGB8_UNORM,
// B8G8R8
Ogre::PF_BYTE_BGR,
Ogre::PFG_BGR8_UNORM,
// BAYER_RGGB8
Ogre::PF_BYTE_RGB,
Ogre::PFG_RGB8_UNORM,
// BAYER_BGGR8
Ogre::PF_BYTE_RGB,
Ogre::PFG_RGB8_UNORM,
// BAYER_GBGR8
Ogre::PF_BYTE_RGB,
Ogre::PFG_RGB8_UNORM,
// BAYER_GRGB8
Ogre::PF_BYTE_RGB,
Ogre::PFG_RGB8_UNORM,
// PF_FLOAT32_R
Ogre::PF_FLOAT32_R,
Ogre::PFG_R32_FLOAT,
// PF_FLOAT32_RGBA
Ogre::PF_FLOAT32_RGBA,
Ogre::PFG_RGBA32_FLOAT,
// PF_FLOAT32_RGB
Ogre::PF_FLOAT32_RGB,
Ogre::PFG_RGB32_FLOAT,
// PF_L16
Ogre::PF_L16
Ogre::PFG_R16_UNORM
};

//////////////////////////////////////////////////
Expand Down Expand Up @@ -97,7 +97,7 @@ math::Angle Ogre2Conversions::Convert(const Ogre::Radian &_angle)
}

//////////////////////////////////////////////////
Ogre::PixelFormat Ogre2Conversions::Convert(PixelFormat _format)
Ogre::PixelFormatGpu Ogre2Conversions::Convert(PixelFormat _format)
{
return Ogre2Conversions::ogrePixelFormats[_format];
}
Expand All @@ -119,4 +119,3 @@ Ogre::Matrix4 Ogre2Conversions::Convert(const math::Matrix4d &_m)
_m(2, 0), _m(2, 1), _m(2, 2), _m(2, 3),
_m(3, 0), _m(3, 1), _m(3, 2), _m(3, 3));
}

Loading

0 comments on commit ce84c10

Please sign in to comment.