مكتبة اوبن جل : دورة OpenGL لغة c++ الدرس الأول


مكتبة اوبن جل هي بالأساس واجهة برمجة تطبيقات الرسم OpenGL.[1] حيث انها توفر لنا مجموعة كبيرة من الأدوات والوظائف والمتغيرات التي تساعدنا في معالجة الرسومات ثنائيه وثلاثيه الابعاد.[1]توفر مكتبة اوبن جل مجموعه من الوظائف المعدة والمجهزة مسبقًا في بطاقات الرسم القياسية في العالم.[1] يمكن الوصول إليها من خلال لغات منخفضة المستوى مثل لغة جافا او سي او غيرها .

وبالتالي يتم استخدام مكتبة اوبن جل في الحصول على مادة غنية من معادلات الرسم الرياضية والفيزيائية المنسجمة أو حتى في تصميم الواجهات البسيطة.

يدعم كل اصدار من  المكتبة انواع بطاقات الرسومات الجديدة عن طريق سلسلة. غالبًا ما يعمل الأشخاص على تطويرها مقابل تحقيق أقصى درجة انسجام في المعدات.[1]

في هذا الدرس سنوفر لك مجموعة من طرق توصيل وربط  مكتبه اوبن جل. لكي تتمكن من الاستمرار في دروس وأجزاء الدورة اللاحقة.

وعادة ما يتطلب ذلك منك حاسوب بمواصفات متوسطة ولا يهم نوع بطاقة العرض حيث تستطيع العمل على بطاقة مدمجة. بالتالي سنركز فقط على الأساسيات وليس على كمية الإطارات والبكسل في الثانية الواحدة.


 

 متطلبات مكتبة اوبن جل

الان وبعد ان تتحقق من وجود المتطلبات السابقة سيسهل عليك البدء في ربط مكتبات الرسم عمومًا أو حتى أي مكتبات أخرى. وعلى سبيل المثال فان العمل تحت إطار مايكروسوفت يتطلب منك الإلمام ببعض  المسائل لكي تبدو البيئة مألوفة لديك.

 


تحميل مصادر المنصة



سنحتاج إلى تحميل بعض مصادر مكتبة اوبن جل ولكن قبل ذلك يتعين على المطورين تنصيب نسخه من محرر  فيجوال ستوديو من مايكروسوفت. لا يتطلب منك الأمر سوى القيام بتحميل مكتبتين الاولى باسم glfw  والثانيه باسم glew

وبعد أن قمنا بتحميل المكتبتين سنعمل على تنصيب جميع الملفات ونقلهم إلى ملف بمكان آمن , نفضل انشاء ملف في القرص الصلب c بعنوان GL.

مصادر مكتبة اوبن جل
صورة يظهر من خلالها تحميل ونسخ مصادر اوبن جل في القرص الصلب c لدى وندوز 8.1.

 

الآن نقم بفتح برنامج Visual Studio ومن ثم نضيف مشروع جديد من فئة Console App. بالتالي لا بد من التنويه بأننا نعمل على نسخة 2022 من visual studio تمامًا مثل الصورة التالية:

مشروع c++ فيجوال ستوديو
صورة يظهر من خلالها اضافة مشروع c++ جديد في محرر Visual Studio 2022.

لا تنسى الاستمرار في صفحة التكوين والانتهاء من اضافة ملفات المشروع ,وبعد فتح المشروع يتوجب علينا اضافة ملف لإجراء عملية الفحص وتكوين بيئة عمل اللغة ولذلك فإننا سنقوم باضافة صفحة main.cpp  تماما ليصبح المشروع كما في الصورة التالية:

عبارة Hello World
عبارة Hello World في لغة c++.

 


ربط مكتبة اوبن جل glfw



لكي يتم ربط مكتبه glfw  يتعين علينا الوصول إلى خصائص المشروع , وذلك لكي يتم توصيل المكتبة باعتبارها مصادر برمجية خارجية , يمكنك الوصول إلى الخصائص من تمامًا مثل الصورة التالية:

