forcemerge 440137 449490
thank you

Christian Holm Christensen wrote:
> In the call 
>
>   if (!__gluInvertMatrixd(finalMatrix,finalMatrix)) return(GL_FALSE);
>
> in gluUnProject, there's mistake.  Inspecting the implementation
> of __gluInverMatrixd(const double* src, double* inv) the arrays src and 
> inv cannot overlap.  There should be another intermediate 4x4 matrix
> defined, like 
>
>   GLint GLAPIENTRY
>   gluUnProject(GLdouble winx, GLdouble winy, GLdouble winz,
>                const GLdouble modelMatrix[16],
>              const GLdouble projMatrix[16],
>              const GLint viewport[4],
>              GLdouble *objx,
>              GLdouble *objy,
>              GLdouble *objz)
>   {
>     double   finalMatrix[16];
>     double   temp[16];        /* New  temporary store. */
>     double   in[4];
>     double   out[4];
>
>     __gluMultMatricesd(modelMatrix, projMatrix, temp);
>
>     if        (!__gluInvertMatrixd(temp,finalMatrix)) return(GL_FALSE);
>
>  
> The rest of the function is as before.   
>
> If this is not done, then gluUnProject will return very small (and
> incorrect) vectors in (*objx,*objy,*objz)
>
> [Please also refer to discussion on
> https://savannah.cern.ch/bugs/index.php?30943]
>   

That's very likely to be already fixed upstream in
http://gitweb.freedesktop.org/?p=mesa/mesa.git;a=commitdiff;h=40438b34405ce88d0e160bc8c3dea24276d63189;hp=e0b80660c8a4cbd9624a9fbe07841541105f712c

Merging with #440137

Mesa 7.0.2 is supposed to be released soon.

Brice




-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to