#232: resurrect the "point sprites for runway lights" switch

Automatic GL/OSG feature detection still not working, since we don't have
a "context" - but at least the manual switch works (on start-up only).
This commit is contained in:
ThorstenB
2011-07-31 14:00:48 +02:00
parent 13736219ff
commit b53c53d9d8
2 changed files with 23 additions and 14 deletions

View File

@@ -204,21 +204,26 @@ Effect* getLightEffect(float size, const Vec3& attenuation,
Pass *combinedPass = clone(spritePass, CopyOp::SHALLOW_COPY);
combinedPass->setAttributeAndModes(point);
Effect* effect = new Effect;
std::vector<std::string> combinedExtensions;
combinedExtensions.push_back("GL_ARB_point_sprite");
combinedExtensions.push_back("GL_ARB_point_parameters");
Technique* combinedTniq = new Technique;
combinedTniq->passes.push_back(combinedPass);
combinedTniq->setGLExtensionsPred(2.0, combinedExtensions);
effect->techniques.push_back(combinedTniq);
std::vector<std::string> spriteExtensions;
spriteExtensions.push_back(combinedExtensions.front());
Technique* spriteTniq = new Technique;
spriteTniq->passes.push_back(spritePass);
spriteTniq->setGLExtensionsPred(2.0, spriteExtensions);
effect->techniques.push_back(spriteTniq);
std::vector<std::string> parameterExtensions;
parameterExtensions.push_back(combinedExtensions.back());
if (SGSceneFeatures::instance()->getEnablePointSpriteLights())
{
std::vector<std::string> combinedExtensions;
combinedExtensions.push_back("GL_ARB_point_sprite");
combinedExtensions.push_back("GL_ARB_point_parameters");
Technique* combinedTniq = new Technique;
combinedTniq->passes.push_back(combinedPass);
combinedTniq->setGLExtensionsPred(2.0, combinedExtensions);
effect->techniques.push_back(combinedTniq);
std::vector<std::string> spriteExtensions;
spriteExtensions.push_back(combinedExtensions.front());
Technique* spriteTniq = new Technique;
spriteTniq->passes.push_back(spritePass);
spriteTniq->setGLExtensionsPred(2.0, spriteExtensions);
effect->techniques.push_back(spriteTniq);
parameterExtensions.push_back(combinedExtensions.back());
}
Technique* parameterTniq = new Technique;
parameterTniq->passes.push_back(attenuationPass);
parameterTniq->setGLExtensionsPred(1.4, parameterExtensions);

View File

@@ -46,6 +46,10 @@ public:
void setEnablePointSpriteLights(bool enable)
{ _pointSpriteLights = enable; }
bool getEnablePointSpriteLights() const
{
return _pointSpriteLights;
}
bool getEnablePointSpriteLights(unsigned contextId) const
{
if (!_pointSpriteLights)