]> git.mxchange.org Git - simgear.git/commitdiff
Use a more standard texture/blend mode combination for sun/moon halos to
authorcurt <curt>
Wed, 3 Nov 1999 15:17:50 +0000 (15:17 +0000)
committercurt <curt>
Wed, 3 Nov 1999 15:17:50 +0000 (15:17 +0000)
avoid render path that's not supported by all cards/drivers.

simgear/ephemeris/moon.cxx
simgear/ephemeris/star.cxx

index 75d304c8c1cb4df2f37789a7e16aa2c6ec4869c2..7b3d4b79cf2e6b408ed74df4498d66943f902b21 100644 (file)
@@ -157,27 +157,22 @@ void Moon::setHalo()
   for (i=0; i < texWidth; i++) {
     for (j=0; j < texWidth; j++) {
       double x, y, d;
-           
+      
+      *p = 0xff;
+      *(p+1) = 0xff;
+      *(p+2) = 0xff;
+         
       x = fabs((double)(i - (texWidth / 2)));
       y = fabs((double)(j - (texWidth / 2)));
 
       d = sqrt((x * x) + (y * y));
-      if (d < radius) 
-       {
+      if (d < radius) {
          double t = 1.0 - (d / radius); // t is 1.0 at center, 0.0 at edge */
          // inverse square looks nice 
-         *p = (int)((double)0xff * (t * t));
-         *(p+1) = (int)((double) 0xff * (t*t));
-         *(p+2) = (int)((double) 0xff * (t*t));
-         *(p+3) = 0x11;
-       } 
-      else
-       {
-         *p = 0x00;
-         *(p+1) = 0x00;
-         *(p+2) = 0x00;
-         *(p+3) = 0x11;
-       }
+         *(p+3) = (int)((double) 0x20 * (t*t));
+      } else {
+         *(p+3) = 0x00;
+      }
       p += 4;
     }
   }
@@ -354,7 +349,8 @@ void Moon::newImage()
        // Draw the halo...
        if (current_options.get_textures())
          {
-           glBlendFunc(GL_SRC_ALPHA, GL_ONE);
+           // glBlendFunc(GL_SRC_ALPHA, GL_ONE);
+           glBlendFunc ( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ) ;
            glEnable(GL_TEXTURE_2D); // TEXTURE ENABLED
            glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);  
            glBindTexture(GL_TEXTURE_2D, moon_halotexid);
index c3985d7e10426e0ed2a3f9412291ece66a36878d..edf5223b7ff380513e1a8e0173433fed9fd24c1c 100644 (file)
@@ -116,26 +116,21 @@ void Star::setTexture()
     for (j=0; j < texWidth; j++) {
       double x, y, d;
            
+      *p = 0xff;
+      *(p+1) = 0xff;
+      *(p+2) = 0xff;
+
       x = fabs((double)(i - (texWidth / 2)));
       y = fabs((double)(j - (texWidth / 2)));
 
       d = sqrt((x * x) + (y * y));
-      if (d < radius) 
-       {
+      if (d < radius) {
          double t = 1.0 - (d / radius); // t is 1.0 at center, 0.0 at edge */
          // inverse square looks nice 
-         *p = (int)((double)0xff * (t * t));
-         *(p+1) = (int)((double) 0xff * (t*t));
-         *(p+2) = (int)((double) 0xff * (t*t));
          *(p+3) = (int)((double) 0xff * (t*t));
-       } 
-      else
-       {
-         *p = 0x00;
-         *(p+1) = 0x00;
-         *(p+2) = 0x00;
+      } else {
          *(p+3) = 0x00;
-       }
+      }
       p += 4;
     }
   }
@@ -238,7 +233,8 @@ void Star::newImage(void)
          glEnable(GL_TEXTURE_2D); // TEXTURE ENABLED
          glEnable(GL_BLEND);   // BLEND ENABLED
          
-         glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
+         // glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
+         glBlendFunc ( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ) ;
          glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);  
          glBindTexture(GL_TEXTURE_2D, sun_texid);