#include <osgUtil/CullVisitor>
+#include <OpenThreads/Mutex>
+#include <OpenThreads/ScopedLock>
+
#include <simgear/math/sg_random.h>
#include <simgear/debug/logstream.hxx>
-#include <simgear/threads/SGThread.hxx>
-#include <simgear/threads/SGGuard.hxx>
+#include <simgear/scene/util/RenderConstants.hxx>
#include <simgear/scene/util/SGEnlargeBoundingBox.hxx>
#include "SGVasiDrawable.hxx"
+using OpenThreads::Mutex;
+using OpenThreads::ScopedLock;
+
+using namespace simgear;
+
static void
setPointSpriteImage(unsigned char* data, unsigned log2resolution,
unsigned charsPerPixel)
return image;
}
+static Mutex lightMutex;
+
static osg::Texture2D*
gen_standard_light_sprite(void)
{
if (texture.valid())
return texture.get();
- static SGMutex mutex;
- SGGuard<SGMutex> guard(mutex);
+ ScopedLock<Mutex> lock(lightMutex);
if (texture.valid())
return texture.get();
geometry->addPrimitiveSet(drawArrays);
osg::StateSet* stateSet = geometry->getOrCreateStateSet();
- stateSet->setRenderBinDetails(9, "DepthSortedBin");
+ stateSet->setRenderBinDetails(POINT_LIGHTS_BIN, "DepthSortedBin");
stateSet->setMode(GL_LIGHTING, osg::StateAttribute::OFF);
osg::BlendFunc* blendFunc = new osg::BlendFunc;
geometry->addPrimitiveSet(drawArrays);
osg::StateSet* stateSet = geometry->getOrCreateStateSet();
- stateSet->setRenderBinDetails(9, "DepthSortedBin");
+ stateSet->setRenderBinDetails(POINT_LIGHTS_BIN, "DepthSortedBin");
osg::Material* material = new osg::Material;
material->setColorMode(osg::Material::OFF);
geometry->addPrimitiveSet(drawArrays);
osg::StateSet* stateSet = geometry->getOrCreateStateSet();
- stateSet->setRenderBinDetails(9, "DepthSortedBin");
+ stateSet->setRenderBinDetails(POINT_LIGHTS_BIN, "DepthSortedBin");
stateSet->setMode(GL_LIGHTING, osg::StateAttribute::OFF);
geometry->addPrimitiveSet(drawArrays);
osg::StateSet* stateSet = geometry->getOrCreateStateSet();
- stateSet->setRenderBinDetails(9, "DepthSortedBin");
+ stateSet->setRenderBinDetails(POINT_LIGHTS_BIN, "DepthSortedBin");
osg::Material* material = new osg::Material;
material->setColorMode(osg::Material::OFF);
return 0;
osg::StateSet* stateSet = drawable->getOrCreateStateSet();
- stateSet->setRenderBinDetails(9, "DepthSortedBin");
+ stateSet->setRenderBinDetails(POINT_LIGHTS_BIN, "DepthSortedBin");
stateSet->setMode(GL_LIGHTING, osg::StateAttribute::OFF);
osg::BlendFunc* blendFunc = new osg::BlendFunc;
sequence->setSync(true);
osg::StateSet* stateSet = sequence->getOrCreateStateSet();
- stateSet->setRenderBinDetails(9, "DepthSortedBin");
+ stateSet->setRenderBinDetails(POINT_LIGHTS_BIN, "DepthSortedBin");
stateSet->setMode(GL_LIGHTING, osg::StateAttribute::OFF);
osg::BlendFunc* blendFunc = new osg::BlendFunc;
sequence->setSync(true);
osg::StateSet* stateSet = sequence->getOrCreateStateSet();
- stateSet->setRenderBinDetails(9, "DepthSortedBin");
+ stateSet->setRenderBinDetails(POINT_LIGHTS_BIN, "DepthSortedBin");
stateSet->setMode(GL_LIGHTING, osg::StateAttribute::OFF);
osg::BlendFunc* blendFunc = new osg::BlendFunc;