Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Концепции программирования [ править ]

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

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

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

Пример [ править ]

В этом примере показано, как нарисовать многоугольник (без инициализации или перерисовки кода). [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 ();  вернуть  ИСТИНА ;  }

Что переводится в следующую реализацию Java :

 публичное  отображение пустоты  ( 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 );  // Top  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 ();  }

Реализации [ править ]

  • Java OpenGL  : эталонная реализация, доступная на платформах Microsoft Windows , Linux , Mac OS X и Solaris . [3]

См. Также [ править ]

  • OpenGL
  • Процесс сообщества Java

Ссылки [ править ]

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

Внешние ссылки [ править ]

  • Веб-страница JSR для привязки Java для API OpenGL
  • Веб-страница JSR для привязки Java для API OpenGL ES
  • Домашняя страница JOGL
  • Спецификация JSR 231 (проект)