الصفحة الرئيسية/ التقنية / مكتبة اوبن جل : دورة OpenGL لغة c++ الدرس الأول

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


for Large تمت الكتابة بواسطة : محمد

for Large for Mobile

مكتبة اوبن جل هي بالأساس واجهة برمجة تطبيقات الرسم 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;
}

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

نتيجة تنفيذ برنامج openGL

ربط مصادر glew

تتطلب عملية ربط مكتبة glew نفس الخطوات السابقة مع بعض الإختلافات في إحالة الامتدادات.

,ومع ذلك فإن اختيار نظام 32 بت أو 64 بت سيحدد معمارية المشروع طوال عملية البرمجة.

ولا ننسى أن هناك ربط تلقائي يجب تفعيله في خصائص input.

glew32.lib

       

المصادر
  1. [1]^ OpenGL.
  2. [2]^GLFW Documentation binaries.
  3. [3]^GLFW Documentation.

وقت النشر : 2023-02-04 20:06:56 ·

1    التصنيفات






2    مقالات من التقنية

يعتمد هذا الموقع على عرض الإعلانات في تحقيق الدخل ، نشكر تفهمكم الدائم ونتمنى لكم قضاء وقت رائع ... وشكراً :D .