ما هي واجهة برمجة تطبيقات الرسومات ذات الرسومات ثنائية الأبعاد جيدة لنظام التشغيل Windows/C ++؟

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

سؤال

لقد كنت أعمل على تطبيق صغير صغير ، وكنت أستخدم DirectX/3D لرسم القوام على الشاشة (جميع العناصر ثنائية الأبعاد). أجد أن واجهة برمجة التطبيقات سهلة الاستخدام للغاية وللدمج باستخدام مبادئ OOP ، لكن لا يسعني إلا أن أشعر أن استخدام DirectX على شيء صغير جدًا.

لا يمكنني العثور على توافق في الآراء على بديل جيد. أي اقتراحات؟

تعديل: يعد دعم ملف Alpha و PNG الأصليين ضروريًا.

مع الكثير من الحب الأول ، Jengerer

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

المحلول

إذا كنت بحاجة إلى مزج ألفا ، فعليك استخدام أجهزة الرسومات ؛ الطريقة الجيدة الوحيدة للقيام بذلك هي استخدام واجهة برمجة تطبيقات ثلاثية الأبعاد مماثلة لكيفية قيامك بذلك الآن (DirectX أو OpenGL). لن يستخدم أي بديل (GDI/+ أو يقول ، DirectDraw) أجهزة الرسومات الكاملة لتسريع المزج وسيتعين عليه القيام به على وحدة المعالجة المركزية ، مما يقلل بشكل كبير من الأداء.

كما ذكرنا ، يعد Direct2D خيارًا أيضًا-إنه من الناحية الوظيفية طبقة أعلى Direct3D التي تدعم المزيد من الوظائف المحددة ثنائية الأبعاد بالإضافة إلى دعم نص ممتاز.

نصائح أخرى

إذا لم تكن بحاجة إلى دعم XP ، فاستخدم Direct2D.
خلاف ذلك ، الاستخدام GDI+.

يتضمن Windows واحدة من المربع. (GDI32.dll). من الممكن ربطه في WM_PAINT رسالة في مكالمة Windowproc واستخدامها BeginPaint() لبدء الرسم. فكرة جيدة حقًا عما يمكن القيام به ويتوفر برنامج تعليمي أساسي ZetCode.

لقد استخدمت جوسو في الماضي ، وكان من الجيد العمل معه. تم تصميمه ليتم استخدامه أكثر مع روبي ، لكنه ليس سيئًا بالنسبة لـ C ++. استخدمناها في لعبة التمرير الجانبية السريعة ، حيث العبث مع z-order وقناة ألفا. قد يكون من المفيد التحقق.

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