forked from mirror/openmw-tes3mp
Remove more unused code
parent
19e5978a01
commit
eb5e4ecec2
@ -1,108 +0,0 @@
|
|||||||
#include "compositors.hpp"
|
|
||||||
|
|
||||||
#include <OgreViewport.h>
|
|
||||||
#include <OgreCompositorManager.h>
|
|
||||||
#include <OgreCompositorChain.h>
|
|
||||||
#include <OgreCompositionTargetPass.h>
|
|
||||||
|
|
||||||
using namespace MWRender;
|
|
||||||
|
|
||||||
Compositors::Compositors(Ogre::Viewport* vp) :
|
|
||||||
mViewport(vp)
|
|
||||||
, mEnabled(true)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
Compositors::~Compositors()
|
|
||||||
{
|
|
||||||
Ogre::CompositorManager::getSingleton().removeCompositorChain(mViewport);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Compositors::setEnabled (const bool enabled)
|
|
||||||
{
|
|
||||||
for (CompositorMap::iterator it=mCompositors.begin();
|
|
||||||
it != mCompositors.end(); ++it)
|
|
||||||
{
|
|
||||||
Ogre::CompositorManager::getSingleton().setCompositorEnabled(mViewport, it->first, enabled && it->second.first);
|
|
||||||
}
|
|
||||||
mEnabled = enabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Compositors::recreate()
|
|
||||||
{
|
|
||||||
Ogre::CompositorManager::getSingleton().removeCompositorChain(mViewport);
|
|
||||||
|
|
||||||
CompositorMap temp = mCompositors;
|
|
||||||
mCompositors.clear();
|
|
||||||
|
|
||||||
for (CompositorMap::iterator it=temp.begin();
|
|
||||||
it != temp.end(); ++it)
|
|
||||||
{
|
|
||||||
addCompositor(it->first, it->second.second);
|
|
||||||
setCompositorEnabled(it->first, mEnabled && it->second.first);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Compositors::addCompositor (const std::string& name, const int priority)
|
|
||||||
{
|
|
||||||
int id = 0;
|
|
||||||
|
|
||||||
for (CompositorMap::iterator it=mCompositors.begin();
|
|
||||||
it != mCompositors.end(); ++it)
|
|
||||||
{
|
|
||||||
if (it->second.second > priority)
|
|
||||||
break;
|
|
||||||
++id;
|
|
||||||
}
|
|
||||||
Ogre::CompositorManager::getSingleton().addCompositor (mViewport, name, id);
|
|
||||||
|
|
||||||
mCompositors[name] = std::make_pair(false, priority);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Compositors::setCompositorEnabled (const std::string& name, const bool enabled)
|
|
||||||
{
|
|
||||||
mCompositors[name].first = enabled;
|
|
||||||
Ogre::CompositorManager::getSingleton().setCompositorEnabled (mViewport, name, enabled && mEnabled);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Compositors::removeAll()
|
|
||||||
{
|
|
||||||
Ogre::CompositorManager::getSingleton().removeCompositorChain(mViewport);
|
|
||||||
|
|
||||||
mCompositors.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Compositors::anyCompositorEnabled()
|
|
||||||
{
|
|
||||||
for (CompositorMap::iterator it=mCompositors.begin();
|
|
||||||
it != mCompositors.end(); ++it)
|
|
||||||
{
|
|
||||||
if (it->second.first && mEnabled)
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Compositors::countTrianglesBatches(unsigned int &triangles, unsigned int &batches)
|
|
||||||
{
|
|
||||||
triangles = 0;
|
|
||||||
batches = 0;
|
|
||||||
|
|
||||||
Ogre::CompositorInstance* c = NULL;
|
|
||||||
Ogre::CompositorChain* chain = Ogre::CompositorManager::getSingleton().getCompositorChain (mViewport);
|
|
||||||
// accumulate tris & batches from all compositors with all their render targets
|
|
||||||
for (unsigned int i=0; i < chain->getNumCompositors(); ++i)
|
|
||||||
{
|
|
||||||
if (chain->getCompositor(i)->getEnabled())
|
|
||||||
{
|
|
||||||
c = chain->getCompositor(i);
|
|
||||||
for (unsigned int j = 0; j < c->getTechnique()->getNumTargetPasses(); ++j)
|
|
||||||
{
|
|
||||||
std::string textureName = c->getTechnique()->getTargetPass(j)->getOutputName();
|
|
||||||
Ogre::RenderTarget* rt = c->getRenderTarget(textureName);
|
|
||||||
triangles += rt->getTriangleCount();
|
|
||||||
batches += rt->getBatchCount();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,64 +0,0 @@
|
|||||||
#ifndef GAME_MWRENDER_COMPOSITORS_H
|
|
||||||
#define GAME_MWRENDER_COMPOSITORS_H
|
|
||||||
|
|
||||||
#include <map>
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
namespace Ogre
|
|
||||||
{
|
|
||||||
class Viewport;
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace MWRender
|
|
||||||
{
|
|
||||||
typedef std::map < std::string, std::pair<bool, int> > CompositorMap;
|
|
||||||
|
|
||||||
/// \brief Manages a set of compositors for one viewport
|
|
||||||
class Compositors
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
Compositors(Ogre::Viewport* vp);
|
|
||||||
virtual ~Compositors();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* enable or disable all compositors globally
|
|
||||||
*/
|
|
||||||
void setEnabled (const bool enabled);
|
|
||||||
|
|
||||||
void setViewport(Ogre::Viewport* vp) { mViewport = vp; }
|
|
||||||
|
|
||||||
/// recreate compositors (call this after viewport size changes)
|
|
||||||
void recreate();
|
|
||||||
|
|
||||||
bool toggle() { setEnabled(!mEnabled); return mEnabled; }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* enable or disable a specific compositor
|
|
||||||
* @note enable has no effect if all compositors are globally disabled
|
|
||||||
*/
|
|
||||||
void setCompositorEnabled (const std::string& name, const bool enabled);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param name of compositor
|
|
||||||
* @param priority, lower number will be first in the chain
|
|
||||||
*/
|
|
||||||
void addCompositor (const std::string& name, const int priority);
|
|
||||||
|
|
||||||
bool anyCompositorEnabled();
|
|
||||||
|
|
||||||
void countTrianglesBatches(unsigned int &triangles, unsigned int &batches);
|
|
||||||
|
|
||||||
void removeAll ();
|
|
||||||
|
|
||||||
protected:
|
|
||||||
/// maps compositor name to its "enabled" state
|
|
||||||
CompositorMap mCompositors;
|
|
||||||
|
|
||||||
bool mEnabled;
|
|
||||||
|
|
||||||
Ogre::Viewport* mViewport;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
Loading…
Reference in New Issue