]> git.mxchange.org Git - flightgear.git/commitdiff
- add transparency option
authormfranz <mfranz>
Fri, 9 Jun 2006 20:37:16 +0000 (20:37 +0000)
committermfranz <mfranz>
Fri, 9 Jun 2006 20:37:16 +0000 (20:37 +0000)
- comment out date/time ... this needs to be added to the HUDs that need it

src/Cockpit/hud.cxx
src/Cockpit/hud.hxx

index 7195ad5c28ce5a47b858ed1a2a34c7862b2d81a8..31210b2521b06566fd141725ba68b6bf3ea231a7 100644 (file)
@@ -952,13 +952,17 @@ void drawHUD()
     static char hud_wp2_text[256];
     static char hud_alt_text[256];
 
+    glEnable(GL_BLEND);
+    if (HUD->isTransparent())
+        glBlendFunc(GL_SRC_ALPHA, GL_ONE);
+    else
+        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
     if (HUD->isAntialiased()) {
         glEnable(GL_LINE_SMOOTH);
         glAlphaFunc(GL_GREATER, HUD->alphaClamp());
-        //       glEnable(GL_BLEND);
-        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
         glHint(GL_LINE_SMOOTH_HINT, GL_DONT_CARE);
-        glLineWidth(2.0);
+        glLineWidth(1.5);
     } else {
         glLineWidth(1.0);
     }
@@ -966,7 +970,7 @@ void drawHUD()
     HUD->setColor();
     for_each(HUD_deque.begin(), HUD_deque.end(), HUDdraw());
 
-    HUD_TextList.add( fgText(40, 10, get_formated_gmt_time(), 0) );
+    //HUD_TextList.add( fgText(40, 10, get_formated_gmt_time(), 0) );
 
 
     int apY = 480 - 80;
@@ -1022,7 +1026,6 @@ void drawHUD()
     }
 
     HUD_TextList.draw();
-
     HUD_LineList.draw();
 
     // glEnable(GL_LINE_STIPPLE);
@@ -1031,7 +1034,6 @@ void drawHUD()
     // glDisable(GL_LINE_STIPPLE);
 
     if (HUD->isAntialiased()) {
-        // glDisable(GL_BLEND);
         glDisable(GL_ALPHA_TEST);
         glDisable(GL_LINE_SMOOTH);
         glLineWidth(1.0);
@@ -1053,12 +1055,14 @@ void fgTextList::draw()
 
     glPushAttrib(GL_COLOR_BUFFER_BIT);
     glEnable(GL_BLEND);
+    if (HUD->isTransparent())
+        glBlendFunc(GL_SRC_ALPHA, GL_ONE);
+    else
+        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
     if (HUD->isAntialiased()) {
         glEnable(GL_ALPHA_TEST);
         glAlphaFunc(GL_GREATER, HUD->alphaClamp());
-        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-    } else {
-        glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
     }
 
     Font->begin();
@@ -1078,15 +1082,22 @@ HUD_Properties::HUD_Properties() :
     _current(fgGetNode("/sim/hud/current-color", true)),
     _visibility(fgGetNode("/sim/hud/visibility", true)),
     _antialiasing(fgGetNode("/sim/hud/color/antialiased", true)),
+    _transparency(fgGetNode("/sim/hud/color/transparent", true)),
     _red(fgGetNode("/sim/hud/color/red", true)),
     _green(fgGetNode("/sim/hud/color/green", true)),
     _blue(fgGetNode("/sim/hud/color/blue", true)),
     _alpha(fgGetNode("/sim/hud/color/alpha", true)),
     _alpha_clamp(fgGetNode("/sim/hud/color/alpha-clamp", true)),
-    _brightness(fgGetNode("/sim/hud/color/brightness", true))
+    _brightness(fgGetNode("/sim/hud/color/brightness", true)),
+    _visible(false),
+    _antialiased(false),
+    _transparent(false),
+    _a(0.67),
+    _cl(0.01)
 {
     _visibility->addChangeListener(this);
     _antialiasing->addChangeListener(this);
+    _transparency->addChangeListener(this);
     _red->addChangeListener(this);
     _green->addChangeListener(this);
     _blue->addChangeListener(this);
@@ -1109,14 +1120,19 @@ void HUD_Properties::valueChanged(SGPropertyNode *node)
             _green->setFloatValue(n->getFloatValue("green", 1.0));
             _blue->setFloatValue(n->getFloatValue("blue", 1.0));
             if (n->hasValue("alpha"))
-                _alpha->setFloatValue(n->getFloatValue("alpha", 1.0));
+                _alpha->setFloatValue(n->getFloatValue("alpha", 0.67));
             if (n->hasValue("alpha-clamp"))
                 _alpha_clamp->setFloatValue(n->getFloatValue("alpha-clamp", 0.01));
             if (n->hasValue("brightness"))
                 _brightness->setFloatValue(n->getFloatValue("brightness", 0.75));
+            if (n->hasValue("antialiased"))
+                _antialiasing->setBoolValue(n->getBoolValue("antialiased", false));
+            if (n->hasValue("transparent"))
+                _transparency->setBoolValue(n->getBoolValue("transparent", false));
         }
     }
     _visible = _visibility->getBoolValue();
+    _transparent = _transparency->getBoolValue();
     _antialiased = _antialiasing->getBoolValue();
     float brt = _brightness->getFloatValue();
     _r = clamp(brt * _red->getFloatValue());
index 1a17ad631640cd3a6ca3716e1959689de16ac6f2..763948d15af6f03bffd1298fd31a871488313602 100644 (file)
@@ -1030,6 +1030,7 @@ public:
     void setColor() const;
     bool isVisible() const { return _visible; }
     bool isAntialiased() const { return _antialiased; }
+    bool isTransparent() const { return _transparent; }
     float alphaClamp() const { return _cl; }
 
 private:
@@ -1037,11 +1038,13 @@ private:
     SGPropertyNode_ptr _current;
     SGPropertyNode_ptr _visibility;
     SGPropertyNode_ptr _antialiasing;
+    SGPropertyNode_ptr _transparency;
     SGPropertyNode_ptr _red, _green, _blue, _alpha;
     SGPropertyNode_ptr _alpha_clamp;
     SGPropertyNode_ptr _brightness;
     bool _visible;
     bool _antialiased;
+    bool _transparent;
     float _r, _g, _b, _a, _cl;
 };