Problem mit SimpleOpenGlControl und Resizing
Verfasst: Mo Apr 05, 2010 7:53 pm
Also ich will mit Tao und deren Implementation etwas mit OpenGl zeichnen.
Das Funktiniert auch alles Wunderbar, nur in einigen Fällen, wenn man das Fenster Vergrößert wird nicht der Resize-Handler aufgerufen doer er macht nicht das was er soll. Es ist mir bisher nur passiert, das es nicht richitg Funktionierte, wenn man das Fenster auf Fullscreen schaltet. Die zu Grunde liegende SimpleOpenGlCOntrol hat Dock auf Fill, also wird sie definitv vergrößert.
Hier der Event-handler Code:
Sprache ist C#, vertikalStretch und horizontalStretch dienen nur dazu, Maus-koordinaten korrekt umzurechnen.
Danke für Hilfe.
MfG cloidnerux.
Das Funktiniert auch alles Wunderbar, nur in einigen Fällen, wenn man das Fenster Vergrößert wird nicht der Resize-Handler aufgerufen doer er macht nicht das was er soll. Es ist mir bisher nur passiert, das es nicht richitg Funktionierte, wenn man das Fenster auf Fullscreen schaltet. Die zu Grunde liegende SimpleOpenGlCOntrol hat Dock auf Fill, also wird sie definitv vergrößert.
Hier der Event-handler Code:
Code: Alles auswählen
private void renderContext_Resize(object sender, EventArgs e)
{
vertikalStretch = (float)renderContext.Height / (float)startUpWindowHeight;
horizontalStretch = (float)renderContext.Width / (float)startUpWindowWidth;
Resize(renderContext.Height, renderContext.Width);
}
private void Resize(int height, int width)
{
Gl.glViewport(0, 0, width, height);
Gl.glMatrixMode(Gl.GL_PROJECTION);
Gl.glLoadIdentity();
const float nRange = 80.0f;
if (height == 0)
{
height = 1;
}
Gl.glOrtho(-nRange * width / height,
nRange * width / height,
-nRange, nRange, -1.0, 1.0);
Gl.glMatrixMode(Gl.GL_MODELVIEW);
Gl.glLoadIdentity();
}
Danke für Hilfe.
MfG cloidnerux.