استخدام GLEW لاستخدام امتدادات OpenGL ضمن Windows

StackOverflow https://stackoverflow.com/questions/17370

  •  08-06-2019
  •  | 
  •  

سؤال

لقد كنت أستخدم امتدادات OpenGL على نظام التشغيل Windows طريقة مؤلمة.هل GLEW هي الطريقة الأسهل للذهاب؟كيف أبدأ بها؟

هل كانت مفيدة؟

المحلول

نعم مكتبة ملحق OpenGL رانجلر (GLEW) هي طريقة غير مؤلمة لاستخدام امتدادات OpenGL على نظام التشغيل Windows.وإليك كيفية البدء في ذلك:

حدد امتداد OpenGL وواجهات برمجة تطبيقات الامتداد التي ترغب في استخدامها.يتم إدراج ملحقات OpenGL في ملف سجل ملحق OpenGL.

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

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

تحميل توهج وفك ضغطه.

أضف جليو سلة مهملات المسار إلى Windows الخاص بك طريق متغيرات البيئة.وبدلاً من ذلك، يمكنك أيضًا وضع glew32.dll في دليل حيث يلتقط Windows مكتبات الارتباط الحيوي (DLL) الخاصة به.

أضف جليو يشمل المسار إلى قائمة دليل التضمين الخاصة بالمترجم الخاص بك.

أضف جليو ليب المسار إلى قائمة دليل مكتبة المترجم الخاص بك.

قم بإرشاد المترجم الخاص بك لاستخدامه glew32.lib أثناء الربط.إذا كنت تستخدم برامج التحويل البرمجي Visual C++، فإن إحدى الطرق للقيام بذلك هي إضافة السطر التالي إلى التعليمات البرمجية الخاصة بك:

#pragma comment(lib, "glew32.lib")

أضف #include <GL/glew.h> سطر إلى التعليمات البرمجية الخاصة بك.تأكد من وضع هذا فوق ملفات رأس GL الأخرى.(قد لا تحتاج في الواقع إلى تضمين ملفات رأس GL إذا قمت بتضمينها glew.h.)

تهيئة GLEW باستخدام glewInit() بعد تهيئة GLUT أو GL.إذا فشلت، فهذا يعني أن هناك خطأ ما في الإعداد الخاص بك.

if (GLEW_OK != glewInit())
{
    // GLEW failed!
    exit(1);
}

تحقق مما إذا كانت الامتدادات (الامتدادات) التي ترغب في استخدامها متاحة الآن من خلال GLEW.يمكنك القيام بذلك عن طريق التحقق من متغير منطقي اسمه توهج_your_extension_name الذي كشفه GLEW.

مثال:

if (!GLEW_EXT_framebuffer_object)
{
    exit(1);
}

هذا كل شيء!يمكنك الآن استخدام استدعاءات ملحق OpenGL في التعليمات البرمجية الخاصة بك تمامًا كما لو كانت موجودة بشكل طبيعي لنظام التشغيل Windows.

نصائح أخرى

أنا شخصياً لن أستخدم أمر الخروج.

سأطرح استثناءً حتى تتمكن من مسح أي تهيئة أخرى في نهاية الوظيفة.

أي:

try
{
    // init opengl/directx
    // init directaudio
    // init directinput

    if (GLEW_OK != glewInit())
    {
        throw std::exception("glewInit failed");
    }
}
catch ( const std::exception& ex )
{
    // message to screen using ex.what()
    // clear up
}

وأنا أتفق مع OJ - إذا كنت تريد كتابة دروس تعليمية للآخرين، فهذا هو المكان الخطأ حقًا لذلك.يوجد بالفعل عدد كبير من الأماكن الجيدة لدروس opengl. جرب هذا على سبيل المثال.

لقد فقدت بعض الوقت، ولكن أخيرًا تمكنت من تشغيل GLEW.أنا أستخدم Windows7 (x64) وEclipse CDT وMinGW، والطريقة هي:

قم بتنزيل MSYS (لـ MinGW) وتذكر تثبيت MinGW بشكل صحيح (تم تعيين متغير بيئة PATH بشكل صحيح):http://sourceforge.net/projects/mingw/files/MSYS/Base/msys-core/msys-1.0.10/MSYS-1.0.10.exe/download?use_mirror=freefr&download=

بمجرد تثبيت MSYS، انتقل إلى:http://glew.sourceforge.net/وقم بتنزيل حزمة TGZ المخصصة للاستخدام مع أنظمة UNIX

ثم افتح الحزمة (يمكنك استخدام 7zip أيضًا) وابحث عن "Makefile".افتحه وباستخدام محرر نصوص (يجب أن يعمل برنامج Notepad بشكل جيد) ابحث عن الصف الذي يحتوي على "GLEW_DEST" واستبدله بشيء مثل "GLEW_DEST ?= C:/MinGW"

أنت الآن جاهز للبدء، افتح MSYS (C:\MinGW\msys\1.0\msys.bat في حالتي) وفي الصدفة المفتوحة، انتقل إلى المجلد الذي يوجد به "Makefile".

ثم اكتب بسيطًا:"قم بالتثبيت" وانتهى العمل (على الأقل بالنسبة لي نجح الأمر)

ملاحظة:قمت أيضًا بنسخ ولصق ملفات glew-1.10.0-win32\glew-1.10.0\bin elease\Win32 في مجلد System32 الخاص بي، وفي Eclipse CDT أضفت المكتبة "glew32" في خيار الرابط وأضفت #include <GL/glew.h> قبل #include <GL/glut.h>

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top