خصائص مشروع visual studio
صورة يظهر فيها محاولة الوصول لخصائص المشروع في محرر visual studio.

 

عند ظهور شاشة الخصائص نختار c/c++ ثم General و نذهب إلى جدول الصفوف في المنتصف. ومن ثم نختار Edit من حقل Additional Include Directories , لقد قمنا بتحديد الخطوات بخط أصفر لتمييز الألوان.

ربط مصادر مكتبة اوبن جل
صورة يظهر من خلالها عملية ربط مكتبة اوبن جل glfw لإي بيئة عمل visual studio 2022.

 

عنده ظهور صندوق صغير بنفس الطريقه السابقه تضغط علي الحقل. ومن ثم نذهب الى مصادر مكتبه اوبن جل التي قمت بنسخها  القرص الصلب سي  وبالتالي فان امتداد الرابط سيصبح كما يلي :

C:\GL\glfw-3.3.8.bin.WIN32\glfw-3.3.8.bin.WIN32\include\GLFW

يمكنك تغيير المعمارية من 32 بت إلى 64 بت أو بالعكس , ولكن يجب الإشارة إلى المعمارية التي قمت باختيارها في الخطوة التي سنقوم بشرحها تاليًا. ضع باعتبارك أن مجرد خطأ بسيط من الممكن أن يضعك في مأزق قد يتجاوز ساعات من تشخيص المشكلة.

سنعتمد في الشيفرة الخاصة بنا اختيار معمارية 32 بت.


ربط ملفات المكتبة lib



إن ما قمنا به سابقا ما هو سوى ربط لملفات includes التي سنستدعيها أثناء بناء الشيفرة الخاصة بنا. لكن ذلك الأمر لا يكفي بسبب أننا نريد الإشارة إلى مصادر lib من مكتبة اوبن جل. وبنفس الطريقة السابقة يمكنك إتمام عملية الربط عن طريق Additional Library Directories كما في الصورة التالية:

ربط ملفات lib
عملية ربط ملفات lib من مكتبة اوبن جل , على بيئة عمل visual studio.

إن النسخة المطابقة للمحرر الخاص بنا هي visual studio 2022 وبالتالي , فإن الامتداد الخاص بملفات lib يصبح تماما مايلي:

C:\GL\glfw-3.3.8.bin.WIN32\glfw-3.3.8.bin.WIN32\lib-vc2022

وأما في حال كان لديك نسخة أخرى من المحرر فيرجى البحث عنها في امتداد المكتبة حيث أنها توفر أكثر من اصدار لملفات lib. يتبقى لدينا الان ربط ملفات الاتصال بالمكتبة حيث يتم الاشارة بها من خلال input الموجودة في linker من الخصائص , تمامًا كما في الصورة التالية:

الإشارة لملفات input.
صورة يظهر فيها عملية الاشارة لملفات input لدى مكتبة اوبن جل.

بالتالي , وعند ظهور صندوق الربط سنضع ملفات الاشارة التالية:

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;
}

بعد أن قمنا بعملية الربط ستظهر لنا النتيجة كما في الصورة التالية:

تفعيل مكتبة اوبن جل
صورة يظهر من خلالها نجاح تشغيل مكتبة اوبن جل على محرر visual studio.

ربط مصادر glew


تتطلب عملية ربط مكتبة glew نفس الخطوات السابقة مع بعض الإختلافات في إحالة الامتدادات , ,ومع ذلك فإن اختيار نظام 32 بت أو 64 بت سيحدد معمارية المشروع طوال عملية البرمجة. ولا ننسى أن هناك ربط تلقائي يتوجب علينا تفعيله في خصائص input.

glew32.lib

 

 

 

 

المصادر
  1. [1]^ OpenGL.
  2. [2]^GLFW Documentation binaries.
  3. [3]^GLFW Documentation.
هل أعجبك المقال؟

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني.

 - 
Arabic
 - 
ar
Bengali
 - 
bn
German
 - 
de
English
 - 
en
French
 - 
fr
Hindi
 - 
hi
Indonesian
 - 
id
Portuguese
 - 
pt
Russian
 - 
ru
Spanish
 - 
es