#include "Effect.hxx"
#include "Technique.hxx"
+#include <simgear/scene/util/RenderConstants.hxx>
+
namespace simgear
{
using osgUtil::CullVisitor;
-EffectCullVisitor::EffectCullVisitor()
+EffectCullVisitor::EffectCullVisitor(bool collectLights) :
+ _collectLights(collectLights)
{
}
CullVisitor::apply(node);
return;
}
+ if (_collectLights && ( eg->getNodeMask() & MODELLIGHT_BIT ) ) {
+ _lightList.push_back( eg );
+ }
Effect* effect = eg->getEffect();
Technique* technique = 0;
if (!effect) {
}
+void EffectCullVisitor::reset()
+{
+ _lightList.clear();
+
+ osgUtil::CullVisitor::reset();
+}
+
void EffectCullVisitor::clearBufferList()
{
_bufferList.clear();
}
-void EffectCullVisitor::addBuffer(int i, osg::Texture2D* tex)
+void EffectCullVisitor::addBuffer(std::string b, osg::Texture2D* tex)
{
- _bufferList.insert(std::make_pair(i,tex));
+ _bufferList.insert(std::make_pair(b,tex));
}
-osg::Texture2D* EffectCullVisitor::getBuffer(int i)
+osg::Texture2D* EffectCullVisitor::getBuffer(std::string b)
{
- return _bufferList[i];
+ return _bufferList[b];
}
}