Vazby Java pro OpenGL - Java Bindings for OpenGL
tento článek potřebuje další citace pro ověření.Srpna 2010) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
tento článek může obsahovat nerozlišující, nadměrnýnebo irelevantní příklady.Srpna 2010) ( |
Vazba Java pro rozhraní OpenGL API je JSR API specifikace (JSR 231) pro Platforma Java, standardní vydání který umožňuje použití OpenGL na Java (softwarová platforma).[1] K dispozici je také Vazba Java pro OpenGL ES API (JSR 239) pro Platforma Java, Micro Edition.
Programovací koncepty
Základní OpenGL API a GLU volání z knihovny jsou k dispozici na Jáva přes tenký obal vypadající velmi podobně jako původní OpenGL C API, kromě GLU NURBS rutiny, které nejsou vystaveny prostřednictvím veřejného API.
Všechny knihovny specifické pro platformu (k dispozici na webu CGL API pro Mac OS X, GLX pro Systém X Window, a WGL pro Microsoft Windows ) jsou také abstrahovány za účelem vytvoření způsobu výběru nezávislého na platformě Framebuffer atributy a provádění operací Framebuffer specifických pro platformu.
Ve veřejném API nejsou zahrnuta rozšíření specifická pro platformu. Každá implementace se může rozhodnout exportovat některá z těchto API prostřednictvím GL.getPlatformGLExtensions () a GL.getExtension (řetězec) volání metody, která vrací Objekty, jejichž datové typy jsou specifické pro danou implementaci.
Příklad
Tento příklad ukazuje, jak nakreslit mnohoúhelník (bez inicializace nebo překreslení kódu).[2] Zde je odkaz C implementace:
int DrawGLScene(GLvoid) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); glTranslatef(-1,5f, 0,0f, -6,0 f); // Pohyb doleva o 1,5 jednotky glBegin(GL_TRIANGLES); // Kreslení pomocí trojúhelníků glVertex3f( 0,0f, 1,0f, 0,0f); // Horní glVertex3f(-1,0f,-1,0f, 0,0f); // Vlevo dole glVertex3f( 1,0f,-1,0f, 0,0f); // Vpravo dole glEnd(); glTranslatef(3,0f, 0,0f, 0,0f); glBegin(GL_QUADS); // Nakreslete Quad glVertex3f(-1,0f, 1,0f, 0,0f); // Vlevo nahoře glVertex3f( 1,0f, 1,0f, 0,0f); // Vpravo nahoře glVertex3f( 1,0f,-1,0f, 0,0f); // Vpravo dole glVertex3f(-1,0f,-1,0f, 0,0f); // Vlevo dole glEnd(); glFlush(); vrátit se SKUTEČNÝ; }
Což znamená následující Jáva implementace:
veřejnost prázdnota Zobrazit(GLAutoDrawable glDrawable) { finále 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,0 f); // Pohyb doleva o 1,5 jednotky gl.glBegin(GL.GL_TRIANGLES); // Kreslení pomocí trojúhelníků gl.glVertex3f( 0,0f, 1,0f, 0,0f); // Horní gl.glVertex3f(-1,0f,-1,0f, 0,0f); // Vlevo dole gl.glVertex3f( 1,0f,-1,0f, 0,0f); // Vpravo dole gl.glEnd(); gl.glTranslatef(3,0f, 0,0f, 0,0f); gl.glBegin(GL.GL_QUADS); // Nakreslete Quad gl.glVertex3f(-1,0f, 1,0f, 0,0f); // Vlevo nahoře gl.glVertex3f( 1,0f, 1,0f, 0,0f); // Vpravo nahoře gl.glVertex3f( 1,0f,-1,0f, 0,0f); // Vpravo dole gl.glVertex3f(-1,0f,-1,0f, 0,0f); // Vlevo dole gl.glEnd(); gl.glFlush(); }
Implementace
- Java OpenGL : Referenční implementace, k dispozici na Microsoft Windows, Linux, Mac OS X, a Solaris platformy.[3]
Viz také
Reference
- ^ „JSR 231: JavaBinding for the OpenGL API“. Proces komunity Java. Citováno 2011-02-06.
- ^ Půjčeno od Výukový program Nehe, jehož kód je zdarma k použití jinde.
- ^ „JSR-000231 Java Bindings for the OpenGL API“. Proces komunity Java. Citováno 2011-02-06.
Abychom usnadnili maximální účast komunity na Java Binding pro OpenGL API, používáme projekt JOGL na java.net na adrese https://jogl.dev.java.net. Zdrojový kód JOGL lze najít tam, licencovaný pod licencí liberálního zdrojového kódu (většinou licencován jako BSD, kromě případů, kdy používáme licencovaný kód jiných stran). Každých několik měsíců pořídíme snímek kódu z tohoto projektu, na zdrojovém kódu spustíme sadu Technology Compatibility Kit a poté ji oficiálně vytvoříme jako referenční implementaci pro každou formální vazbu Java pro vydání rozhraní OpenGL API.