Привязки Java для OpenGL - Java Bindings for OpenGL

Связывание Java для API OpenGL это JSR API спецификация (JSR 231) для Платформа Java, стандартная версия что позволяет использовать OpenGL на Java (программная платформа).[1] Существует также Связывание Java для API OpenGL ES (JSR 239) для Платформа Java, Micro Edition.

Концепции программирования

Core OpenGL API и GLU вызовы библиотеки доступны из Ява через тонкую оболочку, очень похожую на оригинальный OpenGL C API, кроме GLU NURBS подпрограммы, которые не доступны через общедоступный API.

Все библиотеки для конкретной платформы (доступны из CGL API для Mac OS X, GLX за X Window System, и WGL за Майкрософт Виндоус ) также абстрагируются для создания независимого от платформы способа выбора Кадровый буфер атрибуты и выполнение специфичных для платформы операций с буфером кадров.

Расширения для конкретных платформ не включены в общедоступный API. Каждая реализация может выбрать экспорт некоторых из этих API через GL.getPlatformGLExtensions () и GL.getExtension (строка) вызовы методов, которые возвращают объекты, типы данных которых специфичны для данной реализации.

Пример

В этом примере показано, как нарисовать многоугольник (без инициализации или перерисовки кода).[2] Вот ссылка C выполнение:

 int DrawGLScene(GLvoid) {    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);    glLoadIdentity();    glTranslatef(-1.5f, 0,0f, -6.0f); // Двигаться влево на 1,5 единицы    glBegin(GL_TRIANGLES); // Рисование с использованием треугольников    glVertex3f( 0,0f, 1.0f, 0,0f); // Вершина    glVertex3f(-1.0f,-1.0f, 0,0f); // Нижний левый    glVertex3f( 1.0f,-1.0f, 0,0f); // Внизу справа    glEnd();	    glTranslatef(3.0f, 0,0f, 0,0f);    glBegin(GL_QUADS); // Рисуем четырехугольник    glVertex3f(-1.0f, 1.0f, 0,0f); // Верхний левый    glVertex3f( 1.0f, 1.0f, 0,0f); // В правом верхнем углу    glVertex3f( 1.0f,-1.0f, 0,0f); // Внизу справа    glVertex3f(-1.0f,-1.0f, 0,0f); // Нижний левый    glEnd();    glFlush();    возвращаться ИСТИННЫЙ; }

Что означает следующее Ява выполнение:

 общественный пустота отображать(GLAutoDrawable glDrawable) {   окончательный 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); // Двигаться влево на 1,5 единицы   gl.glBegin(GL.GL_TRIANGLES); // Рисование с использованием треугольников   gl.glVertex3f( 0,0f, 1.0f, 0,0f); // Вершина   gl.glVertex3f(-1.0f,-1.0f, 0,0f); // Нижний левый   gl.glVertex3f( 1.0f,-1.0f, 0,0f); // Внизу справа   gl.glEnd();   gl.glTranslatef(3.0f, 0,0f, 0,0f);   gl.glBegin(GL.GL_QUADS); // Рисуем четырехугольник   gl.glVertex3f(-1.0f, 1.0f, 0,0f); // Верхний левый   gl.glVertex3f( 1.0f, 1.0f, 0,0f); // В правом верхнем углу   gl.glVertex3f( 1.0f,-1.0f, 0,0f); // Внизу справа   gl.glVertex3f(-1.0f,-1.0f, 0,0f); // Нижний левый   gl.glEnd();   gl.glFlush(); }

Реализации

Смотрите также

Рекомендации

  1. ^ «JSR 231: JavaBinding для OpenGL API». Процесс сообщества Java. Получено 2011-02-06.
  2. ^ Заимствовано из Nehe учебник, чей код можно бесплатно использовать где-либо еще.
  3. ^ «JSR-000231 Java-привязки для OpenGL API». Процесс сообщества Java. Получено 2011-02-06. Чтобы облегчить максимальное участие сообщества для Java Binding для OpenGL API, мы используем проект JOGL на java.net, который можно найти по адресу https://jogl.dev.java.net. Исходный код JOGL можно найти там, под лицензией либерального исходного кода (в основном под лицензией BSD, за исключением случаев, когда мы используем лицензионный код других сторон). Мы делаем снимок кода этого проекта каждые несколько месяцев, запускаем Technology Compatibility Kit в исходном коде, а затем официально делаем его эталонной реализацией для каждой формальной привязки Java для выпуска OpenGL API.

внешняя ссылка