DirectX

**DirectX** — գրադարանների հավաքածու, որը նախատեսված է Windows օպերացիոն համակարգի գրաֆիկական բաղկացուցիչների համար։ Այն հանդիսանում է առանձին գրաֆիկական գրադարանների – Direct3D, DirectDraw, DirectMusic, DirectPlay, DirectSound միավորումը, և մեծապես կիրառվում է համակարգչային խաղերում և գրաֆիկական ծրագրերում, ինչպես նաև Մայքրոսոֆթի այլ նախագծերում, ինչպիսիք են Xbox-ը, որի X տառը սերում է հենց DirectX-ի վերջավորությունից։

DirectX–ի ծրագրերի զարգացման հավաքածուն (Software Development Kit, SDK) ներառում է անհրաժեշտ գրադարաններ, գլխամասային ֆայլեր և ծրագրային օրինակներ։ Գրադարանները ի սկզբանե նախատեսված էին որպես DirectX-ով գրված ծրագրերին անհրաժեշտ ուղեկցող ֆայլեր։ Մինչև Windows 8–ի թողարկումը DirectX-ի ստեղծման հավաքածուն տրամադրվում էր անվճար ներբեռնման համար, ապա ինտեգրվել է Windows–ի ծրագրերի ստեղծման հավաքածույին։

## Պատմություն
Դեռևս 1994 թվականին, երբ Մայքրոսոֆթը պատրաստվում էր թողարկել իր հաջորդ, Windows 95 օպերացիոն համակարգը, կարևոր էր համարում այն հատկանիշը, որպեսզի օգտատերերը կարողանան աշխատել այն ծրագրերով, որոնք ստեղծված էին ավելի հին Windows–ի տարբերակների վրա։ Մայքրոսոֆթի աշխատակից Ալեքս Ստ․ Ջոնը խաղեր ստեղծող տարբեր ծրագրավորողների հետ քննարկմանը հարցրել է թե ինչպես են նրանք տեղափոխելու MS-DOS–ով գրված խաղերը դեպի Windows 95, և որպես պատասխան ստացել բացասական կարծիքներ, քանզի օպերացիոն համակարգը անհրաժեշտ հասանելիություն չուներ MS-DOS-ի և առհասարակ BIOS-ի ֆունկցիաներին և ուղիղ ապարատային սարքավորումներին։ Կային նաև սուր մտահոգություններ համատեղելիության մասին․ որպես օրինակ կարելի է վերցնել «Դիսնեյի Անիմացիոն Պատմությունների» գրքի «Առյուծ Արքա»–ի մասին խաղը, որը հիմնված էր WinG գրադարանի վրա։ Compaq ընկերության բազմաթիվ անհամատեղելի և WinG գրադարանով ոչ թեստավորված դրայվերների առկայությունը առաջացնում էր այնքան շատ խնդիրներ, որոնք ուղղակի անհնարին էին դարձնում խաղալը և հեղեղում էին Դիսնեյի սպասարկման թեժ գծերը։

Ստ․ Ջոնը հասկանալով խաղային անհամատեղելիության խնդիրները, վարձեց երկու ինժեներ–ծրագրավորողներ Կրեյգ Էյսլերին և Էրիկ Էնգստրոմին, որոնց հետ միասին սկսեցին աշխատել «Մանհեթենյան Նախագիծ» անվանումով նախագծի վրա։ Այն անվանված էր Երկրորդ համաշխարհային պատերազմի Մանհեթենյան նախագծի պատվին, որպեսզի ճապոնացիների կողմից մշակած խաղային կոնսոլները փոխարինվեն Մայքրոսոֆթի օպերացիոն համակարգով աշխատող անհատական համակարգիչներով։ Սկզբում որպես նախագծի պատկերանշան օգտավործվում էր ռադիացիայի նշանը, սակայն Մայքրոսոֆթը թիմին խնդրեց փոխել նշանը, ինչի արդյունքում այն փոխարինվեց ուղղաթիռի պտուտակի նշանով։ Ղեկավարությունը համաձայն չէր այս նախագծի իրագործմանը, քանզի նրանք արդեն հրաժարվել էին Windows-ից որպես խաղային հարթակ, թեպետ երեքն էլ պարտավորվել էին զարգացնել նախագիծը: Թիմի ըմբոստ բնույթը դրդեց Բրեդ Սիլվերբերգին ՝ Մայքրոսոֆթի գրասենյակային արտադրանքի ավագ փոխնախագահին, եռյակին անվանել «Հրեշավոր տղաներ» (Beastie Boys):

