2012-05-21 8 views
7

jest możliwe utworzenie okna o stałym rozmiarze za pomocą nadmiaru, więc wszelkie zmiany o wymiarach okna zostaną zignorowane.Czy można utworzyć okno glutowania o stałym rozmiarze?

Trochę za późno dla mnie, aby wrócić do SDL lub do czegoś podobnego.

+1

"Trochę za późno dla mnie z powrotem na SDL lub coś podobnego." Nie mogę sobie wyobrazić, jak to byłby poważny problem. GLUT służy do konfiguracji i zarządzania oknami; menedżerowie zmiany powinni tylko wymagać dość zlokalizowanych zmian. O ile nie jesteś zależny od funkcji specyficznych dla GLUT, takich jak bufory ramki sRGB i tym podobne. –

Odpowiedz

9

Wygląda na to, że nie jest to możliwe w sposób zgodny z prawem, ale można użyć numeru glutReshapeWindow w gnieździe, aby zdjąć go zaraz po zwolnieniu myszy. Jest dość skuteczny i według mojej wiedzy najlepsze rozwiązanie. Testowany tylko z freeglut:

glutReshapeFunc(resize); 

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

Hahah dziękuję za przegrane na moim pierwszym i jedynym wpisie na SO – mouse

3

Ostatecznie nie. Najlepsze, co możesz zrobić, to zadzwonić pod numer glutReshapeWindow, aby wymusić jego użycie w określonym rozmiarze, gdy wykryjesz, że został on zmieniony. Ale to jest o tym. A jeśli to zrobisz, musisz zrobić nieskończoną pętlę zapobiegawczą, upewniając się, że dzwonisz tylko pod numer glutReshapeWindow, jeśli nowy rozmiar nie jest taki sam jak pożądany. Nie uniemożliwi to użytkownikowi zmiany wartości , ale uniemożliwi to ich powodzenie. Możliwie.

Pamiętaj: GLUT jest przeznaczony do zastosowań demonstracyjnych i prostych łóżek testowych. Dla takiej aplikacji możliwość zmiany rozmiaru okna jest dość standardowa.

Powiązane problemy