--- libgender/view.C 2005/07/18 04:28:40 1.88 +++ libgender/view.C 2005/08/09 23:58:43 1.89 @@ -6,8 +6,12 @@ #include "oct.h" #include "material.h" +#include "entity.h" + using namespace gl; +skybox *world_skybox; + pass_data pass_depth (0, DEPTH); pass_data pass_postdepth (0, POSTDEPTH); @@ -242,12 +246,15 @@ switch (pass.type) { case DEPTH: + glEnable (GL_CULL_FACE); + glDisable (GL_MINMAX); + glDepthRange (DEPTH_OFFSET, 1.); + glDepthFunc (GL_LESS); glColorMask (1, 1, 1, 1); - glDepthMask (1); glDisable (GL_BLEND); + glDepthMask (1); - //glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); - glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glClear (GL_DEPTH_BUFFER_BIT | (world_skybox ? 0 : GL_COLOR_BUFFER_BIT)); //glEnable (GL_STENCIL_TEST); // for depth-passes //glStencilOp (GL_KEEP, GL_KEEP, GL_REPLACE); @@ -255,10 +262,6 @@ //glEnable (GL_POLYGON_OFFSET_FILL); //glPolygonOffset (0, 5); - glEnable (GL_CULL_FACE); - glDisable (GL_MINMAX); - glDepthRange (DEPTH_OFFSET, 1.); - glDepthFunc (GL_LESS); glEnable (GL_DEPTH_TEST); glColorMask (0, 0, 0, 0); @@ -319,6 +322,13 @@ glColorMask (1, 1, 1, 1); glDepthMask (0); + if (world_skybox) + { + glDisable (GL_DEPTH_TEST); + world_skybox->draw (*this);// + glEnable (GL_DEPTH_TEST); + } + for (vector::iterator i = vislist.begin (); i != vislist.end (); ++i) (*i)->draw_lighted (*this);