hello, i realise that my code is not doing what i wanted.
currently, the perspective is set in the gemwin, and it is reset in the gemframebuffer. the code i put in my original mail reset the framebuffer perspective to be the same as the rendering windows. what we need is to have 2 different perspective : 1 for the gemwindow, and 1 for the framebuffer. the latter sould also be optionally changed by the user.
i must say that i can't find how do this. i tried to change GemMan.cpp, but did not find where does the pb comes from. any help is welcome.
cyrille
cyrille henry a écrit :
hello, when using a framebuffer in a patch, the perspective of the main windows is change to (-1, 1) in X and Y. So it's no more possible to use custom perspective (sending the perspec message to gemwin is useless). moreover, the perspective used lead to distorted images when the gemwin is not square.
fixing this is quite easy, but will break all patch using frambuffer with a not square gem windows. so, i'm wondering if i should commit the fix.
the fix is mainly to replace line 145 of gemframebuffer.cpp :
glFrustum(-1,1,-1,1,1,25);
with :
float xDivy = (float)GemMan::m_w / (float)GemMan::m_h;
glFrustum(GemMan::m_perspect[0] * xDivy, GemMan::m_perspect[1] * xDivy, // left, right GemMan::m_perspect[2], GemMan::m_perspect[3], // bottom, top GemMan::m_perspect[4], GemMan::m_perspect[5]); // front, back
but it need to add #include "Base/GemMan.h"
and to move static int m_w; static int m_h; from private to public in GemMan.h
should i commit this?
cyrille
GEM-dev mailing list GEM-dev@iem.at http://lists.puredata.info/listinfo/gem-dev