#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
+6 -1
View File
@@ -204,6 +204,10 @@ Effect* getLightEffect(float size, const Vec3& attenuation,
Pass *combinedPass = clone(spritePass, CopyOp::SHALLOW_COPY); Pass *combinedPass = clone(spritePass, CopyOp::SHALLOW_COPY);
combinedPass->setAttributeAndModes(point); combinedPass->setAttributeAndModes(point);
Effect* effect = new Effect; Effect* effect = new Effect;
std::vector<std::string> parameterExtensions;
if (SGSceneFeatures::instance()->getEnablePointSpriteLights())
{
std::vector<std::string> combinedExtensions; std::vector<std::string> combinedExtensions;
combinedExtensions.push_back("GL_ARB_point_sprite"); combinedExtensions.push_back("GL_ARB_point_sprite");
combinedExtensions.push_back("GL_ARB_point_parameters"); combinedExtensions.push_back("GL_ARB_point_parameters");
@@ -217,8 +221,9 @@ Effect* getLightEffect(float size, const Vec3& attenuation,
spriteTniq->passes.push_back(spritePass); spriteTniq->passes.push_back(spritePass);
spriteTniq->setGLExtensionsPred(2.0, spriteExtensions); spriteTniq->setGLExtensionsPred(2.0, spriteExtensions);
effect->techniques.push_back(spriteTniq); effect->techniques.push_back(spriteTniq);
std::vector<std::string> parameterExtensions;
parameterExtensions.push_back(combinedExtensions.back()); parameterExtensions.push_back(combinedExtensions.back());
}
Technique* parameterTniq = new Technique; Technique* parameterTniq = new Technique;
parameterTniq->passes.push_back(attenuationPass); parameterTniq->passes.push_back(attenuationPass);
parameterTniq->setGLExtensionsPred(1.4, parameterExtensions); parameterTniq->setGLExtensionsPred(1.4, parameterExtensions);
+4
View File
@@ -46,6 +46,10 @@ public:
void setEnablePointSpriteLights(bool enable) void setEnablePointSpriteLights(bool enable)
{ _pointSpriteLights = enable; } { _pointSpriteLights = enable; }
bool getEnablePointSpriteLights() const
{
return _pointSpriteLights;
}
bool getEnablePointSpriteLights(unsigned contextId) const bool getEnablePointSpriteLights(unsigned contextId) const
{ {
if (!_pointSpriteLights) if (!_pointSpriteLights)