]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/main.cxx
Additional tweaks to fix the ssg texture (state) problems. Tweaked near
[flightgear.git] / src / Main / main.cxx
index 265f341185873ed6e59494b82843c2236494a542..8e06130c8f2d88f3bbf3bba8ae0f268ec16a4c14 100644 (file)
@@ -130,6 +130,7 @@ slSample *s2;
 
 // ssg variables
 ssgRoot *scene = NULL;
+ssgBranch *terrain = NULL;
 ssgTransform *penguin = NULL;
 
 
@@ -380,6 +381,41 @@ static void fgRenderFrame( void ) {
 
        global_tile_mgr.render();
 
+       // ssg test
+
+       xglMatrixMode(GL_PROJECTION);
+       xglLoadIdentity();
+       ssgSetFOV(60.0f, 0.0f);
+       ssgSetNearFar(10.0f, 14000.0f);
+       sgMat4 sgTRANS;
+
+       sgMakeTransMat4( sgTRANS, 
+                        current_view.view_pos.x() 
+                        + current_view.view_forward[0] * 20,
+                        current_view.view_pos.y() 
+                        + current_view.view_forward[1] * 20,
+                        current_view.view_pos.z() 
+                        + current_view.view_forward[2] * 20 );
+
+       sgMat4 sgTMP;
+       sgMat4 sgTUX;
+       sgMultMat4( sgTMP, current_view.sgUP, sgTRANS );
+       sgMultMat4( sgTUX, current_view.sgLARC_TO_SSG, sgTMP );
+       
+       sgCoord tuxpos;
+       sgSetCoord( &tuxpos, sgTUX );
+       penguin->setTransform( &tuxpos );
+
+       sgMakeTransMat4( sgTRANS, 
+                        current_view.view_pos.x(),
+                        current_view.view_pos.y(),
+                        current_view.view_pos.z() );
+       sgMat4 sgVIEW;
+       sgMultMat4( sgVIEW, current_view.sgVIEW, sgTRANS );
+       ssgSetCamera( sgVIEW );
+       // ssgSetCamera( current_view.sgVIEW );
+       ssgCullAndDraw( scene );
+
        xglDisable( GL_TEXTURE_2D );
        xglDisable( GL_FOG );
 
@@ -394,33 +430,6 @@ static void fgRenderFrame( void ) {
        xglDisable   ( GL_BLEND ) ;
        xglEnable( GL_FOG );
 
-       // ssg test
-       cout << "trying to draw ssg scene" << endl;
-
-       xglMatrixMode(GL_PROJECTION);
-       xglLoadIdentity();
-       ssgSetFOV(60.0f, 0.0f);
-       ssgSetNearFar(1.0f, 700.0f);
-       sgCoord tuxpos;
-       sgSetCoord( &tuxpos, 
-                   current_view.view_pos.x() + current_view.view_forward[0] 
-                   * 20, 
-                   current_view.view_pos.y() + current_view.view_forward[1]
-                   * 20,
-                   current_view.view_pos.z() + current_view.view_forward[2]
-                   * 20, 
-                   0.0, 0.0, 0.0 );
-       penguin->setTransform( &tuxpos );
-
-       sgCoord campos;
-       sgSetCoord( &campos, 
-                   current_view.view_pos.x(), 
-                   current_view.view_pos.y(),
-                   current_view.view_pos.z(), 
-                   0, 0, 0 );
-       ssgSetCamera( &campos );
-       ssgCullAndDraw( scene );
-
     }
 
     xglutSwapBuffers();
@@ -1058,10 +1067,14 @@ int main( int argc, char **argv ) {
     // distribution) specifically from the ssg tux example
     //
 
-    ssgModelPath( "/h/curt/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
-    ssgTexturePath( "/h/curt/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
+    ssgModelPath( "/stage/pinky01/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
+    ssgTexturePath( "/stage/pinky01/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
+    // ssgModelPath( "/h/curt/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
+    // ssgTexturePath( "/h/curt/src/Libs/plib-1.0.12/examples/ssg/tux/data/" );
 
     scene = new ssgRoot;
+    terrain = new ssgBranch;
+    terrain->setName( "Terrain" );
     penguin = new ssgTransform;
 
     ssgEntity *tux_obj = ssgLoadAC( "tuxedo.ac" );
@@ -1069,10 +1082,9 @@ int main( int argc, char **argv ) {
     ssgFlatten( tux_obj );
     ssgStripify( penguin );
 
+    scene->addKid( terrain );
     scene->addKid( penguin );
 
-    cout << "loaded ssg scene so it should be ready to go" << endl;
-
     // pass control off to the master GLUT event handler
     glutMainLoop();