C и C + + Програмиране ресурси

Отбележи
Персонализирано търсене

Преки X и неговите компоненти

Публикувано на 4-ти октомври 2008 година

"Една от основните цели на DirectX е да се осигури стандартен начин за достъп до много различни хардуерни устройства, патентовани"

DirectX се състои на прилагане програмни интерфейси (APIs), които са групирани в два класа:

  1. В DirectX фондация слой
  2. В DirectX Media слой

Тези APIs позволи програми за директен достъп до много от вашите computer' на хардуерни устройства.

В DirectX фондация слой

Фондация слой автоматично определя на хардуера възможностите на компютъра и след това определя programms "параметри на мача. Това позволява на мултимедийни приложения за работа с Аня Windows-базиран компютър и в същото време гарантира, че мултимедийни приложения се възползват напълно от хардуера висока производителност.

Фондация слой съдържа единен набор от интерфейси, които осигуряват по-добър достъп до разширените функции на хардуер висока производителност, като 3-D графични чипове ускорение и звукови карти. Тези APIs контрол на ниско ниво функции, включително 2-D графика ускорение; подкрепа за входни устройства като джойстици, клавиатури, мишки и и контрол на добро смесване и звук. Ниското ниво функции се поддържат от компоненти, които съставят DirectX фондация слой:

Microsoft DirectDraw

В Microsoft DirectDraw API подкрепя изключително бърз, директен достъп до ускорената хардуерни способности на видео адаптера на компютъра. Той поддържа стандартните методи за показване на графики на всички видео адаптери, и по-бързо, по-пряк достъп при използване на ускорена водачи. DirectDraw предвижда устройство, независим начин за програми, като например игри и двуизмерен (2-D) графични пакети и Windows компоненти на системата, като цифрови видео кодеци, да получат достъп до характеристиките на специфични устройства за дисплей, без да изисква допълнителни информация от потребителите за възможностите на device' на.

Microsoft Direct3D Незабавно режим

В Microsoft Direct3D Незабавно Режим API (Direct3D) осигурява връзката с 3-D функции прави, вградена в повечето нови видео карти. Direct3D е на ниско ниво 3-D API, което предоставя на устройството-независим начин за представяне на кандидатури за комуникация с ускорител хардуер ефективно и мощно.

Direct3D предвижда разработчиците на приложения с много допълнителни функции, като например:

  1. Превключване дълбочина глупак (като се използва Z-буфер, или W-буфер)
  2. Плоско и Gouraud оцветяване
  3. Множество светлини и светлина видове
  4. Пълен материал и подкрепа текстура
  5. Здрав софтуерни драйвери съревнование
  6. Преобразуване и ножици
  7. Хардуер независимост
  8. Пълно хардуерно ускорение на Windows 2000 (когато съответните драйвери на устройства са на разположение)
  9. Вградени в подкрепа за специализирана инструкция определя CPU, включително MMX на Intel и Pentium III архитектури и 3DNow! архитектура

Microsoft DirectSound

