DirectInput - DirectInput

Hisoblashda, DirectInput meros[1] Microsoft API orqali kompyuter foydalanuvchisidan ma'lumotlarni yig'ish uchun kirish moslamalari kabi sichqoncha, klaviatura yoki a geympad. Shuningdek, u tizimni taqdim etadi harakatlar xaritasi, bu foydalanuvchiga kirish qurilmalarining tugmachalari va o'qlariga o'yin davomida aniq harakatlarni belgilashga imkon beradi. Bundan tashqari, u ishlaydi haptik teskari aloqa (kirish / chiqish) qurilmalari. Microsoft XInput deb nomlangan yangi kirish kutubxonasini taqdim etdi Xbox 360 tekshiruvi.

DirectInput va XInput odatdagi Win32 kirish hodisalariga nisbatan foyda keltiradi:

  • ular dastur orqa fonda bo'lsa ham, kirish qurilmalaridan ma'lumotlarni olish uchun dasturga imkon beradi
  • ular har qanday turdagi kirish moslamalarini, shuningdek uchun to'liq qo'llab-quvvatlaydilar haptik teskari aloqa
  • orqali harakatlar xaritasi, dasturlar ushbu ma'lumotni qanday qurilmaning yaratganligini bilishni talab qilmasdan kirish ma'lumotlarini olishlari mumkin

