/[gzz]/gzz/gfx/jni/GzzGL-jni.cxx
ViewVC logotype

Diff of /gzz/gfx/jni/GzzGL-jni.cxx

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.21 by tjl, Wed Sep 18 08:34:01 2002 UTC revision 1.22 by tjl, Wed Sep 18 10:01:26 2002 UTC
# Line 844  JNIEXPORT jfloatArray JNICALL Java_gzz_g Line 844  JNIEXPORT jfloatArray JNICALL Java_gzz_g
844        return result;        return result;
845  }  }
846    
847    GLuint buf[1600 * 1200];
848    
849    JNIEXPORT void JNICALL Java_gzz_gfx_gl_GZZGL_reallyClearStencilBuffer
850      (JNIEnv *env, jclass, jint w, jint h) {
851    
852          if(w*h > 1600*1200) return;
853        
854          cout << "In reallyClear\n\n";
855          glPixelStorei(GL_PACK_ALIGNMENT, 1);
856          glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
857          cout << "Set up\n";
858          glReadPixels(0, 0, w, h, GL_DEPTH_STENCIL_NV, GL_UNSIGNED_INT_24_8_NV, buf);
859          cout << "Read pix\n";
860          GLERR
861          for(int i=0; i<w*h; i++) {
862              if(buf[i] != 0)  {
863                  cout << "Buf "<<i<<" "<<buf[i]<<"\n";
864                  goto nonzero;
865              }
866          }
867          cout << "done\n";
868          return;
869        nonzero:
870          cout << "STENCIL CLEARING: NOT ALL ZERO!!!!\n";
871          for(int i=0; i<w*h; i++) buf[i] = 0;
872          cout << "rastpos\n";
873          glPushAttrib(GL_ENABLE_BIT);
874          glDisable(GL_DEPTH_TEST);
875          glDisable(GL_STENCIL_TEST);
876          glStencilMask(255);
877          glRasterPos2d(0,0);
878          glDrawPixels(w, h, GL_DEPTH_STENCIL_NV, GL_UNSIGNED_INT_24_8_NV, buf);
879          glRasterPos2d(0,1);
880          glDrawPixels(w, h, GL_DEPTH_STENCIL_NV, GL_UNSIGNED_INT_24_8_NV, buf);
881          glRasterPos2d(1,0);
882          glDrawPixels(w, h, GL_DEPTH_STENCIL_NV, GL_UNSIGNED_INT_24_8_NV, buf);
883          glRasterPos2d(1,1);
884          glDrawPixels(w, h, GL_DEPTH_STENCIL_NV, GL_UNSIGNED_INT_24_8_NV, buf);
885          glRasterPos2d(w,h);
886          glDrawPixels(w, h, GL_DEPTH_STENCIL_NV, GL_UNSIGNED_INT_24_8_NV, buf);
887          glRasterPos2d(w,0);
888          glDrawPixels(w, h, GL_DEPTH_STENCIL_NV, GL_UNSIGNED_INT_24_8_NV, buf);
889          glRasterPos2d(0,h);
890          glDrawPixels(w, h, GL_DEPTH_STENCIL_NV, GL_UNSIGNED_INT_24_8_NV, buf);
891          glPopAttrib();
892          cout << "drawn\n";
893    }
894    
895    
896    

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.22

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26