الرسم المباشر
DirectDraw (ddraw.dll) هي واجهة برمجة تطبيقات (API) كانت جزءًا من واجهة برمجة تطبيقات DirectX من مايكروسوفت . تُستخدم DirectDraw لتسريع عرض الرسومات ثنائية الأبعاد في التطبيقات. كما تُمكّن التطبيقات من العمل بملء الشاشة أو ضمن نافذة، كما هو الحال في معظم تطبيقات ويندوز. تستخدم DirectDraw تسريع الأجهزة إذا كان متوفرًا على جهاز المستخدم . تتيح DirectDraw الوصول المباشر إلى ذاكرة الفيديو ، والتراكبات المادية ، ووحدات نقل البيانات المادية ، وتقليب الصفحات . يستطيع مدير ذاكرة الفيديو الخاص بها التعامل مع ذاكرة الفيديو بسهولة، مستفيدًا استفادة كاملة من إمكانيات نقل البيانات وفك ضغط الألوان لأنواع مختلفة من محولات العرض .
نظرًا لأن DirectDraw واجهة برمجة تطبيقات ثنائية الأبعاد ، فهي تحتوي على أوامر لعرض الرسومات ثنائية الأبعاد، ورغم أنها لا تدعم تسريع الأجهزة ثلاثية الأبعاد ، فإن إصدارات DirectDraw حتى الإصدار 7.0 مرتبطة ارتباطًا وثيقًا بإصدار Direct3D الخاص بها. لاستخدام التسريع ثلاثي الأبعاد في Direct3D 7.0 والإصدارات الأقدم، يجب استخدام DirectDraw لإنشاء واجهة IDirect3D باستخدام IDirectDraw7-> QueryInterface ، والتي تُنشئ بدورها واجهة IDirect3DDevice، ومن ثم يمكن الوصول إلى باقي واجهة برمجة تطبيقات Direct3D واستخدامها. يوفر DirectDraw لـ Direct3D أيضًا الخامات (عبر الأسطح)، وأدوات القص، ولوحات الألوان، وتنسيقات البكسل، بالإضافة إلى مرحلة العرض النهائية لعرض الصور المُعالجة على الشاشة.
تم تقديم DirectDraw لنظام التشغيل Windows Mobile في الإصدار 5.0، ليحل محل مكون الرسومات الخاص بـ GAPI ، والذي تم إيقافه لاحقًا. [ 1 ]
مع إصدار DirectX 8.0، تم دمج DirectDraw في حزمة جديدة تُسمى DirectX Graphics ، والتي وسّعت Direct3D بإضافة بعض واجهات برمجة تطبيقات DirectDraw. لا يزال بإمكان المبرمجين استخدام DirectDraw، ويمكن تجميعه في بيئة 64 بت، ولكن عليهم استخدام واجهات DirectX القديمة (DirectX 7 والإصدارات الأقدم).
توفر برامج التشغيل من NVIDIA وAMD وIntel دعمًا مُسرّعًا للأجهزة للعديد من الميزات الأساسية لـ DirectDraw. مع ذلك، ونظرًا للتغييرات التي طرأت على مدير سطح مكتب ويندوز (DWM) في إصدارات ويندوز الحديثة، لم تعد ميزات مثل التراكبات مدعومة على الإطلاق.
في يونيو 2010، تمت إزالة DirectDraw من حزمة DirectX SDK، [ 2 ] ولكن في عام 2012، تم دمج DirectX SDK في Windows Platform SDK، وتم تضمين DirectDraw مرة أخرى.
الاستبدال
شهدت أنظمة ويندوز تراجعًا في توافقها مع الألعاب القديمة التي تعتمد على DirectDraw، ومن بين الألعاب المتأثرة Command & Conquer و Warcraft 2 و Theme Hospital . في الإصدارات الأحدث من ويندوز، ترفض بعض الألعاب العمل على أنظمة 32 بت ( مثل Dangerous Waters )، بينما تظهر ألعاب أخرى شاشة سوداء أو تعاني من خلل عند التبديل إلى نظام آخر. وقد لوحظ أن إعادة برمجة DirectDraw تُصلح هذه المشاكل. ومن البدائل الشائعة:
- WineD3D من Wine ، والذي يُترجم إلى OpenGL . [ 3 ]
- cnc-ddraw و ts-ddraw من CnCNet، وهي شبكة متعددة اللاعبين للعبة Command & Conquer . يتم ترجمتها إلى GDI أو OpenGL (مع دعم GLSL ) أو Direct3D 9. [ 4 ]
- DDrawCompat، غلاف برمجي لـ ddraw الأساسي يُصحح الاستدعاءات الإشكالية. [ 5 ] ddwrapper هو غلاف برمجي سابق وغير مرتبط يقوم بنفس المهمة. [ 6 ]
انظر أيضاً
مراجع
- ↑ سافيتز، مايكل (13 أغسطس 2007). "هل انتقلت إلى DirectDraw بعد؟" . مدونة فريق Windows Mobile . تم الاطلاع عليه بتاريخ 23 أبريل 2019 .
- ↑ "رسومات وفيديو DirectX 8: بداية جديدة" . gamedev.net. 30 نوفمبر 2000. مؤرشف من الأصل في 4 يونيو 2007. تم الاطلاع عليه في 23 أبريل 2019 .
- ^ دوسينا، فيديريكو. "WineD3D لنظام التشغيل Windows" . فيديريكو دوسينا . تم الاسترجاع في 23 أبريل 2019 .
- ↑ CnCNet (21 أبريل 2019). "cnc-ddraw: إعادة تنفيذ واجهة برمجة تطبيقات DirectDraw باستخدام GDI وOpenGL وDirect3D 9 للألعاب الكلاسيكية لتحسين التوافق مع أنظمة التشغيل Windows XP وVista و7 و8 و10 وWine" . GitHub . تم الاطلاع عليه بتاريخ 23 أبريل 2019 .
- ↑ نارزول (21 أبريل 2019). "DDrawCompat: تحسينات في التوافق والأداء مع DirectDraw لأنظمة التشغيل Windows Vista و7 و8 و10" . جيت هاب . تم الاطلاع عليه بتاريخ 23 أبريل 2019 .
- ↑ عقريت. "ddwrapper" . bitpatch.com .
روابط خارجية
- DirectX
- مكتبات الرسومات
- واجهات برمجة تطبيقات مايكروسوفت
- قوالب مايكروسوفت ويندوز
