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:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.