Աշխատանքի մեծամասնությունը հանդիսանում էր 1994 թվականի վերջերին ստեղծված նմանատիպ նախագծերի միավորումը, և 4 ամսվա ընթացքում, տարբեր մատակարարների ծրագրային ներդրումների շնորհիվ թիմը ստեղծեց առաջին ծրագրերի ստեղծման հավաքածուները (API-ները), որոնք ներկայացվել էին 1995 թվականին Սան Ֆրանցիսկո քաղաքում անցկացվող Խաղային Ծրագրավորողների (GDC) կոնֆերենցիային։ API-ների մեջ ներկայացված էին DirectDraw–ը, որը բիթերով քարտեզագրված (bit-mapped) գրաֆիկա էր տրամադրում, DirectSound–ը՝ աուդիոյի հետ աշխատանքի համար, և DirectPlay–ը՝ ցանցով խաղացողների փոխկապակցման համար։

Գրադարանների «Direct» նախդիրը առաջացել էր այն պատճառով, որ գրադարանները շրջանցում էին Windows 95–ի համակարգային ֆունկցիաները և դիմում էին ապարատային ռեսուրսներին՝ Ապարատային Աբստրակցիայի Շերտով (Hardware Abstraction Layer, HAL), իսկ հենց «DirectX» անվանումը ստեղծվել էր մի լրագրողի կողմից, որը ընդհանրացրած կերպով ներկայացրել էր գրադարանները իր հոդվածում։ Թիմը նույնպես օգտագործեց այդ անվանումը, և հետագայում գրադարանների կազմը անվանվեց DirectX։

Առաջին DirectX-ը գործադրվեց նույն թվականի սեպտեմբերին «Windows Game SDK» անվան տակ։ Իր DirectDraw բաղկացուցիչը հանդիսանում է Windows 95-ում Win32-ի նկարչական և Windows 3.1–ի WinG գրադարանների փոխարինիչը։ Սկսած Windows 95–ից DirectX–ը բոլոր հետագա Windows–ի տարբերակների համար թույլատրեց օգտագործել բարձր մակարդակի մուլտիմեդիան։ Կրեյգ Էյսլերը անգամ իր բլոգում նկարագրել էր DirectX–ի 1–5 տարբերակների մոլեգնության մասին։ DirectX–ը ավելի շատ ծրագրավորողներին օգտագործելու դրդելու համար Մայքրոսոֆթը id Software–ի ծրագրավորող Ջոն Կարմակին առաջարկեց պորտավորել Doom և Doom 2 խաղերը MS-DOS–ից դեպի DirectX գրադարաններ՝ անվճար և առանց խաղային իրավունքների փոխանցման։ Կարմակը համաձայնվեց և պորտավորման նախագիծը ղեկավարում էր Գեյբ Նյուելը։ Արդյունքում պորտավորված խաղը 1996 թվականի օգոստոսին թողարկվեց որպես Doom 95, և հանդիսացավ DirectX–ով գրված առաջին խաղը։ Մայքրոսոֆթը գովազդում էր խաղը բավականին մեծ մասշտաբնելով, և անգամ խաղը գովազդվել է Բիլ Գեյթսի մասնակցությամբ։ 

DirectX-ը նաև հիմք է հանդիսանում Xbox API-ի համար. Xbox API-ն ձևավորվել էր Մայքրոսոֆթի և Նվիդիայի հետ համագործակցությամբ, որը նաև ստեղծել էր վիդեոքարտ օրիգինալ Xbox–ի համար։ Այն համաձայնեցված է DirectX 8.1-ի հետ, որը ի տարբերություն սովորական տարբերակների, թարմացվող չի հանդիսանում ապարատային առանձնահատկությունների պատճառով։ 

