ما هي واجهة برمجة تطبيقات الرسومات ذات الرسومات ثنائية الأبعاد جيدة لنظام التشغيل Windows/C ++؟
سؤال
لقد كنت أعمل على تطبيق صغير صغير ، وكنت أستخدم DirectX/3D لرسم القوام على الشاشة (جميع العناصر ثنائية الأبعاد). أجد أن واجهة برمجة التطبيقات سهلة الاستخدام للغاية وللدمج باستخدام مبادئ OOP ، لكن لا يسعني إلا أن أشعر أن استخدام DirectX على شيء صغير جدًا.
لا يمكنني العثور على توافق في الآراء على بديل جيد. أي اقتراحات؟
تعديل: يعد دعم ملف Alpha و PNG الأصليين ضروريًا.
مع الكثير من الحب الأول ، Jengerer
المحلول
إذا كنت بحاجة إلى مزج ألفا ، فعليك استخدام أجهزة الرسومات ؛ الطريقة الجيدة الوحيدة للقيام بذلك هي استخدام واجهة برمجة تطبيقات ثلاثية الأبعاد مماثلة لكيفية قيامك بذلك الآن (DirectX أو OpenGL). لن يستخدم أي بديل (GDI/+ أو يقول ، DirectDraw) أجهزة الرسومات الكاملة لتسريع المزج وسيتعين عليه القيام به على وحدة المعالجة المركزية ، مما يقلل بشكل كبير من الأداء.
كما ذكرنا ، يعد Direct2D خيارًا أيضًا-إنه من الناحية الوظيفية طبقة أعلى Direct3D التي تدعم المزيد من الوظائف المحددة ثنائية الأبعاد بالإضافة إلى دعم نص ممتاز.
نصائح أخرى
يتضمن Windows واحدة من المربع. (GDI32.dll). من الممكن ربطه في WM_PAINT
رسالة في مكالمة Windowproc واستخدامها BeginPaint()
لبدء الرسم. فكرة جيدة حقًا عما يمكن القيام به ويتوفر برنامج تعليمي أساسي ZetCode.
لقد استخدمت جوسو في الماضي ، وكان من الجيد العمل معه. تم تصميمه ليتم استخدامه أكثر مع روبي ، لكنه ليس سيئًا بالنسبة لـ C ++. استخدمناها في لعبة التمرير الجانبية السريعة ، حيث العبث مع z-order وقناة ألفا. قد يكون من المفيد التحقق.