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) !)
This commit is contained in:
parent
9118fbd855
commit
8655cc40ad
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user