OpenGL용 Java 바인딩

Java Bindings for OpenGL

OpenGL API용 Java BindingJava Platform, Standard Edition에 대한 JSR API 규격(JSR 231)으로, Java(소프트웨어 플랫폼)에서 OpenGL을 사용할 수 있다.[1]Java Platform, Micro Edition용 OpenGL ES API(JSR 239)용 Java Binding도 있다.

프로그래밍 개념

Core OpenGL API와 GLU 라이브러리 호출은 공개 API를 통해 노출되지 않는 GLU NURBS 루틴을 제외하고, 원본 OpenGL C API만큼 보이는 얇은 래퍼를 통해 자바에서 이용할 수 있다.

모든 플랫폼별 라이브러리(Mac OS X용 CGL API, X Window System용 GLX, Microsoft Windows용 WGL에서 사용 가능)도 추상화하여 Framebuffer 속성을 선택하고 플랫폼별 Framebuffer 작업을 수행할 수 있는 플랫폼 독립적 방법을 만든다.

플랫폼별 확장은 공개 API에 포함되지 않는다.각 구현은 데이터 유형이 주어진 구현에 특정한 객체를 반환하는 GL.getPlatformGLExtensions()GL.getExtension(String) 방법을 통해 이러한 API의 일부를 내보내도록 선택할 수 있다.

이 예는 (초기화 또는 재도장 없이) 다각형을 그리는 방법을 보여준다.[2]다음은 참조 C 구현:

 인트로 드로겔센(GLvoid) {     글클리어(GL_COLOR_BUFFER_BIT   GL_DEEPT_BUFFER_BIT);     glLoadIdentity();     glTranslatef(-1.5f, 0.0f, -6.0f); // 왼쪽 1.5 유닛 이동     글베긴(GL_TRIANGLES); //삼각형을 사용하여 그리기     글베르텍스3f( 0.0f, 1.0f, 0.0f); // 상단     글베르텍스3f(-1.0f,-1.0f, 0.0f); // 왼쪽 아래     글베르텍스3f( 1.0f,-1.0f, 0.0f); // 오른쪽 아래     글렌드();      glTranslatef(3.0f, 0.0f, 0.0f);     글베긴(GL_QUADS); // 쿼드 그리기     글베르텍스3f(-1.0f, 1.0f, 0.0f); // 왼쪽 상단     글베르텍스3f( 1.0f, 1.0f, 0.0f); // 오른쪽 상단     글베르텍스3f( 1.0f,-1.0f, 0.0f); // 오른쪽 아래     글베르텍스3f(-1.0f,-1.0f, 0.0f); // 왼쪽 아래     글렌드();     글플루시();     돌아오다 진실의;  } 

이는 다음과 같은 Java 구현을 의미한다.

 공중의 공허하게 하다 전시하다(GLAutoDrawable 그릴 수 있는) {    최종의 GL 글래머러스하게 하다 = 그릴 수 있는.getGL();    글래머러스하게 하다.글클리어(GL.GL_COLOR_BUFFER_BIT   GL.GL_DEEPT_BUFFER_BIT);    글래머러스하게 하다.glLoadIdentity();    글래머러스하게 하다.glTranslatef(-1.5f, 0.0f, -6.0f); // 왼쪽 1.5 유닛 이동    글래머러스하게 하다.글베긴(GL.GL_TRIANGLES); // 삼각형을 사용하여 그리기    글래머러스하게 하다.글베르텍스3f( 0.0f, 1.0f, 0.0f); // 상단    글래머러스하게 하다.글베르텍스3f(-1.0f,-1.0f, 0.0f); // 왼쪽 아래    글래머러스하게 하다.글베르텍스3f( 1.0f,-1.0f, 0.0f); // 오른쪽 아래    글래머러스하게 하다.글렌드();    글래머러스하게 하다.glTranslatef(3.0f, 0.0f, 0.0f);    글래머러스하게 하다.글베긴(GL.GL_QUADS); // 쿼드 그리기    글래머러스하게 하다.글베르텍스3f(-1.0f, 1.0f, 0.0f); // 왼쪽 상단    글래머러스하게 하다.글베르텍스3f( 1.0f, 1.0f, 0.0f); // 오른쪽 상단    글래머러스하게 하다.글베르텍스3f( 1.0f,-1.0f, 0.0f); // 오른쪽 아래    글래머러스하게 하다.글베르텍스3f(-1.0f,-1.0f, 0.0f); // 왼쪽 아래    글래머러스하게 하다.글렌드();    글래머러스하게 하다.글플루시();  } 

구현

참고 항목

참조

  1. ^ "JSR 231: JavaBinding for the OpenGL API". Java Community Process. Retrieved 2011-02-06.
  2. ^ Nehe 튜토리얼에서 빌렸으며, 코드는 다른 곳에서 자유롭게 사용할 수 있다.
  3. ^ "JSR-000231 Java Bindings for the OpenGL API". Java Community Process. Retrieved 2011-02-06. In order to facilitate maximum community participation for the Java Binding for the OpenGL API, we use the JOGL project on java.net found at https://jogl.dev.java.net. The JOGL source code can be found there, licensed under a liberal source code license (mostly licensed as BSD except where we use other parties' licensed code). We take a snapshot of the code from this project every few months, run the Technology Compatibility Kit on the source code, and then officially make it the Reference Implementation for each formal Java Binding for the OpenGL API release.

외부 링크