Posts Tagged OpenGL
SDL + OpenGL oraz SDL_GL_SwapBuffers()
Posted by moriturius in Programowanie on Wrzesień 16, 2008
Ostatnio, pisząc AGE, natknąłem się na pewien mały problem wydajnościowy związany z funkcją SDL_GL_SwapBuffers(). Okazało się bowiem, że gdy rysowałem w okienku wszystko było w miarę, ale po przełączeniu do pełnego ekranu kolory były jakieś nienormalne i wydajność spadła do ~70FPS. Przy pustym ekranie…
Po szybkim zastosowaniu metody włączeń i wyłączeń (lub jeśli ktoś woli: zkomenć, odkomenć
) odnalazłem winowajcę – nieszczęsną funkcję podmieniającą bufory. Rozpocząłem więc poszukiwania w internecie i oczywiście wiele było takich problemów, ale wszyscy genialnie radzili wyłączyć synchronizację…
Rozpocząłem się testować z różnymi wartościami przy opcjach ustawień obrazu i po jakiejś chwili odkryłem, ze wina była oczywiście moja. Problematyczne okazały się dwie instrukcje:
SDL_GL_SetAttribute(SDL_GL_BUFFER_SIZE, 24); SDL_SetVideoMode(width, height, 16, SDL_OPENGL | SDL_GL_ACCELERATED_VISUAL | (full?SDL_FULLSCREEN:0);
Cudownym lekiem okazała się być zmiana z głębi 16 na 24 bity w SDL_SetVideoMode(). FPS od razu wskoczyło na kilka tysięcy, a po narysowaniu kilku obrazków spadło do ~660. Jest więc tak jak być powinno.
Mała rzecz, a tyle może przysporzyć kłopotów…
AGE pod Linuxa
Posted by moriturius in Programowanie on Kwiecień 5, 2008
Jako, że ostatnio korzystam z Ubuntu, a kod z MS VC++2k8 używający DX9 jest średnio chętny do działania w tym środowisku, postanowiłem napisać AGE w pewnym sensie od nowa.
Nie jest to oczywiście takie zupełnie “od nowa” ale czeka mnie dużo pracy, ponieważ chcę na początek pogrupować klasy w jakieś moduły i dodać trochę zalet obiektowości. Dodatkowo mam plan aby kod, który napiszę działał także pod Windows.
Oczywiście wykorzystam do tego celu OpenGL i wątpię abym zrobił możliwość wyboru pomiędzy OpenGL a DX pod Windows – tak jak to jest np. w Irrlichcie. Chcę po prostu wykorzystać to czego się nauczyłem podczas programowania AGE do tego aby zaprogramować je jeszcze raz, tylko że lepiej
Pierwsze testy pisania aplikacji OpenGL dla Linuxa mam już za sobą (ech te kolorowe trójkąty
). Teraz czeka mnie raczej praca bardziej projektowa niż kodowanie, ale postaram się ciągnąć jakoś oba w miarę równolegle aby praca szła szybciej.
Wish me luck ^^