18 #ifndef GZ_RENDERING_OGRE_OGREMATERIALSWITCHER_HH_
19 #define GZ_RENDERING_OGRE_OGREMATERIALSWITCHER_HH_
24 #include <gz/utils/SuppressWarning.hh>
25 #include <gz/math/Color.hh>
26 #include "gz/rendering/config.hh"
27 #include "gz/rendering/ogre/Export.hh"
35 inline namespace GZ_RENDERING_VERSION_NAMESPACE {
38 class OgreSelectionBuffer;
46 #pragma warning(disable:4275)
48 public Ogre::MaterialManager::Listener,
52 Ogre::RenderTargetListener
78 public:
virtual Ogre::Technique *handleSchemeNotFound(
79 uint16_t _schemeIndex,
const Ogre::String &_schemeName,
80 Ogre::Material *_originalMaterial, uint16_t _lodIndex,
81 const Ogre::Renderable *_rend);
86 public:
virtual void preRenderTargetUpdate(
87 const Ogre::RenderTargetEvent &_evt);
92 public:
virtual void postRenderTargetUpdate(
93 const Ogre::RenderTargetEvent &_evt);
102 private: Ogre::Technique *lastTechnique =
nullptr;
106 GZ_UTILS_WARN_IGNORE__DLL_INTERFACE_MISSING
108 GZ_UTILS_WARN_RESUME__DLL_INTERFACE_MISSING
112 private:
void NextColor();
119 private: Ogre::Technique *plainTechnique =
nullptr;
122 private: Ogre::Technique *overlayTechnique =
nullptr;