Knowledge

DirectInput

Source 📝

206:, "the combination of the left and right triggers in DirectInput is by design. Games have always assumed that DirectInput device axes are centered when there is no user interaction with the device. However, the Xbox 360 controller was designed to register minimum value, not center, when the triggers are not being held." MSDN proffered the "solution" of combining the triggers, setting one trigger to a positive direction and the other to a negative direction, so no user interaction is indicative to DirectInput of the "control" being at center. 221:
independently. In addition, many DirectInput devices also have vibration effects. At least one 3rd-party driver, XBCD, gives the Xbox 360 controllers the vibration support, dead zones and (optionally) independent analog/digital triggers through DirectInput its XInput driver possesses. This suggests
126:. DirectX version 3.0 (1996) added support for keyboards and mice; it also improved joystick support. DirectX 5.0 (1997) included greatly improved joystick support, including adding haptic feedback, increasing the number of buttons, changing the underlying device-driver model and incorporating a 226:
weaker DirectInput support, rather than due to any differences between DirectInput and XInput APIs. On the other hand, Xbox 360 controllers using XInput support only very basic control of vibration motors in contrast with greater palette of effects supported via DirectInput.
134:. Mouse support also increased the number of buttons seen from four to eight. In DirectX 7.0 (1999- ), DirectInput added a long-promised feature of seeing individual mice much like individual joysticks, but the feature didn't work with the later released 141:
While Microsoft initially intended that DirectInput would handle all inputs, this didn't work out. As of 2011 Microsoft no longer recommends using DirectInput for keyboards or mice, and has started pushing the newer XInput for Xbox 360 controllers. In
298:
GameInput is the recommended API for all new code, regardless of the target platform, because it provides support across all Microsoft platforms (including earlier versions of Windows), and provides superior performance versus legacy
138:, even though as of 2010 it works with Windows 98/Me and DirectX 9. DirectX 8.0 (2000), the last version with major changes, included action mapping and broader support for different types of devices. 586: 110:
for keyboard and mouse input instead of DirectInput (as indicated in the Meltdown 2005 slideshow), and to use GameInput instead of DirectInput and other legacy APIs, such as XInput, for controllers.
258: 170:
SP1 and subsequent operating systems, and is described by Microsoft as being easier to program for and requiring less setup than DirectInput. XInput is compatible with
118:
DirectX included DirectInput from version 1.0 (1995). It initially offered true support only for joysticks, as the mouse and keyboard modules simply provided
279: 951: 336: 403: 545: 192:
the left and right triggers will act as a single axis representing the signed difference between the triggers, not as independent analog axis
926: 987: 106:
library, it has not been significantly revised since DirectX 8 (2001–2002). Microsoft recommends that new applications make use of the
31: 68:
which allows the user to assign specific actions within a game to the buttons and axes of the input devices. Additionally it handles
577: 150:
and later Windows versions, the in-built action mapping UI has been removed. DirectInput is not available for Windows Store apps.
946: 660: 1325: 1176: 936: 1035: 961: 1070: 375: 293: 1229: 1121: 1093: 1020: 696: 471: 1320: 1297: 131: 107: 1358: 1272: 992: 846: 1282: 655: 625: 389: 361: 244: 1374: 1315: 198:
querying for headset devices will not operate, XInput 1.4 as part of Windows 8 introduced Xbox headset support.
1186: 340: 85:
they enable an application to retrieve data from input devices even when the application is in the background
446: 1310: 1181: 1171: 1159: 570: 1422: 1335: 1287: 188:, with the default Microsoft driver, has the following limitations with DirectInput, compared to XInput: 1164: 931: 898: 732: 98:, applications can retrieve input data without needing to know what kind of device generated that input 1154: 956: 873: 650: 645: 620: 1083: 550: 425: 74:(input/output) devices. Microsoft introduced a new input library called XInput specifically for the 1131: 919: 883: 1417: 1402: 1379: 1126: 1116: 1050: 563: 70: 517: 496: 214: 1078: 1060: 1030: 888: 600: 162:
for "next generation" controllers, was introduced in December 2005 alongside the launch of the
127: 17: 1348: 1267: 1262: 1055: 815: 727: 630: 49: 1149: 851: 800: 701: 640: 8: 1224: 1207: 1108: 1015: 754: 311: 184: 75: 218: 795: 635: 1407: 1277: 1219: 1045: 825: 779: 273: 57: 1448: 878: 764: 759: 555: 475: 209:
The above, however, ignores the fact that many DirectInput controllers, such as
1239: 1098: 820: 691: 119: 53: 1442: 1353: 1343: 1257: 1141: 1010: 941: 774: 769: 390:"Comparison of XInput and DirectInput features - Win32 apps | Microsoft Docs" 362:"Comparison of XInput and DirectInput features - Win32 apps | Microsoft Docs" 143: 1412: 1397: 1305: 1040: 686: 681: 123: 81:
DirectInput and XInput provide benefits over normal Win32 input events:
1025: 966: 830: 749: 167: 135: 88:
they provide full support for any type of input device, as well as for
30:"XInput" redirects here. For the X Window System XInput extension, see 1427: 147: 42: 810: 610: 605: 163: 166:. This specification provided support for Xbox 360 controllers in 1252: 1247: 1212: 1088: 914: 856: 805: 722: 706: 450: 210: 171: 103: 61: 866: 739: 893: 982: 861: 665: 615: 203: 1191: 159: 45: 222:
that Microsoft's Xbox 360 controller driver was given
296:. p. GameInput introduction, "Getting started". 312:"Taking Advantage of High-Definition Mouse Movement" 585: 1440: 278:: CS1 maint: bot: original URL status unknown ( 447:"DirectInput ConfigureDevices in Windows Vista" 337:"DirectInput ConfigureDevices in Windows Vista" 48:for collecting input from a computer user, via 177: 571: 1230:Security Support Provider Interface (SSPI) 578: 564: 261:. Archived from the original on 2015-05-21 217:controller sets, already map triggers and 32:X Window System protocols and architecture 661:Windows Advanced Rasterization Platform 14: 1441: 656:DirectX Graphics Infrastructure (DXGI) 102:While DirectInput forms a part of the 559: 546:Microsoft's DirectInput documentation 24: 1122:Microsoft Foundation Classes (MFC) 1094:Distributed Component Object Model 404:"XInputGetAudioDeviceIds function" 195:vibration effects will not operate 25: 1460: 539: 474:. Free60 Project. Archived from 259:"Meltdown 2005 slideshow (.zip)" 64:. It also provides a system for 510: 489: 464: 439: 418: 1132:Windows Template Library (WTL) 396: 382: 368: 354: 329: 304: 286: 251: 237: 13: 1: 1127:Active Template Library (ATL) 847:Data Access Components (MDAC) 587:Microsoft APIs and frameworks 230: 339:. 2008-12-27. Archived from 213:with dual analog sticks and 7: 1423:Multilingual User Interface 1349:Dynamic Data Exchange (DDE) 472:"Gamepad - Rumbler Control" 178:Xbox 360 Controller support 10: 1465: 113: 29: 1388: 1367: 1334: 1296: 1238: 1200: 1140: 1107: 1069: 1001: 975: 907: 874:Extensible Storage Engine 839: 788: 715: 674: 651:Windows Imaging Component 646:Windows Image Acquisition 593: 153: 426:"XInput and DirectInput" 1418:Language Interface Pack 1403:Text Services Framework 1117:Framework Class Library 428:. Microsoft. 2012-09-17 376:"Overview of GameInput" 294:"Overview of GameInput" 1061:Common Log File System 889:Access Database Engine 601:Desktop Window Manager 551:XInput and DirectInput 1389:Text and multilingual 174:version 9 and later. 1375:Active Accessibility 641:Windows Color System 499:. Msdn.microsoft.com 343:on December 27, 2008 108:Windows message loop 1413:Input method editor 1225:Data Protection API 1016:Windows Script Host 755:Image Mastering API 185:Xbox 360 Controller 76:Xbox 360 controller 1311:Enterprise Library 1298:Software factories 1002:Administration and 932:Filtering Platform 733:Video Acceleration 497:"XINPUT_VIBRATION" 1436: 1435: 1408:Text Object Model 1220:Windows CardSpace 1046:Windows Installer 780:Video for Windows 453:on April 25, 2011 158:XInput, a legacy 16:(Redirected from 1456: 1021:WMI (extensions) 879:Entity Framework 765:Media Foundation 616:D3D (extensions) 580: 573: 566: 557: 556: 533: 532: 530: 529: 514: 508: 507: 505: 504: 493: 487: 486: 484: 483: 468: 462: 461: 459: 458: 449:. Archived from 443: 437: 436: 434: 433: 422: 416: 415: 413: 411: 400: 394: 393: 386: 380: 379: 372: 366: 365: 358: 352: 351: 349: 348: 333: 327: 326: 324: 323: 308: 302: 301: 290: 284: 283: 277: 269: 267: 266: 255: 249: 248: 241: 122:to the standard 21: 1464: 1463: 1459: 1458: 1457: 1455: 1454: 1453: 1439: 1438: 1437: 1432: 1390: 1384: 1363: 1330: 1292: 1234: 1196: 1136: 1103: 1071:Component model 1065: 1051:Error Reporting 1003: 997: 971: 903: 835: 826:SideBar Gadgets 784: 760:Managed DirectX 711: 670: 594:Graphics and UI 589: 584: 542: 537: 536: 527: 525: 516: 515: 511: 502: 500: 495: 494: 490: 481: 479: 470: 469: 465: 456: 454: 445: 444: 440: 431: 429: 424: 423: 419: 409: 407: 402: 401: 397: 388: 387: 383: 374: 373: 369: 360: 359: 355: 346: 344: 335: 334: 330: 321: 319: 310: 309: 305: 292: 291: 287: 271: 270: 264: 262: 257: 256: 252: 243: 242: 238: 233: 180: 156: 116: 90:haptic feedback 71:haptic feedback 66:action mapping, 35: 28: 23: 22: 15: 12: 11: 5: 1462: 1452: 1451: 1434: 1433: 1431: 1430: 1425: 1420: 1415: 1410: 1405: 1400: 1394: 1392: 1386: 1385: 1383: 1382: 1377: 1371: 1369: 1365: 1364: 1362: 1361: 1356: 1351: 1346: 1340: 1338: 1332: 1331: 1329: 1328: 1323: 1318: 1313: 1308: 1302: 1300: 1294: 1293: 1291: 1290: 1285: 1280: 1275: 1270: 1265: 1260: 1255: 1250: 1244: 1242: 1236: 1235: 1233: 1232: 1227: 1222: 1217: 1216: 1215: 1204: 1202: 1198: 1197: 1195: 1194: 1189: 1184: 1179: 1174: 1169: 1168: 1167: 1162: 1152: 1146: 1144: 1142:Device drivers 1138: 1137: 1135: 1134: 1129: 1124: 1119: 1113: 1111: 1105: 1104: 1102: 1101: 1099:.NET Framework 1096: 1091: 1086: 1081: 1075: 1073: 1067: 1066: 1064: 1063: 1058: 1053: 1048: 1043: 1038: 1033: 1031:Task Scheduler 1028: 1023: 1018: 1013: 1007: 1005: 999: 998: 996: 995: 990: 985: 979: 977: 973: 972: 970: 969: 964: 959: 954: 949: 944: 939: 934: 929: 927:Winsock Kernel 924: 923: 922: 911: 909: 905: 904: 902: 901: 896: 891: 886: 884:Sync Framework 881: 876: 871: 870: 869: 864: 859: 854: 843: 841: 837: 836: 834: 833: 828: 823: 818: 813: 808: 803: 798: 792: 790: 786: 785: 783: 782: 777: 772: 767: 762: 757: 752: 747: 742: 737: 736: 735: 730: 719: 717: 713: 712: 710: 709: 704: 699: 694: 692:DirectX plugin 689: 684: 678: 676: 672: 671: 669: 668: 663: 658: 653: 648: 643: 638: 633: 628: 623: 618: 613: 608: 603: 597: 595: 591: 590: 583: 582: 575: 568: 560: 554: 553: 548: 541: 540:External links 538: 535: 534: 509: 488: 463: 438: 417: 395: 381: 367: 353: 328: 303: 285: 250: 235: 234: 232: 229: 200: 199: 196: 193: 179: 176: 155: 152: 115: 112: 100: 99: 96:action mapping 92: 86: 37:In computing, 26: 9: 6: 4: 3: 2: 1461: 1450: 1447: 1446: 1444: 1429: 1426: 1424: 1421: 1419: 1416: 1414: 1411: 1409: 1406: 1404: 1401: 1399: 1396: 1395: 1393: 1387: 1381: 1380:UI Automation 1378: 1376: 1373: 1372: 1370: 1368:Accessibility 1366: 1360: 1357: 1355: 1352: 1350: 1347: 1345: 1342: 1341: 1339: 1337: 1333: 1327: 1324: 1322: 1319: 1317: 1314: 1312: 1309: 1307: 1304: 1303: 1301: 1299: 1295: 1289: 1286: 1284: 1281: 1279: 1276: 1274: 1271: 1269: 1266: 1264: 1261: 1259: 1256: 1254: 1251: 1249: 1246: 1245: 1243: 1241: 1237: 1231: 1228: 1226: 1223: 1221: 1218: 1214: 1211: 1210: 1209: 1206: 1205: 1203: 1199: 1193: 1190: 1188: 1185: 1183: 1180: 1178: 1175: 1173: 1170: 1166: 1163: 1161: 1158: 1157: 1156: 1153: 1151: 1148: 1147: 1145: 1143: 1139: 1133: 1130: 1128: 1125: 1123: 1120: 1118: 1115: 1114: 1112: 1110: 1106: 1100: 1097: 1095: 1092: 1090: 1087: 1085: 1082: 1080: 1077: 1076: 1074: 1072: 1068: 1062: 1059: 1057: 1054: 1052: 1049: 1047: 1044: 1042: 1039: 1037: 1036:Offline Files 1034: 1032: 1029: 1027: 1024: 1022: 1019: 1017: 1014: 1012: 1011:Win32 console 1009: 1008: 1006: 1000: 994: 991: 989: 988:Telephony API 986: 984: 983:Messaging API 981: 980: 978: 976:Communication 974: 968: 965: 963: 960: 958: 955: 953: 950: 948: 945: 943: 942:Windows Rally 940: 938: 935: 933: 930: 928: 925: 921: 918: 917: 916: 913: 912: 910: 906: 900: 897: 895: 892: 890: 887: 885: 882: 880: 877: 875: 872: 868: 865: 863: 860: 858: 855: 853: 850: 849: 848: 845: 844: 842: 838: 832: 829: 827: 824: 822: 819: 817: 814: 812: 809: 807: 804: 802: 799: 797: 794: 793: 791: 787: 781: 778: 776: 775:Windows Media 773: 771: 768: 766: 763: 761: 758: 756: 753: 751: 748: 746: 743: 741: 738: 734: 731: 729: 728:Media Objects 726: 725: 724: 721: 720: 718: 714: 708: 705: 703: 700: 698: 695: 693: 690: 688: 685: 683: 680: 679: 677: 673: 667: 664: 662: 659: 657: 654: 652: 649: 647: 644: 642: 639: 637: 634: 632: 629: 627: 624: 622: 619: 617: 614: 612: 609: 607: 604: 602: 599: 598: 596: 592: 588: 581: 576: 574: 569: 567: 562: 561: 558: 552: 549: 547: 544: 543: 523: 519: 513: 498: 492: 478:on 2009-03-13 477: 473: 467: 452: 448: 442: 427: 421: 405: 399: 391: 385: 377: 371: 363: 357: 342: 338: 332: 317: 313: 307: 300: 295: 289: 281: 275: 260: 254: 246: 245:"DirectInput" 240: 236: 228: 225: 224:intentionally 220: 216: 212: 207: 205: 202:According to 197: 194: 191: 190: 189: 187: 186: 175: 173: 169: 165: 161: 151: 149: 145: 144:Windows Vista 139: 137: 133: 129: 125: 121: 111: 109: 105: 97: 93: 91: 87: 84: 83: 82: 79: 77: 73: 72: 67: 63: 59: 55: 51: 50:input devices 47: 44: 40: 33: 27:Microsoft API 19: 1316:Composite UI 801:RSS Platform 744: 526:. Retrieved 521: 512: 501:. Retrieved 491: 480:. Retrieved 476:the original 466: 455:. Retrieved 451:the original 441: 430:. Retrieved 420: 408:. Retrieved 398: 384: 370: 356: 345:. Retrieved 341:the original 331: 320:. Retrieved 315: 306: 297: 288: 263:. Retrieved 253: 239: 223: 215:racing-wheel 208: 201: 183: 181: 157: 140: 117: 101: 95: 89: 80: 69: 65: 52:such as the 41:is a legacy 38: 36: 1398:DirectWrite 1306:EFx Factory 1263:Silverlight 1041:Shadow Copy 840:Data access 745:DirectInput 687:DirectSound 682:DirectMusic 631:Silverlight 524:. Microsoft 410:10 December 318:. Microsoft 39:DirectInput 1208:Crypto API 1026:PowerShell 1004:management 967:DirectPlay 908:Networking 831:TypeScript 750:DirectShow 716:Multimedia 702:Speech API 621:GDI / GDI+ 528:2009-01-25 518:"DIEFFECT" 503:2009-01-25 482:2009-01-25 457:2020-07-17 432:2012-12-27 347:2012-11-13 322:2009-01-25 265:2012-11-13 231:References 168:Windows XP 136:Windows XP 1428:Uniscribe 1109:Libraries 1056:Event Log 148:Windows 7 124:Win32 API 43:Microsoft 1443:Category 1354:Remoting 1258:Remoting 1201:Security 811:VBScript 611:Direct3D 606:Direct2D 274:cite web 211:gamepads 164:Xbox 360 120:wrappers 94:through 58:keyboard 1449:DirectX 1391:support 1253:ADO.NET 1248:ASP.NET 1213:CAPICOM 1089:ActiveX 952:P2P API 915:Winsock 857:ADO.NET 806:JScript 723:DirectX 707:XAudio2 172:DirectX 130:-based 114:History 104:DirectX 62:gamepad 60:, or a 962:MS MPI 867:OLE DB 796:MSHTML 740:Xinput 406:. MSDN 219:pedals 154:XInput 18:XInput 1344:MSRPC 894:MSXML 675:Audio 636:WinUI 299:APIs. 54:mouse 1240:.NET 1177:NDIS 1172:WDDM 1165:UMDF 1160:KMDF 1084:COM+ 957:MSMQ 947:BITS 937:NDIS 862:ODBC 697:XACT 666:WinG 522:MSDN 412:2013 316:MSDN 280:link 204:MSDN 1359:WCF 1336:IPC 1326:CSF 1321:CCF 1283:WPF 1278:WCS 1273:WCF 1268:TPL 1192:VxD 1187:BDA 1182:UAA 1155:WDF 1150:WDM 1079:COM 993:WCF 920:LSP 899:OPC 852:ADO 821:XDR 816:BHO 789:Web 770:XNA 626:WPF 182:An 160:API 132:API 128:COM 46:API 1445:: 1288:WF 520:. 314:. 276:}} 272:{{ 146:, 78:. 56:, 579:e 572:t 565:v 531:. 506:. 485:. 460:. 435:. 414:. 392:. 378:. 364:. 350:. 325:. 282:) 268:. 247:. 34:. 20:)

Index

XInput
X Window System protocols and architecture
Microsoft
API
input devices
mouse
keyboard
gamepad
haptic feedback
Xbox 360 controller
DirectX
Windows message loop
wrappers
Win32 API
COM
API
Windows XP
Windows Vista
Windows 7
API
Xbox 360
Windows XP
DirectX
Xbox 360 Controller
MSDN
gamepads
racing-wheel
pedals
"DirectInput"
"Meltdown 2005 slideshow (.zip)"

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.