مباشر2D
Direct2D [1] هي واجهة برمجة تطبيقات رسومية متجهية ثنائية الأبعاد (API) صممتها شركة Microsoft وتم تنفيذها في Windows 10 ، [2] وWindows 8 ، و Windows 7 و Windows Server 2008 R2 ، وأيضًا Windows Vista و Windows Server 2008 (مع تثبيت Platform Update ). [3]
يستفيد Direct2D من تسريع الأجهزة عبر وحدة معالجة الرسومات ( GPU ) الموجودة في بطاقات الرسومات المتوافقة داخل الكمبيوتر الشخصي والكمبيوتر اللوحي والهاتف الذكي والأجهزة الرسومية الحديثة. إنه يوفر جودة بصرية عالية وأداء عرض سريع مع الحفاظ على التوافق الكامل مع واجهات برمجة تطبيقات الرسومات الكلاسيكية Win32 مثل GDI / GDI+ وواجهات برمجة تطبيقات الرسومات الحديثة مثل Direct3D . [4]
ملخص
Direct2D عبارة عن واجهة برمجة تطبيقات أصلية تعتمد على C++ ويمكن استدعاؤها بواسطة التعليمات البرمجية المُدارة وتستخدم نهج " COM خفيف الوزن " [5] تمامًا مثل Direct3D ، مع الحد الأدنى من التجريد. ومع ذلك، على عكس WPF وعلى نحو مماثل لـ GDI/GDI+، فإن Direct2D عبارة عن واجهة برمجة تطبيقات للرسم "في الوضع الفوري" مع استدعاءات BeginDraw/Draw/EndDraw البسيطة؛ لا يحتوي Direct2D على مفهوم "المشهد" ولا يستخدم هياكل الشجرة المحفوظة، ويتم الحفاظ على حالة الرسم بين استدعاءات الرسم.
يمكن لـ Direct2D تقليل استخدام وحدة المعالجة المركزية والاستفادة من عرض الأجهزة على بطاقة رسوميات مع الحد الأدنى من دعم Direct3D Feature Level 9 مع برامج تشغيل WDDM 1.1 . يمكن للتطبيقات اختيار استخدامه حصريًا مع وحدة المعالجة المركزية، وهو ما يسمى عرض البرامج من خلال استخدامه جنبًا إلى جنب مع WARP10 في المواقف التي لا تتوفر فيها القدرة المادية، مثل عند التشغيل داخل جهاز مع الحد الأدنى من دعم وحدة معالجة الرسومات، ضمن خدمة المحطة الطرفية ، أو جلسة Windows 0 ، أو عند إجراء عرض الرسومات في خادم بعيد مع إرسال النتيجة الرسومية مرة أخرى إلى جهاز العميل. يتناسب أداء Direct2D واستخدام الذاكرة بشكل خطي مع عدد البدائيين في كل من البرامج والأجهزة.
يدعم Direct2D [6] [7] العرض عالي الجودة بالميزات الرئيسية التالية:
- تقديم نص فرعي عالي الجودة عبر DirectWrite لكل من تقنية التدرج الرمادي و ClearType
- التنعيم المسبق
- رسم وملء هندسة بيزير
- عمليات الهندسة الغنية (على سبيل المثال العمليات المنطقية ، وتوسيع المسار، والتخطيط، وما إلى ذلك)
- الطبقات المركبة
- أوضاع المزج البدائية (على سبيل المثال، المزج فوق المصدر، ونسخ المصدر، والمزج الأدنى، وما إلى ذلك)
- تأثيرات مدمجة ومخصصة للصور لتعديل الصور والتحويل الرسومي واللون
- فرشاة التدرج والشبكة
- قائمة الأوامر لتخزين الأوامر وطباعتها
- ضربة حبر قابلة للتطوير
- دفعة Sprite لتطوير الألعاب
يتيح Direct2D إمكانية التشغيل البيني الكامل مع GDI وGDI+، ويسمح بالرسم من وإلى سطح Direct3D، وكذلك من وإلى سياق جهاز GDI/GDI+ (HDC). ويمكن استخدامه بفعالية مع Windows Imaging Component (WIC) لترميز/فك ترميز الصور، ومع DirectWrite لتنسيق النص ومعالجة الخطوط. ويتيح هذا التشغيل البيني للمطورين استبدال مسارات التعليمات البرمجية الحرجة تدريجيًا بالتعليمات البرمجية Direct2D دون الحاجة إلى مراجعة التعليمات البرمجية المصدرية بالكامل. في إطار زمني لنظام التشغيل Windows 10، تم تطوير مشروع مفتوح المصدر يسمى Win2D بواسطة Microsoft لتبسيط استخدام Direct2D وDirectWrite بشكل أكبر في تطبيق Universal Windows Platform (UWP). Win2D عبارة عن غلاف WinRT عالي الكفاءة لـ Direct2D وDirectWrite مصمم من الألف إلى الياء للتكامل بسلاسة مع التحكم في XAML Canvas مع الحفاظ على قوة نظام الرسومات الفرعي الأساسي.
الإصدارات اللاحقة
دايركت 2 دي 1.1
تم إطلاق إصدار محدث من Direct2D مع Windows 8 في أكتوبر 2012. [8] كما تم نقله إلى Windows 7 SP1 (ولكن ليس إلى Windows Vista) عبر تحديث نظام التشغيل Windows 7. [9] [10] [11] كان الإصدار الأصلي من Direct2D مرتبطًا بـ DirectX 11 (في الأجهزة، يتم استخدام ما يصل إلى Direct3D 10.1)، في حين أن هذا الإصدار من Direct2D يتكامل مع DirectX 11.1. [9] أضاف Windows 8 أيضًا قابلية التشغيل المتبادل بين XAML و Direct2D جنبًا إلى جنب مع مكونات Direct3D، والتي يمكن خلطها جميعًا في تطبيق واحد. [12]
دايركت 2 دي 1.2
تمت إضافة ميزات جديدة إلى Direct2D مع Windows 8.1 في أكتوبر 2013: [13] تحقيقات الهندسة، [14] واجهة برمجة تطبيقات تأثيرات Direct2D، [15] [16] [17] واجهة برمجة تطبيقات قائمة الأوامر، واجهات برمجة تطبيقات متعددة الخيوط، أولوية العرض لكل جهاز، دعم صور JPEG YCbCr لمساحة ذاكرة أصغر ، ودعم تنسيقات الضغط الكتلي (ملفات DDS).
دايركت 2 دي 1.3
أدى إصدار Windows 10 في يوليو 2015 إلى تحديثات مهمة وميزات جديدة لـ Direct2D مثل تحسين أداء عرض النص القابل للتطوير دون تحويل الخط إلى خطوط ، والقدرة على تنزيل الخط المطلوب من السحابة عند الطلب دون الحاجة إلى خطوة تثبيت الخط، وتحسين لتحميل الصور بشكل أسرع وعرض تأثير الصورة، وطريقة أكثر تطوراً لتطبيق فرشاة التدرج من خلال استخدام شبكة ثنائية الأبعاد مصنوعة من بقع التدرج. قدم هذا الإصدار أيضًا ملحق API جديدًا تمامًا لدعم الحبر الرقمي، والذي يتم الاستفادة منه بشكل كبير من خلال متصفح Microsoft Edge بالإضافة إلى عنصر التحكم XAML الخاص بقماش الحبر .
تطبيق
في ورقتهما البحثية لعام 2012 حول امتداد OpenGL المتنافس لتقديم مسار NV، شرح مارك كيلجارد وجيف بولز (وانتقدا) الأجزاء الداخلية لـ Direct2D على النحو التالي: "يعمل Direct2D عن طريق تحويل المسارات على وحدة المعالجة المركزية ثم إجراء تقسيم متوازي مقيد لكل مسار. والنتيجة هي مجموعة من شبه منحرفات مساحة البكسل وهندسة مظللة إضافية لحساب التغطية الكسرية للحواف اليسرى واليمنى لشبه المنحرفات. ثم يتم تحويل شبه المنحرفات والهندسة المظللة إلى شكل نقطي بواسطة وحدة معالجة الرسومات. يكون الأداء الناتج أفضل بشكل عام من الأساليب القائمة على وحدة المعالجة المركزية بالكامل ولا يتطلب تخزينًا إضافيًا لحالة العينات المتعددة أو الاستنسل ؛ يقوم Direct2D بالعرض مباشرة في إطار مؤقت مسمى مع نتائج مضادة للتعرج بشكل صحيح. العيب الأساسي لـ Direct2D هو [أن] الأداء النهائي لا يتم تحديده بواسطة وحدة معالجة الرسومات (التي تقوم بالتقسيم المتوازي البسيط إلى حد ما) ولكن بواسطة وحدة المعالجة المركزية التي تقوم بالتحويل والتقسيم المتوازي المسمى "كل مسار وتحقق Direct3D يعملان معًا." [18]
في يوليو 2012، نشر فريق Windows 8 ما يلي على مدونة ستيفن سينوفسكي : "لتحسين أداء عرض الأشكال الهندسية في Windows 8، ركزنا على تقليل تكلفة وحدة المعالجة المركزية المرتبطة بالتبليط بطريقتين. أولاً، قمنا بتحسين تنفيذنا للتبليط عند عرض الأشكال الهندسية البسيطة مثل المستطيلات والخطوط والمستطيلات المستديرة والقطع الناقص." [19] ادعت عمليات التحسين الشائعة هذه أنها تعمل على تحسين الأداء في نطاق من 184% إلى 438%، اعتمادًا على البدائية. تابع المنشور: "ثانيًا، لتحسين الأداء عند عرض الأشكال الهندسية غير المنتظمة (مثل الحدود الجغرافية على الخريطة)، نستخدم ميزة جديدة لأجهزة الرسومات تسمى Target Independent Rasterization ، أو TIR. تمكن TIR برنامج Direct2D من قضاء عدد أقل من دورات وحدة المعالجة المركزية على التبليط، حتى يتمكن من إعطاء تعليمات الرسم لوحدة معالجة الرسومات بشكل أسرع وأكثر كفاءة، دون التضحية بالجودة المرئية. يتوفر TIR في أجهزة معالجة الرسومات الجديدة المصممة لنظام التشغيل Windows 8 والتي تدعم DirectX 11.1." [19] تبع ذلك اختبار معياري باستخدام حوالي 15 SVGs ، حيث زعم أن هناك تحسينات في الأداء تتراوح بين 151% إلى 523%. واختتم القسم: "لقد عملنا بشكل وثيق مع شركائنا في أجهزة الرسومات لتصميم TIR. وقد أصبح من الممكن تحقيق تحسينات كبيرة بفضل هذه الشراكة. إن أجهزة DirectX 11.1 متوفرة بالفعل في السوق اليوم ونحن نعمل مع شركائنا للتأكد من توفر المزيد من المنتجات القادرة على TIR على نطاق واسع." [19]
كانت ميزة TIR من بين تلك التي تسببت في "حرب كلامية" بين Nvidia و AMD حوالي ديسمبر 2012، لأن عائلة Kepler GPU من Nvidia لا تدعمها، بينما تدعمها GCN من AMD . [20] استجابةً لمطالب العملاء، نشر أحد موظفي دعم Nvidia أن TIR لا يمكن تنفيذه ببساطة على مستوى برنامج التشغيل، ولكنه يتطلب أجهزة جديدة؛ [21] [22] تعد بنية Maxwell 2 ، التي تم تقديمها في سبتمبر 2014، من هذه الأجهزة. [23]
في Windows 8.1 ، يمكن لـ Direct2D استخدام فسيفساء الأجهزة Direct3D11، ولكن فقط بالتزامن مع D2D1_FILL_MODE_ALTERNATE. إذا تم استخدام وضع تعبئة آخر (على سبيل المثال D2D1_FILL_MODE_WINDING) فإن Direct2D يعود إلى التبليط على وحدة المعالجة المركزية، ولكنه لا يزال يستخدم TIR للتنعيم (إذا كان TIR متاحًا). نظرًا لأن التبليط بالأجهزة متاح في Direct3D11 الأساسي (ليس بالضرورة 11.1)، فقد ادعت Microsoft تحسينات كبيرة في الأداء مع Direct2D في Windows 8.1 (مقابل Windows 8) على الأجهزة غير TIR. [24]
الاستخدامات والأداء
يستخدم Internet Explorer 9 والإصدارات الأحدث Direct2D و DirectWrite لتحسين الأداء وجودة الصورة. [25] [26] [27] تمت إضافة دعم Direct2D في الإصدار التجريبي من Firefox 3.7، مما أدى إلى مضاعفة سرعة العرض تقريبًا. [28] (أضاف Firefox 4 أيضًا دعم DirectWrite، ولكن تم جعل هذا غير افتراضي لبعض الخطوط في Firefox 7 بسبب شكاوى المستخدمين حول جودة العرض. [29] يستخدم Google Chrome مكتبة ثنائية الأبعاد خاصة به تسمى Skia ، والتي بدورها تقوم بالعرض من خلال ANGLE على Windows. [30] ) في Firefox 70.0، على الأجهزة القديمة، يتم تعطيل Direct2D في برامج تشغيل الرسومات القديمة المدرجة في القائمة السوداء إذا كانت تفتقر إلى الميزات وتم تعتيم المنطقة على سبيل المثال في خرائط Google . [31]
لاحظ بيتر برايت من Ars Technica في صيف عام 2012 أن "معظم تطبيقات سطح المكتب لا تستخدم Direct2D." [32]
يدعم Microsoft Office 2013 إما Direct2D+DirectWrite أو GDI+ Uniscribe لعرض النصوص والطباعة. [33]
انظر أيضا
- دايركت اكس
- دايركت 3D
- القاهرة – مكتبة رسوميات متجهية متعددة المنصات
- أوبن في جي
- مكتبة الوسائط المتعددة البسيطة والسريعة
- إطار الزرزور
- الكوارتز ثنائي الأبعاد
مراجع
- ^ "Direct2D - تطبيقات Win32".
- ^ "ما الجديد في Direct2D وDirectWrite لنظام التشغيل Windows 10 (القناة 9)". القناة 9. تم الاسترجاع في 2015-12-03 .
- ^ "تحديث Direct2D في مارس DirectX SDK - مدونة توم - الصفحة الرئيسية للموقع - مدونات TechNet". blogs.technet.com. 2009-03-24. مؤرشف من الأصل في 2009-03-28 . تم الاسترجاع في 2011-12-26 .
- ^ "Direct2D". MSDN . تم الاسترجاع في 2011-12-26 .
- ^ ".net - ما هو ""lightweight COM"" بالضبط؟". Stack Overflow .
- ^ "تقديم النص باستخدام Direct2D و DirectWrite - تطبيقات Win32".
- ^ "تنسيقات البكسل وأوضاع ألفا المدعومة - تطبيقات Win32".
- ^ "تحسينات ميزة DirectX في Windows 8 - برامج تشغيل Windows".
- ^ ab "Windows with C++ - Introducing Direct2D 1.1". Msdn.microsoft.com. 2014-05-02 . تم الاسترجاع في 2014-08-09 .
- ^ "تحديث النظام الأساسي لنظام التشغيل Windows 7 (Windows)". Msdn.microsoft.com . تم الاسترجاع في 2014-08-09 .
- ^ Pooya Eimandar (2013). برمجة الألعاب باستخدام DirectX 11.1 . Packt Publishing Ltd. ص. 45. ISBN 978-1-84969-481-0.
- ^ "مدونات المطورين".
- ^ "ما الجديد في Direct2D - تطبيقات Win32".
- ^ "نظرة عامة على تحقيقات الهندسة - تطبيقات Win32".
- ^ "التأثيرات (Direct2D) - تطبيقات Win32".
- ^ "التأثيرات المضمنة - تطبيقات Win32".
- ^ "كيفية تطبيق التأثيرات على العناصر البدائية - تطبيقات Win32".
- ^ Kilgard, Mark J. (2012). "GPU-accelerated path rendering". ACM Transactions on Graphics . 31 (6): 1–10. doi :10.1145/2366145.2366191. S2CID 12967014.
- ^ abc روب كوبلاند، مع مساهمات من سريرام سوبرامانيان، دان ماكلاتشلان، كام فيدبرات، ستيف ليم، وجياني لو، ومقدمة من ستيفن سينوفسكي الأجهزة التي تعمل على تسريع كل شيء: رسومات ويندوز 8
- ^ "استمرار الحرب الكلامية بين NVIDIA وAMD بشأن دعم DirectX 11.1". Hardware Canucks. 2012-12-17 . تم الاسترجاع في 2014-08-09 .
- ^ "امنحنا دعم برنامج التشغيل DX11.1 على بطاقات DX11. لا يلزم وجود أجهزة جديدة لـ dx11.1". NVIDIA .
- ^ "دعم واجهة برمجة التطبيقات DirectX الخاصة بـ Fermi وKepler | NVIDIA". nvidia.custhelp.com .
- ^ سميث، رايان. "مراجعة NVIDIA GeForce GTX 980: Maxwell Mark 2". www.anandtech.com .
- ^ http://channel9.msdn.com/Events/Build/2013/3-191 من الساعة 19:00 إلى الساعة 20:00 ومن الساعة 55:00 إلى الساعة 56:30
- ^ تيم، في 11 أغسطس 2010 تابع تيم على تويتر (2010-08-11). "Firefox 4 as Psychedelic as IE9 with Direct2D enabled « Tim Anderson's ITWriting". Itwriting.com . تم الاسترجاع في 2014-08-06 .
{{cite web}}:|author=له اسم عام ( مساعدة )CS1 maint: أسماء متعددة: قائمة المؤلفين ( الرابط ) CS1 maint: أسماء رقمية: قائمة المؤلفين ( الرابط ) - ^ Shankland, Stephen (2014-03-25). "Firefox 4 beta 4 added hardware تسارع الأجهزة". CNET . تم الاسترجاع في 2014-08-06 .
- ^ "موزيلا تتخلى عن روك في برنامج مايكروسوفت الجديد • السجل". www.theregister.com .
- ^ نُشر في 27 نوفمبر 2009 بواسطة Gareth Halfacree (2009-11-27). "Firefox 3.7 يحصل على دعم Direct2D". bit-tech.net . تم الاسترجاع في 2014-08-09 .
{{cite web}}:CS1 maint: أسماء رقمية: قائمة المؤلفين ( الرابط ) - ^ "Graphic bits » Blog Archive » DirectWrite Text Rendering in Firefox 6". Blog.mozilla.org. 2011-08-11. مؤرشف من الأصل في 2014-08-10 . تم الاسترجاع في 2014-08-09 .
- ^ "التأليف المسرع بواسطة وحدة معالجة الرسوميات في Chrome - مشاريع Chromium" . تم الاسترجاع في 2014-08-06 .
- ^ Buckler, Craig (2011-12-20). "كيفية تمكين WebGL لبطاقات الرسومات المحظورة في Firefox" . تم الاسترجاع في 2019-10-21 .
- ^ برايت، بيتر (2012-07-24). "تسريع وحدة معالجة الرسوميات في نظام التشغيل Windows 8: أخبار جيدة لميترو". Ars Technica . تم الاسترجاع في 2014-08-09 .
- ^ "Office Adopts New Windows Display Technology - Murray Sargent: Math in Office - Site Home - MSDN Blogs". Blogs.msdn.com. 2012-07-29 . تم الاسترجاع في 2014-08-09 .
روابط خارجية
- الصفحة الرئيسية لبرنامج Direct2D على موقع MSDN تحتوي على روابط لدليل البرمجة، والميزات الجديدة في Windows 8.1، والتوافق مع Direct3D، وما إلى ذلك.
- مدونة توماس أولسن، المطور الرئيسي لـ Direct2D
- مدونة مطور Direct2D توم مولكاهي
- Windows 7: تقديم Direct2D وDirectWrite - فيديو PDC 2008
- حزمة Windows API Code Pack لـ Microsoft .NET Framework - تسمح بتطوير تطبيقات Direct2D في الكود المُدار
- تقديم Direct2D - إصدار يونيو 2009 من مجلة MSDN
- الرسم باستخدام Direct2D - إصدار سبتمبر 2009 من مجلة MSDN
- تم أرشفة واجهة برمجة التطبيقات Direct2D لـ Microsoft .Net Framework 4 في 2011-07-08 على موقع Wayback Machine - واجهة برمجة التطبيقات Direct2D لـ Microsoft .Net Framework 4
- طلب USPTO للتنقيح المستقل عن الهدف
- دليل ترحيل Direct2D 1.1 لمطوري Windows 7
- يحتوي عمود تشارلز بيتزولد على DirectX على العديد من المقالات حول Direct2D تتراوح من المقالات التمهيدية مثل المثلثات والتبليط أو هندسة Direct2D والتلاعب بها إلى المقالات الأكثر تقدمًا مثل الرسم بالأصابع باستخدام هندسة Direct2D، وبوابة ثنائية الأبعاد إلى عالم ثلاثي الأبعاد، وما إلى ذلك.
