یک بازی کامپیوتری را روی کامپیوترتان اجرا می کنید. فعلا ً کارت گرافیک شما روی اسلا تAGP سوار می شود، پردازشگر سلرون دارید و ... پس از چند ماه یا چند سال کامپیوتر جدیدی م

ی خرید. اکنون اسلا ت کارت گرافیکی شما PCI Express است و یک پردازشگر ۶۴ بیتی دارید. همان بازی را روی این کامپیوتر هم نصب و اجرامی کنید! شاید به نظر طبیعی میآید که همه چیز باید همین طور باشد. اما چگونه یک بازی روی کامپیوترهایی با تراشه ها و سخت افزارهای مختلف و گاه فناوری متفاوت اجرا می شود؟ API های گرافیکی یا همان رابط های برنامه نویسی، بخش بزرگی از این مشکل را حل می کنند و امکانات گسترده دیگری را نیز در اختیار برنامه نویسان و توسعه دهندگان بازی و برنامه های چندرسانه ای قرارمی دهند. OpenGL وDirectX، دو مجموعه API گرافیکی و صوتی هستند که برای آسان تر ساختن توسعه بازی ها و نرم افزارهای چندرسانه ای طراحی شده اند.

API گرافیکی چیست؟

API درواقع بین برنامه و سخت افزاری که برنامه روی آن اجرا می شود، نقش یک هماهنگ کننده را دارد و مانند پلی میان سخت افزار و نرم افزار ارتباط ایجاد می کند. یعنی برنامه نویس کدهایی می نویسد که داده های گرافیکی خود را به وسیله دستورهای استانداردی به درایور API می فرستد نه مستقیماً به خود سخت افزار. سپس درایوری که شرکت سازنده سخت افزار تولید کرده است، این کداستاندارد تولیدشده را به فرمت بومی و ویژه ای که برای آن مدل خاص سخت افزار قابل شناسایی است، ترجمه می کند.

Microsoft DirectX

شرکت مایکروسافت در سال ۱۹۹۵ DirectX را ساخته و توسعه داده است. این نرم افزار شامل مجموعه یکپارچه ای از ابزارهای برنامه نویسی است که به توسعه دهندگان امکان می دهد انواع مختلف نرم افزارهای مالتی مدیا را روی پلتفرم ویندوز تولید کنند. DirectX به برنامه ای که بر پایه آن طراحی شده امکان می دهد به آسانی قابلیت های سخت افزار کامپیوتر را شناسایی کند و پارامترهای برنامه را با آن هماهنگ سازد.

DirectX شامل APIهایی است که دسترسی به بخش های ویژه ای از سخت افزار مانند تراشه های شتاب دهنده گرافیک سه بعدی و کارت صوتی را میسرمی کند. این APIها کنترل توابع سطح پایین، یعنی نزدیک به سخت افزار، شامل شتاب دهنده گرافیکی دو بعدی، پشتیبانی از دستگاه های ورودی مانند دسته بازی، صفحه کلید و ماوس، و کنترل میکس و خروجی صدا را انجام می دهند.

DirectX ۷.۰ در سال ۱۹۹۹ با شش کامپوننت عرضه شد که عبارت بودند از: Direct۳D،DirectDraw ،DirectSound ،DirectPlay ،DirectInput و DirectMusic.

در اواخر سال ۲۰۰۰ میلا دی، DirectX ۸.۰ عرضه شد که در آن کامپوننت های DirectSound و DirectMusic با هم ادغام شدند و با نام کامپوننت Direct Audio معرفی شدند.

Direct۳D و DirectDraw نیز با هم ادغام شدند و یک کامپوننت با نام DirectX Graphics را ساختند. DirectShow نیز به صورت یک API جداگانه پیاده سازی شد و به یکی از کامپوننت های DirectX تبدیل گردید.

DirectX ۹.۰ در ژانویه سال ۲۰۰۳ عرضه شد. ویژگی های خاص این نسخه عبارتند از:

قابلیت های صوتی جدید در DirectSound

سخت افزار رندرکننده ویدیویی با شتاب بیشتر

بهبود قابلیت برنامه ریزی گرافیکی

APIهای همه کامپوننت های DirectX برپایه COM یا Component Object Model هستند. در ادامه به بررسی هفت کامپوننت DirectX ۹.۰ می پردازیم که عبارتند از: DirectDraw ،Direct۳D ،DirectShow ،DirectSound ،DirectMusic ،DirectInput و DirectPlay.

۱) DirectDraw

DirectDraw، کامپوننتی ویژه طراحی دوبعدی است که به برنامه نویس اجازه می دهد مستقیماً به حافظه کارت گرافیک دسترسی یابد، صحنه ها و فریم ها را با هم ترکیب نماید یا bitmapها را در آنجا ذخیره کند. همچنین، برای برنامه ها امکان دسترسی به سخت افزارهای ویژه نمایش را مستقل از نوع سخت افزار فراهم می کند.

هر برنامه کاربردی DirectDraw الگوی یکسانی دارد که عبارت است از:

ـ ایجاد یک شی

شروع حلقه

انتقال به مانتیور

پایان حلقه

پاک کردن آن شی

منظور از واژه