diff options
author | Ton Roosendaal <ton@blender.org> | 2004-09-25 20:38:51 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2004-09-25 20:38:51 +0400 |
commit | 8655cc40ad376033b000911b16bc5487c4fad3f2 (patch) | |
tree | 87668d928b6e42eab87fa2cb4de9afe4213e81c5 /source/blender/src/editmesh_mods.c | |
parent | 9118fbd855d56d0dac77c087fb6053cff829dba9 (diff) |
Integer version of glReadBuffer with GL_DEPTH_COMPONENT...
reported were errors with ati-linux on using float here.
Code is still there, and can be easily switched back ( if(0) or if(1) !)
Diffstat (limited to 'source/blender/src/editmesh_mods.c')
-rw-r--r-- | source/blender/src/editmesh_mods.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/source/blender/src/editmesh_mods.c b/source/blender/src/editmesh_mods.c index a5e190d8468..e6fcd800a99 100644 --- a/source/blender/src/editmesh_mods.c +++ b/source/blender/src/editmesh_mods.c @@ -132,10 +132,18 @@ int EM_zbuffer_visible(float *co, short xs, short ys) Mat4MulVec4fl(persmat, vec4); vec4[2]/= vec4[3]; vec4[2]= 0.5 + vec4[2]/2; + + if(1) { + unsigned int zvali; + glReadPixels(curarea->winrct.xmin+xs, curarea->winrct.ymin+ys, 1, 1, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, &zvali); + zval= ((float)zvali)/((float)0xFFFFFFFF); + // printf("my proj %f zbuf %x %f mydiff %f\n", vec4[2], zvali, zval, vec4[2]-zval); + } + else { + glReadPixels(curarea->winrct.xmin+xs, curarea->winrct.ymin+ys, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &zval); + // printf("my proj %f zbuf %f mydiff %f\n", vec4[2], zval, vec4[2]-zval); + } - glReadPixels(curarea->winrct.xmin+xs, curarea->winrct.ymin+ys, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &zval); - - // printf("my proj %f zbuf %f mydiff %f\n", vec4[2], zval, vec4[2]-zval); if( vec4[2] > zval) return 0; return 1; } |