summaryrefslogtreecommitdiff
path: root/Library/Artifacts/53/5372f5b431ee9ba00dd68a4993d54278
blob: 72e58f7ca81189a96d147770071b2e75acbdee44 (plain)
ofshex dumpascii
0000 00 00 0f 81 00 00 e7 34 00 00 00 15 00 00 10 00 00 00 00 00 32 30 31 39 2e 33 2e 36 66 31 00 fe .......4............2019.3.6f1..
0020 ff ff ff 01 02 00 00 00 0b 04 00 00 00 ff ff 66 9a 86 21 eb 14 35 98 39 dd 34 1d 51 0e c1 f3 42 ...............f..!..5.9.4.Q...B
0040 00 00 00 ed 00 00 00 02 00 00 00 00 00 00 00 37 00 00 80 ff ff ff ff 00 00 00 00 00 80 00 00 00 ...............7................
0060 00 00 00 00 00 00 00 01 00 01 00 a6 03 00 80 b2 01 00 80 04 00 00 00 01 00 00 00 01 00 00 00 00 ................................
0080 00 00 00 00 00 00 00 01 00 01 00 0d 00 00 00 45 04 00 80 0c 00 00 00 02 00 00 00 01 00 00 00 00 ...............E................
00a0 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 23 00 00 00 04 00 00 00 03 00 00 00 01 00 80 00 00 ...............#................
00c0 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 2c 00 00 00 08 00 00 00 04 00 00 00 01 00 80 00 00 ...............,................
00e0 00 00 00 00 00 00 00 01 00 01 00 35 00 00 00 61 04 00 80 0c 00 00 00 05 00 00 00 01 00 00 00 00 ...........5...a................
0100 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 23 00 00 00 04 00 00 00 06 00 00 00 01 00 80 00 00 ...............#................
0120 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 2c 00 00 00 08 00 00 00 07 00 00 00 01 00 80 00 00 ...............,................
0140 00 00 00 00 00 00 00 01 00 01 00 86 02 00 80 72 04 00 80 0c 00 00 00 08 00 00 00 01 00 00 00 00 ...............r................
0160 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 23 00 00 00 04 00 00 00 09 00 00 00 01 00 80 00 00 ...............#................
0180 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 2c 00 00 00 08 00 00 00 0a 00 00 00 01 00 80 00 00 ...............,................
01a0 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 ab 01 00 80 ff ff ff ff 0b 00 00 00 01 80 08 00 00 ...........H....................
01c0 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 00 00 80 ff ff ff ff 0c 00 00 00 01 40 08 00 00 ...........1...1............@...
01e0 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b 03 00 80 04 00 00 00 0d 00 00 00 01 00 08 00 00 ................................
0200 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a 00 00 80 01 00 00 00 0e 00 00 00 01 00 08 00 00 ...........Q...j................
0220 00 00 00 00 00 00 00 01 00 01 00 f1 00 00 80 4a 00 00 00 ff ff ff ff 0f 00 00 00 00 c0 00 00 00 ...............J................
0240 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 00 00 80 ff ff ff ff 10 00 00 00 00 80 00 00 00 ...........1...1................
0260 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b 03 00 80 04 00 00 00 11 00 00 00 00 00 00 00 00 ................................
0280 00 00 00 00 00 00 00 01 00 03 00 1f 02 00 80 6a 00 00 80 ff ff ff ff 12 00 00 00 00 80 00 00 00 ...............j................
02a0 00 00 00 00 00 00 00 01 00 04 00 5c 00 00 00 9b 00 00 80 ff ff ff ff 13 00 00 00 00 80 00 00 00 ...........\....................
02c0 00 00 00 00 00 00 00 01 00 05 00 48 03 00 80 72 00 00 00 ff ff ff ff 14 00 00 00 00 80 00 00 00 ...........H...r................
02e0 00 00 00 00 00 00 00 01 00 06 01 31 00 00 80 31 00 00 80 ff ff ff ff 15 00 00 00 01 40 00 00 00 ...........1...1............@...
0300 00 00 00 00 00 00 00 01 00 07 00 de 00 00 80 1b 03 00 80 04 00 00 00 16 00 00 00 01 00 00 00 00 ................................
0320 00 00 00 00 00 00 00 01 00 07 00 51 00 00 80 6a 00 00 80 01 00 00 00 17 00 00 00 01 00 00 00 00 ...........Q...j................
0340 00 00 00 00 00 00 00 01 00 05 00 48 03 00 80 77 00 00 00 ff ff ff ff 18 00 00 00 00 80 00 00 00 ...........H...w................
0360 00 00 00 00 00 00 00 01 00 06 01 31 00 00 80 31 00 00 80 ff ff ff ff 19 00 00 00 01 40 00 00 00 ...........1...1............@...
0380 00 00 00 00 00 00 00 01 00 07 00 de 00 00 80 1b 03 00 80 04 00 00 00 1a 00 00 00 01 00 00 00 00 ................................
03a0 00 00 00 00 00 00 00 01 00 07 00 51 00 00 80 6a 00 00 80 01 00 00 00 1b 00 00 00 01 00 00 00 00 ...........Q...j................
03c0 00 00 00 00 00 00 00 01 00 05 00 48 03 00 80 80 00 00 00 ff ff ff ff 1c 00 00 00 00 80 00 00 00 ...........H....................
03e0 00 00 00 00 00 00 00 01 00 06 01 31 00 00 80 31 00 00 80 ff ff ff ff 1d 00 00 00 01 40 00 00 00 ...........1...1............@...
0400 00 00 00 00 00 00 00 01 00 07 00 de 00 00 80 1b 03 00 80 04 00 00 00 1e 00 00 00 01 00 00 00 00 ................................
0420 00 00 00 00 00 00 00 01 00 07 00 51 00 00 80 6a 00 00 80 01 00 00 00 1f 00 00 00 01 00 00 00 00 ...........Q...j................
0440 00 00 00 00 00 00 00 01 00 04 00 79 02 00 80 0a 03 00 80 0c 00 00 00 20 00 00 00 00 00 00 00 00 ...........y....................
0460 00 00 00 00 00 00 00 01 00 05 00 de 00 00 80 23 00 00 00 04 00 00 00 21 00 00 00 01 00 80 00 00 ...............#.......!........
0480 00 00 00 00 00 00 00 01 00 05 00 2e 03 00 80 2c 00 00 00 08 00 00 00 22 00 00 00 01 00 80 00 00 ...............,......."........
04a0 00 00 00 00 00 00 00 01 00 01 00 11 03 00 80 85 00 00 00 ff ff ff ff 23 00 00 00 01 40 08 00 00 .......................#....@...
04c0 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 00 00 80 ff ff ff ff 24 00 00 00 01 00 08 00 00 ...........1...1.......$........
04e0 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b 03 00 80 04 00 00 00 25 00 00 00 01 00 08 00 00 .......................%........
0500 00 00 00 00 00 00 00 01 00 03 00 2e 03 00 80 6a 00 00 80 08 00 00 00 26 00 00 00 01 00 08 00 00 ...............j.......&........
0520 00 00 00 00 00 00 00 01 00 01 00 d5 03 00 80 93 00 00 00 ff ff ff ff 27 00 00 00 00 80 00 00 00 .......................'........
0540 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 00 00 80 ff ff ff ff 28 00 00 00 00 c0 00 00 00 ...........1...1.......(........
0560 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b 03 00 80 04 00 00 00 29 00 00 00 00 00 00 00 00 .......................)........
0580 00 00 00 00 00 00 00 01 00 03 00 1f 02 00 80 6a 00 00 80 ff ff ff ff 2a 00 00 00 00 80 00 00 00 ...............j.......*........
05a0 00 00 00 00 00 00 00 01 00 04 00 48 03 00 80 9b 00 00 80 ff ff ff ff 2b 00 00 00 00 80 00 00 00 ...........H...........+........
05c0 00 00 00 00 00 00 00 01 00 05 01 31 00 00 80 31 00 00 80 ff ff ff ff 2c 00 00 00 01 40 00 00 00 ...........1...1.......,....@...
05e0 00 00 00 00 00 00 00 01 00 06 00 de 00 00 80 1b 03 00 80 04 00 00 00 2d 00 00 00 01 00 00 00 00 .......................-........
0600 00 00 00 00 00 00 00 01 00 06 00 51 00 00 80 6a 00 00 80 01 00 00 00 2e 00 00 00 01 00 00 00 00 ...........Q...j................
0620 00 00 00 00 00 00 00 01 00 04 00 79 02 00 80 0a 03 00 80 0c 00 00 00 2f 00 00 00 00 00 00 00 00 ...........y.........../........
0640 00 00 00 00 00 00 00 01 00 05 00 de 00 00 80 23 00 00 00 04 00 00 00 30 00 00 00 01 00 80 00 00 ...............#.......0........
0660 00 00 00 00 00 00 00 01 00 05 00 2e 03 00 80 2c 00 00 00 08 00 00 00 31 00 00 00 01 00 80 00 00 ...............,.......1........
0680 00 00 00 00 00 00 00 01 00 01 00 20 03 00 80 a7 00 00 00 02 00 00 00 32 00 00 00 00 40 00 00 00 .......................2....@...
06a0 00 00 00 00 00 00 00 01 00 01 00 be 02 00 80 b6 00 00 00 0c 00 00 00 33 00 00 00 00 40 00 00 00 .......................3....@...
06c0 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 23 00 00 00 04 00 00 00 34 00 00 00 01 00 80 00 00 ...............#.......4........
06e0 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 2c 00 00 00 08 00 00 00 35 00 00 00 01 00 80 00 00 ...............,.......5........
0700 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 bb 00 00 00 ff ff ff ff 36 00 00 00 01 80 00 00 00 ...........H...........6........
0720 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 00 00 80 ff ff ff ff 37 00 00 00 01 40 00 00 00 ...........1...1.......7....@...
0740 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b 03 00 80 04 00 00 00 38 00 00 00 01 00 00 00 00 .......................8........
0760 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a 00 00 80 01 00 00 00 39 00 00 00 01 00 00 00 00 ...........Q...j.......9........
0780 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 c6 00 00 00 ff ff ff ff 3a 00 00 00 01 80 00 00 00 ...........H...........:........
07a0 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 00 00 80 ff ff ff ff 3b 00 00 00 01 40 00 00 00 ...........1...1.......;....@...
07c0 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b 03 00 80 04 00 00 00 3c 00 00 00 01 00 00 00 00 .......................<........
07e0 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a 00 00 80 01 00 00 00 3d 00 00 00 01 00 00 00 00 ...........Q...j.......=........
0800 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 d8 00 00 00 ff ff ff ff 3e 00 00 00 01 80 00 00 00 ...........H...........>........
0820 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 00 00 80 ff ff ff ff 3f 00 00 00 01 40 00 00 00 ...........1...1.......?....@...
0840 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b 03 00 80 04 00 00 00 40 00 00 00 01 00 00 00 00 .......................@........
0860 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a 00 00 80 01 00 00 00 41 00 00 00 01 00 00 00 00 ...........Q...j.......A........
0880 00 00 00 00 00 00 00 4d 6f 6e 6f 49 6d 70 6f 72 74 65 72 00 50 50 74 72 3c 45 64 69 74 6f 72 45 .......MonoImporter.PPtr<EditorE
08a0 78 74 65 6e 73 69 6f 6e 3e 00 6d 5f 46 69 6c 65 49 44 00 6d 5f 50 61 74 68 49 44 00 50 50 74 72 xtension>.m_FileID.m_PathID.PPtr
08c0 3c 50 72 65 66 61 62 49 6e 73 74 61 6e 63 65 3e 00 6d 5f 45 78 74 65 72 6e 61 6c 4f 62 6a 65 63 <PrefabInstance>.m_ExternalObjec
08e0 74 73 00 53 6f 75 72 63 65 41 73 73 65 74 49 64 65 6e 74 69 66 69 65 72 00 74 79 70 65 00 61 73 ts.SourceAssetIdentifier.type.as
0900 73 65 6d 62 6c 79 00 6e 61 6d 65 00 6d 5f 55 73 65 64 46 69 6c 65 49 44 73 00 6d 5f 44 65 66 61 sembly.name.m_UsedFileIDs.m_Defa
0920 75 6c 74 52 65 66 65 72 65 6e 63 65 73 00 65 78 65 63 75 74 69 6f 6e 4f 72 64 65 72 00 69 63 6f ultReferences.executionOrder.ico
0940 6e 00 6d 5f 55 73 65 72 44 61 74 61 00 6d 5f 41 73 73 65 74 42 75 6e 64 6c 65 4e 61 6d 65 00 6d n.m_UserData.m_AssetBundleName.m
0960 5f 41 73 73 65 74 42 75 6e 64 6c 65 56 61 72 69 61 6e 74 00 00 00 00 00 73 00 00 00 00 ff ff a3 _AssetBundleVariant.....s.......
0980 47 f1 d7 dc 8f 5a 35 36 a0 3a 21 40 69 c1 4a 2a 00 00 00 81 00 00 00 05 00 00 00 15 01 00 80 37 G....Z56.:!@i.J*...............7
09a0 00 00 80 ff ff ff ff 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 01 00 01 00 a6 03 00 80 b2 ................................
09c0 01 00 80 04 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00 00 00 00 00 45 ...............................E
09e0 04 00 80 0c 00 00 00 02 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 16 ................................
0a00 00 00 00 04 00 00 00 03 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 1f ................................
0a20 00 00 00 08 00 00 00 04 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 01 00 28 00 00 00 61 ...........................(...a
0a40 04 00 80 0c 00 00 00 05 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 16 ................................
0a60 00 00 00 04 00 00 00 06 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 1f ................................
0a80 00 00 00 08 00 00 00 07 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 01 00 86 02 00 80 72 ...............................r
0aa0 04 00 80 0c 00 00 00 08 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 16 ................................
0ac0 00 00 00 04 00 00 00 09 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 1f ................................
0ae0 00 00 00 08 00 00 00 0a 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 ab ...........................H....
0b00 01 00 80 ff ff ff ff 0b 00 00 00 01 80 08 00 00 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 ...........................1...1
0b20 00 00 80 ff ff ff ff 0c 00 00 00 01 40 08 00 00 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b ............@...................
0b40 03 00 80 04 00 00 00 0d 00 00 00 01 00 08 00 00 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a ...........................Q...j
0b60 00 00 80 01 00 00 00 0e 00 00 00 01 00 08 00 00 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 ea ...........................H....
0b80 01 00 80 ff ff ff ff 0f 00 00 00 01 80 00 00 00 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 ...........................1...1
0ba0 00 00 80 ff ff ff ff 10 00 00 00 01 40 00 00 00 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b ............@...................
0bc0 03 00 80 04 00 00 00 11 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a ...........................Q...j
0be0 00 00 80 01 00 00 00 12 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00 f1 00 00 80 3d ...............................=
0c00 00 00 00 ff ff ff ff 13 00 00 00 01 80 00 00 00 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 ...........................1...1
0c20 00 00 80 ff ff ff ff 14 00 00 00 01 80 00 00 00 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b ................................
0c40 03 00 80 04 00 00 00 15 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 03 00 1f 02 00 80 6a ...............................j
0c60 00 00 80 ff ff ff ff 16 00 00 00 01 80 00 00 00 00 00 00 00 00 00 00 01 00 04 00 48 03 00 80 9b ...........................H....
0c80 00 00 80 ff ff ff ff 17 00 00 00 01 80 00 00 00 00 00 00 00 00 00 00 01 00 05 01 31 00 00 80 31 ...........................1...1
0ca0 00 00 80 ff ff ff ff 18 00 00 00 01 40 00 00 00 00 00 00 00 00 00 00 01 00 06 00 de 00 00 80 1b ............@...................
0cc0 03 00 80 04 00 00 00 19 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 06 00 51 00 00 80 6a ...........................Q...j
0ce0 00 00 80 01 00 00 00 1a 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 04 00 79 02 00 80 0a ...........................y....
0d00 03 00 80 0c 00 00 00 1b 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 05 00 de 00 00 80 16 ................................
0d20 00 00 00 04 00 00 00 1c 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 05 00 2e 03 00 80 1f ................................
0d40 00 00 00 08 00 00 00 1d 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 01 00 79 02 00 80 51 ...........................y...Q
0d60 00 00 00 0c 00 00 00 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 00 de 00 00 80 16 ................................
0d80 00 00 00 04 00 00 00 1f 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 02 00 2e 03 00 80 1f ................................
0da0 00 00 00 08 00 00 00 20 00 00 00 01 00 80 00 00 00 00 00 00 00 00 00 01 00 01 00 de 00 00 80 58 ...............................X
0dc0 00 00 00 04 00 00 00 21 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 69 .......!...................H...i
0de0 00 00 00 ff ff ff ff 22 00 00 00 10 80 00 00 00 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 ......."...................1...1
0e00 00 00 80 ff ff ff ff 23 00 00 00 11 40 00 00 00 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b .......#....@...................
0e20 03 00 80 04 00 00 00 24 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a .......$...................Q...j
0e40 00 00 80 01 00 00 00 25 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 01 00 01 00 48 03 00 80 75 .......%...................H...u
0e60 00 00 00 ff ff ff ff 26 00 00 00 10 80 00 00 00 00 00 00 00 00 00 00 01 00 02 01 31 00 00 80 31 .......&...................1...1
0e80 00 00 80 ff ff ff ff 27 00 00 00 11 40 00 00 00 00 00 00 00 00 00 00 01 00 03 00 de 00 00 80 1b .......'....@...................
0ea0 03 00 80 04 00 00 00 28 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 01 00 03 00 51 00 00 80 6a .......(...................Q...j
0ec0 00 00 80 01 00 00 00 29 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 50 50 74 72 3c 45 64 69 74 .......)...............PPtr<Edit
0ee0 6f 72 45 78 74 65 6e 73 69 6f 6e 3e 00 6d 5f 46 69 6c 65 49 44 00 6d 5f 50 61 74 68 49 44 00 50 orExtension>.m_FileID.m_PathID.P
0f00 50 74 72 3c 50 72 65 66 61 62 49 6e 73 74 61 6e 63 65 3e 00 6d 5f 44 65 66 61 75 6c 74 52 65 66 Ptr<PrefabInstance>.m_DefaultRef
0f20 65 72 65 6e 63 65 73 00 6d 5f 49 63 6f 6e 00 6d 5f 45 78 65 63 75 74 69 6f 6e 4f 72 64 65 72 00 erences.m_Icon.m_ExecutionOrder.
0f40 6d 5f 43 6c 61 73 73 4e 61 6d 65 00 6d 5f 4e 61 6d 65 73 70 61 63 65 00 00 00 00 00 02 00 00 00 m_ClassName.m_Namespace.........
0f60 03 00 00 00 00 00 00 00 00 00 00 00 5c 00 00 00 00 00 00 00 e0 79 af 00 00 00 00 00 60 00 00 00 ............\........y......`...
0f80 d4 d6 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 e0 79 af 00 00 00 00 00 00 00 00 00 .....................y..........
1040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1080 00 00 00 00 00 00 00 00 0c 00 00 00 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 56 d6 00 00 75 73 69 6e ............InputControlV...usin
10a0 67 20 53 79 73 74 65 6d 3b 0d 0a 75 73 69 6e 67 20 53 79 73 74 65 6d 2e 43 6f 6c 6c 65 63 74 69 g.System;..using.System.Collecti
10c0 6f 6e 73 2e 47 65 6e 65 72 69 63 3b 0d 0a 75 73 69 6e 67 20 53 79 73 74 65 6d 2e 44 69 61 67 6e ons.Generic;..using.System.Diagn
10e0 6f 73 74 69 63 73 3b 0d 0a 75 73 69 6e 67 20 55 6e 69 74 79 45 6e 67 69 6e 65 2e 49 6e 70 75 74 ostics;..using.UnityEngine.Input
1100 53 79 73 74 65 6d 2e 43 6f 6e 74 72 6f 6c 73 3b 0d 0a 75 73 69 6e 67 20 55 6e 69 74 79 45 6e 67 System.Controls;..using.UnityEng
1120 69 6e 65 2e 49 6e 70 75 74 53 79 73 74 65 6d 2e 4c 6f 77 4c 65 76 65 6c 3b 0d 0a 75 73 69 6e 67 ine.InputSystem.LowLevel;..using
1140 20 55 6e 69 74 79 45 6e 67 69 6e 65 2e 49 6e 70 75 74 53 79 73 74 65 6d 2e 55 74 69 6c 69 74 69 .UnityEngine.InputSystem.Utiliti
1160 65 73 3b 0d 0a 75 73 69 6e 67 20 55 6e 69 74 79 2e 43 6f 6c 6c 65 63 74 69 6f 6e 73 2e 4c 6f 77 es;..using.Unity.Collections.Low
1180 4c 65 76 65 6c 2e 55 6e 73 61 66 65 3b 0d 0a 75 73 69 6e 67 20 55 6e 69 74 79 45 6e 67 69 6e 65 Level.Unsafe;..using.UnityEngine
11a0 2e 49 6e 70 75 74 53 79 73 74 65 6d 2e 4c 61 79 6f 75 74 73 3b 0d 0a 0d 0a 2f 2f 2f 2f 52 45 56 .InputSystem.Layouts;....////REV
11c0 49 45 57 3a 20 73 68 6f 75 6c 64 20 45 76 61 6c 75 61 74 65 4d 61 67 6e 69 74 75 64 65 28 29 20 IEW:.should.EvaluateMagnitude().
11e0 62 65 20 63 61 6c 6c 65 64 20 45 76 61 6c 75 61 74 65 41 63 74 75 61 74 69 6f 6e 28 29 20 6f 72 be.called.EvaluateActuation().or
1200 20 73 6f 6d 65 74 68 69 6e 67 20 73 69 6d 69 6c 61 72 3f 0d 0a 0d 0a 2f 2f 2f 2f 52 45 56 49 45 .something.similar?....////REVIE
1220 57 3a 20 61 73 20 73 6f 6f 6e 20 61 73 20 77 65 20 67 61 69 6e 20 74 68 65 20 61 62 69 6c 69 74 W:.as.soon.as.we.gain.the.abilit
1240 79 20 74 6f 20 68 61 76 65 20 62 6c 69 74 74 61 62 6c 65 20 74 79 70 65 20 63 6f 6e 73 74 72 61 y.to.have.blittable.type.constra
1260 69 6e 74 73 2c 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 3c 54 56 61 6c 75 65 3e 20 73 68 6f 75 6c ints,.InputControl<TValue>.shoul
1280 64 20 62 65 20 63 6f 6e 73 74 72 61 69 6e 65 64 20 73 75 63 68 0d 0a 0d 0a 2f 2f 2f 2f 52 45 56 d.be.constrained.such....////REV
12a0 49 45 57 3a 20 52 65 61 64 69 6e 67 20 61 6e 64 20 77 72 69 74 69 6e 67 20 69 73 20 61 73 79 6d IEW:.Reading.and.writing.is.asym
12c0 6d 65 74 72 69 63 2e 20 57 72 69 74 69 6e 67 20 64 6f 65 73 20 6e 6f 74 20 69 6e 76 6f 6c 76 65 metric..Writing.does.not.involve
12e0 20 70 72 6f 63 65 73 73 6f 72 73 2c 20 72 65 61 64 69 6e 67 20 64 6f 65 73 2e 0d 0a 0d 0a 2f 2f .processors,.reading.does.....//
1300 2f 2f 52 45 56 49 45 57 3a 20 57 68 69 6c 65 20 74 68 65 20 61 72 72 61 79 73 20 75 73 65 64 20 //REVIEW:.While.the.arrays.used.
1320 62 79 20 63 6f 6e 74 72 6f 6c 73 20 61 72 65 20 61 6c 72 65 61 64 79 20 6e 69 63 65 6c 79 20 63 by.controls.are.already.nicely.c
1340 65 6e 74 72 61 6c 69 7a 65 64 20 6f 6e 20 49 6e 70 75 74 44 65 76 69 63 65 2c 20 49 6e 70 75 74 entralized.on.InputDevice,.Input
1360 43 6f 6e 74 72 6f 6c 73 20 73 74 69 6c 6c 0d 0a 2f 2f 2f 2f 20 20 20 20 20 20 20 20 68 6f 6c 64 Controls.still..////........hold
1380 20 61 20 62 75 6e 63 68 20 6f 66 20 72 65 66 65 72 65 6e 63 65 20 64 61 74 61 20 74 68 61 74 20 .a.bunch.of.reference.data.that.
13a0 72 65 71 75 69 72 65 73 20 73 65 70 61 72 61 74 65 20 73 63 61 6e 6e 69 6e 67 2e 20 43 61 6e 20 requires.separate.scanning..Can.
13c0 77 65 20 6d 6f 76 65 20 2a 61 6c 6c 2a 20 72 65 66 65 72 65 6e 63 65 20 64 61 74 61 20 74 6f 20 we.move.*all*.reference.data.to.
13e0 61 72 72 61 79 73 0d 0a 2f 2f 2f 2f 20 20 20 20 20 20 20 20 6f 6e 20 49 6e 70 75 74 44 65 76 69 arrays..////........on.InputDevi
1400 63 65 20 61 6e 64 20 6d 61 6b 65 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 73 20 72 65 66 65 72 65 ce.and.make.InputControls.refere
1420 6e 63 65 2d 66 72 65 65 3f 20 4d 6f 73 74 20 63 68 61 6c 6c 65 6e 67 69 6e 67 20 74 68 69 6e 67 nce-free?.Most.challenging.thing
1440 20 70 72 6f 62 61 62 6c 79 20 69 73 20 67 65 74 74 69 6e 67 20 72 69 64 20 6f 66 0d 0a 2f 2f 2f .probably.is.getting.rid.of..///
1460 2f 20 20 20 20 20 20 20 20 74 68 65 20 49 6e 70 75 74 44 65 76 69 63 65 20 72 65 66 65 72 65 6e /........the.InputDevice.referen
1480 63 65 20 69 74 73 65 6c 66 2e 0d 0a 0d 0a 2f 2f 2f 2f 52 45 56 49 45 57 3a 20 68 6f 77 20 64 6f ce.itself.....////REVIEW:.how.do
14a0 20 77 65 20 64 6f 20 73 74 75 66 66 20 6c 69 6b 65 20 73 6d 6f 6f 74 68 69 6e 67 20 6f 76 65 72 .we.do.stuff.like.smoothing.over
14c0 20 74 69 6d 65 3f 0d 0a 0d 0a 2f 2f 2f 2f 54 4f 44 4f 3a 20 61 6c 6c 6f 77 20 65 61 73 69 65 72 .time?....////TODO:.allow.easier
14e0 20 61 63 63 65 73 73 20 74 6f 20 74 68 65 20 64 65 66 61 75 6c 74 20 73 74 61 74 65 20 73 75 63 .access.to.the.default.state.suc
1500 68 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 65 61 73 69 6c 79 20 63 72 65 61 74 65 20 61 20 73 h.that.you.can.easily.create.a.s
1520 74 61 74 65 20 65 76 65 6e 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 6f 6e 6c 79 20 64 65 66 61 75 tate.event.containing.only.defau
1540 6c 74 20 73 74 61 74 65 0d 0a 0d 0a 2f 2f 2f 2f 54 4f 44 4f 3a 20 63 6f 6d 65 20 75 70 20 77 69 lt.state....////TODO:.come.up.wi
1560 74 68 20 61 20 77 61 79 20 77 68 65 72 65 20 77 65 20 64 6f 20 52 65 61 64 56 61 6c 75 65 20 6f th.a.way.where.we.do.ReadValue.o
1580 6e 20 74 68 65 20 6d 6f 73 74 20 63 6f 6d 6d 6f 6e 20 66 6f 72 6d 73 2f 73 65 74 75 70 73 20 6f n.the.most.common.forms/setups.o
15a0 66 20 63 6f 6e 74 72 6f 6c 73 20 61 6e 64 20 6e 6f 74 20 68 61 76 65 20 61 6e 79 20 76 69 72 74 f.controls.and.not.have.any.virt
15c0 75 61 6c 20 6d 65 74 68 6f 64 20 64 69 73 70 61 74 63 68 20 62 75 74 0d 0a 2f 2f 2f 2f 20 20 20 ual.method.dispatch.but..////...
15e0 20 20 20 72 61 74 68 65 72 20 67 6f 20 77 69 74 68 20 6d 69 6e 69 6d 61 6c 20 6f 76 65 72 68 65 ...rather.go.with.minimal.overhe
1600 61 64 20 64 69 72 65 63 74 6c 79 20 74 6f 20 72 65 61 64 69 6e 67 20 6f 75 74 20 6d 65 6d 6f 72 ad.directly.to.reading.out.memor
1620 79 0d 0a 2f 2f 2f 2f 20 20 20 20 20 20 28 74 68 69 73 20 73 68 6f 75 6c 64 20 61 74 20 6c 65 61 y..////......(this.should.at.lea
1640 73 74 20 63 6f 76 65 72 20 46 4c 54 2c 20 73 69 6e 67 6c 65 20 42 49 54 2c 20 61 6e 64 20 49 4e st.cover.FLT,.single.BIT,.and.IN
1660 54 20 63 6f 6e 74 72 6f 6c 73 3b 20 61 6e 64 20 73 68 6f 75 6c 64 20 62 65 20 61 62 6c 65 20 74 T.controls;.and.should.be.able.t
1680 6f 20 61 70 70 6c 79 20 74 68 65 20 63 6f 6d 6d 6f 6e 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f o.apply.the.common.transformatio
16a0 6e 73 0d 0a 2f 2f 2f 2f 20 20 20 20 20 20 61 73 20 70 65 72 20 41 78 69 73 43 6f 6e 74 72 6f 6c ns..////......as.per.AxisControl
16c0 29 0d 0a 0d 0a 6e 61 6d 65 73 70 61 63 65 20 55 6e 69 74 79 45 6e 67 69 6e 65 2e 49 6e 70 75 74 )....namespace.UnityEngine.Input
16e0 53 79 73 74 65 6d 0d 0a 7b 0d 0a 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 System..{......///.<summary>....
1700 20 20 2f 2f 2f 20 41 20 74 79 70 65 64 20 61 6e 64 20 6e 61 6d 65 64 20 73 6f 75 72 63 65 20 6f ..///.A.typed.and.named.source.o
1720 66 20 69 6e 70 75 74 20 76 61 6c 75 65 73 20 69 6e 20 61 20 68 69 65 72 61 72 63 68 79 20 6f 66 f.input.values.in.a.hierarchy.of
1740 20 63 6f 6e 74 72 6f 6c 73 2e 0d 0a 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a .controls.......///.</summary>..
1760 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 2f 2f 2f 20 43 6f 6e 74 72 ....///.<remarks>......///.Contr
1780 6f 6c 73 20 63 61 6e 20 68 61 76 65 20 63 68 69 6c 64 72 65 6e 20 77 68 69 63 68 20 69 6e 20 74 ols.can.have.children.which.in.t
17a0 75 72 6e 20 6d 61 79 20 68 61 76 65 20 63 68 69 6c 64 72 65 6e 2e 20 41 74 20 74 68 65 20 72 6f urn.may.have.children..At.the.ro
17c0 6f 74 20 6f 66 20 74 68 65 20 63 68 69 6c 64 0d 0a 20 20 20 20 2f 2f 2f 20 68 69 65 72 61 72 63 ot.of.the.child......///.hierarc
17e0 68 79 20 69 73 20 61 6c 77 61 79 73 20 61 6e 20 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 hy.is.always.an.<see.cref="Input
1800 44 65 76 69 63 65 22 2f 3e 20 28 77 68 69 63 68 20 74 68 65 6d 73 65 6c 76 65 73 20 61 72 65 20 Device"/>.(which.themselves.are.
1820 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 73 29 2e 0d 0a 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 2f 2f InputControls).......///......//
1840 2f 20 43 6f 6e 74 72 6f 6c 73 20 63 61 6e 20 62 65 20 6c 6f 6f 6b 65 64 20 75 70 20 62 79 20 74 /.Controls.can.be.looked.up.by.t
1860 68 65 69 72 20 3c 73 65 65 20 63 72 65 66 3d 22 70 61 74 68 22 2f 3e 20 28 73 65 65 20 3c 73 65 heir.<see.cref="path"/>.(see.<se
1880 65 20 63 72 65 66 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 50 61 74 68 2e 54 72 79 46 69 6e 64 e.cref="InputControlPath.TryFind
18a0 43 6f 6e 74 72 6f 6c 22 2f 3e 29 2e 0d 0a 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 2f 2f 2f 20 45 Control"/>).......///......///.E
18c0 61 63 68 20 63 6f 6e 74 72 6f 6c 20 6d 75 73 74 20 68 61 76 65 20 61 20 75 6e 69 71 75 65 20 3c ach.control.must.have.a.unique.<
18e0 73 65 65 20 63 72 65 66 3d 22 6e 61 6d 65 22 2f 3e 20 77 69 74 68 69 6e 20 74 68 65 20 3c 73 65 see.cref="name"/>.within.the.<se
1900 65 20 63 72 65 66 3d 22 63 68 69 6c 64 72 65 6e 22 2f 3e 20 6f 66 0d 0a 20 20 20 20 2f 2f 2f 20 e.cref="children"/>.of......///.
1920 69 74 73 20 3c 73 65 65 20 63 72 65 66 3d 22 70 61 72 65 6e 74 22 2f 3e 2e 20 4d 75 6c 74 69 70 its.<see.cref="parent"/>..Multip
1940 6c 65 20 6e 61 6d 65 73 20 63 61 6e 20 62 65 20 61 73 73 69 67 6e 65 64 20 74 6f 20 63 6f 6e 74 le.names.can.be.assigned.to.cont
1960 72 6f 6c 73 20 75 73 69 6e 67 20 61 6c 69 61 73 65 73 20 28 73 65 65 0d 0a 20 20 20 20 2f 2f 2f rols.using.aliases.(see......///
1980 20 3c 73 65 65 20 63 72 65 66 3d 22 61 6c 69 61 73 65 73 22 2f 3e 29 2e 20 4e 61 6d 65 20 6c 6f .<see.cref="aliases"/>)..Name.lo
19a0 6f 6b 75 70 20 69 73 20 63 61 73 65 2d 69 6e 73 65 6e 73 69 74 69 76 65 2e 0d 0a 20 20 20 20 2f okup.is.case-insensitive......./
19c0 2f 2f 0d 0a 20 20 20 20 2f 2f 2f 20 46 6f 72 20 64 69 73 70 6c 61 79 20 70 75 72 70 6f 73 65 73 //......///.For.display.purposes
19e0 2c 20 61 20 63 6f 6e 74 72 6f 6c 20 6d 61 79 20 68 61 76 65 20 61 20 73 65 70 61 72 61 74 65 20 ,.a.control.may.have.a.separate.
1a00 3c 73 65 65 20 63 72 65 66 3d 22 64 69 73 70 6c 61 79 4e 61 6d 65 22 2f 3e 2e 20 54 68 69 73 20 <see.cref="displayName"/>..This.
1a20 6e 61 6d 65 0d 0a 20 20 20 20 2f 2f 2f 20 77 69 6c 6c 20 75 73 75 61 6c 6c 79 20 63 6f 72 72 65 name......///.will.usually.corre
1a40 73 70 6f 6e 64 20 74 6f 20 77 68 61 74 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 69 73 20 63 61 75 spond.to.what.the.control.is.cau
1a60 73 65 64 20 6f 6e 20 74 68 65 20 61 63 74 75 61 6c 20 75 6e 64 65 72 6c 79 69 6e 67 20 68 61 72 sed.on.the.actual.underlying.har
1a80 64 77 61 72 65 2e 0d 0a 20 20 20 20 2f 2f 2f 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 6f 6e 20 dware.......///.For.example,.on.
1aa0 61 6e 20 58 62 6f 78 20 67 61 6d 65 70 61 64 2c 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 77 69 74 an.Xbox.gamepad,.the.control.wit
1ac0 68 20 74 68 65 20 6e 61 6d 65 20 22 62 75 74 74 6f 6e 53 6f 75 74 68 22 20 77 69 6c 6c 20 68 61 h.the.name."buttonSouth".will.ha
1ae0 76 65 20 61 20 64 69 73 70 6c 61 79 0d 0a 20 20 20 20 2f 2f 2f 20 6e 61 6d 65 20 6f 66 20 22 41 ve.a.display......///.name.of."A
1b00 22 2e 20 43 6f 6e 74 72 6f 6c 73 20 74 68 61 74 20 68 61 76 65 20 76 65 72 79 20 6c 6f 6e 67 20 "..Controls.that.have.very.long.
1b20 64 69 73 70 6c 61 79 20 6e 61 6d 65 73 20 6d 61 79 20 61 6c 73 6f 20 68 61 76 65 20 61 20 3c 73 display.names.may.also.have.a.<s
1b40 65 65 20 63 72 65 66 3d 22 73 68 6f 72 74 44 69 73 70 6c 61 79 4e 61 6d 65 22 2f 3e 2e 0d 0a 20 ee.cref="shortDisplayName"/>....
1b60 20 20 20 2f 2f 2f 20 54 68 69 73 20 69 73 20 74 68 65 20 63 61 73 65 20 66 6f 72 20 74 68 65 20 ...///.This.is.the.case.for.the.
1b80 22 4c 65 66 74 20 42 75 74 74 6f 6e 22 20 6f 6e 20 74 68 65 20 3c 73 65 65 20 63 72 65 66 3d 22 "Left.Button".on.the.<see.cref="
1ba0 4d 6f 75 73 65 22 2f 3e 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 77 68 69 63 68 20 69 73 0d Mouse"/>,.for.example,.which.is.
1bc0 0a 20 20 20 20 2f 2f 2f 20 63 6f 6d 6d 6f 6e 6c 79 20 61 62 62 72 65 76 69 61 74 65 64 20 22 4c .....///.commonly.abbreviated."L
1be0 4d 42 22 2e 0d 0a 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 2f 2f 2f 20 49 6e 20 61 64 64 69 74 69 MB".......///......///.In.additi
1c00 6f 6e 20 74 6f 20 6e 61 6d 65 73 2c 20 61 20 63 6f 6e 74 72 6f 6c 20 6d 61 79 20 68 61 76 65 20 on.to.names,.a.control.may.have.
1c20 75 73 61 67 65 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 69 74 20 28 73 65 65 20 3c usages.associated.with.it.(see.<
1c40 73 65 65 20 63 72 65 66 3d 22 75 73 61 67 65 73 22 2f 3e 29 2e 0d 0a 20 20 20 20 2f 2f 2f 20 41 see.cref="usages"/>).......///.A
1c60 20 75 73 61 67 65 20 69 6e 64 69 63 61 74 65 73 20 68 6f 77 20 61 20 63 6f 6e 74 72 6f 6c 20 69 .usage.indicates.how.a.control.i
1c80 73 20 6d 65 61 6e 74 20 74 6f 20 62 65 20 75 73 65 64 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c s.meant.to.be.used..For.example,
1ca0 20 61 20 62 75 74 74 6f 6e 20 63 61 6e 20 62 65 20 61 73 73 69 67 6e 65 64 0d 0a 20 20 20 20 2f .a.button.can.be.assigned....../
1cc0 2f 2f 20 74 68 65 20 22 50 72 69 6d 61 72 79 41 63 74 69 6f 6e 22 20 75 73 61 67 65 20 74 6f 20 //.the."PrimaryAction".usage.to.
1ce0 69 6e 64 69 63 61 74 65 20 69 74 20 69 73 20 74 68 65 20 70 72 69 6d 61 72 79 20 61 63 74 69 6f indicate.it.is.the.primary.actio
1d00 6e 20 62 75 74 74 6f 6e 20 74 68 65 20 64 65 76 69 63 65 2e 20 57 69 74 68 69 6e 20 61 0d 0a 20 n.button.the.device..Within.a...
1d20 20 20 20 2f 2f 2f 20 64 65 76 69 63 65 2c 20 75 73 61 67 65 73 20 68 61 76 65 20 74 6f 20 62 65 ...///.device,.usages.have.to.be
1d40 20 75 6e 69 71 75 65 2e 20 53 65 65 20 3c 73 65 65 20 63 72 65 66 3d 22 43 6f 6d 6d 6f 6e 55 73 .unique..See.<see.cref="CommonUs
1d60 61 67 65 73 22 2f 3e 20 66 6f 72 20 61 20 6c 69 73 74 20 6f 66 20 73 74 61 6e 64 61 72 64 69 7a ages"/>.for.a.list.of.standardiz
1d80 65 64 20 75 73 61 67 65 73 2e 0d 0a 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 2f 2f 2f 20 43 6f 6e ed.usages.......///......///.Con
1da0 74 72 6f 6c 73 20 64 6f 20 6e 6f 74 20 61 63 74 75 61 6c 6c 79 20 73 74 6f 72 65 20 76 61 6c 75 trols.do.not.actually.store.valu
1dc0 65 73 2e 20 49 6e 73 74 65 61 64 2c 20 65 76 65 72 79 20 63 6f 6e 74 72 6f 6c 20 72 65 63 65 69 es..Instead,.every.control.recei
1de0 76 65 73 20 61 6e 20 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 53 74 61 74 65 42 6c 6f 63 ves.an.<see.cref="InputStateBloc
1e00 6b 22 2f 3e 0d 0a 20 20 20 20 2f 2f 2f 20 77 68 69 63 68 2c 20 61 66 74 65 72 20 74 68 65 20 63 k"/>......///.which,.after.the.c
1e20 6f 6e 74 72 6f 6c 27 73 20 64 65 76 69 63 65 20 68 61 73 20 62 65 65 6e 20 61 64 64 65 64 20 74 ontrol's.device.has.been.added.t
1e40 6f 20 74 68 65 20 73 79 73 74 65 6d 2c 20 69 73 20 75 73 65 64 20 74 6f 20 72 65 61 64 20 6f 75 o.the.system,.is.used.to.read.ou
1e60 74 20 76 61 6c 75 65 73 0d 0a 20 20 20 20 2f 2f 2f 20 66 72 6f 6d 20 74 68 65 20 64 65 76 69 63 t.values......///.from.the.devic
1e80 65 27 73 20 62 61 63 6b 69 6e 67 20 73 74 6f 72 65 2e 20 54 68 69 73 20 62 61 63 6b 69 6e 67 20 e's.backing.store..This.backing.
1ea0 73 74 6f 72 65 20 69 73 20 72 65 66 65 72 72 65 64 20 74 6f 20 61 73 20 22 73 74 61 74 65 22 20 store.is.referred.to.as."state".
1ec0 69 6e 20 74 68 65 20 41 50 49 0d 0a 20 20 20 20 2f 2f 2f 20 61 73 20 6f 70 70 6f 73 65 64 20 74 in.the.API......///.as.opposed.t
1ee0 6f 20 22 76 61 6c 75 65 73 22 20 77 68 69 63 68 20 72 65 70 72 65 73 65 6e 74 20 74 68 65 20 64 o."values".which.represent.the.d
1f00 61 74 61 20 72 65 73 75 6c 74 69 6e 67 20 66 72 6f 6d 20 72 65 61 64 69 6e 67 20 73 74 61 74 65 ata.resulting.from.reading.state
1f20 2e 20 54 68 65 20 66 6f 72 6d 61 74 20 74 68 61 74 0d 0a 20 20 20 20 2f 2f 2f 20 65 61 63 68 20 ..The.format.that......///.each.
1f40 63 6f 6e 74 72 6f 6c 20 73 74 6f 72 65 73 20 73 74 61 74 65 20 69 6e 20 69 73 20 73 70 65 63 69 control.stores.state.in.is.speci
1f60 66 69 63 20 74 6f 20 74 68 65 20 63 6f 6e 74 72 6f 6c 2e 20 49 74 20 63 61 6e 20 76 61 72 79 20 fic.to.the.control..It.can.vary.
1f80 6e 6f 74 20 6f 6e 6c 79 20 62 65 74 77 65 65 6e 20 63 6f 6e 74 72 6f 6c 73 0d 0a 20 20 20 20 2f not.only.between.controls....../
1fa0 2f 2f 20 6f 66 20 64 69 66 66 65 72 65 6e 74 20 74 79 70 65 73 20 62 75 74 20 61 6c 73 6f 20 62 //.of.different.types.but.also.b
1fc0 65 74 77 65 65 6e 20 63 6f 6e 74 72 6f 6c 73 20 6f 66 20 74 68 65 20 73 61 6d 65 20 74 79 70 65 etween.controls.of.the.same.type
1fe0 2e 20 41 6e 20 3c 73 65 65 20 63 72 65 66 3d 22 41 78 69 73 43 6f 6e 74 72 6f 6c 22 2f 3e 2c 0d ..An.<see.cref="AxisControl"/>,.
2000 0a 20 20 20 20 2f 2f 2f 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 63 61 6e 20 62 65 20 73 74 6f .....///.for.example,.can.be.sto
2020 72 65 64 20 61 73 20 61 20 66 6c 6f 61 74 20 6f 72 20 61 73 20 61 20 62 79 74 65 20 6f 72 20 69 red.as.a.float.or.as.a.byte.or.i
2040 6e 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 6f 74 68 65 72 20 66 6f 72 6d 61 74 73 2e 20 3c 73 65 n.a.number.of.other.formats..<se
2060 65 20 63 72 65 66 3d 22 73 74 61 74 65 42 6c 6f 63 6b 22 2f 3e 0d 0a 20 20 20 20 2f 2f 2f 20 69 e.cref="stateBlock"/>......///.i
2080 64 65 6e 74 69 66 69 65 73 20 62 6f 74 68 20 77 68 65 72 65 20 74 68 65 20 63 6f 6e 74 72 6f 6c dentifies.both.where.the.control
20a0 20 73 74 6f 72 65 73 20 69 74 73 20 73 74 61 74 65 20 61 73 20 77 65 6c 6c 20 61 73 20 74 68 65 .stores.its.state.as.well.as.the
20c0 20 66 6f 72 6d 61 74 20 69 74 20 73 74 6f 72 65 73 20 69 74 20 69 6e 2e 0d 0a 20 20 20 20 2f 2f .format.it.stores.it.in.......//
20e0 2f 0d 0a 20 20 20 20 2f 2f 2f 20 43 6f 6e 74 72 6f 6c 73 20 61 72 65 20 67 65 6e 65 72 61 6c 6c /......///.Controls.are.generall
2100 79 20 6e 6f 74 20 63 72 65 61 74 65 64 20 64 69 72 65 63 74 6c 79 20 62 75 74 20 61 72 65 20 63 y.not.created.directly.but.are.c
2120 72 65 61 74 65 64 20 69 6e 74 65 72 6e 61 6c 6c 79 20 62 79 20 74 68 65 20 69 6e 70 75 74 20 73 reated.internally.by.the.input.s
2140 79 73 74 65 6d 0d 0a 20 20 20 20 2f 2f 2f 20 66 72 6f 6d 20 64 61 74 61 20 6b 6e 6f 77 6e 20 61 ystem......///.from.data.known.a
2160 73 20 22 6c 61 79 6f 75 74 73 22 20 28 73 65 65 20 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 s."layouts".(see.<see.cref="Inpu
2180 74 43 6f 6e 74 72 6f 6c 4c 61 79 6f 75 74 22 2f 3e 29 2e 20 45 61 63 68 20 73 75 63 68 20 6c 61 tControlLayout"/>)..Each.such.la
21a0 79 6f 75 74 20 64 65 73 63 72 69 62 65 73 0d 0a 20 20 20 20 2f 2f 2f 20 74 68 65 20 73 65 74 75 yout.describes......///.the.setu
21c0 70 20 6f 66 20 61 20 73 70 65 63 69 66 69 63 20 68 69 65 72 61 72 63 68 79 20 6f 66 20 63 6f 6e p.of.a.specific.hierarchy.of.con
21e0 74 72 6f 6c 73 2e 20 54 68 65 20 73 79 73 74 65 6d 20 69 6e 74 65 72 6e 61 6c 6c 79 20 6d 61 69 trols..The.system.internally.mai
2200 6e 74 61 69 6e 73 20 61 20 72 65 67 69 73 74 72 79 20 6f 66 0d 0a 20 20 20 20 2f 2f 2f 20 6c 61 ntains.a.registry.of......///.la
2220 79 6f 75 74 73 20 61 6e 64 20 70 72 6f 64 75 63 65 73 20 64 65 76 69 63 65 73 20 61 6e 64 20 63 youts.and.produces.devices.and.c
2240 6f 6e 74 72 6f 6c 73 20 66 72 6f 6d 20 74 68 65 6d 20 61 73 20 6e 65 65 64 65 64 2e 20 54 68 65 ontrols.from.them.as.needed..The
2260 20 6c 61 79 6f 75 74 20 74 68 61 74 20 61 20 63 6f 6e 74 72 6f 6c 20 68 61 73 0d 0a 20 20 20 20 .layout.that.a.control.has......
2280 2f 2f 2f 20 62 65 65 6e 20 63 72 65 61 74 65 64 20 66 72 6f 6d 20 63 61 6e 20 62 65 20 71 75 65 ///.been.created.from.can.be.que
22a0 72 69 65 64 20 75 73 69 6e 67 20 3c 73 65 65 20 63 72 65 66 3d 22 6c 61 79 6f 75 74 22 2f 3e 2e ried.using.<see.cref="layout"/>.
22c0 20 46 6f 72 20 6d 6f 73 74 20 70 75 72 70 6f 73 65 73 2c 20 74 68 65 20 69 6e 74 72 69 63 61 63 .For.most.purposes,.the.intricac
22e0 69 65 73 0d 0a 20 20 20 20 2f 2f 2f 20 6f 66 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 6c 61 79 6f ies......///.of.the.control.layo
2300 75 74 20 6d 65 63 68 61 6e 69 73 6d 73 20 63 61 6e 20 62 65 20 69 67 6e 6f 72 65 64 20 61 6e 64 ut.mechanisms.can.be.ignored.and
2320 20 69 74 20 69 73 20 73 75 66 66 69 63 69 65 6e 74 20 74 6f 20 6b 6e 6f 77 20 74 68 65 20 6e 61 .it.is.sufficient.to.know.the.na
2340 6d 65 73 20 6f 66 20 61 0d 0a 20 20 20 20 2f 2f 2f 20 73 6d 61 6c 6c 20 73 65 74 20 6f 66 20 63 mes.of.a......///.small.set.of.c
2360 6f 6d 6d 6f 6e 20 64 65 76 69 63 65 20 6c 61 79 6f 75 74 73 20 73 75 63 68 20 61 73 20 22 4b 65 ommon.device.layouts.such.as."Ke
2380 79 62 6f 61 72 64 22 2c 20 22 4d 6f 75 73 65 22 2c 20 22 47 61 6d 65 70 61 64 22 2c 20 61 6e 64 yboard",."Mouse",."Gamepad",.and
23a0 20 22 54 6f 75 63 68 73 63 72 65 65 6e 22 2e 0d 0a 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 2f 2f ."Touchscreen".......///......//
23c0 2f 20 45 61 63 68 20 63 6f 6e 74 72 6f 6c 20 68 61 73 20 61 20 73 69 6e 67 6c 65 2c 20 66 69 78 /.Each.control.has.a.single,.fix
23e0 65 64 20 76 61 6c 75 65 20 74 79 70 65 2e 20 54 68 65 20 74 79 70 65 20 63 61 6e 20 62 65 20 71 ed.value.type..The.type.can.be.q
2400 75 65 72 69 65 64 20 61 74 20 72 75 6e 74 69 6d 65 20 75 73 69 6e 67 0d 0a 20 20 20 20 2f 2f 2f ueried.at.runtime.using......///
2420 20 3c 73 65 65 20 63 72 65 66 3d 22 76 61 6c 75 65 54 79 70 65 22 2f 3e 2e 20 4d 6f 73 74 20 74 .<see.cref="valueType"/>..Most.t
2440 79 70 65 73 20 6f 66 20 63 6f 6e 74 72 6f 6c 73 20 61 72 65 20 64 65 72 69 76 65 64 20 66 72 6f ypes.of.controls.are.derived.fro
2460 6d 20 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 7b 54 56 61 6c 75 65 m.<see.cref="InputControl{TValue
2480 7d 22 2f 3e 0d 0a 20 20 20 20 2f 2f 2f 20 77 68 69 63 68 20 68 61 73 20 41 50 49 73 20 73 70 65 }"/>......///.which.has.APIs.spe
24a0 63 69 66 69 63 20 74 6f 20 74 68 65 20 74 79 70 65 20 6f 66 20 76 61 6c 75 65 20 6f 66 20 74 68 cific.to.the.type.of.value.of.th
24c0 65 20 63 6f 6e 74 72 6f 6c 20 28 65 2e 67 2e 20 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 e.control.(e.g..<see.cref="Input
24e0 43 6f 6e 74 72 6f 6c 7b 54 56 61 6c 75 65 7d 2e 52 65 61 64 56 61 6c 75 65 28 29 22 2f 3e 2e 0d Control{TValue}.ReadValue()"/>..
2500 0a 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 2f 2f 2f 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 .....///......///.The.following.
2520 65 78 61 6d 70 6c 65 20 64 65 6d 6f 6e 73 74 72 61 74 65 73 20 76 61 72 69 6f 75 73 20 63 6f 6d example.demonstrates.various.com
2540 6d 6f 6e 20 6f 70 65 72 61 74 69 6f 6e 73 20 70 65 72 66 6f 72 6d 65 64 20 6f 6e 20 69 6e 70 75 mon.operations.performed.on.inpu
2560 74 20 63 6f 6e 74 72 6f 6c 73 3a 0d 0a 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 2f 2f 2f 20 3c 65 t.controls:......///......///.<e
2580 78 61 6d 70 6c 65 3e 0d 0a 20 20 20 20 2f 2f 2f 20 3c 63 6f 64 65 3e 0d 0a 20 20 20 20 2f 2f 2f xample>......///.<code>......///
25a0 20 2f 2f 20 4c 6f 6f 6b 20 75 70 20 64 70 61 64 2f 75 70 20 63 6f 6e 74 72 6f 6c 20 6f 6e 20 63 .//.Look.up.dpad/up.control.on.c
25c0 75 72 72 65 6e 74 20 67 61 6d 65 70 61 64 2e 0d 0a 20 20 20 20 2f 2f 2f 20 76 61 72 20 64 70 61 urrent.gamepad.......///.var.dpa
25e0 64 55 70 43 6f 6e 74 72 6f 6c 20 3d 20 47 61 6d 65 70 61 64 2e 63 75 72 72 65 6e 74 5b 22 64 70 dUpControl.=.Gamepad.current["dp
2600 61 64 2f 75 70 22 5d 3b 0d 0a 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 2f 2f 2f 20 2f 2f 20 4c 6f ad/up"];......///......///.//.Lo
2620 6f 6b 20 75 70 20 74 68 65 20 62 61 63 6b 20 62 75 74 74 6f 6e 20 6f 6e 20 74 68 65 20 63 75 72 ok.up.the.back.button.on.the.cur
2640 72 65 6e 74 20 67 61 6d 65 70 61 64 2e 0d 0a 20 20 20 20 2f 2f 2f 20 76 61 72 20 62 61 63 6b 42 rent.gamepad.......///.var.backB
2660 75 74 74 6f 6e 20 3d 20 47 61 6d 65 70 61 64 2e 63 75 72 72 65 6e 74 5b 22 7b 42 61 63 6b 7d 22 utton.=.Gamepad.current["{Back}"
2680 5d 3b 0d 0a 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 2f 2f 2f 20 2f 2f 20 4c 6f 6f 6b 20 75 70 20 ];......///......///.//.Look.up.
26a0 61 6c 6c 20 64 70 61 64 2f 75 70 20 63 6f 6e 74 72 6f 6c 73 20 6f 6e 20 61 6c 6c 20 67 61 6d 65 all.dpad/up.controls.on.all.game
26c0 70 61 64 73 20 69 6e 20 74 68 65 20 73 79 73 74 65 6d 2e 0d 0a 20 20 20 20 2f 2f 2f 20 75 73 69 pads.in.the.system.......///.usi
26e0 6e 67 20 28 76 61 72 20 63 6f 6e 74 72 6f 6c 73 20 3d 20 49 6e 70 75 74 53 79 73 74 65 6d 2e 46 ng.(var.controls.=.InputSystem.F
2700 69 6e 64 43 6f 6e 74 72 6f 6c 73 28 22 26 6c 74 3b 47 61 6d 65 70 61 64 26 67 74 3b 2f 64 70 61 indControls("&lt;Gamepad&gt;/dpa
2720 64 2f 75 70 22 29 29 0d 0a 20 20 20 20 2f 2f 2f 20 20 20 20 20 44 65 62 75 67 2e 4c 6f 67 28 24 d/up"))......///.....Debug.Log($
2740 22 46 6f 75 6e 64 20 7b 63 6f 6e 74 72 6f 6c 73 2e 43 6f 75 6e 74 7d 20 63 6f 6e 74 72 6f 6c 73 "Found.{controls.Count}.controls
2760 22 29 3b 0d 0a 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 2f 2f 2f 20 2f 2f 20 44 69 73 70 6c 61 79 ");......///......///.//.Display
2780 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 61 6c 6c 20 63 6f 6e 74 72 6f 6c 73 20 6f 6e 20 74 68 .the.value.of.all.controls.on.th
27a0 65 20 63 75 72 72 65 6e 74 20 67 61 6d 65 70 61 64 2e 0d 0a 20 20 20 20 2f 2f 2f 20 66 6f 72 65 e.current.gamepad.......///.fore
27c0 61 63 68 20 28 76 61 72 20 63 6f 6e 74 72 6f 6c 20 69 6e 20 47 61 6d 65 70 61 64 2e 63 75 72 72 ach.(var.control.in.Gamepad.curr
27e0 65 6e 74 2e 61 6c 6c 43 6f 6e 74 72 6f 6c 73 29 0d 0a 20 20 20 20 2f 2f 2f 20 20 20 20 20 44 65 ent.allControls)......///.....De
2800 62 75 67 2e 4c 6f 67 28 63 6f 6e 74 72 6f 6c 73 2e 52 65 61 64 56 61 6c 75 65 41 73 4f 62 6a 65 bug.Log(controls.ReadValueAsObje
2820 63 74 28 29 29 3b 0d 0a 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 2f 2f 2f 20 2f 2f 20 54 72 61 63 ct());......///......///.//.Trac
2840 6b 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 6c 65 66 74 20 73 74 69 63 6b 20 6f 6e k.the.value.of.the.left.stick.on
2860 20 74 68 65 20 63 75 72 72 65 6e 74 20 67 61 6d 65 70 61 64 20 6f 76 65 72 20 74 69 6d 65 2e 0d .the.current.gamepad.over.time..
2880 0a 20 20 20 20 2f 2f 2f 20 76 61 72 20 6c 65 66 74 53 74 69 63 6b 48 69 73 74 6f 72 79 20 3d 20 .....///.var.leftStickHistory.=.
28a0 6e 65 77 20 49 6e 70 75 74 53 74 61 74 65 48 69 73 74 6f 72 79 28 47 61 6d 65 70 61 64 2e 63 75 new.InputStateHistory(Gamepad.cu
28c0 72 72 65 6e 74 2e 6c 65 66 74 53 74 69 63 6b 29 3b 0d 0a 20 20 20 20 2f 2f 2f 20 6c 65 66 74 53 rrent.leftStick);......///.leftS
28e0 74 69 63 6b 48 69 73 74 6f 72 79 2e 45 6e 61 62 6c 65 28 29 3b 0d 0a 20 20 20 20 2f 2f 2f 20 3c tickHistory.Enable();......///.<
2900 2f 63 6f 64 65 3e 0d 0a 20 20 20 20 2f 2f 2f 20 3c 2f 65 78 61 6d 70 6c 65 3e 0d 0a 20 20 20 20 /code>......///.</example>......
2920 2f 2f 2f 20 3c 65 78 61 6d 70 6c 65 3e 0d 0a 20 20 20 20 2f 2f 2f 20 3c 2f 65 78 61 6d 70 6c 65 ///.<example>......///.</example
2940 3e 0d 0a 20 20 20 20 2f 2f 2f 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 2f 2f 2f 20 3c >......///.</remarks>......///.<
2960 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 7b 54 56 61 6c 75 65 7d 22 2f see.cref="InputControl{TValue}"/
2980 3e 0d 0a 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 49 6e 70 75 74 44 >......///.<seealso.cref="InputD
29a0 65 76 69 63 65 22 2f 3e 0d 0a 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d evice"/>......///.<seealso.cref=
29c0 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 50 61 74 68 22 2f 3e 0d 0a 20 20 20 20 2f 2f 2f 20 3c 73 "InputControlPath"/>......///.<s
29e0 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 49 6e 70 75 74 53 74 61 74 65 42 6c 6f 63 6b 22 2f 3e 0d eealso.cref="InputStateBlock"/>.
2a00 0a 20 20 20 20 5b 44 65 62 75 67 67 65 72 44 69 73 70 6c 61 79 28 22 7b 44 65 62 75 67 67 65 72 .....[DebuggerDisplay("{Debugger
2a20 44 69 73 70 6c 61 79 28 29 2c 6e 71 7d 22 29 5d 0d 0a 20 20 20 20 5b 53 63 72 69 70 74 69 6e 67 Display(),nq}")]......[Scripting
2a40 2e 50 72 65 73 65 72 76 65 5d 0d 0a 20 20 20 20 70 75 62 6c 69 63 20 61 62 73 74 72 61 63 74 20 .Preserve]......public.abstract.
2a60 63 6c 61 73 73 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 class.InputControl......{.......
2a80 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 54 68 ...///.<summary>..........///.Th
2aa0 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 6f 6e 74 72 6f 6c 2c 20 69 2e 65 2e 20 74 68 65 20 e.name.of.the.control,.i.e..the.
2ac0 66 69 6e 61 6c 20 6e 61 6d 65 20 70 61 72 74 20 69 6e 20 69 74 73 20 70 61 74 68 2e 0d 0a 20 20 final.name.part.in.its.path.....
2ae0 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f ......///.</summary>..........//
2b00 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 4e 61 6d 65 73 20 6f /.<remarks>..........///.Names.o
2b20 66 20 63 6f 6e 74 72 6f 6c 73 20 6d 75 73 74 20 62 65 20 75 6e 69 71 75 65 20 77 69 74 68 69 6e f.controls.must.be.unique.within
2b40 20 74 68 65 20 63 6f 6e 74 65 78 74 20 6f 66 20 74 68 65 69 72 20 70 61 72 65 6e 74 2e 0d 0a 20 .the.context.of.their.parent....
2b60 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 4e 6f 74 65 20 74 68 61 .......///..........///.Note.tha
2b80 74 20 74 68 69 73 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 6f 6e 74 72 6f t.this.is.the.name.of.the.contro
2ba0 6c 20 61 73 20 61 73 73 69 67 6e 65 64 20 69 6e 74 65 72 6e 61 6c 6c 79 20 28 6c 69 6b 65 20 22 l.as.assigned.internally.(like."
2bc0 62 75 74 74 6f 6e 53 6f 75 74 68 22 29 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 61 6e 64 20 6e buttonSouth")..........///.and.n
2be0 6f 74 20 6e 65 63 65 73 73 61 72 69 6c 79 20 61 20 67 6f 6f 64 20 64 69 73 70 6c 61 79 20 6e 61 ot.necessarily.a.good.display.na
2c00 6d 65 2e 20 55 73 65 20 3c 73 65 65 20 63 72 65 66 3d 22 64 69 73 70 6c 61 79 4e 61 6d 65 22 2f me..Use.<see.cref="displayName"/
2c20 3e 20 66 6f 72 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 67 65 74 74 69 6e 67 20 6d 6f 72 65 20 >.for..........///.getting.more.
2c40 72 65 61 64 61 62 6c 65 20 6e 61 6d 65 73 20 66 6f 72 20 64 69 73 70 6c 61 79 20 70 75 72 70 6f readable.names.for.display.purpo
2c60 73 65 73 20 28 77 68 65 72 65 20 61 76 61 69 6c 61 62 6c 65 29 2e 0d 0a 20 20 20 20 20 20 20 20 ses.(where.available)...........
2c80 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 4c 6f 6f 6b 75 70 20 6f 66 20 6e 61 6d 65 73 ///..........///.Lookup.of.names
2ca0 20 69 73 20 63 61 73 65 2d 69 6e 73 65 6e 73 69 74 69 76 65 2e 0d 0a 20 20 20 20 20 20 20 20 2f .is.case-insensitive.........../
2cc0 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 54 68 69 73 20 69 73 20 73 65 74 20 66 72 6f 6d //..........///.This.is.set.from
2ce0 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 69 6e 20 74 68 65 20 .the.name.of.the.control.in.the.
2d00 6c 61 79 6f 75 74 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d layout...........///.</remarks>.
2d20 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 70 61 74 68 .........///.<seealso.cref="path
2d40 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 "/>..........///.<seealso.cref="
2d60 61 6c 69 61 73 65 73 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f aliases"/>..........///.<seealso
2d80 20 63 72 65 66 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 41 74 74 72 69 62 75 74 65 2e 6e 61 6d .cref="InputControlAttribute.nam
2da0 65 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d e"/>..........///.<seealso.cref=
2dc0 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 4c 61 79 6f 75 74 2e 43 6f 6e 74 72 6f 6c 49 74 65 6d 2e "InputControlLayout.ControlItem.
2de0 6e 61 6d 65 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 72 69 6e 67 20 6e name"/>..........public.string.n
2e00 61 6d 65 20 3d 3e 20 6d 5f 4e 61 6d 65 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 2f 54 4f ame.=>.m_Name;............////TO
2e20 44 4f 3a 20 70 72 6f 74 65 63 74 20 61 67 61 69 6e 73 74 20 65 6d 70 74 79 20 73 74 72 69 6e 67 DO:.protect.against.empty.string
2e40 73 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 s..........///.<summary>........
2e60 20 20 2f 2f 2f 20 54 68 65 20 74 65 78 74 20 74 6f 20 64 69 73 70 6c 61 79 20 61 73 20 74 68 65 ..///.The.text.to.display.as.the
2e80 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 6f 6e 74 72 6f 6c 2e 0d 0a 20 20 20 20 20 20 20 20 2f .name.of.the.control.........../
2ea0 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 //.</summary>..........///.<rema
2ec0 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20 rks>..........///.Note.that.the.
2ee0 64 69 73 70 6c 61 79 20 6e 61 6d 65 20 6f 66 20 61 20 63 6f 6e 74 72 6f 6c 20 6d 61 79 20 63 68 display.name.of.a.control.may.ch
2f00 61 6e 67 65 20 6f 76 65 72 20 74 69 6d 65 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 77 68 65 ange.over.time..For.example,.whe
2f20 6e 20 63 68 61 6e 67 69 6e 67 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 66 72 6f 6d 20 61 20 51 n.changing..........///.from.a.Q
2f40 57 45 52 54 59 20 6b 65 79 62 6f 61 72 64 20 6c 61 79 6f 75 74 20 74 6f 20 61 6e 20 41 5a 45 52 WERTY.keyboard.layout.to.an.AZER
2f60 54 59 20 6b 65 79 62 6f 61 72 64 20 6c 61 79 6f 75 74 2c 20 74 68 65 20 22 71 22 20 6b 65 79 20 TY.keyboard.layout,.the."q".key.
2f80 28 77 68 69 63 68 20 77 69 6c 6c 20 6b 65 65 70 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 74 68 (which.will.keep..........///.th
2fa0 61 74 20 3c 73 65 65 20 63 72 65 66 3d 22 6e 61 6d 65 22 2f 3e 29 20 77 69 6c 6c 20 63 68 61 6e at.<see.cref="name"/>).will.chan
2fc0 67 65 20 69 74 73 20 64 69 73 70 6c 61 79 20 6e 61 6d 65 20 66 72 6f 6d 20 22 71 22 20 74 6f 20 ge.its.display.name.from."q".to.
2fe0 22 61 22 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 42 "a"...........///..........///.B
3000 79 20 64 65 66 61 75 6c 74 2c 20 61 20 63 6f 6e 74 72 6f 6c 27 73 20 64 69 73 70 6c 61 79 20 6e y.default,.a.control's.display.n
3020 61 6d 65 20 77 69 6c 6c 20 63 6f 6d 65 20 66 72 6f 6d 20 69 74 73 20 6c 61 79 6f 75 74 2e 20 49 ame.will.come.from.its.layout..I
3040 66 20 69 74 20 69 73 20 6e 6f 74 20 61 73 73 69 67 6e 65 64 0d 0a 20 20 20 20 20 20 20 20 2f 2f f.it.is.not.assigned..........//
3060 2f 20 61 20 64 69 73 70 6c 61 79 20 6e 61 6d 65 20 74 68 65 72 65 2c 20 74 68 65 20 64 69 73 70 /.a.display.name.there,.the.disp
3080 6c 61 79 20 6e 61 6d 65 20 77 69 6c 6c 20 64 65 66 61 75 6c 74 20 74 6f 20 3c 73 65 65 20 63 72 lay.name.will.default.to.<see.cr
30a0 65 66 3d 22 6e 61 6d 65 22 2f 3e 2e 20 48 6f 77 65 76 65 72 2c 20 73 70 65 63 69 66 69 63 0d 0a ef="name"/>..However,.specific..
30c0 20 20 20 20 20 20 20 20 2f 2f 2f 20 63 6f 6e 74 72 6f 6c 73 20 6d 61 79 20 6f 76 65 72 72 69 64 ........///.controls.may.overrid
30e0 65 20 74 68 69 73 20 62 65 68 61 76 69 6f 72 2e 20 3c 73 65 65 20 63 72 65 66 3d 22 4b 65 79 43 e.this.behavior..<see.cref="KeyC
3100 6f 6e 74 72 6f 6c 22 2f 3e 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 77 69 6c 6c 20 73 65 74 ontrol"/>,.for.example,.will.set
3120 20 74 68 65 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 64 69 73 70 6c 61 79 20 6e 61 6d 65 20 74 .the..........///.display.name.t
3140 6f 20 74 68 65 20 61 63 74 75 61 6c 20 6b 65 79 20 6e 61 6d 65 20 63 6f 72 72 65 73 70 6f 6e 64 o.the.actual.key.name.correspond
3160 69 6e 67 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 6b 65 79 62 6f 61 72 64 20 6c 61 79 6f ing.to.the.current.keyboard.layo
3180 75 74 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 46 6f ut...........///..........///.Fo
31a0 72 20 6e 65 73 74 65 64 20 63 6f 6e 74 72 6f 6c 73 2c 20 74 68 65 20 64 69 73 70 6c 61 79 20 6e r.nested.controls,.the.display.n
31c0 61 6d 65 20 77 69 6c 6c 20 69 6e 63 6c 75 64 65 20 74 68 65 20 64 69 73 70 6c 61 79 20 6e 61 6d ame.will.include.the.display.nam
31e0 65 73 20 6f 66 20 61 6c 6c 20 70 61 72 65 6e 74 20 63 6f 6e 74 72 6f 6c 73 2c 0d 0a 20 20 20 20 es.of.all.parent.controls,......
3200 20 20 20 20 2f 2f 2f 20 69 2e 65 2e 20 74 68 65 20 64 69 73 70 6c 61 79 20 6e 61 6d 65 20 77 69 ....///.i.e..the.display.name.wi
3220 6c 6c 20 66 75 6c 6c 79 20 69 64 65 6e 74 69 66 79 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 6f 6e ll.fully.identify.the.control.on
3240 20 74 68 65 20 64 65 76 69 63 65 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 64 69 .the.device..For.example,.the.di
3260 73 70 6c 61 79 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 6e 61 6d 65 20 66 6f 72 20 74 68 65 20 splay..........///.name.for.the.
3280 6c 65 66 74 20 44 2d 50 61 64 20 62 75 74 74 6f 6e 20 6f 6e 20 61 20 67 61 6d 65 70 61 64 20 69 left.D-Pad.button.on.a.gamepad.i
32a0 73 20 22 44 2d 50 61 64 20 4c 65 66 74 22 20 61 6e 64 20 6e 6f 74 20 6a 75 73 74 20 22 4c 65 66 s."D-Pad.Left".and.not.just."Lef
32c0 74 22 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 t"...........///.</remarks>.....
32e0 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 73 68 6f 72 74 44 69 73 .....///.<seealso.cref="shortDis
3300 70 6c 61 79 4e 61 6d 65 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 72 69 playName"/>..........public.stri
3320 6e 67 20 64 69 73 70 6c 61 79 4e 61 6d 65 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 ng.displayName..........{.......
3340 20 20 20 20 20 20 20 67 65 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 .......get..............{.......
3360 20 20 20 20 20 20 20 20 20 20 20 52 65 66 72 65 73 68 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 49 ...........RefreshConfigurationI
3380 66 4e 65 65 64 65 64 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 fNeeded();..................if.(
33a0 6d 5f 44 69 73 70 6c 61 79 4e 61 6d 65 20 21 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 m_DisplayName.!=.null)..........
33c0 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6d 5f 44 69 73 70 6c 61 79 4e 61 6d 65 ............return.m_DisplayName
33e0 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6d 5f 44 69 73 70 6c 61 79 ;..................if.(m_Display
3400 4e 61 6d 65 46 72 6f 6d 4c 61 79 6f 75 74 20 21 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 NameFromLayout.!=.null).........
3420 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6d 5f 44 69 73 70 6c 61 79 4e 61 6d .............return.m_DisplayNam
3440 65 46 72 6f 6d 4c 61 79 6f 75 74 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 eFromLayout;..................re
3460 74 75 72 6e 20 6d 5f 4e 61 6d 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 turn.m_Name;..............}.....
3480 20 20 20 20 20 20 20 20 20 2f 2f 20 54 68 69 73 20 69 73 20 6e 6f 74 20 70 75 62 6c 69 63 20 61 .........//.This.is.not.public.a
34a0 73 20 61 20 64 6f 6d 61 69 6e 20 72 65 6c 6f 61 64 20 77 69 6c 6c 20 77 69 70 65 20 74 68 65 20 s.a.domain.reload.will.wipe.the.
34c0 63 68 61 6e 67 65 2e 20 54 68 69 73 20 73 68 6f 75 6c 64 20 72 65 61 6c 6c 79 0d 0a 20 20 20 20 change..This.should.really......
34e0 20 20 20 20 20 20 20 20 2f 2f 20 63 6f 6d 65 20 66 72 6f 6d 20 74 68 65 20 63 6f 6e 74 72 6f 6c ........//.come.from.the.control
3500 20 69 74 73 65 6c 66 20 2a 69 66 2a 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 77 61 6e 74 73 20 74 .itself.*if*.the.control.wants.t
3520 6f 20 68 61 76 65 20 61 20 63 75 73 74 6f 6d 20 64 69 73 70 6c 61 79 20 6e 61 6d 65 0d 0a 20 20 o.have.a.custom.display.name....
3540 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6e 6f 74 20 64 72 69 76 65 6e 20 62 79 20 69 74 73 20 6c ..........//.not.driven.by.its.l
3560 61 79 6f 75 74 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 74 65 63 74 65 64 20 73 65 ayout...............protected.se
3580 74 20 3d 3e 20 6d 5f 44 69 73 70 6c 61 79 4e 61 6d 65 20 3d 20 76 61 6c 75 65 3b 0d 0a 20 20 20 t.=>.m_DisplayName.=.value;.....
35a0 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d .....}............///.<summary>.
35c0 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 41 6e 20 61 6c 74 65 72 6e 61 74 65 2c 20 61 62 62 72 65 .........///.An.alternate,.abbre
35e0 76 69 61 74 65 64 20 3c 73 65 65 20 63 72 65 66 3d 22 64 69 73 70 6c 61 79 4e 61 6d 65 22 2f 3e viated.<see.cref="displayName"/>
3600 20 28 66 6f 72 20 65 78 61 6d 70 6c 65 20 22 4c 4d 42 22 20 69 6e 73 74 65 61 64 20 6f 66 20 22 .(for.example."LMB".instead.of."
3620 4c 65 66 74 20 42 75 74 74 6f 6e 22 29 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 Left.Button")...........///.</su
3640 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a 20 mmary>..........///.<remarks>...
3660 20 20 20 20 20 20 20 2f 2f 2f 20 49 66 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 68 61 73 20 6e 6f .......///.If.the.control.has.no
3680 20 61 62 62 72 65 76 69 61 74 65 64 20 76 65 72 73 69 6f 6e 2c 20 74 68 69 73 20 77 69 6c 6c 20 .abbreviated.version,.this.will.
36a0 62 65 20 6e 75 6c 6c 2e 20 4e 6f 74 65 20 74 68 61 74 20 74 68 69 73 20 62 65 68 61 76 69 6f 72 be.null..Note.that.this.behavior
36c0 20 69 73 20 64 69 66 66 65 72 65 6e 74 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 66 72 6f 6d 20 .is.different..........///.from.
36e0 3c 73 65 65 20 63 72 65 66 3d 22 64 69 73 70 6c 61 79 4e 61 6d 65 22 2f 3e 20 77 68 69 63 68 20 <see.cref="displayName"/>.which.
3700 77 69 6c 6c 20 66 61 6c 6c 20 62 61 63 6b 20 74 6f 20 3c 73 65 65 20 63 72 65 66 3d 22 6e 61 6d will.fall.back.to.<see.cref="nam
3720 65 22 2f 3e 20 69 66 20 6e 6f 20 64 69 73 70 6c 61 79 20 6e 61 6d 65 20 68 61 73 0d 0a 20 20 20 e"/>.if.no.display.name.has.....
3740 20 20 20 20 20 2f 2f 2f 20 62 65 65 6e 20 61 73 73 69 67 6e 65 64 20 74 6f 20 74 68 65 20 63 6f .....///.been.assigned.to.the.co
3760 6e 74 72 6f 6c 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f ntrol...........///..........///
3780 20 46 6f 72 20 6e 65 73 74 65 64 20 63 6f 6e 74 72 6f 6c 73 2c 20 74 68 65 20 73 68 6f 72 74 20 .For.nested.controls,.the.short.
37a0 64 69 73 70 6c 61 79 20 6e 61 6d 65 20 77 69 6c 6c 20 69 6e 63 6c 75 64 65 20 74 68 65 20 73 68 display.name.will.include.the.sh
37c0 6f 72 74 20 64 69 73 70 6c 61 79 20 6e 61 6d 65 73 20 6f 66 20 61 6c 6c 20 70 61 72 65 6e 74 20 ort.display.names.of.all.parent.
37e0 63 6f 6e 74 72 6f 6c 73 2c 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 69 2e 65 2e 20 74 68 65 20 controls,..........///.i.e..the.
3800 64 69 73 70 6c 61 79 20 6e 61 6d 65 20 77 69 6c 6c 20 66 75 6c 6c 79 20 69 64 65 6e 74 69 66 79 display.name.will.fully.identify
3820 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 6f 6e 20 74 68 65 20 64 65 76 69 63 65 2e 20 46 6f 72 20 .the.control.on.the.device..For.
3840 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 64 69 73 70 6c 61 79 0d 0a 20 20 20 20 20 20 20 20 2f 2f example,.the.display..........//
3860 2f 20 6e 61 6d 65 20 66 6f 72 20 74 68 65 20 6c 65 66 74 20 44 2d 50 61 64 20 62 75 74 74 6f 6e /.name.for.the.left.D-Pad.button
3880 20 6f 6e 20 61 20 67 61 6d 65 70 61 64 20 69 73 20 22 44 2d 50 61 64 20 5c 75 32 31 39 30 22 20 .on.a.gamepad.is."D-Pad.\u2190".
38a0 61 6e 64 20 6e 6f 74 20 6a 75 73 74 20 22 5c 75 32 31 39 30 22 2e 20 4e 6f 74 65 20 74 68 61 74 and.not.just."\u2190"..Note.that
38c0 20 69 66 20 61 20 70 61 72 65 6e 74 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 63 6f 6e 74 72 6f .if.a.parent..........///.contro
38e0 6c 20 68 61 73 20 6e 6f 20 73 68 6f 72 74 20 6e 61 6d 65 2c 20 69 74 73 20 6c 6f 6e 67 20 6e 61 l.has.no.short.name,.its.long.na
3900 6d 65 20 77 69 6c 6c 20 62 65 20 75 73 65 64 20 69 6e 73 74 65 61 64 2e 0d 0a 20 20 20 20 20 20 me.will.be.used.instead.........
3920 20 20 2f 2f 2f 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 ..///.</remarks>..........///.<s
3940 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 64 69 73 70 6c 61 79 4e 61 6d 65 22 2f 3e 0d 0a 20 20 20 eealso.cref="displayName"/>.....
3960 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 72 69 6e 67 20 73 68 6f 72 74 44 69 73 70 6c 61 79 4e .....public.string.shortDisplayN
3980 61 6d 65 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 65 74 0d ame..........{..............get.
39a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............{..................
39c0 52 65 66 72 65 73 68 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 49 66 4e 65 65 64 65 64 28 29 3b 0d RefreshConfigurationIfNeeded();.
39e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6d 5f 53 68 6f 72 74 44 69 73 70 .................if.(m_ShortDisp
3a00 6c 61 79 4e 61 6d 65 20 21 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 layName.!=.null)................
3a20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6d 5f 53 68 6f 72 74 44 69 73 70 6c 61 79 4e 61 6d 65 3b ......return.m_ShortDisplayName;
3a40 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6d 5f 53 68 6f 72 74 44 69 73 ..................if.(m_ShortDis
3a60 70 6c 61 79 4e 61 6d 65 46 72 6f 6d 4c 61 79 6f 75 74 20 21 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 playNameFromLayout.!=.null).....
3a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6d 5f 53 68 6f 72 74 44 .................return.m_ShortD
3aa0 69 73 70 6c 61 79 4e 61 6d 65 46 72 6f 6d 4c 61 79 6f 75 74 3b 0d 0a 20 20 20 20 20 20 20 20 20 isplayNameFromLayout;...........
3ac0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 .......return.null;.............
3ae0 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 74 65 63 74 65 64 20 73 65 74 20 3d 3e .}..............protected.set.=>
3b00 20 6d 5f 53 68 6f 72 74 44 69 73 70 6c 61 79 4e 61 6d 65 20 3d 20 76 61 6c 75 65 3b 0d 0a 20 20 .m_ShortDisplayName.=.value;....
3b20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e ......}............///.<summary>
3b40 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 46 75 6c 6c 20 70 61 74 68 20 61 6c 6c 20 74 68 65 20 ..........///.Full.path.all.the.
3b60 77 61 79 20 66 72 6f 6d 20 74 68 65 20 72 6f 6f 74 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 way.from.the.root...........///.
3b80 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 </summary>..........///.<remarks
3ba0 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 54 68 69 73 20 77 69 6c 6c 20 61 6c 77 61 79 73 20 >..........///.This.will.always.
3bc0 62 65 20 74 68 65 20 22 65 66 66 65 63 74 69 76 65 22 20 70 61 74 68 20 6f 66 20 74 68 65 20 63 be.the."effective".path.of.the.c
3be0 6f 6e 74 72 6f 6c 2c 20 69 2e 65 2e 20 69 74 20 77 69 6c 6c 20 6e 6f 74 20 63 6f 6e 74 61 69 6e ontrol,.i.e..it.will.not.contain
3c00 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 65 6c 65 6d 65 6e 74 73 20 73 75 63 68 20 61 73 20 75 ..........///.elements.such.as.u
3c20 73 61 67 65 73 20 28 3c 63 3e 22 7b 42 61 63 6b 7d 22 3c 2f 63 3e 29 20 61 6e 64 20 6f 74 68 65 sages.(<c>"{Back}"</c>).and.othe
3c40 72 20 65 6c 65 6d 65 6e 74 73 20 74 68 61 74 20 63 61 6e 20 62 65 20 70 61 72 74 20 6f 66 0d 0a r.elements.that.can.be.part.of..
3c60 20 20 20 20 20 20 20 20 2f 2f 2f 20 63 6f 6e 74 72 6f 6c 20 70 61 74 68 73 20 75 73 65 64 20 66 ........///.control.paths.used.f
3c80 6f 72 20 6d 61 74 63 68 69 6e 67 2e 20 49 6e 73 74 65 61 64 2c 20 74 68 69 73 20 70 72 6f 70 65 or.matching..Instead,.this.prope
3ca0 72 74 79 20 77 69 6c 6c 20 61 6c 77 61 79 73 20 62 65 20 61 20 73 69 6d 70 6c 65 0d 0a 20 20 20 rty.will.always.be.a.simple.....
3cc0 20 20 20 20 20 2f 2f 2f 20 6c 69 6e 65 61 72 20 6f 72 64 65 72 69 6e 67 20 6f 66 20 6e 61 6d 65 .....///.linear.ordering.of.name
3ce0 73 20 6c 65 61 64 69 6e 67 20 66 72 6f 6d 20 74 68 65 20 64 65 76 69 63 65 20 61 74 20 74 68 65 s.leading.from.the.device.at.the
3d00 20 74 6f 70 20 74 6f 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 77 69 74 68 20 65 61 63 68 0d 0a 20 .top.to.the.control.with.each...
3d20 20 20 20 20 20 20 20 2f 2f 2f 20 65 6c 65 6d 65 6e 74 20 62 65 69 6e 67 20 73 65 70 61 72 61 74 .......///.element.being.separat
3d40 65 64 20 62 79 20 61 20 66 6f 72 77 61 72 64 20 73 6c 61 73 68 20 28 3c 63 3e 2f 3c 2f 63 3e 29 ed.by.a.forward.slash.(<c>/</c>)
3d60 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 41 6c 6c 6f ...........///..........///.Allo
3d80 63 61 74 65 73 20 6f 6e 20 66 69 72 73 74 20 68 69 74 2e 20 50 61 74 68 73 20 61 72 65 20 6e 6f cates.on.first.hit..Paths.are.no
3da0 74 20 63 72 65 61 74 65 64 20 75 6e 74 69 6c 20 73 6f 6d 65 6f 6e 65 20 61 73 6b 73 20 66 6f 72 t.created.until.someone.asks.for
3dc0 20 74 68 65 6d 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f .them...........///..........///
3de0 20 3c 65 78 61 6d 70 6c 65 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 45 78 61 6d 70 6c 65 3a .<example>..........///.Example:
3e00 20 22 2f 67 61 6d 65 70 61 64 2f 6c 65 66 74 53 74 69 63 6b 2f 78 22 0d 0a 20 20 20 20 20 20 20 ."/gamepad/leftStick/x".........
3e20 20 2f 2f 2f 20 3c 2f 65 78 61 6d 70 6c 65 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 72 .///.</example>..........///.</r
3e40 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 emarks>..........///.<seealso.cr
3e60 65 66 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 50 61 74 68 22 2f 3e 0d 0a 20 20 20 20 20 20 20 ef="InputControlPath"/>.........
3e80 20 70 75 62 6c 69 63 20 73 74 72 69 6e 67 20 70 61 74 68 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a .public.string.path..........{..
3ea0 20 20 20 20 20 20 20 20 20 20 20 20 67 65 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a ............get..............{..
3ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6d 5f 50 61 74 68 20 3d 3d 20 6e 75 ................if.(m_Path.==.nu
3ee0 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 50 61 74 68 20 ll)......................m_Path.
3f00 3d 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 50 61 74 68 2e 43 6f 6d 62 69 6e 65 28 6d 5f 50 61 72 =.InputControlPath.Combine(m_Par
3f20 65 6e 74 2c 20 6d 5f 4e 61 6d 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 ent,.m_Name);..................r
3f40 65 74 75 72 6e 20 6d 5f 50 61 74 68 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 eturn.m_Path;..............}....
3f60 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e ......}............///.<summary>
3f80 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 4c 61 79 6f 75 74 20 74 68 65 20 63 6f 6e 74 72 6f 6c ..........///.Layout.the.control
3fa0 20 69 73 20 62 61 73 65 64 20 6f 6e 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d .is.based.on...........///.</sum
3fc0 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 mary>..........///.<remarks>....
3fe0 20 20 20 20 20 20 2f 2f 2f 20 54 68 69 73 20 69 73 20 74 68 65 20 6c 61 79 6f 75 74 20 6e 61 6d ......///.This.is.the.layout.nam
4000 65 20 72 61 74 68 65 72 20 74 68 61 6e 20 61 20 72 65 66 65 72 65 6e 63 65 20 74 6f 20 61 6e 20 e.rather.than.a.reference.to.an.
4020 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 4c 61 79 6f 75 74 22 2f 3e <see.cref="InputControlLayout"/>
4040 20 61 73 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 77 65 20 6f 6e 6c 79 20 63 72 65 61 74 65 20 .as..........///.we.only.create.
4060 6c 61 79 6f 75 74 20 69 6e 73 74 61 6e 63 65 73 20 64 75 72 69 6e 67 20 64 65 76 69 63 65 20 63 layout.instances.during.device.c
4080 72 65 61 74 69 6f 6e 20 61 6e 64 20 74 72 65 61 74 20 74 68 65 6d 0d 0a 20 20 20 20 20 20 20 20 reation.and.treat.them..........
40a0 2f 2f 2f 20 61 73 20 74 65 6d 70 6f 72 61 72 69 65 73 20 69 6e 20 67 65 6e 65 72 61 6c 20 73 6f ///.as.temporaries.in.general.so
40c0 20 61 73 20 74 6f 20 6e 6f 74 20 77 61 73 74 65 20 68 65 61 70 20 73 70 61 63 65 20 64 75 72 69 .as.to.not.waste.heap.space.duri
40e0 6e 67 20 6e 6f 72 6d 61 6c 20 6f 70 65 72 61 74 69 6f 6e 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f ng.normal.operation...........//
4100 2f 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 72 /.</remarks>..........public.str
4120 69 6e 67 20 6c 61 79 6f 75 74 20 3d 3e 20 6d 5f 4c 61 79 6f 75 74 3b 0d 0a 0d 0a 20 20 20 20 20 ing.layout.=>.m_Layout;.........
4140 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 53 65 ...///.<summary>..........///.Se
4160 6d 69 63 6f 6c 6f 6e 2d 73 65 70 61 72 61 74 65 64 20 6c 69 73 74 20 6f 66 20 76 61 72 69 61 6e micolon-separated.list.of.varian
4180 74 73 20 6f 66 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 6c 61 79 6f 75 74 20 6f 72 20 22 64 65 66 ts.of.the.control.layout.or."def
41a0 61 75 6c 74 22 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a ault"...........///.</summary>..
41c0 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 65 78 61 6d 70 6c 65 3e 0d 0a 20 20 20 20 20 20 20 20 2f ........///.<example>........../
41e0 2f 2f 20 22 4c 65 66 74 79 22 20 77 68 65 6e 20 75 73 69 6e 67 20 74 68 65 20 22 4c 65 66 74 79 //."Lefty".when.using.the."Lefty
4200 22 20 67 61 6d 65 70 61 64 20 6c 61 79 6f 75 74 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c ".gamepad.layout...........///.<
4220 2f 65 78 61 6d 70 6c 65 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 73 74 72 69 6e 67 /example>..........public.string
4240 20 76 61 72 69 61 6e 74 73 20 3d 3e 20 6d 5f 56 61 72 69 61 6e 74 73 3b 0d 0a 0d 0a 20 20 20 20 .variants.=>.m_Variants;........
4260 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 54 ....///.<summary>..........///.T
4280 68 65 20 64 65 76 69 63 65 20 74 68 61 74 20 74 68 69 73 20 63 6f 6e 74 72 6f 6c 20 69 73 20 61 he.device.that.this.control.is.a
42a0 20 70 61 72 74 20 6f 66 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 .part.of...........///.</summary
42c0 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 >..........///.<remarks>........
42e0 20 20 2f 2f 2f 20 54 68 69 73 20 69 73 20 74 68 65 20 72 6f 6f 74 20 6f 66 20 74 68 65 20 63 6f ..///.This.is.the.root.of.the.co
4300 6e 74 72 6f 6c 20 68 69 65 72 61 72 63 68 79 2e 20 46 6f 72 20 74 68 65 20 64 65 76 69 63 65 20 ntrol.hierarchy..For.the.device.
4320 61 74 20 74 68 65 20 72 6f 6f 74 2c 20 74 68 69 73 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 77 at.the.root,.this..........///.w
4340 69 6c 6c 20 70 6f 69 6e 74 20 74 6f 20 69 74 73 65 6c 66 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f ill.point.to.itself...........//
4360 2f 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c /.</remarks>..........///.<seeal
4380 73 6f 20 63 72 65 66 3d 22 49 6e 70 75 74 44 65 76 69 63 65 2e 61 6c 6c 43 6f 6e 74 72 6f 6c 73 so.cref="InputDevice.allControls
43a0 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 49 6e 70 75 74 44 65 76 69 63 65 20 "/>..........public.InputDevice.
43c0 64 65 76 69 63 65 20 3d 3e 20 6d 5f 44 65 76 69 63 65 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f device.=>.m_Device;............/
43e0 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 54 68 65 20 69 6d //.<summary>..........///.The.im
4400 6d 65 64 69 61 74 65 20 70 61 72 65 6e 74 20 6f 66 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 6f 72 mediate.parent.of.the.control.or
4420 20 6e 75 6c 6c 20 69 66 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 68 61 73 20 6e 6f 20 70 61 72 65 .null.if.the.control.has.no.pare
4440 6e 74 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 28 77 68 69 63 68 2c 20 6f 6e 63 65 20 66 75 6c nt..........///.(which,.once.ful
4460 6c 79 20 63 6f 6e 73 74 72 75 63 74 65 64 29 20 77 69 6c 6c 20 6f 6e 6c 79 20 62 65 20 74 68 65 ly.constructed).will.only.be.the
4480 20 63 61 73 65 20 66 6f 72 20 49 6e 70 75 74 44 65 76 69 63 65 73 29 2e 0d 0a 20 20 20 20 20 20 .case.for.InputDevices).........
44a0 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 ..///.</summary>..........///.<s
44c0 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 63 68 69 6c 64 72 65 6e 22 2f 3e 0d 0a 20 20 20 20 20 20 eealso.cref="children"/>........
44e0 20 20 70 75 62 6c 69 63 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 20 70 61 72 65 6e 74 20 3d 3e 20 ..public.InputControl.parent.=>.
4500 6d 5f 50 61 72 65 6e 74 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 m_Parent;............///.<summar
4520 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 4c 69 73 74 20 6f 66 20 69 6d 6d 65 64 69 61 74 y>..........///.List.of.immediat
4540 65 20 63 68 69 6c 64 72 65 6e 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 e.children...........///.</summa
4560 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 ry>..........///.<remarks>......
4580 20 20 20 20 2f 2f 2f 20 44 6f 65 73 20 6e 6f 74 20 61 6c 6c 6f 63 61 74 65 2e 0d 0a 20 20 20 20 ....///.Does.not.allocate.......
45a0 20 20 20 20 2f 2f 2f 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 ....///.</remarks>..........///.
45c0 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 70 61 72 65 6e 74 22 2f 3e 0d 0a 20 20 20 20 20 20 <seealso.cref="parent"/>........
45e0 20 20 70 75 62 6c 69 63 20 52 65 61 64 4f 6e 6c 79 41 72 72 61 79 3c 49 6e 70 75 74 43 6f 6e 74 ..public.ReadOnlyArray<InputCont
4600 72 6f 6c 3e 20 63 68 69 6c 64 72 65 6e 20 3d 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 rol>.children.=>..............ne
4620 77 20 52 65 61 64 4f 6e 6c 79 41 72 72 61 79 3c 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 3e 28 6d 5f w.ReadOnlyArray<InputControl>(m_
4640 44 65 76 69 63 65 2e 6d 5f 43 68 69 6c 64 72 65 6e 46 6f 72 45 61 63 68 43 6f 6e 74 72 6f 6c 2c Device.m_ChildrenForEachControl,
4660 20 6d 5f 43 68 69 6c 64 53 74 61 72 74 49 6e 64 65 78 2c 20 6d 5f 43 68 69 6c 64 43 6f 75 6e 74 .m_ChildStartIndex,.m_ChildCount
4680 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 );............///.<summary>.....
46a0 20 20 20 20 20 2f 2f 2f 20 4c 69 73 74 20 6f 66 20 75 73 61 67 65 20 74 61 67 73 20 61 73 73 6f .....///.List.of.usage.tags.asso
46c0 63 69 61 74 65 64 20 77 69 74 68 20 74 68 65 20 63 6f 6e 74 72 6f 6c 2e 0d 0a 20 20 20 20 20 20 ciated.with.the.control.........
46e0 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 ..///.</summary>..........///.<r
4700 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 55 73 61 67 65 73 20 61 70 70 6c emarks>..........///.Usages.appl
4720 79 20 22 73 65 6d 61 6e 74 69 63 73 22 20 74 6f 20 61 20 63 6f 6e 74 72 6f 6c 2e 20 57 68 65 72 y."semantics".to.a.control..Wher
4740 65 61 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 63 6f 6e 74 72 6f 6c 20 69 64 65 6e 74 69 eas.the.name.of.a.control.identi
4760 66 69 65 73 20 61 20 70 61 72 74 69 63 75 6c 61 72 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 22 fies.a.particular..........///."
4780 65 6e 64 70 6f 69 6e 74 22 20 77 69 74 68 69 6e 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 68 69 65 endpoint".within.the.control.hie
47a0 72 61 72 63 68 79 2c 20 74 68 65 20 75 73 61 67 65 73 20 6f 66 20 61 20 63 6f 6e 74 72 6f 6c 20 rarchy,.the.usages.of.a.control.
47c0 69 64 65 6e 74 69 66 79 20 70 61 72 74 69 63 75 6c 61 72 20 72 6f 6c 65 73 0d 0a 20 20 20 20 20 identify.particular.roles.......
47e0 20 20 20 2f 2f 2f 20 6f 66 20 73 70 65 63 69 66 69 63 20 63 6f 6e 74 72 6f 6c 2e 20 41 20 73 69 ...///.of.specific.control..A.si
4800 6d 70 6c 65 20 65 78 61 6d 70 6c 65 20 69 73 20 3c 73 65 65 20 63 72 65 66 3d 22 43 6f 6d 6d 6f mple.example.is.<see.cref="Commo
4820 6e 55 73 61 67 65 73 2e 42 61 63 6b 22 2f 3e 20 77 68 69 63 68 20 69 64 65 6e 74 69 66 69 65 73 nUsages.Back"/>.which.identifies
4840 20 61 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 63 6f 6e 74 72 6f 6c 20 67 65 6e 65 72 61 6c 6c .a..........///.control.generall
4860 79 20 75 73 65 64 20 74 6f 20 6d 6f 76 65 20 62 61 63 6b 77 61 72 64 73 20 69 6e 20 74 68 65 20 y.used.to.move.backwards.in.the.
4880 6e 61 76 69 67 61 74 69 6f 6e 20 68 69 73 74 6f 72 79 20 6f 66 20 61 20 55 49 2e 20 4f 6e 20 61 navigation.history.of.a.UI..On.a
48a0 20 6b 65 79 62 6f 61 72 64 2c 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 69 74 20 69 73 20 74 68 .keyboard,..........///.it.is.th
48c0 65 20 65 73 63 61 70 65 20 6b 65 79 20 74 68 61 74 20 67 65 6e 65 72 61 6c 6c 79 20 66 75 6c 66 e.escape.key.that.generally.fulf
48e0 69 6c 6c 73 20 74 68 69 73 20 72 6f 6c 65 20 77 68 65 72 65 61 73 20 6f 6e 20 61 20 67 61 6d 65 ills.this.role.whereas.on.a.game
4900 70 61 64 2c 20 69 74 20 69 73 20 67 65 6e 65 72 61 6c 6c 79 0d 0a 20 20 20 20 20 20 20 20 2f 2f pad,.it.is.generally..........//
4920 2f 20 74 68 65 20 22 42 22 20 2f 20 22 43 69 72 63 6c 65 22 20 62 75 74 74 6f 6e 2e 20 53 6f 6d /.the."B"./."Circle".button..Som
4940 65 20 64 65 76 69 63 65 73 20 6d 61 79 20 6e 6f 74 20 68 61 76 65 20 61 20 63 6f 6e 74 72 6f 6c e.devices.may.not.have.a.control
4960 20 74 68 61 74 20 67 65 6e 65 72 61 6c 6c 79 20 66 75 6c 66 69 6c 6c 73 20 74 68 69 73 0d 0a 20 .that.generally.fulfills.this...
4980 20 20 20 20 20 20 20 2f 2f 2f 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 74 68 75 73 20 6d 61 79 .......///.function.and.thus.may
49a0 20 6e 6f 74 20 68 61 76 65 20 61 6e 79 20 63 6f 6e 74 72 6f 6c 20 77 69 74 68 20 74 68 65 20 22 .not.have.any.control.with.the."
49c0 42 61 63 6b 22 20 75 73 61 67 65 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 Back".usage...........///.......
49e0 20 20 20 2f 2f 2f 20 42 79 20 6c 6f 6f 6b 69 6e 67 20 75 70 20 63 6f 6e 74 72 6f 6c 73 20 62 79 ...///.By.looking.up.controls.by
4a00 20 75 73 61 67 65 20 72 61 74 68 65 72 20 74 68 61 6e 20 62 79 20 6e 61 6d 65 2c 20 69 74 20 69 .usage.rather.than.by.name,.it.i
4a20 73 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 6c 6f 63 61 74 65 20 74 68 65 20 63 6f 72 72 65 63 74 s.possible.to.locate.the.correct
4a40 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 63 6f 6e 74 72 6f 6c 20 74 6f 20 75 73 65 20 66 6f 72 ..........///.control.to.use.for
4a60 20 63 65 72 74 61 69 6e 20 73 74 61 6e 64 61 72 64 69 7a 65 64 20 73 69 74 75 61 74 69 6f 6e 20 .certain.standardized.situation.
4a80 77 69 74 68 6f 75 74 20 68 61 76 69 6e 67 20 74 6f 20 6b 6e 6f 77 20 74 68 65 20 70 61 72 74 69 without.having.to.know.the.parti
4aa0 63 75 6c 61 72 73 20 6f 66 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 74 68 65 20 64 65 76 69 63 culars.of..........///.the.devic
4ac0 65 20 6f 72 20 70 6c 61 74 66 6f 72 6d 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 e.or.platform...........///.....
4ae0 20 20 20 20 20 2f 2f 2f 20 3c 65 78 61 6d 70 6c 65 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 .....///.<example>..........///.
4b00 3c 63 6f 64 65 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 2f 2f 20 42 69 6e 64 20 74 6f 20 61 <code>..........///.//.Bind.to.a
4b20 6e 79 20 63 6f 6e 74 72 6f 6c 20 77 68 69 63 68 20 69 73 20 74 61 67 67 65 64 20 77 69 74 68 20 ny.control.which.is.tagged.with.
4b40 74 68 65 20 22 42 61 63 6b 22 20 75 73 61 67 65 20 6f 6e 20 61 6e 79 20 64 65 76 69 63 65 2e 0d the."Back".usage.on.any.device..
4b60 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 76 61 72 20 62 61 63 6b 41 63 74 69 6f 6e 20 3d 20 6e 65 .........///.var.backAction.=.ne
4b80 77 20 49 6e 70 75 74 41 63 74 69 6f 6e 28 62 69 6e 64 69 6e 67 3a 20 22 2a 2f 7b 42 61 63 6b 7d w.InputAction(binding:."*/{Back}
4ba0 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 63 6f 64 65 3e 0d 0a 20 20 20 20 20 20 ");..........///.</code>........
4bc0 20 20 2f 2f 2f 20 3c 2f 65 78 61 6d 70 6c 65 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 ..///.</example>..........///...
4be0 20 20 20 20 20 20 20 2f 2f 2f 20 4e 6f 74 65 20 74 68 61 74 20 75 73 61 67 65 73 20 6f 6e 20 64 .......///.Note.that.usages.on.d
4c00 65 76 69 63 65 73 20 77 6f 72 6b 20 73 6c 69 67 68 74 6c 79 20 64 69 66 66 65 72 65 6e 74 6c 79 evices.work.slightly.differently
4c20 20 74 68 61 6e 20 75 73 61 67 65 73 20 6f 66 20 63 6f 6e 74 72 6f 6c 73 20 6f 6e 20 64 65 76 69 .than.usages.of.controls.on.devi
4c40 63 65 73 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 54 68 65 79 20 61 72 65 20 61 6c 73 6f 20 ces...........///.They.are.also.
4c60 71 75 65 72 69 65 64 20 74 68 72 6f 75 67 68 20 74 68 69 73 20 70 72 6f 70 65 72 74 79 20 62 75 queried.through.this.property.bu
4c80 74 20 75 6e 6c 69 6b 65 20 74 68 65 20 75 73 61 67 65 73 20 6f 66 20 63 6f 6e 74 72 6f 6c 73 2c t.unlike.the.usages.of.controls,
4ca0 20 74 68 65 20 73 65 74 20 6f 66 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 75 73 61 67 65 73 20 .the.set.of..........///.usages.
4cc0 6f 66 20 61 20 64 65 76 69 63 65 20 63 61 6e 20 62 65 20 63 68 61 6e 67 65 64 20 64 79 6e 61 6d of.a.device.can.be.changed.dynam
4ce0 69 63 61 6c 6c 79 20 61 73 20 74 68 65 20 72 6f 6c 65 20 6f 66 20 74 68 65 20 64 65 76 69 63 65 ically.as.the.role.of.the.device
4d00 20 63 68 61 6e 67 65 73 2e 20 46 6f 72 20 64 65 74 61 69 6c 73 2c 0d 0a 20 20 20 20 20 20 20 20 .changes..For.details,..........
4d20 2f 2f 2f 20 73 65 65 20 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 53 79 73 74 65 6d 2e 53 ///.see.<see.cref="InputSystem.S
4d40 65 74 44 65 76 69 63 65 55 73 61 67 65 28 49 6e 70 75 74 44 65 76 69 63 65 2c 73 74 72 69 6e 67 etDeviceUsage(InputDevice,string
4d60 29 22 2f 3e 2e 20 43 6f 6e 74 72 6f 6c 73 2c 20 6f 6e 20 74 68 65 20 6f 74 68 65 72 20 68 61 6e )"/>..Controls,.on.the.other.han
4d80 64 2c 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 63 61 6e 20 63 75 72 72 65 6e 74 6c 79 20 6f 6e d,..........///.can.currently.on
4da0 6c 79 20 62 65 20 61 73 73 69 67 6e 65 64 20 75 73 61 67 65 73 20 74 68 72 6f 75 67 68 20 6c 61 ly.be.assigned.usages.through.la
4dc0 79 6f 75 74 73 20 28 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 41 74 youts.(<see.cref="InputControlAt
4de0 74 72 69 62 75 74 65 2e 75 73 61 67 65 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 6f 72 tribute.usage"/>..........///.or
4e00 20 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 41 74 74 72 69 62 75 74 .<see.cref="InputControlAttribut
4e20 65 2e 75 73 61 67 65 73 22 2f 3e 29 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 72 65 6d e.usages"/>)...........///.</rem
4e40 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 arks>..........///.<seealso.cref
4e60 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 41 74 74 72 69 62 75 74 65 2e 75 73 61 67 65 22 2f 3e ="InputControlAttribute.usage"/>
4e80 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 49 6e 70 ..........///.<seealso.cref="Inp
4ea0 75 74 43 6f 6e 74 72 6f 6c 41 74 74 72 69 62 75 74 65 2e 75 73 61 67 65 73 22 2f 3e 0d 0a 20 20 utControlAttribute.usages"/>....
4ec0 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 49 6e 70 75 74 53 79 ......///.<seealso.cref="InputSy
4ee0 73 74 65 6d 2e 53 65 74 44 65 76 69 63 65 55 73 61 67 65 28 49 6e 70 75 74 44 65 76 69 63 65 2c stem.SetDeviceUsage(InputDevice,
4f00 73 74 72 69 6e 67 29 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f string)"/>..........///.<seealso
4f20 20 63 72 65 66 3d 22 49 6e 70 75 74 53 79 73 74 65 6d 2e 41 64 64 44 65 76 69 63 65 55 73 61 67 .cref="InputSystem.AddDeviceUsag
4f40 65 28 49 6e 70 75 74 44 65 76 69 63 65 2c 73 74 72 69 6e 67 29 22 2f 3e 0d 0a 20 20 20 20 20 20 e(InputDevice,string)"/>........
4f60 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 49 6e 70 75 74 53 79 73 74 65 6d ..///.<seealso.cref="InputSystem
4f80 2e 52 65 6d 6f 76 65 44 65 76 69 63 65 55 73 61 67 65 28 49 6e 70 75 74 44 65 76 69 63 65 2c 73 .RemoveDeviceUsage(InputDevice,s
4fa0 74 72 69 6e 67 29 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 tring)"/>..........///.<seealso.
4fc0 63 72 65 66 3d 22 43 6f 6d 6d 6f 6e 55 73 61 67 65 73 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 70 cref="CommonUsages"/>..........p
4fe0 75 62 6c 69 63 20 52 65 61 64 4f 6e 6c 79 41 72 72 61 79 3c 49 6e 74 65 72 6e 65 64 53 74 72 69 ublic.ReadOnlyArray<InternedStri
5000 6e 67 3e 20 75 73 61 67 65 73 20 3d 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 77 20 52 ng>.usages.=>..............new.R
5020 65 61 64 4f 6e 6c 79 41 72 72 61 79 3c 49 6e 74 65 72 6e 65 64 53 74 72 69 6e 67 3e 28 6d 5f 44 eadOnlyArray<InternedString>(m_D
5040 65 76 69 63 65 2e 6d 5f 55 73 61 67 65 73 46 6f 72 45 61 63 68 43 6f 6e 74 72 6f 6c 2c 20 6d 5f evice.m_UsagesForEachControl,.m_
5060 55 73 61 67 65 53 74 61 72 74 49 6e 64 65 78 2c 20 6d 5f 55 73 61 67 65 43 6f 75 6e 74 29 3b 0d UsageStartIndex,.m_UsageCount);.
5080 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 4c 69 73 74 20 6f 66 20 61 6c 74 65 72 6e 61 74 65 20 ...........//.List.of.alternate.
50a0 6e 61 6d 65 73 20 66 6f 72 20 74 68 65 20 63 6f 6e 74 72 6f 6c 2e 0d 0a 20 20 20 20 20 20 20 20 names.for.the.control...........
50c0 70 75 62 6c 69 63 20 52 65 61 64 4f 6e 6c 79 41 72 72 61 79 3c 49 6e 74 65 72 6e 65 64 53 74 72 public.ReadOnlyArray<InternedStr
50e0 69 6e 67 3e 20 61 6c 69 61 73 65 73 20 3d 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 77 ing>.aliases.=>..............new
5100 20 52 65 61 64 4f 6e 6c 79 41 72 72 61 79 3c 49 6e 74 65 72 6e 65 64 53 74 72 69 6e 67 3e 28 6d .ReadOnlyArray<InternedString>(m
5120 5f 44 65 76 69 63 65 2e 6d 5f 41 6c 69 61 73 65 73 46 6f 72 45 61 63 68 43 6f 6e 74 72 6f 6c 2c _Device.m_AliasesForEachControl,
5140 20 6d 5f 41 6c 69 61 73 53 74 61 72 74 49 6e 64 65 78 2c 20 6d 5f 41 6c 69 61 73 43 6f 75 6e 74 .m_AliasStartIndex,.m_AliasCount
5160 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f );............//.Information.abo
5180 75 74 20 77 68 65 72 65 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 73 74 6f 72 65 73 20 69 74 73 20 ut.where.the.control.stores.its.
51a0 73 74 61 74 65 2e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 49 6e 70 75 74 53 74 61 74 state...........public.InputStat
51c0 65 42 6c 6f 63 6b 20 73 74 61 74 65 42 6c 6f 63 6b 20 3d 3e 20 6d 5f 53 74 61 74 65 42 6c 6f 63 eBlock.stateBlock.=>.m_StateBloc
51e0 6b 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 k;............///.<summary>.....
5200 20 20 20 20 20 2f 2f 2f 20 57 68 65 74 68 65 72 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 69 73 20 .....///.Whether.the.control.is.
5220 63 6f 6e 73 69 64 65 72 65 64 20 6e 6f 69 73 79 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c considered.noisy...........///.<
5240 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 76 61 6c 75 65 3e 54 72 /summary>..........///.<value>Tr
5260 75 65 20 69 66 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 70 72 6f 64 75 63 65 73 20 6e 6f 69 73 79 ue.if.the.control.produces.noisy
5280 20 69 6e 70 75 74 2e 3c 2f 76 61 6c 75 65 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 .input.</value>..........///.<re
52a0 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 41 20 63 6f 6e 74 72 6f 6c 20 69 73 marks>..........///.A.control.is
52c0 20 63 6f 6e 73 69 64 65 72 65 64 20 22 6e 6f 69 73 79 22 20 69 66 20 69 74 20 70 72 6f 64 75 63 .considered."noisy".if.it.produc
52e0 65 73 20 64 69 66 66 65 72 65 6e 74 20 76 61 6c 75 65 73 20 77 69 74 68 6f 75 74 20 6e 65 63 65 es.different.values.without.nece
5300 73 73 61 72 69 6c 79 20 72 65 71 75 69 72 69 6e 67 20 75 73 65 72 0d 0a 20 20 20 20 20 20 20 20 ssarily.requiring.user..........
5320 2f 2f 2f 20 69 6e 74 65 72 61 63 74 69 6f 6e 2e 20 41 20 67 6f 6f 64 20 65 78 61 6d 70 6c 65 20 ///.interaction..A.good.example.
5340 61 72 65 20 73 65 6e 73 6f 72 73 20 28 73 65 65 20 3c 73 65 65 20 63 72 65 66 3d 22 53 65 6e 73 are.sensors.(see.<see.cref="Sens
5360 6f 72 22 2f 3e 29 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 50 53 34 20 63 6f 6e or"/>)..For.example,.the.PS4.con
5380 74 72 6f 6c 6c 65 72 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 77 68 69 63 68 20 68 61 73 20 61 troller..........///.which.has.a
53a0 20 67 79 72 6f 73 63 6f 70 65 20 73 65 6e 73 6f 72 20 62 75 69 6c 74 20 69 6e 74 6f 20 74 68 65 .gyroscope.sensor.built.into.the
53c0 20 64 65 76 69 63 65 2e 20 57 68 65 72 65 61 73 20 73 74 69 63 6b 73 20 61 6e 64 20 62 75 74 74 .device..Whereas.sticks.and.butt
53e0 6f 6e 73 20 6f 6e 20 74 68 65 20 64 65 76 69 63 65 20 72 65 71 75 69 72 65 0d 0a 20 20 20 20 20 ons.on.the.device.require.......
5400 20 20 20 2f 2f 2f 20 75 73 65 72 20 69 6e 74 65 72 61 63 74 69 6f 6e 20 74 6f 20 70 72 6f 64 75 ...///.user.interaction.to.produ
5420 63 65 20 6e 6f 6e 2d 64 65 66 61 75 6c 74 20 76 61 6c 75 65 73 2c 20 74 68 65 20 67 79 72 6f 20 ce.non-default.values,.the.gyro.
5440 77 69 6c 6c 20 70 72 6f 64 75 63 65 20 76 61 72 79 69 6e 67 20 76 61 6c 75 65 73 20 65 76 65 6e will.produce.varying.values.even
5460 20 69 66 20 74 68 65 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 64 65 76 69 63 65 20 6a 75 73 74 .if.the..........///.device.just
5480 20 73 69 74 73 20 74 68 65 72 65 20 77 69 74 68 6f 75 74 20 75 73 65 72 20 69 6e 74 65 72 61 63 .sits.there.without.user.interac
54a0 74 69 6f 6e 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 tion...........///..........///.
54c0 54 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 69 73 20 70 72 6f 70 65 72 74 79 20 69 73 20 64 65 The.value.of.this.property.is.de
54e0 74 65 72 6d 69 6e 65 64 20 62 79 20 74 68 65 20 6c 61 79 6f 75 74 20 28 3c 73 65 65 20 63 72 65 termined.by.the.layout.(<see.cre
5500 66 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 4c 61 79 6f 75 74 22 2f 3e 29 20 74 68 61 74 20 74 f="InputControlLayout"/>).that.t
5520 68 65 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 63 6f 6e 74 72 6f 6c 20 68 61 73 20 62 65 65 6e he..........///.control.has.been
5540 20 62 75 69 6c 74 20 66 72 6f 6d 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 .built.from...........///.......
5560 20 20 20 2f 2f 2f 20 4e 6f 74 65 20 74 68 61 74 20 66 6f 72 20 64 65 76 69 63 65 73 20 28 3c 73 ...///.Note.that.for.devices.(<s
5580 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 44 65 76 69 63 65 22 2f 3e 29 20 74 68 69 73 20 70 72 ee.cref="InputDevice"/>).this.pr
55a0 6f 70 65 72 74 79 20 69 73 20 74 72 75 65 20 69 66 20 61 6e 79 20 63 6f 6e 74 72 6f 6c 20 6f 6e operty.is.true.if.any.control.on
55c0 20 74 68 65 20 64 65 76 69 63 65 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 69 73 20 6d 61 72 6b .the.device..........///.is.mark
55e0 65 64 20 61 73 20 6e 6f 69 73 79 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 ed.as.noisy...........///.......
5600 20 20 20 2f 2f 2f 20 54 68 65 20 70 72 69 6d 61 72 79 20 65 66 66 65 63 74 20 6f 66 20 62 65 69 ...///.The.primary.effect.of.bei
5620 6e 67 20 6e 6f 69 73 65 20 69 73 20 6f 6e 20 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 44 ng.noise.is.on.<see.cref="InputD
5640 65 76 69 63 65 2e 4d 61 6b 65 43 75 72 72 65 6e 74 22 2f 3e 20 61 6e 64 0d 0a 20 20 20 20 20 20 evice.MakeCurrent"/>.and........
5660 20 20 2f 2f 2f 20 6f 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 72 65 62 69 6e 64 69 6e 67 20 28 ..///.on.interactive.rebinding.(
5680 73 65 65 20 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 41 63 74 69 6f 6e 52 65 62 69 6e 64 see.<see.cref="InputActionRebind
56a0 69 6e 67 45 78 74 65 6e 73 69 6f 6e 73 2e 52 65 62 69 6e 64 69 6e 67 4f 70 65 72 61 74 69 6f 6e ingExtensions.RebindingOperation
56c0 22 2f 3e 29 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 48 6f 77 65 76 65 72 2c 20 62 65 69 6e "/>)...........///.However,.bein
56e0 67 20 6e 6f 69 73 79 20 61 6c 73 6f 20 61 66 66 65 63 74 73 20 61 75 74 6f 6d 61 74 69 63 20 72 g.noisy.also.affects.automatic.r
5700 65 73 65 74 74 69 6e 67 20 6f 66 20 63 6f 6e 74 72 6f 6c 73 20 74 68 61 74 20 68 61 70 70 65 6e esetting.of.controls.that.happen
5720 73 20 77 68 65 6e 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 0d 0a 20 20 20 20 20 20 20 20 s.when.the.application..........
5740 2f 2f 2f 20 6c 6f 73 65 73 20 66 6f 63 75 73 2e 20 57 68 69 6c 65 20 6f 74 68 65 72 20 63 6f 6e ///.loses.focus..While.other.con
5760 74 72 6f 6c 73 20 61 72 65 20 72 65 73 65 74 20 74 6f 20 74 68 65 69 72 20 64 65 66 61 75 6c 74 trols.are.reset.to.their.default
5780 20 76 61 6c 75 65 20 28 65 78 63 65 70 74 20 69 66 20 3c 63 3e 41 70 70 6c 69 63 61 74 69 6f 6e .value.(except.if.<c>Application
57a0 2e 72 75 6e 49 6e 42 61 63 6b 67 72 6f 75 6e 64 3c 2f 63 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f .runInBackground</c>..........//
57c0 2f 20 69 73 20 74 72 75 65 20 61 6e 64 20 74 68 65 20 64 65 76 69 63 65 20 74 68 65 20 63 6f 6e /.is.true.and.the.device.the.con
57e0 74 72 6f 6c 20 62 65 6c 6f 6e 67 73 20 74 6f 20 69 73 20 6d 61 72 6b 65 64 20 61 73 20 3c 73 65 trol.belongs.to.is.marked.as.<se
5800 65 20 63 72 65 66 3d 22 49 6e 70 75 74 44 65 76 69 63 65 2e 63 61 6e 52 75 6e 49 6e 42 61 63 6b e.cref="InputDevice.canRunInBack
5820 67 72 6f 75 6e 64 22 2f 3e 29 2c 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 6e 6f 69 73 79 20 63 ground"/>),..........///.noisy.c
5840 6f 6e 74 72 6f 6c 73 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 72 65 73 65 74 20 62 75 74 20 72 61 ontrols.will.not.be.reset.but.ra
5860 74 68 65 72 20 72 65 6d 61 69 6e 20 61 74 20 74 68 65 69 72 20 63 75 72 72 65 6e 74 20 76 61 6c ther.remain.at.their.current.val
5880 75 65 2e 20 54 68 69 73 20 69 73 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 61 73 73 75 6d 70 74 ue..This.is.based.on.the.assumpt
58a0 69 6f 6e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 74 68 61 74 20 6e 6f 69 73 79 20 63 6f 6e 74 ion..........///.that.noisy.cont
58c0 72 6f 6c 73 20 6d 6f 73 74 20 6f 66 74 65 6e 20 72 65 70 72 65 73 65 6e 74 20 73 65 6e 73 6f 72 rols.most.often.represent.sensor
58e0 20 76 61 6c 75 65 73 20 61 6e 64 20 73 6e 61 70 70 69 6e 67 20 74 68 65 20 6c 61 73 74 20 73 61 .values.and.snapping.the.last.sa
5900 6d 70 6c 69 6e 67 20 76 61 6c 75 65 20 62 61 63 6b 20 74 6f 20 64 65 66 61 75 6c 74 0d 0a 20 20 mpling.value.back.to.default....
5920 20 20 20 20 20 20 2f 2f 2f 20 77 69 6c 6c 20 75 73 75 61 6c 6c 79 20 68 61 76 65 20 75 6e 64 65 ......///.will.usually.have.unde
5940 73 69 72 61 62 6c 65 20 65 66 66 65 63 74 73 20 6f 6e 20 61 6e 20 61 70 70 6c 69 63 61 74 69 6f sirable.effects.on.an.applicatio
5960 6e 27 73 20 73 69 6d 75 6c 61 74 69 6f 6e 20 6c 6f 67 69 63 2e 0d 0a 20 20 20 20 20 20 20 20 2f n's.simulation.logic.........../
5980 2f 2f 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 //.</remarks>..........///.<seea
59a0 6c 73 6f 20 63 72 65 66 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 4c 61 79 6f 75 74 2e 43 6f 6e lso.cref="InputControlLayout.Con
59c0 74 72 6f 6c 49 74 65 6d 2e 69 73 4e 6f 69 73 79 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f trolItem.isNoisy"/>..........///
59e0 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 41 74 74 72 .<seealso.cref="InputControlAttr
5a00 69 62 75 74 65 2e 6e 6f 69 73 79 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 62 ibute.noisy"/>..........public.b
5a20 6f 6f 6c 20 6e 6f 69 73 79 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 ool.noisy..........{............
5a40 20 20 67 65 74 20 3d 3e 20 28 6d 5f 43 6f 6e 74 72 6f 6c 46 6c 61 67 73 20 26 20 43 6f 6e 74 72 ..get.=>.(m_ControlFlags.&.Contr
5a60 6f 6c 46 6c 61 67 73 2e 49 73 4e 6f 69 73 79 29 20 21 3d 20 30 3b 0d 0a 20 20 20 20 20 20 20 20 olFlags.IsNoisy).!=.0;..........
5a80 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 65 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d ....internal.set..............{.
5aa0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 76 61 6c 75 65 29 0d 0a 20 20 20 .................if.(value).....
5ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............{..................
5ae0 20 20 20 20 6d 5f 43 6f 6e 74 72 6f 6c 46 6c 61 67 73 20 7c 3d 20 43 6f 6e 74 72 6f 6c 46 6c 61 ....m_ControlFlags.|=.ControlFla
5b00 67 73 2e 49 73 4e 6f 69 73 79 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 gs.IsNoisy;.....................
5b20 20 2f 2f 20 4d 61 6b 69 6e 67 20 61 20 63 6f 6e 74 72 6f 6c 20 6e 6f 69 73 79 20 6d 61 6b 65 73 .//.Making.a.control.noisy.makes
5b40 20 61 6c 6c 20 69 74 73 20 63 68 69 6c 64 72 65 6e 20 6e 6f 69 73 79 2e 0d 0a 20 20 20 20 20 20 .all.its.children.noisy.........
5b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 6c 69 73 74 20 3d 20 63 68 69 6c 64 72 65 ..............var.list.=.childre
5b80 6e 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 n;......................for.(var
5ba0 20 69 20 3d 20 30 3b 20 69 20 3c 20 6c 69 73 74 2e 43 6f 75 6e 74 3b 20 2b 2b 69 29 0d 0a 20 20 .i.=.0;.i.<.list.Count;.++i)....
5bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 73 74 5b 69 5d 2e 6e 6f ......................list[i].no
5be0 69 73 79 20 3d 20 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a isy.=.true;..................}..
5c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 ................else............
5c20 20 20 20 20 20 20 20 20 20 20 6d 5f 43 6f 6e 74 72 6f 6c 46 6c 61 67 73 20 26 3d 20 7e 43 6f 6e ..........m_ControlFlags.&=.~Con
5c40 74 72 6f 6c 46 6c 61 67 73 2e 49 73 4e 6f 69 73 79 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 trolFlags.IsNoisy;..............
5c60 7d 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d }..........}............///.<sum
5c80 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 57 68 65 74 68 65 72 20 74 68 65 20 63 mary>..........///.Whether.the.c
5ca0 6f 6e 74 72 6f 6c 20 69 73 20 63 6f 6e 73 69 64 65 72 65 64 20 73 79 6e 74 68 65 74 69 63 2e 0d ontrol.is.considered.synthetic..
5cc0 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 .........///.</summary>.........
5ce0 20 2f 2f 2f 20 3c 76 61 6c 75 65 3e 54 72 75 65 20 69 66 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 .///.<value>True.if.the.control.
5d00 64 6f 65 73 20 6e 6f 74 20 72 65 70 72 65 73 65 6e 74 20 61 6e 20 61 63 74 75 61 6c 20 70 68 79 does.not.represent.an.actual.phy
5d20 73 69 63 61 6c 20 63 6f 6e 74 72 6f 6c 20 6f 6e 20 74 68 65 20 64 65 76 69 63 65 2e 3c 2f 76 61 sical.control.on.the.device.</va
5d40 6c 75 65 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 lue>..........///.<remarks>.....
5d60 20 20 20 20 20 2f 2f 2f 20 41 20 63 6f 6e 74 72 6f 6c 20 69 73 20 63 6f 6e 73 69 64 65 72 65 64 .....///.A.control.is.considered
5d80 20 22 73 79 6e 74 68 65 74 69 63 22 20 69 66 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 63 6f 72 72 ."synthetic".if.it.does.not.corr
5da0 65 73 70 6f 6e 64 20 74 6f 20 61 6e 20 61 63 74 75 61 6c 2c 20 70 68 79 73 69 63 61 6c 20 63 6f espond.to.an.actual,.physical.co
5dc0 6e 74 72 6f 6c 20 6f 6e 20 74 68 65 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 64 65 76 69 63 65 ntrol.on.the..........///.device
5de0 2e 20 41 6e 20 65 78 61 6d 70 6c 65 20 66 6f 72 20 74 68 69 73 20 69 73 20 3c 73 65 65 20 63 72 ..An.example.for.this.is.<see.cr
5e00 65 66 3d 22 4b 65 79 62 6f 61 72 64 2e 61 6e 79 4b 65 79 22 2f 3e 20 6f 72 20 74 68 65 20 75 70 ef="Keyboard.anyKey"/>.or.the.up
5e20 2f 64 6f 77 6e 2f 6c 65 66 74 2f 72 69 67 68 74 20 62 75 74 74 6f 6e 73 20 61 64 64 65 64 0d 0a /down/left/right.buttons.added..
5e40 20 20 20 20 20 20 20 20 2f 2f 2f 20 62 79 20 3c 73 65 65 20 63 72 65 66 3d 22 53 74 69 63 6b 43 ........///.by.<see.cref="StickC
5e60 6f 6e 74 72 6f 6c 22 2f 3e 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 ontrol"/>...........///.........
5e80 20 2f 2f 2f 20 54 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 69 73 20 70 72 6f 70 65 72 74 79 20 .///.The.value.of.this.property.
5ea0 69 73 20 64 65 74 65 72 6d 69 6e 65 64 20 62 79 20 74 68 65 20 6c 61 79 6f 75 74 20 28 3c 73 65 is.determined.by.the.layout.(<se
5ec0 65 20 63 72 65 66 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 4c 61 79 6f 75 74 22 2f 3e 29 20 74 e.cref="InputControlLayout"/>).t
5ee0 68 61 74 20 74 68 65 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 63 6f 6e 74 72 6f 6c 20 68 61 73 hat.the..........///.control.has
5f00 20 62 65 65 6e 20 62 75 69 6c 74 20 66 72 6f 6d 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a .been.built.from...........///..
5f20 20 20 20 20 20 20 20 20 2f 2f 2f 20 54 68 65 20 70 72 69 6d 61 72 79 20 65 66 66 65 63 74 20 6f ........///.The.primary.effect.o
5f40 66 20 62 65 69 6e 67 20 73 79 6e 74 68 65 74 69 63 20 69 73 20 69 6e 20 69 6e 74 65 72 61 63 74 f.being.synthetic.is.in.interact
5f60 69 76 65 20 72 65 62 69 6e 64 69 6e 67 20 28 73 65 65 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 ive.rebinding.(see..........///.
5f80 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 41 63 74 69 6f 6e 52 65 62 69 6e 64 69 6e 67 45 <see.cref="InputActionRebindingE
5fa0 78 74 65 6e 73 69 6f 6e 73 2e 52 65 62 69 6e 64 69 6e 67 4f 70 65 72 61 74 69 6f 6e 22 2f 3e 29 xtensions.RebindingOperation"/>)
5fc0 20 77 68 65 72 65 20 6e 6f 6e 2d 73 79 6e 74 68 65 74 69 63 0d 0a 20 20 20 20 20 20 20 20 2f 2f .where.non-synthetic..........//
5fe0 2f 20 63 6f 6e 74 72 6f 6c 73 20 77 69 6c 6c 20 62 65 20 66 61 76 6f 72 65 64 20 6f 76 65 72 20 /.controls.will.be.favored.over.
6000 73 79 6e 74 68 65 74 69 63 20 6f 6e 65 73 2e 20 54 68 69 73 20 6d 65 61 6e 73 2c 20 66 6f 72 20 synthetic.ones..This.means,.for.
6020 65 78 61 6d 70 6c 65 2c 20 74 68 61 74 20 69 66 20 62 6f 74 68 0d 0a 20 20 20 20 20 20 20 20 2f example,.that.if.both........../
6040 2f 2f 20 3c 63 3e 22 26 6c 74 3b 47 61 6d 65 70 61 64 26 67 74 3b 2f 6c 65 66 74 53 74 69 63 6b //.<c>"&lt;Gamepad&gt;/leftStick
6060 2f 78 22 3c 2f 63 3e 20 61 6e 64 20 3c 63 3e 22 26 6c 74 3b 47 61 6d 65 70 61 64 26 67 74 3b 2f /x"</c>.and.<c>"&lt;Gamepad&gt;/
6080 6c 65 66 74 53 74 69 63 6b 2f 6c 65 66 74 22 3c 2f 63 3e 20 61 72 65 0d 0a 20 20 20 20 20 20 20 leftStick/left"</c>.are.........
60a0 20 2f 2f 2f 20 73 75 69 74 61 62 6c 65 20 70 69 63 6b 73 2c 20 3c 63 3e 22 26 6c 74 3b 47 61 6d .///.suitable.picks,.<c>"&lt;Gam
60c0 65 70 61 64 26 67 74 3b 2f 6c 65 66 74 53 74 69 63 6b 2f 78 22 3c 2f 63 3e 20 77 69 6c 6c 20 62 epad&gt;/leftStick/x"</c>.will.b
60e0 65 20 66 61 76 6f 72 65 64 20 61 73 20 69 74 20 72 65 70 72 65 73 65 6e 74 73 0d 0a 20 20 20 20 e.favored.as.it.represents......
6100 20 20 20 20 2f 2f 2f 20 69 6e 70 75 74 20 66 72 6f 6d 20 61 6e 20 61 63 74 75 61 6c 20 70 68 79 ....///.input.from.an.actual.phy
6120 73 69 63 61 6c 20 63 6f 6e 74 72 6f 6c 20 77 68 65 72 65 61 73 20 3c 63 3e 22 26 6c 74 3b 47 61 sical.control.whereas.<c>"&lt;Ga
6140 6d 65 70 61 64 26 67 74 3b 2f 6c 65 66 74 53 74 69 63 6b 2f 6c 65 66 74 22 3c 2f 63 3e 0d 0a 20 mepad&gt;/leftStick/left"</c>...
6160 20 20 20 20 20 20 20 2f 2f 2f 20 72 65 70 72 65 73 65 6e 74 73 20 69 6e 70 75 74 20 66 72 6f 6d .......///.represents.input.from
6180 20 61 20 6d 61 64 65 2d 75 70 20 63 6f 6e 74 72 6f 6c 2e 20 49 66 2c 20 68 6f 77 65 76 65 72 2c .a.made-up.control..If,.however,
61a0 20 74 68 65 20 22 6c 65 66 74 22 20 62 75 74 74 6f 6e 20 69 73 20 74 68 65 20 6f 6e 6c 79 0d 0a .the."left".button.is.the.only..
61c0 20 20 20 20 20 20 20 20 2f 2f 2f 20 76 69 61 62 6c 65 20 70 69 63 6b 2c 20 69 74 20 77 69 6c 6c ........///.viable.pick,.it.will
61e0 20 62 65 20 61 63 63 65 70 74 65 64 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 72 65 6d .be.accepted...........///.</rem
6200 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 arks>..........///.<seealso.cref
6220 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 4c 61 79 6f 75 74 2e 43 6f 6e 74 72 6f 6c 49 74 65 6d ="InputControlLayout.ControlItem
6240 2e 69 73 53 79 6e 74 68 65 74 69 63 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 .isSynthetic"/>..........///.<se
6260 65 61 6c 73 6f 20 63 72 65 66 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 41 74 74 72 69 62 75 74 ealso.cref="InputControlAttribut
6280 65 2e 73 79 6e 74 68 65 74 69 63 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 62 e.synthetic"/>..........public.b
62a0 6f 6f 6c 20 73 79 6e 74 68 65 74 69 63 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 ool.synthetic..........{........
62c0 20 20 20 20 20 20 67 65 74 20 3d 3e 20 28 6d 5f 43 6f 6e 74 72 6f 6c 46 6c 61 67 73 20 26 20 43 ......get.=>.(m_ControlFlags.&.C
62e0 6f 6e 74 72 6f 6c 46 6c 61 67 73 2e 49 73 53 79 6e 74 68 65 74 69 63 29 20 21 3d 20 30 3b 0d 0a ontrolFlags.IsSynthetic).!=.0;..
6300 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 65 74 0d 0a 20 20 20 20 20 20 ............internal.set........
6320 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 76 61 6c ......{..................if.(val
6340 75 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 43 6f 6e 74 72 ue)......................m_Contr
6360 6f 6c 46 6c 61 67 73 20 7c 3d 20 43 6f 6e 74 72 6f 6c 46 6c 61 67 73 2e 49 73 53 79 6e 74 68 65 olFlags.|=.ControlFlags.IsSynthe
6380 74 69 63 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 tic;..................else......
63a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 43 6f 6e 74 72 6f 6c 46 6c 61 67 73 20 26 ................m_ControlFlags.&
63c0 3d 20 7e 43 6f 6e 74 72 6f 6c 46 6c 61 67 73 2e 49 73 53 79 6e 74 68 65 74 69 63 3b 0d 0a 20 20 =.~ControlFlags.IsSynthetic;....
63e0 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 ..........}..........}..........
6400 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 46 65 74 ..///.<summary>..........///.Fet
6420 63 68 20 61 20 63 6f 6e 74 72 6f 6c 20 66 72 6f 6d 20 74 68 65 20 63 6f 6e 74 72 6f 6c 27 73 20 ch.a.control.from.the.control's.
6440 68 69 65 72 61 72 63 68 79 20 62 79 20 6e 61 6d 65 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 hierarchy.by.name...........///.
6460 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 </summary>..........///.<remarks
6480 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 4e 6f 74 65 20 74 68 61 74 20 70 61 74 68 20 6d 61 >..........///.Note.that.path.ma
64a0 74 63 68 69 6e 67 20 69 73 20 63 61 73 65 2d 69 6e 73 65 6e 73 69 74 69 76 65 2e 0d 0a 20 20 20 tching.is.case-insensitive......
64c0 20 20 20 20 20 2f 2f 2f 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f .....///.</remarks>..........///
64e0 20 3c 65 78 61 6d 70 6c 65 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 63 6f 64 65 3e 0d 0a .<example>..........///.<code>..
6500 20 20 20 20 20 20 20 20 2f 2f 2f 20 67 61 6d 65 70 61 64 5b 22 6c 65 66 74 53 74 69 63 6b 22 5d ........///.gamepad["leftStick"]
6520 20 2f 2f 20 52 65 74 75 72 6e 73 20 47 61 6d 65 70 61 64 2e 6c 65 66 74 53 74 69 63 6b 0d 0a 20 .//.Returns.Gamepad.leftStick...
6540 20 20 20 20 20 20 20 2f 2f 2f 20 67 61 6d 65 70 61 64 5b 22 6c 65 66 74 53 74 69 63 6b 2f 78 22 .......///.gamepad["leftStick/x"
6560 5d 20 2f 2f 20 52 65 74 75 72 6e 73 20 47 61 6d 65 70 61 64 2e 6c 65 66 74 53 74 69 63 6b 2e 78 ].//.Returns.Gamepad.leftStick.x
6580 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 67 61 6d 65 70 61 64 5b 22 7b 50 72 69 6d 61 72 79 41 ..........///.gamepad["{PrimaryA
65a0 63 74 69 6f 6e 7d 22 5d 20 2f 2f 20 52 65 74 75 72 6e 73 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 ction}"].//.Returns.the.control.
65c0 77 69 74 68 20 50 72 69 6d 61 72 79 41 63 74 69 6f 6e 20 75 73 61 67 65 2c 20 69 2e 65 2e 20 47 with.PrimaryAction.usage,.i.e..G
65e0 61 6d 65 70 61 64 2e 61 42 75 74 74 6f 6e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 63 6f amepad.aButton..........///.</co
6600 64 65 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 65 78 61 6d 70 6c 65 3e 0d 0a 20 20 20 de>..........///.</example>.....
6620 20 20 20 20 20 2f 2f 2f 20 3c 65 78 63 65 70 74 69 6f 6e 20 63 72 65 66 3d 22 4b 65 79 4e 6f 74 .....///.<exception.cref="KeyNot
6640 46 6f 75 6e 64 45 78 63 65 70 74 69 6f 6e 22 3e 3c 70 61 72 61 6d 72 65 66 20 6e 61 6d 65 3d 22 FoundException"><paramref.name="
6660 70 61 74 68 22 2f 3e 20 63 61 6e 6e 6f 74 20 62 65 20 66 6f 75 6e 64 2e 3c 2f 65 78 63 65 70 74 path"/>.cannot.be.found.</except
6680 69 6f 6e 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d ion>..........///.<seealso.cref=
66a0 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 50 61 74 68 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f "InputControlPath"/>..........//
66c0 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 70 61 74 68 22 2f 3e 0d 0a 20 20 20 20 20 20 /.<seealso.cref="path"/>........
66e0 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 54 72 79 47 65 74 43 68 69 6c 64 ..///.<seealso.cref="TryGetChild
6700 43 6f 6e 74 72 6f 6c 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 49 6e 70 75 74 Control"/>..........public.Input
6720 43 6f 6e 74 72 6f 6c 20 74 68 69 73 5b 73 74 72 69 6e 67 20 70 61 74 68 5d 0d 0a 20 20 20 20 20 Control.this[string.path].......
6740 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 65 74 0d 0a 20 20 20 20 20 20 20 20 20 ...{..............get...........
6760 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 63 6f 6e 74 72 6f ...{..................var.contro
6780 6c 20 3d 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 50 61 74 68 2e 54 72 79 46 69 6e 64 43 68 69 6c l.=.InputControlPath.TryFindChil
67a0 64 28 74 68 69 73 2c 20 70 61 74 68 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d(this,.path);..................
67c0 69 66 20 28 63 6f 6e 74 72 6f 6c 20 3d 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 if.(control.==.null)............
67e0 20 20 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 4b 65 79 4e 6f 74 46 6f 75 6e 64 45 ..........throw.new.KeyNotFoundE
6800 78 63 65 70 74 69 6f 6e 28 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 xception(.......................
6820 20 20 20 24 22 43 61 6e 6e 6f 74 20 66 69 6e 64 20 63 6f 6e 74 72 6f 6c 20 27 7b 70 61 74 68 7d ...$"Cannot.find.control.'{path}
6840 27 20 61 73 20 63 68 69 6c 64 20 6f 66 20 27 7b 74 68 69 73 7d 27 22 29 3b 0d 0a 20 20 20 20 20 '.as.child.of.'{this}'");.......
6860 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 63 6f 6e 74 72 6f 6c 3b 0d 0a 20 20 20 20 ...........return.control;......
6880 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 ........}..........}............
68a0 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 52 65 74 75 72 ///.<summary>..........///.Retur
68c0 6e 73 20 74 68 65 20 75 6e 64 65 72 6c 79 69 6e 67 20 76 61 6c 75 65 20 74 79 70 65 20 6f 66 20 ns.the.underlying.value.type.of.
68e0 74 68 69 73 20 63 6f 6e 74 72 6f 6c 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d this.control...........///.</sum
6900 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 76 61 6c 75 65 3e 54 79 70 65 20 6f mary>..........///.<value>Type.o
6920 66 20 76 61 6c 75 65 73 20 70 72 6f 64 75 63 65 64 20 62 79 20 74 68 65 20 63 6f 6e 74 72 6f 6c f.values.produced.by.the.control
6940 2e 3c 2f 76 61 6c 75 65 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e .</value>..........///.<remarks>
6960 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 54 68 69 73 20 69 73 20 74 68 65 20 74 79 70 65 20 6f ..........///.This.is.the.type.o
6980 66 20 76 61 6c 75 65 73 20 74 68 61 74 20 61 72 65 20 72 65 74 75 72 6e 65 64 20 77 68 65 6e 20 f.values.that.are.returned.when.
69a0 72 65 61 64 69 6e 67 20 74 68 65 20 63 75 72 72 65 6e 74 20 76 61 6c 75 65 20 6f 66 20 61 20 63 reading.the.current.value.of.a.c
69c0 6f 6e 74 72 6f 6c 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 6f 72 20 77 68 65 6e 20 72 65 61 64 ontrol..........///.or.when.read
69e0 69 6e 67 20 61 20 76 61 6c 75 65 20 6f 66 20 61 20 63 6f 6e 74 72 6f 6c 20 66 72 6f 6d 20 61 6e ing.a.value.of.a.control.from.an
6a00 20 65 76 65 6e 74 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d .event...........///.</remarks>.
6a20 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 76 61 6c 75 .........///.<seealso.cref="valu
6a40 65 53 69 7a 65 49 6e 42 79 74 65 73 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 eSizeInBytes"/>..........///.<se
6a60 65 61 6c 73 6f 20 63 72 65 66 3d 22 52 65 61 64 56 61 6c 75 65 46 72 6f 6d 53 74 61 74 65 41 73 ealso.cref="ReadValueFromStateAs
6a80 4f 62 6a 65 63 74 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 61 62 73 74 72 61 Object"/>..........public.abstra
6aa0 63 74 20 54 79 70 65 20 76 61 6c 75 65 54 79 70 65 20 7b 20 67 65 74 3b 20 7d 0d 0a 0d 0a 20 20 ct.Type.valueType.{.get;.}......
6ac0 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f ......///.<summary>..........///
6ae0 20 53 69 7a 65 20 69 6e 20 62 79 74 65 73 20 6f 66 20 76 61 6c 75 65 73 20 74 68 61 74 20 74 68 .Size.in.bytes.of.values.that.th
6b00 65 20 63 6f 6e 74 72 6f 6c 20 72 65 74 75 72 6e 73 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 e.control.returns...........///.
6b20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f </summary>..........///.<seealso
6b40 20 63 72 65 66 3d 22 76 61 6c 75 65 54 79 70 65 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 .cref="valueType"/>..........pub
6b60 6c 69 63 20 61 62 73 74 72 61 63 74 20 69 6e 74 20 76 61 6c 75 65 53 69 7a 65 49 6e 42 79 74 65 lic.abstract.int.valueSizeInByte
6b80 73 20 7b 20 67 65 74 3b 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 s.{.get;.}............///.<summa
6ba0 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 52 65 74 75 72 6e 20 61 20 73 74 72 69 6e 67 ry>..........///.Return.a.string
6bc0 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 75 .representation.of.the.control.u
6be0 73 65 66 75 6c 20 66 6f 72 20 64 65 62 75 67 67 69 6e 67 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f seful.for.debugging...........//
6c00 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 74 75 72 /.</summary>..........///.<retur
6c20 6e 73 3e 41 20 73 74 72 69 6e 67 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 ns>A.string.representation.of.th
6c40 65 20 63 6f 6e 74 72 6f 6c 2e 3c 2f 72 65 74 75 72 6e 73 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 e.control.</returns>..........pu
6c60 62 6c 69 63 20 6f 76 65 72 72 69 64 65 20 73 74 72 69 6e 67 20 54 6f 53 74 72 69 6e 67 28 29 0d blic.override.string.ToString().
6c80 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 .........{..............return.$
6ca0 22 7b 6c 61 79 6f 75 74 7d 3a 7b 70 61 74 68 7d 22 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d "{layout}:{path}";..........}...
6cc0 0a 20 20 20 20 20 20 20 20 70 72 69 76 61 74 65 20 73 74 72 69 6e 67 20 44 65 62 75 67 67 65 72 .........private.string.Debugger
6ce0 44 69 73 70 6c 61 79 28 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 Display()..........{............
6d00 20 20 2f 2f 20 49 66 20 74 68 65 20 64 65 76 69 63 65 20 68 61 73 6e 27 74 20 62 65 65 6e 20 61 ..//.If.the.device.hasn't.been.a
6d20 64 64 65 64 2c 20 64 6f 6e 27 74 20 74 72 79 20 74 6f 20 72 65 61 64 20 74 68 65 20 63 6f 6e 74 dded,.don't.try.to.read.the.cont
6d40 72 6f 6c 27 73 20 76 61 6c 75 65 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 64 rol's.value...............if.(!d
6d60 65 76 69 63 65 2e 61 64 64 65 64 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 evice.added)..................re
6d80 74 75 72 6e 20 54 6f 53 74 72 69 6e 67 28 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 turn.ToString();................
6da0 2f 2f 20 52 65 61 64 56 61 6c 75 65 41 73 4f 62 6a 65 63 74 20 6d 69 67 68 74 20 74 68 72 6f 77 //.ReadValueAsObject.might.throw
6dc0 2e 20 52 65 76 65 72 74 20 74 6f 20 6a 75 73 74 20 54 6f 53 74 72 69 6e 67 28 29 20 69 6e 20 74 ..Revert.to.just.ToString().in.t
6de0 68 61 74 20 63 61 73 65 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 72 79 0d 0a 20 20 20 20 hat.case...............try......
6e00 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 ........{..................retur
6e20 6e 20 24 22 7b 6c 61 79 6f 75 74 7d 3a 7b 70 61 74 68 7d 3d 7b 74 68 69 73 2e 52 65 61 64 56 61 n.$"{layout}:{path}={this.ReadVa
6e40 6c 75 65 41 73 4f 62 6a 65 63 74 28 29 7d 22 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d lueAsObject()}";..............}.
6e60 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 74 63 68 20 28 45 78 63 65 70 74 69 6f 6e 29 0d 0a .............catch.(Exception)..
6e80 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 ............{..................r
6ea0 65 74 75 72 6e 20 54 6f 53 74 72 69 6e 67 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d eturn.ToString();..............}
6ec0 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d ..........}............///.<summ
6ee0 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 43 6f 6d 70 75 74 65 20 61 6e 20 61 62 73 ary>..........///.Compute.an.abs
6f00 6f 6c 75 74 65 2c 20 6e 6f 72 6d 61 6c 69 7a 65 64 20 6d 61 67 6e 69 74 75 64 65 20 76 61 6c 75 olute,.normalized.magnitude.valu
6f20 65 20 74 68 61 74 20 69 6e 64 69 63 61 74 65 73 20 74 68 65 20 65 78 74 65 6e 74 20 74 6f 20 77 e.that.indicates.the.extent.to.w
6f40 68 69 63 68 20 74 68 65 20 63 6f 6e 74 72 6f 6c 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 69 73 hich.the.control..........///.is
6f60 20 61 63 74 75 61 74 65 64 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 .actuated...........///.</summar
6f80 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 74 75 72 6e 73 3e 41 6d 6f 75 6e 74 20 y>..........///.<returns>Amount.
6fa0 6f 66 20 61 63 74 75 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 6f 72 20 2d of.actuation.of.the.control.or.-
6fc0 31 20 69 66 20 69 74 20 63 61 6e 6e 6f 74 20 62 65 20 64 65 74 65 72 6d 69 6e 65 64 2e 3c 2f 72 1.if.it.cannot.be.determined.</r
6fe0 65 74 75 72 6e 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a eturns>..........///.<remarks>..
7000 20 20 20 20 20 20 20 20 2f 2f 2f 20 4d 61 67 6e 69 74 75 64 65 73 20 64 6f 20 6e 6f 74 20 6d 61 ........///.Magnitudes.do.not.ma
7020 6b 65 20 73 65 6e 73 65 20 66 6f 72 20 61 6c 6c 20 74 79 70 65 73 20 6f 66 20 63 6f 6e 74 72 6f ke.sense.for.all.types.of.contro
7040 6c 73 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 66 6f 72 20 61 20 63 6f 6e 74 72 6f 6c 20 74 ls..For.example,.for.a.control.t
7060 68 61 74 20 72 65 70 72 65 73 65 6e 74 73 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 61 6e 20 65 hat.represents..........///.an.e
7080 6e 75 6d 65 72 61 74 69 6f 6e 20 6f 66 20 76 61 6c 75 65 73 20 28 73 75 63 68 20 61 73 20 3c 73 numeration.of.values.(such.as.<s
70a0 65 65 20 63 72 65 66 3d 22 54 6f 75 63 68 50 68 61 73 65 43 6f 6e 74 72 6f 6c 22 2f 3e 29 2c 20 ee.cref="TouchPhaseControl"/>),.
70c0 74 68 65 72 65 20 69 73 20 6e 6f 20 6d 65 61 6e 69 6e 67 66 75 6c 0d 0a 20 20 20 20 20 20 20 20 there.is.no.meaningful..........
70e0 2f 2f 2f 20 6c 69 6e 65 61 72 20 6f 72 64 65 72 69 6e 67 20 6f 66 20 76 61 6c 75 65 73 20 28 6f ///.linear.ordering.of.values.(o
7100 6e 65 20 63 6f 75 6c 64 20 64 65 72 69 76 65 20 61 20 6c 69 6e 65 61 72 20 6f 72 64 65 72 69 6e ne.could.derive.a.linear.orderin
7120 67 20 74 68 72 6f 75 67 68 20 74 68 65 20 61 63 74 75 61 6c 20 65 6e 75 6d 20 76 61 6c 75 65 73 g.through.the.actual.enum.values
7140 20 62 75 74 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 74 68 65 69 72 20 61 73 73 69 67 6e 6d 65 .but..........///.their.assignme
7160 6e 74 20 6d 61 79 20 62 65 20 65 6e 74 69 72 65 6c 79 20 61 72 62 69 74 72 61 72 79 3b 20 69 74 nt.may.be.entirely.arbitrary;.it
7180 20 69 73 20 75 6e 63 6c 65 61 72 20 77 68 65 74 68 65 72 20 61 20 73 74 61 74 65 20 6f 66 20 3c .is.unclear.whether.a.state.of.<
71a0 73 65 65 20 63 72 65 66 3d 22 54 6f 75 63 68 50 68 61 73 65 2e 43 61 6e 63 65 6c 65 64 22 2f 3e see.cref="TouchPhase.Canceled"/>
71c0 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 68 61 73 20 61 20 68 69 67 68 65 72 20 6f 72 20 6c 6f ..........///.has.a.higher.or.lo
71e0 77 65 72 20 22 6d 61 67 6e 69 74 75 64 65 22 20 61 73 20 61 20 73 74 61 74 65 20 6f 66 20 3c 73 wer."magnitude".as.a.state.of.<s
7200 65 65 20 63 72 65 66 3d 22 54 6f 75 63 68 50 68 61 73 65 2e 42 65 67 61 6e 22 2f 3e 29 2e 0d 0a ee.cref="TouchPhase.Began"/>)...
7220 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 43 6f 6e 74 72 6f 6c ........///..........///.Control
7240 73 20 74 68 61 74 20 68 61 76 65 20 6e 6f 20 6d 65 61 6e 69 6e 67 66 75 6c 20 6d 61 67 6e 69 74 s.that.have.no.meaningful.magnit
7260 75 64 65 20 77 69 6c 6c 20 72 65 74 75 72 6e 20 2d 31 20 77 68 65 6e 20 63 61 6c 6c 69 6e 67 20 ude.will.return.-1.when.calling.
7280 74 68 69 73 20 6d 65 74 68 6f 64 2e 20 41 6e 79 20 6e 65 67 61 74 69 76 65 0d 0a 20 20 20 20 20 this.method..Any.negative.......
72a0 20 20 20 2f 2f 2f 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 73 68 6f 75 6c 64 20 62 65 20 63 6f ...///.return.value.should.be.co
72c0 6e 73 69 64 65 72 65 64 20 61 6e 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2e 0d 0a 20 20 20 20 nsidered.an.invalid.value.......
72e0 20 20 20 20 2f 2f 2f 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 ....///.</remarks>..........///.
7300 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 45 76 61 6c 75 61 74 65 4d 61 67 6e 69 74 75 64 65 <seealso.cref="EvaluateMagnitude
7320 28 76 6f 69 64 2a 29 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 75 6e 73 61 66 (void*)"/>..........public.unsaf
7340 65 20 66 6c 6f 61 74 20 45 76 61 6c 75 61 74 65 4d 61 67 6e 69 74 75 64 65 28 29 0d 0a 20 20 20 e.float.EvaluateMagnitude().....
7360 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 45 76 61 6c 75 .....{..............return.Evalu
7380 61 74 65 4d 61 67 6e 69 74 75 64 65 28 63 75 72 72 65 6e 74 53 74 61 74 65 50 74 72 29 3b 0d 0a ateMagnitude(currentStatePtr);..
73a0 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 ........}............///.<summar
73c0 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 43 6f 6d 70 75 74 65 20 61 6e 20 61 62 73 6f 6c y>..........///.Compute.an.absol
73e0 75 74 65 2c 20 6e 6f 72 6d 61 6c 69 7a 65 64 20 6d 61 67 6e 69 74 75 64 65 20 76 61 6c 75 65 20 ute,.normalized.magnitude.value.
7400 74 68 61 74 20 69 6e 64 69 63 61 74 65 73 20 74 68 65 20 65 78 74 65 6e 74 20 74 6f 20 77 68 69 that.indicates.the.extent.to.whi
7420 63 68 20 74 68 65 20 63 6f 6e 74 72 6f 6c 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 69 73 20 61 ch.the.control..........///.is.a
7440 63 74 75 61 74 65 64 20 69 6e 20 74 68 65 20 67 69 76 65 6e 20 73 74 61 74 65 2e 0d 0a 20 20 20 ctuated.in.the.given.state......
7460 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f .....///.</summary>..........///
7480 20 3c 70 61 72 61 6d 20 6e 61 6d 65 3d 22 73 74 61 74 65 50 74 72 22 3e 53 74 61 74 65 20 63 6f .<param.name="statePtr">State.co
74a0 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 63 6f 6e 74 72 6f 6c 27 73 20 3c 73 65 65 20 63 72 65 66 ntaining.the.control's.<see.cref
74c0 3d 22 73 74 61 74 65 42 6c 6f 63 6b 22 2f 3e 2e 3c 2f 70 61 72 61 6d 3e 0d 0a 20 20 20 20 20 20 ="stateBlock"/>.</param>........
74e0 20 20 2f 2f 2f 20 3c 72 65 74 75 72 6e 73 3e 41 6d 6f 75 6e 74 20 6f 66 20 61 63 74 75 61 74 69 ..///.<returns>Amount.of.actuati
7500 6f 6e 20 6f 66 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 6f 72 20 2d 31 20 69 66 20 69 74 20 63 61 on.of.the.control.or.-1.if.it.ca
7520 6e 6e 6f 74 20 62 65 20 64 65 74 65 72 6d 69 6e 65 64 2e 3c 2f 72 65 74 75 72 6e 73 3e 0d 0a 20 nnot.be.determined.</returns>...
7540 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 45 76 61 6c 75 61 .......///.<seealso.cref="Evalua
7560 74 65 4d 61 67 6e 69 74 75 64 65 28 29 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 teMagnitude()"/>..........///.<s
7580 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 73 74 61 74 65 42 6c 6f 63 6b 22 2f 3e 0d 0a 20 20 20 20 eealso.cref="stateBlock"/>......
75a0 20 20 20 20 70 75 62 6c 69 63 20 76 69 72 74 75 61 6c 20 75 6e 73 61 66 65 20 66 6c 6f 61 74 20 ....public.virtual.unsafe.float.
75c0 45 76 61 6c 75 61 74 65 4d 61 67 6e 69 74 75 64 65 28 76 6f 69 64 2a 20 73 74 61 74 65 50 74 72 EvaluateMagnitude(void*.statePtr
75e0 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e )..........{..............return
7600 20 2d 31 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 .-1;..........}............publi
7620 63 20 61 62 73 74 72 61 63 74 20 75 6e 73 61 66 65 20 6f 62 6a 65 63 74 20 52 65 61 64 56 61 6c c.abstract.unsafe.object.ReadVal
7640 75 65 46 72 6f 6d 42 75 66 66 65 72 41 73 4f 62 6a 65 63 74 28 76 6f 69 64 2a 20 62 75 66 66 65 ueFromBufferAsObject(void*.buffe
7660 72 2c 20 69 6e 74 20 62 75 66 66 65 72 53 69 7a 65 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f r,.int.bufferSize);............/
7680 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 52 65 61 64 20 74 //.<summary>..........///.Read.t
76a0 68 65 20 63 6f 6e 74 72 6f 6c 27 73 20 66 69 6e 61 6c 2c 20 70 72 6f 63 65 73 73 65 64 20 76 61 he.control's.final,.processed.va
76c0 6c 75 65 20 66 72 6f 6d 20 74 68 65 20 67 69 76 65 6e 20 73 74 61 74 65 20 61 6e 64 20 72 65 74 lue.from.the.given.state.and.ret
76e0 75 72 6e 20 74 68 65 20 76 61 6c 75 65 20 61 73 20 61 6e 20 6f 62 6a 65 63 74 2e 0d 0a 20 20 20 urn.the.value.as.an.object......
7700 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f .....///.</summary>..........///
7720 20 3c 70 61 72 61 6d 20 6e 61 6d 65 3d 22 73 74 61 74 65 50 74 72 22 3e 3c 2f 70 61 72 61 6d 3e .<param.name="statePtr"></param>
7740 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 74 75 72 6e 73 3e 54 68 65 20 63 6f 6e 74 72 ..........///.<returns>The.contr
7760 6f 6c 27 73 20 76 61 6c 75 65 20 61 73 20 73 74 6f 72 65 64 20 69 6e 20 3c 70 61 72 61 6d 72 65 ol's.value.as.stored.in.<paramre
7780 66 20 6e 61 6d 65 3d 22 73 74 61 74 65 50 74 72 22 2f 3e 2e 3c 2f 72 65 74 75 72 6e 73 3e 0d 0a f.name="statePtr"/>.</returns>..
77a0 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f ........///.<remarks>........../
77c0 2f 2f 20 54 68 69 73 20 6d 65 74 68 6f 64 20 61 6c 6c 6f 63 61 74 65 73 20 47 43 20 6d 65 6d 6f //.This.method.allocates.GC.memo
77e0 72 79 20 61 6e 64 20 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 20 75 73 65 64 20 64 75 72 69 6e 67 ry.and.should.not.be.used.during
7800 20 6e 6f 72 6d 61 6c 20 67 61 6d 65 70 6c 61 79 20 6f 70 65 72 61 74 69 6f 6e 2e 0d 0a 20 20 20 .normal.gameplay.operation......
7820 20 20 20 20 20 2f 2f 2f 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f .....///.</remarks>..........///
7840 20 3c 65 78 63 65 70 74 69 6f 6e 20 63 72 65 66 3d 22 41 72 67 75 6d 65 6e 74 4e 75 6c 6c 45 78 .<exception.cref="ArgumentNullEx
7860 63 65 70 74 69 6f 6e 22 3e 3c 70 61 72 61 6d 72 65 66 20 6e 61 6d 65 3d 22 73 74 61 74 65 50 74 ception"><paramref.name="statePt
7880 72 22 2f 3e 20 69 73 20 6e 75 6c 6c 2e 3c 2f 65 78 63 65 70 74 69 6f 6e 3e 0d 0a 20 20 20 20 20 r"/>.is.null.</exception>.......
78a0 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 52 65 61 64 56 61 6c 75 65 46 ...///.<seealso.cref="ReadValueF
78c0 72 6f 6d 53 74 61 74 65 49 6e 74 6f 42 75 66 66 65 72 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 70 romStateIntoBuffer"/>..........p
78e0 75 62 6c 69 63 20 61 62 73 74 72 61 63 74 20 75 6e 73 61 66 65 20 6f 62 6a 65 63 74 20 52 65 61 ublic.abstract.unsafe.object.Rea
7900 64 56 61 6c 75 65 46 72 6f 6d 53 74 61 74 65 41 73 4f 62 6a 65 63 74 28 76 6f 69 64 2a 20 73 74 dValueFromStateAsObject(void*.st
7920 61 74 65 50 74 72 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 atePtr);............///.<summary
7940 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 52 65 61 64 20 74 68 65 20 63 6f 6e 74 72 6f 6c 27 >..........///.Read.the.control'
7960 73 20 66 69 6e 61 6c 2c 20 70 72 6f 63 65 73 73 65 64 20 76 61 6c 75 65 20 66 72 6f 6d 20 74 68 s.final,.processed.value.from.th
7980 65 20 67 69 76 65 6e 20 73 74 61 74 65 20 61 6e 64 20 73 74 6f 72 65 20 69 74 20 69 6e 20 74 68 e.given.state.and.store.it.in.th
79a0 65 20 67 69 76 65 6e 20 62 75 66 66 65 72 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 e.given.buffer...........///.</s
79c0 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 70 61 72 61 6d 20 6e 61 6d 65 ummary>..........///.<param.name
79e0 3d 22 73 74 61 74 65 50 74 72 22 3e 53 74 61 74 65 20 74 6f 20 72 65 61 64 20 74 68 65 20 76 61 ="statePtr">State.to.read.the.va
7a00 6c 75 65 20 66 6f 72 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 66 72 6f 6d 2e 3c 2f 70 61 72 61 6d lue.for.the.control.from.</param
7a20 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 70 61 72 61 6d 20 6e 61 6d 65 3d 22 62 75 66 66 >..........///.<param.name="buff
7a40 65 72 50 74 72 22 3e 42 75 66 66 65 72 20 74 6f 20 73 74 6f 72 65 20 74 68 65 20 76 61 6c 75 65 erPtr">Buffer.to.store.the.value
7a60 20 69 6e 2e 3c 2f 70 61 72 61 6d 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 70 61 72 61 6d .in.</param>..........///.<param
7a80 20 6e 61 6d 65 3d 22 62 75 66 66 65 72 53 69 7a 65 22 3e 53 69 7a 65 20 6f 66 20 3c 70 61 72 61 .name="bufferSize">Size.of.<para
7aa0 6d 72 65 66 20 6e 61 6d 65 3d 22 62 75 66 66 65 72 50 74 72 22 2f 3e 20 69 6e 20 62 79 74 65 73 mref.name="bufferPtr"/>.in.bytes
7ac0 2e 20 4d 75 73 74 20 62 65 20 61 74 20 6c 65 61 73 74 20 3c 73 65 65 20 63 72 65 66 3d 22 76 61 ..Must.be.at.least.<see.cref="va
7ae0 6c 75 65 53 69 7a 65 49 6e 42 79 74 65 73 22 2f 3e 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 lueSizeInBytes"/>...........///.
7b00 49 66 20 69 74 20 69 73 20 73 6d 61 6c 6c 65 72 2c 20 3c 73 65 65 20 63 72 65 66 3d 22 41 72 67 If.it.is.smaller,.<see.cref="Arg
7b20 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 22 2f 3e 20 77 69 6c 6c 20 62 65 20 74 68 72 6f 77 6e umentException"/>.will.be.thrown
7b40 2e 3c 2f 70 61 72 61 6d 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 65 78 63 65 70 74 69 6f .</param>..........///.<exceptio
7b60 6e 20 63 72 65 66 3d 22 41 72 67 75 6d 65 6e 74 4e 75 6c 6c 45 78 63 65 70 74 69 6f 6e 22 3e 3c n.cref="ArgumentNullException"><
7b80 70 61 72 61 6d 72 65 66 20 6e 61 6d 65 3d 22 73 74 61 74 65 50 74 72 22 2f 3e 20 69 73 20 6e 75 paramref.name="statePtr"/>.is.nu
7ba0 6c 6c 2c 20 6f 72 20 3c 70 61 72 61 6d 72 65 66 20 6e 61 6d 65 3d 22 62 75 66 66 65 72 50 74 72 ll,.or.<paramref.name="bufferPtr
7bc0 22 2f 3e 20 69 73 20 6e 75 6c 6c 2e 3c 2f 65 78 63 65 70 74 69 6f 6e 3e 0d 0a 20 20 20 20 20 20 "/>.is.null.</exception>........
7be0 20 20 2f 2f 2f 20 3c 65 78 63 65 70 74 69 6f 6e 20 63 72 65 66 3d 22 41 72 67 75 6d 65 6e 74 45 ..///.<exception.cref="ArgumentE
7c00 78 63 65 70 74 69 6f 6e 22 3e 3c 70 61 72 61 6d 72 65 66 20 6e 61 6d 65 3d 22 62 75 66 66 65 72 xception"><paramref.name="buffer
7c20 53 69 7a 65 22 2f 3e 20 69 73 20 73 6d 61 6c 6c 65 72 20 74 68 61 6e 20 3c 73 65 65 20 63 72 65 Size"/>.is.smaller.than.<see.cre
7c40 66 3d 22 76 61 6c 75 65 53 69 7a 65 49 6e 42 79 74 65 73 22 2f 3e 2e 3c 2f 65 78 63 65 70 74 69 f="valueSizeInBytes"/>.</excepti
7c60 6f 6e 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 on>..........///.<seealso.cref="
7c80 52 65 61 64 56 61 6c 75 65 46 72 6f 6d 53 74 61 74 65 41 73 4f 62 6a 65 63 74 22 2f 3e 0d 0a 20 ReadValueFromStateAsObject"/>...
7ca0 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 57 72 69 74 65 56 .......///.<seealso.cref="WriteV
7cc0 61 6c 75 65 46 72 6f 6d 42 75 66 66 65 72 49 6e 74 6f 53 74 61 74 65 22 2f 3e 0d 0a 20 20 20 20 alueFromBufferIntoState"/>......
7ce0 20 20 20 20 70 75 62 6c 69 63 20 61 62 73 74 72 61 63 74 20 75 6e 73 61 66 65 20 76 6f 69 64 20 ....public.abstract.unsafe.void.
7d00 52 65 61 64 56 61 6c 75 65 46 72 6f 6d 53 74 61 74 65 49 6e 74 6f 42 75 66 66 65 72 28 76 6f 69 ReadValueFromStateIntoBuffer(voi
7d20 64 2a 20 73 74 61 74 65 50 74 72 2c 20 76 6f 69 64 2a 20 62 75 66 66 65 72 50 74 72 2c 20 69 6e d*.statePtr,.void*.bufferPtr,.in
7d40 74 20 62 75 66 66 65 72 53 69 7a 65 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 t.bufferSize);............///.<s
7d60 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 52 65 61 64 20 61 20 76 61 6c 75 ummary>..........///.Read.a.valu
7d80 65 20 66 72 6f 6d 20 74 68 65 20 67 69 76 65 6e 20 6d 65 6d 6f 72 79 20 61 6e 64 20 73 74 6f 72 e.from.the.given.memory.and.stor
7da0 65 20 69 74 20 61 73 20 73 74 61 74 65 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 e.it.as.state...........///.</su
7dc0 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 70 61 72 61 6d 20 6e 61 6d 65 3d mmary>..........///.<param.name=
7de0 22 62 75 66 66 65 72 50 74 72 22 3e 4d 65 6d 6f 72 79 20 63 6f 6e 74 61 69 6e 69 6e 67 20 76 61 "bufferPtr">Memory.containing.va
7e00 6c 75 65 2e 3c 2f 70 61 72 61 6d 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 70 61 72 61 6d lue.</param>..........///.<param
7e20 20 6e 61 6d 65 3d 22 62 75 66 66 65 72 53 69 7a 65 22 3e 53 69 7a 65 20 6f 66 20 3c 70 61 72 61 .name="bufferSize">Size.of.<para
7e40 6d 72 65 66 20 6e 61 6d 65 3d 22 62 75 66 66 65 72 50 74 72 22 2f 3e 20 69 6e 20 62 79 74 65 73 mref.name="bufferPtr"/>.in.bytes
7e60 2e 20 4d 75 73 74 20 62 65 20 61 74 20 6c 65 61 73 74 20 3c 73 65 65 20 63 72 65 66 3d 22 76 61 ..Must.be.at.least.<see.cref="va
7e80 6c 75 65 53 69 7a 65 49 6e 42 79 74 65 73 22 2f 3e 2e 3c 2f 70 61 72 61 6d 3e 0d 0a 20 20 20 20 lueSizeInBytes"/>.</param>......
7ea0 20 20 20 20 2f 2f 2f 20 3c 70 61 72 61 6d 20 6e 61 6d 65 3d 22 73 74 61 74 65 50 74 72 22 3e 53 ....///.<param.name="statePtr">S
7ec0 74 61 74 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 63 6f 6e 74 72 6f 6c 27 73 20 3c 73 tate.containing.the.control's.<s
7ee0 65 65 20 63 72 65 66 3d 22 73 74 61 74 65 42 6c 6f 63 6b 22 2f 3e 2e 20 57 69 6c 6c 20 72 65 63 ee.cref="stateBlock"/>..Will.rec
7f00 65 69 76 65 20 74 68 65 20 73 74 61 74 65 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 61 73 20 63 eive.the.state..........///.as.c
7f20 6f 6e 76 65 72 74 65 64 20 66 72 6f 6d 20 74 68 65 20 67 69 76 65 6e 20 76 61 6c 75 65 2e 3c 2f onverted.from.the.given.value.</
7f40 70 61 72 61 6d 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a 20 param>..........///.<remarks>...
7f60 20 20 20 20 20 20 20 2f 2f 2f 20 57 72 69 74 69 6e 67 20 76 61 6c 75 65 73 20 77 69 6c 6c 20 4e .......///.Writing.values.will.N
7f80 4f 54 20 61 70 70 6c 79 20 70 72 6f 63 65 73 73 6f 72 73 20 74 6f 20 74 68 65 20 67 69 76 65 6e OT.apply.processors.to.the.given
7fa0 20 76 61 6c 75 65 2e 20 54 68 69 73 20 63 61 6e 20 6d 65 61 6e 20 74 68 61 74 20 77 68 65 6e 20 .value..This.can.mean.that.when.
7fc0 72 65 61 64 69 6e 67 20 61 20 76 61 6c 75 65 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 66 72 6f reading.a.value..........///.fro
7fe0 6d 20 61 20 63 6f 6e 74 72 6f 6c 20 61 66 74 65 72 20 69 74 20 68 61 73 20 62 65 65 6e 20 77 72 m.a.control.after.it.has.been.wr
8000 69 74 74 65 6e 20 74 6f 20 69 74 73 20 73 74 61 74 65 2c 20 74 68 65 20 72 65 73 75 6c 74 69 6e itten.to.its.state,.the.resultin
8020 67 20 76 61 6c 75 65 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 77 68 61 74 20 77 61 73 0d 0a 20 g.value.differs.from.what.was...
8040 20 20 20 20 20 20 20 2f 2f 2f 20 77 72 69 74 74 65 6e 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f .......///.written...........///
8060 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 65 78 63 65 70 74 .</remarks>..........///.<except
8080 69 6f 6e 20 63 72 65 66 3d 22 4e 6f 74 53 75 70 70 6f 72 74 65 64 45 78 63 65 70 74 69 6f 6e 22 ion.cref="NotSupportedException"
80a0 3e 54 68 65 20 63 6f 6e 74 72 6f 6c 20 64 6f 65 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 77 72 >The.control.does.not.support.wr
80c0 69 74 69 6e 67 2e 20 54 68 69 73 20 69 73 20 74 68 65 20 63 61 73 65 2c 20 66 6f 72 0d 0a 20 20 iting..This.is.the.case,.for....
80e0 20 20 20 20 20 20 2f 2f 2f 20 65 78 61 6d 70 6c 65 2c 20 74 68 61 74 20 63 6f 6d 70 75 74 65 20 ......///.example,.that.compute.
8100 76 61 6c 75 65 73 20 28 73 75 63 68 20 61 73 20 74 68 65 20 6d 61 67 6e 69 74 75 64 65 20 6f 66 values.(such.as.the.magnitude.of
8120 20 61 20 76 65 63 74 6f 72 29 2e 3c 2f 65 78 63 65 70 74 69 6f 6e 3e 0d 0a 20 20 20 20 20 20 20 .a.vector).</exception>.........
8140 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 52 65 61 64 56 61 6c 75 65 46 72 6f .///.<seealso.cref="ReadValueFro
8160 6d 53 74 61 74 65 49 6e 74 6f 42 75 66 66 65 72 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f mStateIntoBuffer"/>..........///
8180 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 57 72 69 74 65 56 61 6c 75 65 46 72 6f 6d 4f 62 .<seealso.cref="WriteValueFromOb
81a0 6a 65 63 74 49 6e 74 6f 53 74 61 74 65 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 jectIntoState"/>..........public
81c0 20 76 69 72 74 75 61 6c 20 75 6e 73 61 66 65 20 76 6f 69 64 20 57 72 69 74 65 56 61 6c 75 65 46 .virtual.unsafe.void.WriteValueF
81e0 72 6f 6d 42 75 66 66 65 72 49 6e 74 6f 53 74 61 74 65 28 76 6f 69 64 2a 20 62 75 66 66 65 72 50 romBufferIntoState(void*.bufferP
8200 74 72 2c 20 69 6e 74 20 62 75 66 66 65 72 53 69 7a 65 2c 20 76 6f 69 64 2a 20 73 74 61 74 65 50 tr,.int.bufferSize,.void*.stateP
8220 74 72 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68 72 6f tr)..........{..............thro
8240 77 20 6e 65 77 20 4e 6f 74 53 75 70 70 6f 72 74 65 64 45 78 63 65 70 74 69 6f 6e 28 0d 0a 20 20 w.new.NotSupportedException(....
8260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 22 43 6f 6e 74 72 6f 6c 20 27 7b 74 68 69 73 7d 27 ..............$"Control.'{this}'
8280 20 64 6f 65 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 77 72 69 74 69 6e 67 22 29 3b 0d 0a 20 20 .does.not.support.writing");....
82a0 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e ......}............///.<summary>
82c0 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 52 65 61 64 20 61 20 76 61 6c 75 65 20 6f 62 6a 65 63 ..........///.Read.a.value.objec
82e0 74 20 61 6e 64 20 73 74 6f 72 65 20 69 74 20 61 73 20 73 74 61 74 65 20 69 6e 20 74 68 65 20 67 t.and.store.it.as.state.in.the.g
8300 69 76 65 6e 20 6d 65 6d 6f 72 79 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d iven.memory...........///.</summ
8320 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 70 61 72 61 6d 20 6e 61 6d 65 3d 22 76 ary>..........///.<param.name="v
8340 61 6c 75 65 22 3e 56 61 6c 75 65 20 66 6f 72 20 74 68 65 20 63 6f 6e 74 72 6f 6c 2e 3c 2f 70 61 alue">Value.for.the.control.</pa
8360 72 61 6d 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 70 61 72 61 6d 20 6e 61 6d 65 3d 22 73 ram>..........///.<param.name="s
8380 74 61 74 65 50 74 72 22 3e 53 74 61 74 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 63 6f tatePtr">State.containing.the.co
83a0 6e 74 72 6f 6c 27 73 20 3c 73 65 65 20 63 72 65 66 3d 22 73 74 61 74 65 42 6c 6f 63 6b 22 2f 3e ntrol's.<see.cref="stateBlock"/>
83c0 2e 20 57 69 6c 6c 20 72 65 63 65 69 76 65 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 74 68 65 20 ..Will.receive..........///.the.
83e0 73 74 61 74 65 20 73 74 61 74 65 20 61 73 20 63 6f 6e 76 65 72 74 65 64 20 66 72 6f 6d 20 74 68 state.state.as.converted.from.th
8400 65 20 67 69 76 65 6e 20 76 61 6c 75 65 2e 3c 2f 70 61 72 61 6d 3e 0d 0a 20 20 20 20 20 20 20 20 e.given.value.</param>..........
8420 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 57 72 69 74 69 ///.<remarks>..........///.Writi
8440 6e 67 20 76 61 6c 75 65 73 20 77 69 6c 6c 20 4e 4f 54 20 61 70 70 6c 79 20 70 72 6f 63 65 73 73 ng.values.will.NOT.apply.process
8460 6f 72 73 20 74 6f 20 74 68 65 20 67 69 76 65 6e 20 76 61 6c 75 65 2e 20 54 68 69 73 20 63 61 6e ors.to.the.given.value..This.can
8480 20 6d 65 61 6e 20 74 68 61 74 20 77 68 65 6e 20 72 65 61 64 69 6e 67 20 61 20 76 61 6c 75 65 0d .mean.that.when.reading.a.value.
84a0 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 66 72 6f 6d 20 61 20 63 6f 6e 74 72 6f 6c 20 61 66 74 65 .........///.from.a.control.afte
84c0 72 20 69 74 20 68 61 73 20 62 65 65 6e 20 77 72 69 74 74 65 6e 20 74 6f 20 69 74 73 20 73 74 61 r.it.has.been.written.to.its.sta
84e0 74 65 2c 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 76 61 6c 75 65 20 64 69 66 66 65 72 73 20 te,.the.resulting.value.differs.
8500 66 72 6f 6d 20 77 68 61 74 20 77 61 73 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 77 72 69 74 74 from.what.was..........///.writt
8520 65 6e 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 en...........///.</remarks>.....
8540 20 20 20 20 20 2f 2f 2f 20 3c 65 78 63 65 70 74 69 6f 6e 20 63 72 65 66 3d 22 4e 6f 74 53 75 70 .....///.<exception.cref="NotSup
8560 70 6f 72 74 65 64 45 78 63 65 70 74 69 6f 6e 22 3e 54 68 65 20 63 6f 6e 74 72 6f 6c 20 64 6f 65 portedException">The.control.doe
8580 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 77 72 69 74 69 6e 67 2e 20 54 68 69 73 20 69 73 20 74 s.not.support.writing..This.is.t
85a0 68 65 20 63 61 73 65 2c 20 66 6f 72 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 65 78 61 6d 70 6c he.case,.for..........///.exampl
85c0 65 2c 20 74 68 61 74 20 63 6f 6d 70 75 74 65 20 76 61 6c 75 65 73 20 28 73 75 63 68 20 61 73 20 e,.that.compute.values.(such.as.
85e0 74 68 65 20 6d 61 67 6e 69 74 75 64 65 20 6f 66 20 61 20 76 65 63 74 6f 72 29 2e 3c 2f 65 78 63 the.magnitude.of.a.vector).</exc
8600 65 70 74 69 6f 6e 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 eption>..........///.<seealso.cr
8620 65 66 3d 22 57 72 69 74 65 56 61 6c 75 65 46 72 6f 6d 42 75 66 66 65 72 49 6e 74 6f 53 74 61 74 ef="WriteValueFromBufferIntoStat
8640 65 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 76 69 72 74 75 61 6c 20 75 6e 73 e"/>..........public.virtual.uns
8660 61 66 65 20 76 6f 69 64 20 57 72 69 74 65 56 61 6c 75 65 46 72 6f 6d 4f 62 6a 65 63 74 49 6e 74 afe.void.WriteValueFromObjectInt
8680 6f 53 74 61 74 65 28 6f 62 6a 65 63 74 20 76 61 6c 75 65 2c 20 76 6f 69 64 2a 20 73 74 61 74 65 oState(object.value,.void*.state
86a0 50 74 72 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68 72 Ptr)..........{..............thr
86c0 6f 77 20 6e 65 77 20 4e 6f 74 53 75 70 70 6f 72 74 65 64 45 78 63 65 70 74 69 6f 6e 28 0d 0a 20 ow.new.NotSupportedException(...
86e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 22 43 6f 6e 74 72 6f 6c 20 27 7b 74 68 69 73 7d ...............$"Control.'{this}
8700 27 20 64 6f 65 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 77 72 69 74 69 6e 67 22 29 3b 0d 0a 20 '.does.not.support.writing");...
8720 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 .......}............///.<summary
8740 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 43 6f 6d 70 61 72 65 20 74 68 65 20 76 61 6c 75 65 >..........///.Compare.the.value
8760 20 6f 66 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 61 73 20 72 65 61 64 20 66 72 6f 6d 20 3c 70 61 .of.the.control.as.read.from.<pa
8780 72 61 6d 72 65 66 20 6e 61 6d 65 3d 22 66 69 72 73 74 53 74 61 74 65 50 74 72 22 2f 3e 20 74 6f ramref.name="firstStatePtr"/>.to
87a0 20 74 68 61 74 20 72 65 61 64 20 66 72 6f 6d 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 70 61 .that.read.from..........///.<pa
87c0 72 61 6d 72 65 66 20 6e 61 6d 65 3d 22 73 65 63 6f 6e 64 53 74 61 74 65 50 74 72 22 2f 3e 20 61 ramref.name="secondStatePtr"/>.a
87e0 6e 64 20 72 65 74 75 72 6e 20 74 72 75 65 20 69 66 20 74 68 65 79 20 61 72 65 20 65 71 75 61 6c nd.return.true.if.they.are.equal
8800 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 ...........///.</summary>.......
8820 20 20 20 2f 2f 2f 20 3c 70 61 72 61 6d 20 6e 61 6d 65 3d 22 66 69 72 73 74 53 74 61 74 65 50 74 ...///.<param.name="firstStatePt
8840 72 22 3e 4d 65 6d 6f 72 79 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 63 6f 6e 74 72 6f 6c r">Memory.containing.the.control
8860 27 73 20 3c 73 65 65 20 63 72 65 66 3d 22 73 74 61 74 65 42 6c 6f 63 6b 22 2f 3e 2e 3c 2f 70 61 's.<see.cref="stateBlock"/>.</pa
8880 72 61 6d 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 70 61 72 61 6d 20 6e 61 6d 65 3d 22 73 ram>..........///.<param.name="s
88a0 65 63 6f 6e 64 53 74 61 74 65 50 74 72 22 3e 4d 65 6d 6f 72 79 20 63 6f 6e 74 61 69 6e 69 6e 67 econdStatePtr">Memory.containing
88c0 20 74 68 65 20 63 6f 6e 74 72 6f 6c 27 73 20 3c 73 65 65 20 63 72 65 66 3d 22 73 74 61 74 65 42 .the.control's.<see.cref="stateB
88e0 6c 6f 63 6b 22 2f 3e 3c 2f 70 61 72 61 6d 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 lock"/></param>..........///.<re
8900 74 75 72 6e 73 3e 54 72 75 65 20 69 66 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 63 turns>True.if.the.value.of.the.c
8920 6f 6e 74 72 6f 6c 20 69 73 20 65 71 75 61 6c 20 69 6e 20 62 6f 74 68 20 3c 70 61 72 61 6d 72 65 ontrol.is.equal.in.both.<paramre
8940 66 20 6e 61 6d 65 3d 22 66 69 72 73 74 53 74 61 74 65 50 74 72 22 2f 3e 20 61 6e 64 0d 0a 20 20 f.name="firstStatePtr"/>.and....
8960 20 20 20 20 20 20 2f 2f 2f 20 3c 70 61 72 61 6d 72 65 66 20 6e 61 6d 65 3d 22 73 65 63 6f 6e 64 ......///.<paramref.name="second
8980 53 74 61 74 65 50 74 72 22 2f 3e 2e 3c 2f 72 65 74 75 72 6e 73 3e 0d 0a 20 20 20 20 20 20 20 20 StatePtr"/>.</returns>..........
89a0 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 55 6e 6c 69 6b ///.<remarks>..........///.Unlik
89c0 65 20 3c 73 65 65 20 63 72 65 66 3d 22 43 6f 6d 70 61 72 65 53 74 61 74 65 22 2f 3e 2c 20 74 68 e.<see.cref="CompareState"/>,.th
89e0 69 73 20 6d 65 74 68 6f 64 20 77 69 6c 6c 20 68 61 76 65 20 74 6f 20 64 6f 20 6d 6f 72 65 20 74 is.method.will.have.to.do.more.t
8a00 68 61 6e 20 6a 75 73 74 20 63 6f 6d 70 61 72 65 20 74 68 65 20 6d 65 6d 6f 72 79 0d 0a 20 20 20 han.just.compare.the.memory.....
8a20 20 20 20 20 20 2f 2f 2f 20 66 6f 72 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 69 6e 20 74 68 65 20 .....///.for.the.control.in.the.
8a40 74 77 6f 20 73 74 61 74 65 20 62 75 66 66 65 72 73 2e 20 49 74 20 77 69 6c 6c 20 68 61 76 65 20 two.state.buffers..It.will.have.
8a60 74 6f 20 72 65 61 64 20 6f 75 74 20 73 74 61 74 65 20 66 6f 72 20 74 68 65 20 63 6f 6e 74 72 6f to.read.out.state.for.the.contro
8a80 6c 20 61 6e 64 20 72 75 6e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 74 68 65 20 66 75 6c 6c 20 l.and.run..........///.the.full.
8aa0 70 72 6f 63 65 73 73 69 6e 67 20 6d 61 63 68 69 6e 65 72 79 20 66 6f 72 20 74 68 65 20 63 6f 6e processing.machinery.for.the.con
8ac0 74 72 6f 6c 20 74 6f 20 74 75 72 6e 20 74 68 65 20 73 74 61 74 65 20 69 6e 74 6f 20 61 20 66 69 trol.to.turn.the.state.into.a.fi
8ae0 6e 61 6c 2c 20 70 72 6f 63 65 73 73 65 64 20 76 61 6c 75 65 2e 0d 0a 20 20 20 20 20 20 20 20 2f nal,.processed.value.........../
8b00 2f 2f 20 43 6f 6d 70 61 72 65 56 61 6c 75 65 20 69 73 20 74 68 75 73 20 6d 6f 72 65 20 63 6f 73 //.CompareValue.is.thus.more.cos
8b20 74 6c 79 20 74 68 61 6e 20 3c 73 65 65 20 63 72 65 66 3d 22 43 6f 6d 70 61 72 65 53 74 61 74 65 tly.than.<see.cref="CompareState
8b40 22 2f 3e 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 54 "/>...........///..........///.T
8b60 68 69 73 20 6d 65 74 68 6f 64 20 77 69 6c 6c 20 61 70 70 6c 79 20 65 70 73 69 6c 6f 6e 73 20 28 his.method.will.apply.epsilons.(
8b80 3c 73 65 65 20 63 72 65 66 3d 22 4d 61 74 68 66 2e 45 70 73 69 6c 6f 6e 22 2f 3e 29 20 77 68 65 <see.cref="Mathf.Epsilon"/>).whe
8ba0 6e 20 63 6f 6d 70 61 72 69 6e 67 20 66 6c 6f 61 74 73 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f n.comparing.floats...........///
8bc0 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 .</remarks>..........///.<seeals
8be0 6f 20 63 72 65 66 3d 22 43 6f 6d 70 61 72 65 53 74 61 74 65 22 2f 3e 0d 0a 20 20 20 20 20 20 20 o.cref="CompareState"/>.........
8c00 20 70 75 62 6c 69 63 20 61 62 73 74 72 61 63 74 20 75 6e 73 61 66 65 20 62 6f 6f 6c 20 43 6f 6d .public.abstract.unsafe.bool.Com
8c20 70 61 72 65 56 61 6c 75 65 28 76 6f 69 64 2a 20 66 69 72 73 74 53 74 61 74 65 50 74 72 2c 20 76 pareValue(void*.firstStatePtr,.v
8c40 6f 69 64 2a 20 73 65 63 6f 6e 64 53 74 61 74 65 50 74 72 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 oid*.secondStatePtr);...........
8c60 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 54 72 79 20 .///.<summary>..........///.Try.
8c80 74 6f 20 66 69 6e 64 20 61 20 63 68 69 6c 64 20 63 6f 6e 74 72 6f 6c 20 6d 61 74 63 68 69 6e 67 to.find.a.child.control.matching
8ca0 20 74 68 65 20 67 69 76 65 6e 20 70 61 74 68 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f .the.given.path...........///.</
8cc0 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 70 61 72 61 6d 20 6e 61 6d summary>..........///.<param.nam
8ce0 65 3d 22 70 61 74 68 22 3e 41 20 63 6f 6e 74 72 6f 6c 20 70 61 74 68 2e 20 53 65 65 20 3c 73 65 e="path">A.control.path..See.<se
8d00 65 20 63 72 65 66 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 50 61 74 68 22 2f 3e 2e 3c 2f 70 61 e.cref="InputControlPath"/>.</pa
8d20 72 61 6d 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 74 75 72 6e 73 3e 54 68 65 20 66 ram>..........///.<returns>The.f
8d40 69 72 73 74 20 64 69 72 65 63 74 20 6f 72 20 69 6e 64 69 72 65 63 74 20 63 68 69 6c 64 20 63 6f irst.direct.or.indirect.child.co
8d60 6e 74 72 6f 6c 20 74 68 61 74 20 6d 61 74 63 68 65 73 20 74 68 65 20 67 69 76 65 6e 20 3c 70 61 ntrol.that.matches.the.given.<pa
8d80 72 61 6d 72 65 66 20 6e 61 6d 65 3d 22 70 61 74 68 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f ramref.name="path"/>..........//
8da0 2f 20 6f 72 20 6e 75 6c 6c 20 69 66 20 6e 6f 20 63 6f 6e 74 72 6f 6c 20 77 61 73 20 66 6f 75 6e /.or.null.if.no.control.was.foun
8dc0 64 20 74 6f 20 6d 61 74 63 68 2e 3c 2f 72 65 74 75 72 6e 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f d.to.match.</returns>........../
8de0 2f 2f 20 3c 65 78 63 65 70 74 69 6f 6e 20 63 72 65 66 3d 22 41 72 67 75 6d 65 6e 74 4e 75 6c 6c //.<exception.cref="ArgumentNull
8e00 45 78 63 65 70 74 69 6f 6e 22 3e 3c 70 61 72 61 6d 72 65 66 20 6e 61 6d 65 3d 22 70 61 74 68 22 Exception"><paramref.name="path"
8e20 2f 3e 20 69 73 20 3c 63 3e 6e 75 6c 6c 3c 2f 63 3e 20 6f 72 20 65 6d 70 74 79 2e 3c 2f 65 78 63 />.is.<c>null</c>.or.empty.</exc
8e40 65 70 74 69 6f 6e 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a eption>..........///.<remarks>..
8e60 20 20 20 20 20 20 20 20 2f 2f 2f 20 4e 6f 74 65 20 74 68 61 74 20 69 66 20 74 68 65 20 67 69 76 ........///.Note.that.if.the.giv
8e80 65 6e 20 70 61 74 68 20 6d 61 74 63 68 65 73 20 6d 75 6c 74 69 70 6c 65 20 63 68 69 6c 64 20 63 en.path.matches.multiple.child.c
8ea0 6f 6e 74 72 6f 6c 73 2c 20 6f 6e 6c 79 20 74 68 65 20 66 69 72 73 74 20 63 6f 6e 74 72 6f 6c 0d ontrols,.only.the.first.control.
8ec0 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 65 6e 63 6f 75 6e 74 65 72 65 64 20 69 6e 20 74 68 65 20 .........///.encountered.in.the.
8ee0 73 65 61 72 63 68 20 77 69 6c 6c 20 62 65 20 72 65 74 75 72 6e 65 64 2e 0d 0a 20 20 20 20 20 20 search.will.be.returned.........
8f00 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 65 78 61 6d 70 6c 65 3e 0d 0a 20 20 ..///..........///.<example>....
8f20 20 20 20 20 20 20 2f 2f 2f 20 3c 63 6f 64 65 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 2f 2f ......///.<code>..........///.//
8f40 20 52 65 74 75 72 6e 73 20 74 68 65 20 6c 65 66 74 53 74 69 63 6b 20 63 6f 6e 74 72 6f 6c 20 6f .Returns.the.leftStick.control.o
8f60 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 67 61 6d 65 70 61 64 2e 0d 0a 20 20 20 20 20 20 20 20 f.the.current.gamepad...........
8f80 2f 2f 2f 20 47 61 6d 65 70 61 64 2e 63 75 72 72 65 6e 74 2e 54 72 79 47 65 74 43 68 69 6c 64 43 ///.Gamepad.current.TryGetChildC
8fa0 6f 6e 74 72 6f 6c 28 22 6c 65 66 74 53 74 69 63 6b 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f ontrol("leftStick");..........//
8fc0 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 2f 2f 20 52 65 74 75 72 6e 73 20 74 68 65 20 58 20 /..........///.//.Returns.the.X.
8fe0 61 78 69 73 20 63 6f 6e 74 72 6f 6c 20 6f 66 20 74 68 65 20 6c 65 66 74 53 74 69 63 6b 20 6f 6e axis.control.of.the.leftStick.on
9000 20 74 68 65 20 63 75 72 72 65 6e 74 20 67 61 6d 65 70 61 64 2e 0d 0a 20 20 20 20 20 20 20 20 2f .the.current.gamepad.........../
9020 2f 2f 20 47 61 6d 65 70 61 64 2e 63 75 72 72 65 6e 74 2e 54 72 79 47 65 74 43 68 69 6c 64 43 6f //.Gamepad.current.TryGetChildCo
9040 6e 74 72 6f 6c 28 22 6c 65 66 74 53 74 69 63 6b 2f 78 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f ntrol("leftStick/x");........../
9060 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 2f 2f 20 52 65 74 75 72 6e 73 20 74 68 65 20 66 //..........///.//.Returns.the.f
9080 69 72 73 74 20 63 6f 6e 74 72 6f 6c 20 65 6e 64 69 6e 67 20 77 69 74 68 20 22 73 74 69 63 6b 22 irst.control.ending.with."stick"
90a0 20 69 6e 20 69 74 73 20 6e 61 6d 65 2e 20 4e 6f 74 65 20 74 68 61 74 20 69 74 0d 0a 20 20 20 20 .in.its.name..Note.that.it......
90c0 20 20 20 20 2f 2f 2f 20 2f 2f 20 75 6e 64 65 74 65 72 6d 69 6e 65 64 20 77 68 65 74 68 65 72 20 ....///.//.undetermined.whether.
90e0 74 68 69 73 20 69 73 20 6c 65 66 74 53 74 69 63 6b 20 6f 72 20 72 69 67 68 74 53 74 69 63 6b 20 this.is.leftStick.or.rightStick.
9100 28 6f 72 20 65 76 65 6e 20 61 6e 6f 74 68 65 72 20 73 74 69 63 6b 0d 0a 20 20 20 20 20 20 20 20 (or.even.another.stick..........
9120 2f 2f 2f 20 2f 2f 20 61 64 64 65 64 20 62 79 20 74 68 65 20 67 69 76 65 6e 20 67 61 6d 65 70 61 ///.//.added.by.the.given.gamepa
9140 64 29 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 47 61 6d 65 70 61 64 2e 63 75 72 72 65 6e 74 d)...........///.Gamepad.current
9160 2e 54 72 79 47 65 74 43 68 69 6c 64 43 6f 6e 74 72 6f 6c 28 22 2a 73 74 69 63 6b 22 29 3b 0d 0a .TryGetChildControl("*stick");..
9180 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 63 6f 64 65 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f ........///.</code>..........///
91a0 20 3c 2f 65 78 61 6d 70 6c 65 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 .</example>..........///........
91c0 20 20 2f 2f 2f 20 54 68 69 73 20 6d 65 74 68 6f 64 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 ..///.This.method.is.equivalent.
91e0 74 6f 20 63 61 6c 6c 69 6e 67 20 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 43 6f 6e 74 72 to.calling.<see.cref="InputContr
9200 6f 6c 50 61 74 68 2e 54 72 79 46 69 6e 64 43 68 69 6c 64 22 2f 3e 2e 0d 0a 20 20 20 20 20 20 20 olPath.TryFindChild"/>..........
9220 20 2f 2f 2f 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 .///.</remarks>..........public.
9240 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 20 54 72 79 47 65 74 43 68 69 6c 64 43 6f 6e 74 72 6f 6c 28 InputControl.TryGetChildControl(
9260 73 74 72 69 6e 67 20 70 61 74 68 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 string.path)..........{.........
9280 20 20 20 20 20 69 66 20 28 73 74 72 69 6e 67 2e 49 73 4e 75 6c 6c 4f 72 45 6d 70 74 79 28 70 61 .....if.(string.IsNullOrEmpty(pa
92a0 74 68 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 th))..................throw.new.
92c0 41 72 67 75 6d 65 6e 74 4e 75 6c 6c 45 78 63 65 70 74 69 6f 6e 28 6e 61 6d 65 6f 66 28 70 61 74 ArgumentNullException(nameof(pat
92e0 68 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 49 6e 70 75 74 43 6f h));..............return.InputCo
9300 6e 74 72 6f 6c 50 61 74 68 2e 54 72 79 46 69 6e 64 43 68 69 6c 64 28 74 68 69 73 2c 20 70 61 74 ntrolPath.TryFindChild(this,.pat
9320 68 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 h);..........}............public
9340 20 54 43 6f 6e 74 72 6f 6c 20 54 72 79 47 65 74 43 68 69 6c 64 43 6f 6e 74 72 6f 6c 3c 54 43 6f .TControl.TryGetChildControl<TCo
9360 6e 74 72 6f 6c 3e 28 73 74 72 69 6e 67 20 70 61 74 68 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ntrol>(string.path).............
9380 20 77 68 65 72 65 20 54 43 6f 6e 74 72 6f 6c 20 3a 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 0d 0a .where.TControl.:.InputControl..
93a0 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 74 72 69 6e ........{..............if.(strin
93c0 67 2e 49 73 4e 75 6c 6c 4f 72 45 6d 70 74 79 28 70 61 74 68 29 29 0d 0a 20 20 20 20 20 20 20 20 g.IsNullOrEmpty(path))..........
93e0 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 41 72 67 75 6d 65 6e 74 4e 75 6c 6c 45 78 ........throw.new.ArgumentNullEx
9400 63 65 70 74 69 6f 6e 28 6e 61 6d 65 6f 66 28 70 61 74 68 29 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 ception(nameof(path));..........
9420 20 20 20 20 20 20 76 61 72 20 63 6f 6e 74 72 6f 6c 20 3d 20 54 72 79 47 65 74 43 68 69 6c 64 43 ......var.control.=.TryGetChildC
9440 6f 6e 74 72 6f 6c 28 70 61 74 68 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63 ontrol(path);..............if.(c
9460 6f 6e 74 72 6f 6c 20 3d 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ontrol.==.null).................
9480 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 .return.null;................var
94a0 20 63 6f 6e 74 72 6f 6c 4f 66 54 79 70 65 20 3d 20 63 6f 6e 74 72 6f 6c 20 61 73 20 54 43 6f 6e .controlOfType.=.control.as.TCon
94c0 74 72 6f 6c 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63 6f 6e 74 72 6f 6c 4f 66 trol;..............if.(controlOf
94e0 54 79 70 65 20 3d 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 Type.==.null)..................t
9500 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 4f 70 65 72 61 74 69 6f 6e 45 78 63 65 70 74 69 hrow.new.InvalidOperationExcepti
9520 6f 6e 28 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 22 45 78 70 65 63 on(......................$"Expec
9540 74 65 64 20 63 6f 6e 74 72 6f 6c 20 27 7b 70 61 74 68 7d 27 20 74 6f 20 62 65 20 6f 66 20 74 79 ted.control.'{path}'.to.be.of.ty
9560 70 65 20 27 7b 74 79 70 65 6f 66 28 54 43 6f 6e 74 72 6f 6c 29 2e 4e 61 6d 65 7d 27 20 62 75 74 pe.'{typeof(TControl).Name}'.but
9580 20 69 73 20 6f 66 20 74 79 70 65 20 27 7b 63 6f 6e 74 72 6f 6c 2e 47 65 74 54 79 70 65 28 29 2e .is.of.type.'{control.GetType().
95a0 4e 61 6d 65 7d 27 20 69 6e 73 74 65 61 64 21 22 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 Name}'.instead!");..............
95c0 20 20 72 65 74 75 72 6e 20 63 6f 6e 74 72 6f 6c 4f 66 54 79 70 65 3b 0d 0a 20 20 20 20 20 20 20 ..return.controlOfType;.........
95e0 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 49 6e 70 75 74 43 6f 6e 74 72 6f .}............public.InputContro
9600 6c 20 47 65 74 43 68 69 6c 64 43 6f 6e 74 72 6f 6c 28 73 74 72 69 6e 67 20 70 61 74 68 29 0d 0a l.GetChildControl(string.path)..
9620 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 74 72 69 6e ........{..............if.(strin
9640 67 2e 49 73 4e 75 6c 6c 4f 72 45 6d 70 74 79 28 70 61 74 68 29 29 0d 0a 20 20 20 20 20 20 20 20 g.IsNullOrEmpty(path))..........
9660 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 41 72 67 75 6d 65 6e 74 4e 75 6c 6c 45 78 ........throw.new.ArgumentNullEx
9680 63 65 70 74 69 6f 6e 28 6e 61 6d 65 6f 66 28 70 61 74 68 29 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 ception(nameof(path));..........
96a0 20 20 20 20 20 20 76 61 72 20 63 6f 6e 74 72 6f 6c 20 3d 20 54 72 79 47 65 74 43 68 69 6c 64 43 ......var.control.=.TryGetChildC
96c0 6f 6e 74 72 6f 6c 28 70 61 74 68 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63 ontrol(path);..............if.(c
96e0 6f 6e 74 72 6f 6c 20 3d 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ontrol.==.null).................
9700 20 74 68 72 6f 77 20 6e 65 77 20 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 24 22 43 .throw.new.ArgumentException($"C
9720 61 6e 6e 6f 74 20 66 69 6e 64 20 69 6e 70 75 74 20 63 6f 6e 74 72 6f 6c 20 27 7b 4d 61 6b 65 43 annot.find.input.control.'{MakeC
9740 68 69 6c 64 50 61 74 68 28 70 61 74 68 29 7d 27 22 2c 20 6e 61 6d 65 6f 66 28 70 61 74 68 29 29 hildPath(path)}'",.nameof(path))
9760 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 63 6f 6e 74 72 6f 6c 3b ;................return.control;
9780 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 54 43 ..........}............public.TC
97a0 6f 6e 74 72 6f 6c 20 47 65 74 43 68 69 6c 64 43 6f 6e 74 72 6f 6c 3c 54 43 6f 6e 74 72 6f 6c 3e ontrol.GetChildControl<TControl>
97c0 28 73 74 72 69 6e 67 20 70 61 74 68 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 68 65 72 65 (string.path)..............where
97e0 20 54 43 6f 6e 74 72 6f 6c 20 3a 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 0d 0a 20 20 20 20 20 20 .TControl.:.InputControl........
9800 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 63 6f 6e 74 72 6f 6c 20 3d 20 47 ..{..............var.control.=.G
9820 65 74 43 68 69 6c 64 43 6f 6e 74 72 6f 6c 28 70 61 74 68 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 etChildControl(path);...........
9840 20 20 20 20 20 69 66 20 28 21 28 63 6f 6e 74 72 6f 6c 20 69 73 20 54 43 6f 6e 74 72 6f 6c 20 63 .....if.(!(control.is.TControl.c
9860 6f 6e 74 72 6f 6c 4f 66 54 79 70 65 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ontrolOfType))..................
9880 74 68 72 6f 77 20 6e 65 77 20 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 0d 0a 20 20 throw.new.ArgumentException(....
98a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 22 45 78 70 65 63 74 65 64 20 63 6f 6e ..................$"Expected.con
98c0 74 72 6f 6c 20 27 7b 70 61 74 68 7d 27 20 74 6f 20 62 65 20 6f 66 20 74 79 70 65 20 27 7b 74 79 trol.'{path}'.to.be.of.type.'{ty
98e0 70 65 6f 66 28 54 43 6f 6e 74 72 6f 6c 29 2e 4e 61 6d 65 7d 27 20 62 75 74 20 69 73 20 6f 66 20 peof(TControl).Name}'.but.is.of.
9900 74 79 70 65 20 27 7b 63 6f 6e 74 72 6f 6c 2e 47 65 74 54 79 70 65 28 29 2e 4e 61 6d 65 7d 27 20 type.'{control.GetType().Name}'.
9920 69 6e 73 74 65 61 64 21 22 2c 20 6e 61 6d 65 6f 66 28 70 61 74 68 29 29 3b 0d 0a 0d 0a 20 20 20 instead!",.nameof(path));.......
9940 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 63 6f 6e 74 72 6f 6c 4f 66 54 79 70 65 3b 0d 0a .........return.controlOfType;..
9960 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 70 72 6f 74 65 63 74 65 64 20 49 ........}............protected.I
9980 6e 70 75 74 43 6f 6e 74 72 6f 6c 28 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 nputControl()..........{........
99a0 20 20 20 20 20 20 2f 2f 20 53 65 74 20 64 65 66 61 75 6c 74 73 20 66 6f 72 20 73 74 61 74 65 20 ......//.Set.defaults.for.state.
99c0 62 6c 6f 63 6b 20 73 65 74 75 70 2e 20 53 75 62 63 6c 61 73 73 65 73 20 6d 61 79 20 6f 76 65 72 block.setup..Subclasses.may.over
99e0 72 69 64 65 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 53 74 61 74 65 42 6c 6f 63 6b 2e ride...............m_StateBlock.
9a00 62 79 74 65 4f 66 66 73 65 74 20 3d 20 49 6e 70 75 74 53 74 61 74 65 42 6c 6f 63 6b 2e 41 75 74 byteOffset.=.InputStateBlock.Aut
9a20 6f 6d 61 74 69 63 4f 66 66 73 65 74 3b 20 2f 2f 20 52 65 71 75 65 73 74 20 61 75 74 6f 6d 61 74 omaticOffset;.//.Request.automat
9a40 69 63 20 6c 61 79 6f 75 74 20 62 79 20 64 65 66 61 75 6c 74 2e 0d 0a 20 20 20 20 20 20 20 20 7d ic.layout.by.default...........}
9a60 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 ............///.<summary>.......
9a80 20 20 20 2f 2f 2f 20 50 65 72 66 6f 72 6d 20 66 69 6e 61 6c 20 69 6e 69 74 69 61 6c 69 7a 61 74 ...///.Perform.final.initializat
9aa0 69 6f 6e 20 74 61 73 6b 73 20 61 66 74 65 72 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 68 69 65 72 ion.tasks.after.the.control.hier
9ac0 61 72 63 68 79 20 68 61 73 20 62 65 65 6e 20 70 75 74 20 69 6e 74 6f 20 70 6c 61 63 65 2e 0d 0a archy.has.been.put.into.place...
9ae0 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 ........///.</summary>..........
9b00 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 54 68 69 73 20 ///.<remarks>..........///.This.
9b20 6d 65 74 68 6f 64 20 63 61 6e 20 62 65 20 6f 76 65 72 72 69 64 64 65 6e 20 74 6f 20 70 65 72 66 method.can.be.overridden.to.perf
9b40 6f 72 6d 20 63 6f 6e 74 72 6f 6c 2d 20 6f 72 20 64 65 76 69 63 65 2d 73 70 65 63 69 66 69 63 20 orm.control-.or.device-specific.
9b60 73 65 74 75 70 20 77 6f 72 6b 2e 20 54 68 65 20 6d 6f 73 74 0d 0a 20 20 20 20 20 20 20 20 2f 2f setup.work..The.most..........//
9b80 2f 20 63 6f 6d 6d 6f 6e 20 75 73 65 20 63 61 73 65 20 69 73 20 66 6f 72 20 6c 6f 6f 6b 69 6e 67 /.common.use.case.is.for.looking
9ba0 20 75 70 20 63 68 69 6c 64 20 63 6f 6e 74 72 6f 6c 73 20 61 6e 64 20 73 74 6f 72 69 6e 67 20 74 .up.child.controls.and.storing.t
9bc0 68 65 6d 20 69 6e 20 6c 6f 63 61 6c 20 67 65 74 74 65 72 73 2e 0d 0a 20 20 20 20 20 20 20 20 2f hem.in.local.getters.........../
9be0 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 65 78 61 6d 70 6c 65 3e 0d 0a 20 20 20 20 20 //..........///.<example>.......
9c00 20 20 20 2f 2f 2f 20 3c 63 6f 64 65 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 70 75 62 6c 69 ...///.<code>..........///.publi
9c20 63 20 63 6c 61 73 73 20 4d 79 44 65 76 69 63 65 20 3a 20 49 6e 70 75 74 44 65 76 69 63 65 0d 0a c.class.MyDevice.:.InputDevice..
9c40 20 20 20 20 20 20 20 20 2f 2f 2f 20 7b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 70 ........///.{..........///.....p
9c60 75 62 6c 69 63 20 42 75 74 74 6f 6e 43 6f 6e 74 72 6f 6c 20 62 75 74 74 6f 6e 20 7b 20 67 65 74 ublic.ButtonControl.button.{.get
9c80 3b 20 70 72 69 76 61 74 65 20 73 65 74 3b 20 7d 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 ;.private.set;.}..........///...
9ca0 20 20 70 75 62 6c 69 63 20 41 78 69 73 43 6f 6e 74 72 6f 6c 20 61 78 69 73 20 7b 20 67 65 74 3b ..public.AxisControl.axis.{.get;
9cc0 20 70 72 69 76 61 74 65 20 73 65 74 3b 20 7d 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 .private.set;.}..........///....
9ce0 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 70 72 6f 74 65 63 74 65 64 20 6f 76 65 72 72 69 64 65 ......///.....protected.override
9d00 20 76 6f 69 64 20 4f 6e 46 69 6e 69 73 68 53 65 74 75 70 28 29 0d 0a 20 20 20 20 20 20 20 20 2f .void.OnFinishSetup()........../
9d20 2f 2f 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 20 20 20 20 2f 2f //.....{..........///.........//
9d40 20 43 61 63 68 65 20 63 6f 6e 74 72 6f 6c 73 20 69 6e 20 67 65 74 74 65 72 73 2e 0d 0a 20 20 20 .Cache.controls.in.getters......
9d60 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 20 20 20 20 62 75 74 74 6f 6e 20 3d 20 47 65 74 43 68 69 .....///.........button.=.GetChi
9d80 6c 64 43 6f 6e 74 72 6f 6c 28 22 62 75 74 74 6f 6e 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f ldControl("button");..........//
9da0 2f 20 20 20 20 20 20 20 20 20 61 78 69 73 20 3d 20 47 65 74 43 68 69 6c 64 43 6f 6e 74 72 6f 6c /.........axis.=.GetChildControl
9dc0 28 22 61 78 69 73 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 7d 0d 0a 20 20 ("axis");..........///.....}....
9de0 20 20 20 20 20 20 2f 2f 2f 20 7d 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 63 6f 64 65 3e ......///.}..........///.</code>
9e00 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 65 78 61 6d 70 6c 65 3e 0d 0a 20 20 20 20 20 20 ..........///.</example>........
9e20 20 20 2f 2f 2f 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 70 72 6f 74 65 63 ..///.</remarks>..........protec
9e40 74 65 64 20 76 69 72 74 75 61 6c 20 76 6f 69 64 20 46 69 6e 69 73 68 53 65 74 75 70 28 29 0d 0a ted.virtual.void.FinishSetup()..
9e60 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 ........{..........}............
9e80 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 43 61 6c 6c 20 ///.<summary>..........///.Call.
9ea0 3c 73 65 65 20 63 72 65 66 3d 22 52 65 66 72 65 73 68 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 22 <see.cref="RefreshConfiguration"
9ec0 2f 3e 20 69 66 20 74 68 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 68 61 73 20 69 6e 20 74 />.if.the.configuration.has.in.t
9ee0 68 65 20 69 6e 74 65 72 69 6d 20 62 65 65 6e 20 69 6e 76 61 6c 69 64 61 74 65 64 0d 0a 20 20 20 he.interim.been.invalidated.....
9f00 20 20 20 20 20 2f 2f 2f 20 62 79 20 61 20 3c 73 65 65 20 63 72 65 66 3d 22 44 65 76 69 63 65 43 .....///.by.a.<see.cref="DeviceC
9f20 6f 6e 66 69 67 75 72 61 74 69 6f 6e 45 76 65 6e 74 22 2f 3e 2e 0d 0a 20 20 20 20 20 20 20 20 2f onfigurationEvent"/>.........../
9f40 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 //.</summary>..........///.<rema
9f60 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 54 68 69 73 20 6d 65 74 68 6f 64 20 69 73 rks>..........///.This.method.is
9f80 20 6f 6e 6c 79 20 72 65 6c 65 76 61 6e 74 20 69 66 20 79 6f 75 20 61 72 65 20 69 6d 70 6c 65 6d .only.relevant.if.you.are.implem
9fa0 65 6e 74 69 6e 67 20 79 6f 75 72 20 6f 77 6e 20 64 65 76 69 63 65 73 20 6f 72 20 6e 65 77 0d 0a enting.your.own.devices.or.new..
9fc0 20 20 20 20 20 20 20 20 2f 2f 2f 20 74 79 70 65 73 20 6f 66 20 63 6f 6e 74 72 6f 6c 73 20 77 68 ........///.types.of.controls.wh
9fe0 69 63 68 20 61 72 65 20 66 65 74 63 68 69 6e 67 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 64 ich.are.fetching.configuration.d
a000 61 74 61 20 66 72 6f 6d 20 74 68 65 20 64 65 76 69 63 65 73 20 28 73 75 63 68 0d 0a 20 20 20 20 ata.from.the.devices.(such......
a020 20 20 20 20 2f 2f 2f 20 61 73 20 3c 73 65 65 20 63 72 65 66 3d 22 4b 65 79 43 6f 6e 74 72 6f 6c ....///.as.<see.cref="KeyControl
a040 22 2f 3e 20 77 68 69 63 68 20 69 73 20 66 65 74 63 68 69 6e 67 20 64 69 73 70 6c 61 79 20 6e 61 "/>.which.is.fetching.display.na
a060 6d 65 73 20 66 6f 72 20 69 6e 64 69 76 69 64 75 61 6c 20 6b 65 79 73 0d 0a 20 20 20 20 20 20 20 mes.for.individual.keys.........
a080 20 2f 2f 2f 20 66 72 6f 6d 20 74 68 65 20 75 6e 64 65 72 6c 79 69 6e 67 20 70 6c 61 74 66 6f 72 .///.from.the.underlying.platfor
a0a0 6d 29 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 54 68 m)...........///..........///.Th
a0c0 69 73 20 6d 65 74 68 6f 64 20 73 68 6f 75 6c 64 20 62 65 20 63 61 6c 6c 65 64 20 69 66 20 79 6f is.method.should.be.called.if.yo
a0e0 75 20 61 72 65 20 61 63 63 65 73 73 69 6e 67 20 63 61 63 68 65 64 20 64 61 74 61 20 73 65 74 20 u.are.accessing.cached.data.set.
a100 75 70 20 62 79 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 20 63 72 65 66 3d 22 52 65 up.by..........///.<see.cref="Re
a120 66 72 65 73 68 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 22 2f 3e 2e 0d 0a 20 20 20 20 20 20 20 20 freshConfiguration"/>...........
a140 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 65 78 61 6d 70 6c 65 3e 0d 0a 20 20 20 20 ///..........///.<example>......
a160 20 20 20 20 2f 2f 2f 20 3c 63 6f 64 65 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 2f 2f 20 4c ....///.<code>..........///.//.L
a180 65 74 27 73 20 73 61 79 20 79 6f 75 72 20 64 65 76 69 63 65 20 68 61 73 20 61 6e 20 61 73 73 6f et's.say.your.device.has.an.asso
a1a0 63 69 61 74 65 64 20 6f 72 69 65 6e 74 61 74 69 6f 6e 20 77 68 69 63 68 20 69 74 20 63 61 6e 20 ciated.orientation.which.it.can.
a1c0 62 65 20 68 65 6c 64 20 77 69 74 68 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 2f 2f 20 61 6e 64 be.held.with..........///.//.and
a1e0 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 73 75 72 66 61 63 65 20 62 6f 74 68 20 61 73 20 61 20 70 .you.want.to.surface.both.as.a.p
a200 72 6f 70 65 72 74 79 20 61 6e 64 20 61 73 20 61 20 75 73 61 67 65 20 6f 6e 20 74 68 65 20 64 65 roperty.and.as.a.usage.on.the.de
a220 76 69 63 65 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 2f 2f 20 57 68 65 6e 65 76 65 72 20 79 vice...........///.//.Whenever.y
a240 6f 75 72 20 62 61 63 6b 65 6e 64 20 63 6f 64 65 20 64 65 74 65 63 74 73 20 61 20 63 68 61 6e 67 our.backend.code.detects.a.chang
a260 65 20 69 6e 20 6f 72 69 65 6e 74 61 74 69 6f 6e 2c 20 69 74 20 73 68 6f 75 6c 64 20 73 65 6e 64 e.in.orientation,.it.should.send
a280 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 2f 2f 20 61 20 44 65 76 69 63 65 43 6f 6e 66 69 67 75 ..........///.//.a.DeviceConfigu
a2a0 72 61 74 69 6f 6e 45 76 65 6e 74 20 74 6f 20 79 6f 75 72 20 64 65 76 69 63 65 20 74 6f 20 73 69 rationEvent.to.your.device.to.si
a2c0 67 6e 61 6c 20 74 68 61 74 20 74 68 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0d 0a 20 20 20 gnal.that.the.configuration.....
a2e0 20 20 20 20 20 2f 2f 2f 20 2f 2f 20 6f 66 20 74 68 65 20 64 65 76 69 63 65 20 68 61 73 20 63 68 .....///.//.of.the.device.has.ch
a300 61 6e 67 65 64 2e 20 59 6f 75 20 63 61 6e 20 74 68 65 6e 20 69 6d 70 6c 65 6d 65 6e 74 20 52 65 anged..You.can.then.implement.Re
a320 66 72 65 73 68 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 29 20 74 6f 0d 0a 20 20 20 20 20 20 20 freshConfiguration().to.........
a340 20 2f 2f 2f 20 2f 2f 20 72 65 61 64 20 6f 75 74 20 61 6e 64 20 75 70 64 61 74 65 20 74 68 65 20 .///.//.read.out.and.update.the.
a360 64 65 76 69 63 65 20 6f 72 69 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 74 68 65 20 6d 61 6e 61 67 65 device.orientation.on.the.manage
a380 64 20 49 6e 70 75 74 44 65 76 69 63 65 20 69 6e 73 74 61 6e 63 65 2e 0d 0a 20 20 20 20 20 20 20 d.InputDevice.instance..........
a3a0 20 2f 2f 2f 20 70 75 62 6c 69 63 20 63 6c 61 73 73 20 4d 79 44 65 76 69 63 65 20 3a 20 49 6e 70 .///.public.class.MyDevice.:.Inp
a3c0 75 74 44 65 76 69 63 65 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 7b 0d 0a 20 20 20 20 20 20 20 utDevice..........///.{.........
a3e0 20 2f 2f 2f 20 20 20 20 20 70 75 62 6c 69 63 20 65 6e 75 6d 20 4f 72 69 65 6e 74 61 74 69 6f 6e .///.....public.enum.Orientation
a400 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f ..........///.....{..........///
a420 20 20 20 20 20 20 20 20 20 48 6f 72 69 7a 6f 6e 74 61 6c 2c 0d 0a 20 20 20 20 20 20 20 20 2f 2f .........Horizontal,..........//
a440 2f 20 20 20 20 20 20 20 20 20 56 65 72 74 69 63 61 6c 2c 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f /.........Vertical,..........///
a460 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f .....}..........///..........///
a480 20 20 20 20 20 70 72 69 76 61 74 65 20 4f 72 69 65 6e 74 61 74 69 6f 6e 20 6d 5f 4f 72 69 65 6e .....private.Orientation.m_Orien
a4a0 74 61 74 69 6f 6e 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 70 75 62 6c 69 63 20 tation;..........///.....public.
a4c0 4f 72 69 65 6e 74 61 74 69 6f 6e 20 6f 72 69 65 6e 74 61 74 69 6f 6e 0d 0a 20 20 20 20 20 20 20 Orientation.orientation.........
a4e0 20 2f 2f 2f 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 20 20 20 20 .///.....{..........///.........
a500 67 65 74 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 get..........///.........{......
a520 20 20 20 20 2f 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 43 61 6c 6c 20 52 65 66 72 ....///.............//.Call.Refr
a540 65 73 68 4f 72 69 65 6e 74 61 74 69 6f 6e 20 69 66 20 74 68 65 20 63 6f 6e 66 69 67 75 72 61 74 eshOrientation.if.the.configurat
a560 69 6f 6e 20 6f 66 20 74 68 65 20 64 65 76 69 63 65 20 68 61 73 20 62 65 65 6e 0d 0a 20 20 20 20 ion.of.the.device.has.been......
a580 20 20 20 20 2f 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 69 6e 76 61 6c 69 64 61 74 ....///.............//.invalidat
a5a0 65 64 20 73 69 6e 63 65 20 6c 61 73 74 20 74 69 6d 65 20 77 65 20 69 6e 69 74 69 61 6c 69 7a 65 ed.since.last.time.we.initialize
a5c0 64 20 6d 5f 4f 72 69 65 6e 74 61 74 69 6f 6e 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 d.m_Orientation...........///...
a5e0 20 20 20 20 20 20 20 20 20 20 52 65 66 72 65 73 68 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 49 66 ..........RefreshConfigurationIf
a600 4e 65 65 64 65 64 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 20 20 20 20 20 Needed();..........///..........
a620 20 20 20 72 65 74 75 72 6e 20 6d 5f 4f 72 69 65 6e 74 61 74 69 6f 6e 3b 0d 0a 20 20 20 20 20 20 ...return.m_Orientation;........
a640 20 20 2f 2f 2f 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 ..///.........}..........///....
a660 20 7d 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 70 72 6f 74 65 63 74 65 64 20 6f 76 .}..........///.....protected.ov
a680 65 72 72 69 64 65 20 76 6f 69 64 20 52 65 66 72 65 73 68 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e erride.void.RefreshConfiguration
a6a0 28 29 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 2f ()..........///.....{........../
a6c0 2f 2f 20 20 20 20 20 20 20 20 20 2f 2f 20 46 65 74 63 68 20 74 68 65 20 63 75 72 72 65 6e 74 20 //.........//.Fetch.the.current.
a6e0 6f 72 69 65 6e 74 61 74 69 6f 6e 20 66 72 6f 6d 20 74 68 65 20 62 61 63 6b 65 6e 64 2e 20 48 6f orientation.from.the.backend..Ho
a700 77 20 79 6f 75 20 64 6f 20 74 68 69 73 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 20 w.you.do.this..........///......
a720 20 20 20 2f 2f 20 64 65 70 65 6e 64 73 20 6f 6e 20 79 6f 75 72 20 64 65 76 69 63 65 2e 20 55 73 ...//.depends.on.your.device..Us
a740 69 6e 67 20 44 65 76 69 63 65 43 6f 6d 6d 61 6e 64 73 20 69 73 20 6f 6e 65 20 77 61 79 2e 0d 0a ing.DeviceCommands.is.one.way...
a760 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 20 20 20 20 76 61 72 20 66 65 74 63 68 4f 72 69 ........///.........var.fetchOri
a780 65 6e 74 61 74 69 6f 6e 43 6f 6d 6d 61 6e 64 20 3d 20 6e 65 77 20 46 65 74 63 68 4f 72 69 65 6e entationCommand.=.new.FetchOrien
a7a0 74 61 74 69 6f 6e 43 6f 6d 6d 61 6e 64 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 tationCommand();..........///...
a7c0 20 20 20 20 20 20 45 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 72 65 66 20 66 65 74 63 68 4f 72 ......ExecuteCommand(ref.fetchOr
a7e0 69 65 6e 74 61 74 69 6f 6e 43 6f 6d 6d 61 6e 64 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 ientationCommand);..........///.
a800 20 20 20 20 20 20 20 20 6d 5f 4f 72 69 65 6e 74 61 74 69 6f 6e 20 3d 20 66 65 74 63 68 4f 72 69 ........m_Orientation.=.fetchOri
a820 65 6e 74 61 74 69 6f 6e 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 entation;..........///..........
a840 2f 2f 2f 20 20 20 20 20 20 20 20 20 2f 2f 20 52 65 66 6c 65 63 74 20 74 68 65 20 6f 72 69 65 6e ///.........//.Reflect.the.orien
a860 74 61 74 69 6f 6e 20 6f 6e 20 74 68 65 20 64 65 76 69 63 65 2e 0d 0a 20 20 20 20 20 20 20 20 2f tation.on.the.device.........../
a880 2f 2f 20 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 6d 5f 4f 72 69 65 6e 74 61 74 69 6f 6e //.........switch.(m_Orientation
a8a0 29 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 )..........///.........{........
a8c0 20 20 2f 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 4f 72 69 65 6e 74 61 74 69 ..///.............case.Orientati
a8e0 6f 6e 2e 56 65 72 74 69 63 61 6c 3a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 20 20 on.Vertical:..........///.......
a900 20 20 20 20 20 20 20 20 20 20 49 6e 70 75 74 53 79 73 74 65 6d 2e 52 65 6d 6f 76 65 44 65 76 69 ..........InputSystem.RemoveDevi
a920 63 65 55 73 61 67 65 28 74 68 69 73 2c 20 73 5f 48 6f 72 69 7a 6f 6e 74 61 6c 29 3b 0d 0a 20 20 ceUsage(this,.s_Horizontal);....
a940 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 70 75 74 53 ......///.................InputS
a960 79 73 74 65 6d 2e 41 64 64 44 65 76 69 63 65 55 73 61 67 65 28 74 68 69 73 2c 20 73 5f 56 65 72 ystem.AddDeviceUsage(this,.s_Ver
a980 74 69 63 61 6c 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20 tical);..........///............
a9a0 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 .....break;..........///........
a9c0 20 20 2f 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 4f 72 69 65 6e 74 61 74 69 ..///.............case.Orientati
a9e0 6f 6e 2e 48 6f 72 69 7a 6f 6e 74 61 6c 3a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 on.Horizontal:..........///.....
aa00 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 70 75 74 53 79 73 74 65 6d 2e 52 65 6d 6f 76 65 44 65 ............InputSystem.RemoveDe
aa20 76 69 63 65 55 73 61 67 65 28 74 68 69 73 2c 20 73 5f 56 65 72 74 69 63 61 6c 29 3b 0d 0a 20 20 viceUsage(this,.s_Vertical);....
aa40 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 70 75 74 53 ......///.................InputS
aa60 79 73 74 65 6d 2e 41 64 64 44 65 76 69 63 65 55 73 61 67 65 28 74 68 69 73 2c 20 73 5f 48 6f 72 ystem.AddDeviceUsage(this,.s_Hor
aa80 69 7a 6f 6e 74 61 6c 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 20 20 20 20 20 izontal);..........///..........
aaa0 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 20 .......break;..........///......
aac0 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 ...}..........///.....}.........
aae0 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 70 72 69 76 61 74 65 20 73 74 .///..........///.....private.st
ab00 61 74 69 63 20 49 6e 74 65 72 6e 65 64 53 74 72 69 6e 67 20 73 5f 56 65 72 74 69 63 61 6c 20 3d atic.InternedString.s_Vertical.=
ab20 20 6e 65 77 20 49 6e 74 65 72 6e 65 64 53 74 72 69 6e 67 28 22 56 65 72 74 69 63 61 6c 22 29 3b .new.InternedString("Vertical");
ab40 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 20 20 20 20 70 72 69 76 61 74 65 20 73 74 61 74 69 63 ..........///.....private.static
ab60 20 49 6e 74 65 72 6e 65 64 53 74 72 69 6e 67 20 73 5f 48 6f 72 69 7a 6f 6e 74 61 6c 20 3d 20 6e .InternedString.s_Horizontal.=.n
ab80 65 77 20 49 6e 74 65 72 6e 65 64 53 74 72 69 6e 67 28 22 48 6f 72 69 7a 6f 6e 74 61 6c 22 29 3b ew.InternedString("Horizontal");
aba0 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 7d 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 63 ..........///.}..........///.</c
abc0 6f 64 65 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 65 78 61 6d 70 6c 65 3e 0d 0a 20 20 ode>..........///.</example>....
abe0 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f ......///.</remarks>..........//
ac00 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 65 66 3d 22 52 65 66 72 65 73 68 43 6f 6e 66 69 67 75 72 /.<seealso.cref="RefreshConfigur
ac20 61 74 69 6f 6e 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 70 72 6f 74 65 63 74 65 64 20 76 6f 69 64 ation"/>..........protected.void
ac40 20 52 65 66 72 65 73 68 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 49 66 4e 65 65 64 65 64 28 29 0d .RefreshConfigurationIfNeeded().
ac60 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 69 73 43 .........{..............if.(!isC
ac80 6f 6e 66 69 67 55 70 54 6f 44 61 74 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 onfigUpToDate)..............{...
aca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 66 72 65 73 68 43 6f 6e 66 69 67 75 72 61 74 ...............RefreshConfigurat
acc0 69 6f 6e 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 73 43 6f 6e 66 69 67 ion();..................isConfig
ace0 55 70 54 6f 44 61 74 65 20 3d 20 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d UpToDate.=.true;..............}.
ad00 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 70 72 6f 74 65 63 74 65 64 20 .........}............protected.
ad20 76 69 72 74 75 61 6c 20 76 6f 69 64 20 52 65 66 72 65 73 68 43 6f 6e 66 69 67 75 72 61 74 69 6f virtual.void.RefreshConfiguratio
ad40 6e 28 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 n()..........{..........}.......
ad60 20 20 20 20 20 70 72 6f 74 65 63 74 65 64 20 69 6e 74 65 72 6e 61 6c 20 49 6e 70 75 74 53 74 61 .....protected.internal.InputSta
ad80 74 65 42 6c 6f 63 6b 20 6d 5f 53 74 61 74 65 42 6c 6f 63 6b 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 teBlock.m_StateBlock;...........
ada0 20 2f 2f 2f 2f 52 45 56 49 45 57 3a 20 73 68 6f 75 6c 64 6e 27 74 20 74 68 65 73 65 20 73 69 74 .////REVIEW:.shouldn't.these.sit
adc0 20 6f 6e 20 74 68 65 20 64 65 76 69 63 65 3f 0d 0a 20 20 20 20 20 20 20 20 70 72 6f 74 65 63 74 .on.the.device?..........protect
ade0 65 64 20 69 6e 74 65 72 6e 61 6c 20 75 6e 73 61 66 65 20 76 6f 69 64 2a 20 63 75 72 72 65 6e 74 ed.internal.unsafe.void*.current
ae00 53 74 61 74 65 50 74 72 20 3d 3e 20 49 6e 70 75 74 53 74 61 74 65 42 75 66 66 65 72 73 2e 47 65 StatePtr.=>.InputStateBuffers.Ge
ae20 74 46 72 6f 6e 74 42 75 66 66 65 72 46 6f 72 44 65 76 69 63 65 28 52 65 73 6f 6c 76 65 44 65 76 tFrontBufferForDevice(ResolveDev
ae40 69 63 65 49 6e 64 65 78 28 29 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 70 72 6f 74 65 63 74 65 iceIndex());............protecte
ae60 64 20 69 6e 74 65 72 6e 61 6c 20 75 6e 73 61 66 65 20 76 6f 69 64 2a 20 70 72 65 76 69 6f 75 73 d.internal.unsafe.void*.previous
ae80 46 72 61 6d 65 53 74 61 74 65 50 74 72 20 3d 3e 20 49 6e 70 75 74 53 74 61 74 65 42 75 66 66 65 FrameStatePtr.=>.InputStateBuffe
aea0 72 73 2e 47 65 74 42 61 63 6b 42 75 66 66 65 72 46 6f 72 44 65 76 69 63 65 28 52 65 73 6f 6c 76 rs.GetBackBufferForDevice(Resolv
aec0 65 44 65 76 69 63 65 49 6e 64 65 78 28 29 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 70 72 6f 74 eDeviceIndex());............prot
aee0 65 63 74 65 64 20 69 6e 74 65 72 6e 61 6c 20 75 6e 73 61 66 65 20 76 6f 69 64 2a 20 64 65 66 61 ected.internal.unsafe.void*.defa
af00 75 6c 74 53 74 61 74 65 50 74 72 20 3d 3e 20 49 6e 70 75 74 53 74 61 74 65 42 75 66 66 65 72 73 ultStatePtr.=>.InputStateBuffers
af20 2e 73 5f 44 65 66 61 75 6c 74 53 74 61 74 65 42 75 66 66 65 72 3b 0d 0a 0d 0a 20 20 20 20 20 20 .s_DefaultStateBuffer;..........
af40 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 52 65 74 ..///.<summary>..........///.Ret
af60 75 72 6e 20 74 68 65 20 6d 65 6d 6f 72 79 20 74 68 61 74 20 68 6f 6c 64 73 20 74 68 65 20 6e 6f urn.the.memory.that.holds.the.no
af80 69 73 65 20 6d 61 73 6b 20 66 6f 72 20 74 68 65 20 63 6f 6e 74 72 6f 6c 2e 0d 0a 20 20 20 20 20 ise.mask.for.the.control........
afa0 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c ...///.</summary>..........///.<
afc0 76 61 6c 75 65 3e 4e 6f 69 73 65 20 62 69 74 20 6d 61 73 6b 20 66 6f 72 20 74 68 65 20 63 6f 6e value>Noise.bit.mask.for.the.con
afe0 74 72 6f 6c 2e 3c 2f 76 61 6c 75 65 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 trol.</value>..........///.<rema
b000 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 4c 69 6b 65 20 77 69 74 68 20 61 6c 6c 20 rks>..........///.Like.with.all.
b020 73 74 61 74 65 20 62 6c 6f 63 6b 73 2c 20 74 68 65 20 73 70 65 63 69 66 69 63 20 6d 65 6d 6f 72 state.blocks,.the.specific.memor
b040 79 20 62 6c 6f 63 6b 20 66 6f 72 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 69 73 20 66 6f 75 6e 64 y.block.for.the.control.is.found
b060 20 61 74 20 74 68 65 20 6d 65 6d 6f 72 79 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 72 65 67 69 .at.the.memory..........///.regi
b080 6f 6e 20 73 70 65 63 69 66 69 65 64 20 62 79 20 3c 73 65 65 20 63 72 65 66 3d 22 73 74 61 74 65 on.specified.by.<see.cref="state
b0a0 42 6c 6f 63 6b 22 2f 3e 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 0d 0a 20 20 20 20 20 20 20 20 Block"/>...........///..........
b0c0 2f 2f 2f 20 54 68 65 20 6e 6f 69 73 65 20 6d 61 73 6b 20 63 61 6e 20 62 65 20 6f 76 65 72 6c 61 ///.The.noise.mask.can.be.overla
b0e0 69 64 20 61 73 20 61 20 62 69 74 20 6d 61 73 6b 20 6f 76 65 72 20 74 68 65 20 73 74 61 74 65 20 id.as.a.bit.mask.over.the.state.
b100 66 6f 72 20 74 68 65 20 63 6f 6e 74 72 6f 6c 2e 20 57 68 65 6e 20 64 6f 69 6e 67 20 73 6f 2c 20 for.the.control..When.doing.so,.
b120 61 6c 6c 20 73 74 61 74 65 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 74 68 61 74 20 69 73 20 6e all.state..........///.that.is.n
b140 6f 69 73 65 20 77 69 6c 6c 20 62 65 20 6d 61 73 6b 65 64 20 6f 75 74 20 77 68 65 72 65 61 73 20 oise.will.be.masked.out.whereas.
b160 61 6c 6c 20 73 74 61 74 65 20 74 68 61 74 20 69 73 6e 27 74 20 77 69 6c 6c 20 63 6f 6d 65 20 74 all.state.that.isn't.will.come.t
b180 68 72 6f 75 67 68 20 75 6e 6d 6f 64 69 66 69 65 64 2e 20 49 6e 20 6f 74 68 65 72 20 77 6f 72 64 hrough.unmodified..In.other.word
b1a0 73 2c 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 61 6e 79 20 62 69 74 20 74 68 61 74 20 69 73 20 s,..........///.any.bit.that.is.
b1c0 73 65 74 20 69 6e 20 74 68 65 20 6e 6f 69 73 65 20 6d 61 73 6b 20 69 6e 64 69 63 61 74 65 73 20 set.in.the.noise.mask.indicates.
b1e0 74 68 61 74 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 62 69 74 20 69 6e 20 74 68 that.the.corresponding.bit.in.th
b200 65 20 63 6f 6e 74 72 6f 6c 27 73 20 73 74 61 74 65 20 6d 65 6d 6f 72 79 0d 0a 20 20 20 20 20 20 e.control's.state.memory........
b220 20 20 2f 2f 2f 20 69 73 20 6e 6f 69 73 65 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 72 ..///.is.noise...........///.</r
b240 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 65 65 61 6c 73 6f 20 63 72 emarks>..........///.<seealso.cr
b260 65 66 3d 22 6e 6f 69 73 79 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 70 72 6f 74 65 63 74 65 64 20 ef="noisy"/>..........protected.
b280 69 6e 74 65 72 6e 61 6c 20 75 6e 73 61 66 65 20 76 6f 69 64 2a 20 6e 6f 69 73 65 4d 61 73 6b 50 internal.unsafe.void*.noiseMaskP
b2a0 74 72 20 3d 3e 20 49 6e 70 75 74 53 74 61 74 65 42 75 66 66 65 72 73 2e 73 5f 4e 6f 69 73 65 4d tr.=>.InputStateBuffers.s_NoiseM
b2c0 61 73 6b 42 75 66 66 65 72 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 askBuffer;............///.<summa
b2e0 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 54 68 65 20 6f 66 66 73 65 74 20 6f 66 20 74 ry>..........///.The.offset.of.t
b300 68 69 73 20 63 6f 6e 74 72 6f 6c 27 73 20 73 74 61 74 65 20 72 65 6c 61 74 69 76 65 20 74 6f 20 his.control's.state.relative.to.
b320 69 74 73 20 64 65 76 69 63 65 20 72 6f 6f 74 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f its.device.root...........///.</
b340 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d summary>..........///.<remarks>.
b360 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 4f 6e 63 65 20 61 20 64 65 76 69 63 65 20 68 61 73 20 62 .........///.Once.a.device.has.b
b380 65 65 6e 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 73 79 73 74 65 6d 2c 20 69 74 73 20 73 74 61 een.added.to.the.system,.its.sta
b3a0 74 65 20 62 6c 6f 63 6b 20 77 69 6c 6c 20 67 65 74 20 61 6c 6c 6f 63 61 74 65 64 0d 0a 20 20 20 te.block.will.get.allocated.....
b3c0 20 20 20 20 20 2f 2f 2f 20 69 6e 20 74 68 65 20 67 6c 6f 62 61 6c 20 73 74 61 74 65 20 62 75 66 .....///.in.the.global.state.buf
b3e0 66 65 72 73 20 61 6e 64 20 74 68 65 20 6f 66 66 73 65 74 20 6f 66 20 74 68 65 20 64 65 76 69 63 fers.and.the.offset.of.the.devic
b400 65 27 73 20 73 74 61 74 65 20 62 6c 6f 63 6b 20 77 69 6c 6c 0d 0a 20 20 20 20 20 20 20 20 2f 2f e's.state.block.will..........//
b420 2f 20 67 65 74 20 62 61 6b 65 64 20 69 6e 74 6f 20 61 6c 6c 20 6f 66 20 74 68 65 20 63 6f 6e 74 /.get.baked.into.all.of.the.cont
b440 72 6f 6c 73 20 6f 6e 20 74 68 65 20 64 65 76 69 63 65 2e 20 54 68 69 73 20 70 72 6f 70 65 72 74 rols.on.the.device..This.propert
b460 79 20 61 6c 77 61 79 73 20 72 65 74 75 72 6e 73 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 74 68 y.always.returns..........///.th
b480 65 20 22 75 6e 62 61 6b 65 64 22 20 6f 66 66 73 65 74 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f e."unbaked".offset...........///
b4a0 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 70 72 6f 74 65 63 74 65 64 20 69 .</remarks>..........protected.i
b4c0 6e 74 65 72 6e 61 6c 20 75 69 6e 74 20 73 74 61 74 65 4f 66 66 73 65 74 52 65 6c 61 74 69 76 65 nternal.uint.stateOffsetRelative
b4e0 54 6f 44 65 76 69 63 65 52 6f 6f 74 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 ToDeviceRoot..........{.........
b500 20 20 20 20 20 67 65 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 .....get..............{.........
b520 20 20 20 20 20 20 20 20 20 76 61 72 20 64 65 76 69 63 65 53 74 61 74 65 4f 66 66 73 65 74 20 3d .........var.deviceStateOffset.=
b540 20 64 65 76 69 63 65 2e 6d 5f 53 74 61 74 65 42 6c 6f 63 6b 2e 62 79 74 65 4f 66 66 73 65 74 3b .device.m_StateBlock.byteOffset;
b560 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 65 62 75 67 2e 41 73 73 65 72 74 28 64 ..................Debug.Assert(d
b580 65 76 69 63 65 53 74 61 74 65 4f 66 66 73 65 74 20 3c 3d 20 6d 5f 53 74 61 74 65 42 6c 6f 63 6b eviceStateOffset.<=.m_StateBlock
b5a0 2e 62 79 74 65 4f 66 66 73 65 74 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 .byteOffset);..................r
b5c0 65 74 75 72 6e 20 6d 5f 53 74 61 74 65 42 6c 6f 63 6b 2e 62 79 74 65 4f 66 66 73 65 74 20 2d 20 eturn.m_StateBlock.byteOffset.-.
b5e0 64 65 76 69 63 65 53 74 61 74 65 4f 66 66 73 65 74 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 deviceStateOffset;..............
b600 7d 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 54 68 69 73 20 }..........}............//.This.
b620 64 61 74 61 20 69 73 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 62 79 20 49 6e 70 75 74 44 65 76 69 data.is.initialized.by.InputDevi
b640 63 65 42 75 69 6c 64 65 72 2e 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 49 6e 74 ceBuilder...........internal.Int
b660 65 72 6e 65 64 53 74 72 69 6e 67 20 6d 5f 4e 61 6d 65 3b 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 ernedString.m_Name;..........int
b680 65 72 6e 61 6c 20 73 74 72 69 6e 67 20 6d 5f 50 61 74 68 3b 0d 0a 20 20 20 20 20 20 20 20 69 6e ernal.string.m_Path;..........in
b6a0 74 65 72 6e 61 6c 20 73 74 72 69 6e 67 20 6d 5f 44 69 73 70 6c 61 79 4e 61 6d 65 3b 20 2f 2f 20 ternal.string.m_DisplayName;.//.
b6c0 44 69 73 70 6c 61 79 20 6e 61 6d 65 20 73 65 74 20 62 79 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 Display.name.set.by.the.control.
b6e0 69 74 73 65 6c 66 20 28 6d 61 79 20 62 65 20 6e 75 6c 6c 29 2e 0d 0a 20 20 20 20 20 20 20 20 69 itself.(may.be.null)...........i
b700 6e 74 65 72 6e 61 6c 20 73 74 72 69 6e 67 20 6d 5f 44 69 73 70 6c 61 79 4e 61 6d 65 46 72 6f 6d nternal.string.m_DisplayNameFrom
b720 4c 61 79 6f 75 74 3b 20 2f 2f 20 44 69 73 70 6c 61 79 20 6e 61 6d 65 20 63 6f 6d 69 6e 67 20 66 Layout;.//.Display.name.coming.f
b740 72 6f 6d 20 6c 61 79 6f 75 74 20 28 6d 61 79 20 62 65 20 6e 75 6c 6c 29 2e 0d 0a 20 20 20 20 20 rom.layout.(may.be.null)........
b760 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 72 69 6e 67 20 6d 5f 53 68 6f 72 74 44 69 73 70 6c 61 ...internal.string.m_ShortDispla
b780 79 4e 61 6d 65 3b 20 2f 2f 20 53 68 6f 72 74 20 64 69 73 70 6c 61 79 20 6e 61 6d 65 20 73 65 74 yName;.//.Short.display.name.set
b7a0 20 62 79 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 69 74 73 65 6c 66 20 28 6d 61 79 20 62 65 20 6e .by.the.control.itself.(may.be.n
b7c0 75 6c 6c 29 2e 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 73 74 72 69 6e 67 20 6d ull)...........internal.string.m
b7e0 5f 53 68 6f 72 74 44 69 73 70 6c 61 79 4e 61 6d 65 46 72 6f 6d 4c 61 79 6f 75 74 3b 20 2f 2f 20 _ShortDisplayNameFromLayout;.//.
b800 53 68 6f 72 74 20 64 69 73 70 6c 61 79 20 6e 61 6d 65 20 63 6f 6d 69 6e 67 20 66 72 6f 6d 20 6c Short.display.name.coming.from.l
b820 61 79 6f 75 74 20 28 6d 61 79 20 62 65 20 6e 75 6c 6c 29 2e 0d 0a 20 20 20 20 20 20 20 20 69 6e ayout.(may.be.null)...........in
b840 74 65 72 6e 61 6c 20 49 6e 74 65 72 6e 65 64 53 74 72 69 6e 67 20 6d 5f 4c 61 79 6f 75 74 3b 0d ternal.InternedString.m_Layout;.
b860 0a 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 49 6e 74 65 72 6e 65 64 53 74 72 69 6e 67 .........internal.InternedString
b880 20 6d 5f 56 61 72 69 61 6e 74 73 3b 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 49 .m_Variants;..........internal.I
b8a0 6e 70 75 74 44 65 76 69 63 65 20 6d 5f 44 65 76 69 63 65 3b 0d 0a 20 20 20 20 20 20 20 20 69 6e nputDevice.m_Device;..........in
b8c0 74 65 72 6e 61 6c 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 20 6d 5f 50 61 72 65 6e 74 3b 0d 0a 20 ternal.InputControl.m_Parent;...
b8e0 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 69 6e 74 20 6d 5f 55 73 61 67 65 43 6f 75 6e 74 .......internal.int.m_UsageCount
b900 3b 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 69 6e 74 20 6d 5f 55 73 61 67 65 53 ;..........internal.int.m_UsageS
b920 74 61 72 74 49 6e 64 65 78 3b 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 69 6e 74 tartIndex;..........internal.int
b940 20 6d 5f 41 6c 69 61 73 43 6f 75 6e 74 3b 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c .m_AliasCount;..........internal
b960 20 69 6e 74 20 6d 5f 41 6c 69 61 73 53 74 61 72 74 49 6e 64 65 78 3b 0d 0a 20 20 20 20 20 20 20 .int.m_AliasStartIndex;.........
b980 20 69 6e 74 65 72 6e 61 6c 20 69 6e 74 20 6d 5f 43 68 69 6c 64 43 6f 75 6e 74 3b 0d 0a 20 20 20 .internal.int.m_ChildCount;.....
b9a0 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 69 6e 74 20 6d 5f 43 68 69 6c 64 53 74 61 72 74 49 6e .....internal.int.m_ChildStartIn
b9c0 64 65 78 3b 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 43 6f 6e 74 72 6f 6c 46 6c dex;..........internal.ControlFl
b9e0 61 67 73 20 6d 5f 43 6f 6e 74 72 6f 6c 46 6c 61 67 73 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f ags.m_ControlFlags;............/
ba00 2f 2f 2f 52 45 56 49 45 57 3a 20 73 74 6f 72 65 20 74 68 65 73 65 20 69 6e 20 61 72 72 61 79 73 ///REVIEW:.store.these.in.arrays
ba20 20 69 6e 20 49 6e 70 75 74 44 65 76 69 63 65 20 69 6e 73 74 65 61 64 3f 0d 0a 20 20 20 20 20 20 .in.InputDevice.instead?........
ba40 20 20 69 6e 74 65 72 6e 61 6c 20 50 72 69 6d 69 74 69 76 65 56 61 6c 75 65 20 6d 5f 44 65 66 61 ..internal.PrimitiveValue.m_Defa
ba60 75 6c 74 53 74 61 74 65 3b 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 50 72 69 6d ultState;..........internal.Prim
ba80 69 74 69 76 65 56 61 6c 75 65 20 6d 5f 4d 69 6e 56 61 6c 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 itiveValue.m_MinValue;..........
baa0 69 6e 74 65 72 6e 61 6c 20 50 72 69 6d 69 74 69 76 65 56 61 6c 75 65 20 6d 5f 4d 61 78 56 61 6c internal.PrimitiveValue.m_MaxVal
bac0 75 65 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 5b 46 6c 61 67 73 5d 0d 0a 20 20 20 20 20 20 20 20 ue;............[Flags]..........
bae0 69 6e 74 65 72 6e 61 6c 20 65 6e 75 6d 20 43 6f 6e 74 72 6f 6c 46 6c 61 67 73 0d 0a 20 20 20 20 internal.enum.ControlFlags......
bb00 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 6e 66 69 67 55 70 54 6f 44 61 74 ....{..............ConfigUpToDat
bb20 65 20 3d 20 31 20 3c 3c 20 30 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 73 4e 6f 69 73 79 e.=.1.<<.0,..............IsNoisy
bb40 20 3d 20 31 20 3c 3c 20 31 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 73 53 79 6e 74 68 65 .=.1.<<.1,..............IsSynthe
bb60 74 69 63 20 3d 20 31 20 3c 3c 20 32 2c 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 tic.=.1.<<.2,..........}........
bb80 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 62 6f 6f 6c 20 69 73 43 6f 6e 66 69 67 55 70 54 6f 44 61 ....internal.bool.isConfigUpToDa
bba0 74 65 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 65 74 20 3d te..........{..............get.=
bbc0 3e 20 28 6d 5f 43 6f 6e 74 72 6f 6c 46 6c 61 67 73 20 26 20 43 6f 6e 74 72 6f 6c 46 6c 61 67 73 >.(m_ControlFlags.&.ControlFlags
bbe0 2e 43 6f 6e 66 69 67 55 70 54 6f 44 61 74 65 29 20 3d 3d 20 43 6f 6e 74 72 6f 6c 46 6c 61 67 73 .ConfigUpToDate).==.ControlFlags
bc00 2e 43 6f 6e 66 69 67 55 70 54 6f 44 61 74 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 .ConfigUpToDate;..............se
bc20 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t..............{................
bc40 20 20 69 66 20 28 76 61 6c 75 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..if.(value)....................
bc60 20 20 6d 5f 43 6f 6e 74 72 6f 6c 46 6c 61 67 73 20 7c 3d 20 43 6f 6e 74 72 6f 6c 46 6c 61 67 73 ..m_ControlFlags.|=.ControlFlags
bc80 2e 43 6f 6e 66 69 67 55 70 54 6f 44 61 74 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .ConfigUpToDate;................
bca0 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 43 6f ..else......................m_Co
bcc0 6e 74 72 6f 6c 46 6c 61 67 73 20 26 3d 20 7e 43 6f 6e 74 72 6f 6c 46 6c 61 67 73 2e 43 6f 6e 66 ntrolFlags.&=.~ControlFlags.Conf
bce0 69 67 55 70 54 6f 44 61 74 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 igUpToDate;..............}......
bd00 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 62 6f 6f 6c 20 68 ....}............internal.bool.h
bd20 61 73 44 65 66 61 75 6c 74 53 74 61 74 65 20 3d 3e 20 21 6d 5f 44 65 66 61 75 6c 74 53 74 61 74 asDefaultState.=>.!m_DefaultStat
bd40 65 2e 69 73 45 6d 70 74 79 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 54 68 69 73 20 6d 65 e.isEmpty;............//.This.me
bd60 74 68 6f 64 20 65 78 69 73 74 73 20 6f 6e 6c 79 20 74 6f 20 6e 6f 74 20 73 6c 61 70 20 74 68 65 thod.exists.only.to.not.slap.the
bd80 20 69 6e 74 65 72 6e 61 6c 20 69 6e 74 65 72 61 63 74 69 6f 6e 20 6f 6e 20 61 6c 6c 20 6f 76 65 .internal.interaction.on.all.ove
bda0 72 72 69 64 65 73 20 6f 66 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 46 69 6e 69 73 68 53 65 74 75 rrides.of..........//.FinishSetu
bdc0 70 28 29 2e 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 76 6f 69 64 20 43 61 6c 6c p()...........internal.void.Call
bde0 46 69 6e 69 73 68 53 65 74 75 70 52 65 63 75 72 73 69 76 65 28 29 0d 0a 20 20 20 20 20 20 20 20 FinishSetupRecursive()..........
be00 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 6c 69 73 74 20 3d 20 63 68 69 6c 64 72 {..............var.list.=.childr
be20 65 6e 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 20 69 20 3d 20 30 3b en;..............for.(var.i.=.0;
be40 20 69 20 3c 20 6c 69 73 74 2e 43 6f 75 6e 74 3b 20 2b 2b 69 29 0d 0a 20 20 20 20 20 20 20 20 20 .i.<.list.Count;.++i)...........
be60 20 20 20 20 20 20 20 6c 69 73 74 5b 69 5d 2e 43 61 6c 6c 46 69 6e 69 73 68 53 65 74 75 70 52 65 .......list[i].CallFinishSetupRe
be80 63 75 72 73 69 76 65 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 46 69 6e 69 73 68 53 65 cursive();..............FinishSe
bea0 74 75 70 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 tup();..........}............int
bec0 65 72 6e 61 6c 20 73 74 72 69 6e 67 20 4d 61 6b 65 43 68 69 6c 64 50 61 74 68 28 73 74 72 69 6e ernal.string.MakeChildPath(strin
bee0 67 20 70 61 74 68 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 g.path)..........{..............
bf00 69 66 20 28 74 68 69 73 20 69 73 20 49 6e 70 75 74 44 65 76 69 63 65 29 0d 0a 20 20 20 20 20 20 if.(this.is.InputDevice)........
bf20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 70 61 74 68 3b 0d 0a 20 20 20 20 20 20 20 20 ..........return.path;..........
bf40 20 20 20 20 72 65 74 75 72 6e 20 24 22 7b 74 68 69 73 2e 70 61 74 68 7d 2f 7b 70 61 74 68 7d 22 ....return.$"{this.path}/{path}"
bf60 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c ;..........}............internal
bf80 20 76 6f 69 64 20 42 61 6b 65 4f 66 66 73 65 74 49 6e 74 6f 53 74 61 74 65 42 6c 6f 63 6b 52 65 .void.BakeOffsetIntoStateBlockRe
bfa0 63 75 72 73 69 76 65 28 75 69 6e 74 20 6f 66 66 73 65 74 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d cursive(uint.offset)..........{.
bfc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 53 74 61 74 65 42 6c 6f 63 6b 2e 62 79 74 65 4f 66 .............m_StateBlock.byteOf
bfe0 66 73 65 74 20 2b 3d 20 6f 66 66 73 65 74 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 fset.+=.offset;................v
c000 61 72 20 6c 69 73 74 20 3d 20 63 68 69 6c 64 72 65 6e 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ar.list.=.children;.............
c020 20 66 6f 72 20 28 76 61 72 20 69 20 3d 20 30 3b 20 69 20 3c 20 6c 69 73 74 2e 43 6f 75 6e 74 3b .for.(var.i.=.0;.i.<.list.Count;
c040 20 2b 2b 69 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 73 74 5b 69 5d 2e 42 .++i)..................list[i].B
c060 61 6b 65 4f 66 66 73 65 74 49 6e 74 6f 53 74 61 74 65 42 6c 6f 63 6b 52 65 63 75 72 73 69 76 65 akeOffsetIntoStateBlockRecursive
c080 28 6f 66 66 73 65 74 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 (offset);..........}............
c0a0 69 6e 74 65 72 6e 61 6c 20 69 6e 74 20 52 65 73 6f 6c 76 65 44 65 76 69 63 65 49 6e 64 65 78 28 internal.int.ResolveDeviceIndex(
c0c0 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 64 65 )..........{..............var.de
c0e0 76 69 63 65 49 6e 64 65 78 20 3d 20 6d 5f 44 65 76 69 63 65 2e 6d 5f 44 65 76 69 63 65 49 6e 64 viceIndex.=.m_Device.m_DeviceInd
c100 65 78 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 64 65 76 69 63 65 49 6e 64 65 78 ex;..............if.(deviceIndex
c120 20 3d 3d 20 49 6e 70 75 74 44 65 76 69 63 65 2e 6b 49 6e 76 61 6c 69 64 44 65 76 69 63 65 49 6e .==.InputDevice.kInvalidDeviceIn
c140 64 65 78 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 dex)..................throw.new.
c160 49 6e 76 61 6c 69 64 4f 70 65 72 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 0d 0a 20 20 20 20 InvalidOperationException(......
c180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 22 43 61 6e 6e 6f 74 20 71 75 65 72 79 20 76 ................$"Cannot.query.v
c1a0 61 6c 75 65 20 6f 66 20 63 6f 6e 74 72 6f 6c 20 27 7b 70 61 74 68 7d 27 20 62 65 66 6f 72 65 20 alue.of.control.'{path}'.before.
c1c0 27 7b 64 65 76 69 63 65 2e 6e 61 6d 65 7d 27 20 68 61 73 20 62 65 65 6e 20 61 64 64 65 64 20 74 '{device.name}'.has.been.added.t
c1e0 6f 20 73 79 73 74 65 6d 21 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e o.system!");..............return
c200 20 64 65 76 69 63 65 49 6e 64 65 78 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 .deviceIndex;..........}........
c220 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 76 69 72 74 75 61 6c 20 76 6f 69 64 20 41 64 64 50 72 6f ....internal.virtual.void.AddPro
c240 63 65 73 73 6f 72 28 6f 62 6a 65 63 74 20 66 69 72 73 74 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d cessor(object.first)..........{.
c260 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 2f 2f 2f 20 3c 73 75 .........}......}........///.<su
c280 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 2f 2f 2f 20 42 61 73 65 20 63 6c 61 73 73 20 66 6f 72 20 69 mmary>......///.Base.class.for.i
c2a0 6e 70 75 74 20 63 6f 6e 74 72 6f 6c 73 20 77 69 74 68 20 61 20 73 70 65 63 69 66 69 63 20 76 61 nput.controls.with.a.specific.va
c2c0 6c 75 65 20 74 79 70 65 2e 0d 0a 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 lue.type.......///.</summary>...
c2e0 20 20 20 2f 2f 2f 20 3c 74 79 70 65 70 61 72 61 6d 20 6e 61 6d 65 3d 22 54 56 61 6c 75 65 22 3e ...///.<typeparam.name="TValue">
c300 54 79 70 65 20 6f 66 20 76 61 6c 75 65 20 63 61 70 74 75 72 65 64 20 62 79 20 74 68 65 20 63 6f Type.of.value.captured.by.the.co
c320 6e 74 72 6f 6c 2e 20 4e 6f 74 65 20 74 68 61 74 20 74 68 69 73 20 64 6f 65 73 20 6e 6f 74 20 6d ntrol..Note.that.this.does.not.m
c340 65 61 6e 0d 0a 20 20 20 20 2f 2f 2f 20 74 68 61 74 20 74 68 65 20 63 6f 6e 74 72 6f 6c 20 68 61 ean......///.that.the.control.ha
c360 73 20 74 6f 20 73 74 6f 72 65 20 64 61 74 61 20 69 6e 20 74 68 65 20 67 69 76 65 6e 20 76 61 6c s.to.store.data.in.the.given.val
c380 75 65 20 66 6f 72 6d 61 74 2e 20 41 20 63 6f 6e 74 72 6f 6c 20 74 68 61 74 20 63 61 70 74 75 72 ue.format..A.control.that.captur
c3a0 65 73 20 66 6c 6f 61 74 0d 0a 20 20 20 20 2f 2f 2f 20 76 61 6c 75 65 73 2c 20 66 6f 72 20 65 78 es.float......///.values,.for.ex
c3c0 61 6d 70 6c 65 2c 20 6d 61 79 20 62 65 20 73 74 6f 72 65 64 20 69 6e 20 73 74 61 74 65 20 61 73 ample,.may.be.stored.in.state.as
c3e0 20 62 79 74 65 20 76 61 6c 75 65 73 20 69 6e 73 74 65 61 64 2e 3c 2f 74 79 70 65 70 61 72 61 6d .byte.values.instead.</typeparam
c400 3e 0d 0a 20 20 20 20 5b 53 63 72 69 70 74 69 6e 67 2e 50 72 65 73 65 72 76 65 5d 0d 0a 20 20 20 >......[Scripting.Preserve].....
c420 20 70 75 62 6c 69 63 20 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 49 6e 70 75 74 43 6f 6e 74 .public.abstract.class.InputCont
c440 72 6f 6c 3c 54 56 61 6c 75 65 3e 20 3a 20 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 0d 0a 20 20 20 20 rol<TValue>.:.InputControl......
c460 20 20 20 20 77 68 65 72 65 20 54 56 61 6c 75 65 20 3a 20 73 74 72 75 63 74 0d 0a 20 20 20 20 7b ....where.TValue.:.struct......{
c480 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 6f 76 65 72 72 69 64 65 20 54 79 70 65 20 76 ..........public.override.Type.v
c4a0 61 6c 75 65 54 79 70 65 20 3d 3e 20 74 79 70 65 6f 66 28 54 56 61 6c 75 65 29 3b 0d 0a 0d 0a 20 alueType.=>.typeof(TValue);.....
c4c0 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 6f 76 65 72 72 69 64 65 20 69 6e 74 20 76 61 6c 75 65 .......public.override.int.value
c4e0 53 69 7a 65 49 6e 42 79 74 65 73 20 3d 3e 20 55 6e 73 61 66 65 55 74 69 6c 69 74 79 2e 53 69 7a SizeInBytes.=>.UnsafeUtility.Siz
c500 65 4f 66 3c 54 56 61 6c 75 65 3e 28 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 eOf<TValue>();............///.<s
c520 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 47 65 74 20 74 68 65 20 63 6f 6e ummary>..........///.Get.the.con
c540 74 72 6f 6c 27 73 20 63 75 72 72 65 6e 74 20 76 61 6c 75 65 20 61 73 20 72 65 61 64 20 66 72 6f trol's.current.value.as.read.fro
c560 6d 20 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 2e 63 75 72 72 65 6e m.<see.cref="InputControl.curren
c580 74 53 74 61 74 65 50 74 72 22 2f 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d tStatePtr"/>..........///.</summ
c5a0 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 74 75 72 6e 73 3e 54 68 65 20 63 ary>..........///.<returns>The.c
c5c0 6f 6e 74 72 6f 6c 27 73 20 63 75 72 72 65 6e 74 20 76 61 6c 75 65 2e 3c 2f 72 65 74 75 72 6e 73 ontrol's.current.value.</returns
c5e0 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 >..........///.<remarks>........
c600 20 20 2f 2f 2f 20 54 68 69 73 20 63 61 6e 20 6f 6e 6c 79 20 62 65 20 63 61 6c 6c 65 64 20 6f 6e ..///.This.can.only.be.called.on
c620 20 64 65 76 69 63 65 73 20 74 68 61 74 20 68 61 76 65 20 62 65 65 6e 20 61 64 64 65 64 20 74 6f .devices.that.have.been.added.to
c640 20 74 68 65 20 73 79 73 74 65 6d 20 28 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 44 65 76 .the.system.(<see.cref="InputDev
c660 69 63 65 2e 61 64 64 65 64 22 2f 3e 29 2e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 72 65 ice.added"/>)...........///.</re
c680 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 54 56 61 6c 75 65 20 52 65 marks>..........public.TValue.Re
c6a0 61 64 56 61 6c 75 65 28 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 adValue()..........{............
c6c0 20 20 75 6e 73 61 66 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 ..unsafe..............{.........
c6e0 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 52 65 61 64 56 61 6c 75 65 46 72 6f 6d 53 74 61 .........return.ReadValueFromSta
c700 74 65 28 63 75 72 72 65 6e 74 53 74 61 74 65 50 74 72 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 te(currentStatePtr);............
c720 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 2f 52 45 ..}..........}............////RE
c740 56 49 45 57 3a 20 69 73 20 27 66 72 61 6d 65 27 20 72 65 61 6c 6c 79 20 74 68 65 20 62 65 73 74 VIEW:.is.'frame'.really.the.best
c760 20 77 6f 72 64 69 6e 67 20 68 65 72 65 3f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 73 75 6d .wording.here?..........///.<sum
c780 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 47 65 74 20 74 68 65 20 63 6f 6e 74 72 mary>..........///.Get.the.contr
c7a0 6f 6c 27 73 20 76 61 6c 75 65 20 66 72 6f 6d 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 66 72 61 ol's.value.from.the.previous.fra
c7c0 6d 65 20 28 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 2e 70 72 65 76 me.(<see.cref="InputControl.prev
c7e0 69 6f 75 73 46 72 61 6d 65 53 74 61 74 65 50 74 72 22 2f 3e 29 2e 0d 0a 20 20 20 20 20 20 20 20 iousFrameStatePtr"/>)...........
c800 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 72 65 74 ///.</summary>..........///.<ret
c820 75 72 6e 73 3e 54 68 65 20 63 6f 6e 74 72 6f 6c 27 73 20 76 61 6c 75 65 20 69 6e 20 74 68 65 20 urns>The.control's.value.in.the.
c840 70 72 65 76 69 6f 75 73 20 66 72 61 6d 65 2e 3c 2f 72 65 74 75 72 6e 73 3e 0d 0a 20 20 20 20 20 previous.frame.</returns>.......
c860 20 20 20 70 75 62 6c 69 63 20 54 56 61 6c 75 65 20 52 65 61 64 56 61 6c 75 65 46 72 6f 6d 50 72 ...public.TValue.ReadValueFromPr
c880 65 76 69 6f 75 73 46 72 61 6d 65 28 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 eviousFrame()..........{........
c8a0 20 20 20 20 20 20 75 6e 73 61 66 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 ......unsafe..............{.....
c8c0 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 52 65 61 64 56 61 6c 75 65 46 72 6f .............return.ReadValueFro
c8e0 6d 53 74 61 74 65 28 70 72 65 76 69 6f 75 73 46 72 61 6d 65 53 74 61 74 65 50 74 72 29 3b 0d 0a mState(previousFrameStatePtr);..
c900 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 ............}..........}........
c920 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 47 ....///.<summary>..........///.G
c940 65 74 20 74 68 65 20 63 6f 6e 74 72 6f 6c 27 73 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 2e 0d et.the.control's.default.value..
c960 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 20 20 20 20 20 .........///.</summary>.........
c980 20 2f 2f 2f 20 3c 72 65 74 75 72 6e 73 3e 54 68 65 20 63 6f 6e 74 72 6f 6c 27 73 20 64 65 66 61 .///.<returns>The.control's.defa
c9a0 75 6c 74 20 76 61 6c 75 65 2e 3c 2f 72 65 74 75 72 6e 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f ult.value.</returns>..........//
c9c0 2f 20 3c 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 54 68 69 73 20 69 73 /.<remarks>..........///.This.is
c9e0 20 6e 6f 74 20 6e 65 63 65 73 73 61 72 69 6c 79 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 3c .not.necessarily.equivalent.to.<
ca00 63 3e 64 65 66 61 75 6c 74 28 54 56 61 6c 75 65 29 3c 2f 63 3e 2e 20 41 20 63 6f 6e 74 72 6f 6c c>default(TValue)</c>..A.control
ca20 27 73 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 69 73 20 64 65 74 65 72 6d 69 6e 65 64 0d 0a 's.default.value.is.determined..
ca40 20 20 20 20 20 20 20 20 2f 2f 2f 20 62 79 20 72 65 61 64 69 6e 67 20 69 74 73 20 76 61 6c 75 65 ........///.by.reading.its.value
ca60 20 66 72 6f 6d 20 74 68 65 20 64 65 66 61 75 6c 74 20 73 74 61 74 65 20 28 3c 73 65 65 20 63 72 .from.the.default.state.(<see.cr
ca80 65 66 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 2e 64 65 66 61 75 6c 74 53 74 61 74 65 50 74 72 ef="InputControl.defaultStatePtr
caa0 22 2f 3e 29 20 77 68 69 63 68 20 69 6e 20 74 75 72 6e 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 "/>).which.in.turn..........///.
cac0 69 73 20 64 65 74 65 72 6d 69 6e 65 64 20 66 72 6f 6d 20 73 65 74 74 69 6e 67 73 20 69 6e 20 74 is.determined.from.settings.in.t
cae0 68 65 20 63 6f 6e 74 72 6f 6c 27 73 20 72 65 67 69 73 74 65 72 65 64 20 6c 61 79 6f 75 74 20 28 he.control's.registered.layout.(
cb00 3c 73 65 65 20 63 72 65 66 3d 22 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 4c 61 79 6f 75 74 2e 43 6f <see.cref="InputControlLayout.Co
cb20 6e 74 72 6f 6c 49 74 65 6d 2e 64 65 66 61 75 6c 74 53 74 61 74 65 22 2f 3e 29 2e 0d 0a 20 20 20 ntrolItem.defaultState"/>)......
cb40 20 20 20 20 20 2f 2f 2f 20 3c 2f 72 65 6d 61 72 6b 73 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 .....///.</remarks>..........pub
cb60 6c 69 63 20 54 56 61 6c 75 65 20 52 65 61 64 44 65 66 61 75 6c 74 56 61 6c 75 65 28 29 0d 0a 20 lic.TValue.ReadDefaultValue()...
cb80 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 73 61 66 65 0d 0a 20 20 .......{..............unsafe....
cba0 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 ..........{..................ret
cbc0 75 72 6e 20 52 65 61 64 56 61 6c 75 65 46 72 6f 6d 53 74 61 74 65 28 64 65 66 61 75 6c 74 53 74 urn.ReadValueFromState(defaultSt
cbe0 61 74 65 50 74 72 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 atePtr);..............}.........
cc00 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 75 6e 73 61 66 65 20 54 56 61 6c .}............public.unsafe.TVal
cc20 75 65 20 52 65 61 64 56 61 6c 75 65 46 72 6f 6d 53 74 61 74 65 28 76 6f 69 64 2a 20 73 74 61 74 ue.ReadValueFromState(void*.stat
cc40 65 50 74 72 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 ePtr)..........{..............if
cc60 20 28 73 74 61 74 65 50 74 72 20 3d 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 .(statePtr.==.null).............
cc80 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 41 72 67 75 6d 65 6e 74 4e 75 6c 6c 45 78 63 65 70 .....throw.new.ArgumentNullExcep
cca0 74 69 6f 6e 28 6e 61 6d 65 6f 66 28 73 74 61 74 65 50 74 72 29 29 3b 0d 0a 20 20 20 20 20 20 20 tion(nameof(statePtr));.........
ccc0 20 20 20 20 20 72 65 74 75 72 6e 20 50 72 6f 63 65 73 73 56 61 6c 75 65 28 52 65 61 64 55 6e 70 .....return.ProcessValue(ReadUnp
cce0 72 6f 63 65 73 73 65 64 56 61 6c 75 65 46 72 6f 6d 53 74 61 74 65 28 73 74 61 74 65 50 74 72 29 rocessedValueFromState(statePtr)
cd00 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 );..........}............public.
cd20 54 56 61 6c 75 65 20 52 65 61 64 55 6e 70 72 6f 63 65 73 73 65 64 56 61 6c 75 65 28 29 0d 0a 20 TValue.ReadUnprocessedValue()...
cd40 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 73 61 66 65 0d 0a 20 20 .......{..............unsafe....
cd60 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 ..........{..................ret
cd80 75 72 6e 20 52 65 61 64 55 6e 70 72 6f 63 65 73 73 65 64 56 61 6c 75 65 46 72 6f 6d 53 74 61 74 urn.ReadUnprocessedValueFromStat
cda0 65 28 63 75 72 72 65 6e 74 53 74 61 74 65 50 74 72 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 e(currentStatePtr);.............
cdc0 20 7d 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 .}..........}............public.
cde0 61 62 73 74 72 61 63 74 20 75 6e 73 61 66 65 20 54 56 61 6c 75 65 20 52 65 61 64 55 6e 70 72 6f abstract.unsafe.TValue.ReadUnpro
ce00 63 65 73 73 65 64 56 61 6c 75 65 46 72 6f 6d 53 74 61 74 65 28 76 6f 69 64 2a 20 73 74 61 74 65 cessedValueFromState(void*.state
ce20 50 74 72 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 69 6e 68 65 72 69 74 64 6f 63 Ptr);............///.<inheritdoc
ce40 20 2f 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 6f 76 65 72 72 69 64 65 20 75 6e 73 ./>..........public.override.uns
ce60 61 66 65 20 6f 62 6a 65 63 74 20 52 65 61 64 56 61 6c 75 65 46 72 6f 6d 53 74 61 74 65 41 73 4f afe.object.ReadValueFromStateAsO
ce80 62 6a 65 63 74 28 76 6f 69 64 2a 20 73 74 61 74 65 50 74 72 29 0d 0a 20 20 20 20 20 20 20 20 7b bject(void*.statePtr)..........{
cea0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 52 65 61 64 56 61 6c 75 65 46 72 ..............return.ReadValueFr
cec0 6f 6d 53 74 61 74 65 28 73 74 61 74 65 50 74 72 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d omState(statePtr);..........}...
cee0 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 69 6e 68 65 72 69 74 64 6f 63 20 2f 3e 0d 0a 20 20 20 .........///.<inheritdoc./>.....
cf00 20 20 20 20 20 70 75 62 6c 69 63 20 6f 76 65 72 72 69 64 65 20 75 6e 73 61 66 65 20 76 6f 69 64 .....public.override.unsafe.void
cf20 20 52 65 61 64 56 61 6c 75 65 46 72 6f 6d 53 74 61 74 65 49 6e 74 6f 42 75 66 66 65 72 28 76 6f .ReadValueFromStateIntoBuffer(vo
cf40 69 64 2a 20 73 74 61 74 65 50 74 72 2c 20 76 6f 69 64 2a 20 62 75 66 66 65 72 50 74 72 2c 20 69 id*.statePtr,.void*.bufferPtr,.i
cf60 6e 74 20 62 75 66 66 65 72 53 69 7a 65 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 nt.bufferSize)..........{.......
cf80 20 20 20 20 20 20 20 69 66 20 28 73 74 61 74 65 50 74 72 20 3d 3d 20 6e 75 6c 6c 29 0d 0a 20 20 .......if.(statePtr.==.null)....
cfa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 41 72 67 75 6d 65 6e 74 ..............throw.new.Argument
cfc0 4e 75 6c 6c 45 78 63 65 70 74 69 6f 6e 28 6e 61 6d 65 6f 66 28 73 74 61 74 65 50 74 72 29 29 3b NullException(nameof(statePtr));
cfe0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 62 75 66 66 65 72 50 74 72 20 3d 3d 20 6e ..............if.(bufferPtr.==.n
d000 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 ull)..................throw.new.
d020 41 72 67 75 6d 65 6e 74 4e 75 6c 6c 45 78 63 65 70 74 69 6f 6e 28 6e 61 6d 65 6f 66 28 62 75 66 ArgumentNullException(nameof(buf
d040 66 65 72 50 74 72 29 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 6e 75 6d ferPtr));................var.num
d060 42 79 74 65 73 20 3d 20 55 6e 73 61 66 65 55 74 69 6c 69 74 79 2e 53 69 7a 65 4f 66 3c 54 56 61 Bytes.=.UnsafeUtility.SizeOf<TVa
d080 6c 75 65 3e 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 62 75 66 66 65 72 53 lue>();..............if.(bufferS
d0a0 69 7a 65 20 3c 20 6e 75 6d 42 79 74 65 73 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ize.<.numBytes).................
d0c0 20 74 68 72 6f 77 20 6e 65 77 20 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 0d 0a 20 .throw.new.ArgumentException(...
d0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 22 62 75 66 66 65 72 53 69 7a 65 3d ...................$"bufferSize=
d100 7b 62 75 66 66 65 72 53 69 7a 65 7d 20 3c 20 73 69 7a 65 6f 66 28 54 56 61 6c 75 65 29 3d 7b 6e {bufferSize}.<.sizeof(TValue)={n
d120 75 6d 42 79 74 65 73 7d 22 2c 20 6e 61 6d 65 6f 66 28 62 75 66 66 65 72 53 69 7a 65 29 29 3b 0d umBytes}",.nameof(bufferSize));.
d140 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 76 61 6c 75 65 20 3d 20 52 65 61 64 56 ...............var.value.=.ReadV
d160 61 6c 75 65 46 72 6f 6d 53 74 61 74 65 28 73 74 61 74 65 50 74 72 29 3b 0d 0a 20 20 20 20 20 20 alueFromState(statePtr);........
d180 20 20 20 20 20 20 76 61 72 20 76 61 6c 75 65 50 74 72 20 3d 20 55 6e 73 61 66 65 55 74 69 6c 69 ......var.valuePtr.=.UnsafeUtili
d1a0 74 79 2e 41 64 64 72 65 73 73 4f 66 28 72 65 66 20 76 61 6c 75 65 29 3b 0d 0a 0d 0a 20 20 20 20 ty.AddressOf(ref.value);........
d1c0 20 20 20 20 20 20 20 20 55 6e 73 61 66 65 55 74 69 6c 69 74 79 2e 4d 65 6d 43 70 79 28 62 75 66 ........UnsafeUtility.MemCpy(buf
d1e0 66 65 72 50 74 72 2c 20 76 61 6c 75 65 50 74 72 2c 20 6e 75 6d 42 79 74 65 73 29 3b 0d 0a 20 20 ferPtr,.valuePtr,.numBytes);....
d200 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 6f 76 65 72 72 69 ......}............public.overri
d220 64 65 20 75 6e 73 61 66 65 20 76 6f 69 64 20 57 72 69 74 65 56 61 6c 75 65 46 72 6f 6d 42 75 66 de.unsafe.void.WriteValueFromBuf
d240 66 65 72 49 6e 74 6f 53 74 61 74 65 28 76 6f 69 64 2a 20 62 75 66 66 65 72 50 74 72 2c 20 69 6e ferIntoState(void*.bufferPtr,.in
d260 74 20 62 75 66 66 65 72 53 69 7a 65 2c 20 76 6f 69 64 2a 20 73 74 61 74 65 50 74 72 29 0d 0a 20 t.bufferSize,.void*.statePtr)...
d280 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 62 75 66 66 65 72 .......{..............if.(buffer
d2a0 50 74 72 20 3d 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 Ptr.==.null)..................th
d2c0 72 6f 77 20 6e 65 77 20 41 72 67 75 6d 65 6e 74 4e 75 6c 6c 45 78 63 65 70 74 69 6f 6e 28 6e 61 row.new.ArgumentNullException(na
d2e0 6d 65 6f 66 28 62 75 66 66 65 72 50 74 72 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 meof(bufferPtr));..............i
d300 66 20 28 73 74 61 74 65 50 74 72 20 3d 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 f.(statePtr.==.null)............
d320 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 41 72 67 75 6d 65 6e 74 4e 75 6c 6c 45 78 63 65 ......throw.new.ArgumentNullExce
d340 70 74 69 6f 6e 28 6e 61 6d 65 6f 66 28 73 74 61 74 65 50 74 72 29 29 3b 0d 0a 0d 0a 20 20 20 20 ption(nameof(statePtr));........
d360 20 20 20 20 20 20 20 20 76 61 72 20 6e 75 6d 42 79 74 65 73 20 3d 20 55 6e 73 61 66 65 55 74 69 ........var.numBytes.=.UnsafeUti
d380 6c 69 74 79 2e 53 69 7a 65 4f 66 3c 54 56 61 6c 75 65 3e 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 lity.SizeOf<TValue>();..........
d3a0 20 20 20 20 69 66 20 28 62 75 66 66 65 72 53 69 7a 65 20 3c 20 6e 75 6d 42 79 74 65 73 29 0d 0a ....if.(bufferSize.<.numBytes)..
d3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 41 72 67 75 6d 65 ................throw.new.Argume
d3e0 6e 74 45 78 63 65 70 74 69 6f 6e 28 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ntException(....................
d400 20 20 24 22 62 75 66 66 65 72 53 69 7a 65 3d 7b 62 75 66 66 65 72 53 69 7a 65 7d 20 3c 20 73 69 ..$"bufferSize={bufferSize}.<.si
d420 7a 65 6f 66 28 54 56 61 6c 75 65 29 3d 7b 6e 75 6d 42 79 74 65 73 7d 22 2c 20 6e 61 6d 65 6f 66 zeof(TValue)={numBytes}",.nameof
d440 28 62 75 66 66 65 72 53 69 7a 65 29 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f (bufferSize));................//
d460 20 43 23 20 77 6f 6e 27 74 20 6c 65 74 20 75 73 20 75 73 65 20 61 20 70 6f 69 6e 74 65 72 20 74 .C#.won't.let.us.use.a.pointer.t
d480 6f 20 61 20 67 65 6e 65 72 69 63 61 6c 6c 79 20 64 65 66 69 6e 65 64 20 74 79 70 65 2e 20 57 6f o.a.generically.defined.type..Wo
d4a0 72 6b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 61 72 6f 75 6e 64 20 74 68 69 73 20 62 rk..............//.around.this.b
d4c0 79 20 75 73 69 6e 67 20 55 6e 73 61 66 65 55 74 69 6c 69 74 79 2e 0d 0a 20 20 20 20 20 20 20 20 y.using.UnsafeUtility...........
d4e0 20 20 20 20 76 61 72 20 76 61 6c 75 65 20 3d 20 64 65 66 61 75 6c 74 28 54 56 61 6c 75 65 29 3b ....var.value.=.default(TValue);
d500 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 76 61 6c 75 65 50 74 72 20 3d 20 55 6e 73 ..............var.valuePtr.=.Uns
d520 61 66 65 55 74 69 6c 69 74 79 2e 41 64 64 72 65 73 73 4f 66 28 72 65 66 20 76 61 6c 75 65 29 3b afeUtility.AddressOf(ref.value);
d540 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 55 6e 73 61 66 65 55 74 69 6c 69 74 79 2e 4d 65 6d 43 ..............UnsafeUtility.MemC
d560 70 79 28 76 61 6c 75 65 50 74 72 2c 20 62 75 66 66 65 72 50 74 72 2c 20 6e 75 6d 42 79 74 65 73 py(valuePtr,.bufferPtr,.numBytes
d580 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 57 72 69 74 65 56 61 6c 75 65 49 6e 74 6f );................WriteValueInto
d5a0 53 74 61 74 65 28 76 61 6c 75 65 2c 20 73 74 61 74 65 50 74 72 29 3b 0d 0a 20 20 20 20 20 20 20 State(value,.statePtr);.........
d5c0 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 69 6e 68 65 72 69 74 64 6f 63 20 2f 3e .}............///.<inheritdoc./>
d5e0 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 6f 76 65 72 72 69 64 65 20 75 6e 73 61 66 65 ..........public.override.unsafe
d600 20 76 6f 69 64 20 57 72 69 74 65 56 61 6c 75 65 46 72 6f 6d 4f 62 6a 65 63 74 49 6e 74 6f 53 74 .void.WriteValueFromObjectIntoSt
d620 61 74 65 28 6f 62 6a 65 63 74 20 76 61 6c 75 65 2c 20 76 6f 69 64 2a 20 73 74 61 74 65 50 74 72 ate(object.value,.void*.statePtr
d640 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 74 )..........{..............if.(st
d660 61 74 65 50 74 72 20 3d 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 atePtr.==.null).................
d680 20 74 68 72 6f 77 20 6e 65 77 20 41 72 67 75 6d 65 6e 74 4e 75 6c 6c 45 78 63 65 70 74 69 6f 6e .throw.new.ArgumentNullException
d6a0 28 6e 61 6d 65 6f 66 28 73 74 61 74 65 50 74 72 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 (nameof(statePtr));.............
d6c0 20 69 66 20 28 76 61 6c 75 65 20 3d 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 .if.(value.==.null).............
d6e0 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 41 72 67 75 6d 65 6e 74 4e 75 6c 6c 45 78 63 65 70 .....throw.new.ArgumentNullExcep
d700 74 69 6f 6e 28 6e 61 6d 65 6f 66 28 76 61 6c 75 65 29 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 tion(nameof(value));............
d720 20 20 20 20 2f 2f 20 49 66 20 76 61 6c 75 65 20 69 73 20 6e 6f 74 20 6f 66 20 65 78 70 65 63 74 ....//.If.value.is.not.of.expect
d740 65 64 20 74 79 70 65 2c 20 74 72 79 20 74 6f 20 63 6f 6e 76 65 72 74 2e 0d 0a 20 20 20 20 20 20 ed.type,.try.to.convert.........
d760 20 20 20 20 20 20 69 66 20 28 21 28 76 61 6c 75 65 20 69 73 20 54 56 61 6c 75 65 29 29 0d 0a 20 ......if.(!(value.is.TValue))...
d780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 65 20 3d 20 43 6f 6e 76 65 72 74 2e 43 ...............value.=.Convert.C
d7a0 68 61 6e 67 65 54 79 70 65 28 76 61 6c 75 65 2c 20 74 79 70 65 6f 66 28 54 56 61 6c 75 65 29 29 hangeType(value,.typeof(TValue))
d7c0 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 76 61 6c 75 65 4f 66 54 79 70 65 ;................var.valueOfType
d7e0 20 3d 20 28 54 56 61 6c 75 65 29 76 61 6c 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 57 .=.(TValue)value;..............W
d800 72 69 74 65 56 61 6c 75 65 49 6e 74 6f 53 74 61 74 65 28 76 61 6c 75 65 4f 66 54 79 70 65 2c 20 riteValueIntoState(valueOfType,.
d820 73 74 61 74 65 50 74 72 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 statePtr);..........}...........
d840 20 70 75 62 6c 69 63 20 76 69 72 74 75 61 6c 20 75 6e 73 61 66 65 20 76 6f 69 64 20 57 72 69 74 .public.virtual.unsafe.void.Writ
d860 65 56 61 6c 75 65 49 6e 74 6f 53 74 61 74 65 28 54 56 61 6c 75 65 20 76 61 6c 75 65 2c 20 76 6f eValueIntoState(TValue.value,.vo
d880 69 64 2a 20 73 74 61 74 65 50 74 72 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 id*.statePtr)..........{........
d8a0 20 20 20 20 20 20 2f 2f 2f 2f 52 45 56 49 45 57 3a 20 73 68 6f 75 6c 64 20 77 65 20 62 65 20 61 ......////REVIEW:.should.we.be.a
d8c0 62 6c 65 20 74 6f 20 65 76 65 6e 20 74 65 6c 6c 20 66 72 6f 6d 20 6c 61 79 6f 75 74 73 20 77 68 ble.to.even.tell.from.layouts.wh
d8e0 69 63 68 20 63 6f 6e 74 72 6f 6c 73 20 73 75 70 70 6f 72 74 20 77 72 69 74 69 6e 67 20 61 6e 64 ich.controls.support.writing.and
d900 20 77 68 69 63 68 20 64 6f 6e 27 74 3f 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68 72 .which.don't?................thr
d920 6f 77 20 6e 65 77 20 4e 6f 74 53 75 70 70 6f 72 74 65 64 45 78 63 65 70 74 69 6f 6e 28 0d 0a 20 ow.new.NotSupportedException(...
d940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 22 43 6f 6e 74 72 6f 6c 20 27 7b 74 68 69 73 7d ...............$"Control.'{this}
d960 27 20 64 6f 65 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 77 72 69 74 69 6e 67 22 29 3b 0d 0a 20 '.does.not.support.writing");...
d980 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 2f 20 3c 69 6e 68 65 72 69 74 .......}............///.<inherit
d9a0 64 6f 63 20 2f 3e 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 6f 76 65 72 72 69 64 65 20 doc./>..........public.override.
d9c0 75 6e 73 61 66 65 20 6f 62 6a 65 63 74 20 52 65 61 64 56 61 6c 75 65 46 72 6f 6d 42 75 66 66 65 unsafe.object.ReadValueFromBuffe
d9e0 72 41 73 4f 62 6a 65 63 74 28 76 6f 69 64 2a 20 62 75 66 66 65 72 2c 20 69 6e 74 20 62 75 66 66 rAsObject(void*.buffer,.int.buff
da00 65 72 53 69 7a 65 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 erSize)..........{..............
da20 69 66 20 28 62 75 66 66 65 72 20 3d 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 if.(buffer.==.null).............
da40 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 41 72 67 75 6d 65 6e 74 4e 75 6c 6c 45 78 63 65 70 .....throw.new.ArgumentNullExcep
da60 74 69 6f 6e 28 6e 61 6d 65 6f 66 28 62 75 66 66 65 72 29 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 tion(nameof(buffer));...........
da80 20 20 20 20 20 76 61 72 20 76 61 6c 75 65 53 69 7a 65 20 3d 20 55 6e 73 61 66 65 55 74 69 6c 69 .....var.valueSize.=.UnsafeUtili
daa0 74 79 2e 53 69 7a 65 4f 66 3c 54 56 61 6c 75 65 3e 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 ty.SizeOf<TValue>();............
dac0 20 20 69 66 20 28 62 75 66 66 65 72 53 69 7a 65 20 3c 20 76 61 6c 75 65 53 69 7a 65 29 0d 0a 20 ..if.(bufferSize.<.valueSize)...
dae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 41 72 67 75 6d 65 6e ...............throw.new.Argumen
db00 74 45 78 63 65 70 74 69 6f 6e 28 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tException(.....................
db20 20 24 22 45 78 70 65 63 74 69 6e 67 20 62 75 66 66 65 72 20 6f 66 20 61 74 20 6c 65 61 73 74 20 .$"Expecting.buffer.of.at.least.
db40 7b 76 61 6c 75 65 53 69 7a 65 7d 20 62 79 74 65 73 20 66 6f 72 20 76 61 6c 75 65 20 6f 66 20 74 {valueSize}.bytes.for.value.of.t
db60 79 70 65 20 7b 74 79 70 65 6f 66 28 54 56 61 6c 75 65 29 2e 4e 61 6d 65 7d 20 62 75 74 20 67 6f ype.{typeof(TValue).Name}.but.go
db80 74 20 62 75 66 66 65 72 20 6f 66 20 6f 6e 6c 79 20 7b 62 75 66 66 65 72 53 69 7a 65 7d 20 62 79 t.buffer.of.only.{bufferSize}.by
dba0 74 65 73 20 69 6e 73 74 65 61 64 22 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tes.instead",...................
dbc0 20 20 20 6e 61 6d 65 6f 66 28 62 75 66 66 65 72 53 69 7a 65 29 29 3b 0d 0a 0d 0a 20 20 20 20 20 ...nameof(bufferSize));.........
dbe0 20 20 20 20 20 20 20 76 61 72 20 76 61 6c 75 65 20 3d 20 64 65 66 61 75 6c 74 28 54 56 61 6c 75 .......var.value.=.default(TValu
dc00 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 76 61 6c 75 65 50 74 72 20 3d 20 e);..............var.valuePtr.=.
dc20 55 6e 73 61 66 65 55 74 69 6c 69 74 79 2e 41 64 64 72 65 73 73 4f 66 28 72 65 66 20 76 61 6c 75 UnsafeUtility.AddressOf(ref.valu
dc40 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 55 6e 73 61 66 65 55 74 69 6c 69 74 79 2e 4d e);..............UnsafeUtility.M
dc60 65 6d 43 70 79 28 76 61 6c 75 65 50 74 72 2c 20 62 75 66 66 65 72 2c 20 76 61 6c 75 65 53 69 7a emCpy(valuePtr,.buffer,.valueSiz
dc80 65 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 76 61 6c 75 65 3b e);................return.value;
dca0 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 70 75 62 6c 69 63 20 6f 76 ..........}............public.ov
dcc0 65 72 72 69 64 65 20 75 6e 73 61 66 65 20 62 6f 6f 6c 20 43 6f 6d 70 61 72 65 56 61 6c 75 65 28 erride.unsafe.bool.CompareValue(
dce0 76 6f 69 64 2a 20 66 69 72 73 74 53 74 61 74 65 50 74 72 2c 20 76 6f 69 64 2a 20 73 65 63 6f 6e void*.firstStatePtr,.void*.secon
dd00 64 53 74 61 74 65 50 74 72 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 dStatePtr)..........{...........
dd20 20 20 20 2f 2f 2f 2f 52 45 56 49 45 57 3a 20 73 68 6f 75 6c 64 20 77 65 20 66 69 72 73 74 20 63 ...////REVIEW:.should.we.first.c
dd40 6f 6d 70 61 72 65 20 73 74 61 74 65 20 68 65 72 65 3f 20 69 66 20 74 68 65 72 65 27 73 20 6e 6f ompare.state.here?.if.there's.no
dd60 20 63 68 61 6e 67 65 20 69 6e 20 73 74 61 74 65 2c 20 74 68 65 72 65 20 63 61 6e 20 62 65 20 6e .change.in.state,.there.can.be.n
dd80 6f 20 63 68 61 6e 67 65 20 69 6e 20 76 61 6c 75 65 20 61 6e 64 20 77 65 20 63 61 6e 20 73 6b 69 o.change.in.value.and.we.can.ski
dda0 70 20 74 68 65 20 72 65 73 74 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 66 69 p.the.rest................var.fi
ddc0 72 73 74 56 61 6c 75 65 20 3d 20 52 65 61 64 56 61 6c 75 65 46 72 6f 6d 53 74 61 74 65 28 66 69 rstValue.=.ReadValueFromState(fi
dde0 72 73 74 53 74 61 74 65 50 74 72 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 73 rstStatePtr);..............var.s
de00 65 63 6f 6e 64 56 61 6c 75 65 20 3d 20 52 65 61 64 56 61 6c 75 65 46 72 6f 6d 53 74 61 74 65 28 econdValue.=.ReadValueFromState(
de20 73 65 63 6f 6e 64 53 74 61 74 65 50 74 72 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 secondStatePtr);................
de40 76 61 72 20 66 69 72 73 74 56 61 6c 75 65 50 74 72 20 3d 20 55 6e 73 61 66 65 55 74 69 6c 69 74 var.firstValuePtr.=.UnsafeUtilit
de60 79 2e 41 64 64 72 65 73 73 4f 66 28 72 65 66 20 66 69 72 73 74 56 61 6c 75 65 29 3b 0d 0a 20 20 y.AddressOf(ref.firstValue);....
de80 20 20 20 20 20 20 20 20 20 20 76 61 72 20 73 65 63 6f 6e 64 56 61 6c 75 65 50 74 72 20 3d 20 55 ..........var.secondValuePtr.=.U
dea0 6e 73 61 66 65 55 74 69 6c 69 74 79 2e 41 64 64 72 65 73 73 4f 66 28 72 65 66 20 73 65 63 6f 6e nsafeUtility.AddressOf(ref.secon
dec0 64 56 61 6c 75 65 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 4e 4f 54 45 3a dValue);................//.NOTE:
dee0 20 57 65 27 72 65 20 63 6f 6d 70 61 72 69 6e 67 20 72 61 77 20 6d 65 6d 6f 72 79 20 6f 66 20 70 .We're.comparing.raw.memory.of.p
df00 72 6f 63 65 73 73 65 64 20 76 61 6c 75 65 73 20 68 65 72 65 20 28 77 68 69 63 68 20 61 72 65 20 rocessed.values.here.(which.are.
df20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 62 65 20 73 74 72 75 63 74 73 20 6f 72 0d 0a 20 20 20 guaranteed.to.be.structs.or.....
df40 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 20 20 20 20 70 72 69 6d 69 74 69 76 65 73 29 2c 20 6e .........//.......primitives),.n
df60 6f 74 20 73 74 61 74 65 2e 20 4d 65 61 6e 73 20 77 65 20 64 6f 6e 27 74 20 68 61 76 65 20 74 6f ot.state..Means.we.don't.have.to
df80 20 74 61 6b 65 20 62 69 74 73 20 69 6e 74 6f 20 61 63 63 6f 75 6e 74 20 68 65 72 65 2e 0d 0a 0d .take.bits.into.account.here....
dfa0 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 55 6e 73 61 66 65 55 74 69 6c 69 74 .............return.UnsafeUtilit
dfc0 79 2e 4d 65 6d 43 6d 70 28 66 69 72 73 74 56 61 6c 75 65 50 74 72 2c 20 73 65 63 6f 6e 64 56 61 y.MemCmp(firstValuePtr,.secondVa
dfe0 6c 75 65 50 74 72 2c 20 55 6e 73 61 66 65 55 74 69 6c 69 74 79 2e 53 69 7a 65 4f 66 3c 54 56 61 luePtr,.UnsafeUtility.SizeOf<TVa
e000 6c 75 65 3e 28 29 29 20 21 3d 20 30 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 lue>()).!=.0;..........}........
e020 20 20 20 20 70 75 62 6c 69 63 20 54 56 61 6c 75 65 20 50 72 6f 63 65 73 73 56 61 6c 75 65 28 54 ....public.TValue.ProcessValue(T
e040 56 61 6c 75 65 20 76 61 6c 75 65 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 Value.value)..........{.........
e060 20 20 20 20 20 69 66 20 28 6d 5f 50 72 6f 63 65 73 73 6f 72 53 74 61 63 6b 2e 6c 65 6e 67 74 68 .....if.(m_ProcessorStack.length
e080 20 3e 20 30 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 .>.0)..............{............
e0a0 20 20 20 20 20 20 76 61 6c 75 65 20 3d 20 6d 5f 50 72 6f 63 65 73 73 6f 72 53 74 61 63 6b 2e 66 ......value.=.m_ProcessorStack.f
e0c0 69 72 73 74 56 61 6c 75 65 2e 50 72 6f 63 65 73 73 28 76 61 6c 75 65 2c 20 74 68 69 73 29 3b 0d irstValue.Process(value,.this);.
e0e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6d 5f 50 72 6f 63 65 73 73 6f 72 .................if.(m_Processor
e100 53 74 61 63 6b 2e 61 64 64 69 74 69 6f 6e 61 6c 56 61 6c 75 65 73 20 21 3d 20 6e 75 6c 6c 29 0d Stack.additionalValues.!=.null).
e120 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 20 69 20 .....................for.(var.i.
e140 3d 20 30 3b 20 69 20 3c 20 6d 5f 50 72 6f 63 65 73 73 6f 72 53 74 61 63 6b 2e 6c 65 6e 67 74 68 =.0;.i.<.m_ProcessorStack.length
e160 20 2d 20 31 3b 20 2b 2b 69 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .-.1;.++i)......................
e180 20 20 20 20 76 61 6c 75 65 20 3d 20 6d 5f 50 72 6f 63 65 73 73 6f 72 53 74 61 63 6b 2e 61 64 64 ....value.=.m_ProcessorStack.add
e1a0 69 74 69 6f 6e 61 6c 56 61 6c 75 65 73 5b 69 5d 2e 50 72 6f 63 65 73 73 28 76 61 6c 75 65 2c 20 itionalValues[i].Process(value,.
e1c0 74 68 69 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 this);..............}...........
e1e0 20 20 20 72 65 74 75 72 6e 20 76 61 6c 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 ...return.value;..........}.....
e200 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 49 6e 6c 69 6e 65 64 41 72 72 61 79 3c 49 6e 70 .......internal.InlinedArray<Inp
e220 75 74 50 72 6f 63 65 73 73 6f 72 3c 54 56 61 6c 75 65 3e 3e 20 6d 5f 50 72 6f 63 65 73 73 6f 72 utProcessor<TValue>>.m_Processor
e240 53 74 61 63 6b 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 4f 6e 6c 79 20 6c 61 79 6f 75 74 Stack;............//.Only.layout
e260 73 20 61 72 65 20 61 6c 6c 6f 77 65 64 20 74 6f 20 6d 6f 64 69 66 79 20 74 68 65 20 70 72 6f 63 s.are.allowed.to.modify.the.proc
e280 65 73 73 6f 72 20 73 74 61 63 6b 2e 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 54 essor.stack...........internal.T
e2a0 50 72 6f 63 65 73 73 6f 72 20 54 72 79 47 65 74 50 72 6f 63 65 73 73 6f 72 3c 54 50 72 6f 63 65 Processor.TryGetProcessor<TProce
e2c0 73 73 6f 72 3e 28 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 68 65 72 65 20 54 50 72 6f 63 ssor>()..............where.TProc
e2e0 65 73 73 6f 72 20 3a 20 49 6e 70 75 74 50 72 6f 63 65 73 73 6f 72 3c 54 56 61 6c 75 65 3e 0d 0a essor.:.InputProcessor<TValue>..
e300 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6d 5f 50 72 6f ........{..............if.(m_Pro
e320 63 65 73 73 6f 72 53 74 61 63 6b 2e 6c 65 6e 67 74 68 20 3e 20 30 29 0d 0a 20 20 20 20 20 20 20 cessorStack.length.>.0).........
e340 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6d 5f 50 72 .....{..................if.(m_Pr
e360 6f 63 65 73 73 6f 72 53 74 61 63 6b 2e 66 69 72 73 74 56 61 6c 75 65 20 69 73 20 54 50 72 6f 63 ocessorStack.firstValue.is.TProc
e380 65 73 73 6f 72 20 70 72 6f 63 65 73 73 6f 72 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 essor.processor)................
e3a0 20 20 20 20 20 20 72 65 74 75 72 6e 20 70 72 6f 63 65 73 73 6f 72 3b 0d 0a 20 20 20 20 20 20 20 ......return.processor;.........
e3c0 20 20 20 20 20 20 20 20 20 69 66 20 28 6d 5f 50 72 6f 63 65 73 73 6f 72 53 74 61 63 6b 2e 61 64 .........if.(m_ProcessorStack.ad
e3e0 64 69 74 69 6f 6e 61 6c 56 61 6c 75 65 73 20 21 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 ditionalValues.!=.null).........
e400 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 20 69 20 3d 20 30 3b 20 69 20 3c .............for.(var.i.=.0;.i.<
e420 20 6d 5f 50 72 6f 63 65 73 73 6f 72 53 74 61 63 6b 2e 6c 65 6e 67 74 68 20 2d 20 31 3b 20 2b 2b .m_ProcessorStack.length.-.1;.++
e440 69 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 i)..........................if.(
e460 6d 5f 50 72 6f 63 65 73 73 6f 72 53 74 61 63 6b 2e 61 64 64 69 74 69 6f 6e 61 6c 56 61 6c 75 65 m_ProcessorStack.additionalValue
e480 73 5b 69 5d 20 69 73 20 54 50 72 6f 63 65 73 73 6f 72 20 72 65 73 75 6c 74 29 0d 0a 20 20 20 20 s[i].is.TProcessor.result)......
e4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 72 ........................return.r
e4c0 65 73 75 6c 74 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 esult;..............}...........
e4e0 20 20 20 72 65 74 75 72 6e 20 64 65 66 61 75 6c 74 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d ...return.default;..........}...
e500 0a 20 20 20 20 20 20 20 20 69 6e 74 65 72 6e 61 6c 20 6f 76 65 72 72 69 64 65 20 76 6f 69 64 20 .........internal.override.void.
e520 41 64 64 50 72 6f 63 65 73 73 6f 72 28 6f 62 6a 65 63 74 20 70 72 6f 63 65 73 73 6f 72 29 0d 0a AddProcessor(object.processor)..
e540 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 28 70 72 6f ........{..............if.(!(pro
e560 63 65 73 73 6f 72 20 69 73 20 49 6e 70 75 74 50 72 6f 63 65 73 73 6f 72 3c 54 56 61 6c 75 65 3e cessor.is.InputProcessor<TValue>
e580 20 70 72 6f 63 65 73 73 6f 72 4f 66 54 79 70 65 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 .processorOfType))..............
e5a0 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 ....throw.new.ArgumentException(
e5c0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 22 43 61 6e 6e 6f 74 20 61 ......................$"Cannot.a
e5e0 64 64 20 70 72 6f 63 65 73 73 6f 72 20 6f 66 20 74 79 70 65 20 27 7b 70 72 6f 63 65 73 73 6f 72 dd.processor.of.type.'{processor
e600 2e 47 65 74 54 79 70 65 28 29 2e 4e 61 6d 65 7d 27 20 74 6f 20 63 6f 6e 74 72 6f 6c 20 6f 66 20 .GetType().Name}'.to.control.of.
e620 74 79 70 65 20 27 7b 47 65 74 54 79 70 65 28 29 2e 4e 61 6d 65 7d 27 22 2c 20 6e 61 6d 65 6f 66 type.'{GetType().Name}'",.nameof
e640 28 70 72 6f 63 65 73 73 6f 72 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 5f 50 72 6f (processor));..............m_Pro
e660 63 65 73 73 6f 72 53 74 61 63 6b 2e 41 70 70 65 6e 64 28 70 72 6f 63 65 73 73 6f 72 4f 66 54 79 cessorStack.Append(processorOfTy
e680 70 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 65 72 pe);..........}............inter
e6a0 6e 61 6c 20 49 6e 70 75 74 50 72 6f 63 65 73 73 6f 72 3c 54 56 61 6c 75 65 3e 5b 5d 20 70 72 6f nal.InputProcessor<TValue>[].pro
e6c0 63 65 73 73 6f 72 73 20 3d 3e 20 6d 5f 50 72 6f 63 65 73 73 6f 72 53 74 61 63 6b 2e 54 6f 41 72 cessors.=>.m_ProcessorStack.ToAr
e6e0 72 61 79 28 29 3b 0d 0a 20 20 20 20 7d 0d 0a 7d 0d 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ray();......}..}................
e700 00 00 00 00 00 00 00 00 0c 00 00 00 49 6e 70 75 74 43 6f 6e 74 72 6f 6c 17 00 00 00 55 6e 69 74 ............InputControl....Unit
e720 79 45 6e 67 69 6e 65 2e 49 6e 70 75 74 53 79 73 74 65 6d 00 yEngine.InputSystem.