Knowledge (XXG)

DirectInput

Source 📝

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

Index

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)"
cite web

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