Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2004-09-25 20:38:51 +0400
committerTon Roosendaal <ton@blender.org>2004-09-25 20:38:51 +0400
commit8655cc40ad376033b000911b16bc5487c4fad3f2 (patch)
tree87668d928b6e42eab87fa2cb4de9afe4213e81c5 /source/blender/src/editmesh_mods.c
parent9118fbd855d56d0dac77c087fb6053cff829dba9 (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.c14
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;
}