Powiązania Java dla OpenGL
Java Binding for OpenGL API to specyfikacja JSR API (JSR 231) dla Java Platform, Standard Edition , która umożliwia korzystanie z OpenGL na platformie Java (platforma programowa) . Istnieje również Java Binding dla OpenGL ES API (JSR 239) dla platformy Java Micro Edition .
Koncepcje programowania
Core OpenGL API i bibliotek GLU są dostępne z Javy za pośrednictwem cienkiego opakowania, które wygląda bardzo podobnie do oryginalnego OpenGL C API, z wyjątkiem procedur GLU NURBS , które nie są ujawniane przez publiczne API.
Wszystkie biblioteki specyficzne dla platformy (dostępne z CGL API dla Mac OS X , GLX dla X Window System i WGL dla Microsoft Windows ) są również wyodrębniane w celu stworzenia niezależnego od platformy sposobu wybierania atrybutów bufora ramki i wykonywania specyficznych dla platformy operacji na buforze ramki.
Rozszerzenia specyficzne dla platformy nie są zawarte w publicznym interfejsie API. Każda implementacja może eksportować niektóre z tych interfejsów API za pośrednictwem GL.getPlatformGLExtensions() i GL.getExtension(String) , które zwracają obiekty, których typy danych są specyficzne dla danej implementacji.
Przykład
Ten przykład pokazuje, jak narysować wielokąt (bez inicjalizacji lub odświeżania kodu). Oto referencyjna C :
int DrawGLScene ( GLvoid ) { glClear ( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); glLoadIdentity (); glTranslatef ( -1.5f , 0.0f , -6.0f ); // Przesuń w lewo o 1,5 jednostki glBegin ( GL_TRIANGLES ); //Rysowanie przy użyciu trójkątów glVertex3f ( 0.0f , 1.0f , 0.0f ); // Top glVertex3f
( -1.0f , -1.0f , 0.0f ); // Dolny lewy glVertex3f ( 1.0f , -1.0f , 0.0f ); // Dolny prawy glEnd (); glTranslatef ( 3.0f , 0.0f , 0.0f ); glBegin ( GL_QUADS ); // Narysuj Quad glVertex3f ( -1.0f , 1.0f , 0.0f ); // Lewy górny róg glVertex3f
( 1.0f , 1.0f , 0.0f ); // Prawy górny róg glVertex3f ( 1.0f , -1.0f , 0.0f ); // Prawy dolny róg glVertex3f ( -1.0f , -1.0f , 0.0f ); // dolny lewy glEnd (); glWypłucz (); zwróć PRAWDA ; }
Co przekłada się na następującą implementację Java :
publiczny pusty wyświetlacz ( GLAutoDrawable glDrawable ) { final GL gl = glDrawable . getGL (); gl . glClear ( GL . GL_COLOR_BUFFER_BIT | GL . GL_DEPTH_BUFFER_BIT ); gl . glLoadIdentity (); gl . glTranslatef ( - 1.5f , 0.0f , - 6.0f
); // Przesuń w lewo 1,5 jednostek gl . glBegin ( GL . GL_TRIANGLES ); // Rysowanie za pomocą trójkątów gl . glVertex3f ( 0.0f , 1.0f , 0.0f ); // górny gl . glVertex3f ( -1.0f , -1.0f , 0.0f ) ; _ // Dolny lewy gl . glVertex3f ( 1.0f , - 1.0f
, 0,0f ); // Dolny prawy gl . glEnd (); gl . glTranslatef ( 3.0f , 0.0f , 0.0f ); gl . glBegin ( GL . GL_QUADS ); // Narysuj Quad gl . glVertex3f ( -1.0f , 1.0f , 0.0f ) ; // górny lewy gl . glVertex3f ( 1.0f
, 1.0f , 0.0f ); // górny prawy gl . glVertex3f ( 1.0f , -1.0f , 0.0f ) ; // Dolny prawy gl . glVertex3f ( -1.0f , -1.0f , 0.0f ) ; _ // Dolny lewy gl . glEnd (); gl . glWypłucz (); }
Implementacje
- Java OpenGL : Implementacja referencyjna dostępna na platformach Microsoft Windows , Linux , Mac OS X i Solaris .
Zobacz też
Linki zewnętrzne
- Strona internetowa JSR dla Java Binding dla OpenGL API
- Strona internetowa JSR dla Java Binding dla OpenGL ES API
- Strona główna JOGLA
- Specyfikacja JSR 231 (wersja robocza)