J'utilise cette portion de code (en Visual C++ 7) pour effectuer les translations et des mises à l'échelle pour mes dessins 2D.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
void Renderer::SetLogicalView(float left, float bottom, float ScaleX,  float ScaleY) {
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    GLint vp[4]; glGetIntegerv(GL_VIEWPORT, vp);
    glOrtho(left, left + (float(vp[2])/ScaleX), bottom, bottom + (float(vp[3])/ScaleY),  1, -1);
}
Par exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
Renderer rend;
rend.SetLogicalView(0, -10, 1, 1);
DrawObjects(); //Dessine les objets
.
donne l'mpression que l'image est monter de 10 pixels (pixels?).

Mon problème: Lorsque 'bottom' > 0 alors l'image est mal déssiné c-à-d elle tronqué de façon oblique à droite pour tant pour 'bottom' < 0 tout fonctionne nickel!
j'ai beau dis qu'il y a surement une erreur dans mon code je n'arrive à la trouver.
Alors si quelqu'un peut m'aider je lui en serait très reconnaissant!
sinon ... non il n'y a pas de sinon car quelqu'un m'aidera n'est-ce pas?