DirectInput ning qismini tashkil etadi DirectX kutubxonasi, DirectX 8 (2001-2002) dan beri u jiddiy qayta ko'rib chiqilmagan. Microsoft yangi dasturlarga quyidagilaridan foydalanishni tavsiya qiladi Windows xabarlar davri DirectInput o'rniga klaviatura va sichqoncha kiritish uchun (Meltdown 2005 slayd-shousida ko'rsatilganidek)[2]va Xbox 360 tekshirgichlari uchun DirectInput o'rniga XInput-dan foydalanish.

Tarix

DirectX-ga 1.0-versiyadan (1995) DirectInput kiritilgan. Dastlab u faqat joystiklar uchun haqiqiy qo'llab-quvvatlashni taklif qildi, chunki sichqoncha va klaviatura modullari oddiygina ta'minlangan o'rash standartga muvofiq Win32 API. DirectX 3.0 versiyasi (1996) klaviatura va sichqonchani qo'llab-quvvatladi; shuningdek, joystikni qo'llab-quvvatlash yaxshilandi. DirectX 5.0 (1997) ga joystik qo'llab-quvvatlanishi, shu jumladan haptik teskari aloqa qo'shish, tugmalar sonini ko'paytirish, asosiy qurilma drayveri modelini o'zgartirish va MAQOMOTI asoslangan API. Sichqonchani qo'llab-quvvatlashi ko'rilgan tugmalar sonini to'rtdan sakkiztaga oshirdi. DirectX 7.0 (1999-) da DirectInput uzoq vaqtdan beri va'da qilingan xususiyatni qo'shib qo'ydi, bu alohida sichqonlarni individual joystiklar singari ko'rish, ammo bu xususiyat keyinchalik chiqarilgan bilan ishlamadi. Windows XP, hatto 2010 yilga kelib u Windows 98 / Me va DirectX 9. bilan ishlaydi, DirectX 8.0 (2000), katta o'zgarishlarga ega bo'lgan so'nggi versiya, xaritalarni xaritalash va har xil turdagi qurilmalarni yanada kengroq qo'llab-quvvatlashni o'z ichiga olgan.

Dastlab Microsoft DirectInput barcha kirishlar bilan ishlashini niyat qilgan bo'lsa-da, bu shunday bo'lmadi. 2011 yildan boshlab Microsoft klaviatura yoki sichqonlar uchun DirectInput-dan foydalanishni tavsiya etmaydi va Xbox 360 tekshirgichlari uchun yangi XInput-ni surishni boshladi.[3] Yilda Windows Vista, Windows 7 va undan keyingi Windows versiyalari, ichki xaritalarni xaritalash interfeysi o'chirildi.[4] Windows Store ilovalari uchun DirectInput mavjud emas.

XInput

XInput,[5] an API "keyingi avlod" kontrollerlari uchun 2005 yil dekabrida ishga tushirilishi bilan birga taqdim etilgan Xbox 360. Ushbu ko'rsatma Xbox 360 tekshirgichlarini to'liq qo'llab-quvvatladi Windows XP SP1 va undan keyingi operatsion tizimlar va Microsoft tomonidan dasturlash osonroq va DirectInput-ga qaraganda kamroq sozlashni talab qiluvchi sifatida tavsiflanadi. XInput mos keladi DirectX 9 va undan keyingi versiyalari.

Xbox 360 Controller-ni qo'llab-quvvatlash

An Xbox 360 tekshiruvi, standart Microsoft drayveri bilan DirectInput bilan XInput bilan taqqoslaganda quyidagi cheklovlar mavjud:

  • chap va o'ng tirgaklar mustaqil analog o'qlar sifatida emas, balki triggerlar orasidagi imzolangan farqni ifodalovchi bitta eksa vazifasini bajaradi
  • tebranish effektlari ishlamaydi
  • eshitish vositasi uchun so'rov ishlamaydi

Dan foydalansangiz, ushbu cheklovlarning hech biri mavjud emas Xbox 360 tekshiruvi XInput bilan.[6]

Vibratsiyali effektlar ishlamaydi Xbox One Controller.

Ga binoan MSDN, "DirectInput-da chap va o'ng triggerlarning kombinatsiyasi dizaynga muvofiq. O'yinlar har doim DirectInput qurilmasining o'qlari foydalanuvchi bilan o'zaro aloqasi bo'lmagan paytda markazlashtiriladi deb taxmin qilishgan. Biroq, Xbox 360 tekshiruvi minimal qiymatni ro'yxatdan o'tkazish uchun yaratilgan Triggerlar ushlab turilmasa, markaz. " MSDN triggerlarni birlashtirishning "echimi" ni taklif qildi, bir triggerni ijobiy tomonga, ikkinchisini salbiy tomonga o'rnatdi, shuning uchun hech qanday foydalanuvchi o'zaro aloqasi markazda joylashgan "boshqaruv" ning DirectInput-ga ishora qilmaydi.[7]

Biroq, yuqorida keltirilgan ko'plab DirectInput tekshirgichlari kabi haqiqatni e'tiborsiz qoldiradi geympadlar ikkita analog tayoq bilan va poyga g'ildiragi kontroller to'plamlari, allaqachon xaritani ishga tushiradigan va pedallar mustaqil ravishda. Bundan tashqari, ko'plab DirectInput qurilmalari ham tebranish effektlariga ega. Kamida bitta haydovchi, XBCD, Xbox 360 kontrollerlariga DirectInput orqali tebranish yordamini, o'lik zonalarni va (ixtiyoriy ravishda) mustaqil triggerlarni beradi.[iqtibos kerak ] Bu shuni ko'rsatadiki, Microsoft-ning Xbox 360 tekshiruvi drayveri qasddan DirectInput va XInput API-lari o'rtasidagi farq tufayli emas, balki zaifroq DirectInput qo'llab-quvvatlashiga ega. Boshqa tomondan, Xbox 360 tekshiruvi va XInput faqat tebranish motorlarini boshqarishni qo'llab-quvvatlaydi[8][9] DirectInput tomonidan qo'llab-quvvatlanadigan turli effektlarning ajoyib palitrasidan farqli o'laroq.[10]

DirectInput va XInput

Microsoft DirectX 8-dan beri DirectInput-da hech qanday katta o'zgarishlarni amalga oshirmadi va XInput-ni keyinchalik DirectX 9-da taqdim etdi: ikkita API-ning hozirgi holati va kelajagi to'g'risida biroz chalkashliklar mavjud.

XInput API, shuningdek, 2010 yilga kelib DirectInput-da bo'lmagan cheklovlarga ega:

  • XInput faqat "keyingi avlod" tekshirgichlarini qo'llab-quvvatlaydi. Bu, asosan, Windows drayverlarga ega bo'lgan Xbox 360 uchun tekshirgichlar bilan cheklanadi. Eski Windows tekshirgichlari, joystiklar va umumiy haptik teskari aloqa moslamalari qo'llab-quvvatlanmaydi.
  • XInput bir vaqtning o'zida maksimal to'rtta tekshirgichni qo'llab-quvvatlaydi. Bu Xbox limiti, unga o'tkaziladi Windows. Garchi 2010 yilga kelib bir nechta kompyuter o'yinlari bir vaqtning o'zida to'rtdan ortiq tekshirgichni talab qiladi, DirectInput-ning o'zi bunday cheklovga ega emas.
  • XInput klaviatura, sichqoncha yoki sichqoncha turidagi qurilmalarni qo'llab-quvvatlamaydi. Bu Microsoft-ning DirectInput-ni ushbu qurilmalar bilan ishlatmaslik haqidagi tavsiyasini aks ettirsa ham,[11] dasturchilar ushbu qurilmalar bilan DirectInput-dan foydalanishlari mumkin.
  • XInput har bir tekshirgich uchun maksimal 4 o'qi, 10 tugmachasi, 2 tirgovichni va 8 yo'nalishli raqamli maydonchani qo'llab-quvvatlaydi, DirectInput-ning 8 o'qi, 128 tugmasi va to'liq masofali POV-ni qo'llab-quvvatlashi bilan taqqoslaganda. (XInput-ni qo'llab-quvvatlaydigan o'qlar, tugmalar va tirgaklar soni to'g'ridan-to'g'ri Xbox 360 tekshirgichiga to'g'ri keladi.)

XInput-ning DirectInput-dan afzalligi:

2011 yildan boshlab XInput Xbox 360 tekshirgichlari uchun, DirectInput har qanday tekshirgichlar uchun, Windows 8 bilan ta'minlangan XInput 1.4 da eshitish moslamalari uchun so'rovlarni qo'llab-quvvatlash qayta tiklandi.[13]

Adabiyotlar

  1. ^ https://docs.microsoft.com/previous-versions/windows/desktop/ee416842(v=vs.85)
  2. ^ "Meltdown 2005 slayd-shousi (.zip)". Asl nusxasidan arxivlandi 2015-05-21. Olingan 2012-11-13.CS1 maint: BOT: original-url holati noma'lum (havola)
  3. ^ "Yuqori aniqlikdagi sichqoncha harakati afzalliklaridan foydalanish". MSDN. Microsoft. Olingan 2009-01-25.
  4. ^ "Windows Vista-dagi DirectInput ConfigureDevices". Web.archive.org. 2008-12-27. Arxivlandi asl nusxasi 2008 yil 27 dekabrda. Olingan 2012-11-13.
  5. ^ http://msdn.microsoft.com/en-us/library/windows/desktop/ee417014(v=vs.85).aspx
  6. ^ http://msdn.microsoft.com/en-us/library/windows/desktop/ee417014(v=vs.85).aspx
  7. ^ "XInput va DirectInput". Microsoft. 2012-09-17. Olingan 2012-12-27.
  8. ^ "Gamepad - Rumbler nazorati". Free60 loyihasi. Arxivlandi asl nusxasi 2009-03-13. Olingan 2009-01-25.
  9. ^ "XINPUT_VIBRATION". Msdn.microsoft.com. Olingan 2009-01-25.
  10. ^ "QARASH". MSDN. Microsoft. Olingan 2009-01-25.
  11. ^ "DirectInput". MSDN. Microsoft. Olingan 2010-05-30.
  12. ^ https://msdn.microsoft.com/en-us/library/windows/desktop/ee417014(v=vs.85).aspx
  13. ^ "XInputGetAudioDeviceIds funktsiyasi". MSDN. Olingan 10 dekabr 2013.

Tashqi havolalar