Jako że zaczynam przygotowywać projekt w Delphi na studia (przy znajomości Pascala, po raz pierwszy mając przed oczami OpenGL), postanowiłem skorzystać z możliwości wykorzystania OpenGL do wyświetlania elementów gry (bo projekt ten ma być właśnie grą - 2D).
Udało mi się przygotować środowisko to pracy w takim duecie (Delphi7 + OpenGL), jednak mam pewne problemy:
-
Wykorzystywanie całego formularza Delphi.
W ramach testów przygotowanego środowiska, próbowałem tworzyć sobie różne figury przy użyciu OpenGL i za którymś razem chciałem spróbować wypełnić całe okno, by zrobić coś w rodzaju tła. Wpisałem dość duże współrzędne wierzchołków tworzonej figury i oto co ukazało się moim oczom:
http://img13.imageshack.us/img13/1144/przechwytywaniegg.png
To raczej nie problem złego ustawienia Viewportu, myślę, że raczej odpowiadają za to wartości ClientWidth i ClientHeight formularza Delphi. Podczas gdy okno ma 800x600 pikseli, wartości tych właściwości wynoszą odpowiednio 784 i 562 piksele. Nie dam rady zwiększyć tych wartości ani też ich zmniejszyć - są chyba ustawione na sztywno dla danego rozmiaru okna. Wygląda to trochę, jakby Delphi zostawiał miejsce dla scrollbarów, ale ja chciałbym, by tego nie robił (w każdym razie chciałbym uniknąć tych brzydkich czarnych marginesów).
Ustawiłem sobie w Delphi stałe rozmiary formularza, w którym będzie odbywać się cała gra - 800x600 (edytując parametry Max/MinWidth i Max/MinHeight), ale nie wiem, czy to mogło mieć wpływ na powstanie problemu. -
Współrzędne w OpenGL.
Przygotowałem sobie środowisko tak, że "początek" układu współrzędnych OpenGL znajduje się na środku formularza, do którego odbywa się rendering - jak jednak przewidzieć, jakie mniej więcej współrzędne znajdują się w innych miejscach formularza, np. w 3/4 długości, na skrajnym prawym czy też dolnym brzegu? Myślałem, że będą one ustawiane zgodnie z rozmiarem formularza, ale tak nie jest - z moich testów wynika, że dla OpenGL współrzędna dolnego brzegu okna to ~100 a prawego brzegu ~140. Oczywiście jestem w stanie sobie zasymulować własny układ współrzędnych, który będzie dla mnie wygodny, ale muszę przynajmniej znać jakiś stosunek między współrzędnymi OpenGL i tymi, które chce wprowadzić (a obecnie kompletnie nie wiem dlaczego OpenGL wybrał sobie akurat takie współrzędne w poszczególnych miejscach).
Z góry dzięki za wszelkie (p)odpowiedzi,
Michał.