Մինչ DirectX–ի ստեղծումը, Microsoft-ը ներառել էր OpenGL-ը Windows NT օպերացիան համակարգում։ OpenGL–ը բազմահարթակային և օպերացիոն համակարգից անկախ համակարգ է, որը ստեղծվել է Silicon Graphics–ի կողմից՝ եռաչափ գրաֆիկան (3D) ծրագրավորման մեջ ներդնելու համար։ Դրանից զատ, OpenGL–ը նաև սպասարկում է 2D գրաֆիկա, որը ղեկավարվում էր Ճարտարապետական Վերանայման Խորհրդի կողմից (Architectural Review Board, ARB), որը ներառել էր նաև Մայքրոսոֆթը։ Direct3D դարձավ OpenGL-ի փոխարինող խաղային ոլորտում։ Այստեղից էլ սկսում է «սրբազան պատերազմը» OpenGL-ի և Direct3D-ի միջև․ ըստ էության, ամեն ծրագրավորող կարող էր օգտագործել իր նախընտրած գրադարանը։ Եթե ծրագիրը օգտագործում էր OpenGL, այն օգտագործում էր հենց OpenGL–ի գրադարանները, չնայած նրան որ OpenGL–ը չունի Direct3D–ին բնորոշ հատկությունները, ինչպիսիք են ջոյսթիկների և ձայնի սպասարկումը։

Ի սկզբանե ուղղվածություն ունենալով դեպի խաղերի ստեղծումը, DirectX ը հայտնի է դարձել խաղային ոլորտից դուրս ծրագրերի զարգացման գործում․ օրինակ, DirectX-ը, OpenGL-ի հետ միասին տարածում գտավ ինժեներական և մաթեմատիկական ծրագրային ապահովման մեջ։ Նաև DirectX–ի հիման վրա առկա են մոնտաժային, ֆոտոփոփոխման և այլ ծրագրեր, ինչպիսիք են Adobe Premiere Pro-ն և Adobe Photoshop-ը։

2002 թ․ Microsoft-ը թողարկեց DirectX 9-ը, շեյդերային մակարդակի 2.0 տարբերակով և մի շարք այլ թարմացումներով։ DirectX-ը չբավարարվեց մեկ անգամյա թարմացումով․ 2004 թ․ օգոստոսին DirectX-ում ավելացվեց շեյդերների 3.0 մակարդակի աջակցությունը (DirectX 9.0c)։ Մինչ օրս DirectX 9–ը հանդիսանում է 2000–ականների կեսերի խաղերի ճնշող մեծամասնության հիմքը։

2005 թ․ ապրիլին DirectShow-ի ինտերֆեյսը տեղափոխվեց Microsoft Platform SDK։

2018 թ․ հայտարարվեց ճառագայթային հետագծման (Ray Tracing) սպասարկումը, և ներկայացվել որպես DXGI։ HLSL–ից SPIR-V վերափոխման սպասարկումը ներկայացվեց նույն թվականին։

## Ժամանակացույց

## Համատեղելիություն
Շատ ժամանակակից սարքեր պետք է DirectX-ը համատեղեն դրայվերների հետ, այլ կերպ ասած, օգտագործողը պետք է տեղադրի DirectX-ը, որպեսզի կարողանա օգտագործել բոլոր հնարավորությունները։ Ներկա պահին դրայվերների թարմացնելու ծրագիրը և Windows Update-ը, հնարավորություն են տալիս ներբեռնել անհրաժեշտ գրադարանները, դրայվերները ներբեռնելու փոխարեն։

Հետևյալ ցանկում ներկայացված են հիմնական օպերացիոն համակարգերը, որոնք համատեղելի են DirectX-ի հետ։
* Windows 95/98/98 SE/ME,
* Windows NT 4.0, Windows 2000, Windows 2000 Advanced Server, Windows 2000 Professional Edition, Windows 2000 Server, Windows 2000 Սպասարկման փաթեթ 2, Windows 2000 Սպասարկման փաթեթ 3, Windows 2000 Սպասարկման փաթեթ 4,
* Windows Server 2003, Windows Server 2003 Սպասարկման փաթեթ 1, Windows Server 2003 Datacenter x64 Edition, Windows Server 2003 Enterprise x64 Edition, Windows Server 2003 Standard x64 Edition, Windows Small Business Server 2003,
* Windows XP, Windows XP 64-bit, Windows XP Home Edition, Windows XP Media Center Edition, Windows XP Professional Edition, Windows XP Service Pack 1, Windows XP Service Pack 2, Windows XP Service Pack 3, Windows XP Starter Edition, Windows XP Tablet PC Edition,
* Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10,
* Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2016.

## Ծանոթագրություններ

Կատեգորիա:API
Կատեգորիա:DirectX
Կատեգորիա:Windows API
Կատեգորիա:Գրաֆիկական գրադարաններ