Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Java OpenGL (JOGL) — это оберточная библиотека, позволяющая использовать OpenGL в языке программирования Java. Изначально разработана Кеннетом Брэдли Расселом и Кристофером Джоном Клайн, а затем доработана Группой игровых технологий Sun Microsystems. С 2010 года это независимый проект с открытым исходным кодом под лицензией BSD. JOGL является эталонной реализацией Java Bindings для OpenGL (JSR 231). JOGL обеспечивает доступ к большинству функций OpenGL, доступных программам на языке C, посредством Java Native Interface (JNI). Он предоставляет доступ как к стандартным функциям GL*, так и к функциям GLU*, однако библиотека OpenGL Utility Toolkit (GLUT) недоступна для вызовов, связанных с оконной системой, поскольку Java имеет собственные оконные системы: Abstract Window Toolkit (AWT), Swing и некоторые расширения.
Java OpenGL (JOGL) is a wrapper library that allows OpenGL to be used in the Java programming language. It was originally developed by Kenneth Bradley Russell and Christopher John Kline, and was further developed by the Game Technology Group at Sun Microsystems. Since 2010, it has been an independent open source project under a BSD license. It is the reference implementation for Java Bindings for OpenGL (JSR 231). JOGL allows access to most OpenGL features available to C language programs through the use of the Java Native Interface (JNI). It offers access to both the standard GL* functions along with the GLU* functions; however the OpenGL Utility Toolkit (GLUT) library is not available for window system related calls, as Java has its own windowing systems: Abstract Window Toolkit (AWT), Swing, and some extensions.
Дизайн
Базовый OpenGL C API, а также связанный с ним API для работы с окнами, доступны в JOGL посредством вызовов Java Native Interface (JNI). Следовательно, для работы JOGL базовая система должна поддерживать OpenGL. JOGL отличается от некоторых других Java OpenGL-обёрток тем, что он лишь предоставляет доступ к процедурному OpenGL API через методы нескольких классов, а не пытается сопоставить функциональность OpenGL с парадигмой объектно-ориентированного программирования. Фактически, большая часть кода JOGL автоматически генерируется из файлов заголовков OpenGL C с помощью инструмента преобразования GlueGen, который был разработан специально для упрощения создания JOGL.
The base OpenGL C API, as well as its associated Windowing API, are accessed in JOGL via Java Native Interface (JNI) calls. As such, the underlying system must support OpenGL for JOGL to work. JOGL differs from some other Java OpenGL wrapper libraries in that it merely exposes the procedural OpenGL API via methods on a few classes, rather than trying to map OpenGL functionality onto the object oriented programming paradigm. Indeed, most of the JOGL code is autogenerated from the OpenGL C header files via a conversion tool named GlueGen, which was programmed specifically to facilitate the creation of JOGL.
Статус и стандартизация
С 2015 года JOGL обеспечивает полный доступ к спецификации OpenGL 4.5, а также почти ко всем расширениям производителей (и OpenCL, OpenMAX и OpenAL). Версия 1.1.0 является эталонной реализацией JSR 231 (Java Bindings for OpenGL). Выпуск 1.1.1 предоставил ограниченный доступ к GLU NURBS, позволяя отрисовывать кривые линии и поверхности с использованием традиционных GLU API. В версии 2.3.2 добавлена поддержка версий OpenGL до 4.5 и OpenGL ES до 3.2. Планируется поддержка Wayland и Vulkan.
as of 2015, JOGL provides full access to the OpenGL 4.5 specification as well as almost all vendor extensions (and OpenCL, OpenMAX and OpenAL). The 1.1.0 version is the reference implementation for JSR 231 (Java Bindings for OpenGL). The 1.1.1 release gave limited access to GLU NURBS, providing rendering of curved lines and surfaces via the traditional GLU APIs. The 2.3.2 release added support for OpenGL versions up to 4.5, and OpenGL ES versions up to 3.2. Wayland and Vulkan support is planned.