جافا أوبن جي إل

مكتبة Java OpenGL ( JOGL ) هي مكتبة تغليف تسمح باستخدام OpenGL في لغة برمجة Java . [ 1 ] [ 2 ] طُوّرت في الأصل بواسطة كينيث برادلي راسل وكريستوفر جون كلاين، ثم طوّرها لاحقًا فريق تقنيات الألعاب في شركة صن مايكروسيستمز . منذ عام 2010، أصبحت مشروعًا مستقلًا مفتوح المصدر بموجب ترخيص BSD . وهي التطبيق المرجعي لربط Java لـ OpenGL (JSR-231).

تتيح مكتبة JOGL الوصول إلى معظم ميزات OpenGL المتاحة لبرامج لغة C من خلال استخدام واجهة Java الأصلية (JNI). وتوفر الوصول إلى كلٍ من وظائف GL* القياسية ووظائف GLU*؛ ومع ذلك، فإن مكتبة OpenGL Utility Toolkit (GLUT) غير متاحة للاستدعاءات المتعلقة بنظام النوافذ، حيث أن Java لديها أنظمة نوافذ خاصة بها: Abstract Window Toolkit (AWT) و Swing و JavaFX و SWT وNEWT الخاصة بها وبعض الامتدادات .

تصميم

يتم الوصول إلى واجهة برمجة تطبيقات OpenGL C الأساسية ، بالإضافة إلى واجهة برمجة تطبيقات النوافذ المرتبطة بها ، [ 3 ] في JOGL عبر استدعاءات واجهة Java الأصلية (JNI). ولذلك، يجب أن يدعم النظام الأساسي OpenGL لكي يعمل JOGL.

تختلف مكتبة JOGL عن بعض مكتبات Java الأخرى التي تُغلف OpenGL في أنها تُتيح فقط واجهة برمجة تطبيقات OpenGL الإجرائية عبر دوال في عدد قليل من الفئات، بدلاً من محاولة ربط وظائف OpenGL بنموذج البرمجة الكائنية . في الواقع، يتم توليد معظم كود JOGL تلقائيًا من ملفات رأس OpenGL C باستخدام أداة تحويل تُسمى GlueGen ، والتي تمت برمجتها خصيصًا لتسهيل إنشاء JOGL.

الوضع والتوحيد القياسي

اعتبارًا من عام 2025توفر مكتبة JOGL وصولاً كاملاً إلى مواصفات OpenGL 4.6 و OpenGL ES 3.2، بالإضافة إلى جميع ملحقات الموردين تقريبًا (و OpenCL و OpenMAX و OpenAL ). [ 4 ] يُعد الإصدار 2.5.0 هو التطبيق المرجعي لـ JSR-231 (روابط جافا لـ OpenGL) . [ 5 ] أتاح الإصدار 1.1.1 وصولاً محدودًا إلى GLU NURBS ، مما مكّن من عرض الخطوط والأسطح المنحنية عبر واجهات برمجة تطبيقات GLU التقليدية. أضاف الإصدار 2.6.0 دعمًا لإصدارات OpenGL حتى 4.6، وإصدارات OpenGL ES حتى 3.2.

من المخطط دعم Wayland و Vulkan. [ 6 ]

التوافق بين Java2D و OpenGL

منذ إصدار Java SE 6 من لغة Java ، أصبح كل من Java2D ( واجهة برمجة التطبيقات  لرسم الرسومات ثنائية الأبعاد في Java) و JOGL متوافقين، مما يسمح لهما بما يلي :

دروس تعليمية

مثال على الكود

@Override public void display ( GLAutoDrawable drawable ) {GL4 gl4 = drawable . getGL (). getGL4 ();gl4.glClearBufferfv ( GL2ES3.GL_COLOR , 0 , clearColor ) ; gl4.glClearBufferfv ( GL2ES3.GL_DEPTH , 0 , clearDepth ) ;{ FloatUtil.makeLookAt ( view , 0 , eye , 0 , at , 0 , up , 0 , tmp ) ; FloatUtil.makePerspective ( projection , 0 , reset , 45f , aspect , near , far ) ;FloatUtil.multMatrix ( projection , view ); // projection * = viewtransformPointer.asFloatBuffer ( ). put ( projection ) ; }gl4.glUseProgram ( programName ); gl4.glBindVertexArray ( vertexArrayName.get ( 0 ) ) ; gl4.glBindBufferBase ( GL2ES3.GL_UNIFORM_BUFFER / * target*/ , 1 / * TRANSFORM0 , index*/ , bufferName.get ( 2 ) / * TRANSFORM , buffer*/ ) ;gl4.glBindTextureUnit ( 0 / *diffuse*/ , textureName.get ( 0 ) ) ; gl4.glBindSampler ( 0 / * diffuse* / , samplerName.get ( 0 ) ) ;gl4.glDrawElements ( GL.GL_TRIANGLES , elementCount , GL.GL_UNSIGNED_SHORT , 0 ) ; }

انظر أيضاً

مراجع

  1. فريزن، جيف (18 سبتمبر 2008). "مشاريع جافا مفتوحة المصدر: ربط جافا لـ OpenGL (JOGL)" . دروس جافا مفتوحة المصدر. جافا وورلد . تم الاسترجاع في 23 يوليو 2020. نشأ مشروع JOGL باسم Jungle، والذي أنشأه خبيرا الرسومات ثلاثية الأبعاد كين راسل (من شركة صن مايكروسيستمز) وكريس كلاين (من شركة إيراشونال جيمز).
  2. ديفيس، جين (21 فبراير 2005). "مرحباً JOGL" . جافا وورلد . تم الاسترجاع في 23 يوليو 2020 .
  3. "تقنية ثلاثية الأبعاد والوسائط المتعددة عبر المنصات والأجهزة باستخدام JOGL" (ملف PDF) . SIGGRAPH . 27-07-2010 . تاريخ الاسترجاع: 06-02-2011 .
  4. "JOGL - Java Binding for the OpenGL API" .
  5. "JSR-000231 روابط جافا لواجهة برمجة تطبيقات OpenGL" . عملية مجتمع جافا . تم الاطلاع عليه بتاريخ 6 فبراير 2011. لتسهيل مشاركة المجتمع على أوسع نطاق ممكن في روابط جافا لواجهة برمجة تطبيقات OpenGL، نستخدم مشروع JOGL على موقع java.net الموجود على الرابط jogl.dev.java.net. يمكن العثور على شفرة مصدر JOGL هناك، وهي مرخصة بموجب ترخيص شفرة مصدرية مفتوح (معظمها مرخص بموجب ترخيص BSD باستثناء الحالات التي نستخدم فيها شفرة مرخصة من جهات أخرى). نقوم بأخذ لقطة من شفرة هذا المشروع كل بضعة أشهر، ونشغل مجموعة أدوات توافق التقنية على شفرة المصدر، ثم نعتمدها رسميًا كتنفيذ مرجعي لكل إصدار رسمي من روابط جافا لواجهة برمجة تطبيقات OpenGL.
  6. "الخطأ رقم 794 - إضافة توافقية Wayland Windowing/Surface" . 2013-08-05.
  7. "دليل مستخدم JOGL" .