2009-09-07 14 views
10

Rozwijam się z OpenGL ES na ARM/Linux i chciałbym narysować coś na pełnym ekranie, ale nie wiem od czego zacząć.Jak narysować coś z OpenGL ES w systemie Linux?

Jestem nie rozwija się na iPhone, ani na Androida. To jest pytanie dotyczące Linux/OpenGL ES.

wiem, że to możliwe, aby zwrócić na bufora ramki z OpenGL ESbez dowolnej biblioteki ale nie znaleźliśmy żadnych zasobów o tym temacie, możesz mi pomóc?


nie mam żadnego kodu, aby pokazać, jak to zrobić, ale w zasadzie użyć de urządzenia bufora ramki jako cel OpenGL | ES operacji.

Odpowiedz

2

Here to samouczek pokazujący, jak korzystać z SDL w połączeniu z OpenGL ES. Jest to platforma OpenPandora, ale ponieważ działa ona pod kontrolą systemu Linux, powinna być dostępna na pulpicie, jeśli można uzyskać odpowiednie wersje bibliotek.

Używanie SDL jest mniej więcej standardem w tego rodzaju programowaniu, w systemie Linux. Możesz oczywiście iść dłuższą trasą i otworzyć okno samodzielnie, dołączyć kontekst renderowania GL i tak dalej, ale zazwyczaj łatwiej jest poznać odpowiednie części SDL. Zapewnia to również łatwe w użyciu interfejsy API: s do odczytu wejściowego, co prawie zawsze jest konieczne.

+0

Nie chcę używać żadnej biblioteki po prostu implementacji OpenGL ES dla Linux-a i bufora ramki. – amirouche

3

Nie zapominaj, że komputerowy system Linux jest wyposażony w OpenGL, a nie OpenGLES! Są podobne, ale nie do końca zgodne. Jeśli chcesz pracować na OpenGLES na komputerowej platformie Linux, ARM lub w inny sposób, potrzebujesz biblioteki emulatora OpenGLES. Niestety, nie mogę polecić żadnego, sam go szukam.

OpenGLES po prostu obsługuje proces rysowania rzeczy w oknie. Potrzebna jest również biblioteka okien, która obsługuje proces tworzenia okna do rysowania rzeczy oraz bibliotekę zdarzeń, która zajmuje się wejściowymi zdarzeniami powracającymi z okna.

SDL zapewni zarówno dwa ostatnie, jak i kilka innych bibliotek. Khronos sami standaryzowali na EGL jako bibliotekę okien i OpenKODE jako bibliotekę zdarzeń ... ale tak naprawdę nie wiem, skąd wziąć ich implementacje open source dla Linuksa. (Pracuję dla firmy, która obsługuje EGL i OpenKODE dla platform wbudowanych, więc nigdy nie musiałem szukać wersji open source!)

4

ARM oferuje kilka procesorów graficznych obsługujących OpenGL 2.0. Możesz znaleźć przykłady i emulator, który działa na Linuksie na stronie Mali Developer. Oczywiście chodzi głównie o układy GPU ARM, ale jestem przekonany, że można go wykorzystać do zbadania możliwości programowania OpenGL ES.

5

Czy tworzysz platformę osadzoną jako cel? Jeśli tak, możesz użyć implementacji oprogramowania w systemie hosta, a następnie rzeczywistego sterownika urządzenia wbudowanego.

Istnieje niewielki projekt do obsługi OpenGLES 1.1 na Linuksie o nazwie dlges. Możesz także wypróbować mesa.

Wyobrażam sobie, że sam sterownik może mieć nagłówek OpenGL, który można obejrzeć i sprawdzić, czy obsługuje połączenia OpenGLES. Alternatywnie można ustawić wskaźniki funkcji, aby kod OpenGL wyglądał bardziej jak OpenGL ES.

Powodzenia!