В Microsoft DirectSound API осигурява връзка между програмите и аудио адаптер """'' и доброто смесване и възпроизвеждане способности. Той също така дава възможност на вълната доброто заснемане и възпроизвеждане. DirectSound предвижда мултимедийни приложения с ниска латентност смесване, хардуерно ускорение, както и директен достъп до звуковата. Тя предоставя тази възможност като същевременно се запази съвместимостта със съществуващите драйвери за устройства.

Microsoft DirectMusic

В Microsoft DirectMusic API е музикален компонент на DirectX. За разлика от DirectSound API, което улавя и възпроизвежда цифров звук проби, DirectMusic работи с послание базирани музикални данни, че се превръща в цифров звук чрез звуковата карта или от неговия вграден софтуер синтезатор. Наред със своята подкрепа на включване в музикален инструмент цифров интерфейс (MIDI) формат, DirectMusic предвижда разработчиците на приложения възможности за създаване на потапяне, динамичен саундтрак, които отговарят на приноса на потребителите.

Microsoft s =

В Microsoft s = API предвижда разширено вход за игри и процеси, информация от джойстици, както и други свързани устройства, включително на мишка, клавиатура, както и други контролери игра, като контролери силите обратна връзка игра.

В DirectX Media слой работи с DirectX слой Фондацията да осигури високо равнище услуги, които поддържат анимация, медии стрийминг (предаване и гледане на видео и аудио, тъй като се изтегля по интернет), и интерактивност. Подобно на DirectX слой фондация, на DirectX Media слой се състои от няколко интегрирани компоненти, които включват:

Microsoft Direct3D Неразпределени Режим

В Microsoft Direct3D Неразпределени Режим API предвижда по-високо ниво подкрепа за напреднали, в реално време, триизмерни (3D) графика. Direct3D Неразпределени Режим предоставя вградена поддръжка за графични техники, като йерархии и анимация. Direct3D Неразпределени режим е построена на върха на Direct3D Незабавно режим.

Microsoft DirectAnimation

В Microsoft DirectAnimation API предвижда интеграция и анимация за различни видове медии, като двумерен изображения, триизмерни обекти, звуци, филми, текст и векторна графика.

Microsoft DirectPlay

В Microsoft DirectPlay API подкрепя игра връзки чрез модем, интернет или локална мрежа. DirectPlay опростява достъпа до комуникационни услуги и предоставя начин за игра да комуникират помежду си, независимо от извършените протокол, или онлайн услуга.

Microsoft DirectShow

В Microsoft DirectShow API играе мултимедийни файлове, разположени в локални файлове или на интернет базирани сървъри, както и улавя мултимедийни потоци от устройства, като например видео карти плен. DirectShow възпроизвежда видео и аудио съдържание сгъстен в различни формати, включително MPEG, аудио парчета видео (AVI) и WAV.

Microsoft DirectX трансформация

В Microsoft DirectX API позволява трансформация прилагане на разработчиците да създават, стимулирам, и редактиране на цифрови изображения. DirectX трансформация работи както с двумерните (2-D) изображения и триизмерни (3D) изображения, които могат да бъдат използвани за създаване на самостоятелни програми или динамичен плъгини за уеб графика.

Преди пускането на Windows 95, повечето игри са били освободени за платформата DOS, обикновено се използва нещо като DOS4GW или някои други 32-битови DOS Продължавам да получат достъп до 32-битов защитен режим. Windows 95, обаче, като че ли поставя началото на края на DOS бърз. Игра разработчик започва да се чуди как те щяха да пишат игри оптимално което ще се извършва под Windows 95 - игри обикновено трябва да се движи в режим на цял екран, и трябва да се възможно най-близо до вашия хардуер. Windows 95 като че ли се "Първи в начина, по който" на това. DOS ги е разрешено да програма "в близост до метал", както е възможно, т.е. да прави с хардуера, без да минава през слоеве на абстракция и капсулиране. В тези дни, допълнително режийни на общ API щеше да направи играта прекалено бавен.

Така че отговорът на Microsoft на този проблем е Software Development Kit (SDK), наречена DirectX. DirectX е ужасно, clunky, лошо проектирани, слабо документирани, ояден, грозна, объркващи звяра (*) на API (Application Programming интерфейс), който е управлявал много програмисти да пие. Той първоначално е бил закупен от компанията в Лондон призова RenderMorphics и тихо освобождава повече или по-малко, както е DirectX 2. DirectX 3 вероятно е първата "сериозна" освобождаване от "Майкрософт", който сега започва активно да се плъзгат като игра програмиране API на бъдещето. Като най-голямата софтуерна компания на планетата, и е на разработчиците на операционната система, че около 90% от потребителите са използвали компютър, те не успяват. Хардуер продавачите бързо разбра, че след водят Microsoft е разумно да направя нещо, и всеки започва да произвежда DirectX драйвери за техния хардуер. В много отношения това е нещо добро за разработчиците на игри.

Много подобрения са направени на оригиналния DirectX. Така например, документацията не суче толкова, колкото първоначално направих. Някои от неподходящи части от оригинала API са почистване и подобрена. Някои от наистина лошо проектирани части на оригиналния API са били отстранени.

Каква е целта на DirecX

Една от основните цели на DirectX е да се осигури стандартен начин за достъп до много различни хардуерни устройства, патентовани. Например, Direct3D предоставя "Стандарт" програмният интерфейс, който може да се използва за достъп до 3D функции хардуерно ускорение на почти всички 3D карти на пазара, които са Direct3D шофьори, написани за тях. На теория това е трябвало да се даде възможност за една заявка за прозрачно тече, тъй като се предполага, че в широк разнообразие от хардуерни конфигурации. На практика, това обикновено не е това просто.

Една от причините за това не е толкова просто, е, че хардуера (като 3D графики ускорители), обикновено поддържат само един набор от функции, налични в DirectX, и вие наистина не искате да използвате черта, ако не е на разположение в някакъв хардуер ускорена форма. За да разберете кои функции са достъпни, което трябва да Запитване устройство за списък от възможности, и не може да има много от these.The DirectX API е предназначена предимно за писане на игри, но може да се използва и в други видове приложения, както добре. В API в момента има пет основни секции:

DirectX компоненти

Компонент Описание
DirectDraw 2 тримерна графика способности, повърхнини, двойно буфериране и т.н.
Direct3D Сравнително широко функционални 3D графика API програмиране.
DirectSound Звук; 3D звук
DirectPlay Опростява за развитие на мрежата игра
S = Обработва информация от различните периферни устройства

Освен това, DirectX 6 въвежда нещо, наречено DirectMusic, които е трябвало да направи по-лесно за разработчиците на игри да се включи музика в игрите си, така че настроението на музиката се променя в зависимост от типа на действие се случва в играта.

DirectX изпълнение и хардуерното ускорение

Въпреки, че изпълнението на Direct3D в областта на софтуера само не е прекалено изтъркан, че не го отрежете доста сериозни игри. DirectX е проектирана с хардуерно ускорение на ума. Той се опитва да осигури възможно най-ниски ниво на достъп до хардуера, а останалите все още общ интерфейс. Разрешаването на функции като 3D триъгълник рисунка да се извършва на графични карти освобождава капацитета на процесора (централен процесор), за да правя други неща. Типични Direct3D хардуерни ускорители, ще имат поне 4 или за предпочитане 16 или повече мегабайта на борда на RAM за съхранение на текстури карти (растерни изображения, съставени от малки точки, наречен "пиксели"), текстури, Sprites, наслоявания и др.

DirectDraw и Direct3D са изградени като един сравнително тънък слой над хардуер, като се използва това, което се нарича DirectDraw "хардуер абстракция слой" (HAL). За функционалност не са предвидени от някои карти, еквивалентен софтуер изпълнението ще се осъществява чрез "слой хардуер съревнование" (HEL).

DirectX и COM

Наборът от модули DirectX са изградени като COM (Component Object Model) обекти. COM е поредното грозно разбити интерфейс от Microsoft - макар и по-новите версии на COM не суче толкова, колкото по-ранните превъплъщения. Не ме разбирайте погрешно, аз не съм против съществуването на нещо, което прави това, което се COM - но изпълнението оставя много да се желае. Във всеки случай, един обект COM е малко като C + клас +, тъй като се капсулира един набор от методи и атрибути в един модул, и с това, че предоставя kludgy вид наследство модел, при които един COM обект може да бъде построена, за да оказва подкрепа на всички методите за това е майка обект, а след това добавете още малко.

Не е нужно да се знае много за COM да се използва DirectX, така че не се тревожи твърде много за него. Така ли малко неща COM когато инициализиране на обектите и да ги почистване, и при проверка се връщат стойности на функция разговори, но това е повече или по-малко тя.

Тагове: , , , , , ,

Като това, което виждате?

Станете един от редовна войска, като се абонирате! Вие ще бъдете първите, които знаят, когато добавите още много постове просто така. Присъедини се от или RSS Feeds или имейли с актуализации днес!

Няма коментари за тази публикация. Можете да проследите коментарите към този пост чрез RSS 2.0 емисия . Можете да прескочите до края и оставите коментар или TrackBack от вашия собствен сайт.


Вашият коментар

Трябва да сте влезли в За да публикувате коментар.