مكتبة اوبن جل هي بالأساس واجهة برمجة تطبيقات الرسم OpenGL.[1]
حيث أنها توفر مجموعة كبيرة من الأدوات والوظائف والمتغيرات التي تساعد في معالجة الرسومات ثنائيه وثلاثيه الابعاد.[1]
تتيح مكتبة اوبن جل مجموعه من الوظائف المعدة والمجهزة مسبقًا في بطاقات الرسم القياسية في العالم.[1]
يمكن الوصول إلى تلك الوظائف من خلال لغات منخفضة المستوى مثل لغة جافا او سي او غيرها .
وبالتالي يتم استخدام مكتبة اوبن جل في الحصول على مادة غنية من معادلات الرسم الرياضية والفيزيائية المنسجمة أو حتى في تصميم الواجهات البسيطة.
يدعم كل اصدار من المكتبة انواع بطاقات الرسومات الجديدة عن طريق سلسلة.
بالتالي غالبًا ما يعمل الأشخاص على تطويرها مقابل تحقيق أقصى درجة انسجام في المعدات.[1]
في هذا الدرس سنوفر مجموعة من طرق توصيل وربط مكتبه اوبن جل.
وعادة ما يتطلب ذلك حاسوب بمواصفات متوسطة ولا يهم نوع بطاقة العرض حيث يمكن العمل على بطاقة مدمجة.
متطلبات مكتبة اوبن جل
- حاسوب قياسي (سطح مكتب لابتوب).
- بطاقة عرض (متوافقة مع نظام التشغيل)
- محرر Visual Studio.
- مهارات أساسية في لغات البرمجة.
تحميل مصادر المنصة
نحتاج إلى تحميل بعض مصادر مكتبة اوبن جل و يتعين على المطورين تنصيب نسخة من محرر IDE فيجوال ستوديو من مايكروسوفت.
ومع ذلك لا يتطلب الأمر سوى القيام بربط مكتبتين الأولى باسم glfw والثانيه باسم glew.
وبعد أن قمنا بتحميل المكتبتين سنعمل على تنصيب جميع الملفات ونقلهم إلى ملف بمكان آمن.
الآن نعمل على إضافة ملف في القرص الصلب c بعنوان GL.
نقوم بفتح برنامج Visual Studio ومن ثم نضيف مشروع جديد من فئة Console App.
بالتالي لا بد من التنويه بأننا نعمل على نسخة 2022 من visual studio تمامًا مثل الصورة التالية:
يجب الاستمرار في صفحة التكوين والانتهاء من اضافة ملفات المشروع.
وبعد فتح المشروع لا بد من اضافة ملف لإجراء عملية الفحص وتكوين بيئة عمل اللغة.
ولذلك فإننا سنقوم باضافة صفحة main.cpp تماما ليصبح المشروع كما في الصورة التالية:
ربط مكتبة اوبن جل glfw
من أجل أن يتم ربط مكتبه glfw يتعين علينا الوصول إلى خصائص المشروع.
وذلك لكي يتم توصيل المكتبة باعتبارها مصادر برمجية خارجية بالتالي يمكن الوصول إلى الخصائص تمامًا مثلما تدل الصورة التالية:
عند ظهور شاشة الخصائص نختار c/c++ ثم General و نذهب إلى جدول الصفوف في المنتصف.
ومن ثم نختار Edit من حقل Additional Include Directories , لقد قمنا بخط الخطوات باللون الأصفر لتمييز الألوان.
عند ظهور صندوق صغير بنفس الطريقه السابقه نضغط على الحقل.
ومن ثم نذهب الى مصادر مكتبه اوبن جل التي قمنا بنسخها للتو في القرص الصلب c وبالتالي فان امتداد الرابط يصبح كما يلي :
C:GLglfw-3.3.8.bin.WIN32glfw-3.3.8.bin.WIN32includeGLFW
يمكن تغيير المعمارية من 32 بت إلى 64 بت أو العكس لكن يجب الإشارة إلى المعمارية التي قمنا باختيارها.
نضع بعين ال‘عتبار بأن مجرد خطأ بسيط من الممكن يستغرق وقتا في تشخيص المشكلة.
سنعتمد في الشيفرة الخاصة بنا اختيار معمارية 32 بت.
ربط ملفات المكتبة lib
إن ما قمنا به سابقا ما هو سوى ربط ملفات includes التي سيتم استدعاؤها أثناء بناء الشيفرة الخاصة بنا.
لكن ذلك الأمر لا يكفي بسبب الحاجة إلى مصادر lib من مكتبة اوبن جل.
وبنفس الطريقة السابقة يمكن إتمام عملية الربط عن طريق Additional Library Directories كما في الصورة التالية:
إن النسخة المطابقة للمحرر الخاص بنا هي visual studio 2022 وبالتالي فإن الامتداد الخاص بملفات lib يصبح تماما كما يلي.
C:GLglfw-3.3.8.bin.WIN32glfw-3.3.8.bin.WIN32lib-vc2022
وأما في حال وجود نسخة أخرى من المحرر فيرجى البحث عنها في امتداد المكتبة حيث أنها توفر أكثر من إصدار ملفات lib.
يتبقى لدينا الآن ربط ملفات الاتصال بالمكتبة حيث يتم الاشارة بها من خلال input الموجودة في linker من الخصائص.
تمامًا كما في الصورة التالية:
بالتالي , وعند ظهور صندوق الربط نضع ملفات الاشارة التالية:
glfw3.lib opengl32.lib
الان نقوم بحفظ التعديلات ونخرج من الصندوق مع اضافة كود الفحص التالي :
#include <GLFW/glfw3.h> int main(void) { GLFWwindow*window; /* Initialize the library */ if (!glfwInit()) return -1; /* Create a windowed mode window and its OpenGL context */ window = glfwCreateWindow(640, 480, \"Hello World\", NULL, NULL); if (!window) { glfwTerminate(); return -1; } /* Make the window\'s context current */ glfwMakeContextCurrent(window); /* Loop until the user closes the window */ while (!glfwWindowShouldClose(window)) { /* Render here */ glClear(GL_COLOR_BUFFER_BIT); glClearColor(1.0, 1.0, 0.5, 1.0); /* Swap front and back buffers */ glfwSwapBuffers(window); /* Poll for and process events */ glfwPollEvents(); } glfwTerminate(); return 0; }
بعد أن قمنا بعملية الربط ستظهر لنا النتيجة كما في الصورة التالية:
ربط مصادر glew
تتطلب عملية ربط مكتبة glew نفس الخطوات السابقة مع بعض الإختلافات في إحالة الامتدادات.
,ومع ذلك فإن اختيار نظام 32 بت أو 64 بت سيحدد معمارية المشروع طوال عملية البرمجة.
ولا ننسى أن هناك ربط تلقائي يجب تفعيله في خصائص input.
glew32.lib