Ich habe seit längerem ein Problem in meiner Qt Anwenung.
Leider kommt es nur auf bestimmten Windows Xp Rechnern vor.
Wenn die Anwendung unter linux oder machen Windows Rechnern ihren Focus verliert, bleiben der aktuell gerenderten Daten im Screen, was auch unbedingt so sein soll. Auf den anderen Xp Maschinen jedoch wird der Screen beim verlieren des Focus geleert.
Das hat den bösen Nebeneffekt, dass die erste gerenderte Scene nicht sichbar ist, bzw sofort wieder verschwindet.
Ich würder gerne wissen warum das passiert und warum nur bei manchen Rechnern.
Code: Alles auswählen
void Analyzer :: initializeGL()
{
// antialising
glEnable(GL_LINE_SMOOTH);
glEnable(GL_POINT_SMOOTH);
glEnable(GL_POLYGON_SMOOTH);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
glShadeModel(GL_SMOOTH);
glDrawBuffer(GL_BACK);
glClear(GL_COLOR_BUFFER_BIT);
draw_grid();
draw_borders();
swapBuffers();
}
void Analyzer :: resizeGL(int w, int h)
{
glViewport(0, 0, (GLint)w, (GLint)h );
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0f, X_SIZE+1.0f, 0.0f, Y_SIZE);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glClear(GL_COLOR_BUFFER_BIT);
draw_grid();
draw_borders();
swapBuffers();
}
void Analyzer :: render_str(GLfloat x, GLfloat y, const char *str)
{
makeCurrent();
glColor3f(FONT_COLOR);
glRasterPos2f(x, y);
glutBitmapString(GLUT_BITMAP_HELVETICA_12, (const unsigned char *)str);
}