Glad: دعم إنشاء مكتبة ملف الرأس فقط

تم إنشاؤها على ١ يونيو ٢٠١٦  ·  15تعليقات  ·  مصدر: Dav1dde/glad

هل سيكون من الممكن إضافة دعم لإنشاء ملف الرأس فقط لـ GLAD؟ أعني ، على غرار مكتبات stb .

سيكون من المفيد جدًا أن تسقط glad.h في المشروع وتجنب تعديل خط الأنابيب.

ها هي عينة أعمل عليها ؛ لقد أنشأت ملف الرأس GLAD بنفسي فقط يدويًا.

enhancement glad2

التعليق الأكثر فائدة

فقط تنبيه ، يدعم فرع glad2 خيار الرأس فقط الآن!

python -m glad --out-path=build --api="gl:core=" --extensions= c --header-only

ال 15 كومينتر

أعتقد أن هذه فكرة رائعة. لا أريد حقًا وضع الملفات السعيدة مع بقية الكود الخاص بي ، لكن البديل في الوقت الحالي هو مجرد صبي معقد للغاية.

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

ومع ذلك ، أتخيل أن تجميع الملف بأكمله @ raysan5 قد يستغرق بعض الوقت ، خاصةً إذا تم تضمينه في عدة ملفات. في كثير من الأحيان ، أريد فقط مثل GLuint المعلن لملف الرأس الخاص بي. ربما يكون glad_types.h مجانيًا جيدًا. أنا شخصياً لست قلقًا بشأن العديد من الملفات ، ولكن بدلاً من ذلك ، ملفات .c .

مرحبًا Shimmen ، أنا أستخدم إصدار OpenGL 3.3 للملف الشخصي الأساسي ، في الأصل ، glad.h كان بالفعل ~ 14K LoC و glad.c كان ~ 7.6K LoC. بمجرد التوحيد ، يصبح glad.h LoC تقريبًا ويستغرق وقت التجميع باستخدام GCC 4.7.2 حوالي 2-3 ثوانٍ في محطة عمل التطوير الخاصة بي.

أفكر في تقديم طلب سحب. هل تريد أن يكون خيارًا أن يكون لديك ملف رأس فقط وهل يجب أن يكون خيارًا افتراضيًا؟

مرحبًا ، هذا رائع!

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

ثم مرة أخرى ، ربما لا يضر وجود الخيار ، فلن يكون خيار الرأس فقط هو الخيار الافتراضي.

لقد استخدمت أداة الويب لتحديد الامتدادات التي أحتاجها (OpenGL 3.3 Core الأساسي) ثم قمت بإنشاء ملف رأس فقط ؛ كان حول 5K LoC ويتم تجميعه بالمللي ثانية (أي تأخير غير ملحوظ).

فقط تنبيه ، يدعم فرع glad2 خيار الرأس فقط الآن!

python -m glad --out-path=build --api="gl:core=" --extensions= c --header-only

المعالجات الحديثة سريعة جدًا ، لذا عندما لا يتم تعريف GLAD_IMPLEMENTATION لن يكون هناك أي تأثير فعلي على الأداء.

إضافة عظيمة @ Dav1dde! شكرا جزيلا لالتحديث! :)

هل هناك أي أخبار عن موعد وصول هذه الوظيفة إلى موقع الويب أم سيكون ذلك عندما يتم إطلاق الإصدار 2 رسميًا؟ شكرا!

ليس لدي ETA.

إذا كنت تريد التلاعب بها ، فيجب أن ينتج فرع glad2 C-Code عاملاً. تم تغيير واجهة برمجة التطبيقات قليلاً: gladLoadGL هي الطريقة الوحيدة لتحميل سياق GL وتتطلب دائمًا تمرير وظيفة محمل.

كنت آمل أن نتمكن من الحصول على تحديث للحالة حول الوقت الذي قد يصل فيه ذلك إلى موقع الويب. أنا أحب خدمة الويب! أظن هذا رائعا! دعم الرأس فقط سيجعله مثاليًا. شكرا!

http://glad2.dav1d.de يستضيف حاليًا فرع glad2 ، وهو وظيفي ولكن بدون واجهة برمجة تطبيقات ثابتة. لا يدعم glad2 الرأس فقط. إذا وجدت أخطاء ، يسعدني إصلاحها.

أعتقد أنني وجدت بعض المشكلات مع هذا:

  1. يجب إغلاق حارس الرأس __glad_gl_h_ في نهاية الملف ، وليس فقط بعد الجزء glad.h
  2. يجب عليك تعريف جميع الوظائف على أنها inline وإلا فإنك تكسر ODR ، أي لا يمكن تضمينها أكثر من مرة

شكرًا ، نعم ، لا يزال العنوان يحتاج فقط إلى بعض التحسينات.

أشارنيelmindreda إلى (فقط حتى لا أنسى): https://github.com/nothings/stb/blob/master/docs/stb_howto.txt#L9

يعمل في glad2.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

NamelessPerson picture NamelessPerson  ·  3تعليقات

ButchDean picture ButchDean  ·  4تعليقات

Algorithmus picture Algorithmus  ·  7تعليقات

computersarecool picture computersarecool  ·  6تعليقات

sasmaster picture sasmaster  ·  9تعليقات