תשובה לגבי DirectX.
DirectX ======= פותחה לראשונה ע"י מייקרוסופט עבור Windows95. פיתוחה נועד לאפשר כתיבת יישומים גרפיים (בעיקר משחקים) הדורשים יכולת גרפית מיטבית. עקב שיטת העבודה של מע´ ההפעלה, כל ביצוע הוראה גרפית בתוכנית כלשהי דורשת פניה לממשק GDI, שהוא המתקשר עם הדרייבר של כרטיס המסך / המדפסת וכד´, ולכן מהירות הביצוע הגרפית מואטת. זו הסיבה שמייקרוסופט פיתחה את DirectX - על מנת לעקוף את הפניות לממשק ה- GDI, ובכך לאפשר כתיבה ישירות לזיכרון כרטיס המסך, וכן לאפשר שימוש ב- Full-Screen במקום בתוך חלונות. יצרני כרטיסי-המסך מספקים בדרייבר שהם מפיצים שרותי Hardwarwe Abstraction Layer או בקיצור: HAL. באופן זה, DirectX משתמשת ב- HAL במקום ב-GDI על-מנת לבצע פעולות גרפיות ישירות על גבי כרטיס המסך. ספריית DirectX מבוססת של מספר Dll-ים שנכתבו עפ"י מתודולוגיית COM, ובכך מאפשרת עידכונם תוך כדי שמירה על פעולת תוכנות ישנות יותר מבלי לפגום בפעולתן, בעוד שתוכנות חדשות יותר המותאמות לגרסאות מעודכנות של DirectX ייהנו מתכונות ואפשרויות רבות חדשות יותר. בהמשך התפתחות הספריות, החלו גם יצרני כרטיסי-המסך לשלב תמיכה בספריות אלה, כאשר הרעיון המרכזי הוא כזה: במידה וכרטיס המסך תומך בפעולה מסויימת, הוא יבצע אותה, ובמידה ולא, DirectX המותקנת על מע´ ההפעלה תבצע אותה, מה שנקרא Software-Emulation Layer. מכיון שביצוע פעולה מסויימת על גבי Hardware מהיר הרבה יותר מביצועה ב- Software, ראוי לו לכרטיס המסך לתמוך בכמה שיותר תכונות תואמות DirectX על מנת שהביצועים הגרפיים יהיו מיטביים. DirectX בעיקר מיועדת לכתיבת משחקים ואפליקציות מולטימדיה. לכן, מלבד ייעודה כספריה לגרפיקה דו-מימדית (שטוחה), היא מיועדת לגרפיקה תלת-מימדית, אשר חלקה בספריה נקרא Direct3D. אין ספק כי כיום, רובן המכריע של תוכנות המשחקים עושה שימוש נרחב ביכולות גרפיות תלת-מימד, ועקב כוח החישוב העצום הדרוש ליישום תכונות אלה, הן מייושמות אך ורק על-גבי ה- Hardware (כרטיס המסך). ספריית DirectX כוללת גם את DirectShow, התומכת באפשרויות הצגת וידאו/אודיו (למשל "נגן המדיה" של מייקרוסופט) מבוסס על DirectShow. הארכיטקטורה של DirectShow מאפשרת טעינת CODECs בזמן-אמיתי בהתאמה למדיה המנוגנת. (CODEC = דוחס/פורס של קובץ מדיה בפורמט מסויים). כמו-כן, DirectShow מנצלת את יכולת כרטיס-המסך להציג וידאו ב- Overlays אם זה תומך ביכולת זו. (אין אמולצייה למצב Overlays בתוכנה). עוד כוללת DirectX את DirectSound, המאפשרת יכולות נגינת אודיו, וכן נגינת אודיו תלת-מימדי. (לדוגמה: עצם רחוק במשחק נשמע חלש יותר מעצם הקרוב יותר לשחקן, וכד´). DirectX כוללת את DirectInput אשר יודעת לעבוד עם כל סוגי הקלט הקיימים (מקלדת, עכבר, ג´ויסטיקים עם/בלי רטט, TrackBalls, Game-Pads ועוד). ולסיום - DirecPlay, המאפשרת פיתוח משחקים רבי-משתתפים באמצעות רשתות וכד´. כיום, נמצאת DirectX בגירסת 8.1, אך היא תמשיך ותתפתח כפי הנראה עוד ועוד, יד ביד עם יצרני כרטיסי החומרה השונים. חסרונות הפיתוח באמצעות DirectX - היא איננה Cross-Platform, כלומר היא מותאמת אך ורק לפיתוח אפליקציות Windows, עקב שימושה בתשתיות מערכת ההפעלה לשם פעולתה. השימוש ב- Direct3D לפעמים מסובך מאוד ודורש ידע ויכולות תכנות גבוהות מאוד. לגבי OpenGL, אשר אין לי הכרות של ממש איתה, אוכל רק לומר שהיא פרי פיתוח של Silicon-Graphics, וייעודה הוא תמיכה בגרפיקה תלת-מימדית, כאשר לעומת Direct3D היא כנראה יותר פשוטה להבנה ויישום מצד המפתחים, וכן היא Cross-Platform, שזהו עוד יתרון מבחינתם של המפתחים. עם זאת, היא תומכת במגוון אפשרויות ויכולות מצומצמות מאלו של DirectX . רוב כרטיסי המסך תומכים בד"כ בגרסאות של DirectX ו- OpenGL במקביל. מקווה שעזרתי.