mirror of https://github.com/ppy/SDL3-CS.git
Compare commits
572 Commits
2024.407.0
...
master
| Author | SHA1 | Date |
|---|---|---|
|
|
3767eb2ab9 | |
|
|
4988d55819 | |
|
|
3c21f68505 | |
|
|
2c185bf63b | |
|
|
508573fe62 | |
|
|
2b556b39ce | |
|
|
40707381f6 | |
|
|
64a12c444b | |
|
|
6e700651b2 | |
|
|
32a04fb36a | |
|
|
227d48fe68 | |
|
|
b20de5fa9c | |
|
|
ddf8f1f478 | |
|
|
4022f0aa04 | |
|
|
3cda196b20 | |
|
|
3427250b38 | |
|
|
a27547bece | |
|
|
c0765ca155 | |
|
|
8838d6792e | |
|
|
9d79ba7ade | |
|
|
95165b55ea | |
|
|
b71f522dfe | |
|
|
9601d75096 | |
|
|
83d7db12b8 | |
|
|
dbbd262631 | |
|
|
d942aece9e | |
|
|
240d008900 | |
|
|
9f1c305ab2 | |
|
|
fb36b24faf | |
|
|
5096d33d1b | |
|
|
2fe9cb8ed5 | |
|
|
4f817f6bce | |
|
|
2d7d0ddecc | |
|
|
565ba9fe41 | |
|
|
fdd9cef146 | |
|
|
95010b0846 | |
|
|
db3993e71b | |
|
|
c42876e0ee | |
|
|
16c954ebc2 | |
|
|
a4781c9b58 | |
|
|
e2ead20a3d | |
|
|
e7bbd4461d | |
|
|
ecd3c1d004 | |
|
|
b59358dbf5 | |
|
|
ab2f57804c | |
|
|
579cf8b380 | |
|
|
d230747cd1 | |
|
|
e865ccc395 | |
|
|
4f19a14331 | |
|
|
e8a54c5506 | |
|
|
742ac35cbc | |
|
|
f57452fd77 | |
|
|
98a962deef | |
|
|
7078b56bcc | |
|
|
a9ec26bcbd | |
|
|
6fc5f872ed | |
|
|
11604347e1 | |
|
|
12d3f7a37f | |
|
|
9165d3b077 | |
|
|
76b0b15d97 | |
|
|
dab8abd1da | |
|
|
8afca73432 | |
|
|
7258fc2aaf | |
|
|
2e68c991fc | |
|
|
9a9cc1576e | |
|
|
01def28739 | |
|
|
5a16446ded | |
|
|
454e23e98f | |
|
|
c483a94aea | |
|
|
523649fd77 | |
|
|
f51f432541 | |
|
|
6d367145ed | |
|
|
8a9ec08e66 | |
|
|
68b514a2bb | |
|
|
d94b725f97 | |
|
|
76dcb21019 | |
|
|
2fdd152592 | |
|
|
73b855b9ba | |
|
|
18df50890a | |
|
|
2a51be187b | |
|
|
bde92020d7 | |
|
|
91b98d57a1 | |
|
|
4813f8dc59 | |
|
|
1f60742d1b | |
|
|
71611c90ab | |
|
|
d920afefe2 | |
|
|
91e05b56fe | |
|
|
d76c671a48 | |
|
|
4ced795244 | |
|
|
d12cbe2dec | |
|
|
c7b853e9ce | |
|
|
c202ba42ea | |
|
|
bb74b2cf57 | |
|
|
8c63fd801f | |
|
|
a02671332d | |
|
|
33023e7db5 | |
|
|
d68ff4dcdf | |
|
|
742dec521a | |
|
|
7d094dc1c0 | |
|
|
cdf3dc8f51 | |
|
|
beecade72f | |
|
|
5bf8143c4a | |
|
|
7ad887b2a6 | |
|
|
a984a31341 | |
|
|
88efab5deb | |
|
|
bfa753159c | |
|
|
bba374d541 | |
|
|
17a6a1b74c | |
|
|
424a42fcff | |
|
|
dc1e1a10af | |
|
|
1c1dbaa8cd | |
|
|
9b834790d4 | |
|
|
f9345ed38a | |
|
|
d93df5517f | |
|
|
0d8e49ef64 | |
|
|
b7ca494978 | |
|
|
dddb17d34d | |
|
|
90ce8877df | |
|
|
5d7ad9a1b8 | |
|
|
28951012e3 | |
|
|
bb247fa952 | |
|
|
9dd8657b8f | |
|
|
24c8b21804 | |
|
|
e7f0df7e8b | |
|
|
f632aa0fdd | |
|
|
7878370bab | |
|
|
63e3724920 | |
|
|
3a3633b96d | |
|
|
1d059287f5 | |
|
|
9c587389c2 | |
|
|
efe88bd6c0 | |
|
|
8172ba94e1 | |
|
|
5e4097b1fe | |
|
|
66fc81f489 | |
|
|
59a1369175 | |
|
|
c92afe97ac | |
|
|
ac2e352e81 | |
|
|
225ae22e6b | |
|
|
32b5f88a5e | |
|
|
c563ecc3be | |
|
|
b0260c0d31 | |
|
|
63df878dec | |
|
|
477bd7da13 | |
|
|
3471b34007 | |
|
|
b8f0998d8c | |
|
|
06fdeb01b3 | |
|
|
5b535590d5 | |
|
|
f5dcc15710 | |
|
|
49da8cf519 | |
|
|
318c2d8527 | |
|
|
1616f6056c | |
|
|
e34ff3f25a | |
|
|
693fcf308b | |
|
|
bb19215b54 | |
|
|
89fa65f30c | |
|
|
7f8ddcd477 | |
|
|
53bedf11e3 | |
|
|
29c7e9c126 | |
|
|
831d80fc10 | |
|
|
23a162db1e | |
|
|
080b1e571e | |
|
|
c61b11ee5d | |
|
|
e4a0124bfc | |
|
|
e18e833799 | |
|
|
7124e530e1 | |
|
|
7155c09e71 | |
|
|
0b4f2d1e85 | |
|
|
4cc974e2bc | |
|
|
c4d3ee27e8 | |
|
|
507c28c23c | |
|
|
40d5663603 | |
|
|
c747f1dcdd | |
|
|
6cbfbf8aad | |
|
|
710d4787a6 | |
|
|
490ffdcaa4 | |
|
|
d5ae94981e | |
|
|
5f4ba18c0d | |
|
|
10972ff222 | |
|
|
96486c7a02 | |
|
|
87b6598855 | |
|
|
4ac4588e18 | |
|
|
e1fb215d12 | |
|
|
e9be289b30 | |
|
|
b00293457a | |
|
|
ab7c7f5a9c | |
|
|
f988cb2d0b | |
|
|
3681588414 | |
|
|
31ee86e59e | |
|
|
07db29ef06 | |
|
|
2f7c96d5bd | |
|
|
23a3b77bcd | |
|
|
9daf986190 | |
|
|
3c24492891 | |
|
|
c86db6c2fd | |
|
|
d836630eab | |
|
|
c3dee83d20 | |
|
|
d2e30d2167 | |
|
|
20e10af7aa | |
|
|
365fe5c594 | |
|
|
4ee7f7e617 | |
|
|
3a0f3844b7 | |
|
|
e017626460 | |
|
|
d393ea3354 | |
|
|
061ef9ebfb | |
|
|
7137484799 | |
|
|
3d92f36990 | |
|
|
09cd92181a | |
|
|
b89c25b60e | |
|
|
8932ea3b6c | |
|
|
be946eb23c | |
|
|
d5287637ef | |
|
|
d86ca88246 | |
|
|
5a7b49ca74 | |
|
|
aac627922e | |
|
|
b3dec6b80c | |
|
|
53a87f4a74 | |
|
|
491a9bceae | |
|
|
8e928a4f2e | |
|
|
882a88219e | |
|
|
2cc61ee837 | |
|
|
be06fff363 | |
|
|
cc37b8245b | |
|
|
06fabcf8b0 | |
|
|
957e29d137 | |
|
|
52c2c1b31e | |
|
|
af476b4cc4 | |
|
|
1e78619716 | |
|
|
5b0abdca7c | |
|
|
7803512144 | |
|
|
50c10fc39e | |
|
|
f4001dad7d | |
|
|
7d0d0d7569 | |
|
|
fa446c3285 | |
|
|
e41affe943 | |
|
|
7eb48f25ec | |
|
|
2590a7205e | |
|
|
1bbb7292b3 | |
|
|
f5875c5ea8 | |
|
|
609a319551 | |
|
|
0ef3dbab09 | |
|
|
22c6c79701 | |
|
|
81e5c4cb7f | |
|
|
f46a595008 | |
|
|
a7f3fe450d | |
|
|
dcea5f47c3 | |
|
|
04c71afe67 | |
|
|
69c7e23842 | |
|
|
520ae0ebc7 | |
|
|
e7c8dec375 | |
|
|
36c251aed2 | |
|
|
11228b67aa | |
|
|
4831863919 | |
|
|
ec696f7bab | |
|
|
fa61d32dfc | |
|
|
ed43193103 | |
|
|
140e73678d | |
|
|
c991b5bd06 | |
|
|
a64cdd9e4f | |
|
|
904f50cb99 | |
|
|
46e1411e24 | |
|
|
5227b62690 | |
|
|
ee98235385 | |
|
|
5ab6d58b9e | |
|
|
e5a7980b9e | |
|
|
c7fdd26674 | |
|
|
bfa2ad06c4 | |
|
|
53dff157d5 | |
|
|
84c8d4240f | |
|
|
55d3514908 | |
|
|
6fa75e75a6 | |
|
|
012a3dc1f2 | |
|
|
c51cad1aa7 | |
|
|
209d102b32 | |
|
|
f9533a8fa5 | |
|
|
c1a2631133 | |
|
|
ec5015b788 | |
|
|
2738571117 | |
|
|
05c7ec057c | |
|
|
98930ae886 | |
|
|
bccaf2fa75 | |
|
|
682da0bfe1 | |
|
|
788afa6ab1 | |
|
|
5abea9c105 | |
|
|
b968192607 | |
|
|
1059f343e0 | |
|
|
df84a111c7 | |
|
|
d4bb6809ac | |
|
|
4f32e5fb4e | |
|
|
fa7121a2c4 | |
|
|
fb08ccb2ce | |
|
|
5fbda17ae9 | |
|
|
75c49e289e | |
|
|
c4e81478e0 | |
|
|
a035dd9f99 | |
|
|
b76615c8b2 | |
|
|
dc759a5853 | |
|
|
e207e72b6a | |
|
|
2369173847 | |
|
|
7a6b799cc5 | |
|
|
30751744bb | |
|
|
84c944c19c | |
|
|
d73c8964dc | |
|
|
dc1a797d4d | |
|
|
61365c84f7 | |
|
|
c0be2a238e | |
|
|
c50f542dd8 | |
|
|
7a96e75492 | |
|
|
a85443c42c | |
|
|
461ae94bc5 | |
|
|
fdd4753c64 | |
|
|
7e04509e6a | |
|
|
333adaa435 | |
|
|
8202eba9f4 | |
|
|
dd4f866860 | |
|
|
f8f2698ff7 | |
|
|
3194051a5d | |
|
|
94f87bc6d3 | |
|
|
349f312d8b | |
|
|
623ae0bb4d | |
|
|
833814cf25 | |
|
|
4792b4667b | |
|
|
d04f71cdfa | |
|
|
312410a279 | |
|
|
edb9a6b69d | |
|
|
03f3773985 | |
|
|
00c2991885 | |
|
|
a7cb45ee1b | |
|
|
03cb53dd11 | |
|
|
9f75280505 | |
|
|
15e2c5442d | |
|
|
5235b75dd3 | |
|
|
dbff763b5c | |
|
|
b8b1aa13c6 | |
|
|
d260e738b1 | |
|
|
eaacf5279e | |
|
|
26865ce7e6 | |
|
|
820262b977 | |
|
|
cb4a8e5cbf | |
|
|
989be00a12 | |
|
|
5f165e8785 | |
|
|
9e810fe7d0 | |
|
|
45743b3acd | |
|
|
4d202e7ec5 | |
|
|
985cdd434b | |
|
|
f02c4c0ee2 | |
|
|
2482edf390 | |
|
|
62ea6fde5e | |
|
|
8dc76030b3 | |
|
|
24985bfa30 | |
|
|
0e8000f573 | |
|
|
d8bc2b0268 | |
|
|
89266252a5 | |
|
|
f6ac7e6904 | |
|
|
6629714ba0 | |
|
|
be9084c22a | |
|
|
c72f784965 | |
|
|
2ec3cb8371 | |
|
|
aed3cb24dd | |
|
|
61fb6d840b | |
|
|
f84772ed5a | |
|
|
ae2a8cfe63 | |
|
|
558ea73b04 | |
|
|
a3ff6817ad | |
|
|
f75ccc3910 | |
|
|
7caa83fb5d | |
|
|
ed5ee09d84 | |
|
|
f550b993a2 | |
|
|
d3eeae4e13 | |
|
|
51d1568a52 | |
|
|
8d17f3101f | |
|
|
713f86911f | |
|
|
12cbc30d6b | |
|
|
3c2ecca3e9 | |
|
|
d77e133f53 | |
|
|
3c30203649 | |
|
|
620e9415a2 | |
|
|
71a971149c | |
|
|
7eefea0976 | |
|
|
9c2afc22d0 | |
|
|
0694926832 | |
|
|
7455e1c379 | |
|
|
1b1c59046b | |
|
|
e96b0ebb39 | |
|
|
8fc87afcec | |
|
|
12d09eaeae | |
|
|
29a9f71de0 | |
|
|
317d15af3c | |
|
|
14aae88343 | |
|
|
f19e4422a4 | |
|
|
b61c9ac5e9 | |
|
|
8e64d7b2fa | |
|
|
4de8f40d87 | |
|
|
245b960f71 | |
|
|
45a83ca5f5 | |
|
|
99c7884411 | |
|
|
606245a6b9 | |
|
|
53e50fea01 | |
|
|
715537a053 | |
|
|
de21c32e8d | |
|
|
a142fd7ac4 | |
|
|
c0847604b3 | |
|
|
b8f4ad6a52 | |
|
|
96b2d55905 | |
|
|
c67bcb415b | |
|
|
e43cfa5017 | |
|
|
63b4999478 | |
|
|
f1398313d1 | |
|
|
cffad94b9b | |
|
|
f12c0ae886 | |
|
|
25defdb451 | |
|
|
69a12ff56b | |
|
|
8d4f817aaa | |
|
|
3daf817a01 | |
|
|
bc394a0c82 | |
|
|
60ecee4eb1 | |
|
|
0fd6a6c930 | |
|
|
33171e6d39 | |
|
|
36074c68a7 | |
|
|
4d0a77187a | |
|
|
3e0363df12 | |
|
|
a7e93d4d82 | |
|
|
9655bd5841 | |
|
|
3321f4504e | |
|
|
0144ee03ed | |
|
|
f7cffd8496 | |
|
|
5d8be11125 | |
|
|
62e4768100 | |
|
|
4760e93c66 | |
|
|
6bc1822d8f | |
|
|
63cc3882d1 | |
|
|
4396301425 | |
|
|
6e7d2dc1e1 | |
|
|
30334ee256 | |
|
|
61f85de208 | |
|
|
d1f6284957 | |
|
|
024918e525 | |
|
|
d0f37c4dc5 | |
|
|
e6dff89353 | |
|
|
3262b3c5b7 | |
|
|
6140f87530 | |
|
|
3f2c1b234e | |
|
|
9ef6d54186 | |
|
|
9f385f67ce | |
|
|
e5a2b13d38 | |
|
|
25c2558184 | |
|
|
d07bacbb8b | |
|
|
e6660f9474 | |
|
|
1d47a63cfb | |
|
|
2a1126db80 | |
|
|
9cbc0cdaf4 | |
|
|
913054a4a1 | |
|
|
b80b9f4f02 | |
|
|
4e663b55fc | |
|
|
17969ebdf1 | |
|
|
779f228154 | |
|
|
920df0abe0 | |
|
|
19ddc9a195 | |
|
|
4cf685828c | |
|
|
408456e9bc | |
|
|
3d6e37b463 | |
|
|
e0f8d0df23 | |
|
|
b8aaa81372 | |
|
|
e4a5848b82 | |
|
|
4caf6d629a | |
|
|
03366e7bf0 | |
|
|
7c523da65c | |
|
|
048e608cb3 | |
|
|
fe93c2fb50 | |
|
|
02888023e4 | |
|
|
05714f9657 | |
|
|
453df16b5e | |
|
|
89af77f5a2 | |
|
|
079440d0a0 | |
|
|
a7cbefc5e6 | |
|
|
515cd199e3 | |
|
|
cc5178712a | |
|
|
ffe346ac59 | |
|
|
99d1c0f9fa | |
|
|
2dd2ef0ef6 | |
|
|
f6677bde9f | |
|
|
6f33edd9e6 | |
|
|
9c37aaef6f | |
|
|
c050c1703b | |
|
|
80ed12b6a0 | |
|
|
e651672c2a | |
|
|
8b0479287a | |
|
|
56b9eb7076 | |
|
|
934b2cd6bc | |
|
|
4c5173715e | |
|
|
784d305d9c | |
|
|
d6b1c3e077 | |
|
|
5e0aa03e9b | |
|
|
7bff9f51f3 | |
|
|
badeebcf63 | |
|
|
59cb0158ba | |
|
|
a16389d76c | |
|
|
0fcba2894d | |
|
|
02cedd7cb6 | |
|
|
2a253a0e2d | |
|
|
3d1b5059b6 | |
|
|
7ee4e91d60 | |
|
|
0bb695ed2c | |
|
|
ee29df1362 | |
|
|
2e0965609a | |
|
|
d35c803958 | |
|
|
7b24554969 | |
|
|
68732f2091 | |
|
|
3508b79917 | |
|
|
bf2fbdf786 | |
|
|
ac3b4be3b0 | |
|
|
ae32b24fe6 | |
|
|
44ae1cad13 | |
|
|
232a32ce80 | |
|
|
61cdd395b4 | |
|
|
9b6c3dd5e3 | |
|
|
84b82f6532 | |
|
|
b17f230e0c | |
|
|
1cf9c12b35 | |
|
|
08b64a59cf | |
|
|
6f23111ea6 | |
|
|
6aa7c54b49 | |
|
|
6a3e74ece9 | |
|
|
dae8b1a04b | |
|
|
f07bc5b0d3 | |
|
|
c40e8b150c | |
|
|
8f5e52d944 | |
|
|
13b2c6ebba | |
|
|
42b32e36d5 | |
|
|
a6838a3f9f | |
|
|
ec3ce75780 | |
|
|
6f8564fb9d | |
|
|
2f459c7a84 | |
|
|
aab02bf6f9 | |
|
|
8a98ba5103 | |
|
|
8e0066d7f7 | |
|
|
72a002ead0 | |
|
|
5b9bbd518e | |
|
|
e0a7e3dec9 | |
|
|
ac582bdacf | |
|
|
9c89602557 | |
|
|
e7c1d05fa6 | |
|
|
aa1639b0a7 | |
|
|
f9ae6277a7 | |
|
|
d3481d3a81 | |
|
|
4e5de035e9 | |
|
|
36c069f94a | |
|
|
b5ae4000e3 | |
|
|
b6a70cf162 | |
|
|
3d9a45b53c | |
|
|
f1b7b2caf6 | |
|
|
4cb2584c7a | |
|
|
98f308f03d | |
|
|
ad47cc7b24 | |
|
|
fb74af1481 | |
|
|
dfb3f0482d | |
|
|
d7bb3244da | |
|
|
28e96050cc | |
|
|
c646c6d4cc | |
|
|
b6b0e0517c | |
|
|
ce65a9825d | |
|
|
7543cd91bc | |
|
|
42d01d297e | |
|
|
bb726b4982 | |
|
|
5f9b672036 | |
|
|
620b86e715 | |
|
|
355fbba3b4 | |
|
|
22e89e4d45 | |
|
|
1ff33eb1fd | |
|
|
63cd829c75 | |
|
|
6e2d9dd131 | |
|
|
a0809b8d78 | |
|
|
61b486530b |
|
|
@ -9,7 +9,7 @@ indent_style = space
|
|||
indent_size = 2
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*g.cs]
|
||||
[*.g.cs]
|
||||
generated_code = true
|
||||
|
||||
[*.cs]
|
||||
|
|
|
|||
|
|
@ -22,4 +22,8 @@ App.config text eol=crlf
|
|||
.gitignore text eol=lf
|
||||
.gitattributes text eol=lf
|
||||
*.md text eol=lf
|
||||
.travis.yml text eol=lf
|
||||
.travis.yml text eol=lf
|
||||
|
||||
# Use lf for files used by ClangSharpPInvokeGenerator
|
||||
*-license-header.txt text eol=lf
|
||||
*.g.cs text eol=lf
|
||||
|
|
|
|||
|
|
@ -1,11 +1,12 @@
|
|||
name: Build Native
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs: {}
|
||||
# schedule:
|
||||
# - cron: '0 0 * * *'
|
||||
env:
|
||||
BUILD_TYPE: Release
|
||||
NDK_VER: 28.2.13676358
|
||||
PLATFORM_VER: 35
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
|
@ -15,136 +16,219 @@ jobs:
|
|||
fail-fast: false
|
||||
matrix:
|
||||
platform:
|
||||
- { name: win-x64, os: windows-latest, flags: -A x64 }
|
||||
- { name: win-x86, os: windows-latest, flags: -A Win32 }
|
||||
- { name: win-arm64, os: windows-latest, flags: -A ARM64 }
|
||||
- { name: linux-x64, os: ubuntu-20.04, flags: -GNinja, target_apt_arch: ":amd64" }
|
||||
- { name: linux-x86, os: ubuntu-20.04, flags: -GNinja, cmake_configure_env: CFLAGS=-m32 CXXFLAGS=-m32, target_apt_arch: ":i386" }
|
||||
- { name: osx-x64, os: macos-latest, flags: -DCMAKE_OSX_ARCHITECTURES="x86_64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.14" }
|
||||
- { name: win-x64, os: windows-latest, flags: -A x64 }
|
||||
- { name: win-x86, os: windows-2022, flags: -A Win32 }
|
||||
- { name: win-arm64, os: windows-latest, flags: -A ARM64 }
|
||||
- { name: linux-x64, os: ubuntu-22.04, flags: -GNinja, target_apt_arch: ":amd64" }
|
||||
- { name: linux-x86, os: ubuntu-22.04, flags: -GNinja -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32 -DWAVPACK_ENABLE_ASM=OFF, target_apt_arch: ":i386" }
|
||||
- { name: linux-arm64, os: ubuntu-22.04-arm, flags: -GNinja, target_apt_arch: ":arm64", container: "arm64v8/ubuntu:22.04" }
|
||||
- { name: linux-arm, os: ubuntu-22.04-arm, flags: -GNinja -DCMAKE_C_FLAGS=-mfpu=neon -DCMAKE_CXX_FLAGS=-mfpu=neon, target_apt_arch: ":armhf", container: "arm32v7/ubuntu:22.04" }
|
||||
- { name: osx-x64, os: macos-13, flags: -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_OSX_DEPLOYMENT_TARGET=10.14 }
|
||||
# NOTE: macOS 11.0 is the first released supported by Apple Silicon.
|
||||
- { name: osx-arm64, os: macos-latest, flags: -DCMAKE_OSX_ARCHITECTURES="arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET="11.0" }
|
||||
- { name: osx-arm64, os: macos-latest, flags: -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 }
|
||||
- { name: android-arm64, os: ubuntu-22.04, flags: -GNinja, abi: arm64-v8a }
|
||||
- { name: android-arm, os: ubuntu-22.04, flags: -GNinja, abi: armeabi-v7a }
|
||||
- { name: android-x64, os: ubuntu-22.04, flags: -GNinja, abi: x86_64 }
|
||||
- { name: android-x86, os: ubuntu-22.04, flags: -GNinja, abi: x86 }
|
||||
steps:
|
||||
- name: Setup Linux dependencies
|
||||
if: runner.os == 'Linux'
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Setup JDK
|
||||
if: contains(matrix.platform.name, 'android')
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: microsoft
|
||||
java-version: 17
|
||||
|
||||
- name: Install Android SDK Manager
|
||||
if: contains(matrix.platform.name, 'android')
|
||||
uses: android-actions/setup-android@v3
|
||||
|
||||
- name: Install Android SDK
|
||||
if: contains(matrix.platform.name, 'android')
|
||||
run: |
|
||||
if [[ ${{ matrix.platform.target_apt_arch }} == :i386 ]]; then
|
||||
sudo dpkg --add-architecture i386
|
||||
fi
|
||||
sdkmanager --install "platforms;android-$PLATFORM_VER"
|
||||
sdkmanager --install "ndk;$NDK_VER"
|
||||
|
||||
sudo apt-get update -y -qq
|
||||
|
||||
if [[ ${{ matrix.platform.target_apt_arch }} == :i386 ]]; then
|
||||
# Workaround GitHub's ubuntu-20.04 image issue <https://github.com/actions/virtual-environments/issues/4589>
|
||||
sudo apt-get install -y --allow-downgrades libpcre2-8-0=10.34-7
|
||||
fi
|
||||
|
||||
sudo apt-get install -y \
|
||||
gcc-multilib \
|
||||
g++-multilib \
|
||||
cmake \
|
||||
ninja-build \
|
||||
wayland-scanner++ \
|
||||
wayland-protocols \
|
||||
pkg-config${{ matrix.platform.target_apt_arch }} \
|
||||
libasound2-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libdbus-1-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libegl1-mesa-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libgl1-mesa-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libgles2-mesa-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libglu1-mesa-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libibus-1.0-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libpulse-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libsndio-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libudev-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libwayland-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libx11-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libxcursor-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libxext-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libxi-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libxinerama-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libxkbcommon-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libxrandr-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libxss-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libxt-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libxv-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libxxf86vm-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libdrm-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libgbm-dev${{ matrix.platform.target_apt_arch }} \
|
||||
libpulse-dev${{ matrix.platform.target_apt_arch }}
|
||||
- uses: actions/checkout@v4
|
||||
- name: Build (Linux ARM)
|
||||
if: contains(matrix.platform.container, 'arm')
|
||||
uses: addnab/docker-run-action@v3
|
||||
with:
|
||||
repository: 'libsdl-org/SDL'
|
||||
ref: 'main'
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
path: 'SDL3-CS'
|
||||
- name: Configure CMake
|
||||
run: ${{ matrix.platform.cmake_configure_env }} cmake -B build ${{ matrix.platform.flags }} -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSDL_SHARED_ENABLED_BY_DEFAULT=ON -DSDL_STATIC_ENABLED_BY_DEFAULT=ON
|
||||
image: ${{ matrix.platform.container }}
|
||||
options: >
|
||||
-v ${{ github.workspace }}:/workspace
|
||||
-e NAME=${{ matrix.platform.name }}
|
||||
-e TARGET_APT_ARCH=${{ matrix.platform.target_apt_arch }}
|
||||
-e RUNNER_OS=${{ runner.os }}
|
||||
-e BUILD_TYPE=${{ env.BUILD_TYPE }}
|
||||
run: |
|
||||
cd /workspace
|
||||
FLAGS="${{ matrix.platform.flags }}" ./External/build.sh
|
||||
|
||||
- name: Build
|
||||
run: cmake --build build/ --config Release
|
||||
- name: Install (Windows)
|
||||
run: cmake --install build/ --prefix install_output --config Release
|
||||
if: runner.os == 'Windows'
|
||||
- name: Install
|
||||
run: sudo cmake --install build/ --prefix install_output --config Release
|
||||
if: runner.os != 'Windows'
|
||||
- name: Prepare release directory (Windows)
|
||||
run: mkdir -Force SDL3-CS/native/${{ matrix.platform.name }}
|
||||
if: runner.os == 'Windows'
|
||||
- name: Prepare release directory
|
||||
run: mkdir -p SDL3-CS/native/${{ matrix.platform.name }}
|
||||
if: runner.os != 'Windows'
|
||||
- name: Prepare release (Windows)
|
||||
run: cp install_output/bin/SDL3.dll SDL3-CS/native/${{ matrix.platform.name }}/SDL3.dll
|
||||
if: runner.os == 'Windows'
|
||||
- name: Prepare release (Linux)
|
||||
run: cp install_output/lib/libSDL3.so SDL3-CS/native/${{ matrix.platform.name }}/libSDL3.so
|
||||
if: runner.os == 'Linux'
|
||||
- name: Prepare release (macOS)
|
||||
run: cp install_output/lib/libSDL3.dylib SDL3-CS/native/${{ matrix.platform.name }}/libSDL3.dylib
|
||||
if: runner.os == 'macOS'
|
||||
- name: Create pull request
|
||||
uses: peter-evans/create-pull-request@v6
|
||||
with:
|
||||
commit-message: Update ${{ matrix.platform.name }} SDL binaries
|
||||
title: Update ${{ matrix.platform.name }} SDL binaries
|
||||
body: This PR has been auto-generated to update the ${{ matrix.platform.name }} SDL binaries.
|
||||
branch: update-${{ matrix.platform.name }}-binaries
|
||||
path: 'SDL3-CS'
|
||||
if: ${{ !contains(matrix.platform.container, 'arm') }}
|
||||
shell: bash
|
||||
env:
|
||||
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
|
||||
NAME: ${{ matrix.platform.name }}
|
||||
TARGET_APT_ARCH: ${{ matrix.platform.target_apt_arch }}
|
||||
RUNNER_OS: ${{ runner.os }}
|
||||
FLAGS: ${{ matrix.platform.flags }}
|
||||
ANDROID_ABI: ${{ matrix.platform.abi }}
|
||||
run: ./External/build.sh
|
||||
|
||||
- name: Get Actions user id
|
||||
if: runner.os == 'Linux'
|
||||
id: get_uid
|
||||
run: echo "uid=$(id -u $USER)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Correct Ownership in GITHUB_WORKSPACE directory
|
||||
if: runner.os == 'Linux'
|
||||
uses: peter-murray/reset-workspace-ownership-action@v1
|
||||
with:
|
||||
user_id: ${{ steps.get_uid.outputs.uid }}
|
||||
|
||||
- name: Compress native directory
|
||||
if: ${{ !contains(matrix.platform.name, 'android') }}
|
||||
run: tar -cvf native-${{ matrix.platform.name }}.tar native/${{ matrix.platform.name }}
|
||||
|
||||
- name: Compress native directory (Android)
|
||||
if: contains(matrix.platform.name, 'android')
|
||||
run: tar -cvf native-${{ matrix.platform.name }}.tar native/android/${{ matrix.platform.abi }}
|
||||
|
||||
- name: Upload native artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: native-${{ matrix.platform.name }}
|
||||
path: native-${{ matrix.platform.name }}.tar
|
||||
if-no-files-found: error
|
||||
|
||||
build-ios:
|
||||
name: ios
|
||||
runs-on: macos-latest
|
||||
runs-on: macos-15
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
repository: 'libsdl-org/SDL'
|
||||
ref: 'main'
|
||||
submodules: recursive
|
||||
|
||||
# https://github.com/dotnet/macios/issues/19157
|
||||
# https://github.com/actions/runner-images/issues/12758
|
||||
- name: Use Xcode 16.4
|
||||
run: sudo xcode-select -switch /Applications/Xcode_16.4.app
|
||||
|
||||
- name: Build (iOS)
|
||||
run: |
|
||||
modules=("SDL3" "SDL3_image" "SDL3_ttf" "SDL3_mixer")
|
||||
architectures=("ios-arm64" "ios-arm64_x86_64-simulator")
|
||||
|
||||
for module in "${modules[@]}"; do
|
||||
module0="${module/SDL3/SDL}"
|
||||
directory="External/${module0}/Xcode"
|
||||
if [ "$module" == "SDL3" ]; then
|
||||
directory+="/SDL"
|
||||
fi
|
||||
|
||||
target="${module}.xcframework"
|
||||
framework="${module}.framework"
|
||||
output_dir="native/ios/${target}"
|
||||
|
||||
xcodebuild -project "${directory}/${module0}.xcodeproj" -target "${target}" -configuration Release
|
||||
build_dir="${directory}/build/${target}"
|
||||
|
||||
for arch in "${architectures[@]}"; do
|
||||
mkdir -p "${output_dir}/${arch}/${framework}"
|
||||
cp "${build_dir}/${arch}/${framework}/${module}" "${output_dir}/${arch}/${framework}/${module}"
|
||||
cp "${build_dir}/${arch}/${framework}/Info.plist" "${output_dir}/${arch}/${framework}/Info.plist"
|
||||
done
|
||||
cp "${build_dir}/Info.plist" "${output_dir}/Info.plist"
|
||||
done
|
||||
|
||||
- name: Compress native directory
|
||||
run: tar -cvf native-ios.tar native/ios
|
||||
|
||||
- name: Upload native artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: native-ios
|
||||
path: native-ios.tar
|
||||
if-no-files-found: error
|
||||
|
||||
build-android-jar:
|
||||
name: android-jar
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
path: 'SDL3-CS'
|
||||
- name: Build (iOS)
|
||||
run: xcodebuild -project Xcode/SDL/SDL.xcodeproj -target SDL3.xcframework -configuration Release
|
||||
- name: Prepare release directory (iOS)
|
||||
run: mkdir -p SDL3-CS/native/ios
|
||||
- name: Prepare release (iOS)
|
||||
submodules: true
|
||||
|
||||
- name: Setup JDK
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: microsoft
|
||||
java-version: |
|
||||
11
|
||||
17
|
||||
|
||||
- name: Install Android SDK Manager
|
||||
uses: android-actions/setup-android@v3
|
||||
|
||||
- name: Install Android SDK
|
||||
run: |
|
||||
mkdir -p SDL3-CS/native/ios/SDL3.xcframework/ios-arm64/SDL3.framework;
|
||||
mkdir -p SDL3-CS/native/ios/SDL3.xcframework/ios-arm64_x86_64-simulator/SDL3.framework;
|
||||
cp Xcode/SDL/build/SDL3.xcframework/Info.plist SDL3-CS/native/ios/SDL3.xcframework/Info.plist;
|
||||
cp Xcode/SDL/build/SDL3.xcframework/ios-arm64/SDL3.framework/SDL3 SDL3-CS/native/ios/SDL3.xcframework/ios-arm64/SDL3.framework/SDL3;
|
||||
cp Xcode/SDL/build/SDL3.xcframework/ios-arm64/SDL3.framework/Info.plist SDL3-CS/native/ios/SDL3.xcframework/ios-arm64/SDL3.framework/Info.plist;
|
||||
cp Xcode/SDL/build/SDL3.xcframework/ios-arm64_x86_64-simulator/SDL3.framework/SDL3 SDL3-CS/native/ios/SDL3.xcframework/ios-arm64_x86_64-simulator/SDL3.framework/SDL3;
|
||||
cp Xcode/SDL/build/SDL3.xcframework/ios-arm64_x86_64-simulator/SDL3.framework/Info.plist SDL3-CS/native/ios/SDL3.xcframework/ios-arm64_x86_64-simulator/SDL3.framework/Info.plist;
|
||||
sdkmanager --install "platforms;android-$PLATFORM_VER"
|
||||
|
||||
- name: Build SDL3 Android Java
|
||||
run: |
|
||||
export JAVA_HOME=$JAVA_HOME_11_X64
|
||||
export PATH=$JAVA_HOME_11_X64/bin:$PATH
|
||||
export OUTPUT=$PWD/SDL3-CS/Jars/
|
||||
rm -rf $OUTPUT && mkdir -p $OUTPUT
|
||||
|
||||
# Build SDL3 Android Java part
|
||||
cd ./External/SDL/android-project/app/src/main/java
|
||||
javac -cp $ANDROID_HOME/platforms/android-$PLATFORM_VER/android.jar -encoding utf8 org/libsdl/app/*.java
|
||||
jar cvf $OUTPUT/SDL3AndroidBridge.jar org/libsdl/app/*.class
|
||||
|
||||
- name: Upload JAR artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: android-jar
|
||||
path: SDL3-CS/Jars/SDL3AndroidBridge.jar
|
||||
if-no-files-found: error
|
||||
|
||||
make-pr:
|
||||
name: Submit pull request
|
||||
runs-on: ubuntu-latest
|
||||
needs: [ build, build-ios, build-android-jar ]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Download native artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
pattern: native-*
|
||||
merge-multiple: true
|
||||
|
||||
- name: Decompress native artifacts
|
||||
run: |
|
||||
for file in native-*.tar
|
||||
do
|
||||
tar -xf "$file"
|
||||
done
|
||||
rm native-*.tar
|
||||
|
||||
- name: Download JAR artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: android-jar
|
||||
path: SDL3-CS/Jars/
|
||||
|
||||
- name: Create pull request
|
||||
uses: peter-evans/create-pull-request@v6
|
||||
with:
|
||||
commit-message: Update iOS SDL binaries
|
||||
title: Update iOS SDL binaries
|
||||
body: This PR has been auto-genereated to update the iOS SDL binaries
|
||||
branch: update-ios-binaries
|
||||
path: 'SDL3-CS'
|
||||
commit-message: Update native binaries
|
||||
title: Update native binaries
|
||||
body: This PR has been auto-generated to update the native SDL binaries
|
||||
branch: update-native-binaries
|
||||
env:
|
||||
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
|
||||
|
|
|
|||
|
|
@ -0,0 +1,79 @@
|
|||
name: Continuous Integration
|
||||
on: [push, pull_request]
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read # to fetch code (actions/checkout)
|
||||
|
||||
jobs:
|
||||
build-only-desktop:
|
||||
name: Build only (Desktop)
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 60
|
||||
env:
|
||||
CI_DONT_TARGET_ANDROID: 1
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install .NET 8.0.x
|
||||
uses: actions/setup-dotnet@v4
|
||||
with:
|
||||
dotnet-version: "8.0.x"
|
||||
|
||||
- name: Build
|
||||
run: dotnet build -c Debug SDL3-CS.Desktop.slnf
|
||||
|
||||
build-only-android:
|
||||
name: Build only (Android)
|
||||
runs-on: windows-latest
|
||||
timeout-minutes: 60
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup JDK 11
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: microsoft
|
||||
java-version: 11
|
||||
|
||||
- name: Install .NET 8.0.x
|
||||
uses: actions/setup-dotnet@v4
|
||||
with:
|
||||
dotnet-version: "8.0.x"
|
||||
|
||||
- name: Install .NET workloads
|
||||
run: dotnet workload install android
|
||||
|
||||
- name: Build
|
||||
run: dotnet build -c Debug SDL3-CS.Android.slnf
|
||||
|
||||
build-only-ios:
|
||||
name: Build only (iOS)
|
||||
runs-on: macos-15
|
||||
timeout-minutes: 60
|
||||
env:
|
||||
CI_DONT_TARGET_ANDROID: 1
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install .NET 8.0.x
|
||||
uses: actions/setup-dotnet@v4
|
||||
with:
|
||||
dotnet-version: "8.0.x"
|
||||
|
||||
- name: Install .NET Workloads
|
||||
run: dotnet workload install ios
|
||||
|
||||
# https://github.com/dotnet/macios/issues/19157
|
||||
# https://github.com/actions/runner-images/issues/12758
|
||||
- name: Use Xcode 16.4
|
||||
run: sudo xcode-select -switch /Applications/Xcode_16.4.app
|
||||
|
||||
- name: Build
|
||||
run: dotnet build -c Debug SDL3-CS.iOS.slnf
|
||||
|
|
@ -16,17 +16,30 @@ jobs:
|
|||
with:
|
||||
dotnet-version: 8.0.x
|
||||
|
||||
- name: Build
|
||||
run: dotnet build SDL3-CS.sln -c Release
|
||||
- name: Setup JDK 17
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: microsoft
|
||||
java-version: 17
|
||||
|
||||
- name: Pack
|
||||
run: dotnet pack SDL3-CS/SDL3-CS.csproj -c Release /p:Version=$(git describe --exact-match --tags HEAD)
|
||||
- name: Setup Android SDK
|
||||
uses: android-actions/setup-android@v3
|
||||
|
||||
- name: Install .NET workloads
|
||||
run: dotnet workload restore
|
||||
|
||||
- name: Build & pack
|
||||
run: |
|
||||
dotnet pack SDL3-CS/SDL3-CS.csproj -c Release /p:Version=$(git describe --exact-match --tags HEAD) -o artifacts
|
||||
dotnet pack SDL3_image-CS/SDL3_image-CS.csproj -c Release /p:Version=$(git describe --exact-match --tags HEAD) -o artifacts
|
||||
dotnet pack SDL3_ttf-CS/SDL3_ttf-CS.csproj -c Release /p:Version=$(git describe --exact-match --tags HEAD) -o artifacts
|
||||
dotnet pack SDL3_mixer-CS/SDL3_mixer-CS.csproj -c Release /p:Version=$(git describe --exact-match --tags HEAD) -o artifacts
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: SDL3-CS
|
||||
path: SDL3-CS/bin/Release/ppy.*.nupkg
|
||||
name: Packages
|
||||
path: artifacts/ppy.*.nupkg
|
||||
|
||||
- name: Publish tagged release to nuget.org
|
||||
run: dotnet nuget push SDL3-CS/bin/Release/ppy.*.nupkg -s https://api.nuget.org/v3/index.json --api-key ${{secrets.NUGET_API_KEY}}
|
||||
run: dotnet nuget push artifacts/ppy.*.nupkg -s https://api.nuget.org/v3/index.json --api-key ${{secrets.NUGET_API_KEY}}
|
||||
|
|
|
|||
|
|
@ -323,6 +323,7 @@ fabric.properties
|
|||
**/.idea/**/dynamic.xml
|
||||
**/.idea/**/uiDesigner.xml
|
||||
**/.idea/**/dbnavigator.xml
|
||||
**/.idea/**/deploymentTargetDropDown.xml
|
||||
|
||||
# Rider
|
||||
# Rider auto-generates .iml files, and contentModel.xml
|
||||
|
|
@ -337,3 +338,5 @@ inspectcodereport.xml
|
|||
inspectcode
|
||||
|
||||
sdl.json
|
||||
|
||||
install_output/
|
||||
|
|
|
|||
|
|
@ -0,0 +1,15 @@
|
|||
[submodule "SDL"]
|
||||
path = External/SDL
|
||||
url = https://github.com/libsdl-org/SDL
|
||||
[submodule "SDL_image"]
|
||||
path = External/SDL_image
|
||||
url = https://github.com/libsdl-org/SDL_image.git
|
||||
branch = main
|
||||
[submodule "SDL_ttf"]
|
||||
path = External/SDL_ttf
|
||||
url = https://github.com/libsdl-org/SDL_ttf.git
|
||||
branch = main
|
||||
[submodule "SDL_mixer"]
|
||||
path = External/SDL_mixer
|
||||
url = https://github.com/libsdl-org/SDL_mixer.git
|
||||
branch = main
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Rider ignored files
|
||||
/contentModel.xml
|
||||
/.idea.SDL3-CS.Desktop.iml
|
||||
/modules.xml
|
||||
/projectSettingsUpdater.xml
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
||||
|
|
@ -0,0 +1 @@
|
|||
SDL3-CS.Desktop
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
|
||||
</project>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="UserContentModel">
|
||||
<attachedFolders />
|
||||
<explicitIncludes />
|
||||
<explicitExcludes />
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Android" type="XamarinAndroidProject" factoryName="Xamarin.Android">
|
||||
<option name="PROJECT_PATH" value="$PROJECT_DIR$/SDL3-CS.Tests.Android/SDL3-CS.Tests.Android.csproj" />
|
||||
<option name="PROGRAM_PARAMETERS" value="" />
|
||||
<option name="TARGET_SELECTION_MODE" value="DEVICE_AND_SNAPSHOT_COMBO_BOX" />
|
||||
<option name="DEPLOY_BEHAVIOUR_NAME" value="Default" />
|
||||
<method v="2">
|
||||
<option name="Build" />
|
||||
</method>
|
||||
</configuration>
|
||||
</component>
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="SDL3-CS.Tests" type="DotNetProject" factoryName=".NET Project">
|
||||
<option name="EXE_PATH" value="$PROJECT_DIR$/SDL3-CS.Tests/bin/Debug/net8.0/SDL3-CS.Tests" />
|
||||
<configuration default="false" name="Desktop" type="DotNetProject" factoryName=".NET Project">
|
||||
<option name="EXE_PATH" value="$PROJECT_DIR$/SDL3-CS.Tests.Desktop/bin/Debug/net8.0/SDL3-CS.Tests.Desktop" />
|
||||
<option name="PROGRAM_PARAMETERS" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/SDL3-CS.Tests/bin/Debug/net8.0" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/SDL3-CS.Tests.Desktop/bin/Debug/net8.0" />
|
||||
<option name="PASS_PARENT_ENVS" value="1" />
|
||||
<option name="USE_EXTERNAL_CONSOLE" value="0" />
|
||||
<option name="USE_MONO" value="0" />
|
||||
<option name="RUNTIME_ARGUMENTS" value="" />
|
||||
<option name="PROJECT_PATH" value="$PROJECT_DIR$/SDL3-CS.Tests/SDL3-CS.Tests.csproj" />
|
||||
<option name="PROJECT_PATH" value="$PROJECT_DIR$/SDL3-CS.Tests.Desktop/SDL3-CS.Tests.Desktop.csproj" />
|
||||
<option name="PROJECT_EXE_PATH_TRACKING" value="1" />
|
||||
<option name="PROJECT_ARGUMENTS_TRACKING" value="1" />
|
||||
<option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" />
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="iOS" type="XamarinIOSProject" factoryName="Xamarin.iOS">
|
||||
<option name="PROJECT_PATH" value="$PROJECT_DIR$/SDL3-CS.Tests.iOS/SDL3-CS.Tests.iOS.csproj" />
|
||||
<option name="PROGRAM_PARAMETERS" value="" />
|
||||
<option name="IS_PASS_PARENT_ENVS" value="false" />
|
||||
<option name="EXTRA_MLAUNCH_PARAMETERS" value="" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
FROM ubuntu:24.04
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y dotnet-sdk-8.0 python3 git build-essential
|
||||
|
||||
WORKDIR /tmp
|
||||
COPY .config/dotnet-tools.json .config/dotnet-tools.json
|
||||
COPY SDL3-CS/SDL3-CS.csproj SDL3-CS/SDL3-CS.csproj
|
||||
|
||||
# .NET 8 installed using the distro package does not support the android workload.
|
||||
# Since the project is only used for reference purposes, we'll retarget it to a single framework.
|
||||
# See: https://github.com/dotnet/core/discussions/9258#discussioncomment-9548857
|
||||
RUN sed -i 's/<TargetFrameworks.*$/<TargetFramework>net8.0<\/TargetFramework>/' SDL3-CS/SDL3-CS.csproj
|
||||
|
||||
RUN dotnet tool restore && \
|
||||
dotnet restore --ucr SDL3-CS/SDL3-CS.csproj
|
||||
|
||||
WORKDIR /
|
||||
RUN echo '#!/bin/bash' >> entrypoint.sh && \
|
||||
echo 'export LD_LIBRARY_PATH="$(echo ~/.nuget/packages/libclang.runtime.*/*/runtimes/*/native):$(echo ~/.nuget/packages/libclangsharp.runtime.*/*/runtimes/*/native):${LD_LIBRARY_PATH:-}"' >> entrypoint.sh && \
|
||||
echo 'export CPLUS_INCLUDE_PATH="$(echo /usr/lib/gcc/*/*/include):/usr/include:${CPLUS_INCLUDE_PATH:-}"' >> entrypoint.sh && \
|
||||
echo 'python3 SDL3-CS/generate_bindings.py "$@"' >> entrypoint.sh && \
|
||||
chmod +x entrypoint.sh
|
||||
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
|
||||
</project>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="UserContentModel">
|
||||
<attachedFolders />
|
||||
<explicitIncludes />
|
||||
<explicitExcludes />
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectUserFactors">
|
||||
<factor id="completionFinishedType">
|
||||
<dailyData date="26-06-2023">
|
||||
<observation name="cancelled" value="31.0" />
|
||||
<observation name="explicitSelect" value="7.0" />
|
||||
</dailyData>
|
||||
</factor>
|
||||
<factor id="completionType">
|
||||
<dailyData date="26-06-2023">
|
||||
<observation name="BASIC" value="31.0" />
|
||||
</dailyData>
|
||||
</factor>
|
||||
<factor id="completionUsage">
|
||||
<dailyData date="26-06-2023">
|
||||
<observation name="count" value="38.0" />
|
||||
</dailyData>
|
||||
</factor>
|
||||
<factor id="itemPosition">
|
||||
<dailyData date="26-06-2023">
|
||||
<observation name="0" value="6.0" />
|
||||
<observation name="86" value="1.0" />
|
||||
</dailyData>
|
||||
</factor>
|
||||
<factor id="mnemonicsUsage">
|
||||
<dailyData date="26-06-2023">
|
||||
<observation name="total" value="7.0" />
|
||||
<observation name="withMnemonics" value="0.0" />
|
||||
</dailyData>
|
||||
</factor>
|
||||
<factor id="prefixLength">
|
||||
<dailyData date="26-06-2023">
|
||||
<observation name="21" value="1.0" />
|
||||
<observation name="24" value="1.0" />
|
||||
<observation name="26" value="1.0" />
|
||||
<observation name="28" value="1.0" />
|
||||
<observation name="29" value="2.0" />
|
||||
<observation name="32" value="1.0" />
|
||||
</dailyData>
|
||||
</factor>
|
||||
<factor id="prefixMatchingType">
|
||||
<dailyData date="26-06-2023">
|
||||
<observation name="GREEDY_WITH_CASE" value="4.0" />
|
||||
<observation name="WORDS_FIRST_CHAR" value="1.0" />
|
||||
</dailyData>
|
||||
</factor>
|
||||
<factor id="templatesUsage">
|
||||
<dailyData date="26-06-2023">
|
||||
<observation name="totalStartingWithPrefix" value="7.0" />
|
||||
</dailyData>
|
||||
</factor>
|
||||
<factor id="timeBetweenTyping">
|
||||
<dailyData date="26-06-2023">
|
||||
<observation name="average" value="115.76087" />
|
||||
<observation name="count" value="92.0" />
|
||||
</dailyData>
|
||||
</factor>
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RiderProjectSettingsUpdater">
|
||||
<option name="singleClickDiffPreview" value="1" />
|
||||
<option name="unhandledExceptionsIgnoreList" value="1" />
|
||||
<option name="vcsConfiguration" value="3" />
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 8e644111c2220e654f53de4ea0aa3afdfc7813c5
|
||||
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 13ec6e9be1d69d2a989ec1fc4f09e8743ef3932d
|
||||
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 7d6e46ad28cc33ad1e87a46df739a7cba47f57fa
|
||||
|
|
@ -0,0 +1 @@
|
|||
Subproject commit d929bc0d84bfaf3a71ec7f6be27aeb466380c1a0
|
||||
|
|
@ -0,0 +1,186 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
pushd "$(dirname "$0")"
|
||||
|
||||
# Check if environment variables are defined
|
||||
if [[ -z $NAME || -z $RUNNER_OS || -z $FLAGS || -z $BUILD_TYPE ]]; then
|
||||
echo "One or more required environment variables are not defined."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $RUNNER_OS == 'Windows' ]]; then
|
||||
SUDO=""
|
||||
else
|
||||
SUDO=$(which sudo || exit 0)
|
||||
fi
|
||||
|
||||
if [[ -n $ANDROID_ABI ]]; then
|
||||
BUILD_PLATFORM="Android"
|
||||
else
|
||||
BUILD_PLATFORM="$RUNNER_OS"
|
||||
fi
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
if [[ $BUILD_PLATFORM != 'Android' ]]; then
|
||||
NATIVE_PATH="$NAME"
|
||||
|
||||
if [[ $BUILD_PLATFORM == 'Linux' ]]; then
|
||||
# Setup Linux dependencies
|
||||
if [[ $TARGET_APT_ARCH == :i386 ]]; then
|
||||
$SUDO dpkg --add-architecture i386
|
||||
fi
|
||||
|
||||
$SUDO apt-get update -y -qq
|
||||
|
||||
if [[ $NAME != 'linux-x86' && $NAME != 'linux-x64' ]]; then
|
||||
GCC="gcc"
|
||||
GPP="g++"
|
||||
else
|
||||
GCC="gcc-multilib"
|
||||
GPP="g++-multilib"
|
||||
fi
|
||||
|
||||
$SUDO apt-get install -y \
|
||||
$GCC \
|
||||
$GPP \
|
||||
git \
|
||||
cmake \
|
||||
ninja-build \
|
||||
wayland-scanner++ \
|
||||
wayland-protocols \
|
||||
meson \
|
||||
pkg-config$TARGET_APT_ARCH \
|
||||
libasound2-dev$TARGET_APT_ARCH \
|
||||
libdbus-1-dev$TARGET_APT_ARCH \
|
||||
libegl1-mesa-dev$TARGET_APT_ARCH \
|
||||
libgl1-mesa-dev$TARGET_APT_ARCH \
|
||||
libgles2-mesa-dev$TARGET_APT_ARCH \
|
||||
libglu1-mesa-dev$TARGET_APT_ARCH \
|
||||
libgtk-3-dev$TARGET_APT_ARCH \
|
||||
libibus-1.0-dev$TARGET_APT_ARCH \
|
||||
libpango1.0-dev$TARGET_APT_ARCH \
|
||||
libpulse-dev$TARGET_APT_ARCH \
|
||||
libsndio-dev$TARGET_APT_ARCH \
|
||||
libudev-dev$TARGET_APT_ARCH \
|
||||
libwayland-dev$TARGET_APT_ARCH \
|
||||
libx11-dev$TARGET_APT_ARCH \
|
||||
libxcursor-dev$TARGET_APT_ARCH \
|
||||
libxext-dev$TARGET_APT_ARCH \
|
||||
libxi-dev$TARGET_APT_ARCH \
|
||||
libxinerama-dev$TARGET_APT_ARCH \
|
||||
libxkbcommon-dev$TARGET_APT_ARCH \
|
||||
libxrandr-dev$TARGET_APT_ARCH \
|
||||
libxss-dev$TARGET_APT_ARCH \
|
||||
libxt-dev$TARGET_APT_ARCH \
|
||||
libxv-dev$TARGET_APT_ARCH \
|
||||
libxxf86vm-dev$TARGET_APT_ARCH \
|
||||
libdrm-dev$TARGET_APT_ARCH \
|
||||
libgbm-dev$TARGET_APT_ARCH \
|
||||
libpulse-dev$TARGET_APT_ARCH \
|
||||
libpipewire-0.3-dev$TARGET_APT_ARCH \
|
||||
libdecor-0-dev$TARGET_APT_ARCH
|
||||
fi
|
||||
else
|
||||
if [[ -z $ANDROID_HOME || -z $NDK_VER || -z $ANDROID_ABI ]]; then
|
||||
echo "One or more required environment variables are not defined."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
NATIVE_PATH="android/$ANDROID_ABI"
|
||||
|
||||
export ANDROID_NDK_HOME="$ANDROID_HOME/ndk/$NDK_VER"
|
||||
export FLAGS="$FLAGS -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake \
|
||||
-DANDROID_HOME=$ANDROID_HOME \
|
||||
-DANDROID_PLATFORM=21 \
|
||||
-DANDROID_ABI=$ANDROID_ABI \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=BOTH \
|
||||
-DCMAKE_INSTALL_INCLUDEDIR=include \
|
||||
-DCMAKE_INSTALL_LIBDIR=lib \
|
||||
-DCMAKE_INSTALL_DATAROOTDIR=share \
|
||||
-DSDL_ANDROID_JAR=OFF"
|
||||
|
||||
$SUDO apt-get install -y \
|
||||
git \
|
||||
cmake \
|
||||
ninja-build \
|
||||
meson
|
||||
fi
|
||||
|
||||
if [[ $RUNNER_OS == 'Linux' ]]; then
|
||||
git config --global --add safe.directory $PWD/SDL
|
||||
git config --global --add safe.directory $PWD/SDL_image
|
||||
git config --global --add safe.directory $PWD/SDL_ttf
|
||||
git config --global --add safe.directory $PWD/SDL_mixer
|
||||
fi
|
||||
|
||||
CMAKE_INSTALL_PREFIX="$PWD/install_output"
|
||||
rm -rf $CMAKE_INSTALL_PREFIX
|
||||
|
||||
if [[ $BUILD_PLATFORM == 'Android' ]]; then
|
||||
OUTPUT_LIB="lib/libSDL3variant.so"
|
||||
elif [[ $BUILD_PLATFORM == 'Windows' ]]; then
|
||||
OUTPUT_LIB="bin/SDL3variant.dll"
|
||||
elif [[ $BUILD_PLATFORM == 'Linux' ]]; then
|
||||
OUTPUT_LIB="lib/libSDL3variant.so"
|
||||
elif [[ $BUILD_PLATFORM == 'macOS' ]]; then
|
||||
OUTPUT_LIB="lib/libSDL3variant.dylib"
|
||||
fi
|
||||
|
||||
# Use the correct CMAKE_PREFIX_PATH for SDL_image and SDL_ttf, probably due differences in Cmake versions.
|
||||
if [[ $BUILD_PLATFORM == 'Android' ]]; then
|
||||
CMAKE_PREFIX_PATH="$CMAKE_INSTALL_PREFIX"
|
||||
elif [[ $BUILD_PLATFORM == 'Windows' ]]; then
|
||||
CMAKE_PREFIX_PATH="$CMAKE_INSTALL_PREFIX/cmake/"
|
||||
elif [[ $BUILD_PLATFORM == 'Linux' ]]; then
|
||||
CMAKE_PREFIX_PATH="$CMAKE_INSTALL_PREFIX/lib/cmake/"
|
||||
elif [[ $BUILD_PLATFORM == 'macOS' ]]; then
|
||||
CMAKE_PREFIX_PATH="$CMAKE_INSTALL_PREFIX/lib/cmake/"
|
||||
fi
|
||||
|
||||
run_cmake() {
|
||||
LIB_NAME=$1
|
||||
LIB_OUTPUT=$2
|
||||
|
||||
pushd $LIB_NAME
|
||||
|
||||
git reset --hard HEAD || echo "Failed to clean up the repository"
|
||||
|
||||
if [[ $BUILD_PLATFORM == 'Windows' && $LIB_NAME == 'SDL' ]]; then
|
||||
echo "Patching SDL to not include gameinput.h"
|
||||
sed -i 's/#include <gameinput.h>/#_include <gameinput.h>/g' CMakeLists.txt
|
||||
fi
|
||||
|
||||
# Change the minumum Android API level for SDL_mixer to API 24 as opusfile and libflac fail to build on lower versions.
|
||||
if [[ $BUILD_PLATFORM == 'Android' && $LIB_NAME == 'SDL_mixer' ]]; then
|
||||
export FLAGS="${FLAGS/-DANDROID_PLATFORM=21/-DANDROID_PLATFORM=24}"
|
||||
fi
|
||||
|
||||
rm -rf build
|
||||
cmake -B build $FLAGS -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSDL_SHARED=ON -DSDL_STATIC=OFF "${@:3}"
|
||||
cmake --build build/ --config $BUILD_TYPE --verbose
|
||||
cmake --install build/ --prefix $CMAKE_INSTALL_PREFIX --config $BUILD_TYPE
|
||||
|
||||
# Move build lib into correct folders
|
||||
cp $CMAKE_INSTALL_PREFIX/$LIB_OUTPUT ../../native/$NATIVE_PATH
|
||||
|
||||
popd
|
||||
}
|
||||
|
||||
run_cmake SDL ${OUTPUT_LIB/variant/}
|
||||
|
||||
run_cmake SDL_ttf ${OUTPUT_LIB/variant/_ttf} -DCMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DSDLTTF_VENDORED=ON
|
||||
|
||||
# -DSDLIMAGE_AVIF=OFF is used because windows requires special setup to build avif support (nasm)
|
||||
# TODO: Add support for avif on windows (VisualC script uses dynamic imports)
|
||||
run_cmake SDL_image ${OUTPUT_LIB/variant/_image} -DCMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH -DSDLIMAGE_AVIF=OFF -DSDLIMAGE_DEPS_SHARED=OFF -DSDLIMAGE_VENDORED=ON
|
||||
|
||||
# -DSDLMIXER_MP3_MPG123=OFF is used because upstream build is broken. Fallback to dr_mp3.
|
||||
# See: https://github.com/libsdl-org/SDL_mixer/pull/744#issuecomment-3180682130
|
||||
# Fixing using the proposed solution causes more issues.
|
||||
run_cmake SDL_mixer ${OUTPUT_LIB/variant/_mixer} -DCMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH -DSDLMIXER_MP3_MPG123=OFF -DSDLMIXER_DEPS_SHARED=OFF -DSDLMIXER_VENDORED=ON
|
||||
|
||||
popd
|
||||
33
README.md
33
README.md
|
|
@ -1 +1,34 @@
|
|||
# SDL3-CS
|
||||
|
||||
C# bindings for the [SDL3](https://github.com/libsdl-org/SDL) family of libraries.
|
||||
|
||||
| Product | Usage | Package |
|
||||
|------------------------------------------------------------------|----------------------------------------|----------------------------------------------------------------------------------------------------------------------------|
|
||||
| [`SDL`](https://github.com/libsdl-org/SDL/tree/main) | `dotnet add package ppy.SDL3-CS` | [](https://www.nuget.org/packages/ppy.SDL3-CS) |
|
||||
| [`SDL_image`](https://github.com/libsdl-org/SDL_image/tree/main) | `dotnet add package ppy.SDL3_image-CS` | [](https://www.nuget.org/packages/ppy.SDL3_image-CS) |
|
||||
| [`SDL_ttf`](https://github.com/libsdl-org/SDL_ttf/tree/main) | `dotnet add package ppy.SDL3_ttf-CS` | [](https://www.nuget.org/packages/ppy.SDL3_ttf-CS) |
|
||||
| [`SDL_mixer`](https://github.com/libsdl-org/SDL_mixer/tree/main) | `dotnet add package ppy.SDL3_mixer-CS` | [](https://www.nuget.org/packages/ppy.SDL3_mixer-CS) |
|
||||
|
||||
Contributions to keep the bindings up-to-date with upstream changes are welcome. If you have improvements or updates, feel free to submit a pull request.
|
||||
|
||||
## Platform support
|
||||
|
||||
| Product | `win-x64` | `win-x86` | `win-arm64` | `osx-arm64` | `osx-x64` | `linux-x64` | `linux-x86` | `linux-arm64` | `linux-arm` | `ios` | `android` |
|
||||
|-----------------|-----------|-----------|-------------|-------------|-----------|-------------|-------------|---------------|-------------|---------|-----------|
|
||||
| `SDL3-CS` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| `SDL3_image-CS` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| `SDL3_ttf-CS` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| `SDL3_mixer-CS` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | API 24+ |
|
||||
|
||||
## Generating bindings
|
||||
|
||||
Bindings are generated via the provided Dockerfile:
|
||||
|
||||
```sh
|
||||
docker build -t 'sdl-gen' .
|
||||
docker run --rm -v .:/app -w /app -it sdl-gen
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
This code is released under [MIT](LICENCE).
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
C# bindings for the [SDL3](https://github.com/libsdl-org/SDL) family of libraries.
|
||||
|
||||
| Product | Usage | Package |
|
||||
|------------------------------------------------------------------|----------------------------------------|----------------------------------------------------------------------------------------------------------------------------|
|
||||
| [`SDL`](https://github.com/libsdl-org/SDL/tree/main) | `dotnet add package ppy.SDL3-CS` | [](https://www.nuget.org/packages/ppy.SDL3-CS) |
|
||||
| [`SDL_image`](https://github.com/libsdl-org/SDL_image/tree/main) | `dotnet add package ppy.SDL3_image-CS` | [](https://www.nuget.org/packages/ppy.SDL3_image-CS) |
|
||||
| [`SDL_ttf`](https://github.com/libsdl-org/SDL_ttf/tree/main) | `dotnet add package ppy.SDL3_ttf-CS` | [](https://www.nuget.org/packages/ppy.SDL3_ttf-CS) |
|
||||
| [`SDL_mixer`](https://github.com/libsdl-org/SDL_mixer/tree/main) | `dotnet add package ppy.SDL3_mixer-CS` | [](https://www.nuget.org/packages/ppy.SDL3_mixer-CS) |
|
||||
|
||||
Contributions to keep the bindings up-to-date with upstream changes are welcome. If you have improvements or updates, feel free to submit a pull request.
|
||||
|
||||
## Platform support
|
||||
|
||||
| Product | `win-x64` | `win-x86` | `win-arm64` | `osx-arm64` | `osx-x64` | `linux-x64` | `linux-x86` | `linux-arm64` | `linux-arm` | `ios` | `android` |
|
||||
|-----------------|-----------|-----------|-------------|-------------|-----------|-------------|-------------|---------------|-------------|---------|-----------|
|
||||
| `SDL3-CS` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| `SDL3_image-CS` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| `SDL3_ttf-CS` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| `SDL3_mixer-CS` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | API 24+ |
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"solution": {
|
||||
"path": "SDL3-CS.sln",
|
||||
"projects": [
|
||||
"SDL3-CS.SourceGeneration\\SDL3-CS.SourceGeneration.csproj",
|
||||
"SDL3-CS.Tests.Android\\SDL3-CS.Tests.Android.csproj",
|
||||
"SDL3-CS.Tests\\SDL3-CS.Tests.csproj",
|
||||
"SDL3-CS\\SDL3-CS.csproj",
|
||||
"SDL3_image-CS\\SDL3_image-CS.csproj",
|
||||
"SDL3_mixer-CS\\SDL3_mixer-CS.csproj",
|
||||
"SDL3_ttf-CS\\SDL3_ttf-CS.csproj"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"solution": {
|
||||
"path": "SDL3-CS.sln",
|
||||
"projects": [
|
||||
"SDL3-CS.SourceGeneration\\SDL3-CS.SourceGeneration.csproj",
|
||||
"SDL3-CS.Tests.Desktop\\SDL3-CS.Tests.Desktop.csproj",
|
||||
"SDL3-CS.Tests\\SDL3-CS.Tests.csproj",
|
||||
"SDL3-CS\\SDL3-CS.csproj",
|
||||
"SDL3_image-CS\\SDL3_image-CS.csproj",
|
||||
"SDL3_mixer-CS\\SDL3_mixer-CS.csproj",
|
||||
"SDL3_ttf-CS\\SDL3_ttf-CS.csproj"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
using System;
|
||||
|
||||
namespace SDL3.SourceGeneration
|
||||
namespace SDL.SourceGeneration
|
||||
{
|
||||
[Flags]
|
||||
public enum Changes
|
||||
|
|
@ -11,9 +11,9 @@ namespace SDL3.SourceGeneration
|
|||
None,
|
||||
|
||||
/// <summary>
|
||||
/// Change <c>const char*</c> function parameters to <c>ReadOnlySpan<byte></c>.
|
||||
/// Change <c>const char*</c> function parameters to <see cref="Helper.Utf8StringStructName"/>.
|
||||
/// </summary>
|
||||
ChangeParamsToReadOnlySpan = 1 << 0,
|
||||
ChangeParamsToUtf8String = 1 << 0,
|
||||
|
||||
/// <summary>
|
||||
/// Change <c>char *</c> or <c>const char *</c> return type to <see cref="string"/>.
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ using Microsoft.CodeAnalysis;
|
|||
using Microsoft.CodeAnalysis.CSharp;
|
||||
using Microsoft.CodeAnalysis.CSharp.Syntax;
|
||||
|
||||
namespace SDL3.SourceGeneration
|
||||
namespace SDL.SourceGeneration
|
||||
{
|
||||
[Generator]
|
||||
public class FriendlyOverloadGenerator : ISourceGenerator
|
||||
|
|
@ -32,9 +32,14 @@ using System;
|
|||
|
||||
foreach (var kvp in finder.Methods)
|
||||
{
|
||||
if (kvp.Value.Count == 0)
|
||||
return;
|
||||
|
||||
string filename = kvp.Key;
|
||||
var foundMethods = kvp.Value;
|
||||
|
||||
string className = ClassNameFromMethod(foundMethods.First().NativeMethod);
|
||||
|
||||
var result = new StringBuilder();
|
||||
result.Append(file_header);
|
||||
result.Append(
|
||||
|
|
@ -42,7 +47,7 @@ using System;
|
|||
SyntaxFactory.IdentifierName("SDL"))
|
||||
.WithMembers(
|
||||
SyntaxFactory.SingletonList<MemberDeclarationSyntax>(
|
||||
SyntaxFactory.ClassDeclaration("SDL3")
|
||||
SyntaxFactory.ClassDeclaration(className)
|
||||
.WithModifiers(
|
||||
SyntaxFactory.TokenList(
|
||||
SyntaxFactory.Token(SyntaxKind.UnsafeKeyword),
|
||||
|
|
@ -54,6 +59,16 @@ using System;
|
|||
}
|
||||
}
|
||||
|
||||
private static string ClassNameFromMethod(MethodDeclarationSyntax methodNode)
|
||||
{
|
||||
if (methodNode.Parent is ClassDeclarationSyntax classDeclaration)
|
||||
{
|
||||
return classDeclaration.Identifier.Text;
|
||||
}
|
||||
|
||||
return "SDL3"; // fallback!
|
||||
}
|
||||
|
||||
private static MemberDeclarationSyntax makeFriendlyMethod(GeneratedMethod gm)
|
||||
{
|
||||
var returnType = gm.RequiredChanges.HasFlag(Changes.ChangeReturnTypeToString)
|
||||
|
|
@ -83,8 +98,8 @@ using System;
|
|||
{
|
||||
if (param.IsTypeConstCharPtr())
|
||||
{
|
||||
Debug.Assert(gm.RequiredChanges.HasFlag(Changes.ChangeParamsToReadOnlySpan));
|
||||
yield return param.WithType(SyntaxFactory.ParseTypeName("ReadOnlySpan<byte>"))
|
||||
Debug.Assert(gm.RequiredChanges.HasFlag(Changes.ChangeParamsToUtf8String));
|
||||
yield return param.WithType(SyntaxFactory.ParseTypeName(Helper.Utf8StringStructName))
|
||||
.WithAttributeLists(SyntaxFactory.List<AttributeListSyntax>());
|
||||
}
|
||||
else
|
||||
|
|
@ -102,7 +117,7 @@ using System;
|
|||
|
||||
foreach (var param in gm.NativeMethod.ParameterList.Parameters.Where(p => p.IsTypeConstCharPtr()).Reverse())
|
||||
{
|
||||
Debug.Assert(gm.RequiredChanges.HasFlag(Changes.ChangeParamsToReadOnlySpan));
|
||||
Debug.Assert(gm.RequiredChanges.HasFlag(Changes.ChangeParamsToUtf8String));
|
||||
|
||||
expr = SyntaxFactory.FixedStatement(
|
||||
SyntaxFactory.VariableDeclaration(
|
||||
|
|
@ -126,7 +141,10 @@ using System;
|
|||
if (gm.RequiredChanges.HasFlag(Changes.ChangeReturnTypeToString))
|
||||
{
|
||||
expr = SyntaxFactory.InvocationExpression(
|
||||
SyntaxFactory.IdentifierName("PtrToStringUTF8"))
|
||||
SyntaxFactory.MemberAccessExpression(
|
||||
SyntaxKind.SimpleMemberAccessExpression,
|
||||
SyntaxFactory.IdentifierName("SDL3"),
|
||||
SyntaxFactory.IdentifierName("PtrToStringUTF8")))
|
||||
.WithArguments(new[]
|
||||
{
|
||||
SyntaxFactory.Argument(makeFunctionCall(gm)),
|
||||
|
|
@ -161,7 +179,7 @@ using System;
|
|||
{
|
||||
if (param.IsTypeConstCharPtr())
|
||||
{
|
||||
Debug.Assert(gm.RequiredChanges.HasFlag(Changes.ChangeParamsToReadOnlySpan));
|
||||
Debug.Assert(gm.RequiredChanges.HasFlag(Changes.ChangeParamsToUtf8String));
|
||||
yield return SyntaxFactory.Argument(SyntaxFactory.IdentifierName(param.Identifier.ValueText + pointer_suffix));
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
using Microsoft.CodeAnalysis.CSharp.Syntax;
|
||||
|
||||
namespace SDL3.SourceGeneration
|
||||
namespace SDL.SourceGeneration
|
||||
{
|
||||
public record GeneratedMethod
|
||||
{
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ using Microsoft.CodeAnalysis;
|
|||
using Microsoft.CodeAnalysis.CSharp;
|
||||
using Microsoft.CodeAnalysis.CSharp.Syntax;
|
||||
|
||||
namespace SDL3.SourceGeneration
|
||||
namespace SDL.SourceGeneration
|
||||
{
|
||||
public static class Helper
|
||||
{
|
||||
|
|
@ -16,6 +16,8 @@ namespace SDL3.SourceGeneration
|
|||
/// </remarks>
|
||||
public const string UnsafePrefix = "Unsafe_";
|
||||
|
||||
public const string Utf8StringStructName = "Utf8String";
|
||||
|
||||
public static bool IsVoid(this TypeSyntax type) => type is PredefinedTypeSyntax predefined
|
||||
&& predefined.Keyword.IsKind(SyntaxKind.VoidKeyword);
|
||||
|
||||
|
|
|
|||
|
|
@ -9,8 +9,7 @@
|
|||
<EnforceExtendedAnalyzerRules>true</EnforceExtendedAnalyzerRules>
|
||||
<IsRoslynComponent>true</IsRoslynComponent>
|
||||
|
||||
<RootNamespace>SDL3.SourceGeneration</RootNamespace>
|
||||
<PackageId>SDL3.SourceGeneration</PackageId>
|
||||
<RootNamespace>SDL.SourceGeneration</RootNamespace>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
|||
|
|
@ -9,20 +9,37 @@ using Microsoft.CodeAnalysis;
|
|||
using Microsoft.CodeAnalysis.CSharp;
|
||||
using Microsoft.CodeAnalysis.CSharp.Syntax;
|
||||
|
||||
namespace SDL3.SourceGeneration
|
||||
namespace SDL.SourceGeneration
|
||||
{
|
||||
public class UnfriendlyMethodFinder : ISyntaxReceiver
|
||||
{
|
||||
public readonly Dictionary<string, List<GeneratedMethod>> Methods = new Dictionary<string, List<GeneratedMethod>>();
|
||||
|
||||
private static readonly string[] sdlPrefixes = ["SDL_", "TTF_", "IMG_", "MIX_"];
|
||||
|
||||
/// <summary>
|
||||
/// Checks whether the method is from any SDL library.
|
||||
/// It identifies those by checking the SDL prefix in the method name.
|
||||
/// </summary>
|
||||
private static bool IsMethodFromSDL(MethodDeclarationSyntax methodNode)
|
||||
{
|
||||
foreach (string prefix in sdlPrefixes)
|
||||
{
|
||||
if (methodNode.Identifier.ValueText.StartsWith(prefix, StringComparison.Ordinal))
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public void OnVisitSyntaxNode(SyntaxNode syntaxNode)
|
||||
{
|
||||
if (syntaxNode is MethodDeclarationSyntax method)
|
||||
{
|
||||
string name = method.Identifier.ValueText;
|
||||
bool isUnsafe = name.StartsWith($"{Helper.UnsafePrefix}SDL_", StringComparison.Ordinal);
|
||||
bool isUnsafe = name.StartsWith(Helper.UnsafePrefix, StringComparison.Ordinal);
|
||||
|
||||
if (!name.StartsWith("SDL_", StringComparison.Ordinal) && !isUnsafe)
|
||||
if (!IsMethodFromSDL(method) && !isUnsafe)
|
||||
return;
|
||||
|
||||
if (method.ParameterList.Parameters.Any(p => p.Identifier.IsKind(SyntaxKind.ArgListKeyword)))
|
||||
|
|
@ -42,7 +59,7 @@ namespace SDL3.SourceGeneration
|
|||
foreach (var parameter in method.ParameterList.Parameters)
|
||||
{
|
||||
if (parameter.IsTypeConstCharPtr())
|
||||
changes |= Changes.ChangeParamsToReadOnlySpan;
|
||||
changes |= Changes.ChangeParamsToUtf8String;
|
||||
}
|
||||
|
||||
if (changes != Changes.None)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<application android:allowBackup="true" android:supportsRtl="true">
|
||||
</application>
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
</manifest>
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
using Org.Libsdl.App;
|
||||
|
||||
namespace SDL.Tests.Android
|
||||
{
|
||||
[Activity(Label = "SDL3-CS Android Tests", MainLauncher = true)]
|
||||
public class MainActivity : SDLActivity
|
||||
{
|
||||
protected override string[] GetLibraries() => ["SDL3", "SDL3_image", "SDL3_ttf", "SDL3_mixer"];
|
||||
|
||||
protected override void Main() => Program.Main();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0-android</TargetFramework>
|
||||
<SupportedOSPlatformVersion>21</SupportedOSPlatformVersion>
|
||||
<RootNamespace>SDL.Tests.Android</RootNamespace>
|
||||
<OutputType>Exe</OutputType>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<ApplicationId>SDL.Tests.Android</ApplicationId>
|
||||
<EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Label="NuGet">
|
||||
<IsPackable>false</IsPackable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\SDL3-CS.Tests\SDL3-CS.Tests.csproj"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<AndroidNativeLibrary Include="$(MSBuildThisFileDirectory)..\native\android\armeabi-v7a\*.so">
|
||||
<Abi>armeabi-v7a</Abi>
|
||||
</AndroidNativeLibrary>
|
||||
<AndroidNativeLibrary Include="$(MSBuildThisFileDirectory)..\native\android\arm64-v8a\*.so">
|
||||
<Abi>arm64-v8a</Abi>
|
||||
</AndroidNativeLibrary>
|
||||
<AndroidNativeLibrary Include="$(MSBuildThisFileDirectory)..\native\android\x86\*.so">
|
||||
<Abi>x86</Abi>
|
||||
</AndroidNativeLibrary>
|
||||
<AndroidNativeLibrary Include="$(MSBuildThisFileDirectory)..\native\android\x86_64\*.so">
|
||||
<Abi>x86_64</Abi>
|
||||
</AndroidNativeLibrary>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
internal class Program
|
||||
{
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
SDL.Tests.Program.Main();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RootNamespace>SDL.Tests.Desktop</RootNamespace>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Label="NuGet">
|
||||
<IsPackable>false</IsPackable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\SDL3-CS.Tests\SDL3-CS.Tests.csproj"/>
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<SDLArch Condition="'$(RuntimeIdentifier)' == ''">$(NETCoreSdkRuntimeIdentifier)</SDLArch>
|
||||
<SDLArch Condition="'$(RuntimeIdentifier)' != ''">$(RuntimeIdentifier)</SDLArch>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Content Include="$(MSBuildThisFileDirectory)..\native\$(SDLArch)\*">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>SDL.Tests.iOS</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>SDL.Tests.iOS</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UIDeviceFamily</key>
|
||||
<array>
|
||||
<integer>1</integer>
|
||||
<integer>2</integer>
|
||||
</array>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>armv7</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using SDL;
|
||||
|
||||
public class Program
|
||||
{
|
||||
public static unsafe void Main(string[] args)
|
||||
{
|
||||
NativeLibrary.SetDllImportResolver(typeof(SDL3).Assembly, (_, assembly, path) => NativeLibrary.Load("@rpath/SDL3.framework/SDL3", assembly, path));
|
||||
NativeLibrary.SetDllImportResolver(typeof(SDL3_image).Assembly, (_, assembly, path) => NativeLibrary.Load("@rpath/SDL3_image.framework/SDL3_image", assembly, path));
|
||||
NativeLibrary.SetDllImportResolver(typeof(SDL3_ttf).Assembly, (_, assembly, path) => NativeLibrary.Load("@rpath/SDL3_ttf.framework/SDL3_ttf", assembly, path));
|
||||
NativeLibrary.SetDllImportResolver(typeof(SDL3_mixer).Assembly, (_, assembly, path) => NativeLibrary.Load("@rpath/SDL3_mixer.framework/SDL3_mixer", assembly, path));
|
||||
|
||||
SDL3.SDL_RunApp(0, null, &main, IntPtr.Zero);
|
||||
}
|
||||
|
||||
[UnmanagedCallersOnly(CallConvs = new[] { typeof(CallConvCdecl) })]
|
||||
private static unsafe int main(int argc, byte** argv)
|
||||
{
|
||||
SDL.Tests.Program.Main();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0-ios</TargetFramework>
|
||||
<RootNamespace>SDL.Tests.iOS</RootNamespace>
|
||||
<OutputType>Exe</OutputType>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>true</ImplicitUsings>
|
||||
<SupportedOSPlatformVersion>13.0</SupportedOSPlatformVersion>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<CodesignKey>iPhone Developer</CodesignKey>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Label="NuGet">
|
||||
<IsPackable>false</IsPackable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\SDL3-CS.Tests\SDL3-CS.Tests.csproj" PrivateAssets="all"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<NativeReference Include="$(MSBuildThisFileDirectory)..\native\ios\SDL3.xcframework"/>
|
||||
<NativeReference Include="$(MSBuildThisFileDirectory)..\native\ios\SDL3_image.xcframework"/>
|
||||
<NativeReference Include="$(MSBuildThisFileDirectory)..\native\ios\SDL3_ttf.xcframework"/>
|
||||
<NativeReference Include="$(MSBuildThisFileDirectory)..\native\ios\SDL3_mixer.xcframework"/>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,103 @@
|
|||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace SDL.Tests
|
||||
{
|
||||
/// <summary>
|
||||
/// Base class for tests that use SDL3 main callbacks.
|
||||
/// See https://wiki.libsdl.org/SDL3/README/main-functions#how-to-use-main-callbacks-in-sdl3.
|
||||
/// </summary>
|
||||
[TestFixture]
|
||||
[Apartment(ApartmentState.STA)]
|
||||
public abstract unsafe class MainCallbacksTest
|
||||
{
|
||||
[Test]
|
||||
public void TestEnterMainCallbacks()
|
||||
{
|
||||
var objectHandle = new ObjectHandle<MainCallbacksTest>(this, GCHandleType.Normal);
|
||||
SDL3.SDL_EnterAppMainCallbacks(0, (byte**)objectHandle.Handle, &AppInit, &AppIterate, &AppEvent, &AppQuit);
|
||||
}
|
||||
|
||||
protected virtual SDL_AppResult Init()
|
||||
{
|
||||
SDL3.SDL_SetLogPriorities(SDL_LogPriority.SDL_LOG_PRIORITY_VERBOSE);
|
||||
SDL3.SDL_SetLogOutputFunction(&LogOutput, IntPtr.Zero);
|
||||
return SDL_AppResult.SDL_APP_CONTINUE;
|
||||
}
|
||||
|
||||
protected virtual SDL_AppResult Iterate()
|
||||
{
|
||||
Thread.Sleep(10);
|
||||
return SDL_AppResult.SDL_APP_CONTINUE;
|
||||
}
|
||||
|
||||
protected virtual SDL_AppResult Event(SDL_Event e)
|
||||
{
|
||||
switch (e.Type)
|
||||
{
|
||||
case SDL_EventType.SDL_EVENT_QUIT:
|
||||
case SDL_EventType.SDL_EVENT_WINDOW_CLOSE_REQUESTED:
|
||||
case SDL_EventType.SDL_EVENT_TERMINATING:
|
||||
case SDL_EventType.SDL_EVENT_KEY_DOWN when e.key.key == SDL_Keycode.SDLK_ESCAPE:
|
||||
return SDL_AppResult.SDL_APP_SUCCESS;
|
||||
}
|
||||
|
||||
return SDL_AppResult.SDL_APP_CONTINUE;
|
||||
}
|
||||
|
||||
protected virtual void Quit(SDL_AppResult result)
|
||||
{
|
||||
}
|
||||
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvCdecl)])]
|
||||
private static void LogOutput(IntPtr userdata, int category, SDL_LogPriority priority, byte* message)
|
||||
{
|
||||
Console.WriteLine(SDL3.PtrToStringUTF8(message));
|
||||
}
|
||||
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvCdecl)])]
|
||||
private static SDL_AppResult AppInit(IntPtr* appState, int argc, byte** argv)
|
||||
{
|
||||
IntPtr handle = (IntPtr)argv;
|
||||
*appState = handle;
|
||||
|
||||
var objectHandle = new ObjectHandle<MainCallbacksTest>(handle, true);
|
||||
if (objectHandle.GetTarget(out var target))
|
||||
return target.Init();
|
||||
|
||||
return SDL_AppResult.SDL_APP_FAILURE;
|
||||
}
|
||||
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvCdecl)])]
|
||||
private static SDL_AppResult AppIterate(IntPtr appState)
|
||||
{
|
||||
var objectHandle = new ObjectHandle<MainCallbacksTest>(appState, true);
|
||||
if (objectHandle.GetTarget(out var target))
|
||||
return target.Iterate();
|
||||
|
||||
return SDL_AppResult.SDL_APP_FAILURE;
|
||||
}
|
||||
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvCdecl)])]
|
||||
private static SDL_AppResult AppEvent(IntPtr appState, SDL_Event* e)
|
||||
{
|
||||
var objectHandle = new ObjectHandle<MainCallbacksTest>(appState, true);
|
||||
if (objectHandle.GetTarget(out var target))
|
||||
return target.Event(*e);
|
||||
|
||||
return SDL_AppResult.SDL_APP_FAILURE;
|
||||
}
|
||||
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvCdecl)])]
|
||||
private static void AppQuit(IntPtr appState, SDL_AppResult result)
|
||||
{
|
||||
using var objectHandle = new ObjectHandle<MainCallbacksTest>(appState, true);
|
||||
if (objectHandle.GetTarget(out var target))
|
||||
target.Quit(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3,10 +3,9 @@
|
|||
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using SDL;
|
||||
using static SDL.SDL3;
|
||||
|
||||
namespace SDL3.Tests
|
||||
namespace SDL.Tests
|
||||
{
|
||||
public sealed unsafe class MyWindow : IDisposable
|
||||
{
|
||||
|
|
@ -20,7 +19,7 @@ namespace SDL3.Tests
|
|||
|
||||
public MyWindow()
|
||||
{
|
||||
if (SDL_InitSubSystem(init_flags) < 0)
|
||||
if (!SDL_InitSubSystem(init_flags))
|
||||
throw new InvalidOperationException($"failed to initialise SDL. Error: {SDL_GetError()}");
|
||||
|
||||
initSuccess = true;
|
||||
|
|
@ -30,7 +29,7 @@ namespace SDL3.Tests
|
|||
|
||||
public void Setup()
|
||||
{
|
||||
SDL_SetGamepadEventsEnabled(SDL_bool.SDL_TRUE);
|
||||
SDL_SetGamepadEventsEnabled(true);
|
||||
SDL_SetEventFilter(&nativeFilter, objectHandle.Handle);
|
||||
|
||||
if (OperatingSystem.IsWindows())
|
||||
|
|
@ -38,7 +37,7 @@ namespace SDL3.Tests
|
|||
}
|
||||
|
||||
[UnmanagedCallersOnly(CallConvs = new[] { typeof(CallConvCdecl) })]
|
||||
private static SDL_bool wndProc(IntPtr userdata, MSG* message)
|
||||
private static SDLBool wndProc(IntPtr userdata, MSG* message)
|
||||
{
|
||||
var handle = new ObjectHandle<MyWindow>(userdata);
|
||||
|
||||
|
|
@ -47,25 +46,25 @@ namespace SDL3.Tests
|
|||
Console.WriteLine($"from {window}, message: {message->message}");
|
||||
}
|
||||
|
||||
return SDL_TRUE; // sample use of definition from SDL3 class, not SDL_bool enum
|
||||
return true;
|
||||
}
|
||||
|
||||
// ReSharper disable once UseCollectionExpression
|
||||
[UnmanagedCallersOnly(CallConvs = new[] { typeof(CallConvCdecl) })]
|
||||
private static int nativeFilter(IntPtr userdata, SDL_Event* e)
|
||||
private static SDLBool nativeFilter(IntPtr userdata, SDL_Event* e)
|
||||
{
|
||||
var handle = new ObjectHandle<MyWindow>(userdata);
|
||||
if (handle.GetTarget(out var window))
|
||||
return window.handleEventFromFilter(e);
|
||||
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
public Action<SDL_Event>? EventFilter;
|
||||
|
||||
private int handleEventFromFilter(SDL_Event* e)
|
||||
private bool handleEventFromFilter(SDL_Event* e)
|
||||
{
|
||||
switch (e->type)
|
||||
switch (e->Type)
|
||||
{
|
||||
case SDL_EventType.SDL_EVENT_KEY_UP:
|
||||
case SDL_EventType.SDL_EVENT_KEY_DOWN:
|
||||
|
|
@ -77,12 +76,12 @@ namespace SDL3.Tests
|
|||
break;
|
||||
}
|
||||
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
private void handleKeyFromFilter(SDL_KeyboardEvent e)
|
||||
{
|
||||
if (e.keysym.sym == SDL_Keycode.SDLK_f)
|
||||
if (e.key == SDL_Keycode.SDLK_F)
|
||||
{
|
||||
flash = true;
|
||||
}
|
||||
|
|
@ -91,39 +90,39 @@ namespace SDL3.Tests
|
|||
public void Create()
|
||||
{
|
||||
sdlWindowHandle = SDL_CreateWindow("hello"u8, 800, 600, SDL_WindowFlags.SDL_WINDOW_RESIZABLE | SDL_WindowFlags.SDL_WINDOW_HIGH_PIXEL_DENSITY);
|
||||
renderer = SDL_CreateRenderer(sdlWindowHandle, (byte*)null, SDL_RendererFlags.SDL_RENDERER_PRESENTVSYNC);
|
||||
renderer = SDL_CreateRenderer(sdlWindowHandle, (Utf8String)null);
|
||||
}
|
||||
|
||||
private void handleEvent(SDL_Event e)
|
||||
{
|
||||
switch (e.type)
|
||||
switch (e.Type)
|
||||
{
|
||||
case SDL_EventType.SDL_EVENT_QUIT:
|
||||
run = false;
|
||||
break;
|
||||
|
||||
case SDL_EventType.SDL_EVENT_KEY_DOWN:
|
||||
switch (e.key.keysym.sym)
|
||||
switch (e.key.key)
|
||||
{
|
||||
case SDL_Keycode.SDLK_r:
|
||||
bool old = SDL_GetRelativeMouseMode() == SDL_bool.SDL_TRUE;
|
||||
SDL_SetRelativeMouseMode(old ? SDL_bool.SDL_FALSE : SDL_bool.SDL_TRUE);
|
||||
case SDL_Keycode.SDLK_R:
|
||||
bool old = SDL_GetWindowRelativeMouseMode(sdlWindowHandle);
|
||||
SDL_SetWindowRelativeMouseMode(sdlWindowHandle, !old);
|
||||
break;
|
||||
|
||||
case SDL_Keycode.SDLK_v:
|
||||
case SDL_Keycode.SDLK_V:
|
||||
string? text = SDL_GetClipboardText();
|
||||
Console.WriteLine($"clipboard: {text}");
|
||||
break;
|
||||
|
||||
case SDL_Keycode.SDLK_F10:
|
||||
SDL_SetWindowFullscreen(sdlWindowHandle, SDL_bool.SDL_FALSE);
|
||||
SDL_SetWindowFullscreen(sdlWindowHandle, false);
|
||||
break;
|
||||
|
||||
case SDL_Keycode.SDLK_F11:
|
||||
SDL_SetWindowFullscreen(sdlWindowHandle, SDL_bool.SDL_TRUE);
|
||||
SDL_SetWindowFullscreen(sdlWindowHandle, true);
|
||||
break;
|
||||
|
||||
case SDL_Keycode.SDLK_j:
|
||||
case SDL_Keycode.SDLK_J:
|
||||
{
|
||||
using var gamepads = SDL_GetGamepads();
|
||||
|
||||
|
|
@ -148,17 +147,21 @@ namespace SDL3.Tests
|
|||
}
|
||||
|
||||
case SDL_Keycode.SDLK_F1:
|
||||
SDL_StartTextInput();
|
||||
SDL_StartTextInput(sdlWindowHandle);
|
||||
break;
|
||||
|
||||
case SDL_Keycode.SDLK_F2:
|
||||
SDL_StopTextInput();
|
||||
SDL_StopTextInput(sdlWindowHandle);
|
||||
break;
|
||||
|
||||
case SDL_Keycode.SDLK_m:
|
||||
SDL_Keymod mod = e.key.keysym.Mod;
|
||||
case SDL_Keycode.SDLK_M:
|
||||
SDL_Keymod mod = e.key.mod;
|
||||
Console.WriteLine(mod);
|
||||
break;
|
||||
|
||||
case SDL_Keycode.SDLK_E:
|
||||
Console.WriteLine(SDL_GetEventDescription(e));
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
|
@ -171,14 +174,8 @@ namespace SDL3.Tests
|
|||
Console.WriteLine($"gamepad added: {e.gdevice.which}");
|
||||
break;
|
||||
|
||||
case SDL_EventType.SDL_EVENT_WINDOW_PEN_ENTER:
|
||||
SDL_PenCapabilityInfo info;
|
||||
var cap = (SDL_PEN_CAPABILITIES)SDL_GetPenCapabilities((SDL_PenID)e.window.data1, &info);
|
||||
|
||||
if (cap.HasFlag(SDL_PEN_CAPABILITIES.SDL_PEN_AXIS_XTILT_MASK))
|
||||
Console.WriteLine("has pen xtilt axis");
|
||||
|
||||
Console.WriteLine(info.max_tilt);
|
||||
case SDL_EventType.SDL_EVENT_PEN_PROXIMITY_IN:
|
||||
Console.WriteLine($"pen proximity in: {e.pproximity.which}");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -196,9 +193,7 @@ namespace SDL3.Tests
|
|||
|
||||
do
|
||||
{
|
||||
fixed (SDL_Event* buf = events)
|
||||
eventsRead = SDL_PeepEvents(buf, events_per_peep, SDL_eventaction.SDL_GETEVENT, SDL_EventType.SDL_EVENT_FIRST, SDL_EventType.SDL_EVENT_LAST);
|
||||
|
||||
eventsRead = SDL_PeepEvents(events, SDL_EventAction.SDL_GETEVENT, SDL_EventType.SDL_EVENT_FIRST, SDL_EventType.SDL_EVENT_LAST);
|
||||
for (int i = 0; i < eventsRead; i++)
|
||||
handleEvent(events[i]);
|
||||
} while (eventsRead == events_per_peep);
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace SDL3.Tests
|
||||
namespace SDL.Tests
|
||||
{
|
||||
/// <summary>
|
||||
/// Wrapper on <see cref="GCHandle" /> that supports the <see cref="IDisposable" /> pattern.
|
||||
|
|
@ -28,7 +28,7 @@ namespace SDL3.Tests
|
|||
|
||||
private GCHandle handle;
|
||||
|
||||
private readonly bool fromPointer;
|
||||
private readonly bool canFree;
|
||||
|
||||
/// <summary>
|
||||
/// Wraps the provided object with a <see cref="GCHandle" />, using the given <see cref="GCHandleType" />.
|
||||
|
|
@ -38,18 +38,19 @@ namespace SDL3.Tests
|
|||
public ObjectHandle(T target, GCHandleType handleType)
|
||||
{
|
||||
handle = GCHandle.Alloc(target, handleType);
|
||||
fromPointer = false;
|
||||
canFree = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recreates an <see cref="ObjectHandle{T}" /> based on the passed <see cref="IntPtr" />.
|
||||
/// Disposing this object will not free the handle, the original object must be disposed instead.
|
||||
/// If <paramref name="ownsHandle"/> is <c>true</c>, disposing this object will free the handle.
|
||||
/// </summary>
|
||||
/// <param name="handle">Handle.</param>
|
||||
public ObjectHandle(IntPtr handle)
|
||||
/// <param name="handle"><see cref="Handle"/> from a previously constructed <see cref="ObjectHandle{T}(T, GCHandleType)"/>.</param>
|
||||
/// <param name="ownsHandle">Whether this instance owns the underlying <see cref="GCHandle"/>.</param>
|
||||
public ObjectHandle(IntPtr handle, bool ownsHandle = false)
|
||||
{
|
||||
this.handle = GCHandle.FromIntPtr(handle);
|
||||
fromPointer = true;
|
||||
canFree = ownsHandle;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -86,7 +87,7 @@ namespace SDL3.Tests
|
|||
|
||||
public void Dispose()
|
||||
{
|
||||
if (!fromPointer && handle.IsAllocated)
|
||||
if (canFree && handle.IsAllocated)
|
||||
handle.Free();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,31 +3,41 @@
|
|||
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
using SDL;
|
||||
using static SDL.SDL3_image;
|
||||
using static SDL.SDL3_ttf;
|
||||
using static SDL.SDL3_mixer;
|
||||
using static SDL.SDL3;
|
||||
|
||||
namespace SDL3.Tests
|
||||
namespace SDL.Tests
|
||||
{
|
||||
public static class Program
|
||||
{
|
||||
public static void Main()
|
||||
{
|
||||
Console.OutputEncoding = Encoding.UTF8;
|
||||
if (OperatingSystem.IsWindows())
|
||||
Console.OutputEncoding = Encoding.UTF8;
|
||||
|
||||
Console.WriteLine($"false is represented as {SDL_OutOfMemory()} (expected 0x{SDLBool.FALSE_VALUE:x2})");
|
||||
Console.WriteLine($"true is represented as {SDL_ClearError()} (expected 0x{SDLBool.TRUE_VALUE:x2})");
|
||||
|
||||
SDL_SetHint(SDL_HINT_WINDOWS_CLOSE_ON_ALT_F4, "null byte \0 in string"u8);
|
||||
Debug.Assert(SDL_GetHint(SDL_HINT_WINDOWS_CLOSE_ON_ALT_F4) == "null byte ");
|
||||
|
||||
SDL_SetHint(SDL_HINT_WINDOWS_CLOSE_ON_ALT_F4, "1"u8);
|
||||
SDL_SetHint(SDL_HINT_WINDOWS_CLOSE_ON_ALT_F4, "1");
|
||||
|
||||
using (var window = new MyWindow())
|
||||
{
|
||||
Console.WriteLine($"SDL revision: {SDL_GetRevision()}");
|
||||
// Check if satellite libraries exist.
|
||||
Console.WriteLine($"SDL revision: {SDL_GetRevision()}, IMG {IMG_Version()}, TTF {TTF_Version()}, Mixer {MIX_Version()}");
|
||||
|
||||
printDisplays();
|
||||
|
||||
window.Setup();
|
||||
window.Create();
|
||||
|
||||
printWindows();
|
||||
|
||||
const SDL_Keymod state = SDL_Keymod.SDL_KMOD_CAPS | SDL_Keymod.SDL_KMOD_ALT;
|
||||
SDL_SetModState(state);
|
||||
Debug.Assert(SDL_GetModState() == state);
|
||||
|
|
@ -60,5 +70,17 @@ namespace SDL3.Tests
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static unsafe void printWindows()
|
||||
{
|
||||
using var windows = SDL_GetWindows();
|
||||
if (windows == null)
|
||||
return;
|
||||
|
||||
for (int i = 0; i < windows.Count; i++)
|
||||
{
|
||||
Console.WriteLine($"Window {i} title: {SDL_GetWindowTitle(windows[i])}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,16 +1,37 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<OutputType>Library</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RootNamespace>SDL3.Tests</RootNamespace>
|
||||
<RootNamespace>SDL.Tests</RootNamespace>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<GenerateProgramFile>false</GenerateProgramFile>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Label="NuGet">
|
||||
<IsPackable>false</IsPackable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Label="Package References">
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0"/>
|
||||
<PackageReference Include="NUnit" Version="3.13.3"/>
|
||||
<PackageReference Include="NUnit3TestAdapter" Version="4.4.2"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\SDL3-CS\SDL3-CS.csproj"/>
|
||||
<ProjectReference Include="..\SDL3_image-CS\SDL3_image-CS.csproj"/>
|
||||
<ProjectReference Include="..\SDL3_ttf-CS\SDL3_ttf-CS.csproj"/>
|
||||
<ProjectReference Include="..\SDL3_mixer-CS\SDL3_mixer-CS.csproj"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Include="..\External\SDL_image\test\sample.png" Condition="Exists('..\External\SDL_image\test\sample.png')">
|
||||
<Link>sample.png</Link>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,91 @@
|
|||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace SDL.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
public class TestClipboard
|
||||
{
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
cleanups = 0;
|
||||
requestedMimeTypes.Clear();
|
||||
SDL3.SDL_Init(SDL_InitFlags.SDL_INIT_VIDEO);
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void TearDown() => SDL3.SDL_Quit();
|
||||
|
||||
[Test]
|
||||
public unsafe void TestClipboardData()
|
||||
{
|
||||
var ret = SDL3.SDL_SetClipboardData(&dataCallback, &cleanupCallback, IntPtr.Zero, "test/one", "test/two");
|
||||
Assert.That(ret, SDL3.SDL_GetError);
|
||||
|
||||
Assert.That(SDL3.SDL_HasClipboardData("test/one"));
|
||||
Assert.That(SDL3.SDL_HasClipboardData("test/two"));
|
||||
Assert.That(!SDL3.SDL_HasClipboardData("test/three"));
|
||||
|
||||
UIntPtr size;
|
||||
IntPtr data = SDL3.SDL_GetClipboardData("test/one", &size);
|
||||
|
||||
try
|
||||
{
|
||||
Assert.That(data, Is.EqualTo(IntPtr.Zero));
|
||||
Assert.That(size, Is.EqualTo(my_length));
|
||||
Assert.That(requestedMimeTypes.Dequeue(), Is.EqualTo("test/one"));
|
||||
}
|
||||
finally
|
||||
{
|
||||
SDL3.SDL_free(data);
|
||||
}
|
||||
|
||||
ret = SDL3.SDL_ClearClipboardData();
|
||||
Assert.That(ret, SDL3.SDL_GetError);
|
||||
|
||||
Assert.That(cleanups, Is.EqualTo(1));
|
||||
|
||||
Assert.That(!SDL3.SDL_HasClipboardData("test/one"));
|
||||
Assert.That(!SDL3.SDL_HasClipboardData("test/two"));
|
||||
Assert.That(!SDL3.SDL_HasClipboardData("test/three"));
|
||||
|
||||
data = SDL3.SDL_GetClipboardData("test/two", &size);
|
||||
|
||||
try
|
||||
{
|
||||
Assert.That(data, Is.EqualTo(IntPtr.Zero));
|
||||
Assert.That(size, Is.EqualTo((UIntPtr)0));
|
||||
Assert.That(requestedMimeTypes, Has.Count.EqualTo(0));
|
||||
}
|
||||
finally
|
||||
{
|
||||
SDL3.SDL_free(data);
|
||||
}
|
||||
}
|
||||
|
||||
private static readonly Queue<string?> requestedMimeTypes = [];
|
||||
private static int cleanups;
|
||||
|
||||
private const UIntPtr my_length = 17;
|
||||
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvCdecl)])]
|
||||
private static unsafe IntPtr dataCallback(IntPtr userdata, byte* mimeType, UIntPtr* length)
|
||||
{
|
||||
requestedMimeTypes.Enqueue(SDL3.PtrToStringUTF8(mimeType));
|
||||
|
||||
*length = my_length;
|
||||
return IntPtr.Zero;
|
||||
}
|
||||
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvCdecl)])]
|
||||
private static void cleanupCallback(IntPtr userdata)
|
||||
{
|
||||
cleanups++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace SDL.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
public class TestError
|
||||
{
|
||||
[Test]
|
||||
public void TestUnsupported()
|
||||
{
|
||||
Assert.That((bool)SDL3.SDL_Unsupported(), Is.False);
|
||||
Assert.That(SDL3.SDL_GetError(), Is.EqualTo("That operation is not supported"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestInvalidParam()
|
||||
{
|
||||
Assert.That((bool)SDL3.SDL_InvalidParamError("test"), Is.False);
|
||||
Assert.That(SDL3.SDL_GetError(), Is.EqualTo("Parameter 'test' is invalid"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using NUnit.Framework;
|
||||
using static SDL.SDL3_image;
|
||||
using static SDL.SDL3;
|
||||
|
||||
namespace SDL.Tests
|
||||
{
|
||||
public unsafe class TestImage
|
||||
{
|
||||
[Test]
|
||||
public void TestBasic()
|
||||
{
|
||||
SDL_Init(0);
|
||||
|
||||
try
|
||||
{
|
||||
Assert.That(IMG_Version(), Is.EqualTo(SDL_IMAGE_VERSION));
|
||||
|
||||
Assume.That("sample.png", Does.Exist);
|
||||
var image = IMG_Load("sample.png");
|
||||
|
||||
try
|
||||
{
|
||||
Assert.That(image != null, SDL_GetError);
|
||||
Assert.That(image->w, Is.EqualTo(23));
|
||||
Assert.That(image->h, Is.EqualTo(42));
|
||||
}
|
||||
finally
|
||||
{
|
||||
SDL_DestroySurface(image);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
SDL_Quit();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace SDL.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
public class TestInterface
|
||||
{
|
||||
[Test]
|
||||
public unsafe void TestIOInterface()
|
||||
{
|
||||
SDL_IOStreamInterface iface;
|
||||
|
||||
SDL3.SDL_INIT_INTERFACE(out iface);
|
||||
|
||||
Assert.That(iface.version, Is.EqualTo(sizeof(SDL_IOStreamInterface)));
|
||||
Assert.That(iface.size == null);
|
||||
Assert.That(iface.seek == null);
|
||||
Assert.That(iface.read == null);
|
||||
Assert.That(iface.write == null);
|
||||
Assert.That(iface.flush == null);
|
||||
Assert.That(iface.close == null);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public unsafe void TestIOInterfaceManual()
|
||||
{
|
||||
SDL_IOStreamInterface iface = new SDL_IOStreamInterface
|
||||
{
|
||||
version = (uint)sizeof(SDL_IOStreamInterface),
|
||||
};
|
||||
|
||||
Assert.That(iface.version, Is.EqualTo(sizeof(SDL_IOStreamInterface)));
|
||||
Assert.That(iface.size == null);
|
||||
Assert.That(iface.seek == null);
|
||||
Assert.That(iface.read == null);
|
||||
Assert.That(iface.write == null);
|
||||
Assert.That(iface.flush == null);
|
||||
Assert.That(iface.close == null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using NUnit.Framework;
|
||||
using static SDL.SDL3_mixer;
|
||||
using static SDL.SDL3;
|
||||
|
||||
namespace SDL.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
public class TestMixer
|
||||
{
|
||||
[Test]
|
||||
public unsafe void TestBasic()
|
||||
{
|
||||
SDL_Init(0);
|
||||
|
||||
bool init = MIX_Init();
|
||||
|
||||
try
|
||||
{
|
||||
Assert.That(init, Is.True, SDL_GetError);
|
||||
Assert.That(MIX_Version(), Is.EqualTo(SDL_MIXER_VERSION));
|
||||
|
||||
Assume.That(MIX_GetNumAudioDecoders() > 0);
|
||||
string? name = MIX_GetAudioDecoder(0);
|
||||
Assert.That(name, Is.Not.Null, SDL_GetError);
|
||||
|
||||
Assume.That(@"C:\Windows\Media\Windows Logon.wav", Does.Exist);
|
||||
var decoder = MIX_CreateAudioDecoder(@"C:\Windows\Media\Windows Logon.wav", 0);
|
||||
Assert.That(decoder != null, SDL_GetError);
|
||||
MIX_DestroyAudioDecoder(decoder);
|
||||
}
|
||||
finally
|
||||
{
|
||||
MIX_Quit();
|
||||
SDL_Quit();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,139 @@
|
|||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using System.Drawing;
|
||||
using NUnit.Framework;
|
||||
using static SDL.SDL3;
|
||||
|
||||
namespace SDL.Tests
|
||||
{
|
||||
[Explicit("Uses an interactive window.")]
|
||||
public unsafe class TestPositionalInputVisualisation : MainCallbacksTest
|
||||
{
|
||||
private SDL_Window* window;
|
||||
private SDL_Renderer* renderer;
|
||||
|
||||
protected override SDL_AppResult Init()
|
||||
{
|
||||
// decouple pen, mouse and touch events
|
||||
SDL_SetHint(SDL_HINT_MOUSE_TOUCH_EVENTS, "0");
|
||||
SDL_SetHint(SDL_HINT_TOUCH_MOUSE_EVENTS, "0");
|
||||
|
||||
SDL_Init(SDL_InitFlags.SDL_INIT_VIDEO);
|
||||
|
||||
window = SDL_CreateWindow(nameof(TestPositionalInputVisualisation), 1800, 950, SDL_WindowFlags.SDL_WINDOW_RESIZABLE | SDL_WindowFlags.SDL_WINDOW_HIGH_PIXEL_DENSITY);
|
||||
renderer = SDL_CreateRenderer(window, (Utf8String)null);
|
||||
|
||||
return base.Init();
|
||||
}
|
||||
|
||||
private readonly SortedDictionary<(SDL_TouchID TouchID, SDL_FingerID FingerID), PointF> activeTouches = new SortedDictionary<(SDL_TouchID TouchID, SDL_FingerID FingerID), PointF>();
|
||||
private readonly SortedDictionary<SDL_MouseID, PointF> activeMice = new SortedDictionary<SDL_MouseID, PointF>();
|
||||
private readonly SortedDictionary<SDL_PenID, PointF> activePens = new SortedDictionary<SDL_PenID, PointF>();
|
||||
|
||||
/// <summary>
|
||||
/// Sets a random, but stable color for this object.
|
||||
/// </summary>
|
||||
private void setColor(object o, byte alpha)
|
||||
{
|
||||
int color = o.ToString()?.GetHashCode() ?? 0;
|
||||
byte b1 = (byte)color;
|
||||
byte b2 = (byte)(color / 256);
|
||||
byte b3 = (byte)(color / 256 / 256);
|
||||
SDL_SetRenderDrawColor(renderer, b1, b2, b3, alpha);
|
||||
}
|
||||
|
||||
private void fillRect(RectangleF rect)
|
||||
{
|
||||
var r = new SDL_FRect { x = rect.X, y = rect.Y, h = rect.Height, w = rect.Width };
|
||||
SDL_RenderFillRect(renderer, &r);
|
||||
}
|
||||
|
||||
protected override SDL_AppResult Iterate()
|
||||
{
|
||||
const float gray = 0.1f;
|
||||
SDL_SetRenderDrawColorFloat(renderer, gray, gray, gray, 1.0f);
|
||||
SDL_RenderClear(renderer);
|
||||
|
||||
// mice are horizontal lines: -
|
||||
foreach (var p in activeMice)
|
||||
{
|
||||
setColor(p.Key, 200);
|
||||
RectangleF rect = new RectangleF(p.Value, SizeF.Empty);
|
||||
rect.Inflate(50, 20);
|
||||
fillRect(rect);
|
||||
}
|
||||
|
||||
// fingers are vertical lines: |
|
||||
foreach (var p in activeTouches)
|
||||
{
|
||||
setColor(p.Key, 200);
|
||||
RectangleF rect = new RectangleF(p.Value, SizeF.Empty);
|
||||
rect.Inflate(20, 50);
|
||||
fillRect(rect);
|
||||
}
|
||||
|
||||
// pens are squares: □
|
||||
foreach (var p in activePens)
|
||||
{
|
||||
setColor(p.Key, 200);
|
||||
RectangleF rect = new RectangleF(p.Value, SizeF.Empty);
|
||||
rect.Inflate(30, 30);
|
||||
fillRect(rect);
|
||||
}
|
||||
|
||||
SDL_RenderPresent(renderer);
|
||||
|
||||
return base.Iterate();
|
||||
}
|
||||
|
||||
protected override SDL_AppResult Event(SDL_Event e)
|
||||
{
|
||||
SDL_ConvertEventToRenderCoordinates(renderer, &e);
|
||||
|
||||
switch (e.Type)
|
||||
{
|
||||
case SDL_EventType.SDL_EVENT_MOUSE_MOTION:
|
||||
activeMice[e.motion.which] = new PointF(e.motion.x, e.motion.y);
|
||||
break;
|
||||
|
||||
case SDL_EventType.SDL_EVENT_MOUSE_REMOVED:
|
||||
activeMice.Remove(e.mdevice.which);
|
||||
break;
|
||||
|
||||
case SDL_EventType.SDL_EVENT_FINGER_DOWN:
|
||||
case SDL_EventType.SDL_EVENT_FINGER_MOTION:
|
||||
activeTouches[(e.tfinger.touchID, e.tfinger.fingerID)] = new PointF(e.tfinger.x, e.tfinger.y);
|
||||
break;
|
||||
|
||||
case SDL_EventType.SDL_EVENT_FINGER_UP:
|
||||
activeTouches.Remove((e.tfinger.touchID, e.tfinger.fingerID));
|
||||
break;
|
||||
|
||||
case SDL_EventType.SDL_EVENT_PEN_MOTION:
|
||||
activePens[e.pmotion.which] = new PointF(e.pmotion.x, e.pmotion.y);
|
||||
break;
|
||||
|
||||
case SDL_EventType.SDL_EVENT_KEY_DOWN:
|
||||
switch (e.key.key)
|
||||
{
|
||||
case SDL_Keycode.SDLK_R:
|
||||
SDL_SetWindowRelativeMouseMode(window, !SDL_GetWindowRelativeMouseMode(window));
|
||||
break;
|
||||
|
||||
case SDL_Keycode.SDLK_F:
|
||||
SDL_SetWindowFullscreen(window, true);
|
||||
break;
|
||||
|
||||
case SDL_Keycode.SDLK_W:
|
||||
SDL_SetWindowFullscreen(window, false);
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
return base.Event(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,117 @@
|
|||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using System.Runtime.InteropServices;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace SDL.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
public class TestSDLArray
|
||||
{
|
||||
private static unsafe T* CopyToSdl<T>(T[] array)
|
||||
where T : unmanaged
|
||||
{
|
||||
UIntPtr size = (UIntPtr)(Marshal.SizeOf<T>() * array.Length);
|
||||
IntPtr target = SDL3.SDL_malloc(size);
|
||||
|
||||
fixed (T* source = array)
|
||||
{
|
||||
SDL3.SDL_memcpy(target, (IntPtr)source, size);
|
||||
}
|
||||
|
||||
return (T*)target;
|
||||
}
|
||||
|
||||
private static unsafe T** CopyToSdl<T>(T*[] array)
|
||||
where T : unmanaged
|
||||
{
|
||||
UIntPtr size = (UIntPtr)(sizeof(IntPtr) * array.Length);
|
||||
IntPtr target = SDL3.SDL_malloc(size);
|
||||
|
||||
fixed (T** source = array)
|
||||
{
|
||||
SDL3.SDL_memcpy(target, (IntPtr)source, size);
|
||||
}
|
||||
|
||||
return (T**)target;
|
||||
}
|
||||
|
||||
[Test]
|
||||
public unsafe void TestArrayEnumerator()
|
||||
{
|
||||
int[] values = [10, 20, 30, 40];
|
||||
int* sdlMemory = CopyToSdl(values);
|
||||
|
||||
using var array = new SDLArray<int>(sdlMemory, values.Length);
|
||||
int index = 0;
|
||||
|
||||
foreach (int i in array)
|
||||
{
|
||||
Assert.AreEqual(values[index++], i);
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public unsafe void TestConstOpaquePointerArrayEnumerator()
|
||||
{
|
||||
int a = 10, b = 20, c = 30, d = 40;
|
||||
int*[] values = [&a, &b, &c, &d];
|
||||
int** sdlMemory = null;
|
||||
|
||||
// Const pointer arrays are not freed automatically. Since the
|
||||
// unit test owns the memory, this must be done at the end of the
|
||||
// test.
|
||||
|
||||
try
|
||||
{
|
||||
sdlMemory = CopyToSdl(values);
|
||||
|
||||
var array = new SDLConstOpaquePointerArray<int>(sdlMemory, values.Length);
|
||||
int index = 0;
|
||||
|
||||
foreach (int* i in array)
|
||||
{
|
||||
Assert.AreEqual((IntPtr)values[index++], (IntPtr)i);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (sdlMemory != null)
|
||||
SDL3.SDL_free(sdlMemory);
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public unsafe void TestOpaquePointerArrayEnumerator()
|
||||
{
|
||||
int a = 10, b = 20, c = 30, d = 40;
|
||||
int*[] values = [&a, &b, &c, &d];
|
||||
int** sdlMemory = CopyToSdl(values);
|
||||
|
||||
using var array = new SDLOpaquePointerArray<int>(sdlMemory, values.Length);
|
||||
int index = 0;
|
||||
|
||||
foreach (int* i in array)
|
||||
{
|
||||
Assert.AreEqual((IntPtr)values[index++], (IntPtr)i);
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public unsafe void TestPointerArrayEnumerator()
|
||||
{
|
||||
int a = 10, b = 20, c = 30, d = 40;
|
||||
int*[] values = [&a, &b, &c, &d];
|
||||
int** memory = CopyToSdl(values);
|
||||
|
||||
using var array = new SDLPointerArray<int>(memory, values.Length);
|
||||
int index = 0;
|
||||
|
||||
foreach (int i in array)
|
||||
{
|
||||
Assert.AreEqual(*values[index++], i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using System.Collections;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace SDL.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
public class TestSDLBool
|
||||
{
|
||||
[Test]
|
||||
public void TestFalse()
|
||||
{
|
||||
Assert.That((bool)SDL3.SDL_OutOfMemory(), Is.EqualTo(false));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestTrue()
|
||||
{
|
||||
Assert.That((bool)SDL3.SDL_ClearError(), Is.EqualTo(true));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestStoreLoad([Values] bool value)
|
||||
{
|
||||
var props = SDL3.SDL_CreateProperties();
|
||||
Assume.That(props, Is.Not.EqualTo(0));
|
||||
|
||||
bool ret = SDL3.SDL_SetBooleanProperty(props, "test", value);
|
||||
Assume.That(ret, Is.EqualTo(true));
|
||||
|
||||
Assert.That((bool)SDL3.SDL_GetBooleanProperty(props, "test", !value), Is.EqualTo(value));
|
||||
|
||||
SDL3.SDL_DestroyProperties(props);
|
||||
}
|
||||
|
||||
public static IEnumerable BoolCases()
|
||||
{
|
||||
SDLBool[] values = [new SDLBool(4), true, false];
|
||||
|
||||
foreach (var x in values)
|
||||
{
|
||||
foreach (var y in values)
|
||||
{
|
||||
yield return new object[] { x, y };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[TestCaseSource(typeof(TestSDLBool), nameof(BoolCases))]
|
||||
public void TestEquals(SDLBool first, SDLBool second)
|
||||
{
|
||||
Assert.That((SDLBool)(bool)first, Is.EqualTo(first));
|
||||
|
||||
Assert.That(first.Equals(second), Is.EqualTo((bool)first == (bool)second));
|
||||
Assert.That(first == second, Is.EqualTo((bool)first == (bool)second));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using NUnit.Framework;
|
||||
using static SDL.SDL3_ttf;
|
||||
using static SDL.SDL3;
|
||||
|
||||
namespace SDL.Tests
|
||||
{
|
||||
public unsafe class TestTTF
|
||||
{
|
||||
[Test]
|
||||
public void TestBasic()
|
||||
{
|
||||
SDL_Init(0);
|
||||
|
||||
bool init = TTF_Init();
|
||||
|
||||
try
|
||||
{
|
||||
Assert.That(init, Is.True, SDL_GetError);
|
||||
Assert.That(TTF_Version(), Is.EqualTo(SDL_TTF_VERSION));
|
||||
|
||||
Assume.That(@"C:\Windows\Fonts\times.ttf", Does.Exist);
|
||||
var font = TTF_OpenFont(@"C:\Windows\Fonts\times.ttf", 12f);
|
||||
|
||||
try
|
||||
{
|
||||
Assert.That(font != null, SDL_GetError);
|
||||
Assert.That(TTF_GetFontFamilyName(font), Is.EqualTo("Times New Roman"));
|
||||
}
|
||||
finally
|
||||
{
|
||||
TTF_CloseFont(font);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
TTF_Quit();
|
||||
SDL_Quit();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using NUnit.Framework;
|
||||
using static SDL.SDL3;
|
||||
|
||||
namespace SDL.Tests
|
||||
{
|
||||
[Explicit("Uses an interactive tray icon.")]
|
||||
public unsafe class TestTray : TrayTest
|
||||
{
|
||||
private volatile bool running;
|
||||
|
||||
[Test]
|
||||
public void TestBasic()
|
||||
{
|
||||
var checkbox = SDL_InsertTrayEntryAt(RootMenu, -1, "Check box?", SDL_TrayEntryFlags.SDL_TRAYENTRY_CHECKBOX);
|
||||
Assert.That(checkbox != null, SDL_GetError);
|
||||
SetCallback(checkbox, () => Console.WriteLine("Checkbox was toggled."));
|
||||
|
||||
var separator = SDL_InsertTrayEntryAt(RootMenu, -1, (byte*)null, 0);
|
||||
Assert.That(separator != null, SDL_GetError);
|
||||
|
||||
var exit = SDL_InsertTrayEntryAt(RootMenu, -1, "Exit tray", SDL_TrayEntryFlags.SDL_TRAYENTRY_BUTTON);
|
||||
Assert.That(exit != null, SDL_GetError);
|
||||
SetCallback(exit, () => running = false);
|
||||
|
||||
var entries = SDL_GetTrayEntries(RootMenu);
|
||||
Assert.That(entries, Is.Not.Null, SDL_GetError);
|
||||
Assert.That(entries!.Count, Is.EqualTo(3));
|
||||
|
||||
for (int i = 0; i < entries.Count; i++)
|
||||
Console.WriteLine($"{i}. {SDL_GetTrayEntryLabel(entries[i]) ?? "<null>"}");
|
||||
|
||||
running = true;
|
||||
|
||||
while (running)
|
||||
{
|
||||
SDL_PumpEvents();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,88 @@
|
|||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace SDL.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
public class TestUtf8String
|
||||
{
|
||||
[Test]
|
||||
public void TestNoImplicitConversion()
|
||||
{
|
||||
checkNull(null);
|
||||
checkNull(default);
|
||||
checkNull(new Utf8String()); // don't do this in actual code
|
||||
}
|
||||
|
||||
[TestCase(null, -1)]
|
||||
[TestCase("", 1)]
|
||||
[TestCase("\0", 1)]
|
||||
[TestCase("test", 5)]
|
||||
[TestCase("test\0", 5)]
|
||||
[TestCase("test\0test", 10)]
|
||||
[TestCase("test\0test\0", 10)]
|
||||
public static void TestString(string? str, int expectedLength)
|
||||
{
|
||||
if (str == null)
|
||||
checkNull(str);
|
||||
else
|
||||
check(str, expectedLength);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public static void TestNullSpan()
|
||||
{
|
||||
ReadOnlySpan<byte> span = null;
|
||||
checkNull(span);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public static void TestDefaultSpan()
|
||||
{
|
||||
ReadOnlySpan<byte> span = default;
|
||||
checkNull(span);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public static void TestNewSpan()
|
||||
{
|
||||
ReadOnlySpan<byte> span = new ReadOnlySpan<byte>();
|
||||
checkNull(span);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public static void TestReadOnlySpan()
|
||||
{
|
||||
check(""u8, 1);
|
||||
check("\0"u8, 1);
|
||||
check("test"u8, 5);
|
||||
check("test\0"u8, 5);
|
||||
check("test\0test"u8, 10);
|
||||
check("test\0test\0"u8, 10);
|
||||
}
|
||||
|
||||
private static unsafe void checkNull(Utf8String s)
|
||||
{
|
||||
Assert.That(s.Raw == null, "s.Raw == null");
|
||||
Assert.That(s.Raw.Length, Is.EqualTo(0));
|
||||
|
||||
fixed (byte* ptr = s)
|
||||
{
|
||||
Assert.That(ptr == null, "ptr == null");
|
||||
}
|
||||
}
|
||||
|
||||
private static unsafe void check(Utf8String s, int expectedLength)
|
||||
{
|
||||
Assert.That(s.Raw.Length, Is.EqualTo(expectedLength));
|
||||
|
||||
fixed (byte* ptr = s)
|
||||
{
|
||||
Assert.That(ptr != null, "ptr != null");
|
||||
Assert.That(ptr[s.Raw.Length - 1], Is.EqualTo(0));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace SDL.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
public abstract unsafe class TrayTest
|
||||
{
|
||||
private SDL_Tray* tray;
|
||||
protected SDL_TrayMenu* RootMenu { get; private set; }
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
Assert.That(SDL3.SDL_Init(SDL_InitFlags.SDL_INIT_VIDEO), SDL3.SDL_GetError);
|
||||
tray = SDL3.SDL_CreateTray(null, "Test tray");
|
||||
Assert.That(tray != null, SDL3.SDL_GetError);
|
||||
RootMenu = SDL3.SDL_CreateTrayMenu(tray);
|
||||
Assert.That(RootMenu != null, SDL3.SDL_GetError);
|
||||
}
|
||||
|
||||
protected static void SetCallback(SDL_TrayEntry* entry, Action callback)
|
||||
{
|
||||
var objectHandle = new ObjectHandle<Action>(callback, GCHandleType.Normal);
|
||||
SDL3.SDL_SetTrayEntryCallback(entry, &nativeOnSelect, objectHandle.Handle); // this is leaking object handles, fine for tests
|
||||
}
|
||||
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvCdecl)])]
|
||||
private static void nativeOnSelect(IntPtr userdata, SDL_TrayEntry* entry)
|
||||
{
|
||||
var objectHandle = new ObjectHandle<Action>(userdata, true);
|
||||
|
||||
if (objectHandle.GetTarget(out var action))
|
||||
action();
|
||||
else
|
||||
Assert.Fail("Accessing disposed object handle.");
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void TearDown()
|
||||
{
|
||||
if (tray != null)
|
||||
SDL3.SDL_DestroyTray(tray);
|
||||
|
||||
SDL3.SDL_Quit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"solution": {
|
||||
"path": "SDL3-CS.sln",
|
||||
"projects": [
|
||||
"SDL3-CS.SourceGeneration\\SDL3-CS.SourceGeneration.csproj",
|
||||
"SDL3-CS.Tests.iOS\\SDL3-CS.Tests.iOS.csproj",
|
||||
"SDL3-CS.Tests\\SDL3-CS.Tests.csproj",
|
||||
"SDL3-CS\\SDL3-CS.csproj",
|
||||
"SDL3_image-CS\\SDL3_image-CS.csproj",
|
||||
"SDL3_mixer-CS\\SDL3_mixer-CS.csproj",
|
||||
"SDL3_ttf-CS\\SDL3_ttf-CS.csproj"
|
||||
]
|
||||
}
|
||||
}
|
||||
55
SDL3-CS.sln
55
SDL3-CS.sln
|
|
@ -6,27 +6,36 @@ MinimumVisualStudioVersion = 10.0.40219.1
|
|||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{18C20490-AA42-464A-BBC4-7B6CF63B91DE}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
.editorconfig = .editorconfig
|
||||
.gitignore = .gitignore
|
||||
.globalconfig = .globalconfig
|
||||
Directory.Build.props = Directory.Build.props
|
||||
global.json = global.json
|
||||
.config\dotnet-tools.json = .config\dotnet-tools.json
|
||||
.gitignore = .gitignore
|
||||
global.json = global.json
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SDL3-CS", "SDL3-CS\SDL3-CS.csproj", "{3AEE5979-6974-4BD6-9BB1-1409B0BB469B}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SDL3-CS", "SDL3-CS\SDL3-CS.csproj", "{3AEE5979-6974-4BD6-9BB1-1409B0BB469B}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SDL3-CS.SourceGeneration", "SDL3-CS.SourceGeneration\SDL3-CS.SourceGeneration.csproj", "{432C86D0-D371-4D01-BFFE-01D2CDCCA7B8}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SDL3-CS.SourceGeneration", "SDL3-CS.SourceGeneration\SDL3-CS.SourceGeneration.csproj", "{432C86D0-D371-4D01-BFFE-01D2CDCCA7B8}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SDL3-CS.Tests", "SDL3-CS.Tests\SDL3-CS.Tests.csproj", "{CF980481-8227-4BED-970E-6433C83F64CB}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SDL3-CS.Tests", "SDL3-CS.Tests\SDL3-CS.Tests.csproj", "{CF980481-8227-4BED-970E-6433C83F64CB}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SDL3-CS.Tests.Android", "SDL3-CS.Tests.Android\SDL3-CS.Tests.Android.csproj", "{E8469DA5-E437-4287-9E2A-8B8F4DC21C1A}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SDL3-CS.Tests.iOS", "SDL3-CS.Tests.iOS\SDL3-CS.Tests.iOS.csproj", "{CCDD11EE-D552-4925-8B68-351AC9317589}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SDL3-CS.Tests.Desktop", "SDL3-CS.Tests.Desktop\SDL3-CS.Tests.Desktop.csproj", "{7E8D719A-5B69-43B7-A9D5-385B6FE7F411}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SDL3_ttf-CS", "SDL3_ttf-CS\SDL3_ttf-CS.csproj", "{8E37EB82-ACC4-4656-A6E5-DB298AE72066}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SDL3_image-CS", "SDL3_image-CS\SDL3_image-CS.csproj", "{A0D6FC5F-BA26-4298-ABF0-234D2481E323}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SDL3_mixer-CS", "SDL3_mixer-CS\SDL3_mixer-CS.csproj", "{421748C4-B51F-4B00-9637-566DBFD96E02}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{3AEE5979-6974-4BD6-9BB1-1409B0BB469B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{3AEE5979-6974-4BD6-9BB1-1409B0BB469B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
|
|
@ -40,5 +49,35 @@ Global
|
|||
{CF980481-8227-4BED-970E-6433C83F64CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{CF980481-8227-4BED-970E-6433C83F64CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{CF980481-8227-4BED-970E-6433C83F64CB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{E8469DA5-E437-4287-9E2A-8B8F4DC21C1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E8469DA5-E437-4287-9E2A-8B8F4DC21C1A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E8469DA5-E437-4287-9E2A-8B8F4DC21C1A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E8469DA5-E437-4287-9E2A-8B8F4DC21C1A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{CCDD11EE-D552-4925-8B68-351AC9317589}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{CCDD11EE-D552-4925-8B68-351AC9317589}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{CCDD11EE-D552-4925-8B68-351AC9317589}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{CCDD11EE-D552-4925-8B68-351AC9317589}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{7E8D719A-5B69-43B7-A9D5-385B6FE7F411}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{7E8D719A-5B69-43B7-A9D5-385B6FE7F411}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{7E8D719A-5B69-43B7-A9D5-385B6FE7F411}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{7E8D719A-5B69-43B7-A9D5-385B6FE7F411}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{8E37EB82-ACC4-4656-A6E5-DB298AE72066}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{8E37EB82-ACC4-4656-A6E5-DB298AE72066}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{8E37EB82-ACC4-4656-A6E5-DB298AE72066}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{8E37EB82-ACC4-4656-A6E5-DB298AE72066}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{A0D6FC5F-BA26-4298-ABF0-234D2481E323}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A0D6FC5F-BA26-4298-ABF0-234D2481E323}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A0D6FC5F-BA26-4298-ABF0-234D2481E323}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{A0D6FC5F-BA26-4298-ABF0-234D2481E323}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{421748C4-B51F-4B00-9637-566DBFD96E02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{421748C4-B51F-4B00-9637-566DBFD96E02}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{421748C4-B51F-4B00-9637-566DBFD96E02}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{421748C4-B51F-4B00-9637-566DBFD96E02}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {19F716B7-F795-4152-A923-B8750DDBAB4E}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
|
|||
|
|
@ -780,4 +780,11 @@ See the LICENCE file in the repository root for full licence text.
|
|||
<s:String x:Key="/Default/CodeStyle/Naming/WebNaming/UserRules/=ASP_005FTAG_005FPREFIX/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/XamlNaming/UserRules/=NAMESPACE_005FALIAS/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/XamlNaming/UserRules/=XAML_005FFIELD/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/XamlNaming/UserRules/=XAML_005FRESOURCE/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String></wpf:ResourceDictionary>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/XamlNaming/UserRules/=XAML_005FRESOURCE/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String>
|
||||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EFeature_002EServices_002ECodeCleanup_002EFileHeader_002EFileHeaderSettingsMigrate/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpKeepExistingMigration/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpPlaceEmbeddedOnSameLineMigration/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpUseContinuousIndentInsideBracesMigration/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002EMemberReordering_002EMigrations_002ECSharpFileLayoutPatternRemoveIsAttributeUpgrade/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateBlankLinesAroundFieldToBlankLinesAroundProperty/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EPredefinedNamingRulesToUserRulesUpgrade/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
Additions allow you to add arbitrary C# to the generated classes
|
||||
before they are compiled. This can be helpful for providing convenience
|
||||
methods or adding pure C# classes.
|
||||
|
||||
== Adding Methods to Generated Classes ==
|
||||
|
||||
Let's say the library being bound has a Rectangle class with a constructor
|
||||
that takes an x and y position, and a width and length size. It will look like
|
||||
this:
|
||||
|
||||
public partial class Rectangle
|
||||
{
|
||||
public Rectangle (int x, int y, int width, int height)
|
||||
{
|
||||
// JNI bindings
|
||||
}
|
||||
}
|
||||
|
||||
Imagine we want to add a constructor to this class that takes a Point and
|
||||
Size structure instead of 4 ints. We can add a new file called Rectangle.cs
|
||||
with a partial class containing our new method:
|
||||
|
||||
public partial class Rectangle
|
||||
{
|
||||
public Rectangle (Point location, Size size) :
|
||||
this (location.X, location.Y, size.Width, size.Height)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
At compile time, the additions class will be added to the generated class
|
||||
and the final assembly will a Rectangle class with both constructors.
|
||||
|
||||
|
||||
== Adding C# Classes ==
|
||||
|
||||
Another thing that can be done is adding fully C# managed classes to the
|
||||
generated library. In the above example, let's assume that there isn't a
|
||||
Point class available in Java or our library. The one we create doesn't need
|
||||
to interact with Java, so we'll create it like a normal class in C#.
|
||||
|
||||
By adding a Point.cs file with this class, it will end up in the binding library:
|
||||
|
||||
public class Point
|
||||
{
|
||||
public int X { get; set; }
|
||||
public int Y { get; set; }
|
||||
}
|
||||
Binary file not shown.
|
|
@ -0,0 +1,29 @@
|
|||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using System;
|
||||
|
||||
// https://github.com/JetBrains/JetBrains.Annotations/blob/988289d09aad925b22a5321c075a735cb9597e59/src/Annotations.cs
|
||||
namespace JetBrains.Annotations
|
||||
{
|
||||
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Parameter)]
|
||||
internal sealed class MustDisposeResourceAttribute : Attribute
|
||||
{
|
||||
public MustDisposeResourceAttribute()
|
||||
{
|
||||
Value = true;
|
||||
}
|
||||
|
||||
public MustDisposeResourceAttribute(bool value)
|
||||
{
|
||||
Value = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// When set to <c>false</c>, disposing of the resource is not obligatory.
|
||||
/// The main use-case for explicit <c>[MustDisposeResource(false)]</c> annotation
|
||||
/// is to loosen the annotation for inheritors.
|
||||
/// </summary>
|
||||
public bool Value { get; }
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
[assembly: InternalsVisibleTo("SDL3-CS.Tests")]
|
||||
|
||||
// Allow access to internal CodeGen members (e.g. NativeTypeNameAttribute, etc.) for SDL sister projects:
|
||||
[assembly: InternalsVisibleTo("SDL3_ttf-CS")]
|
||||
[assembly: InternalsVisibleTo("SDL3_image-CS")]
|
||||
[assembly: InternalsVisibleTo("SDL3_mixer-CS")]
|
||||
|
|
@ -1,330 +0,0 @@
|
|||
diff --git a/include/SDL3/SDL.h b/include/SDL3/SDL.h
|
||||
index b178d2ade..5c54b9ab5 100644
|
||||
--- a/include/SDL3/SDL.h
|
||||
+++ b/include/SDL3/SDL.h
|
||||
@@ -29,6 +29,8 @@
|
||||
#ifndef SDL_h_
|
||||
#define SDL_h_
|
||||
|
||||
+#error Don't build with enum type changes
|
||||
+
|
||||
#include <SDL3/SDL_stdinc.h>
|
||||
#include <SDL3/SDL_assert.h>
|
||||
#include <SDL3/SDL_atomic.h>
|
||||
diff --git a/include/SDL3/SDL_events.h b/include/SDL3/SDL_events.h
|
||||
index 0fddf1f24..36b98b569 100644
|
||||
--- a/include/SDL3/SDL_events.h
|
||||
+++ b/include/SDL3/SDL_events.h
|
||||
@@ -244,7 +244,7 @@ typedef enum
|
||||
*/
|
||||
typedef struct SDL_CommonEvent
|
||||
{
|
||||
- Uint32 type; /**< Event type, shared with all events, Uint32 to cover user events which are not in the SDL_EventType enumeration */
|
||||
+ SDL_EventType type; /**< Event type, shared with all events, Uint32 to cover user events which are not in the SDL_EventType enumeration */
|
||||
Uint32 reserved;
|
||||
Uint64 timestamp; /**< In nanoseconds, populated using SDL_GetTicksNS() */
|
||||
} SDL_CommonEvent;
|
||||
@@ -726,7 +726,7 @@ typedef struct SDL_QuitEvent
|
||||
*/
|
||||
typedef struct SDL_UserEvent
|
||||
{
|
||||
- Uint32 type; /**< ::SDL_EVENT_USER through ::SDL_EVENT_LAST-1, Uint32 because these are not in the SDL_EventType enumeration */
|
||||
+ SDL_EventType type; /**< ::SDL_EVENT_USER through ::SDL_EVENT_LAST-1, Uint32 because these are not in the SDL_EventType enumeration */
|
||||
Uint32 reserved;
|
||||
Uint64 timestamp; /**< In nanoseconds, populated using SDL_GetTicksNS() */
|
||||
SDL_WindowID windowID; /**< The associated window if any */
|
||||
@@ -741,7 +741,7 @@ typedef struct SDL_UserEvent
|
||||
*/
|
||||
typedef union SDL_Event
|
||||
{
|
||||
- Uint32 type; /**< Event type, shared with all events, Uint32 to cover user events which are not in the SDL_EventType enumeration */
|
||||
+ SDL_EventType type; /**< Event type, shared with all events, Uint32 to cover user events which are not in the SDL_EventType enumeration */
|
||||
SDL_CommonEvent common; /**< Common event data */
|
||||
SDL_DisplayEvent display; /**< Display event data */
|
||||
SDL_WindowEvent window; /**< Window event data */
|
||||
@@ -868,7 +868,7 @@ typedef enum
|
||||
* \sa SDL_PumpEvents
|
||||
* \sa SDL_PushEvent
|
||||
*/
|
||||
-extern DECLSPEC int SDLCALL SDL_PeepEvents(SDL_Event *events, int numevents, SDL_eventaction action, Uint32 minType, Uint32 maxType);
|
||||
+extern DECLSPEC int SDLCALL SDL_PeepEvents(SDL_Event *events, int numevents, SDL_eventaction action, SDL_EventType minType, SDL_EventType maxType);
|
||||
/* @} */
|
||||
|
||||
/**
|
||||
@@ -885,7 +885,7 @@ extern DECLSPEC int SDLCALL SDL_PeepEvents(SDL_Event *events, int numevents, SDL
|
||||
*
|
||||
* \sa SDL_HasEvents
|
||||
*/
|
||||
-extern DECLSPEC SDL_bool SDLCALL SDL_HasEvent(Uint32 type);
|
||||
+extern DECLSPEC SDL_bool SDLCALL SDL_HasEvent(SDL_EventType type);
|
||||
|
||||
|
||||
/**
|
||||
@@ -904,7 +904,7 @@ extern DECLSPEC SDL_bool SDLCALL SDL_HasEvent(Uint32 type);
|
||||
*
|
||||
* \sa SDL_HasEvents
|
||||
*/
|
||||
-extern DECLSPEC SDL_bool SDLCALL SDL_HasEvents(Uint32 minType, Uint32 maxType);
|
||||
+extern DECLSPEC SDL_bool SDLCALL SDL_HasEvents(SDL_EventType minType, SDL_EventType maxType);
|
||||
|
||||
/**
|
||||
* Clear events of a specific type from the event queue.
|
||||
@@ -930,7 +930,7 @@ extern DECLSPEC SDL_bool SDLCALL SDL_HasEvents(Uint32 minType, Uint32 maxType);
|
||||
*
|
||||
* \sa SDL_FlushEvents
|
||||
*/
|
||||
-extern DECLSPEC void SDLCALL SDL_FlushEvent(Uint32 type);
|
||||
+extern DECLSPEC void SDLCALL SDL_FlushEvent(SDL_EventType type);
|
||||
|
||||
/**
|
||||
* Clear events of a range of types from the event queue.
|
||||
@@ -955,7 +955,7 @@ extern DECLSPEC void SDLCALL SDL_FlushEvent(Uint32 type);
|
||||
*
|
||||
* \sa SDL_FlushEvent
|
||||
*/
|
||||
-extern DECLSPEC void SDLCALL SDL_FlushEvents(Uint32 minType, Uint32 maxType);
|
||||
+extern DECLSPEC void SDLCALL SDL_FlushEvents(SDL_EventType minType, SDL_EventType maxType);
|
||||
|
||||
/**
|
||||
* Poll for currently pending events.
|
||||
@@ -1234,7 +1234,7 @@ extern DECLSPEC void SDLCALL SDL_FilterEvents(SDL_EventFilter filter, void *user
|
||||
*
|
||||
* \sa SDL_IsEventEnabled
|
||||
*/
|
||||
-extern DECLSPEC void SDLCALL SDL_SetEventEnabled(Uint32 type, SDL_bool enabled);
|
||||
+extern DECLSPEC void SDLCALL SDL_SetEventEnabled(SDL_EventType type, SDL_bool enabled);
|
||||
|
||||
/**
|
||||
* Query the state of processing events by type.
|
||||
@@ -1246,7 +1246,7 @@ extern DECLSPEC void SDLCALL SDL_SetEventEnabled(Uint32 type, SDL_bool enabled);
|
||||
*
|
||||
* \sa SDL_SetEventEnabled
|
||||
*/
|
||||
-extern DECLSPEC SDL_bool SDLCALL SDL_EventEnabled(Uint32 type);
|
||||
+extern DECLSPEC SDL_bool SDLCALL SDL_EventEnabled(SDL_EventType type);
|
||||
|
||||
/**
|
||||
* Allocate a set of user-defined events, and return the beginning event
|
||||
diff --git a/include/SDL3/SDL_init.h b/include/SDL3/SDL_init.h
|
||||
index d1b925270..30cc4a8b7 100644
|
||||
--- a/include/SDL3/SDL_init.h
|
||||
+++ b/include/SDL3/SDL_init.h
|
||||
@@ -110,7 +110,7 @@ typedef enum
|
||||
* \sa SDL_SetMainReady
|
||||
* \sa SDL_WasInit
|
||||
*/
|
||||
-extern DECLSPEC int SDLCALL SDL_Init(Uint32 flags);
|
||||
+extern DECLSPEC int SDLCALL SDL_Init(SDL_InitFlags flags);
|
||||
|
||||
/**
|
||||
* Compatibility function to initialize the SDL library.
|
||||
@@ -127,7 +127,7 @@ extern DECLSPEC int SDLCALL SDL_Init(Uint32 flags);
|
||||
* \sa SDL_Quit
|
||||
* \sa SDL_QuitSubSystem
|
||||
*/
|
||||
-extern DECLSPEC int SDLCALL SDL_InitSubSystem(Uint32 flags);
|
||||
+extern DECLSPEC int SDLCALL SDL_InitSubSystem(SDL_InitFlags flags);
|
||||
|
||||
/**
|
||||
* Shut down specific SDL subsystems.
|
||||
@@ -142,7 +142,7 @@ extern DECLSPEC int SDLCALL SDL_InitSubSystem(Uint32 flags);
|
||||
* \sa SDL_InitSubSystem
|
||||
* \sa SDL_Quit
|
||||
*/
|
||||
-extern DECLSPEC void SDLCALL SDL_QuitSubSystem(Uint32 flags);
|
||||
+extern DECLSPEC void SDLCALL SDL_QuitSubSystem(SDL_InitFlags flags);
|
||||
|
||||
/**
|
||||
* Get a mask of the specified subsystems which are currently initialized.
|
||||
@@ -156,7 +156,7 @@ extern DECLSPEC void SDLCALL SDL_QuitSubSystem(Uint32 flags);
|
||||
* \sa SDL_Init
|
||||
* \sa SDL_InitSubSystem
|
||||
*/
|
||||
-extern DECLSPEC Uint32 SDLCALL SDL_WasInit(Uint32 flags);
|
||||
+extern DECLSPEC SDL_InitFlags SDLCALL SDL_WasInit(SDL_InitFlags flags);
|
||||
|
||||
/**
|
||||
* Clean up all initialized subsystems.
|
||||
diff --git a/include/SDL3/SDL_log.h b/include/SDL3/SDL_log.h
|
||||
index 99d2f2c36..eef01cac7 100644
|
||||
--- a/include/SDL3/SDL_log.h
|
||||
+++ b/include/SDL3/SDL_log.h
|
||||
@@ -135,7 +135,7 @@ extern DECLSPEC void SDLCALL SDL_LogSetAllPriority(SDL_LogPriority priority);
|
||||
* \sa SDL_LogResetPriorities
|
||||
* \sa SDL_LogSetAllPriority
|
||||
*/
|
||||
-extern DECLSPEC void SDLCALL SDL_LogSetPriority(int category,
|
||||
+extern DECLSPEC void SDLCALL SDL_LogSetPriority(SDL_LogCategory category,
|
||||
SDL_LogPriority priority);
|
||||
|
||||
/**
|
||||
@@ -148,7 +148,7 @@ extern DECLSPEC void SDLCALL SDL_LogSetPriority(int category,
|
||||
*
|
||||
* \sa SDL_LogSetPriority
|
||||
*/
|
||||
-extern DECLSPEC SDL_LogPriority SDLCALL SDL_LogGetPriority(int category);
|
||||
+extern DECLSPEC SDL_LogPriority SDLCALL SDL_LogGetPriority(SDL_LogCategory category);
|
||||
|
||||
/**
|
||||
* Reset all priorities to default.
|
||||
@@ -201,7 +201,7 @@ extern DECLSPEC void SDLCALL SDL_Log(SDL_PRINTF_FORMAT_STRING const char *fmt, .
|
||||
* \sa SDL_LogMessageV
|
||||
* \sa SDL_LogWarn
|
||||
*/
|
||||
-extern DECLSPEC void SDLCALL SDL_LogVerbose(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2);
|
||||
+extern DECLSPEC void SDLCALL SDL_LogVerbose(SDL_LogCategory category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2);
|
||||
|
||||
/**
|
||||
* Log a message with SDL_LOG_PRIORITY_DEBUG.
|
||||
@@ -222,7 +222,7 @@ extern DECLSPEC void SDLCALL SDL_LogVerbose(int category, SDL_PRINTF_FORMAT_STRI
|
||||
* \sa SDL_LogVerbose
|
||||
* \sa SDL_LogWarn
|
||||
*/
|
||||
-extern DECLSPEC void SDLCALL SDL_LogDebug(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2);
|
||||
+extern DECLSPEC void SDLCALL SDL_LogDebug(SDL_LogCategory category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2);
|
||||
|
||||
/**
|
||||
* Log a message with SDL_LOG_PRIORITY_INFO.
|
||||
@@ -243,7 +243,7 @@ extern DECLSPEC void SDLCALL SDL_LogDebug(int category, SDL_PRINTF_FORMAT_STRING
|
||||
* \sa SDL_LogVerbose
|
||||
* \sa SDL_LogWarn
|
||||
*/
|
||||
-extern DECLSPEC void SDLCALL SDL_LogInfo(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2);
|
||||
+extern DECLSPEC void SDLCALL SDL_LogInfo(SDL_LogCategory category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2);
|
||||
|
||||
/**
|
||||
* Log a message with SDL_LOG_PRIORITY_WARN.
|
||||
@@ -264,7 +264,7 @@ extern DECLSPEC void SDLCALL SDL_LogInfo(int category, SDL_PRINTF_FORMAT_STRING
|
||||
* \sa SDL_LogMessageV
|
||||
* \sa SDL_LogVerbose
|
||||
*/
|
||||
-extern DECLSPEC void SDLCALL SDL_LogWarn(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2);
|
||||
+extern DECLSPEC void SDLCALL SDL_LogWarn(SDL_LogCategory category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2);
|
||||
|
||||
/**
|
||||
* Log a message with SDL_LOG_PRIORITY_ERROR.
|
||||
@@ -285,7 +285,7 @@ extern DECLSPEC void SDLCALL SDL_LogWarn(int category, SDL_PRINTF_FORMAT_STRING
|
||||
* \sa SDL_LogVerbose
|
||||
* \sa SDL_LogWarn
|
||||
*/
|
||||
-extern DECLSPEC void SDLCALL SDL_LogError(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2);
|
||||
+extern DECLSPEC void SDLCALL SDL_LogError(SDL_LogCategory category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2);
|
||||
|
||||
/**
|
||||
* Log a message with SDL_LOG_PRIORITY_CRITICAL.
|
||||
@@ -306,7 +306,7 @@ extern DECLSPEC void SDLCALL SDL_LogError(int category, SDL_PRINTF_FORMAT_STRING
|
||||
* \sa SDL_LogVerbose
|
||||
* \sa SDL_LogWarn
|
||||
*/
|
||||
-extern DECLSPEC void SDLCALL SDL_LogCritical(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2);
|
||||
+extern DECLSPEC void SDLCALL SDL_LogCritical(SDL_LogCategory category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2);
|
||||
|
||||
/**
|
||||
* Log a message with the specified category and priority.
|
||||
@@ -328,7 +328,7 @@ extern DECLSPEC void SDLCALL SDL_LogCritical(int category, SDL_PRINTF_FORMAT_STR
|
||||
* \sa SDL_LogVerbose
|
||||
* \sa SDL_LogWarn
|
||||
*/
|
||||
-extern DECLSPEC void SDLCALL SDL_LogMessage(int category,
|
||||
+extern DECLSPEC void SDLCALL SDL_LogMessage(SDL_LogCategory category,
|
||||
SDL_LogPriority priority,
|
||||
SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(3);
|
||||
|
||||
@@ -351,7 +351,7 @@ extern DECLSPEC void SDLCALL SDL_LogMessage(int category,
|
||||
* \sa SDL_LogVerbose
|
||||
* \sa SDL_LogWarn
|
||||
*/
|
||||
-extern DECLSPEC void SDLCALL SDL_LogMessageV(int category,
|
||||
+extern DECLSPEC void SDLCALL SDL_LogMessageV(SDL_LogCategory category,
|
||||
SDL_LogPriority priority,
|
||||
SDL_PRINTF_FORMAT_STRING const char *fmt, va_list ap) SDL_PRINTF_VARARG_FUNCV(3);
|
||||
|
||||
@@ -365,7 +365,7 @@ extern DECLSPEC void SDLCALL SDL_LogMessageV(int category,
|
||||
* \param priority the priority of the message
|
||||
* \param message the message being output
|
||||
*/
|
||||
-typedef void (SDLCALL *SDL_LogOutputFunction)(void *userdata, int category, SDL_LogPriority priority, const char *message);
|
||||
+typedef void (SDLCALL *SDL_LogOutputFunction)(void *userdata, SDL_LogCategory category, SDL_LogPriority priority, const char *message);
|
||||
|
||||
/**
|
||||
* Get the current log output function.
|
||||
diff --git a/include/SDL3/SDL_messagebox.h b/include/SDL3/SDL_messagebox.h
|
||||
index 3d6855275..2b540a3fa 100644
|
||||
--- a/include/SDL3/SDL_messagebox.h
|
||||
+++ b/include/SDL3/SDL_messagebox.h
|
||||
@@ -58,7 +58,7 @@ typedef enum
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
- Uint32 flags; /**< ::SDL_MessageBoxButtonFlags */
|
||||
+ SDL_MessageBoxButtonFlags flags; /**< ::SDL_MessageBoxButtonFlags */
|
||||
int buttonID; /**< User defined button id (value returned via SDL_ShowMessageBox) */
|
||||
const char *text; /**< The UTF-8 button text */
|
||||
} SDL_MessageBoxButtonData;
|
||||
@@ -94,7 +94,7 @@ typedef struct
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
- Uint32 flags; /**< ::SDL_MessageBoxFlags */
|
||||
+ SDL_MessageBoxFlags flags; /**< ::SDL_MessageBoxFlags */
|
||||
SDL_Window *window; /**< Parent window, can be NULL */
|
||||
const char *title; /**< UTF-8 title */
|
||||
const char *message; /**< UTF-8 message text */
|
||||
@@ -180,7 +180,7 @@ extern DECLSPEC int SDLCALL SDL_ShowMessageBox(const SDL_MessageBoxData *message
|
||||
*
|
||||
* \sa SDL_ShowMessageBox
|
||||
*/
|
||||
-extern DECLSPEC int SDLCALL SDL_ShowSimpleMessageBox(Uint32 flags, const char *title, const char *message, SDL_Window *window);
|
||||
+extern DECLSPEC int SDLCALL SDL_ShowSimpleMessageBox(SDL_MessageBoxFlags flags, const char *title, const char *message, SDL_Window *window);
|
||||
|
||||
|
||||
/* Ends C function definitions when using C++ */
|
||||
diff --git a/include/SDL3/SDL_render.h b/include/SDL3/SDL_render.h
|
||||
index 5024931e7..f1f61be21 100644
|
||||
--- a/include/SDL3/SDL_render.h
|
||||
+++ b/include/SDL3/SDL_render.h
|
||||
@@ -80,7 +80,7 @@ typedef enum
|
||||
typedef struct SDL_RendererInfo
|
||||
{
|
||||
const char *name; /**< The name of the renderer */
|
||||
- Uint32 flags; /**< Supported ::SDL_RendererFlags */
|
||||
+ SDL_RendererFlags flags; /**< Supported ::SDL_RendererFlags */
|
||||
int num_texture_formats; /**< The number of available texture formats */
|
||||
SDL_PixelFormatEnum texture_formats[16]; /**< The available texture formats */
|
||||
int max_texture_width; /**< The maximum texture width */
|
||||
@@ -225,7 +225,7 @@ extern DECLSPEC int SDLCALL SDL_CreateWindowAndRenderer(int width, int height, S
|
||||
* \sa SDL_GetRenderDriver
|
||||
* \sa SDL_GetRendererInfo
|
||||
*/
|
||||
-extern DECLSPEC SDL_Renderer * SDLCALL SDL_CreateRenderer(SDL_Window *window, const char *name, Uint32 flags);
|
||||
+extern DECLSPEC SDL_Renderer * SDLCALL SDL_CreateRenderer(SDL_Window *window, const char *name, SDL_RendererFlags flags);
|
||||
|
||||
/**
|
||||
* Create a 2D rendering context for a window, with the specified properties.
|
||||
diff --git a/include/SDL3/SDL_stdinc.h b/include/SDL3/SDL_stdinc.h
|
||||
index e6a387c31..8aafb96c8 100644
|
||||
--- a/include/SDL3/SDL_stdinc.h
|
||||
+++ b/include/SDL3/SDL_stdinc.h
|
||||
@@ -132,8 +132,8 @@ char *alloca();
|
||||
/**
|
||||
* A boolean type.
|
||||
*/
|
||||
-#define SDL_FALSE 0
|
||||
-#define SDL_TRUE 1
|
||||
+#define SDL_FALSE (SDL_bool)0
|
||||
+#define SDL_TRUE (SDL_bool)1
|
||||
typedef int SDL_bool;
|
||||
|
||||
/**
|
||||
@@ -192,8 +192,8 @@ typedef uint64_t Uint64;
|
||||
* They can be converted between POSIX time_t values with SDL_NS_TO_SECONDS() and SDL_SECONDS_TO_NS(),
|
||||
* and between Windows FILETIME values with SDL_TimeToWindows() and SDL_TimeFromWindows().
|
||||
*/
|
||||
-#define SDL_MAX_TIME SDL_MAX_SINT64
|
||||
-#define SDL_MIN_TIME SDL_MIN_SINT64
|
||||
+#define SDL_MAX_TIME (SDL_Time)SDL_MAX_SINT64
|
||||
+#define SDL_MIN_TIME (SDL_Time)SDL_MIN_SINT64
|
||||
typedef Sint64 SDL_Time;
|
||||
|
||||
/* @} *//* Basic data types */
|
||||
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<RootNamespace>SDL</RootNamespace>
|
||||
<TargetFrameworks Condition=" '$(CI_DONT_TARGET_ANDROID)' != '1' ">net8.0;net8.0-android</TargetFrameworks>
|
||||
<TargetFramework Condition=" '$(CI_DONT_TARGET_ANDROID)' == '1' ">net8.0</TargetFramework>
|
||||
<SupportedOSPlatformVersion>21</SupportedOSPlatformVersion>
|
||||
<Nullable>enable</Nullable>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<NoWarn>$(NoWarn);SYSLIB1054;CA1401</NoWarn>
|
||||
<DefineConstants>$(DefineConstants);JETBRAINS_ANNOTATIONS</DefineConstants>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Label="NuGet">
|
||||
|
|
@ -14,61 +17,90 @@
|
|||
<Copyright>Copyright (c) 2024 ppy Pty Ltd</Copyright>
|
||||
<Product>ppy.SDL3-CS</Product>
|
||||
<PackageId>ppy.SDL3-CS</PackageId>
|
||||
<PackageTags>SDL;SDL3;SDL3-CS</PackageTags>
|
||||
<PackageReleaseNotes>Automated release.</PackageReleaseNotes>
|
||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||
<PackageProjectUrl>https://github.com/ppy/SDL3-CS</PackageProjectUrl>
|
||||
<PackageReadmeFile>README_nuget.md</PackageReadmeFile>
|
||||
<RepositoryUrl>https://github.com/ppy/SDL3-CS</RepositoryUrl>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Include="$(MSBuildThisFileDirectory)..\README_nuget.md" Pack="true" PackagePath="\"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\SDL3-CS.SourceGeneration\SDL3-CS.SourceGeneration.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="JetBrains.Annotations" Version="2023.3.0" />
|
||||
<PackageReference Include="libclang" Version="17.0.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
|
||||
<PackageReference Include="libClangSharp" Version="17.0.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Content Include="$(MSBuildThisFileDirectory)..\native\win-x64\SDL3.dll">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<None Include="$(MSBuildThisFileDirectory)..\native\win-x64\SDL3.dll">
|
||||
<PackagePath>runtimes/win-x64/native</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
</Content>
|
||||
<Content Include="$(MSBuildThisFileDirectory)..\native\win-arm64\SDL3.dll">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="$(MSBuildThisFileDirectory)..\native\win-arm64\SDL3.dll">
|
||||
<PackagePath>runtimes/win-arm64/native</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
</Content>
|
||||
<Content Include="$(MSBuildThisFileDirectory)..\native\win-x86\SDL3.dll">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="$(MSBuildThisFileDirectory)..\native\win-x86\SDL3.dll">
|
||||
<PackagePath>runtimes/win-x86/native</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
</Content>
|
||||
<Content Include="$(MSBuildThisFileDirectory)..\native\osx-x64\libSDL3.dylib">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="$(MSBuildThisFileDirectory)..\native\osx-x64\libSDL3.dylib">
|
||||
<PackagePath>runtimes/osx-x64/native</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
</Content>
|
||||
<Content Include="$(MSBuildThisFileDirectory)..\native\osx-arm64\libSDL3.dylib">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="$(MSBuildThisFileDirectory)..\native\osx-arm64\libSDL3.dylib">
|
||||
<PackagePath>runtimes/osx-arm64/native</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
</Content>
|
||||
<Content Include="$(MSBuildThisFileDirectory)..\native\linux-x64\libSDL3.so">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="$(MSBuildThisFileDirectory)..\native\linux-x64\libSDL3.so">
|
||||
<PackagePath>runtimes/linux-x64/native</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
</Content>
|
||||
<Content Include="$(MSBuildThisFileDirectory)..\native\linux-x86\libSDL3.so">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="$(MSBuildThisFileDirectory)..\native\linux-x86\libSDL3.so">
|
||||
<PackagePath>runtimes/linux-x86/native</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
</Content>
|
||||
<Content Include="$(MSBuildThisFileDirectory)..\native\ios\**\*">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<PackagePath>runtimes/ios/native</PackagePath>
|
||||
</None>
|
||||
<None Include="$(MSBuildThisFileDirectory)..\native\linux-arm64\libSDL3.so">
|
||||
<PackagePath>runtimes/linux-arm64/native</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
</Content>
|
||||
</None>
|
||||
<None Include="$(MSBuildThisFileDirectory)..\native\linux-arm\libSDL3.so">
|
||||
<PackagePath>runtimes/linux-arm/native</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
</None>
|
||||
<None Include="$(MSBuildThisFileDirectory)..\native\ios\SDL3.xcframework\**\*">
|
||||
<PackagePath>runtimes/ios/native/SDL3.xcframework</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
</None>
|
||||
<None Include="$(MSBuildThisFileDirectory)..\native\android\armeabi-v7a\libSDL3.so">
|
||||
<PackagePath>runtimes/android-arm/native</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
</None>
|
||||
<None Include="$(MSBuildThisFileDirectory)..\native\android\arm64-v8a\libSDL3.so">
|
||||
<PackagePath>runtimes/android-arm64/native</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
</None>
|
||||
<None Include="$(MSBuildThisFileDirectory)..\native\android\x86_64\libSDL3.so">
|
||||
<PackagePath>runtimes/android-x64/native</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
</None>
|
||||
<None Include="$(MSBuildThisFileDirectory)..\native\android\x86\libSDL3.so">
|
||||
<PackagePath>runtimes/android-x86/native</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
</None>
|
||||
<EmbeddedJar Include="Jars\SDL3AndroidBridge.jar"/>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,119 @@
|
|||
/*
|
||||
<auto-generated/>
|
||||
C# bindings for Simple DirectMedia Layer.
|
||||
Original copyright notice of input files:
|
||||
|
||||
Simple DirectMedia Layer
|
||||
Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace SDL
|
||||
{
|
||||
public partial struct SDL_AsyncIO
|
||||
{
|
||||
}
|
||||
|
||||
public enum SDL_AsyncIOTaskType
|
||||
{
|
||||
SDL_ASYNCIO_TASK_READ,
|
||||
SDL_ASYNCIO_TASK_WRITE,
|
||||
SDL_ASYNCIO_TASK_CLOSE,
|
||||
}
|
||||
|
||||
public enum SDL_AsyncIOResult
|
||||
{
|
||||
SDL_ASYNCIO_COMPLETE,
|
||||
SDL_ASYNCIO_FAILURE,
|
||||
SDL_ASYNCIO_CANCELED,
|
||||
}
|
||||
|
||||
public unsafe partial struct SDL_AsyncIOOutcome
|
||||
{
|
||||
public SDL_AsyncIO* asyncio;
|
||||
|
||||
public SDL_AsyncIOTaskType type;
|
||||
|
||||
public SDL_AsyncIOResult result;
|
||||
|
||||
[NativeTypeName("void*")]
|
||||
public IntPtr buffer;
|
||||
|
||||
[NativeTypeName("Uint64")]
|
||||
public ulong offset;
|
||||
|
||||
[NativeTypeName("Uint64")]
|
||||
public ulong bytes_requested;
|
||||
|
||||
[NativeTypeName("Uint64")]
|
||||
public ulong bytes_transferred;
|
||||
|
||||
[NativeTypeName("void*")]
|
||||
public IntPtr userdata;
|
||||
}
|
||||
|
||||
public partial struct SDL_AsyncIOQueue
|
||||
{
|
||||
}
|
||||
|
||||
public static unsafe partial class SDL3
|
||||
{
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_AsyncIO* SDL_AsyncIOFromFile([NativeTypeName("const char *")] byte* file, [NativeTypeName("const char *")] byte* mode);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("Sint64")]
|
||||
public static extern long SDL_GetAsyncIOSize(SDL_AsyncIO* asyncio);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ReadAsyncIO(SDL_AsyncIO* asyncio, [NativeTypeName("void*")] IntPtr ptr, [NativeTypeName("Uint64")] ulong offset, [NativeTypeName("Uint64")] ulong size, SDL_AsyncIOQueue* queue, [NativeTypeName("void*")] IntPtr userdata);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_WriteAsyncIO(SDL_AsyncIO* asyncio, [NativeTypeName("void*")] IntPtr ptr, [NativeTypeName("Uint64")] ulong offset, [NativeTypeName("Uint64")] ulong size, SDL_AsyncIOQueue* queue, [NativeTypeName("void*")] IntPtr userdata);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_CloseAsyncIO(SDL_AsyncIO* asyncio, [NativeTypeName("bool")] SDLBool flush, SDL_AsyncIOQueue* queue, [NativeTypeName("void*")] IntPtr userdata);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_AsyncIOQueue* SDL_CreateAsyncIOQueue();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_DestroyAsyncIOQueue(SDL_AsyncIOQueue* queue);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_GetAsyncIOResult(SDL_AsyncIOQueue* queue, SDL_AsyncIOOutcome* outcome);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_WaitAsyncIOResult(SDL_AsyncIOQueue* queue, SDL_AsyncIOOutcome* outcome, [NativeTypeName("Sint32")] int timeoutMS);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_SignalAsyncIOQueue(SDL_AsyncIOQueue* queue);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_LoadFileAsync([NativeTypeName("const char *")] byte* file, SDL_AsyncIOQueue* queue, [NativeTypeName("void*")] IntPtr userdata);
|
||||
}
|
||||
}
|
||||
|
|
@ -33,10 +33,17 @@ namespace SDL
|
|||
public int value;
|
||||
}
|
||||
|
||||
public partial struct SDL_AtomicU32
|
||||
{
|
||||
[NativeTypeName("Uint32")]
|
||||
public uint value;
|
||||
}
|
||||
|
||||
public static unsafe partial class SDL3
|
||||
{
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_TryLockSpinlock([NativeTypeName("SDL_SpinLock *")] int* @lock);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_TryLockSpinlock([NativeTypeName("SDL_SpinLock *")] int* @lock);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_LockSpinlock([NativeTypeName("SDL_SpinLock *")] int* @lock);
|
||||
|
|
@ -51,26 +58,44 @@ namespace SDL
|
|||
public static extern void SDL_MemoryBarrierAcquireFunction();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_AtomicCompareAndSwap(SDL_AtomicInt* a, int oldval, int newval);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_CompareAndSwapAtomicInt(SDL_AtomicInt* a, int oldval, int newval);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_AtomicSet(SDL_AtomicInt* a, int v);
|
||||
public static extern int SDL_SetAtomicInt(SDL_AtomicInt* a, int v);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_AtomicGet(SDL_AtomicInt* a);
|
||||
public static extern int SDL_GetAtomicInt(SDL_AtomicInt* a);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_AtomicAdd(SDL_AtomicInt* a, int v);
|
||||
public static extern int SDL_AddAtomicInt(SDL_AtomicInt* a, int v);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_AtomicCompareAndSwapPointer([NativeTypeName("void **")] IntPtr* a, [NativeTypeName("void*")] IntPtr oldval, [NativeTypeName("void*")] IntPtr newval);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_CompareAndSwapAtomicU32(SDL_AtomicU32* a, [NativeTypeName("Uint32")] uint oldval, [NativeTypeName("Uint32")] uint newval);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("Uint32")]
|
||||
public static extern uint SDL_SetAtomicU32(SDL_AtomicU32* a, [NativeTypeName("Uint32")] uint v);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("Uint32")]
|
||||
public static extern uint SDL_GetAtomicU32(SDL_AtomicU32* a);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("Uint32")]
|
||||
public static extern uint SDL_AddAtomicU32(SDL_AtomicU32* a, int v);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_CompareAndSwapAtomicPointer([NativeTypeName("void **")] IntPtr* a, [NativeTypeName("void*")] IntPtr oldval, [NativeTypeName("void*")] IntPtr newval);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("void*")]
|
||||
public static extern IntPtr SDL_AtomicSetPtr([NativeTypeName("void **")] IntPtr* a, [NativeTypeName("void*")] IntPtr v);
|
||||
public static extern IntPtr SDL_SetAtomicPointer([NativeTypeName("void **")] IntPtr* a, [NativeTypeName("void*")] IntPtr v);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("void*")]
|
||||
public static extern IntPtr SDL_AtomicGetPtr([NativeTypeName("void **")] IntPtr* a);
|
||||
public static extern IntPtr SDL_GetAtomicPointer([NativeTypeName("void **")] IntPtr* a);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,6 +28,19 @@ using System.Runtime.InteropServices;
|
|||
|
||||
namespace SDL
|
||||
{
|
||||
public enum SDL_AudioFormat : uint
|
||||
{
|
||||
SDL_AUDIO_UNKNOWN = 0x0000U,
|
||||
SDL_AUDIO_U8 = 0x0008U,
|
||||
SDL_AUDIO_S8 = 0x8008U,
|
||||
SDL_AUDIO_S16LE = 0x8010U,
|
||||
SDL_AUDIO_S16BE = 0x9010U,
|
||||
SDL_AUDIO_S32LE = 0x8020U,
|
||||
SDL_AUDIO_S32BE = 0x9020U,
|
||||
SDL_AUDIO_F32LE = 0x8120U,
|
||||
SDL_AUDIO_F32BE = 0x9120U,
|
||||
}
|
||||
|
||||
public partial struct SDL_AudioSpec
|
||||
{
|
||||
public SDL_AudioFormat format;
|
||||
|
|
@ -55,41 +68,65 @@ namespace SDL
|
|||
public static extern byte* Unsafe_SDL_GetCurrentAudioDriver();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_AudioDeviceID* SDL_GetAudioOutputDevices(int* count);
|
||||
public static extern SDL_AudioDeviceID* SDL_GetAudioPlaybackDevices(int* count);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_AudioDeviceID* SDL_GetAudioCaptureDevices(int* count);
|
||||
public static extern SDL_AudioDeviceID* SDL_GetAudioRecordingDevices(int* count);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetAudioDeviceName", ExactSpelling = true)]
|
||||
[return: NativeTypeName("char *")]
|
||||
[return: NativeTypeName("const char *")]
|
||||
public static extern byte* Unsafe_SDL_GetAudioDeviceName(SDL_AudioDeviceID devid);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_GetAudioDeviceFormat(SDL_AudioDeviceID devid, SDL_AudioSpec* spec, int* sample_frames);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_GetAudioDeviceFormat(SDL_AudioDeviceID devid, SDL_AudioSpec* spec, int* sample_frames);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int* SDL_GetAudioDeviceChannelMap(SDL_AudioDeviceID devid, int* count);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_AudioDeviceID SDL_OpenAudioDevice(SDL_AudioDeviceID devid, [NativeTypeName("const SDL_AudioSpec *")] SDL_AudioSpec* spec);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_PauseAudioDevice(SDL_AudioDeviceID dev);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_IsAudioDevicePhysical(SDL_AudioDeviceID devid);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_ResumeAudioDevice(SDL_AudioDeviceID dev);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_IsAudioDevicePlayback(SDL_AudioDeviceID devid);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_AudioDevicePaused(SDL_AudioDeviceID dev);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_PauseAudioDevice(SDL_AudioDeviceID devid);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ResumeAudioDevice(SDL_AudioDeviceID devid);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_AudioDevicePaused(SDL_AudioDeviceID devid);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern float SDL_GetAudioDeviceGain(SDL_AudioDeviceID devid);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetAudioDeviceGain(SDL_AudioDeviceID devid, float gain);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_CloseAudioDevice(SDL_AudioDeviceID devid);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_BindAudioStreams(SDL_AudioDeviceID devid, SDL_AudioStream** streams, int num_streams);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_BindAudioStreams(SDL_AudioDeviceID devid, [NativeTypeName("SDL_AudioStream *const *")] SDL_AudioStream** streams, int num_streams);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_BindAudioStream(SDL_AudioDeviceID devid, SDL_AudioStream* stream);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_BindAudioStream(SDL_AudioDeviceID devid, SDL_AudioStream* stream);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_UnbindAudioStreams(SDL_AudioStream** streams, int num_streams);
|
||||
public static extern void SDL_UnbindAudioStreams([NativeTypeName("SDL_AudioStream *const *")] SDL_AudioStream** streams, int num_streams);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_UnbindAudioStream(SDL_AudioStream* stream);
|
||||
|
|
@ -104,19 +141,52 @@ namespace SDL
|
|||
public static extern SDL_PropertiesID SDL_GetAudioStreamProperties(SDL_AudioStream* stream);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_GetAudioStreamFormat(SDL_AudioStream* stream, SDL_AudioSpec* src_spec, SDL_AudioSpec* dst_spec);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_GetAudioStreamFormat(SDL_AudioStream* stream, SDL_AudioSpec* src_spec, SDL_AudioSpec* dst_spec);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_SetAudioStreamFormat(SDL_AudioStream* stream, [NativeTypeName("const SDL_AudioSpec *")] SDL_AudioSpec* src_spec, [NativeTypeName("const SDL_AudioSpec *")] SDL_AudioSpec* dst_spec);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetAudioStreamFormat(SDL_AudioStream* stream, [NativeTypeName("const SDL_AudioSpec *")] SDL_AudioSpec* src_spec, [NativeTypeName("const SDL_AudioSpec *")] SDL_AudioSpec* dst_spec);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern float SDL_GetAudioStreamFrequencyRatio(SDL_AudioStream* stream);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_SetAudioStreamFrequencyRatio(SDL_AudioStream* stream, float ratio);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetAudioStreamFrequencyRatio(SDL_AudioStream* stream, float ratio);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_PutAudioStreamData(SDL_AudioStream* stream, [NativeTypeName("const void *")] IntPtr buf, int len);
|
||||
public static extern float SDL_GetAudioStreamGain(SDL_AudioStream* stream);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetAudioStreamGain(SDL_AudioStream* stream, float gain);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int* SDL_GetAudioStreamInputChannelMap(SDL_AudioStream* stream, int* count);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int* SDL_GetAudioStreamOutputChannelMap(SDL_AudioStream* stream, int* count);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetAudioStreamInputChannelMap(SDL_AudioStream* stream, [NativeTypeName("const int *")] int* chmap, int count);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetAudioStreamOutputChannelMap(SDL_AudioStream* stream, [NativeTypeName("const int *")] int* chmap, int count);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_PutAudioStreamData(SDL_AudioStream* stream, [NativeTypeName("const void *")] IntPtr buf, int len);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_PutAudioStreamDataNoCopy(SDL_AudioStream* stream, [NativeTypeName("const void *")] IntPtr buf, int len, [NativeTypeName("SDL_AudioStreamDataCompleteCallback")] delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, void> callback, [NativeTypeName("void*")] IntPtr userdata);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_PutAudioStreamPlanarData(SDL_AudioStream* stream, [NativeTypeName("const void *const *")] IntPtr* channel_buffers, int num_channels, int num_samples);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_GetAudioStreamData(SDL_AudioStream* stream, [NativeTypeName("void*")] IntPtr buf, int len);
|
||||
|
|
@ -128,22 +198,40 @@ namespace SDL
|
|||
public static extern int SDL_GetAudioStreamQueued(SDL_AudioStream* stream);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_FlushAudioStream(SDL_AudioStream* stream);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_FlushAudioStream(SDL_AudioStream* stream);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_ClearAudioStream(SDL_AudioStream* stream);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ClearAudioStream(SDL_AudioStream* stream);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_LockAudioStream(SDL_AudioStream* stream);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_PauseAudioStreamDevice(SDL_AudioStream* stream);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_UnlockAudioStream(SDL_AudioStream* stream);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ResumeAudioStreamDevice(SDL_AudioStream* stream);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_SetAudioStreamGetCallback(SDL_AudioStream* stream, [NativeTypeName("SDL_AudioStreamCallback")] delegate* unmanaged[Cdecl]<IntPtr, SDL_AudioStream*, int, int, void> callback, [NativeTypeName("void*")] IntPtr userdata);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_AudioStreamDevicePaused(SDL_AudioStream* stream);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_SetAudioStreamPutCallback(SDL_AudioStream* stream, [NativeTypeName("SDL_AudioStreamCallback")] delegate* unmanaged[Cdecl]<IntPtr, SDL_AudioStream*, int, int, void> callback, [NativeTypeName("void*")] IntPtr userdata);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_LockAudioStream(SDL_AudioStream* stream);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_UnlockAudioStream(SDL_AudioStream* stream);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetAudioStreamGetCallback(SDL_AudioStream* stream, [NativeTypeName("SDL_AudioStreamCallback")] delegate* unmanaged[Cdecl]<IntPtr, SDL_AudioStream*, int, int, void> callback, [NativeTypeName("void*")] IntPtr userdata);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetAudioStreamPutCallback(SDL_AudioStream* stream, [NativeTypeName("SDL_AudioStreamCallback")] delegate* unmanaged[Cdecl]<IntPtr, SDL_AudioStream*, int, int, void> callback, [NativeTypeName("void*")] IntPtr userdata);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_DestroyAudioStream(SDL_AudioStream* stream);
|
||||
|
|
@ -152,66 +240,51 @@ namespace SDL
|
|||
public static extern SDL_AudioStream* SDL_OpenAudioDeviceStream(SDL_AudioDeviceID devid, [NativeTypeName("const SDL_AudioSpec *")] SDL_AudioSpec* spec, [NativeTypeName("SDL_AudioStreamCallback")] delegate* unmanaged[Cdecl]<IntPtr, SDL_AudioStream*, int, int, void> callback, [NativeTypeName("void*")] IntPtr userdata);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_SetAudioPostmixCallback(SDL_AudioDeviceID devid, [NativeTypeName("SDL_AudioPostmixCallback")] delegate* unmanaged[Cdecl]<IntPtr, SDL_AudioSpec*, float*, int, void> callback, [NativeTypeName("void*")] IntPtr userdata);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetAudioPostmixCallback(SDL_AudioDeviceID devid, [NativeTypeName("SDL_AudioPostmixCallback")] delegate* unmanaged[Cdecl]<IntPtr, SDL_AudioSpec*, float*, int, void> callback, [NativeTypeName("void*")] IntPtr userdata);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_LoadWAV_IO(SDL_IOStream* src, SDL_bool closeio, SDL_AudioSpec* spec, [NativeTypeName("Uint8 **")] byte** audio_buf, [NativeTypeName("Uint32 *")] uint* audio_len);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_LoadWAV_IO(SDL_IOStream* src, [NativeTypeName("bool")] SDLBool closeio, SDL_AudioSpec* spec, [NativeTypeName("Uint8 **")] byte** audio_buf, [NativeTypeName("Uint32 *")] uint* audio_len);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_LoadWAV([NativeTypeName("const char *")] byte* path, SDL_AudioSpec* spec, [NativeTypeName("Uint8 **")] byte** audio_buf, [NativeTypeName("Uint32 *")] uint* audio_len);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_LoadWAV([NativeTypeName("const char *")] byte* path, SDL_AudioSpec* spec, [NativeTypeName("Uint8 **")] byte** audio_buf, [NativeTypeName("Uint32 *")] uint* audio_len);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_MixAudioFormat([NativeTypeName("Uint8 *")] byte* dst, [NativeTypeName("const Uint8 *")] byte* src, SDL_AudioFormat format, [NativeTypeName("Uint32")] uint len, int volume);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_MixAudio([NativeTypeName("Uint8 *")] byte* dst, [NativeTypeName("const Uint8 *")] byte* src, SDL_AudioFormat format, [NativeTypeName("Uint32")] uint len, float volume);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_ConvertAudioSamples([NativeTypeName("const SDL_AudioSpec *")] SDL_AudioSpec* src_spec, [NativeTypeName("const Uint8 *")] byte* src_data, int src_len, [NativeTypeName("const SDL_AudioSpec *")] SDL_AudioSpec* dst_spec, [NativeTypeName("Uint8 **")] byte** dst_data, int* dst_len);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ConvertAudioSamples([NativeTypeName("const SDL_AudioSpec *")] SDL_AudioSpec* src_spec, [NativeTypeName("const Uint8 *")] byte* src_data, int src_len, [NativeTypeName("const SDL_AudioSpec *")] SDL_AudioSpec* dst_spec, [NativeTypeName("Uint8 **")] byte** dst_data, int* dst_len);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetAudioFormatName", ExactSpelling = true)]
|
||||
[return: NativeTypeName("const char *")]
|
||||
public static extern byte* Unsafe_SDL_GetAudioFormatName(SDL_AudioFormat format);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_GetSilenceValueForFormat(SDL_AudioFormat format);
|
||||
|
||||
[NativeTypeName("#define SDL_AUDIO_MASK_BITSIZE (0xFF)")]
|
||||
public const int SDL_AUDIO_MASK_BITSIZE = (0xFF);
|
||||
[NativeTypeName("#define SDL_AUDIO_MASK_BITSIZE (0xFFu)")]
|
||||
public const uint SDL_AUDIO_MASK_BITSIZE = (0xFFU);
|
||||
|
||||
[NativeTypeName("#define SDL_AUDIO_MASK_FLOAT (1<<8)")]
|
||||
public const int SDL_AUDIO_MASK_FLOAT = (1 << 8);
|
||||
[NativeTypeName("#define SDL_AUDIO_MASK_FLOAT (1u<<8)")]
|
||||
public const uint SDL_AUDIO_MASK_FLOAT = (1U << 8);
|
||||
|
||||
[NativeTypeName("#define SDL_AUDIO_MASK_BIG_ENDIAN (1<<12)")]
|
||||
public const int SDL_AUDIO_MASK_BIG_ENDIAN = (1 << 12);
|
||||
[NativeTypeName("#define SDL_AUDIO_MASK_BIG_ENDIAN (1u<<12)")]
|
||||
public const uint SDL_AUDIO_MASK_BIG_ENDIAN = (1U << 12);
|
||||
|
||||
[NativeTypeName("#define SDL_AUDIO_MASK_SIGNED (1<<15)")]
|
||||
public const int SDL_AUDIO_MASK_SIGNED = (1 << 15);
|
||||
[NativeTypeName("#define SDL_AUDIO_MASK_SIGNED (1u<<15)")]
|
||||
public const uint SDL_AUDIO_MASK_SIGNED = (1U << 15);
|
||||
|
||||
[NativeTypeName("#define SDL_AUDIO_U8 0x0008")]
|
||||
public const int SDL_AUDIO_U8 = 0x0008;
|
||||
[NativeTypeName("#define SDL_AUDIO_DEVICE_DEFAULT_PLAYBACK ((SDL_AudioDeviceID) 0xFFFFFFFFu)")]
|
||||
public const SDL_AudioDeviceID SDL_AUDIO_DEVICE_DEFAULT_PLAYBACK = ((SDL_AudioDeviceID)(0xFFFFFFFFU));
|
||||
|
||||
[NativeTypeName("#define SDL_AUDIO_S8 0x8008")]
|
||||
public const int SDL_AUDIO_S8 = 0x8008;
|
||||
[NativeTypeName("#define SDL_AUDIO_DEVICE_DEFAULT_RECORDING ((SDL_AudioDeviceID) 0xFFFFFFFEu)")]
|
||||
public const SDL_AudioDeviceID SDL_AUDIO_DEVICE_DEFAULT_RECORDING = ((SDL_AudioDeviceID)(0xFFFFFFFEU));
|
||||
|
||||
[NativeTypeName("#define SDL_AUDIO_S16LE 0x8010")]
|
||||
public const int SDL_AUDIO_S16LE = 0x8010;
|
||||
|
||||
[NativeTypeName("#define SDL_AUDIO_S16BE 0x9010")]
|
||||
public const int SDL_AUDIO_S16BE = 0x9010;
|
||||
|
||||
[NativeTypeName("#define SDL_AUDIO_S32LE 0x8020")]
|
||||
public const int SDL_AUDIO_S32LE = 0x8020;
|
||||
|
||||
[NativeTypeName("#define SDL_AUDIO_S32BE 0x9020")]
|
||||
public const int SDL_AUDIO_S32BE = 0x9020;
|
||||
|
||||
[NativeTypeName("#define SDL_AUDIO_F32LE 0x8120")]
|
||||
public const int SDL_AUDIO_F32LE = 0x8120;
|
||||
|
||||
[NativeTypeName("#define SDL_AUDIO_F32BE 0x9120")]
|
||||
public const int SDL_AUDIO_F32BE = 0x9120;
|
||||
|
||||
[NativeTypeName("#define SDL_AUDIO_DEVICE_DEFAULT_OUTPUT ((SDL_AudioDeviceID) 0xFFFFFFFF)")]
|
||||
public const SDL_AudioDeviceID SDL_AUDIO_DEVICE_DEFAULT_OUTPUT = ((SDL_AudioDeviceID)(0xFFFFFFFF));
|
||||
|
||||
[NativeTypeName("#define SDL_AUDIO_DEVICE_DEFAULT_CAPTURE ((SDL_AudioDeviceID) 0xFFFFFFFE)")]
|
||||
public const SDL_AudioDeviceID SDL_AUDIO_DEVICE_DEFAULT_CAPTURE = ((SDL_AudioDeviceID)(0xFFFFFFFE));
|
||||
|
||||
[NativeTypeName("#define SDL_MIX_MAXVOLUME 128")]
|
||||
public const int SDL_MIX_MAXVOLUME = 128;
|
||||
[NativeTypeName("#define SDL_PROP_AUDIOSTREAM_AUTO_CLEANUP_BOOLEAN \"SDL.audiostream.auto_cleanup\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_AUDIOSTREAM_AUTO_CLEANUP_BOOLEAN => "SDL.audiostream.auto_cleanup"u8;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,16 +27,6 @@ using System.Runtime.InteropServices;
|
|||
|
||||
namespace SDL
|
||||
{
|
||||
public enum SDL_BlendMode
|
||||
{
|
||||
SDL_BLENDMODE_NONE = 0x00000000,
|
||||
SDL_BLENDMODE_BLEND = 0x00000001,
|
||||
SDL_BLENDMODE_ADD = 0x00000002,
|
||||
SDL_BLENDMODE_MOD = 0x00000004,
|
||||
SDL_BLENDMODE_MUL = 0x00000008,
|
||||
SDL_BLENDMODE_INVALID = 0x7FFFFFFF,
|
||||
}
|
||||
|
||||
public enum SDL_BlendOperation
|
||||
{
|
||||
SDL_BLENDOPERATION_ADD = 0x1,
|
||||
|
|
@ -64,5 +54,29 @@ namespace SDL
|
|||
{
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_BlendMode SDL_ComposeCustomBlendMode(SDL_BlendFactor srcColorFactor, SDL_BlendFactor dstColorFactor, SDL_BlendOperation colorOperation, SDL_BlendFactor srcAlphaFactor, SDL_BlendFactor dstAlphaFactor, SDL_BlendOperation alphaOperation);
|
||||
|
||||
[NativeTypeName("#define SDL_BLENDMODE_NONE 0x00000000u")]
|
||||
public const uint SDL_BLENDMODE_NONE = 0x00000000U;
|
||||
|
||||
[NativeTypeName("#define SDL_BLENDMODE_BLEND 0x00000001u")]
|
||||
public const uint SDL_BLENDMODE_BLEND = 0x00000001U;
|
||||
|
||||
[NativeTypeName("#define SDL_BLENDMODE_BLEND_PREMULTIPLIED 0x00000010u")]
|
||||
public const uint SDL_BLENDMODE_BLEND_PREMULTIPLIED = 0x00000010U;
|
||||
|
||||
[NativeTypeName("#define SDL_BLENDMODE_ADD 0x00000002u")]
|
||||
public const uint SDL_BLENDMODE_ADD = 0x00000002U;
|
||||
|
||||
[NativeTypeName("#define SDL_BLENDMODE_ADD_PREMULTIPLIED 0x00000020u")]
|
||||
public const uint SDL_BLENDMODE_ADD_PREMULTIPLIED = 0x00000020U;
|
||||
|
||||
[NativeTypeName("#define SDL_BLENDMODE_MOD 0x00000004u")]
|
||||
public const uint SDL_BLENDMODE_MOD = 0x00000004U;
|
||||
|
||||
[NativeTypeName("#define SDL_BLENDMODE_MUL 0x00000008u")]
|
||||
public const uint SDL_BLENDMODE_MUL = 0x00000008U;
|
||||
|
||||
[NativeTypeName("#define SDL_BLENDMODE_INVALID 0x7FFFFFFFu")]
|
||||
public const uint SDL_BLENDMODE_INVALID = 0x7FFFFFFFU;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,15 +33,17 @@ namespace SDL
|
|||
|
||||
public partial struct SDL_CameraSpec
|
||||
{
|
||||
public SDL_PixelFormatEnum format;
|
||||
public SDL_PixelFormat format;
|
||||
|
||||
public SDL_Colorspace colorspace;
|
||||
|
||||
public int width;
|
||||
|
||||
public int height;
|
||||
|
||||
public int interval_numerator;
|
||||
public int framerate_numerator;
|
||||
|
||||
public int interval_denominator;
|
||||
public int framerate_denominator;
|
||||
}
|
||||
|
||||
public enum SDL_CameraPosition
|
||||
|
|
@ -51,6 +53,13 @@ namespace SDL
|
|||
SDL_CAMERA_POSITION_BACK_FACING,
|
||||
}
|
||||
|
||||
public enum SDL_CameraPermissionState
|
||||
{
|
||||
SDL_CAMERA_PERMISSION_STATE_DENIED = -1,
|
||||
SDL_CAMERA_PERMISSION_STATE_PENDING,
|
||||
SDL_CAMERA_PERMISSION_STATE_APPROVED,
|
||||
}
|
||||
|
||||
public static unsafe partial class SDL3
|
||||
{
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
|
|
@ -65,38 +74,39 @@ namespace SDL
|
|||
public static extern byte* Unsafe_SDL_GetCurrentCameraDriver();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_CameraDeviceID* SDL_GetCameraDevices(int* count);
|
||||
public static extern SDL_CameraID* SDL_GetCameras(int* count);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_CameraSpec* SDL_GetCameraDeviceSupportedFormats(SDL_CameraDeviceID devid, int* count);
|
||||
public static extern SDL_CameraSpec** SDL_GetCameraSupportedFormats(SDL_CameraID instance_id, int* count);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetCameraDeviceName", ExactSpelling = true)]
|
||||
[return: NativeTypeName("char *")]
|
||||
public static extern byte* Unsafe_SDL_GetCameraDeviceName(SDL_CameraDeviceID instance_id);
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetCameraName", ExactSpelling = true)]
|
||||
[return: NativeTypeName("const char *")]
|
||||
public static extern byte* Unsafe_SDL_GetCameraName(SDL_CameraID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_CameraPosition SDL_GetCameraDevicePosition(SDL_CameraDeviceID instance_id);
|
||||
public static extern SDL_CameraPosition SDL_GetCameraPosition(SDL_CameraID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_Camera* SDL_OpenCameraDevice(SDL_CameraDeviceID instance_id, [NativeTypeName("const SDL_CameraSpec *")] SDL_CameraSpec* spec);
|
||||
public static extern SDL_Camera* SDL_OpenCamera(SDL_CameraID instance_id, [NativeTypeName("const SDL_CameraSpec *")] SDL_CameraSpec* spec);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_GetCameraPermissionState(SDL_Camera* camera);
|
||||
public static extern SDL_CameraPermissionState SDL_GetCameraPermissionState(SDL_Camera* camera);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_CameraDeviceID SDL_GetCameraInstanceID(SDL_Camera* camera);
|
||||
public static extern SDL_CameraID SDL_GetCameraID(SDL_Camera* camera);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_PropertiesID SDL_GetCameraProperties(SDL_Camera* camera);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_GetCameraFormat(SDL_Camera* camera, SDL_CameraSpec* spec);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_GetCameraFormat(SDL_Camera* camera, SDL_CameraSpec* spec);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_Surface* SDL_AcquireCameraFrame(SDL_Camera* camera, [NativeTypeName("Uint64 *")] ulong* timestampNS);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_ReleaseCameraFrame(SDL_Camera* camera, SDL_Surface* frame);
|
||||
public static extern void SDL_ReleaseCameraFrame(SDL_Camera* camera, SDL_Surface* frame);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_CloseCamera(SDL_Camera* camera);
|
||||
|
|
|
|||
|
|
@ -31,36 +31,47 @@ namespace SDL
|
|||
public static unsafe partial class SDL3
|
||||
{
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_SetClipboardText([NativeTypeName("const char *")] byte* text);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetClipboardText([NativeTypeName("const char *")] byte* text);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetClipboardText", ExactSpelling = true)]
|
||||
[return: NativeTypeName("char *")]
|
||||
public static extern byte* Unsafe_SDL_GetClipboardText();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HasClipboardText();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HasClipboardText();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_SetPrimarySelectionText([NativeTypeName("const char *")] byte* text);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetPrimarySelectionText([NativeTypeName("const char *")] byte* text);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetPrimarySelectionText", ExactSpelling = true)]
|
||||
[return: NativeTypeName("char *")]
|
||||
public static extern byte* Unsafe_SDL_GetPrimarySelectionText();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HasPrimarySelectionText();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HasPrimarySelectionText();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_SetClipboardData([NativeTypeName("SDL_ClipboardDataCallback")] delegate* unmanaged[Cdecl]<IntPtr, byte*, nuint*, IntPtr> callback, [NativeTypeName("SDL_ClipboardCleanupCallback")] delegate* unmanaged[Cdecl]<IntPtr, void> cleanup, [NativeTypeName("void*")] IntPtr userdata, [NativeTypeName("const char **")] byte** mime_types, [NativeTypeName("size_t")] nuint num_mime_types);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetClipboardData([NativeTypeName("SDL_ClipboardDataCallback")] delegate* unmanaged[Cdecl]<IntPtr, byte*, nuint*, IntPtr> callback, [NativeTypeName("SDL_ClipboardCleanupCallback")] delegate* unmanaged[Cdecl]<IntPtr, void> cleanup, [NativeTypeName("void*")] IntPtr userdata, [NativeTypeName("const char **")] byte** mime_types, [NativeTypeName("size_t")] nuint num_mime_types);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_ClearClipboardData();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ClearClipboardData();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("void*")]
|
||||
public static extern IntPtr SDL_GetClipboardData([NativeTypeName("const char *")] byte* mime_type, [NativeTypeName("size_t *")] nuint* size);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HasClipboardData([NativeTypeName("const char *")] byte* mime_type);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HasClipboardData([NativeTypeName("const char *")] byte* mime_type);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("char **")]
|
||||
public static extern byte** SDL_GetClipboardMimeTypes([NativeTypeName("size_t *")] nuint* num_mime_types);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,59 +30,76 @@ namespace SDL
|
|||
public static partial class SDL3
|
||||
{
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_GetCPUCount();
|
||||
public static extern int SDL_GetNumLogicalCPUCores();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_GetCPUCacheLineSize();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HasAltiVec();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HasAltiVec();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HasMMX();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HasMMX();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HasSSE();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HasSSE();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HasSSE2();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HasSSE2();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HasSSE3();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HasSSE3();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HasSSE41();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HasSSE41();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HasSSE42();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HasSSE42();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HasAVX();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HasAVX();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HasAVX2();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HasAVX2();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HasAVX512F();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HasAVX512F();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HasARMSIMD();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HasARMSIMD();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HasNEON();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HasNEON();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HasLSX();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HasLSX();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HasLASX();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HasLASX();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_GetSystemRAM();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("size_t")]
|
||||
public static extern nuint SDL_SIMDGetAlignment();
|
||||
public static extern nuint SDL_GetSIMDAlignment();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_GetSystemPageSize();
|
||||
|
||||
[NativeTypeName("#define SDL_CACHELINE_SIZE 128")]
|
||||
public const int SDL_CACHELINE_SIZE = 128;
|
||||
|
|
|
|||
|
|
@ -37,15 +37,49 @@ namespace SDL
|
|||
public byte* pattern;
|
||||
}
|
||||
|
||||
public enum SDL_FileDialogType
|
||||
{
|
||||
SDL_FILEDIALOG_OPENFILE,
|
||||
SDL_FILEDIALOG_SAVEFILE,
|
||||
SDL_FILEDIALOG_OPENFOLDER,
|
||||
}
|
||||
|
||||
public static unsafe partial class SDL3
|
||||
{
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_ShowOpenFileDialog([NativeTypeName("SDL_DialogFileCallback")] delegate* unmanaged[Cdecl]<IntPtr, byte**, int, void> callback, [NativeTypeName("void*")] IntPtr userdata, SDL_Window* window, [NativeTypeName("const SDL_DialogFileFilter *")] SDL_DialogFileFilter* filters, [NativeTypeName("const char *")] byte* default_location, SDL_bool allow_many);
|
||||
public static extern void SDL_ShowOpenFileDialog([NativeTypeName("SDL_DialogFileCallback")] delegate* unmanaged[Cdecl]<IntPtr, byte**, int, void> callback, [NativeTypeName("void*")] IntPtr userdata, SDL_Window* window, [NativeTypeName("const SDL_DialogFileFilter *")] SDL_DialogFileFilter* filters, int nfilters, [NativeTypeName("const char *")] byte* default_location, [NativeTypeName("bool")] SDLBool allow_many);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_ShowSaveFileDialog([NativeTypeName("SDL_DialogFileCallback")] delegate* unmanaged[Cdecl]<IntPtr, byte**, int, void> callback, [NativeTypeName("void*")] IntPtr userdata, SDL_Window* window, [NativeTypeName("const SDL_DialogFileFilter *")] SDL_DialogFileFilter* filters, [NativeTypeName("const char *")] byte* default_location);
|
||||
public static extern void SDL_ShowSaveFileDialog([NativeTypeName("SDL_DialogFileCallback")] delegate* unmanaged[Cdecl]<IntPtr, byte**, int, void> callback, [NativeTypeName("void*")] IntPtr userdata, SDL_Window* window, [NativeTypeName("const SDL_DialogFileFilter *")] SDL_DialogFileFilter* filters, int nfilters, [NativeTypeName("const char *")] byte* default_location);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_ShowOpenFolderDialog([NativeTypeName("SDL_DialogFileCallback")] delegate* unmanaged[Cdecl]<IntPtr, byte**, int, void> callback, [NativeTypeName("void*")] IntPtr userdata, SDL_Window* window, [NativeTypeName("const char *")] byte* default_location, SDL_bool allow_many);
|
||||
public static extern void SDL_ShowOpenFolderDialog([NativeTypeName("SDL_DialogFileCallback")] delegate* unmanaged[Cdecl]<IntPtr, byte**, int, void> callback, [NativeTypeName("void*")] IntPtr userdata, SDL_Window* window, [NativeTypeName("const char *")] byte* default_location, [NativeTypeName("bool")] SDLBool allow_many);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_ShowFileDialogWithProperties(SDL_FileDialogType type, [NativeTypeName("SDL_DialogFileCallback")] delegate* unmanaged[Cdecl]<IntPtr, byte**, int, void> callback, [NativeTypeName("void*")] IntPtr userdata, SDL_PropertiesID props);
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_FILE_DIALOG_FILTERS_POINTER \"SDL.filedialog.filters\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_FILE_DIALOG_FILTERS_POINTER => "SDL.filedialog.filters"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_FILE_DIALOG_NFILTERS_NUMBER \"SDL.filedialog.nfilters\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_FILE_DIALOG_NFILTERS_NUMBER => "SDL.filedialog.nfilters"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_FILE_DIALOG_WINDOW_POINTER \"SDL.filedialog.window\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_FILE_DIALOG_WINDOW_POINTER => "SDL.filedialog.window"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_FILE_DIALOG_LOCATION_STRING \"SDL.filedialog.location\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_FILE_DIALOG_LOCATION_STRING => "SDL.filedialog.location"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_FILE_DIALOG_MANY_BOOLEAN \"SDL.filedialog.many\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_FILE_DIALOG_MANY_BOOLEAN => "SDL.filedialog.many"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_FILE_DIALOG_TITLE_STRING \"SDL.filedialog.title\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_FILE_DIALOG_TITLE_STRING => "SDL.filedialog.title"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_FILE_DIALOG_ACCEPT_STRING \"SDL.filedialog.accept\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_FILE_DIALOG_ACCEPT_STRING => "SDL.filedialog.accept"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_FILE_DIALOG_CANCEL_STRING \"SDL.filedialog.cancel\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_FILE_DIALOG_CANCEL_STRING => "SDL.filedialog.cancel"u8;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,29 +27,26 @@ using System.Runtime.InteropServices;
|
|||
|
||||
namespace SDL
|
||||
{
|
||||
public enum SDL_errorcode
|
||||
{
|
||||
SDL_ENOMEM,
|
||||
SDL_EFREAD,
|
||||
SDL_EFWRITE,
|
||||
SDL_EFSEEK,
|
||||
SDL_UNSUPPORTED,
|
||||
SDL_LASTERROR,
|
||||
}
|
||||
|
||||
public static unsafe partial class SDL3
|
||||
{
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_SetError([NativeTypeName("const char *")] byte* fmt, __arglist);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetError([NativeTypeName("const char *")] byte* fmt, __arglist);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetErrorV([NativeTypeName("const char *")] byte* fmt, [NativeTypeName("va_list")] byte* ap);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_OutOfMemory();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetError", ExactSpelling = true)]
|
||||
[return: NativeTypeName("const char *")]
|
||||
public static extern byte* Unsafe_SDL_GetError();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_ClearError();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_Error(SDL_errorcode code);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ClearError();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,16 +45,19 @@ namespace SDL
|
|||
SDL_EVENT_DISPLAY_ADDED,
|
||||
SDL_EVENT_DISPLAY_REMOVED,
|
||||
SDL_EVENT_DISPLAY_MOVED,
|
||||
SDL_EVENT_DISPLAY_DESKTOP_MODE_CHANGED,
|
||||
SDL_EVENT_DISPLAY_CURRENT_MODE_CHANGED,
|
||||
SDL_EVENT_DISPLAY_CONTENT_SCALE_CHANGED,
|
||||
SDL_EVENT_DISPLAY_HDR_STATE_CHANGED,
|
||||
SDL_EVENT_DISPLAY_USABLE_BOUNDS_CHANGED,
|
||||
SDL_EVENT_DISPLAY_FIRST = SDL_EVENT_DISPLAY_ORIENTATION,
|
||||
SDL_EVENT_DISPLAY_LAST = SDL_EVENT_DISPLAY_HDR_STATE_CHANGED,
|
||||
SDL_EVENT_DISPLAY_LAST = SDL_EVENT_DISPLAY_USABLE_BOUNDS_CHANGED,
|
||||
SDL_EVENT_WINDOW_SHOWN = 0x202,
|
||||
SDL_EVENT_WINDOW_HIDDEN,
|
||||
SDL_EVENT_WINDOW_EXPOSED,
|
||||
SDL_EVENT_WINDOW_MOVED,
|
||||
SDL_EVENT_WINDOW_RESIZED,
|
||||
SDL_EVENT_WINDOW_PIXEL_SIZE_CHANGED,
|
||||
SDL_EVENT_WINDOW_METAL_VIEW_RESIZED,
|
||||
SDL_EVENT_WINDOW_MINIMIZED,
|
||||
SDL_EVENT_WINDOW_MAXIMIZED,
|
||||
SDL_EVENT_WINDOW_RESTORED,
|
||||
|
|
@ -63,19 +66,18 @@ namespace SDL
|
|||
SDL_EVENT_WINDOW_FOCUS_GAINED,
|
||||
SDL_EVENT_WINDOW_FOCUS_LOST,
|
||||
SDL_EVENT_WINDOW_CLOSE_REQUESTED,
|
||||
SDL_EVENT_WINDOW_TAKE_FOCUS,
|
||||
SDL_EVENT_WINDOW_HIT_TEST,
|
||||
SDL_EVENT_WINDOW_ICCPROF_CHANGED,
|
||||
SDL_EVENT_WINDOW_DISPLAY_CHANGED,
|
||||
SDL_EVENT_WINDOW_DISPLAY_SCALE_CHANGED,
|
||||
SDL_EVENT_WINDOW_SAFE_AREA_CHANGED,
|
||||
SDL_EVENT_WINDOW_OCCLUDED,
|
||||
SDL_EVENT_WINDOW_ENTER_FULLSCREEN,
|
||||
SDL_EVENT_WINDOW_LEAVE_FULLSCREEN,
|
||||
SDL_EVENT_WINDOW_DESTROYED,
|
||||
SDL_EVENT_WINDOW_PEN_ENTER,
|
||||
SDL_EVENT_WINDOW_PEN_LEAVE,
|
||||
SDL_EVENT_WINDOW_HDR_STATE_CHANGED,
|
||||
SDL_EVENT_WINDOW_FIRST = SDL_EVENT_WINDOW_SHOWN,
|
||||
SDL_EVENT_WINDOW_LAST = SDL_EVENT_WINDOW_PEN_LEAVE,
|
||||
SDL_EVENT_WINDOW_LAST = SDL_EVENT_WINDOW_HDR_STATE_CHANGED,
|
||||
SDL_EVENT_KEY_DOWN = 0x300,
|
||||
SDL_EVENT_KEY_UP,
|
||||
SDL_EVENT_TEXT_EDITING,
|
||||
|
|
@ -83,6 +85,9 @@ namespace SDL
|
|||
SDL_EVENT_KEYMAP_CHANGED,
|
||||
SDL_EVENT_KEYBOARD_ADDED,
|
||||
SDL_EVENT_KEYBOARD_REMOVED,
|
||||
SDL_EVENT_TEXT_EDITING_CANDIDATES,
|
||||
SDL_EVENT_SCREEN_KEYBOARD_SHOWN,
|
||||
SDL_EVENT_SCREEN_KEYBOARD_HIDDEN,
|
||||
SDL_EVENT_MOUSE_MOTION = 0x400,
|
||||
SDL_EVENT_MOUSE_BUTTON_DOWN,
|
||||
SDL_EVENT_MOUSE_BUTTON_UP,
|
||||
|
|
@ -113,6 +118,10 @@ namespace SDL
|
|||
SDL_EVENT_FINGER_DOWN = 0x700,
|
||||
SDL_EVENT_FINGER_UP,
|
||||
SDL_EVENT_FINGER_MOTION,
|
||||
SDL_EVENT_FINGER_CANCELED,
|
||||
SDL_EVENT_PINCH_BEGIN = 0x710,
|
||||
SDL_EVENT_PINCH_UPDATE,
|
||||
SDL_EVENT_PINCH_END,
|
||||
SDL_EVENT_CLIPBOARD_UPDATE = 0x900,
|
||||
SDL_EVENT_DROP_FILE = 0x1000,
|
||||
SDL_EVENT_DROP_TEXT,
|
||||
|
|
@ -123,17 +132,25 @@ namespace SDL
|
|||
SDL_EVENT_AUDIO_DEVICE_REMOVED,
|
||||
SDL_EVENT_AUDIO_DEVICE_FORMAT_CHANGED,
|
||||
SDL_EVENT_SENSOR_UPDATE = 0x1200,
|
||||
SDL_EVENT_PEN_DOWN = 0x1300,
|
||||
SDL_EVENT_PEN_PROXIMITY_IN = 0x1300,
|
||||
SDL_EVENT_PEN_PROXIMITY_OUT,
|
||||
SDL_EVENT_PEN_DOWN,
|
||||
SDL_EVENT_PEN_UP,
|
||||
SDL_EVENT_PEN_MOTION,
|
||||
SDL_EVENT_PEN_BUTTON_DOWN,
|
||||
SDL_EVENT_PEN_BUTTON_UP,
|
||||
SDL_EVENT_PEN_MOTION,
|
||||
SDL_EVENT_PEN_AXIS,
|
||||
SDL_EVENT_CAMERA_DEVICE_ADDED = 0x1400,
|
||||
SDL_EVENT_CAMERA_DEVICE_REMOVED,
|
||||
SDL_EVENT_CAMERA_DEVICE_APPROVED,
|
||||
SDL_EVENT_CAMERA_DEVICE_DENIED,
|
||||
SDL_EVENT_RENDER_TARGETS_RESET = 0x2000,
|
||||
SDL_EVENT_RENDER_DEVICE_RESET,
|
||||
SDL_EVENT_RENDER_DEVICE_LOST,
|
||||
SDL_EVENT_PRIVATE0 = 0x4000,
|
||||
SDL_EVENT_PRIVATE1,
|
||||
SDL_EVENT_PRIVATE2,
|
||||
SDL_EVENT_PRIVATE3,
|
||||
SDL_EVENT_POLL_SENTINEL = 0x7F00,
|
||||
SDL_EVENT_USER = 0x8000,
|
||||
SDL_EVENT_LAST = 0xFFFF,
|
||||
|
|
@ -142,7 +159,8 @@ namespace SDL
|
|||
|
||||
public partial struct SDL_CommonEvent
|
||||
{
|
||||
public SDL_EventType type;
|
||||
[NativeTypeName("Uint32")]
|
||||
public uint type;
|
||||
|
||||
[NativeTypeName("Uint32")]
|
||||
public uint reserved;
|
||||
|
|
@ -165,6 +183,9 @@ namespace SDL
|
|||
|
||||
[NativeTypeName("Sint32")]
|
||||
public int data1;
|
||||
|
||||
[NativeTypeName("Sint32")]
|
||||
public int data2;
|
||||
}
|
||||
|
||||
public partial struct SDL_WindowEvent
|
||||
|
|
@ -213,19 +234,20 @@ namespace SDL
|
|||
|
||||
public SDL_KeyboardID which;
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte state;
|
||||
public SDL_Scancode scancode;
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte repeat;
|
||||
public SDL_Keycode key;
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte padding2;
|
||||
public SDL_Keymod mod;
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte padding3;
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort raw;
|
||||
|
||||
public SDL_Keysym keysym;
|
||||
[NativeTypeName("bool")]
|
||||
public SDLBool down;
|
||||
|
||||
[NativeTypeName("bool")]
|
||||
public SDLBool repeat;
|
||||
}
|
||||
|
||||
public unsafe partial struct SDL_TextEditingEvent
|
||||
|
|
@ -240,7 +262,7 @@ namespace SDL
|
|||
|
||||
public SDL_WindowID windowID;
|
||||
|
||||
[NativeTypeName("char *")]
|
||||
[NativeTypeName("const char *")]
|
||||
public byte* text;
|
||||
|
||||
[NativeTypeName("Sint32")]
|
||||
|
|
@ -250,6 +272,40 @@ namespace SDL
|
|||
public int length;
|
||||
}
|
||||
|
||||
public unsafe partial struct SDL_TextEditingCandidatesEvent
|
||||
{
|
||||
public SDL_EventType type;
|
||||
|
||||
[NativeTypeName("Uint32")]
|
||||
public uint reserved;
|
||||
|
||||
[NativeTypeName("Uint64")]
|
||||
public ulong timestamp;
|
||||
|
||||
public SDL_WindowID windowID;
|
||||
|
||||
[NativeTypeName("const char *const *")]
|
||||
public byte** candidates;
|
||||
|
||||
[NativeTypeName("Sint32")]
|
||||
public int num_candidates;
|
||||
|
||||
[NativeTypeName("Sint32")]
|
||||
public int selected_candidate;
|
||||
|
||||
[NativeTypeName("bool")]
|
||||
public SDLBool horizontal;
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte padding1;
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte padding2;
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte padding3;
|
||||
}
|
||||
|
||||
public unsafe partial struct SDL_TextInputEvent
|
||||
{
|
||||
public SDL_EventType type;
|
||||
|
|
@ -262,7 +318,7 @@ namespace SDL
|
|||
|
||||
public SDL_WindowID windowID;
|
||||
|
||||
[NativeTypeName("char *")]
|
||||
[NativeTypeName("const char *")]
|
||||
public byte* text;
|
||||
}
|
||||
|
||||
|
|
@ -293,8 +349,7 @@ namespace SDL
|
|||
|
||||
public SDL_MouseID which;
|
||||
|
||||
[NativeTypeName("Uint32")]
|
||||
public uint state;
|
||||
public SDL_MouseButtonFlags state;
|
||||
|
||||
public float x;
|
||||
|
||||
|
|
@ -322,8 +377,8 @@ namespace SDL
|
|||
[NativeTypeName("Uint8")]
|
||||
public byte button;
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte state;
|
||||
[NativeTypeName("bool")]
|
||||
public SDLBool down;
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte clicks;
|
||||
|
|
@ -359,6 +414,12 @@ namespace SDL
|
|||
public float mouse_x;
|
||||
|
||||
public float mouse_y;
|
||||
|
||||
[NativeTypeName("Sint32")]
|
||||
public int integer_x;
|
||||
|
||||
[NativeTypeName("Sint32")]
|
||||
public int integer_y;
|
||||
}
|
||||
|
||||
public partial struct SDL_JoyAxisEvent
|
||||
|
|
@ -463,8 +524,8 @@ namespace SDL
|
|||
[NativeTypeName("Uint8")]
|
||||
public byte button;
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte state;
|
||||
[NativeTypeName("bool")]
|
||||
public SDLBool down;
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte padding1;
|
||||
|
|
@ -549,8 +610,8 @@ namespace SDL
|
|||
[NativeTypeName("Uint8")]
|
||||
public byte button;
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte state;
|
||||
[NativeTypeName("bool")]
|
||||
public SDLBool down;
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte padding1;
|
||||
|
|
@ -637,8 +698,8 @@ namespace SDL
|
|||
|
||||
public SDL_AudioDeviceID which;
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte iscapture;
|
||||
[NativeTypeName("bool")]
|
||||
public SDLBool recording;
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte padding1;
|
||||
|
|
@ -660,16 +721,20 @@ namespace SDL
|
|||
[NativeTypeName("Uint64")]
|
||||
public ulong timestamp;
|
||||
|
||||
public SDL_CameraDeviceID which;
|
||||
public SDL_CameraID which;
|
||||
}
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte padding1;
|
||||
public partial struct SDL_RenderEvent
|
||||
{
|
||||
public SDL_EventType type;
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte padding2;
|
||||
[NativeTypeName("Uint32")]
|
||||
public uint reserved;
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte padding3;
|
||||
[NativeTypeName("Uint64")]
|
||||
public ulong timestamp;
|
||||
|
||||
public SDL_WindowID windowID;
|
||||
}
|
||||
|
||||
public partial struct SDL_TouchFingerEvent
|
||||
|
|
@ -699,7 +764,22 @@ namespace SDL
|
|||
public SDL_WindowID windowID;
|
||||
}
|
||||
|
||||
public partial struct SDL_PenTipEvent
|
||||
public partial struct SDL_PinchFingerEvent
|
||||
{
|
||||
public SDL_EventType type;
|
||||
|
||||
[NativeTypeName("Uint32")]
|
||||
public uint reserved;
|
||||
|
||||
[NativeTypeName("Uint64")]
|
||||
public ulong timestamp;
|
||||
|
||||
public float scale;
|
||||
|
||||
public SDL_WindowID windowID;
|
||||
}
|
||||
|
||||
public partial struct SDL_PenProximityEvent
|
||||
{
|
||||
public SDL_EventType type;
|
||||
|
||||
|
|
@ -712,28 +792,6 @@ namespace SDL
|
|||
public SDL_WindowID windowID;
|
||||
|
||||
public SDL_PenID which;
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte tip;
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte state;
|
||||
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort pen_state;
|
||||
|
||||
public float x;
|
||||
|
||||
public float y;
|
||||
|
||||
[NativeTypeName("float[6]")]
|
||||
public _axes_e__FixedBuffer axes;
|
||||
|
||||
[InlineArray(6)]
|
||||
public partial struct _axes_e__FixedBuffer
|
||||
{
|
||||
public float e0;
|
||||
}
|
||||
}
|
||||
|
||||
public partial struct SDL_PenMotionEvent
|
||||
|
|
@ -750,27 +808,38 @@ namespace SDL
|
|||
|
||||
public SDL_PenID which;
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte padding1;
|
||||
public SDL_PenInputFlags pen_state;
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte padding2;
|
||||
public float x;
|
||||
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort pen_state;
|
||||
public float y;
|
||||
}
|
||||
|
||||
public partial struct SDL_PenTouchEvent
|
||||
{
|
||||
public SDL_EventType type;
|
||||
|
||||
[NativeTypeName("Uint32")]
|
||||
public uint reserved;
|
||||
|
||||
[NativeTypeName("Uint64")]
|
||||
public ulong timestamp;
|
||||
|
||||
public SDL_WindowID windowID;
|
||||
|
||||
public SDL_PenID which;
|
||||
|
||||
public SDL_PenInputFlags pen_state;
|
||||
|
||||
public float x;
|
||||
|
||||
public float y;
|
||||
|
||||
[NativeTypeName("float[6]")]
|
||||
public _axes_e__FixedBuffer axes;
|
||||
[NativeTypeName("bool")]
|
||||
public SDLBool eraser;
|
||||
|
||||
[InlineArray(6)]
|
||||
public partial struct _axes_e__FixedBuffer
|
||||
{
|
||||
public float e0;
|
||||
}
|
||||
[NativeTypeName("bool")]
|
||||
public SDLBool down;
|
||||
}
|
||||
|
||||
public partial struct SDL_PenButtonEvent
|
||||
|
|
@ -787,27 +856,42 @@ namespace SDL
|
|||
|
||||
public SDL_PenID which;
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte button;
|
||||
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte state;
|
||||
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort pen_state;
|
||||
public SDL_PenInputFlags pen_state;
|
||||
|
||||
public float x;
|
||||
|
||||
public float y;
|
||||
|
||||
[NativeTypeName("float[6]")]
|
||||
public _axes_e__FixedBuffer axes;
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte button;
|
||||
|
||||
[InlineArray(6)]
|
||||
public partial struct _axes_e__FixedBuffer
|
||||
{
|
||||
public float e0;
|
||||
}
|
||||
[NativeTypeName("bool")]
|
||||
public SDLBool down;
|
||||
}
|
||||
|
||||
public partial struct SDL_PenAxisEvent
|
||||
{
|
||||
public SDL_EventType type;
|
||||
|
||||
[NativeTypeName("Uint32")]
|
||||
public uint reserved;
|
||||
|
||||
[NativeTypeName("Uint64")]
|
||||
public ulong timestamp;
|
||||
|
||||
public SDL_WindowID windowID;
|
||||
|
||||
public SDL_PenID which;
|
||||
|
||||
public SDL_PenInputFlags pen_state;
|
||||
|
||||
public float x;
|
||||
|
||||
public float y;
|
||||
|
||||
public SDL_PenAxis axis;
|
||||
|
||||
public float value;
|
||||
}
|
||||
|
||||
public unsafe partial struct SDL_DropEvent
|
||||
|
|
@ -826,14 +910,14 @@ namespace SDL
|
|||
|
||||
public float y;
|
||||
|
||||
[NativeTypeName("char *")]
|
||||
[NativeTypeName("const char *")]
|
||||
public byte* source;
|
||||
|
||||
[NativeTypeName("char *")]
|
||||
[NativeTypeName("const char *")]
|
||||
public byte* data;
|
||||
}
|
||||
|
||||
public partial struct SDL_ClipboardEvent
|
||||
public unsafe partial struct SDL_ClipboardEvent
|
||||
{
|
||||
public SDL_EventType type;
|
||||
|
||||
|
|
@ -842,6 +926,15 @@ namespace SDL
|
|||
|
||||
[NativeTypeName("Uint64")]
|
||||
public ulong timestamp;
|
||||
|
||||
[NativeTypeName("bool")]
|
||||
public SDLBool owner;
|
||||
|
||||
[NativeTypeName("Sint32")]
|
||||
public int num_mime_types;
|
||||
|
||||
[NativeTypeName("const char **")]
|
||||
public byte** mime_types;
|
||||
}
|
||||
|
||||
public partial struct SDL_SensorEvent
|
||||
|
|
@ -882,7 +975,8 @@ namespace SDL
|
|||
|
||||
public partial struct SDL_UserEvent
|
||||
{
|
||||
public SDL_EventType type;
|
||||
[NativeTypeName("Uint32")]
|
||||
public uint type;
|
||||
|
||||
[NativeTypeName("Uint32")]
|
||||
public uint reserved;
|
||||
|
|
@ -906,7 +1000,8 @@ namespace SDL
|
|||
public partial struct SDL_Event
|
||||
{
|
||||
[FieldOffset(0)]
|
||||
public SDL_EventType type;
|
||||
[NativeTypeName("Uint32")]
|
||||
public uint type;
|
||||
|
||||
[FieldOffset(0)]
|
||||
public SDL_CommonEvent common;
|
||||
|
|
@ -926,6 +1021,9 @@ namespace SDL
|
|||
[FieldOffset(0)]
|
||||
public SDL_TextEditingEvent edit;
|
||||
|
||||
[FieldOffset(0)]
|
||||
public SDL_TextEditingCandidatesEvent edit_candidates;
|
||||
|
||||
[FieldOffset(0)]
|
||||
public SDL_TextInputEvent text;
|
||||
|
||||
|
|
@ -993,7 +1091,13 @@ namespace SDL
|
|||
public SDL_TouchFingerEvent tfinger;
|
||||
|
||||
[FieldOffset(0)]
|
||||
public SDL_PenTipEvent ptip;
|
||||
public SDL_PinchFingerEvent pinch;
|
||||
|
||||
[FieldOffset(0)]
|
||||
public SDL_PenProximityEvent pproximity;
|
||||
|
||||
[FieldOffset(0)]
|
||||
public SDL_PenTouchEvent ptouch;
|
||||
|
||||
[FieldOffset(0)]
|
||||
public SDL_PenMotionEvent pmotion;
|
||||
|
|
@ -1001,6 +1105,12 @@ namespace SDL
|
|||
[FieldOffset(0)]
|
||||
public SDL_PenButtonEvent pbutton;
|
||||
|
||||
[FieldOffset(0)]
|
||||
public SDL_PenAxisEvent paxis;
|
||||
|
||||
[FieldOffset(0)]
|
||||
public SDL_RenderEvent render;
|
||||
|
||||
[FieldOffset(0)]
|
||||
public SDL_DropEvent drop;
|
||||
|
||||
|
|
@ -1018,7 +1128,7 @@ namespace SDL
|
|||
}
|
||||
}
|
||||
|
||||
public enum SDL_eventaction
|
||||
public enum SDL_EventAction
|
||||
{
|
||||
SDL_ADDEVENT,
|
||||
SDL_PEEKEVENT,
|
||||
|
|
@ -1031,71 +1141,70 @@ namespace SDL
|
|||
public static extern void SDL_PumpEvents();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_PeepEvents(SDL_Event* events, int numevents, SDL_eventaction action, SDL_EventType minType, SDL_EventType maxType);
|
||||
public static extern int SDL_PeepEvents(SDL_Event* events, int numevents, SDL_EventAction action, [NativeTypeName("Uint32")] uint minType, [NativeTypeName("Uint32")] uint maxType);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HasEvent(SDL_EventType type);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HasEvent([NativeTypeName("Uint32")] uint type);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HasEvents(SDL_EventType minType, SDL_EventType maxType);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HasEvents([NativeTypeName("Uint32")] uint minType, [NativeTypeName("Uint32")] uint maxType);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_FlushEvent(SDL_EventType type);
|
||||
public static extern void SDL_FlushEvent([NativeTypeName("Uint32")] uint type);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_FlushEvents(SDL_EventType minType, SDL_EventType maxType);
|
||||
public static extern void SDL_FlushEvents([NativeTypeName("Uint32")] uint minType, [NativeTypeName("Uint32")] uint maxType);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_PollEvent(SDL_Event* @event);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_PollEvent(SDL_Event* @event);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_WaitEvent(SDL_Event* @event);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_WaitEvent(SDL_Event* @event);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_WaitEventTimeout(SDL_Event* @event, [NativeTypeName("Sint32")] int timeoutMS);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_WaitEventTimeout(SDL_Event* @event, [NativeTypeName("Sint32")] int timeoutMS);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_PushEvent(SDL_Event* @event);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_PushEvent(SDL_Event* @event);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_SetEventFilter([NativeTypeName("SDL_EventFilter")] delegate* unmanaged[Cdecl]<IntPtr, SDL_Event*, int> filter, [NativeTypeName("void*")] IntPtr userdata);
|
||||
public static extern void SDL_SetEventFilter([NativeTypeName("SDL_EventFilter")] delegate* unmanaged[Cdecl]<IntPtr, SDL_Event*, SDLBool> filter, [NativeTypeName("void*")] IntPtr userdata);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_GetEventFilter([NativeTypeName("SDL_EventFilter *")] delegate* unmanaged[Cdecl]<IntPtr, SDL_Event*, int>* filter, [NativeTypeName("void **")] IntPtr* userdata);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_GetEventFilter([NativeTypeName("SDL_EventFilter *")] delegate* unmanaged[Cdecl]<IntPtr, SDL_Event*, SDLBool>* filter, [NativeTypeName("void **")] IntPtr* userdata);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_AddEventWatch([NativeTypeName("SDL_EventFilter")] delegate* unmanaged[Cdecl]<IntPtr, SDL_Event*, int> filter, [NativeTypeName("void*")] IntPtr userdata);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_AddEventWatch([NativeTypeName("SDL_EventFilter")] delegate* unmanaged[Cdecl]<IntPtr, SDL_Event*, SDLBool> filter, [NativeTypeName("void*")] IntPtr userdata);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_DelEventWatch([NativeTypeName("SDL_EventFilter")] delegate* unmanaged[Cdecl]<IntPtr, SDL_Event*, int> filter, [NativeTypeName("void*")] IntPtr userdata);
|
||||
public static extern void SDL_RemoveEventWatch([NativeTypeName("SDL_EventFilter")] delegate* unmanaged[Cdecl]<IntPtr, SDL_Event*, SDLBool> filter, [NativeTypeName("void*")] IntPtr userdata);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_FilterEvents([NativeTypeName("SDL_EventFilter")] delegate* unmanaged[Cdecl]<IntPtr, SDL_Event*, int> filter, [NativeTypeName("void*")] IntPtr userdata);
|
||||
public static extern void SDL_FilterEvents([NativeTypeName("SDL_EventFilter")] delegate* unmanaged[Cdecl]<IntPtr, SDL_Event*, SDLBool> filter, [NativeTypeName("void*")] IntPtr userdata);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_SetEventEnabled(SDL_EventType type, SDL_bool enabled);
|
||||
public static extern void SDL_SetEventEnabled([NativeTypeName("Uint32")] uint type, [NativeTypeName("bool")] SDLBool enabled);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_EventEnabled(SDL_EventType type);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_EventEnabled([NativeTypeName("Uint32")] uint type);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("Uint32")]
|
||||
public static extern uint SDL_RegisterEvents(int numevents);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("void*")]
|
||||
public static extern IntPtr SDL_AllocateEventMemory([NativeTypeName("size_t")] nuint size);
|
||||
public static extern SDL_Window* SDL_GetWindowFromEvent([NativeTypeName("const SDL_Event *")] SDL_Event* @event);
|
||||
|
||||
[NativeTypeName("#define SDL_RELEASED 0")]
|
||||
public const int SDL_RELEASED = 0;
|
||||
|
||||
[NativeTypeName("#define SDL_PRESSED 1")]
|
||||
public const int SDL_PRESSED = 1;
|
||||
|
||||
[NativeTypeName("#define SDL_TEXTEDITINGEVENT_TEXT_SIZE 64")]
|
||||
public const int SDL_TEXTEDITINGEVENT_TEXT_SIZE = 64;
|
||||
|
||||
[NativeTypeName("#define SDL_DROPEVENT_DATA_SIZE 64")]
|
||||
public const int SDL_DROPEVENT_DATA_SIZE = 64;
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_GetEventDescription([NativeTypeName("const SDL_Event *")] SDL_Event* @event, [NativeTypeName("char *")] byte* buf, int buflen);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ namespace SDL
|
|||
SDL_FOLDER_SCREENSHOTS,
|
||||
SDL_FOLDER_TEMPLATES,
|
||||
SDL_FOLDER_VIDEOS,
|
||||
SDL_FOLDER_COUNT,
|
||||
}
|
||||
|
||||
public enum SDL_PathType
|
||||
|
|
@ -65,10 +66,17 @@ namespace SDL
|
|||
public SDL_Time access_time;
|
||||
}
|
||||
|
||||
public enum SDL_EnumerationResult
|
||||
{
|
||||
SDL_ENUM_CONTINUE,
|
||||
SDL_ENUM_SUCCESS,
|
||||
SDL_ENUM_FAILURE,
|
||||
}
|
||||
|
||||
public static unsafe partial class SDL3
|
||||
{
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetBasePath", ExactSpelling = true)]
|
||||
[return: NativeTypeName("char *")]
|
||||
[return: NativeTypeName("const char *")]
|
||||
public static extern byte* Unsafe_SDL_GetBasePath();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetPrefPath", ExactSpelling = true)]
|
||||
|
|
@ -76,29 +84,42 @@ namespace SDL
|
|||
public static extern byte* Unsafe_SDL_GetPrefPath([NativeTypeName("const char *")] byte* org, [NativeTypeName("const char *")] byte* app);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetUserFolder", ExactSpelling = true)]
|
||||
[return: NativeTypeName("char *")]
|
||||
[return: NativeTypeName("const char *")]
|
||||
public static extern byte* Unsafe_SDL_GetUserFolder(SDL_Folder folder);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_CreateDirectory([NativeTypeName("const char *")] byte* path);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_CreateDirectory([NativeTypeName("const char *")] byte* path);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_EnumerateDirectory([NativeTypeName("const char *")] byte* path, [NativeTypeName("SDL_EnumerateDirectoryCallback")] delegate* unmanaged[Cdecl]<IntPtr, byte*, byte*, int> callback, [NativeTypeName("void*")] IntPtr userdata);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_EnumerateDirectory([NativeTypeName("const char *")] byte* path, [NativeTypeName("SDL_EnumerateDirectoryCallback")] delegate* unmanaged[Cdecl]<IntPtr, byte*, byte*, SDL_EnumerationResult> callback, [NativeTypeName("void*")] IntPtr userdata);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_RemovePath([NativeTypeName("const char *")] byte* path);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_RemovePath([NativeTypeName("const char *")] byte* path);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_RenamePath([NativeTypeName("const char *")] byte* oldpath, [NativeTypeName("const char *")] byte* newpath);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_RenamePath([NativeTypeName("const char *")] byte* oldpath, [NativeTypeName("const char *")] byte* newpath);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_GetPathInfo([NativeTypeName("const char *")] byte* path, SDL_PathInfo* info);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_CopyFile([NativeTypeName("const char *")] byte* oldpath, [NativeTypeName("const char *")] byte* newpath);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_GetPathInfo([NativeTypeName("const char *")] byte* path, SDL_PathInfo* info);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("char **")]
|
||||
public static extern byte** SDL_GlobDirectory([NativeTypeName("const char *")] byte* path, [NativeTypeName("const char *")] byte* pattern, [NativeTypeName("Uint32")] uint flags, int* count);
|
||||
public static extern byte** SDL_GlobDirectory([NativeTypeName("const char *")] byte* path, [NativeTypeName("const char *")] byte* pattern, SDL_GlobFlags flags, int* count);
|
||||
|
||||
[NativeTypeName("#define SDL_GLOB_CASEINSENSITIVE (1 << 0)")]
|
||||
public const int SDL_GLOB_CASEINSENSITIVE = (1 << 0);
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetCurrentDirectory", ExactSpelling = true)]
|
||||
[return: NativeTypeName("char *")]
|
||||
public static extern byte* Unsafe_SDL_GetCurrentDirectory();
|
||||
|
||||
[NativeTypeName("#define SDL_GLOB_CASEINSENSITIVE (1u << 0)")]
|
||||
public const uint SDL_GLOB_CASEINSENSITIVE = (1U << 0);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,7 +45,8 @@ namespace SDL
|
|||
SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_LEFT,
|
||||
SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT,
|
||||
SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_PAIR,
|
||||
SDL_GAMEPAD_TYPE_MAX,
|
||||
SDL_GAMEPAD_TYPE_GAMECUBE,
|
||||
SDL_GAMEPAD_TYPE_COUNT,
|
||||
}
|
||||
|
||||
public enum SDL_GamepadButton
|
||||
|
|
@ -77,7 +78,7 @@ namespace SDL
|
|||
SDL_GAMEPAD_BUTTON_MISC4,
|
||||
SDL_GAMEPAD_BUTTON_MISC5,
|
||||
SDL_GAMEPAD_BUTTON_MISC6,
|
||||
SDL_GAMEPAD_BUTTON_MAX,
|
||||
SDL_GAMEPAD_BUTTON_COUNT,
|
||||
}
|
||||
|
||||
public enum SDL_GamepadButtonLabel
|
||||
|
|
@ -102,7 +103,7 @@ namespace SDL
|
|||
SDL_GAMEPAD_AXIS_RIGHTY,
|
||||
SDL_GAMEPAD_AXIS_LEFT_TRIGGER,
|
||||
SDL_GAMEPAD_AXIS_RIGHT_TRIGGER,
|
||||
SDL_GAMEPAD_AXIS_MAX,
|
||||
SDL_GAMEPAD_AXIS_COUNT,
|
||||
}
|
||||
|
||||
public enum SDL_GamepadBindingType
|
||||
|
|
@ -117,12 +118,12 @@ namespace SDL
|
|||
{
|
||||
public SDL_GamepadBindingType input_type;
|
||||
|
||||
[NativeTypeName("__AnonymousRecord_SDL_gamepad_L184_C5")]
|
||||
[NativeTypeName("__AnonymousRecord_SDL_gamepad_L267_C5")]
|
||||
public _input_e__Union input;
|
||||
|
||||
public SDL_GamepadBindingType output_type;
|
||||
|
||||
[NativeTypeName("__AnonymousRecord_SDL_gamepad_L204_C5")]
|
||||
[NativeTypeName("__AnonymousRecord_SDL_gamepad_L287_C5")]
|
||||
public _output_e__Union output;
|
||||
|
||||
[StructLayout(LayoutKind.Explicit)]
|
||||
|
|
@ -132,11 +133,11 @@ namespace SDL
|
|||
public int button;
|
||||
|
||||
[FieldOffset(0)]
|
||||
[NativeTypeName("__AnonymousRecord_SDL_gamepad_L188_C9")]
|
||||
[NativeTypeName("__AnonymousRecord_SDL_gamepad_L271_C9")]
|
||||
public _axis_e__Struct axis;
|
||||
|
||||
[FieldOffset(0)]
|
||||
[NativeTypeName("__AnonymousRecord_SDL_gamepad_L195_C9")]
|
||||
[NativeTypeName("__AnonymousRecord_SDL_gamepad_L278_C9")]
|
||||
public _hat_e__Struct hat;
|
||||
|
||||
public partial struct _axis_e__Struct
|
||||
|
|
@ -163,7 +164,7 @@ namespace SDL
|
|||
public SDL_GamepadButton button;
|
||||
|
||||
[FieldOffset(0)]
|
||||
[NativeTypeName("__AnonymousRecord_SDL_gamepad_L208_C9")]
|
||||
[NativeTypeName("__AnonymousRecord_SDL_gamepad_L291_C9")]
|
||||
public _axis_e__Struct axis;
|
||||
|
||||
public partial struct _axis_e__Struct
|
||||
|
|
@ -183,13 +184,14 @@ namespace SDL
|
|||
public static extern int SDL_AddGamepadMapping([NativeTypeName("const char *")] byte* mapping);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_AddGamepadMappingsFromIO(SDL_IOStream* src, SDL_bool closeio);
|
||||
public static extern int SDL_AddGamepadMappingsFromIO(SDL_IOStream* src, [NativeTypeName("bool")] SDLBool closeio);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_AddGamepadMappingsFromFile([NativeTypeName("const char *")] byte* file);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_ReloadGamepadMappings();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ReloadGamepadMappings();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("char **")]
|
||||
|
|
@ -197,66 +199,68 @@ namespace SDL
|
|||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetGamepadMappingForGUID", ExactSpelling = true)]
|
||||
[return: NativeTypeName("char *")]
|
||||
public static extern byte* Unsafe_SDL_GetGamepadMappingForGUID([NativeTypeName("SDL_JoystickGUID")] SDL_GUID guid);
|
||||
public static extern byte* Unsafe_SDL_GetGamepadMappingForGUID(SDL_GUID guid);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetGamepadMapping", ExactSpelling = true)]
|
||||
[return: NativeTypeName("char *")]
|
||||
public static extern byte* Unsafe_SDL_GetGamepadMapping(SDL_Gamepad* gamepad);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_SetGamepadMapping(SDL_JoystickID instance_id, [NativeTypeName("const char *")] byte* mapping);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetGamepadMapping(SDL_JoystickID instance_id, [NativeTypeName("const char *")] byte* mapping);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HasGamepad();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HasGamepad();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_JoystickID* SDL_GetGamepads(int* count);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_IsGamepad(SDL_JoystickID instance_id);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_IsGamepad(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetGamepadInstanceName", ExactSpelling = true)]
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetGamepadNameForID", ExactSpelling = true)]
|
||||
[return: NativeTypeName("const char *")]
|
||||
public static extern byte* Unsafe_SDL_GetGamepadInstanceName(SDL_JoystickID instance_id);
|
||||
public static extern byte* Unsafe_SDL_GetGamepadNameForID(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetGamepadInstancePath", ExactSpelling = true)]
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetGamepadPathForID", ExactSpelling = true)]
|
||||
[return: NativeTypeName("const char *")]
|
||||
public static extern byte* Unsafe_SDL_GetGamepadInstancePath(SDL_JoystickID instance_id);
|
||||
public static extern byte* Unsafe_SDL_GetGamepadPathForID(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_GetGamepadInstancePlayerIndex(SDL_JoystickID instance_id);
|
||||
public static extern int SDL_GetGamepadPlayerIndexForID(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("SDL_JoystickGUID")]
|
||||
public static extern SDL_GUID SDL_GetGamepadInstanceGUID(SDL_JoystickID instance_id);
|
||||
public static extern SDL_GUID SDL_GetGamepadGUIDForID(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("Uint16")]
|
||||
public static extern ushort SDL_GetGamepadInstanceVendor(SDL_JoystickID instance_id);
|
||||
public static extern ushort SDL_GetGamepadVendorForID(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("Uint16")]
|
||||
public static extern ushort SDL_GetGamepadInstanceProduct(SDL_JoystickID instance_id);
|
||||
public static extern ushort SDL_GetGamepadProductForID(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("Uint16")]
|
||||
public static extern ushort SDL_GetGamepadInstanceProductVersion(SDL_JoystickID instance_id);
|
||||
public static extern ushort SDL_GetGamepadProductVersionForID(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_GamepadType SDL_GetGamepadInstanceType(SDL_JoystickID instance_id);
|
||||
public static extern SDL_GamepadType SDL_GetGamepadTypeForID(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_GamepadType SDL_GetRealGamepadInstanceType(SDL_JoystickID instance_id);
|
||||
public static extern SDL_GamepadType SDL_GetRealGamepadTypeForID(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetGamepadInstanceMapping", ExactSpelling = true)]
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetGamepadMappingForID", ExactSpelling = true)]
|
||||
[return: NativeTypeName("char *")]
|
||||
public static extern byte* Unsafe_SDL_GetGamepadInstanceMapping(SDL_JoystickID instance_id);
|
||||
public static extern byte* Unsafe_SDL_GetGamepadMappingForID(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_Gamepad* SDL_OpenGamepad(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_Gamepad* SDL_GetGamepadFromInstanceID(SDL_JoystickID instance_id);
|
||||
public static extern SDL_Gamepad* SDL_GetGamepadFromID(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_Gamepad* SDL_GetGamepadFromPlayerIndex(int player_index);
|
||||
|
|
@ -265,7 +269,7 @@ namespace SDL
|
|||
public static extern SDL_PropertiesID SDL_GetGamepadProperties(SDL_Gamepad* gamepad);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_JoystickID SDL_GetGamepadInstanceID(SDL_Gamepad* gamepad);
|
||||
public static extern SDL_JoystickID SDL_GetGamepadID(SDL_Gamepad* gamepad);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetGamepadName", ExactSpelling = true)]
|
||||
[return: NativeTypeName("const char *")]
|
||||
|
|
@ -285,7 +289,8 @@ namespace SDL
|
|||
public static extern int SDL_GetGamepadPlayerIndex(SDL_Gamepad* gamepad);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_SetGamepadPlayerIndex(SDL_Gamepad* gamepad, int player_index);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetGamepadPlayerIndex(SDL_Gamepad* gamepad, int player_index);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("Uint16")]
|
||||
|
|
@ -318,16 +323,18 @@ namespace SDL
|
|||
public static extern SDL_PowerState SDL_GetGamepadPowerInfo(SDL_Gamepad* gamepad, int* percent);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_GamepadConnected(SDL_Gamepad* gamepad);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_GamepadConnected(SDL_Gamepad* gamepad);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_Joystick* SDL_GetGamepadJoystick(SDL_Gamepad* gamepad);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_SetGamepadEventsEnabled(SDL_bool enabled);
|
||||
public static extern void SDL_SetGamepadEventsEnabled([NativeTypeName("bool")] SDLBool enabled);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_GamepadEventsEnabled();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_GamepadEventsEnabled();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_GamepadBinding** SDL_GetGamepadBindings(SDL_Gamepad* gamepad, int* count);
|
||||
|
|
@ -350,7 +357,8 @@ namespace SDL
|
|||
public static extern byte* Unsafe_SDL_GetGamepadStringForAxis(SDL_GamepadAxis axis);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_GamepadHasAxis(SDL_Gamepad* gamepad, SDL_GamepadAxis axis);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_GamepadHasAxis(SDL_Gamepad* gamepad, SDL_GamepadAxis axis);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("Sint16")]
|
||||
|
|
@ -364,11 +372,12 @@ namespace SDL
|
|||
public static extern byte* Unsafe_SDL_GetGamepadStringForButton(SDL_GamepadButton button);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_GamepadHasButton(SDL_Gamepad* gamepad, SDL_GamepadButton button);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_GamepadHasButton(SDL_Gamepad* gamepad, SDL_GamepadButton button);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("Uint8")]
|
||||
public static extern byte SDL_GetGamepadButton(SDL_Gamepad* gamepad, SDL_GamepadButton button);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_GetGamepadButton(SDL_Gamepad* gamepad, SDL_GamepadButton button);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_GamepadButtonLabel SDL_GetGamepadButtonLabelForType(SDL_GamepadType type, SDL_GamepadButton button);
|
||||
|
|
@ -383,34 +392,43 @@ namespace SDL
|
|||
public static extern int SDL_GetNumGamepadTouchpadFingers(SDL_Gamepad* gamepad, int touchpad);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_GetGamepadTouchpadFinger(SDL_Gamepad* gamepad, int touchpad, int finger, [NativeTypeName("Uint8 *")] byte* state, float* x, float* y, float* pressure);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_GetGamepadTouchpadFinger(SDL_Gamepad* gamepad, int touchpad, int finger, [NativeTypeName("bool *")] SDLBool* down, float* x, float* y, float* pressure);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_GamepadHasSensor(SDL_Gamepad* gamepad, SDL_SensorType type);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_GamepadHasSensor(SDL_Gamepad* gamepad, SDL_SensorType type);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_SetGamepadSensorEnabled(SDL_Gamepad* gamepad, SDL_SensorType type, SDL_bool enabled);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetGamepadSensorEnabled(SDL_Gamepad* gamepad, SDL_SensorType type, [NativeTypeName("bool")] SDLBool enabled);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_GamepadSensorEnabled(SDL_Gamepad* gamepad, SDL_SensorType type);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_GamepadSensorEnabled(SDL_Gamepad* gamepad, SDL_SensorType type);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern float SDL_GetGamepadSensorDataRate(SDL_Gamepad* gamepad, SDL_SensorType type);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_GetGamepadSensorData(SDL_Gamepad* gamepad, SDL_SensorType type, float* data, int num_values);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_GetGamepadSensorData(SDL_Gamepad* gamepad, SDL_SensorType type, float* data, int num_values);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_RumbleGamepad(SDL_Gamepad* gamepad, [NativeTypeName("Uint16")] ushort low_frequency_rumble, [NativeTypeName("Uint16")] ushort high_frequency_rumble, [NativeTypeName("Uint32")] uint duration_ms);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_RumbleGamepad(SDL_Gamepad* gamepad, [NativeTypeName("Uint16")] ushort low_frequency_rumble, [NativeTypeName("Uint16")] ushort high_frequency_rumble, [NativeTypeName("Uint32")] uint duration_ms);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_RumbleGamepadTriggers(SDL_Gamepad* gamepad, [NativeTypeName("Uint16")] ushort left_rumble, [NativeTypeName("Uint16")] ushort right_rumble, [NativeTypeName("Uint32")] uint duration_ms);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_RumbleGamepadTriggers(SDL_Gamepad* gamepad, [NativeTypeName("Uint16")] ushort left_rumble, [NativeTypeName("Uint16")] ushort right_rumble, [NativeTypeName("Uint32")] uint duration_ms);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_SetGamepadLED(SDL_Gamepad* gamepad, [NativeTypeName("Uint8")] byte red, [NativeTypeName("Uint8")] byte green, [NativeTypeName("Uint8")] byte blue);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetGamepadLED(SDL_Gamepad* gamepad, [NativeTypeName("Uint8")] byte red, [NativeTypeName("Uint8")] byte green, [NativeTypeName("Uint8")] byte blue);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_SendGamepadEffect(SDL_Gamepad* gamepad, [NativeTypeName("const void *")] IntPtr data, int size);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SendGamepadEffect(SDL_Gamepad* gamepad, [NativeTypeName("const void *")] IntPtr data, int size);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_CloseGamepad(SDL_Gamepad* gamepad);
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -43,9 +43,9 @@ namespace SDL
|
|||
public static unsafe partial class SDL3
|
||||
{
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_GUIDToString(SDL_GUID guid, [NativeTypeName("char *")] byte* pszGUID, int cbGUID);
|
||||
public static extern void SDL_GUIDToString(SDL_GUID guid, [NativeTypeName("char *")] byte* pszGUID, int cbGUID);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_GUID SDL_GUIDFromString([NativeTypeName("const char *")] byte* pchGUID);
|
||||
public static extern SDL_GUID SDL_StringToGUID([NativeTypeName("const char *")] byte* pchGUID);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,8 +34,7 @@ namespace SDL
|
|||
|
||||
public partial struct SDL_HapticDirection
|
||||
{
|
||||
[NativeTypeName("Uint8")]
|
||||
public byte type;
|
||||
public SDL_HapticDirectionType type;
|
||||
|
||||
[NativeTypeName("Sint32[3]")]
|
||||
public _dir_e__FixedBuffer dir;
|
||||
|
|
@ -49,8 +48,7 @@ namespace SDL
|
|||
|
||||
public partial struct SDL_HapticConstant
|
||||
{
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort type;
|
||||
public SDL_HapticEffectType type;
|
||||
|
||||
public SDL_HapticDirection direction;
|
||||
|
||||
|
|
@ -84,8 +82,7 @@ namespace SDL
|
|||
|
||||
public partial struct SDL_HapticPeriodic
|
||||
{
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort type;
|
||||
public SDL_HapticEffectType type;
|
||||
|
||||
public SDL_HapticDirection direction;
|
||||
|
||||
|
|
@ -128,8 +125,7 @@ namespace SDL
|
|||
|
||||
public partial struct SDL_HapticCondition
|
||||
{
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort type;
|
||||
public SDL_HapticEffectType type;
|
||||
|
||||
public SDL_HapticDirection direction;
|
||||
|
||||
|
|
@ -202,8 +198,7 @@ namespace SDL
|
|||
|
||||
public partial struct SDL_HapticRamp
|
||||
{
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort type;
|
||||
public SDL_HapticEffectType type;
|
||||
|
||||
public SDL_HapticDirection direction;
|
||||
|
||||
|
|
@ -240,8 +235,7 @@ namespace SDL
|
|||
|
||||
public partial struct SDL_HapticLeftRight
|
||||
{
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort type;
|
||||
public SDL_HapticEffectType type;
|
||||
|
||||
[NativeTypeName("Uint32")]
|
||||
public uint length;
|
||||
|
|
@ -255,8 +249,7 @@ namespace SDL
|
|||
|
||||
public unsafe partial struct SDL_HapticCustom
|
||||
{
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort type;
|
||||
public SDL_HapticEffectType type;
|
||||
|
||||
public SDL_HapticDirection direction;
|
||||
|
||||
|
|
@ -301,8 +294,7 @@ namespace SDL
|
|||
public partial struct SDL_HapticEffect
|
||||
{
|
||||
[FieldOffset(0)]
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort type;
|
||||
public SDL_HapticEffectType type;
|
||||
|
||||
[FieldOffset(0)]
|
||||
public SDL_HapticConstant constant;
|
||||
|
|
@ -328,31 +320,33 @@ namespace SDL
|
|||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_HapticID* SDL_GetHaptics(int* count);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetHapticInstanceName", ExactSpelling = true)]
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetHapticNameForID", ExactSpelling = true)]
|
||||
[return: NativeTypeName("const char *")]
|
||||
public static extern byte* Unsafe_SDL_GetHapticInstanceName(SDL_HapticID instance_id);
|
||||
public static extern byte* Unsafe_SDL_GetHapticNameForID(SDL_HapticID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_Haptic* SDL_OpenHaptic(SDL_HapticID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_Haptic* SDL_GetHapticFromInstanceID(SDL_HapticID instance_id);
|
||||
public static extern SDL_Haptic* SDL_GetHapticFromID(SDL_HapticID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_HapticID SDL_GetHapticInstanceID(SDL_Haptic* haptic);
|
||||
public static extern SDL_HapticID SDL_GetHapticID(SDL_Haptic* haptic);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetHapticName", ExactSpelling = true)]
|
||||
[return: NativeTypeName("const char *")]
|
||||
public static extern byte* Unsafe_SDL_GetHapticName(SDL_Haptic* haptic);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_IsMouseHaptic();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_IsMouseHaptic();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_Haptic* SDL_OpenHapticFromMouse();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_IsJoystickHaptic(SDL_Joystick* joystick);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_IsJoystickHaptic(SDL_Joystick* joystick);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_Haptic* SDL_OpenHapticFromJoystick(SDL_Joystick* joystick);
|
||||
|
|
@ -374,52 +368,69 @@ namespace SDL
|
|||
public static extern int SDL_GetNumHapticAxes(SDL_Haptic* haptic);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HapticEffectSupported(SDL_Haptic* haptic, [NativeTypeName("const SDL_HapticEffect *")] SDL_HapticEffect* effect);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HapticEffectSupported(SDL_Haptic* haptic, [NativeTypeName("const SDL_HapticEffect *")] SDL_HapticEffect* effect);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_CreateHapticEffect(SDL_Haptic* haptic, [NativeTypeName("const SDL_HapticEffect *")] SDL_HapticEffect* effect);
|
||||
public static extern SDL_HapticEffectID SDL_CreateHapticEffect(SDL_Haptic* haptic, [NativeTypeName("const SDL_HapticEffect *")] SDL_HapticEffect* effect);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_UpdateHapticEffect(SDL_Haptic* haptic, int effect, [NativeTypeName("const SDL_HapticEffect *")] SDL_HapticEffect* data);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_UpdateHapticEffect(SDL_Haptic* haptic, SDL_HapticEffectID effect, [NativeTypeName("const SDL_HapticEffect *")] SDL_HapticEffect* data);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_RunHapticEffect(SDL_Haptic* haptic, int effect, [NativeTypeName("Uint32")] uint iterations);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_RunHapticEffect(SDL_Haptic* haptic, SDL_HapticEffectID effect, [NativeTypeName("Uint32")] uint iterations);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_StopHapticEffect(SDL_Haptic* haptic, int effect);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_StopHapticEffect(SDL_Haptic* haptic, SDL_HapticEffectID effect);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_DestroyHapticEffect(SDL_Haptic* haptic, int effect);
|
||||
public static extern void SDL_DestroyHapticEffect(SDL_Haptic* haptic, SDL_HapticEffectID effect);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_GetHapticEffectStatus(SDL_Haptic* haptic, int effect);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_GetHapticEffectStatus(SDL_Haptic* haptic, SDL_HapticEffectID effect);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_SetHapticGain(SDL_Haptic* haptic, int gain);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetHapticGain(SDL_Haptic* haptic, int gain);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_SetHapticAutocenter(SDL_Haptic* haptic, int autocenter);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetHapticAutocenter(SDL_Haptic* haptic, int autocenter);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_PauseHaptic(SDL_Haptic* haptic);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_PauseHaptic(SDL_Haptic* haptic);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_ResumeHaptic(SDL_Haptic* haptic);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ResumeHaptic(SDL_Haptic* haptic);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_StopHapticEffects(SDL_Haptic* haptic);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_StopHapticEffects(SDL_Haptic* haptic);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HapticRumbleSupported(SDL_Haptic* haptic);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HapticRumbleSupported(SDL_Haptic* haptic);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_InitHapticRumble(SDL_Haptic* haptic);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_InitHapticRumble(SDL_Haptic* haptic);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_PlayHapticRumble(SDL_Haptic* haptic, float strength, [NativeTypeName("Uint32")] uint length);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_PlayHapticRumble(SDL_Haptic* haptic, float strength, [NativeTypeName("Uint32")] uint length);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_StopHapticRumble(SDL_Haptic* haptic);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_StopHapticRumble(SDL_Haptic* haptic);
|
||||
|
||||
[NativeTypeName("#define SDL_HAPTIC_INFINITY 4294967295U")]
|
||||
public const uint SDL_HAPTIC_INFINITY = 4294967295U;
|
||||
|
||||
[NativeTypeName("#define SDL_HAPTIC_CONSTANT (1u<<0)")]
|
||||
public const uint SDL_HAPTIC_CONSTANT = (1U << 0);
|
||||
|
|
@ -427,8 +438,8 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HAPTIC_SINE (1u<<1)")]
|
||||
public const uint SDL_HAPTIC_SINE = (1U << 1);
|
||||
|
||||
[NativeTypeName("#define SDL_HAPTIC_SQUARE (1<<2)")]
|
||||
public const int SDL_HAPTIC_SQUARE = (1 << 2);
|
||||
[NativeTypeName("#define SDL_HAPTIC_SQUARE (1u<<2)")]
|
||||
public const uint SDL_HAPTIC_SQUARE = (1U << 2);
|
||||
|
||||
[NativeTypeName("#define SDL_HAPTIC_TRIANGLE (1u<<3)")]
|
||||
public const uint SDL_HAPTIC_TRIANGLE = (1U << 3);
|
||||
|
|
@ -492,8 +503,5 @@ namespace SDL
|
|||
|
||||
[NativeTypeName("#define SDL_HAPTIC_STEERING_AXIS 3")]
|
||||
public const int SDL_HAPTIC_STEERING_AXIS = 3;
|
||||
|
||||
[NativeTypeName("#define SDL_HAPTIC_INFINITY 4294967295U")]
|
||||
public const uint SDL_HAPTIC_INFINITY = 4294967295U;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -108,6 +108,9 @@ namespace SDL
|
|||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_hid_device* SDL_hid_open_path([NativeTypeName("const char *")] byte* path);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_PropertiesID SDL_hid_get_properties(SDL_hid_device* dev);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_hid_write(SDL_hid_device* dev, [NativeTypeName("const unsigned char *")] byte* data, [NativeTypeName("size_t")] nuint length);
|
||||
|
||||
|
|
@ -151,6 +154,9 @@ namespace SDL
|
|||
public static extern int SDL_hid_get_report_descriptor(SDL_hid_device* dev, [NativeTypeName("unsigned char *")] byte* buf, [NativeTypeName("size_t")] nuint buf_size);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_hid_ble_scan(SDL_bool active);
|
||||
public static extern void SDL_hid_ble_scan([NativeTypeName("bool")] SDLBool active);
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_HIDAPI_LIBUSB_DEVICE_HANDLE_POINTER \"SDL.hidapi.libusb.device.handle\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_HIDAPI_LIBUSB_DEVICE_HANDLE_POINTER => "SDL.hidapi.libusb.device.handle"u8;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,13 +38,16 @@ namespace SDL
|
|||
public static unsafe partial class SDL3
|
||||
{
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_SetHintWithPriority([NativeTypeName("const char *")] byte* name, [NativeTypeName("const char *")] byte* value, SDL_HintPriority priority);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetHintWithPriority([NativeTypeName("const char *")] byte* name, [NativeTypeName("const char *")] byte* value, SDL_HintPriority priority);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_SetHint([NativeTypeName("const char *")] byte* name, [NativeTypeName("const char *")] byte* value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetHint([NativeTypeName("const char *")] byte* name, [NativeTypeName("const char *")] byte* value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_ResetHint([NativeTypeName("const char *")] byte* name);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ResetHint([NativeTypeName("const char *")] byte* name);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_ResetHints();
|
||||
|
|
@ -54,13 +57,15 @@ namespace SDL
|
|||
public static extern byte* Unsafe_SDL_GetHint([NativeTypeName("const char *")] byte* name);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_GetHintBoolean([NativeTypeName("const char *")] byte* name, SDL_bool default_value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_GetHintBoolean([NativeTypeName("const char *")] byte* name, [NativeTypeName("bool")] SDLBool default_value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_AddHintCallback([NativeTypeName("const char *")] byte* name, [NativeTypeName("SDL_HintCallback")] delegate* unmanaged[Cdecl]<IntPtr, byte*, byte*, byte*, void> callback, [NativeTypeName("void*")] IntPtr userdata);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_AddHintCallback([NativeTypeName("const char *")] byte* name, [NativeTypeName("SDL_HintCallback")] delegate* unmanaged[Cdecl]<IntPtr, byte*, byte*, byte*, void> callback, [NativeTypeName("void*")] IntPtr userdata);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_DelHintCallback([NativeTypeName("const char *")] byte* name, [NativeTypeName("SDL_HintCallback")] delegate* unmanaged[Cdecl]<IntPtr, byte*, byte*, byte*, void> callback, [NativeTypeName("void*")] IntPtr userdata);
|
||||
public static extern void SDL_RemoveHintCallback([NativeTypeName("const char *")] byte* name, [NativeTypeName("SDL_HintCallback")] delegate* unmanaged[Cdecl]<IntPtr, byte*, byte*, byte*, void> callback, [NativeTypeName("void*")] IntPtr userdata);
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED \"SDL_ALLOW_ALT_TAB_WHILE_GRABBED\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED => "SDL_ALLOW_ALT_TAB_WHILE_GRABBED"u8;
|
||||
|
|
@ -71,8 +76,8 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_ANDROID_BLOCK_ON_PAUSE \"SDL_ANDROID_BLOCK_ON_PAUSE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_ANDROID_BLOCK_ON_PAUSE => "SDL_ANDROID_BLOCK_ON_PAUSE"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO \"SDL_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO => "SDL_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO"u8;
|
||||
[NativeTypeName("#define SDL_HINT_ANDROID_LOW_LATENCY_AUDIO \"SDL_ANDROID_LOW_LATENCY_AUDIO\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_ANDROID_LOW_LATENCY_AUDIO => "SDL_ANDROID_LOW_LATENCY_AUDIO"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_ANDROID_TRAP_BACK_BUTTON \"SDL_ANDROID_TRAP_BACK_BUTTON\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_ANDROID_TRAP_BACK_BUTTON => "SDL_ANDROID_TRAP_BACK_BUTTON"u8;
|
||||
|
|
@ -89,11 +94,23 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION \"SDL_APPLE_TV_REMOTE_ALLOW_ROTATION\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION => "SDL_APPLE_TV_REMOTE_ALLOW_ROTATION"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_AUDIO_ALSA_DEFAULT_DEVICE \"SDL_AUDIO_ALSA_DEFAULT_DEVICE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_AUDIO_ALSA_DEFAULT_DEVICE => "SDL_AUDIO_ALSA_DEFAULT_DEVICE"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_AUDIO_ALSA_DEFAULT_PLAYBACK_DEVICE \"SDL_AUDIO_ALSA_DEFAULT_PLAYBACK_DEVICE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_AUDIO_ALSA_DEFAULT_PLAYBACK_DEVICE => "SDL_AUDIO_ALSA_DEFAULT_PLAYBACK_DEVICE"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_AUDIO_ALSA_DEFAULT_RECORDING_DEVICE \"SDL_AUDIO_ALSA_DEFAULT_RECORDING_DEVICE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_AUDIO_ALSA_DEFAULT_RECORDING_DEVICE => "SDL_AUDIO_ALSA_DEFAULT_RECORDING_DEVICE"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_AUDIO_CATEGORY \"SDL_AUDIO_CATEGORY\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_AUDIO_CATEGORY => "SDL_AUDIO_CATEGORY"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_AUDIO_DEVICE_APP_NAME \"SDL_AUDIO_DEVICE_APP_NAME\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_AUDIO_DEVICE_APP_NAME => "SDL_AUDIO_DEVICE_APP_NAME"u8;
|
||||
[NativeTypeName("#define SDL_HINT_AUDIO_CHANNELS \"SDL_AUDIO_CHANNELS\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_AUDIO_CHANNELS => "SDL_AUDIO_CHANNELS"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_AUDIO_DEVICE_APP_ICON_NAME \"SDL_AUDIO_DEVICE_APP_ICON_NAME\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_AUDIO_DEVICE_APP_ICON_NAME => "SDL_AUDIO_DEVICE_APP_ICON_NAME"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_AUDIO_DEVICE_SAMPLE_FRAMES \"SDL_AUDIO_DEVICE_SAMPLE_FRAMES\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_AUDIO_DEVICE_SAMPLE_FRAMES => "SDL_AUDIO_DEVICE_SAMPLE_FRAMES"u8;
|
||||
|
|
@ -104,9 +121,30 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_AUDIO_DEVICE_STREAM_ROLE \"SDL_AUDIO_DEVICE_STREAM_ROLE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_AUDIO_DEVICE_STREAM_ROLE => "SDL_AUDIO_DEVICE_STREAM_ROLE"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_AUDIO_DEVICE_RAW_STREAM \"SDL_AUDIO_DEVICE_RAW_STREAM\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_AUDIO_DEVICE_RAW_STREAM => "SDL_AUDIO_DEVICE_RAW_STREAM"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_AUDIO_DISK_INPUT_FILE \"SDL_AUDIO_DISK_INPUT_FILE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_AUDIO_DISK_INPUT_FILE => "SDL_AUDIO_DISK_INPUT_FILE"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_AUDIO_DISK_OUTPUT_FILE \"SDL_AUDIO_DISK_OUTPUT_FILE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_AUDIO_DISK_OUTPUT_FILE => "SDL_AUDIO_DISK_OUTPUT_FILE"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_AUDIO_DISK_TIMESCALE \"SDL_AUDIO_DISK_TIMESCALE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_AUDIO_DISK_TIMESCALE => "SDL_AUDIO_DISK_TIMESCALE"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_AUDIO_DRIVER \"SDL_AUDIO_DRIVER\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_AUDIO_DRIVER => "SDL_AUDIO_DRIVER"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_AUDIO_DUMMY_TIMESCALE \"SDL_AUDIO_DUMMY_TIMESCALE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_AUDIO_DUMMY_TIMESCALE => "SDL_AUDIO_DUMMY_TIMESCALE"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_AUDIO_FORMAT \"SDL_AUDIO_FORMAT\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_AUDIO_FORMAT => "SDL_AUDIO_FORMAT"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_AUDIO_FREQUENCY \"SDL_AUDIO_FREQUENCY\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_AUDIO_FREQUENCY => "SDL_AUDIO_FREQUENCY"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_AUDIO_INCLUDE_MONITORS \"SDL_AUDIO_INCLUDE_MONITORS\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_AUDIO_INCLUDE_MONITORS => "SDL_AUDIO_INCLUDE_MONITORS"u8;
|
||||
|
||||
|
|
@ -134,6 +172,9 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_DISPLAY_USABLE_BOUNDS \"SDL_DISPLAY_USABLE_BOUNDS\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_DISPLAY_USABLE_BOUNDS => "SDL_DISPLAY_USABLE_BOUNDS"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_INVALID_PARAM_CHECKS \"SDL_INVALID_PARAM_CHECKS\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_INVALID_PARAM_CHECKS => "SDL_INVALID_PARAM_CHECKS"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_EMSCRIPTEN_ASYNCIFY \"SDL_EMSCRIPTEN_ASYNCIFY\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_EMSCRIPTEN_ASYNCIFY => "SDL_EMSCRIPTEN_ASYNCIFY"u8;
|
||||
|
||||
|
|
@ -143,9 +184,15 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT \"SDL_EMSCRIPTEN_KEYBOARD_ELEMENT\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT => "SDL_EMSCRIPTEN_KEYBOARD_ELEMENT"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_EMSCRIPTEN_FILL_DOCUMENT \"SDL_EMSCRIPTEN_FILL_DOCUMENT\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_EMSCRIPTEN_FILL_DOCUMENT => "SDL_EMSCRIPTEN_FILL_DOCUMENT"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_ENABLE_SCREEN_KEYBOARD \"SDL_ENABLE_SCREEN_KEYBOARD\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_ENABLE_SCREEN_KEYBOARD => "SDL_ENABLE_SCREEN_KEYBOARD"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_EVDEV_DEVICES \"SDL_EVDEV_DEVICES\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_EVDEV_DEVICES => "SDL_EVDEV_DEVICES"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_EVENT_LOGGING \"SDL_EVENT_LOGGING\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_EVENT_LOGGING => "SDL_EVENT_LOGGING"u8;
|
||||
|
||||
|
|
@ -188,17 +235,26 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_GDK_TEXTINPUT_TITLE \"SDL_GDK_TEXTINPUT_TITLE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_GDK_TEXTINPUT_TITLE => "SDL_GDK_TEXTINPUT_TITLE"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_HIDAPI_LIBUSB \"SDL_HIDAPI_LIBUSB\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_HIDAPI_LIBUSB => "SDL_HIDAPI_LIBUSB"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_HIDAPI_LIBUSB_WHITELIST \"SDL_HIDAPI_LIBUSB_WHITELIST\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_HIDAPI_LIBUSB_WHITELIST => "SDL_HIDAPI_LIBUSB_WHITELIST"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_HIDAPI_UDEV \"SDL_HIDAPI_UDEV\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_HIDAPI_UDEV => "SDL_HIDAPI_UDEV"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_GPU_DRIVER \"SDL_GPU_DRIVER\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_GPU_DRIVER => "SDL_GPU_DRIVER"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_HIDAPI_ENUMERATE_ONLY_CONTROLLERS \"SDL_HIDAPI_ENUMERATE_ONLY_CONTROLLERS\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_HIDAPI_ENUMERATE_ONLY_CONTROLLERS => "SDL_HIDAPI_ENUMERATE_ONLY_CONTROLLERS"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_HIDAPI_IGNORE_DEVICES \"SDL_HIDAPI_IGNORE_DEVICES\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_HIDAPI_IGNORE_DEVICES => "SDL_HIDAPI_IGNORE_DEVICES"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_IME_INTERNAL_EDITING \"SDL_IME_INTERNAL_EDITING\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_IME_INTERNAL_EDITING => "SDL_IME_INTERNAL_EDITING"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_IME_SHOW_UI \"SDL_IME_SHOW_UI\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_IME_SHOW_UI => "SDL_IME_SHOW_UI"u8;
|
||||
[NativeTypeName("#define SDL_HINT_IME_IMPLEMENTED_UI \"SDL_IME_IMPLEMENTED_UI\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_IME_IMPLEMENTED_UI => "SDL_IME_IMPLEMENTED_UI"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_IOS_HIDE_HOME_INDICATOR \"SDL_IOS_HIDE_HOME_INDICATOR\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_IOS_HIDE_HOME_INDICATOR => "SDL_IOS_HIDE_HOME_INDICATOR"u8;
|
||||
|
|
@ -221,12 +277,18 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_JOYSTICK_DEVICE \"SDL_JOYSTICK_DEVICE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_DEVICE => "SDL_JOYSTICK_DEVICE"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_ENHANCED_REPORTS \"SDL_JOYSTICK_ENHANCED_REPORTS\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_ENHANCED_REPORTS => "SDL_JOYSTICK_ENHANCED_REPORTS"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES \"SDL_JOYSTICK_FLIGHTSTICK_DEVICES\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES => "SDL_JOYSTICK_FLIGHTSTICK_DEVICES"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES_EXCLUDED \"SDL_JOYSTICK_FLIGHTSTICK_DEVICES_EXCLUDED\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES_EXCLUDED => "SDL_JOYSTICK_FLIGHTSTICK_DEVICES_EXCLUDED"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_GAMEINPUT \"SDL_JOYSTICK_GAMEINPUT\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_GAMEINPUT => "SDL_JOYSTICK_GAMEINPUT"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_GAMECUBE_DEVICES \"SDL_JOYSTICK_GAMECUBE_DEVICES\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_GAMECUBE_DEVICES => "SDL_JOYSTICK_GAMECUBE_DEVICES"u8;
|
||||
|
||||
|
|
@ -266,8 +328,8 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_PS4 \"SDL_JOYSTICK_HIDAPI_PS4\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HIDAPI_PS4 => "SDL_JOYSTICK_HIDAPI_PS4"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE \"SDL_JOYSTICK_HIDAPI_PS4_RUMBLE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE => "SDL_JOYSTICK_HIDAPI_PS4_RUMBLE"u8;
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_PS4_REPORT_INTERVAL \"SDL_JOYSTICK_HIDAPI_PS4_REPORT_INTERVAL\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HIDAPI_PS4_REPORT_INTERVAL => "SDL_JOYSTICK_HIDAPI_PS4_REPORT_INTERVAL"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_PS5 \"SDL_JOYSTICK_HIDAPI_PS5\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HIDAPI_PS5 => "SDL_JOYSTICK_HIDAPI_PS5"u8;
|
||||
|
|
@ -275,9 +337,6 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_PS5_PLAYER_LED \"SDL_JOYSTICK_HIDAPI_PS5_PLAYER_LED\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HIDAPI_PS5_PLAYER_LED => "SDL_JOYSTICK_HIDAPI_PS5_PLAYER_LED"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_PS5_RUMBLE \"SDL_JOYSTICK_HIDAPI_PS5_RUMBLE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HIDAPI_PS5_RUMBLE => "SDL_JOYSTICK_HIDAPI_PS5_RUMBLE"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_SHIELD \"SDL_JOYSTICK_HIDAPI_SHIELD\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HIDAPI_SHIELD => "SDL_JOYSTICK_HIDAPI_SHIELD"u8;
|
||||
|
||||
|
|
@ -287,9 +346,30 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_STEAM \"SDL_JOYSTICK_HIDAPI_STEAM\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HIDAPI_STEAM => "SDL_JOYSTICK_HIDAPI_STEAM"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_STEAM_HOME_LED \"SDL_JOYSTICK_HIDAPI_STEAM_HOME_LED\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HIDAPI_STEAM_HOME_LED => "SDL_JOYSTICK_HIDAPI_STEAM_HOME_LED"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_STEAMDECK \"SDL_JOYSTICK_HIDAPI_STEAMDECK\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HIDAPI_STEAMDECK => "SDL_JOYSTICK_HIDAPI_STEAMDECK"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_STEAM_HORI \"SDL_JOYSTICK_HIDAPI_STEAM_HORI\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HIDAPI_STEAM_HORI => "SDL_JOYSTICK_HIDAPI_STEAM_HORI"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_LG4FF \"SDL_JOYSTICK_HIDAPI_LG4FF\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HIDAPI_LG4FF => "SDL_JOYSTICK_HIDAPI_LG4FF"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_8BITDO \"SDL_JOYSTICK_HIDAPI_8BITDO\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HIDAPI_8BITDO => "SDL_JOYSTICK_HIDAPI_8BITDO"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_SINPUT \"SDL_JOYSTICK_HIDAPI_SINPUT\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HIDAPI_SINPUT => "SDL_JOYSTICK_HIDAPI_SINPUT"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_ZUIKI \"SDL_JOYSTICK_HIDAPI_ZUIKI\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HIDAPI_ZUIKI => "SDL_JOYSTICK_HIDAPI_ZUIKI"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_FLYDIGI \"SDL_JOYSTICK_HIDAPI_FLYDIGI\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HIDAPI_FLYDIGI => "SDL_JOYSTICK_HIDAPI_FLYDIGI"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_SWITCH \"SDL_JOYSTICK_HIDAPI_SWITCH\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HIDAPI_SWITCH => "SDL_JOYSTICK_HIDAPI_SWITCH"u8;
|
||||
|
||||
|
|
@ -299,6 +379,9 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED \"SDL_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED => "SDL_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_SWITCH2 \"SDL_JOYSTICK_HIDAPI_SWITCH2\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HIDAPI_SWITCH2 => "SDL_JOYSTICK_HIDAPI_SWITCH2"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS \"SDL_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS => "SDL_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS"u8;
|
||||
|
||||
|
|
@ -326,6 +409,12 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED \"SDL_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED => "SDL_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_GIP \"SDL_JOYSTICK_HIDAPI_GIP\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HIDAPI_GIP => "SDL_JOYSTICK_HIDAPI_GIP"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_GIP_RESET_FOR_METADATA \"SDL_JOYSTICK_HIDAPI_GIP_RESET_FOR_METADATA\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HIDAPI_GIP_RESET_FOR_METADATA => "SDL_JOYSTICK_HIDAPI_GIP_RESET_FOR_METADATA"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_IOKIT \"SDL_JOYSTICK_IOKIT\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_IOKIT => "SDL_JOYSTICK_IOKIT"u8;
|
||||
|
||||
|
|
@ -374,12 +463,21 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_JOYSTICK_ZERO_CENTERED_DEVICES \"SDL_JOYSTICK_ZERO_CENTERED_DEVICES\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_ZERO_CENTERED_DEVICES => "SDL_JOYSTICK_ZERO_CENTERED_DEVICES"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_JOYSTICK_HAPTIC_AXES \"SDL_JOYSTICK_HAPTIC_AXES\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_JOYSTICK_HAPTIC_AXES => "SDL_JOYSTICK_HAPTIC_AXES"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_KEYCODE_OPTIONS \"SDL_KEYCODE_OPTIONS\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_KEYCODE_OPTIONS => "SDL_KEYCODE_OPTIONS"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_KMSDRM_DEVICE_INDEX \"SDL_KMSDRM_DEVICE_INDEX\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_KMSDRM_DEVICE_INDEX => "SDL_KMSDRM_DEVICE_INDEX"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_KMSDRM_REQUIRE_DRM_MASTER \"SDL_KMSDRM_REQUIRE_DRM_MASTER\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_KMSDRM_REQUIRE_DRM_MASTER => "SDL_KMSDRM_REQUIRE_DRM_MASTER"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_KMSDRM_ATOMIC \"SDL_KMSDRM_ATOMIC\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_KMSDRM_ATOMIC => "SDL_KMSDRM_ATOMIC"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_LOGGING \"SDL_LOGGING\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_LOGGING => "SDL_LOGGING"u8;
|
||||
|
||||
|
|
@ -392,6 +490,15 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_MAC_OPENGL_ASYNC_DISPATCH \"SDL_MAC_OPENGL_ASYNC_DISPATCH\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_MAC_OPENGL_ASYNC_DISPATCH => "SDL_MAC_OPENGL_ASYNC_DISPATCH"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_MAC_OPTION_AS_ALT \"SDL_MAC_OPTION_AS_ALT\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_MAC_OPTION_AS_ALT => "SDL_MAC_OPTION_AS_ALT"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_MAC_SCROLL_MOMENTUM \"SDL_MAC_SCROLL_MOMENTUM\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_MAC_SCROLL_MOMENTUM => "SDL_MAC_SCROLL_MOMENTUM"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_MAC_PRESS_AND_HOLD \"SDL_MAC_PRESS_AND_HOLD\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_MAC_PRESS_AND_HOLD => "SDL_MAC_PRESS_AND_HOLD"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_MAIN_CALLBACK_RATE \"SDL_MAIN_CALLBACK_RATE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_MAIN_CALLBACK_RATE => "SDL_MAIN_CALLBACK_RATE"u8;
|
||||
|
||||
|
|
@ -404,6 +511,12 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_MOUSE_DOUBLE_CLICK_TIME \"SDL_MOUSE_DOUBLE_CLICK_TIME\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_MOUSE_DOUBLE_CLICK_TIME => "SDL_MOUSE_DOUBLE_CLICK_TIME"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_MOUSE_DEFAULT_SYSTEM_CURSOR \"SDL_MOUSE_DEFAULT_SYSTEM_CURSOR\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_MOUSE_DEFAULT_SYSTEM_CURSOR => "SDL_MOUSE_DEFAULT_SYSTEM_CURSOR"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_MOUSE_EMULATE_WARP_WITH_RELATIVE \"SDL_MOUSE_EMULATE_WARP_WITH_RELATIVE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_MOUSE_EMULATE_WARP_WITH_RELATIVE => "SDL_MOUSE_EMULATE_WARP_WITH_RELATIVE"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH \"SDL_MOUSE_FOCUS_CLICKTHROUGH\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH => "SDL_MOUSE_FOCUS_CLICKTHROUGH"u8;
|
||||
|
||||
|
|
@ -413,9 +526,6 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_MOUSE_RELATIVE_MODE_CENTER \"SDL_MOUSE_RELATIVE_MODE_CENTER\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_MOUSE_RELATIVE_MODE_CENTER => "SDL_MOUSE_RELATIVE_MODE_CENTER"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_MOUSE_RELATIVE_MODE_WARP \"SDL_MOUSE_RELATIVE_MODE_WARP\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_MOUSE_RELATIVE_MODE_WARP => "SDL_MOUSE_RELATIVE_MODE_WARP"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE \"SDL_MOUSE_RELATIVE_SPEED_SCALE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE => "SDL_MOUSE_RELATIVE_SPEED_SCALE"u8;
|
||||
|
||||
|
|
@ -425,23 +535,32 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_MOUSE_RELATIVE_WARP_MOTION \"SDL_MOUSE_RELATIVE_WARP_MOTION\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_MOUSE_RELATIVE_WARP_MOTION => "SDL_MOUSE_RELATIVE_WARP_MOTION"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_MOUSE_RELATIVE_CURSOR_VISIBLE \"SDL_MOUSE_RELATIVE_CURSOR_VISIBLE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_MOUSE_RELATIVE_CURSOR_VISIBLE => "SDL_MOUSE_RELATIVE_CURSOR_VISIBLE"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_MOUSE_TOUCH_EVENTS \"SDL_MOUSE_TOUCH_EVENTS\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_MOUSE_TOUCH_EVENTS => "SDL_MOUSE_TOUCH_EVENTS"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_MUTE_CONSOLE_KEYBOARD \"SDL_MUTE_CONSOLE_KEYBOARD\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_MUTE_CONSOLE_KEYBOARD => "SDL_MUTE_CONSOLE_KEYBOARD"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_NO_SIGNAL_HANDLERS \"SDL_NO_SIGNAL_HANDLERS\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_NO_SIGNAL_HANDLERS => "SDL_NO_SIGNAL_HANDLERS"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_OPENGL_LIBRARY \"SDL_OPENGL_LIBRARY\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_OPENGL_LIBRARY => "SDL_OPENGL_LIBRARY"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_EGL_LIBRARY \"SDL_EGL_LIBRARY\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_EGL_LIBRARY => "SDL_EGL_LIBRARY"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_OPENGL_ES_DRIVER \"SDL_OPENGL_ES_DRIVER\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_OPENGL_ES_DRIVER => "SDL_OPENGL_ES_DRIVER"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_ORIENTATIONS \"SDL_IOS_ORIENTATIONS\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_ORIENTATIONS => "SDL_IOS_ORIENTATIONS"u8;
|
||||
[NativeTypeName("#define SDL_HINT_OPENVR_LIBRARY \"SDL_OPENVR_LIBRARY\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_OPENVR_LIBRARY => "SDL_OPENVR_LIBRARY"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_PEN_DELAY_MOUSE_BUTTON \"SDL_PEN_DELAY_MOUSE_BUTTON\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_PEN_DELAY_MOUSE_BUTTON => "SDL_PEN_DELAY_MOUSE_BUTTON"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_PEN_NOT_MOUSE \"SDL_PEN_NOT_MOUSE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_PEN_NOT_MOUSE => "SDL_PEN_NOT_MOUSE"u8;
|
||||
[NativeTypeName("#define SDL_HINT_ORIENTATIONS \"SDL_ORIENTATIONS\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_ORIENTATIONS => "SDL_ORIENTATIONS"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_POLL_SENTINEL \"SDL_POLL_SENTINEL\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_POLL_SENTINEL => "SDL_POLL_SENTINEL"u8;
|
||||
|
|
@ -458,9 +577,18 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_RENDER_DIRECT3D11_DEBUG \"SDL_RENDER_DIRECT3D11_DEBUG\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_RENDER_DIRECT3D11_DEBUG => "SDL_RENDER_DIRECT3D11_DEBUG"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_RENDER_DIRECT3D11_WARP \"SDL_RENDER_DIRECT3D11_WARP\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_RENDER_DIRECT3D11_WARP => "SDL_RENDER_DIRECT3D11_WARP"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_RENDER_VULKAN_DEBUG \"SDL_RENDER_VULKAN_DEBUG\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_RENDER_VULKAN_DEBUG => "SDL_RENDER_VULKAN_DEBUG"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_RENDER_GPU_DEBUG \"SDL_RENDER_GPU_DEBUG\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_RENDER_GPU_DEBUG => "SDL_RENDER_GPU_DEBUG"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_RENDER_GPU_LOW_POWER \"SDL_RENDER_GPU_LOW_POWER\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_RENDER_GPU_LOW_POWER => "SDL_RENDER_GPU_LOW_POWER"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_RENDER_DRIVER \"SDL_RENDER_DRIVER\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_RENDER_DRIVER => "SDL_RENDER_DRIVER"u8;
|
||||
|
||||
|
|
@ -470,9 +598,6 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_RENDER_METAL_PREFER_LOW_POWER_DEVICE \"SDL_RENDER_METAL_PREFER_LOW_POWER_DEVICE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_RENDER_METAL_PREFER_LOW_POWER_DEVICE => "SDL_RENDER_METAL_PREFER_LOW_POWER_DEVICE"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_RENDER_PS2_DYNAMIC_VSYNC \"SDL_RENDER_PS2_DYNAMIC_VSYNC\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_RENDER_PS2_DYNAMIC_VSYNC => "SDL_RENDER_PS2_DYNAMIC_VSYNC"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_RENDER_VSYNC \"SDL_RENDER_VSYNC\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_RENDER_VSYNC => "SDL_RENDER_VSYNC"u8;
|
||||
|
||||
|
|
@ -485,6 +610,18 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_ROG_GAMEPAD_MICE_EXCLUDED \"SDL_ROG_GAMEPAD_MICE_EXCLUDED\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_ROG_GAMEPAD_MICE_EXCLUDED => "SDL_ROG_GAMEPAD_MICE_EXCLUDED"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_PS2_GS_WIDTH \"SDL_PS2_GS_WIDTH\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_PS2_GS_WIDTH => "SDL_PS2_GS_WIDTH"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_PS2_GS_HEIGHT \"SDL_PS2_GS_HEIGHT\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_PS2_GS_HEIGHT => "SDL_PS2_GS_HEIGHT"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_PS2_GS_PROGRESSIVE \"SDL_PS2_GS_PROGRESSIVE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_PS2_GS_PROGRESSIVE => "SDL_PS2_GS_PROGRESSIVE"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_PS2_GS_MODE \"SDL_PS2_GS_MODE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_PS2_GS_MODE => "SDL_PS2_GS_MODE"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_RPI_VIDEO_LAYER \"SDL_RPI_VIDEO_LAYER\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_RPI_VIDEO_LAYER => "SDL_RPI_VIDEO_LAYER"u8;
|
||||
|
||||
|
|
@ -521,14 +658,20 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_VIDEO_ALLOW_SCREENSAVER \"SDL_VIDEO_ALLOW_SCREENSAVER\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_ALLOW_SCREENSAVER => "SDL_VIDEO_ALLOW_SCREENSAVER"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_DISPLAY_PRIORITY \"SDL_VIDEO_DISPLAY_PRIORITY\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_DISPLAY_PRIORITY => "SDL_VIDEO_DISPLAY_PRIORITY"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_DOUBLE_BUFFER \"SDL_VIDEO_DOUBLE_BUFFER\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_DOUBLE_BUFFER => "SDL_VIDEO_DOUBLE_BUFFER"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_DRIVER \"SDL_VIDEO_DRIVER\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_DRIVER => "SDL_VIDEO_DRIVER"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK \"SDL_VIDEO_EGL_GETDISPLAY_FALLBACK\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK => "SDL_VIDEO_EGL_GETDISPLAY_FALLBACK"u8;
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_DUMMY_SAVE_FRAMES \"SDL_VIDEO_DUMMY_SAVE_FRAMES\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_DUMMY_SAVE_FRAMES => "SDL_VIDEO_DUMMY_SAVE_FRAMES"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK \"SDL_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK => "SDL_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_FORCE_EGL \"SDL_VIDEO_FORCE_EGL\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_FORCE_EGL => "SDL_VIDEO_FORCE_EGL"u8;
|
||||
|
|
@ -536,18 +679,27 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES \"SDL_VIDEO_MAC_FULLSCREEN_SPACES\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES => "SDL_VIDEO_MAC_FULLSCREEN_SPACES"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_MAC_FULLSCREEN_MENU_VISIBILITY \"SDL_VIDEO_MAC_FULLSCREEN_MENU_VISIBILITY\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_MAC_FULLSCREEN_MENU_VISIBILITY => "SDL_VIDEO_MAC_FULLSCREEN_MENU_VISIBILITY"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_METAL_AUTO_RESIZE_DRAWABLE \"SDL_VIDEO_METAL_AUTO_RESIZE_DRAWABLE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_METAL_AUTO_RESIZE_DRAWABLE => "SDL_VIDEO_METAL_AUTO_RESIZE_DRAWABLE"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_MATCH_EXCLUSIVE_MODE_ON_MOVE \"SDL_VIDEO_MATCH_EXCLUSIVE_MODE_ON_MOVE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_MATCH_EXCLUSIVE_MODE_ON_MOVE => "SDL_VIDEO_MATCH_EXCLUSIVE_MODE_ON_MOVE"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS \"SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS => "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_OFFSCREEN_SAVE_FRAMES \"SDL_VIDEO_OFFSCREEN_SAVE_FRAMES\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_OFFSCREEN_SAVE_FRAMES => "SDL_VIDEO_OFFSCREEN_SAVE_FRAMES"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_SYNC_WINDOW_OPERATIONS \"SDL_VIDEO_SYNC_WINDOW_OPERATIONS\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_SYNC_WINDOW_OPERATIONS => "SDL_VIDEO_SYNC_WINDOW_OPERATIONS"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR \"SDL_VIDEO_WAYLAND_ALLOW_LIBDECOR\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR => "SDL_VIDEO_WAYLAND_ALLOW_LIBDECOR"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_WAYLAND_EMULATE_MOUSE_WARP \"SDL_VIDEO_WAYLAND_EMULATE_MOUSE_WARP\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_WAYLAND_EMULATE_MOUSE_WARP => "SDL_VIDEO_WAYLAND_EMULATE_MOUSE_WARP"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_WAYLAND_MODE_EMULATION \"SDL_VIDEO_WAYLAND_MODE_EMULATION\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_WAYLAND_MODE_EMULATION => "SDL_VIDEO_WAYLAND_MODE_EMULATION"u8;
|
||||
|
||||
|
|
@ -563,27 +715,63 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_VIDEO_WIN_D3DCOMPILER \"SDL_VIDEO_WIN_D3DCOMPILER\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_WIN_D3DCOMPILER => "SDL_VIDEO_WIN_D3DCOMPILER"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_X11_EXTERNAL_WINDOW_INPUT \"SDL_VIDEO_X11_EXTERNAL_WINDOW_INPUT\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_X11_EXTERNAL_WINDOW_INPUT => "SDL_VIDEO_X11_EXTERNAL_WINDOW_INPUT"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR \"SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR => "SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_X11_NET_WM_PING \"SDL_VIDEO_X11_NET_WM_PING\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_X11_NET_WM_PING => "SDL_VIDEO_X11_NET_WM_PING"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_X11_NODIRECTCOLOR \"SDL_VIDEO_X11_NODIRECTCOLOR\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_X11_NODIRECTCOLOR => "SDL_VIDEO_X11_NODIRECTCOLOR"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_X11_SCALING_FACTOR \"SDL_VIDEO_X11_SCALING_FACTOR\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_X11_SCALING_FACTOR => "SDL_VIDEO_X11_SCALING_FACTOR"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_X11_VISUALID \"SDL_VIDEO_X11_VISUALID\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_X11_VISUALID => "SDL_VIDEO_X11_VISUALID"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_X11_WINDOW_VISUALID \"SDL_VIDEO_X11_WINDOW_VISUALID\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_X11_WINDOW_VISUALID => "SDL_VIDEO_X11_WINDOW_VISUALID"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VIDEO_X11_XRANDR \"SDL_VIDEO_X11_XRANDR\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_X11_XRANDR => "SDL_VIDEO_X11_XRANDR"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VITA_ENABLE_BACK_TOUCH \"SDL_VITA_ENABLE_BACK_TOUCH\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VITA_ENABLE_BACK_TOUCH => "SDL_VITA_ENABLE_BACK_TOUCH"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VITA_ENABLE_FRONT_TOUCH \"SDL_VITA_ENABLE_FRONT_TOUCH\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VITA_ENABLE_FRONT_TOUCH => "SDL_VITA_ENABLE_FRONT_TOUCH"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VITA_MODULE_PATH \"SDL_VITA_MODULE_PATH\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VITA_MODULE_PATH => "SDL_VITA_MODULE_PATH"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VITA_PVR_INIT \"SDL_VITA_PVR_INIT\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VITA_PVR_INIT => "SDL_VITA_PVR_INIT"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VITA_RESOLUTION \"SDL_VITA_RESOLUTION\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VITA_RESOLUTION => "SDL_VITA_RESOLUTION"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VITA_PVR_OPENGL \"SDL_VITA_PVR_OPENGL\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VITA_PVR_OPENGL => "SDL_VITA_PVR_OPENGL"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VITA_TOUCH_MOUSE_DEVICE \"SDL_VITA_TOUCH_MOUSE_DEVICE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VITA_TOUCH_MOUSE_DEVICE => "SDL_VITA_TOUCH_MOUSE_DEVICE"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VULKAN_DISPLAY \"SDL_VULKAN_DISPLAY\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VULKAN_DISPLAY => "SDL_VULKAN_DISPLAY"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_VULKAN_LIBRARY \"SDL_VULKAN_LIBRARY\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_VULKAN_LIBRARY => "SDL_VULKAN_LIBRARY"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_WAVE_FACT_CHUNK \"SDL_WAVE_FACT_CHUNK\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_WAVE_FACT_CHUNK => "SDL_WAVE_FACT_CHUNK"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_WAVE_CHUNK_LIMIT \"SDL_WAVE_CHUNK_LIMIT\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_WAVE_CHUNK_LIMIT => "SDL_WAVE_CHUNK_LIMIT"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_WAVE_RIFF_CHUNK_SIZE \"SDL_WAVE_RIFF_CHUNK_SIZE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_WAVE_RIFF_CHUNK_SIZE => "SDL_WAVE_RIFF_CHUNK_SIZE"u8;
|
||||
|
||||
|
|
@ -611,11 +799,14 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP \"SDL_WINDOWS_ENABLE_MESSAGELOOP\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP => "SDL_WINDOWS_ENABLE_MESSAGELOOP"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_WINDOWS_GAMEINPUT \"SDL_WINDOWS_GAMEINPUT\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_WINDOWS_GAMEINPUT => "SDL_WINDOWS_GAMEINPUT"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_WINDOWS_RAW_KEYBOARD \"SDL_WINDOWS_RAW_KEYBOARD\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_WINDOWS_RAW_KEYBOARD => "SDL_WINDOWS_RAW_KEYBOARD"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS \"SDL_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS => "SDL_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS"u8;
|
||||
[NativeTypeName("#define SDL_HINT_WINDOWS_RAW_KEYBOARD_EXCLUDE_HOTKEYS \"SDL_WINDOWS_RAW_KEYBOARD_EXCLUDE_HOTKEYS\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_WINDOWS_RAW_KEYBOARD_EXCLUDE_HOTKEYS => "SDL_WINDOWS_RAW_KEYBOARD_EXCLUDE_HOTKEYS"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL \"SDL_WINDOWS_FORCE_SEMAPHORE_KERNEL\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL => "SDL_WINDOWS_FORCE_SEMAPHORE_KERNEL"u8;
|
||||
|
|
@ -629,14 +820,8 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_WINDOWS_USE_D3D9EX \"SDL_WINDOWS_USE_D3D9EX\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_WINDOWS_USE_D3D9EX => "SDL_WINDOWS_USE_D3D9EX"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_WINRT_HANDLE_BACK_BUTTON \"SDL_WINRT_HANDLE_BACK_BUTTON\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_WINRT_HANDLE_BACK_BUTTON => "SDL_WINRT_HANDLE_BACK_BUTTON"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_WINRT_PRIVACY_POLICY_LABEL \"SDL_WINRT_PRIVACY_POLICY_LABEL\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_WINRT_PRIVACY_POLICY_LABEL => "SDL_WINRT_PRIVACY_POLICY_LABEL"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_WINRT_PRIVACY_POLICY_URL \"SDL_WINRT_PRIVACY_POLICY_URL\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_WINRT_PRIVACY_POLICY_URL => "SDL_WINRT_PRIVACY_POLICY_URL"u8;
|
||||
[NativeTypeName("#define SDL_HINT_WINDOWS_ERASE_BACKGROUND_MODE \"SDL_WINDOWS_ERASE_BACKGROUND_MODE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_WINDOWS_ERASE_BACKGROUND_MODE => "SDL_WINDOWS_ERASE_BACKGROUND_MODE"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_X11_FORCE_OVERRIDE_REDIRECT \"SDL_X11_FORCE_OVERRIDE_REDIRECT\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_X11_FORCE_OVERRIDE_REDIRECT => "SDL_X11_FORCE_OVERRIDE_REDIRECT"u8;
|
||||
|
|
@ -644,7 +829,19 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_HINT_X11_WINDOW_TYPE \"SDL_X11_WINDOW_TYPE\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_X11_WINDOW_TYPE => "SDL_X11_WINDOW_TYPE"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_X11_XCB_LIBRARY \"SDL_X11_XCB_LIBRARY\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_X11_XCB_LIBRARY => "SDL_X11_XCB_LIBRARY"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_XINPUT_ENABLED \"SDL_XINPUT_ENABLED\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_XINPUT_ENABLED => "SDL_XINPUT_ENABLED"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_ASSERT \"SDL_ASSERT\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_ASSERT => "SDL_ASSERT"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_PEN_MOUSE_EVENTS \"SDL_PEN_MOUSE_EVENTS\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_PEN_MOUSE_EVENTS => "SDL_PEN_MOUSE_EVENTS"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HINT_PEN_TOUCH_EVENTS \"SDL_PEN_TOUCH_EVENTS\"")]
|
||||
public static ReadOnlySpan<byte> SDL_HINT_PEN_TOUCH_EVENTS => "SDL_PEN_TOUCH_EVENTS"u8;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,27 +28,22 @@ using System.Runtime.InteropServices;
|
|||
|
||||
namespace SDL
|
||||
{
|
||||
[Flags]
|
||||
public enum SDL_InitFlags
|
||||
public enum SDL_AppResult
|
||||
{
|
||||
SDL_INIT_TIMER = 0x00000001,
|
||||
SDL_INIT_AUDIO = 0x00000010,
|
||||
SDL_INIT_VIDEO = 0x00000020,
|
||||
SDL_INIT_JOYSTICK = 0x00000200,
|
||||
SDL_INIT_HAPTIC = 0x00001000,
|
||||
SDL_INIT_GAMEPAD = 0x00002000,
|
||||
SDL_INIT_EVENTS = 0x00004000,
|
||||
SDL_INIT_SENSOR = 0x00008000,
|
||||
SDL_INIT_CAMERA = 0x00010000,
|
||||
SDL_APP_CONTINUE,
|
||||
SDL_APP_SUCCESS,
|
||||
SDL_APP_FAILURE,
|
||||
}
|
||||
|
||||
public static partial class SDL3
|
||||
public static unsafe partial class SDL3
|
||||
{
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_Init(SDL_InitFlags flags);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_Init(SDL_InitFlags flags);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_InitSubSystem(SDL_InitFlags flags);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_InitSubSystem(SDL_InitFlags flags);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_QuitSubSystem(SDL_InitFlags flags);
|
||||
|
|
@ -58,5 +53,70 @@ namespace SDL
|
|||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_Quit();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_IsMainThread();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_RunOnMainThread([NativeTypeName("SDL_MainThreadCallback")] delegate* unmanaged[Cdecl]<IntPtr, void> callback, [NativeTypeName("void*")] IntPtr userdata, [NativeTypeName("bool")] SDLBool wait_complete);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetAppMetadata([NativeTypeName("const char *")] byte* appname, [NativeTypeName("const char *")] byte* appversion, [NativeTypeName("const char *")] byte* appidentifier);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetAppMetadataProperty([NativeTypeName("const char *")] byte* name, [NativeTypeName("const char *")] byte* value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetAppMetadataProperty", ExactSpelling = true)]
|
||||
[return: NativeTypeName("const char *")]
|
||||
public static extern byte* Unsafe_SDL_GetAppMetadataProperty([NativeTypeName("const char *")] byte* name);
|
||||
|
||||
[NativeTypeName("#define SDL_INIT_AUDIO 0x00000010u")]
|
||||
public const uint SDL_INIT_AUDIO = 0x00000010U;
|
||||
|
||||
[NativeTypeName("#define SDL_INIT_VIDEO 0x00000020u")]
|
||||
public const uint SDL_INIT_VIDEO = 0x00000020U;
|
||||
|
||||
[NativeTypeName("#define SDL_INIT_JOYSTICK 0x00000200u")]
|
||||
public const uint SDL_INIT_JOYSTICK = 0x00000200U;
|
||||
|
||||
[NativeTypeName("#define SDL_INIT_HAPTIC 0x00001000u")]
|
||||
public const uint SDL_INIT_HAPTIC = 0x00001000U;
|
||||
|
||||
[NativeTypeName("#define SDL_INIT_GAMEPAD 0x00002000u")]
|
||||
public const uint SDL_INIT_GAMEPAD = 0x00002000U;
|
||||
|
||||
[NativeTypeName("#define SDL_INIT_EVENTS 0x00004000u")]
|
||||
public const uint SDL_INIT_EVENTS = 0x00004000U;
|
||||
|
||||
[NativeTypeName("#define SDL_INIT_SENSOR 0x00008000u")]
|
||||
public const uint SDL_INIT_SENSOR = 0x00008000U;
|
||||
|
||||
[NativeTypeName("#define SDL_INIT_CAMERA 0x00010000u")]
|
||||
public const uint SDL_INIT_CAMERA = 0x00010000U;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_APP_METADATA_NAME_STRING \"SDL.app.metadata.name\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_APP_METADATA_NAME_STRING => "SDL.app.metadata.name"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_APP_METADATA_VERSION_STRING \"SDL.app.metadata.version\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_APP_METADATA_VERSION_STRING => "SDL.app.metadata.version"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_APP_METADATA_IDENTIFIER_STRING \"SDL.app.metadata.identifier\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_APP_METADATA_IDENTIFIER_STRING => "SDL.app.metadata.identifier"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_APP_METADATA_CREATOR_STRING \"SDL.app.metadata.creator\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_APP_METADATA_CREATOR_STRING => "SDL.app.metadata.creator"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_APP_METADATA_COPYRIGHT_STRING \"SDL.app.metadata.copyright\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_APP_METADATA_COPYRIGHT_STRING => "SDL.app.metadata.copyright"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_APP_METADATA_URL_STRING \"SDL.app.metadata.url\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_APP_METADATA_URL_STRING => "SDL.app.metadata.url"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_APP_METADATA_TYPE_STRING \"SDL.app.metadata.type\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_APP_METADATA_TYPE_STRING => "SDL.app.metadata.type"u8;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,13 +38,23 @@ namespace SDL
|
|||
SDL_IO_STATUS_WRITEONLY,
|
||||
}
|
||||
|
||||
public enum SDL_IOWhence
|
||||
{
|
||||
SDL_IO_SEEK_SET,
|
||||
SDL_IO_SEEK_CUR,
|
||||
SDL_IO_SEEK_END,
|
||||
}
|
||||
|
||||
public unsafe partial struct SDL_IOStreamInterface
|
||||
{
|
||||
[NativeTypeName("Uint32")]
|
||||
public uint version;
|
||||
|
||||
[NativeTypeName("Sint64 (*)(void *)")]
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, long> size;
|
||||
|
||||
[NativeTypeName("Sint64 (*)(void *, Sint64, int)")]
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, long, int, long> seek;
|
||||
[NativeTypeName("Sint64 (*)(void *, Sint64, SDL_IOWhence)")]
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, long, SDL_IOWhence, long> seek;
|
||||
|
||||
[NativeTypeName("size_t (*)(void *, void *, size_t, SDL_IOStatus *)")]
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, nuint, SDL_IOStatus*, nuint> read;
|
||||
|
|
@ -52,8 +62,11 @@ namespace SDL
|
|||
[NativeTypeName("size_t (*)(void *, const void *, size_t, SDL_IOStatus *)")]
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, nuint, SDL_IOStatus*, nuint> write;
|
||||
|
||||
[NativeTypeName("int (*)(void *)")]
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int> close;
|
||||
[NativeTypeName("bool (*)(void *, SDL_IOStatus *)")]
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, SDL_IOStatus*, SDLBool> flush;
|
||||
|
||||
[NativeTypeName("bool (*)(void *)")]
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, SDLBool> close;
|
||||
}
|
||||
|
||||
public partial struct SDL_IOStream
|
||||
|
|
@ -78,7 +91,8 @@ namespace SDL
|
|||
public static extern SDL_IOStream* SDL_OpenIO([NativeTypeName("const SDL_IOStreamInterface *")] SDL_IOStreamInterface* iface, [NativeTypeName("void*")] IntPtr userdata);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_CloseIO(SDL_IOStream* context);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_CloseIO(SDL_IOStream* context);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_PropertiesID SDL_GetIOProperties(SDL_IOStream* context);
|
||||
|
|
@ -92,7 +106,7 @@ namespace SDL
|
|||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("Sint64")]
|
||||
public static extern long SDL_SeekIO(SDL_IOStream* context, [NativeTypeName("Sint64")] long offset, int whence);
|
||||
public static extern long SDL_SeekIO(SDL_IOStream* context, [NativeTypeName("Sint64")] long offset, SDL_IOWhence whence);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("Sint64")]
|
||||
|
|
@ -114,91 +128,137 @@ namespace SDL
|
|||
[return: NativeTypeName("size_t")]
|
||||
public static extern nuint SDL_IOvprintf(SDL_IOStream* context, [NativeTypeName("const char *")] byte* fmt, [NativeTypeName("va_list")] byte* ap);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_FlushIO(SDL_IOStream* context);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("void*")]
|
||||
public static extern IntPtr SDL_LoadFile_IO(SDL_IOStream* src, [NativeTypeName("size_t *")] nuint* datasize, SDL_bool closeio);
|
||||
public static extern IntPtr SDL_LoadFile_IO(SDL_IOStream* src, [NativeTypeName("size_t *")] nuint* datasize, [NativeTypeName("bool")] SDLBool closeio);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("void*")]
|
||||
public static extern IntPtr SDL_LoadFile([NativeTypeName("const char *")] byte* file, [NativeTypeName("size_t *")] nuint* datasize);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_ReadU8(SDL_IOStream* src, [NativeTypeName("Uint8 *")] byte* value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SaveFile_IO(SDL_IOStream* src, [NativeTypeName("const void *")] IntPtr data, [NativeTypeName("size_t")] nuint datasize, [NativeTypeName("bool")] SDLBool closeio);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_ReadU16LE(SDL_IOStream* src, [NativeTypeName("Uint16 *")] ushort* value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SaveFile([NativeTypeName("const char *")] byte* file, [NativeTypeName("const void *")] IntPtr data, [NativeTypeName("size_t")] nuint datasize);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_ReadS16LE(SDL_IOStream* src, [NativeTypeName("Sint16 *")] short* value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ReadU8(SDL_IOStream* src, [NativeTypeName("Uint8 *")] byte* value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_ReadU16BE(SDL_IOStream* src, [NativeTypeName("Uint16 *")] ushort* value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ReadS8(SDL_IOStream* src, [NativeTypeName("Sint8 *")] sbyte* value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_ReadS16BE(SDL_IOStream* src, [NativeTypeName("Sint16 *")] short* value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ReadU16LE(SDL_IOStream* src, [NativeTypeName("Uint16 *")] ushort* value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_ReadU32LE(SDL_IOStream* src, [NativeTypeName("Uint32 *")] uint* value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ReadS16LE(SDL_IOStream* src, [NativeTypeName("Sint16 *")] short* value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_ReadS32LE(SDL_IOStream* src, [NativeTypeName("Sint32 *")] int* value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ReadU16BE(SDL_IOStream* src, [NativeTypeName("Uint16 *")] ushort* value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_ReadU32BE(SDL_IOStream* src, [NativeTypeName("Uint32 *")] uint* value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ReadS16BE(SDL_IOStream* src, [NativeTypeName("Sint16 *")] short* value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_ReadS32BE(SDL_IOStream* src, [NativeTypeName("Sint32 *")] int* value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ReadU32LE(SDL_IOStream* src, [NativeTypeName("Uint32 *")] uint* value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_ReadU64LE(SDL_IOStream* src, [NativeTypeName("Uint64 *")] ulong* value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ReadS32LE(SDL_IOStream* src, [NativeTypeName("Sint32 *")] int* value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_ReadS64LE(SDL_IOStream* src, [NativeTypeName("Sint64 *")] long* value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ReadU32BE(SDL_IOStream* src, [NativeTypeName("Uint32 *")] uint* value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_ReadU64BE(SDL_IOStream* src, [NativeTypeName("Uint64 *")] ulong* value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ReadS32BE(SDL_IOStream* src, [NativeTypeName("Sint32 *")] int* value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_ReadS64BE(SDL_IOStream* src, [NativeTypeName("Sint64 *")] long* value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ReadU64LE(SDL_IOStream* src, [NativeTypeName("Uint64 *")] ulong* value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_WriteU8(SDL_IOStream* dst, [NativeTypeName("Uint8")] byte value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ReadS64LE(SDL_IOStream* src, [NativeTypeName("Sint64 *")] long* value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_WriteU16LE(SDL_IOStream* dst, [NativeTypeName("Uint16")] ushort value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ReadU64BE(SDL_IOStream* src, [NativeTypeName("Uint64 *")] ulong* value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_WriteS16LE(SDL_IOStream* dst, [NativeTypeName("Sint16")] short value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ReadS64BE(SDL_IOStream* src, [NativeTypeName("Sint64 *")] long* value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_WriteU16BE(SDL_IOStream* dst, [NativeTypeName("Uint16")] ushort value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_WriteU8(SDL_IOStream* dst, [NativeTypeName("Uint8")] byte value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_WriteS16BE(SDL_IOStream* dst, [NativeTypeName("Sint16")] short value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_WriteS8(SDL_IOStream* dst, [NativeTypeName("Sint8")] sbyte value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_WriteU32LE(SDL_IOStream* dst, [NativeTypeName("Uint32")] uint value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_WriteU16LE(SDL_IOStream* dst, [NativeTypeName("Uint16")] ushort value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_WriteS32LE(SDL_IOStream* dst, [NativeTypeName("Sint32")] int value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_WriteS16LE(SDL_IOStream* dst, [NativeTypeName("Sint16")] short value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_WriteU32BE(SDL_IOStream* dst, [NativeTypeName("Uint32")] uint value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_WriteU16BE(SDL_IOStream* dst, [NativeTypeName("Uint16")] ushort value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_WriteS32BE(SDL_IOStream* dst, [NativeTypeName("Sint32")] int value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_WriteS16BE(SDL_IOStream* dst, [NativeTypeName("Sint16")] short value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_WriteU64LE(SDL_IOStream* dst, [NativeTypeName("Uint64")] ulong value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_WriteU32LE(SDL_IOStream* dst, [NativeTypeName("Uint32")] uint value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_WriteS64LE(SDL_IOStream* dst, [NativeTypeName("Sint64")] long value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_WriteS32LE(SDL_IOStream* dst, [NativeTypeName("Sint32")] int value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_WriteU64BE(SDL_IOStream* dst, [NativeTypeName("Uint64")] ulong value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_WriteU32BE(SDL_IOStream* dst, [NativeTypeName("Uint32")] uint value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_WriteS64BE(SDL_IOStream* dst, [NativeTypeName("Sint64")] long value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_WriteS32BE(SDL_IOStream* dst, [NativeTypeName("Sint32")] int value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_WriteU64LE(SDL_IOStream* dst, [NativeTypeName("Uint64")] ulong value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_WriteS64LE(SDL_IOStream* dst, [NativeTypeName("Sint64")] long value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_WriteU64BE(SDL_IOStream* dst, [NativeTypeName("Uint64")] ulong value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_WriteS64BE(SDL_IOStream* dst, [NativeTypeName("Sint64")] long value);
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_IOSTREAM_WINDOWS_HANDLE_POINTER \"SDL.iostream.windows.handle\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_IOSTREAM_WINDOWS_HANDLE_POINTER => "SDL.iostream.windows.handle"u8;
|
||||
|
|
@ -206,22 +266,25 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_PROP_IOSTREAM_STDIO_FILE_POINTER \"SDL.iostream.stdio.file\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_IOSTREAM_STDIO_FILE_POINTER => "SDL.iostream.stdio.file"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_IOSTREAM_FILE_DESCRIPTOR_NUMBER \"SDL.iostream.file_descriptor\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_IOSTREAM_FILE_DESCRIPTOR_NUMBER => "SDL.iostream.file_descriptor"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_IOSTREAM_ANDROID_AASSET_POINTER \"SDL.iostream.android.aasset\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_IOSTREAM_ANDROID_AASSET_POINTER => "SDL.iostream.android.aasset"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_IOSTREAM_MEMORY_POINTER \"SDL.iostream.memory.base\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_IOSTREAM_MEMORY_POINTER => "SDL.iostream.memory.base"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_IOSTREAM_MEMORY_SIZE_NUMBER \"SDL.iostream.memory.size\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_IOSTREAM_MEMORY_SIZE_NUMBER => "SDL.iostream.memory.size"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_IOSTREAM_MEMORY_FREE_FUNC_POINTER \"SDL.iostream.memory.free\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_IOSTREAM_MEMORY_FREE_FUNC_POINTER => "SDL.iostream.memory.free"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_IOSTREAM_DYNAMIC_MEMORY_POINTER \"SDL.iostream.dynamic.memory\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_IOSTREAM_DYNAMIC_MEMORY_POINTER => "SDL.iostream.dynamic.memory"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_IOSTREAM_DYNAMIC_CHUNKSIZE_NUMBER \"SDL.iostream.dynamic.chunksize\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_IOSTREAM_DYNAMIC_CHUNKSIZE_NUMBER => "SDL.iostream.dynamic.chunksize"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_IO_SEEK_SET 0")]
|
||||
public const int SDL_IO_SEEK_SET = 0;
|
||||
|
||||
[NativeTypeName("#define SDL_IO_SEEK_CUR 1")]
|
||||
public const int SDL_IO_SEEK_CUR = 1;
|
||||
|
||||
[NativeTypeName("#define SDL_IO_SEEK_END 2")]
|
||||
public const int SDL_IO_SEEK_END = 2;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
*/
|
||||
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace SDL
|
||||
|
|
@ -44,6 +45,7 @@ namespace SDL
|
|||
SDL_JOYSTICK_TYPE_DRUM_KIT,
|
||||
SDL_JOYSTICK_TYPE_ARCADE_PAD,
|
||||
SDL_JOYSTICK_TYPE_THROTTLE,
|
||||
SDL_JOYSTICK_TYPE_COUNT,
|
||||
}
|
||||
|
||||
public enum SDL_JoystickConnectionState
|
||||
|
|
@ -54,22 +56,38 @@ namespace SDL
|
|||
SDL_JOYSTICK_CONNECTION_WIRELESS,
|
||||
}
|
||||
|
||||
public unsafe partial struct SDL_VirtualJoystickDesc
|
||||
public partial struct SDL_VirtualJoystickTouchpadDesc
|
||||
{
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort version;
|
||||
public ushort nfingers;
|
||||
|
||||
[NativeTypeName("Uint16[3]")]
|
||||
public _padding_e__FixedBuffer padding;
|
||||
|
||||
[InlineArray(3)]
|
||||
public partial struct _padding_e__FixedBuffer
|
||||
{
|
||||
public ushort e0;
|
||||
}
|
||||
}
|
||||
|
||||
public partial struct SDL_VirtualJoystickSensorDesc
|
||||
{
|
||||
public SDL_SensorType type;
|
||||
|
||||
public float rate;
|
||||
}
|
||||
|
||||
public unsafe partial struct SDL_VirtualJoystickDesc
|
||||
{
|
||||
[NativeTypeName("Uint32")]
|
||||
public uint version;
|
||||
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort type;
|
||||
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort naxes;
|
||||
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort nbuttons;
|
||||
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort nhats;
|
||||
public ushort padding;
|
||||
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort vendor_id;
|
||||
|
|
@ -78,7 +96,25 @@ namespace SDL
|
|||
public ushort product_id;
|
||||
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort padding;
|
||||
public ushort naxes;
|
||||
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort nbuttons;
|
||||
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort nballs;
|
||||
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort nhats;
|
||||
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort ntouchpads;
|
||||
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort nsensors;
|
||||
|
||||
[NativeTypeName("Uint16[2]")]
|
||||
public _padding2_e__FixedBuffer padding2;
|
||||
|
||||
[NativeTypeName("Uint32")]
|
||||
public uint button_mask;
|
||||
|
|
@ -89,6 +125,12 @@ namespace SDL
|
|||
[NativeTypeName("const char *")]
|
||||
public byte* name;
|
||||
|
||||
[NativeTypeName("const SDL_VirtualJoystickTouchpadDesc *")]
|
||||
public SDL_VirtualJoystickTouchpadDesc* touchpads;
|
||||
|
||||
[NativeTypeName("const SDL_VirtualJoystickSensorDesc *")]
|
||||
public SDL_VirtualJoystickSensorDesc* sensors;
|
||||
|
||||
[NativeTypeName("void*")]
|
||||
public IntPtr userdata;
|
||||
|
||||
|
|
@ -98,17 +140,29 @@ namespace SDL
|
|||
[NativeTypeName("void (*)(void *, int)")]
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, void> SetPlayerIndex;
|
||||
|
||||
[NativeTypeName("int (*)(void *, Uint16, Uint16)")]
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, ushort, ushort, int> Rumble;
|
||||
[NativeTypeName("bool (*)(void *, Uint16, Uint16)")]
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, ushort, ushort, SDLBool> Rumble;
|
||||
|
||||
[NativeTypeName("int (*)(void *, Uint16, Uint16)")]
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, ushort, ushort, int> RumbleTriggers;
|
||||
[NativeTypeName("bool (*)(void *, Uint16, Uint16)")]
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, ushort, ushort, SDLBool> RumbleTriggers;
|
||||
|
||||
[NativeTypeName("int (*)(void *, Uint8, Uint8, Uint8)")]
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte, byte, byte, int> SetLED;
|
||||
[NativeTypeName("bool (*)(void *, Uint8, Uint8, Uint8)")]
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte, byte, byte, SDLBool> SetLED;
|
||||
|
||||
[NativeTypeName("int (*)(void *, const void *, int)")]
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int> SendEffect;
|
||||
[NativeTypeName("bool (*)(void *, const void *, int)")]
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, SDLBool> SendEffect;
|
||||
|
||||
[NativeTypeName("bool (*)(void *, bool)")]
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, SDLBool, SDLBool> SetSensorsEnabled;
|
||||
|
||||
[NativeTypeName("void (*)(void *)")]
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> Cleanup;
|
||||
|
||||
[InlineArray(2)]
|
||||
public partial struct _padding2_e__FixedBuffer
|
||||
{
|
||||
public ushort e0;
|
||||
}
|
||||
}
|
||||
|
||||
public static unsafe partial class SDL3
|
||||
|
|
@ -120,70 +174,84 @@ namespace SDL
|
|||
public static extern void SDL_UnlockJoysticks();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HasJoystick();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HasJoystick();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_JoystickID* SDL_GetJoysticks(int* count);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetJoystickInstanceName", ExactSpelling = true)]
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetJoystickNameForID", ExactSpelling = true)]
|
||||
[return: NativeTypeName("const char *")]
|
||||
public static extern byte* Unsafe_SDL_GetJoystickInstanceName(SDL_JoystickID instance_id);
|
||||
public static extern byte* Unsafe_SDL_GetJoystickNameForID(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetJoystickInstancePath", ExactSpelling = true)]
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetJoystickPathForID", ExactSpelling = true)]
|
||||
[return: NativeTypeName("const char *")]
|
||||
public static extern byte* Unsafe_SDL_GetJoystickInstancePath(SDL_JoystickID instance_id);
|
||||
public static extern byte* Unsafe_SDL_GetJoystickPathForID(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_GetJoystickInstancePlayerIndex(SDL_JoystickID instance_id);
|
||||
public static extern int SDL_GetJoystickPlayerIndexForID(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("SDL_JoystickGUID")]
|
||||
public static extern SDL_GUID SDL_GetJoystickInstanceGUID(SDL_JoystickID instance_id);
|
||||
public static extern SDL_GUID SDL_GetJoystickGUIDForID(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("Uint16")]
|
||||
public static extern ushort SDL_GetJoystickInstanceVendor(SDL_JoystickID instance_id);
|
||||
public static extern ushort SDL_GetJoystickVendorForID(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("Uint16")]
|
||||
public static extern ushort SDL_GetJoystickInstanceProduct(SDL_JoystickID instance_id);
|
||||
public static extern ushort SDL_GetJoystickProductForID(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("Uint16")]
|
||||
public static extern ushort SDL_GetJoystickInstanceProductVersion(SDL_JoystickID instance_id);
|
||||
public static extern ushort SDL_GetJoystickProductVersionForID(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_JoystickType SDL_GetJoystickInstanceType(SDL_JoystickID instance_id);
|
||||
public static extern SDL_JoystickType SDL_GetJoystickTypeForID(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_Joystick* SDL_OpenJoystick(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_Joystick* SDL_GetJoystickFromInstanceID(SDL_JoystickID instance_id);
|
||||
public static extern SDL_Joystick* SDL_GetJoystickFromID(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_Joystick* SDL_GetJoystickFromPlayerIndex(int player_index);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_JoystickID SDL_AttachVirtualJoystick(SDL_JoystickType type, int naxes, int nbuttons, int nhats);
|
||||
public static extern SDL_JoystickID SDL_AttachVirtualJoystick([NativeTypeName("const SDL_VirtualJoystickDesc *")] SDL_VirtualJoystickDesc* desc);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_JoystickID SDL_AttachVirtualJoystickEx([NativeTypeName("const SDL_VirtualJoystickDesc *")] SDL_VirtualJoystickDesc* desc);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_DetachVirtualJoystick(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_DetachVirtualJoystick(SDL_JoystickID instance_id);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_IsJoystickVirtual(SDL_JoystickID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_IsJoystickVirtual(SDL_JoystickID instance_id);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetJoystickVirtualAxis(SDL_Joystick* joystick, int axis, [NativeTypeName("Sint16")] short value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_SetJoystickVirtualAxis(SDL_Joystick* joystick, int axis, [NativeTypeName("Sint16")] short value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetJoystickVirtualBall(SDL_Joystick* joystick, int ball, [NativeTypeName("Sint16")] short xrel, [NativeTypeName("Sint16")] short yrel);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_SetJoystickVirtualButton(SDL_Joystick* joystick, int button, [NativeTypeName("Uint8")] byte value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetJoystickVirtualButton(SDL_Joystick* joystick, int button, [NativeTypeName("bool")] SDLBool down);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_SetJoystickVirtualHat(SDL_Joystick* joystick, int hat, [NativeTypeName("Uint8")] byte value);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetJoystickVirtualHat(SDL_Joystick* joystick, int hat, [NativeTypeName("Uint8")] byte value);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetJoystickVirtualTouchpad(SDL_Joystick* joystick, int touchpad, int finger, [NativeTypeName("bool")] SDLBool down, float x, float y, float pressure);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SendJoystickVirtualSensorData(SDL_Joystick* joystick, SDL_SensorType type, [NativeTypeName("Uint64")] ulong sensor_timestamp, [NativeTypeName("const float *")] float* data, int num_values);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_PropertiesID SDL_GetJoystickProperties(SDL_Joystick* joystick);
|
||||
|
|
@ -200,10 +268,10 @@ namespace SDL
|
|||
public static extern int SDL_GetJoystickPlayerIndex(SDL_Joystick* joystick);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_SetJoystickPlayerIndex(SDL_Joystick* joystick, int player_index);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetJoystickPlayerIndex(SDL_Joystick* joystick, int player_index);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("SDL_JoystickGUID")]
|
||||
public static extern SDL_GUID SDL_GetJoystickGUID(SDL_Joystick* joystick);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
|
|
@ -230,20 +298,14 @@ namespace SDL
|
|||
public static extern SDL_JoystickType SDL_GetJoystickType(SDL_Joystick* joystick);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_GetJoystickGUIDString([NativeTypeName("SDL_JoystickGUID")] SDL_GUID guid, [NativeTypeName("char *")] byte* pszGUID, int cbGUID);
|
||||
public static extern void SDL_GetJoystickGUIDInfo(SDL_GUID guid, [NativeTypeName("Uint16 *")] ushort* vendor, [NativeTypeName("Uint16 *")] ushort* product, [NativeTypeName("Uint16 *")] ushort* version, [NativeTypeName("Uint16 *")] ushort* crc16);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("SDL_JoystickGUID")]
|
||||
public static extern SDL_GUID SDL_GetJoystickGUIDFromString([NativeTypeName("const char *")] byte* pchGUID);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_JoystickConnected(SDL_Joystick* joystick);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_GetJoystickGUIDInfo([NativeTypeName("SDL_JoystickGUID")] SDL_GUID guid, [NativeTypeName("Uint16 *")] ushort* vendor, [NativeTypeName("Uint16 *")] ushort* product, [NativeTypeName("Uint16 *")] ushort* version, [NativeTypeName("Uint16 *")] ushort* crc16);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_JoystickConnected(SDL_Joystick* joystick);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_JoystickID SDL_GetJoystickInstanceID(SDL_Joystick* joystick);
|
||||
public static extern SDL_JoystickID SDL_GetJoystickID(SDL_Joystick* joystick);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_GetNumJoystickAxes(SDL_Joystick* joystick);
|
||||
|
|
@ -258,10 +320,11 @@ namespace SDL
|
|||
public static extern int SDL_GetNumJoystickButtons(SDL_Joystick* joystick);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_SetJoystickEventsEnabled(SDL_bool enabled);
|
||||
public static extern void SDL_SetJoystickEventsEnabled([NativeTypeName("bool")] SDLBool enabled);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_JoystickEventsEnabled();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_JoystickEventsEnabled();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_UpdateJoysticks();
|
||||
|
|
@ -271,30 +334,36 @@ namespace SDL
|
|||
public static extern short SDL_GetJoystickAxis(SDL_Joystick* joystick, int axis);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_GetJoystickAxisInitialState(SDL_Joystick* joystick, int axis, [NativeTypeName("Sint16 *")] short* state);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_GetJoystickAxisInitialState(SDL_Joystick* joystick, int axis, [NativeTypeName("Sint16 *")] short* state);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_GetJoystickBall(SDL_Joystick* joystick, int ball, int* dx, int* dy);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_GetJoystickBall(SDL_Joystick* joystick, int ball, int* dx, int* dy);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("Uint8")]
|
||||
public static extern byte SDL_GetJoystickHat(SDL_Joystick* joystick, int hat);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("Uint8")]
|
||||
public static extern byte SDL_GetJoystickButton(SDL_Joystick* joystick, int button);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_GetJoystickButton(SDL_Joystick* joystick, int button);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_RumbleJoystick(SDL_Joystick* joystick, [NativeTypeName("Uint16")] ushort low_frequency_rumble, [NativeTypeName("Uint16")] ushort high_frequency_rumble, [NativeTypeName("Uint32")] uint duration_ms);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_RumbleJoystick(SDL_Joystick* joystick, [NativeTypeName("Uint16")] ushort low_frequency_rumble, [NativeTypeName("Uint16")] ushort high_frequency_rumble, [NativeTypeName("Uint32")] uint duration_ms);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_RumbleJoystickTriggers(SDL_Joystick* joystick, [NativeTypeName("Uint16")] ushort left_rumble, [NativeTypeName("Uint16")] ushort right_rumble, [NativeTypeName("Uint32")] uint duration_ms);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_RumbleJoystickTriggers(SDL_Joystick* joystick, [NativeTypeName("Uint16")] ushort left_rumble, [NativeTypeName("Uint16")] ushort right_rumble, [NativeTypeName("Uint32")] uint duration_ms);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_SetJoystickLED(SDL_Joystick* joystick, [NativeTypeName("Uint8")] byte red, [NativeTypeName("Uint8")] byte green, [NativeTypeName("Uint8")] byte blue);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetJoystickLED(SDL_Joystick* joystick, [NativeTypeName("Uint8")] byte red, [NativeTypeName("Uint8")] byte green, [NativeTypeName("Uint8")] byte blue);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_SendJoystickEffect(SDL_Joystick* joystick, [NativeTypeName("const void *")] IntPtr data, int size);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SendJoystickEffect(SDL_Joystick* joystick, [NativeTypeName("const void *")] IntPtr data, int size);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_CloseJoystick(SDL_Joystick* joystick);
|
||||
|
|
@ -311,12 +380,6 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_JOYSTICK_AXIS_MIN -32768")]
|
||||
public const int SDL_JOYSTICK_AXIS_MIN = -32768;
|
||||
|
||||
[NativeTypeName("#define SDL_IPHONE_MAX_GFORCE 5.0")]
|
||||
public const double SDL_IPHONE_MAX_GFORCE = 5.0;
|
||||
|
||||
[NativeTypeName("#define SDL_VIRTUAL_JOYSTICK_DESC_VERSION 1")]
|
||||
public const int SDL_VIRTUAL_JOYSTICK_DESC_VERSION = 1;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_JOYSTICK_CAP_MONO_LED_BOOLEAN \"SDL.joystick.cap.mono_led\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_JOYSTICK_CAP_MONO_LED_BOOLEAN => "SDL.joystick.cap.mono_led"u8;
|
||||
|
||||
|
|
@ -332,31 +395,31 @@ namespace SDL
|
|||
[NativeTypeName("#define SDL_PROP_JOYSTICK_CAP_TRIGGER_RUMBLE_BOOLEAN \"SDL.joystick.cap.trigger_rumble\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_JOYSTICK_CAP_TRIGGER_RUMBLE_BOOLEAN => "SDL.joystick.cap.trigger_rumble"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_HAT_CENTERED 0x00")]
|
||||
public const int SDL_HAT_CENTERED = 0x00;
|
||||
[NativeTypeName("#define SDL_HAT_CENTERED 0x00u")]
|
||||
public const uint SDL_HAT_CENTERED = 0x00U;
|
||||
|
||||
[NativeTypeName("#define SDL_HAT_UP 0x01")]
|
||||
public const int SDL_HAT_UP = 0x01;
|
||||
[NativeTypeName("#define SDL_HAT_UP 0x01u")]
|
||||
public const uint SDL_HAT_UP = 0x01U;
|
||||
|
||||
[NativeTypeName("#define SDL_HAT_RIGHT 0x02")]
|
||||
public const int SDL_HAT_RIGHT = 0x02;
|
||||
[NativeTypeName("#define SDL_HAT_RIGHT 0x02u")]
|
||||
public const uint SDL_HAT_RIGHT = 0x02U;
|
||||
|
||||
[NativeTypeName("#define SDL_HAT_DOWN 0x04")]
|
||||
public const int SDL_HAT_DOWN = 0x04;
|
||||
[NativeTypeName("#define SDL_HAT_DOWN 0x04u")]
|
||||
public const uint SDL_HAT_DOWN = 0x04U;
|
||||
|
||||
[NativeTypeName("#define SDL_HAT_LEFT 0x08")]
|
||||
public const int SDL_HAT_LEFT = 0x08;
|
||||
[NativeTypeName("#define SDL_HAT_LEFT 0x08u")]
|
||||
public const uint SDL_HAT_LEFT = 0x08U;
|
||||
|
||||
[NativeTypeName("#define SDL_HAT_RIGHTUP (SDL_HAT_RIGHT|SDL_HAT_UP)")]
|
||||
public const int SDL_HAT_RIGHTUP = (0x02 | 0x01);
|
||||
public const uint SDL_HAT_RIGHTUP = (0x02U | 0x01U);
|
||||
|
||||
[NativeTypeName("#define SDL_HAT_RIGHTDOWN (SDL_HAT_RIGHT|SDL_HAT_DOWN)")]
|
||||
public const int SDL_HAT_RIGHTDOWN = (0x02 | 0x04);
|
||||
public const uint SDL_HAT_RIGHTDOWN = (0x02U | 0x04U);
|
||||
|
||||
[NativeTypeName("#define SDL_HAT_LEFTUP (SDL_HAT_LEFT|SDL_HAT_UP)")]
|
||||
public const int SDL_HAT_LEFTUP = (0x08 | 0x01);
|
||||
public const uint SDL_HAT_LEFTUP = (0x08U | 0x01U);
|
||||
|
||||
[NativeTypeName("#define SDL_HAT_LEFTDOWN (SDL_HAT_LEFT|SDL_HAT_DOWN)")]
|
||||
public const int SDL_HAT_LEFTDOWN = (0x08 | 0x04);
|
||||
public const uint SDL_HAT_LEFTDOWN = (0x08U | 0x04U);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,41 +23,51 @@
|
|||
3. This notice may not be removed or altered from any source distribution.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace SDL
|
||||
{
|
||||
public partial struct SDL_Keysym
|
||||
public enum SDL_TextInputType
|
||||
{
|
||||
public SDL_Scancode scancode;
|
||||
SDL_TEXTINPUT_TYPE_TEXT,
|
||||
SDL_TEXTINPUT_TYPE_TEXT_NAME,
|
||||
SDL_TEXTINPUT_TYPE_TEXT_EMAIL,
|
||||
SDL_TEXTINPUT_TYPE_TEXT_USERNAME,
|
||||
SDL_TEXTINPUT_TYPE_TEXT_PASSWORD_HIDDEN,
|
||||
SDL_TEXTINPUT_TYPE_TEXT_PASSWORD_VISIBLE,
|
||||
SDL_TEXTINPUT_TYPE_NUMBER,
|
||||
SDL_TEXTINPUT_TYPE_NUMBER_PASSWORD_HIDDEN,
|
||||
SDL_TEXTINPUT_TYPE_NUMBER_PASSWORD_VISIBLE,
|
||||
}
|
||||
|
||||
public SDL_Keycode sym;
|
||||
|
||||
[NativeTypeName("Uint16")]
|
||||
public ushort mod;
|
||||
|
||||
[NativeTypeName("Uint32")]
|
||||
public uint unused;
|
||||
public enum SDL_Capitalization
|
||||
{
|
||||
SDL_CAPITALIZE_NONE,
|
||||
SDL_CAPITALIZE_SENTENCES,
|
||||
SDL_CAPITALIZE_WORDS,
|
||||
SDL_CAPITALIZE_LETTERS,
|
||||
}
|
||||
|
||||
public static unsafe partial class SDL3
|
||||
{
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HasKeyboard();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HasKeyboard();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_KeyboardID* SDL_GetKeyboards(int* count);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetKeyboardInstanceName", ExactSpelling = true)]
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetKeyboardNameForID", ExactSpelling = true)]
|
||||
[return: NativeTypeName("const char *")]
|
||||
public static extern byte* Unsafe_SDL_GetKeyboardInstanceName(SDL_KeyboardID instance_id);
|
||||
public static extern byte* Unsafe_SDL_GetKeyboardNameForID(SDL_KeyboardID instance_id);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_Window* SDL_GetKeyboardFocus();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("const Uint8 *")]
|
||||
public static extern byte* SDL_GetKeyboardState(int* numkeys);
|
||||
[return: NativeTypeName("const bool *")]
|
||||
public static extern SDLBool* SDL_GetKeyboardState(int* numkeys);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_ResetKeyboard();
|
||||
|
|
@ -69,10 +79,14 @@ namespace SDL
|
|||
public static extern void SDL_SetModState(SDL_Keymod modstate);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_Keycode SDL_GetKeyFromScancode(SDL_Scancode scancode);
|
||||
public static extern SDL_Keycode SDL_GetKeyFromScancode(SDL_Scancode scancode, SDL_Keymod modstate, [NativeTypeName("bool")] SDLBool key_event);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_Scancode SDL_GetScancodeFromKey(SDL_Keycode key);
|
||||
public static extern SDL_Scancode SDL_GetScancodeFromKey(SDL_Keycode key, SDL_Keymod* modstate);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetScancodeName(SDL_Scancode scancode, [NativeTypeName("const char *")] byte* name);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetScancodeName", ExactSpelling = true)]
|
||||
[return: NativeTypeName("const char *")]
|
||||
|
|
@ -89,24 +103,54 @@ namespace SDL
|
|||
public static extern SDL_Keycode SDL_GetKeyFromName([NativeTypeName("const char *")] byte* name);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_StartTextInput();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_StartTextInput(SDL_Window* window);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_TextInputActive();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_StartTextInputWithProperties(SDL_Window* window, SDL_PropertiesID props);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_StopTextInput();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_TextInputActive(SDL_Window* window);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_ClearComposition();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_StopTextInput(SDL_Window* window);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_SetTextInputRect([NativeTypeName("const SDL_Rect *")] SDL_Rect* rect);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ClearComposition(SDL_Window* window);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_HasScreenKeyboardSupport();
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetTextInputArea(SDL_Window* window, [NativeTypeName("const SDL_Rect *")] SDL_Rect* rect, int cursor);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_bool SDL_ScreenKeyboardShown(SDL_Window* window);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_GetTextInputArea(SDL_Window* window, SDL_Rect* rect, int* cursor);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_HasScreenKeyboardSupport();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ScreenKeyboardShown(SDL_Window* window);
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_TEXTINPUT_TYPE_NUMBER \"SDL.textinput.type\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_TEXTINPUT_TYPE_NUMBER => "SDL.textinput.type"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_TEXTINPUT_CAPITALIZATION_NUMBER \"SDL.textinput.capitalization\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_TEXTINPUT_CAPITALIZATION_NUMBER => "SDL.textinput.capitalization"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_TEXTINPUT_AUTOCORRECT_BOOLEAN \"SDL.textinput.autocorrect\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_TEXTINPUT_AUTOCORRECT_BOOLEAN => "SDL.textinput.autocorrect"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_TEXTINPUT_MULTILINE_BOOLEAN \"SDL.textinput.multiline\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_TEXTINPUT_MULTILINE_BOOLEAN => "SDL.textinput.multiline"u8;
|
||||
|
||||
[NativeTypeName("#define SDL_PROP_TEXTINPUT_ANDROID_INPUTTYPE_NUMBER \"SDL.textinput.android.inputtype\"")]
|
||||
public static ReadOnlySpan<byte> SDL_PROP_TEXTINPUT_ANDROID_INPUTTYPE_NUMBER => "SDL.textinput.android.inputtype"u8;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -28,17 +28,20 @@ using System.Runtime.InteropServices;
|
|||
|
||||
namespace SDL
|
||||
{
|
||||
public partial struct SDL_SharedObject
|
||||
{
|
||||
}
|
||||
|
||||
public static unsafe partial class SDL3
|
||||
{
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("void*")]
|
||||
public static extern IntPtr SDL_LoadObject([NativeTypeName("const char *")] byte* sofile);
|
||||
public static extern SDL_SharedObject* SDL_LoadObject([NativeTypeName("const char *")] byte* sofile);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("SDL_FunctionPointer")]
|
||||
public static extern IntPtr SDL_LoadFunction([NativeTypeName("void*")] IntPtr handle, [NativeTypeName("const char *")] byte* name);
|
||||
public static extern IntPtr SDL_LoadFunction(SDL_SharedObject* handle, [NativeTypeName("const char *")] byte* name);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_UnloadObject([NativeTypeName("void*")] IntPtr handle);
|
||||
public static extern void SDL_UnloadObject(SDL_SharedObject* handle);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,6 +39,6 @@ namespace SDL
|
|||
public static unsafe partial class SDL3
|
||||
{
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_Locale* SDL_GetPreferredLocales();
|
||||
public static extern SDL_Locale** SDL_GetPreferredLocales(int* count);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ namespace SDL
|
|||
SDL_LOG_CATEGORY_RENDER,
|
||||
SDL_LOG_CATEGORY_INPUT,
|
||||
SDL_LOG_CATEGORY_TEST,
|
||||
SDL_LOG_CATEGORY_RESERVED1,
|
||||
SDL_LOG_CATEGORY_GPU,
|
||||
SDL_LOG_CATEGORY_RESERVED2,
|
||||
SDL_LOG_CATEGORY_RESERVED3,
|
||||
SDL_LOG_CATEGORY_RESERVED4,
|
||||
|
|
@ -54,63 +54,73 @@ namespace SDL
|
|||
|
||||
public enum SDL_LogPriority
|
||||
{
|
||||
SDL_LOG_PRIORITY_VERBOSE = 1,
|
||||
SDL_LOG_PRIORITY_INVALID,
|
||||
SDL_LOG_PRIORITY_TRACE,
|
||||
SDL_LOG_PRIORITY_VERBOSE,
|
||||
SDL_LOG_PRIORITY_DEBUG,
|
||||
SDL_LOG_PRIORITY_INFO,
|
||||
SDL_LOG_PRIORITY_WARN,
|
||||
SDL_LOG_PRIORITY_ERROR,
|
||||
SDL_LOG_PRIORITY_CRITICAL,
|
||||
SDL_NUM_LOG_PRIORITIES,
|
||||
SDL_LOG_PRIORITY_COUNT,
|
||||
}
|
||||
|
||||
public static unsafe partial class SDL3
|
||||
{
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_LogSetAllPriority(SDL_LogPriority priority);
|
||||
public static extern void SDL_SetLogPriorities(SDL_LogPriority priority);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_LogSetPriority(SDL_LogCategory category, SDL_LogPriority priority);
|
||||
public static extern void SDL_SetLogPriority(int category, SDL_LogPriority priority);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern SDL_LogPriority SDL_LogGetPriority(SDL_LogCategory category);
|
||||
public static extern SDL_LogPriority SDL_GetLogPriority(int category);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_LogResetPriorities();
|
||||
public static extern void SDL_ResetLogPriorities();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_SetLogPriorityPrefix(SDL_LogPriority priority, [NativeTypeName("const char *")] byte* prefix);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_Log([NativeTypeName("const char *")] byte* fmt, __arglist);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_LogVerbose(SDL_LogCategory category, [NativeTypeName("const char *")] byte* fmt, __arglist);
|
||||
public static extern void SDL_LogTrace(int category, [NativeTypeName("const char *")] byte* fmt, __arglist);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_LogDebug(SDL_LogCategory category, [NativeTypeName("const char *")] byte* fmt, __arglist);
|
||||
public static extern void SDL_LogVerbose(int category, [NativeTypeName("const char *")] byte* fmt, __arglist);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_LogInfo(SDL_LogCategory category, [NativeTypeName("const char *")] byte* fmt, __arglist);
|
||||
public static extern void SDL_LogDebug(int category, [NativeTypeName("const char *")] byte* fmt, __arglist);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_LogWarn(SDL_LogCategory category, [NativeTypeName("const char *")] byte* fmt, __arglist);
|
||||
public static extern void SDL_LogInfo(int category, [NativeTypeName("const char *")] byte* fmt, __arglist);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_LogError(SDL_LogCategory category, [NativeTypeName("const char *")] byte* fmt, __arglist);
|
||||
public static extern void SDL_LogWarn(int category, [NativeTypeName("const char *")] byte* fmt, __arglist);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_LogCritical(SDL_LogCategory category, [NativeTypeName("const char *")] byte* fmt, __arglist);
|
||||
public static extern void SDL_LogError(int category, [NativeTypeName("const char *")] byte* fmt, __arglist);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_LogMessage(SDL_LogCategory category, SDL_LogPriority priority, [NativeTypeName("const char *")] byte* fmt, __arglist);
|
||||
public static extern void SDL_LogCritical(int category, [NativeTypeName("const char *")] byte* fmt, __arglist);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_LogMessageV(SDL_LogCategory category, SDL_LogPriority priority, [NativeTypeName("const char *")] byte* fmt, [NativeTypeName("va_list")] byte* ap);
|
||||
public static extern void SDL_LogMessage(int category, SDL_LogPriority priority, [NativeTypeName("const char *")] byte* fmt, __arglist);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_GetLogOutputFunction([NativeTypeName("SDL_LogOutputFunction *")] delegate* unmanaged[Cdecl]<IntPtr, SDL_LogCategory, SDL_LogPriority, byte*, void>* callback, [NativeTypeName("void **")] IntPtr* userdata);
|
||||
public static extern void SDL_LogMessageV(int category, SDL_LogPriority priority, [NativeTypeName("const char *")] byte* fmt, [NativeTypeName("va_list")] byte* ap);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_SetLogOutputFunction([NativeTypeName("SDL_LogOutputFunction")] delegate* unmanaged[Cdecl]<IntPtr, SDL_LogCategory, SDL_LogPriority, byte*, void> callback, [NativeTypeName("void*")] IntPtr userdata);
|
||||
[return: NativeTypeName("SDL_LogOutputFunction")]
|
||||
public static extern delegate* unmanaged[Cdecl]<IntPtr, int, SDL_LogPriority, byte*, void> SDL_GetDefaultLogOutputFunction();
|
||||
|
||||
[NativeTypeName("#define SDL_MAX_LOG_MESSAGE 4096")]
|
||||
public const int SDL_MAX_LOG_MESSAGE = 4096;
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_GetLogOutputFunction([NativeTypeName("SDL_LogOutputFunction *")] delegate* unmanaged[Cdecl]<IntPtr, int, SDL_LogPriority, byte*, void>* callback, [NativeTypeName("void **")] IntPtr* userdata);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_SetLogOutputFunction([NativeTypeName("SDL_LogOutputFunction")] delegate* unmanaged[Cdecl]<IntPtr, int, SDL_LogPriority, byte*, void> callback, [NativeTypeName("void*")] IntPtr userdata);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,15 +32,12 @@ namespace SDL
|
|||
public static unsafe partial class SDL3
|
||||
{
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[return: NativeTypeName("bool")]
|
||||
[SupportedOSPlatform("Windows")]
|
||||
public static extern int SDL_RegisterApp([NativeTypeName("const char *")] byte* name, [NativeTypeName("Uint32")] uint style, [NativeTypeName("void*")] IntPtr hInst);
|
||||
public static extern SDLBool SDL_RegisterApp([NativeTypeName("const char *")] byte* name, [NativeTypeName("Uint32")] uint style, [NativeTypeName("void*")] IntPtr hInst);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[SupportedOSPlatform("Windows")]
|
||||
public static extern void SDL_UnregisterApp();
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
[SupportedOSPlatform("Windows")]
|
||||
public static extern void SDL_GDKSuspendComplete();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,6 +37,9 @@ namespace SDL
|
|||
public static extern int SDL_RunApp(int argc, [NativeTypeName("char *[]")] byte** argv, [NativeTypeName("SDL_main_func")] delegate* unmanaged[Cdecl]<int, byte**, int> mainFunction, [NativeTypeName("void*")] IntPtr reserved);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_EnterAppMainCallbacks(int argc, [NativeTypeName("char *[]")] byte** argv, [NativeTypeName("SDL_AppInit_func")] delegate* unmanaged[Cdecl]<IntPtr*, int, byte**, int> appinit, [NativeTypeName("SDL_AppIterate_func")] delegate* unmanaged[Cdecl]<IntPtr, int> appiter, [NativeTypeName("SDL_AppEvent_func")] delegate* unmanaged[Cdecl]<IntPtr, SDL_Event*, int> appevent, [NativeTypeName("SDL_AppQuit_func")] delegate* unmanaged[Cdecl]<IntPtr, void> appquit);
|
||||
public static extern int SDL_EnterAppMainCallbacks(int argc, [NativeTypeName("char *[]")] byte** argv, [NativeTypeName("SDL_AppInit_func")] delegate* unmanaged[Cdecl]<IntPtr*, int, byte**, SDL_AppResult> appinit, [NativeTypeName("SDL_AppIterate_func")] delegate* unmanaged[Cdecl]<IntPtr, SDL_AppResult> appiter, [NativeTypeName("SDL_AppEvent_func")] delegate* unmanaged[Cdecl]<IntPtr, SDL_Event*, SDL_AppResult> appevent, [NativeTypeName("SDL_AppQuit_func")] delegate* unmanaged[Cdecl]<IntPtr, SDL_AppResult, void> appquit);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern void SDL_GDKSuspendComplete();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,29 +23,11 @@
|
|||
3. This notice may not be removed or altered from any source distribution.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace SDL
|
||||
{
|
||||
[Flags]
|
||||
public enum SDL_MessageBoxFlags
|
||||
{
|
||||
SDL_MESSAGEBOX_ERROR = 0x00000010,
|
||||
SDL_MESSAGEBOX_WARNING = 0x00000020,
|
||||
SDL_MESSAGEBOX_INFORMATION = 0x00000040,
|
||||
SDL_MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT = 0x00000080,
|
||||
SDL_MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT = 0x00000100,
|
||||
}
|
||||
|
||||
[Flags]
|
||||
public enum SDL_MessageBoxButtonFlags
|
||||
{
|
||||
SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT = 0x00000001,
|
||||
SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT = 0x00000002,
|
||||
}
|
||||
|
||||
public unsafe partial struct SDL_MessageBoxButtonData
|
||||
{
|
||||
public SDL_MessageBoxButtonFlags flags;
|
||||
|
|
@ -75,7 +57,7 @@ namespace SDL
|
|||
SDL_MESSAGEBOX_COLOR_BUTTON_BORDER,
|
||||
SDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND,
|
||||
SDL_MESSAGEBOX_COLOR_BUTTON_SELECTED,
|
||||
SDL_MESSAGEBOX_COLOR_MAX,
|
||||
SDL_MESSAGEBOX_COLOR_COUNT,
|
||||
}
|
||||
|
||||
public partial struct SDL_MessageBoxColorScheme
|
||||
|
|
@ -114,9 +96,32 @@ namespace SDL
|
|||
public static unsafe partial class SDL3
|
||||
{
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_ShowMessageBox([NativeTypeName("const SDL_MessageBoxData *")] SDL_MessageBoxData* messageboxdata, int* buttonid);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ShowMessageBox([NativeTypeName("const SDL_MessageBoxData *")] SDL_MessageBoxData* messageboxdata, int* buttonid);
|
||||
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_ShowSimpleMessageBox(SDL_MessageBoxFlags flags, [NativeTypeName("const char *")] byte* title, [NativeTypeName("const char *")] byte* message, SDL_Window* window);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_ShowSimpleMessageBox(SDL_MessageBoxFlags flags, [NativeTypeName("const char *")] byte* title, [NativeTypeName("const char *")] byte* message, SDL_Window* window);
|
||||
|
||||
[NativeTypeName("#define SDL_MESSAGEBOX_ERROR 0x00000010u")]
|
||||
public const uint SDL_MESSAGEBOX_ERROR = 0x00000010U;
|
||||
|
||||
[NativeTypeName("#define SDL_MESSAGEBOX_WARNING 0x00000020u")]
|
||||
public const uint SDL_MESSAGEBOX_WARNING = 0x00000020U;
|
||||
|
||||
[NativeTypeName("#define SDL_MESSAGEBOX_INFORMATION 0x00000040u")]
|
||||
public const uint SDL_MESSAGEBOX_INFORMATION = 0x00000040U;
|
||||
|
||||
[NativeTypeName("#define SDL_MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT 0x00000080u")]
|
||||
public const uint SDL_MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT = 0x00000080U;
|
||||
|
||||
[NativeTypeName("#define SDL_MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT 0x00000100u")]
|
||||
public const uint SDL_MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT = 0x00000100U;
|
||||
|
||||
[NativeTypeName("#define SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT 0x00000001u")]
|
||||
public const uint SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT = 0x00000001U;
|
||||
|
||||
[NativeTypeName("#define SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT 0x00000002u")]
|
||||
public const uint SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT = 0x00000002U;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ namespace SDL
|
|||
public static unsafe partial class SDL3
|
||||
{
|
||||
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||
public static extern int SDL_OpenURL([NativeTypeName("const char *")] byte* url);
|
||||
[return: NativeTypeName("bool")]
|
||||
public static extern SDLBool SDL_OpenURL([NativeTypeName("const char *")] byte* url);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue