Java бағдарламалау тілінде OpenGL қолданысы: JOGL кітапханасы
Java OpenGL
JOGL: Java тілінде OpenGL графикасын қолдануға арналған кітапхана. JNI арқылы OpenGL мүмкіндіктеріне қол жеткізіңіз. Ашық кодты жоба, JSR 231 анықтамасы.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Java OpenGL (JOGL) — Java бағдарламалау тілінде OpenGL-ді пайдалануға мүмкіндік беретін орама кітапхана. Оны Кеннет Брэдли Рассел мен Кристофер Джон Клайн жасады, ал кейін Sun Microsystems компаниясының Game Technology Group тобы оны одан әрі дамытты. 2010 жылдан бері ол BSD лицензиясы бойынша тәуелсіз ашық кодты жоба болып табылады. JOGL — OpenGL үшін Java байланыстарын (JSR 231) жүзеге асырудың эталондық нұсқасы. JOGL, Java Native Interface (JNI) арқылы C тіліндегі бағдарламаларға қолжетімді OpenGL мүмкіндіктерінің көп бөлігіне қол жеткізуге мүмкіндік береді. Ол стандартты 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 базасы, сондай-ақ оған байланысты Windowing API, JOGL-де Java Native Interface (JNI) шақырулары арқылы қол жеткізіледі. Сондықтан, JOGL жұмыс істеуі үшін жүйе OpenGL-ді қолдауы тиіс. JOGL кейбір басқа Java OpenGL wrapper кітапханаларынан өзгеше, себебі ол OpenGL функционалдығын объектіге бағытталған бағдарламалау үлгісіне бейімдеуге тырысудың орнына, бірнеше сыныптардағы әдістер арқылы процедуралық OpenGL API-ын көрсетеді. Шындығында, 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 (OpenGL үшін Java байланыстары) үшін анықтамалық іске асыру болып табылады. 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.