2012-05-21 18 views
7

è possibile creare una finestra di dimensioni fisse usando glut, quindi qualsiasi modifica con le dimensioni della finestra verrà ignorata.è possibile creare una finestra di glut size fissa?

è troppo tardi per passare a SDL o qualcosa di simile.

+1

"è troppo tardi per il mio ritorno a SDL o qualcosa di simile." Non riesco a immaginare come sarebbe un problema significativo. GLUT è per l'installazione e la gestione della finestra; i manager che cambiano dovrebbero richiedere solo modifiche abbastanza localizzate. A meno che non si dipenda dalle funzionalità specifiche di GLUT, come i frame buffer sRGB e simili. –

risposta

9

Apparentemente, non è possibile in modo legittimo, ma è possibile utilizzare glutReshapeWindow all'interno del proprio glutReshapeFunc - richiamo per riattivarlo subito dopo il rilascio del mouse. È abbastanza efficace e, a mia conoscenza, la soluzione migliore. Solo testato con freeglut:

glutReshapeFunc(resize); 

void resize(int width, int height) { 
    // we ignore the params and do: 
    glutReshapeWindow(800, 600); 
} 
+0

Hahah wow grazie per gli upvotes sul mio primo e unico post su SO – mouse

3

In definitiva, no. Il meglio che puoi fare è chiamare glutReshapeWindow per forzarlo a una dimensione particolare ogni volta che rilevi che è stato ridimensionato. Ma questo è tutto. E se lo fai, devi fare un po 'di prevenzione del ciclo infinito assicurandoti di chiamare solo glutReshapeWindow se la nuova dimensione non è uguale a quella desiderata. Ciò non impedirà all'utente di di provare a ridimensionarlo, ma impedirà loro di farlo. Possibilmente.

Ricordare: GLUT è progettato per applicazioni demo e banchi di prova semplici. Per tale applicazione, la possibilità di ridimensionare la finestra è abbastanza standard.

Problemi correlati