Compare commits

..

353 Commits

Author SHA1 Message Date
Mary Guillemard
d50837c46b
Update version to 2.30.0
Forgot to increment it before release oh well...
2024-02-06 23:39:55 +01:00
github-actions[bot]
caa502a393
Update linux-arm64 SDL binaries (#158)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2024-02-06 23:19:34 +01:00
github-actions[bot]
71ec99d676
Update osx-arm64 SDL binaries (#157)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2024-02-06 23:19:27 +01:00
github-actions[bot]
7389c35176
Update osx-x64 SDL binaries (#156)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2024-02-06 23:19:20 +01:00
github-actions[bot]
14e19b5164
Update win-x64 SDL binaries (#155)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2024-02-06 23:18:47 +01:00
github-actions[bot]
038059ecc9
Update win-arm64 SDL binaries (#154)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2024-02-06 23:18:41 +01:00
github-actions[bot]
b42777f4d3
Update iOS SDL binaries (#153)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2024-02-06 23:18:35 +01:00
github-actions[bot]
82c0c38477
Update linux-x64 SDL binaries (#152)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2024-02-06 23:18:29 +01:00
Mary Guillemard
c66a752bf5 Add linux-arm64 in csproj
Signed-off-by: Mary Guillemard <mary@mary.zone>
2024-02-06 22:48:29 +01:00
Mary Guillemard
2402c1a0db Enable linux-arm64 in CI
Signed-off-by: Mary Guillemard <mary@mary.zone>
2024-02-06 20:52:14 +01:00
Mary Guillemard
275e67ad11 Move build operation to a bash script
This greatly simplify the action and prepare for building for other archs.

Signed-off-by: Mary Guillemard <mary@mary.zone>
2024-02-06 20:10:42 +01:00
Mary Guillemard
70a111cbb6 Respect workflow argument for iOS
Signed-off-by: Mary Guillemard <mary@mary.zone>
2024-02-06 19:41:53 +01:00
TSRBerry
8f286bb048
Update version to 2.28.3 2023-10-20 16:16:33 +02:00
TSR Berry
e96d39d94b
Merge remote-tracking branches 'origin/update-ios-binaries', 'origin/update-linux-x64-binaries', 'origin/update-win-x64-binaries', 'origin/update-win-arm64-binaries', 'origin/update-osx-arm64-binaries' and 'origin/update-osx-x64-binaries' 2023-09-23 20:01:28 +02:00
TSR Berry
a389f319ce
Add note about commit sha to workflow input 2023-09-23 19:59:24 +02:00
TSRBerry
ce6acac60e Update osx-x64 SDL binaries 2023-09-23 17:57:58 +00:00
TSRBerry
3547f466d7 Update osx-arm64 SDL binaries 2023-09-23 17:57:49 +00:00
TSRBerry
4251b252ed Update iOS SDL binaries 2023-09-23 17:57:22 +00:00
TSRBerry
7f231ea460 Update win-arm64 SDL binaries 2023-09-23 17:56:41 +00:00
TSRBerry
802dd6f15a Update win-x64 SDL binaries 2023-09-23 17:56:35 +00:00
TSRBerry
68ab08e264 Update linux-x64 SDL binaries 2023-09-23 17:55:34 +00:00
TSR Berry
df777874bc
Update actions 2023-09-23 19:46:13 +02:00
TSR Berry
232018f03e
Add dependabot.yml 2023-09-23 19:45:52 +02:00
github-actions[bot]
95f9c5c73a
Update osx-x64 SDL binaries (#145)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2023-07-14 10:19:39 +02:00
github-actions[bot]
077f5e5171
Update win-x64 SDL binaries (#144)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2023-07-14 10:19:31 +02:00
github-actions[bot]
6fa4edcdc4
Update osx-arm64 SDL binaries (#143)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2023-07-14 10:19:23 +02:00
github-actions[bot]
aa545e727a
Update win-arm64 SDL binaries (#142)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2023-07-14 10:19:14 +02:00
github-actions[bot]
f4681ebf95
Update linux-x64 SDL binaries (#141)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2023-07-14 10:18:25 +02:00
github-actions[bot]
161373c455
Update iOS SDL binaries (#140)
Co-authored-by: marysaka <marysaka@users.noreply.github.com>
2023-07-14 10:18:16 +02:00
Mary
4e470dba41 Update metadata to 2.28.1 2023-07-14 09:31:36 +02:00
TSR Berry
9af6bb8fe8
Update metadata to 2.28.0 2023-07-05 15:50:46 +02:00
TSRBerry
172acaa08d
Update win-x64 SDL binaries 2023-07-05 15:50:46 +02:00
TSRBerry
7ca43ee88c
Update win-arm64 SDL binaries 2023-07-05 15:50:46 +02:00
TSRBerry
497d929939
Update osx-x64 SDL binaries 2023-07-05 15:50:46 +02:00
TSRBerry
54cb2e08c7
Update osx-arm64 SDL binaries 2023-07-05 15:50:46 +02:00
TSRBerry
ce3bfab43c
Update linux-x64 SDL binaries 2023-07-05 15:50:46 +02:00
TSRBerry
6bd29ff214
Update iOS SDL binaries 2023-07-05 15:50:45 +02:00
Mary
b6e8330d71
Introduce needed changes for Ryujinx's fork 2023-07-05 15:50:34 +02:00
Dean Herbert
b4c039993e Merge remote-tracking branch 'upstream/update-win-x86-binaries' 2023-05-21 12:50:01 +09:00
Dean Herbert
832a10c772 Merge remote-tracking branch 'upstream/update-win-x64-binaries' 2023-05-21 12:50:00 +09:00
Dean Herbert
740c7a8f87 Merge remote-tracking branch 'upstream/update-win-arm64-binaries' 2023-05-21 12:49:59 +09:00
Dean Herbert
4d2270aa86 Merge remote-tracking branch 'upstream/update-osx-x64-binaries' 2023-05-21 12:49:58 +09:00
Dean Herbert
d046b2f2c1 Merge remote-tracking branch 'upstream/update-osx-arm64-binaries' 2023-05-21 12:49:57 +09:00
Dean Herbert
d0361d0e73 Merge remote-tracking branch 'upstream/update-linux-x86-binaries' 2023-05-21 12:49:55 +09:00
Dean Herbert
5dc54d80a0 Merge remote-tracking branch 'upstream/update-linux-x64-binaries' 2023-05-21 12:49:54 +09:00
peppy
2428ad15be Update osx-arm64 SDL binaries 2023-05-21 03:44:23 +00:00
peppy
45535693a6 Update linux-x86 SDL binaries 2023-05-21 03:42:36 +00:00
peppy
bccb6a3136 Update osx-x64 SDL binaries 2023-05-21 03:42:27 +00:00
peppy
fc8ed7005b Update win-x86 SDL binaries 2023-05-21 03:41:50 +00:00
peppy
2ec5b46232 Update win-x64 SDL binaries 2023-05-21 03:41:41 +00:00
peppy
eb9f81ac25 Update win-arm64 SDL binaries 2023-05-21 03:41:13 +00:00
peppy
2b1c66c7eb Update iOS SDL binaries 2023-05-21 03:40:33 +00:00
peppy
16ec96817c Update linux-x64 SDL binaries 2023-05-21 03:40:27 +00:00
Dean Herbert
9b92aed4b4 Merge remote-tracking branch 'upstream/update-win-x86-binaries' 2023-03-08 18:44:04 +09:00
Dean Herbert
a730d16076 Merge remote-tracking branch 'upstream/update-win-x64-binaries' 2023-03-08 18:44:03 +09:00
Dean Herbert
f0bef1b9c3 Merge remote-tracking branch 'upstream/update-win-arm64-binaries' 2023-03-08 18:44:03 +09:00
Dean Herbert
556cd552dd Merge remote-tracking branch 'upstream/update-osx-x64-binaries' 2023-03-08 18:44:00 +09:00
Dean Herbert
d2e0088381 Merge remote-tracking branch 'upstream/update-osx-arm64-binaries' 2023-03-08 18:43:59 +09:00
Dean Herbert
aa80fe5791 Merge remote-tracking branch 'upstream/update-linux-x86-binaries' 2023-03-08 18:43:56 +09:00
Dean Herbert
4969c7f3fe Merge remote-tracking branch 'upstream/update-linux-x64-binaries' 2023-03-08 18:43:55 +09:00
peppy
658f11e526 Update win-x86 SDL binaries 2023-03-08 09:24:32 +00:00
peppy
ecbe28799d Update osx-x64 SDL binaries 2023-03-08 09:23:22 +00:00
peppy
da916a88d5 Update osx-arm64 SDL binaries 2023-03-08 09:23:15 +00:00
peppy
09f36bcf76 Update win-x64 SDL binaries 2023-03-08 09:23:09 +00:00
peppy
07df446ec8 Update win-arm64 SDL binaries 2023-03-08 09:22:55 +00:00
peppy
3d22cd7cb9 Update linux-x86 SDL binaries 2023-03-08 09:22:54 +00:00
peppy
00c73365df Update linux-x64 SDL binaries 2023-03-08 09:21:38 +00:00
peppy
a30ddefbaf Update iOS SDL binaries 2023-03-08 09:21:10 +00:00
Dean Herbert
32913b2335
Merge pull request #152 from frenzibyte/ios-build
Add iOS platform support
2023-03-08 18:18:18 +09:00
Dean Herbert
903eebdec4
Remove one unnecessary mkdir invocation 2023-03-08 18:13:40 +09:00
Salman Ahmed
2519332ce6 Bump AppVeyor image 2023-03-08 11:59:01 +03:00
Salman Ahmed
e07402105e Bump projects to .NET 6 and add DllImport resolver for iOS 2023-03-08 11:51:55 +03:00
Salman Ahmed
98a238fe07 Include native iOS libraries in package 2023-03-08 11:51:03 +03:00
Salman Ahmed
f6cf0b57d1 Add iOS build action 2023-03-08 10:58:00 +03:00
Dean Herbert
7e10ed6133 Merge remote-tracking branch 'upstream/update-win-x86-binaries' 2022-12-12 02:36:36 +09:00
Dean Herbert
3ec97c0015 Merge remote-tracking branch 'upstream/update-win-x64-binaries' 2022-12-12 02:36:35 +09:00
Dean Herbert
d00aabdc2f Merge remote-tracking branch 'upstream/update-win-arm64-binaries' 2022-12-12 02:36:34 +09:00
Dean Herbert
429dca2440 Merge remote-tracking branch 'upstream/update-osx-x64-binaries' 2022-12-12 02:36:34 +09:00
Dean Herbert
0b373076f6 Merge remote-tracking branch 'upstream/update-osx-arm64-binaries' 2022-12-12 02:36:33 +09:00
Dean Herbert
0f4a522842 Merge remote-tracking branch 'upstream/update-linux-x86-binaries' 2022-12-12 02:36:32 +09:00
peppy
b11bffacf6 Update osx-x64 SDL binaries 2022-12-11 17:33:40 +00:00
peppy
fdae20ed32 Update osx-arm64 SDL binaries 2022-12-11 17:31:15 +00:00
peppy
9dd06c9aa7 Update linux-x64 SDL binaries 2022-12-11 17:31:06 +00:00
peppy
3de7aae105 Update win-x86 SDL binaries 2022-12-11 17:29:51 +00:00
peppy
aa6c6691d1 Update linux-x86 SDL binaries 2022-12-11 17:29:48 +00:00
peppy
356c96c4b4 Update win-x64 SDL binaries 2022-12-11 17:29:46 +00:00
peppy
d5c82b3874 Update win-arm64 SDL binaries 2022-12-11 17:29:27 +00:00
Dean Herbert
0fc27053cd Switch to checkout@v3 2022-12-12 02:26:22 +09:00
Dean Herbert
7b7046588d Lock to SDL2 branch for now 2022-12-12 02:08:25 +09:00
Dean Herbert
30125e4c6d Merge remote-tracking branch 'upstream/update-win-x86-binaries' 2022-10-24 00:58:33 +09:00
Dean Herbert
38d4e62170 Merge remote-tracking branch 'upstream/update-win-x64-binaries' 2022-10-24 00:58:33 +09:00
Dean Herbert
ff81aa5bbf Merge remote-tracking branch 'upstream/update-win-arm64-binaries' 2022-10-24 00:58:32 +09:00
Dean Herbert
d256ffdeea Merge remote-tracking branch 'upstream/update-osx-x64-binaries' 2022-10-24 00:58:31 +09:00
Dean Herbert
5547e37319 Merge remote-tracking branch 'upstream/update-osx-arm64-binaries' 2022-10-24 00:58:31 +09:00
Dean Herbert
838530d427 Merge remote-tracking branch 'upstream/update-linux-x86-binaries' 2022-10-24 00:58:30 +09:00
peppy
ad5cacb46e Update osx-x64 SDL binaries 2022-10-23 15:41:31 +00:00
peppy
a0aab9f1c7 Update osx-arm64 SDL binaries 2022-10-23 15:40:15 +00:00
peppy
4071670de8 Update linux-x86 SDL binaries 2022-10-23 15:40:11 +00:00
peppy
fb9bc3460a Update win-x64 SDL binaries 2022-10-23 15:39:43 +00:00
peppy
741b0ed124 Update win-x86 SDL binaries 2022-10-23 15:39:05 +00:00
peppy
658b2d0dda Update win-arm64 SDL binaries 2022-10-23 15:38:54 +00:00
peppy
b0dff7be83 Update linux-x64 SDL binaries 2022-10-23 15:38:30 +00:00
Dean Herbert
b2530ebcfe Merge remote-tracking branch 'upstream/update-win-x86-binaries' 2022-08-15 23:33:09 +09:00
Dean Herbert
cfaabd8550 Merge remote-tracking branch 'upstream/update-win-x64-binaries' 2022-08-15 23:33:08 +09:00
Dean Herbert
b10629a93b Merge remote-tracking branch 'upstream/update-win-arm64-binaries' 2022-08-15 23:33:06 +09:00
Dean Herbert
66fafb3d76 Merge remote-tracking branch 'upstream/update-osx-x64-binaries' 2022-08-15 23:33:05 +09:00
Dean Herbert
bd3a9589c8 Merge remote-tracking branch 'upstream/update-osx-arm64-binaries' 2022-08-15 23:33:04 +09:00
Dean Herbert
c525718620 Merge remote-tracking branch 'upstream/update-linux-x86-binaries' 2022-08-15 23:33:02 +09:00
peppy
68b683d275 Update osx-arm64 SDL binaries 2022-08-15 14:15:35 +00:00
peppy
686c286baa Update osx-x64 SDL binaries 2022-08-15 14:15:21 +00:00
peppy
63bf18bb0a Update win-x86 SDL binaries 2022-08-15 14:14:56 +00:00
peppy
b3f4650a53 Update win-x64 SDL binaries 2022-08-15 14:14:35 +00:00
peppy
345238b69a Update linux-x86 SDL binaries 2022-08-15 14:14:28 +00:00
peppy
b408ea8ed5 Update win-arm64 SDL binaries 2022-08-15 14:13:32 +00:00
peppy
685f7ae03a Update linux-x64 SDL binaries 2022-08-15 14:12:54 +00:00
Dean Herbert
a0a77142af Update create-pull-request version to avoid python errors 2022-08-15 23:09:32 +09:00
Dean Herbert
bd78b7596e Merge remote-tracking branch 'upstream/update-win-x86-binaries' 2022-08-08 15:01:25 +09:00
Dean Herbert
dcfa9193db Merge remote-tracking branch 'upstream/update-win-x64-binaries' 2022-08-08 15:01:24 +09:00
Dean Herbert
ff8df8363a Merge remote-tracking branch 'upstream/update-win-arm64-binaries' 2022-08-08 15:01:22 +09:00
Dean Herbert
f1157c7b62 Merge remote-tracking branch 'upstream/update-osx-x64-binaries' 2022-08-08 15:01:20 +09:00
Dean Herbert
819ca80e95 Merge remote-tracking branch 'upstream/update-osx-arm64-binaries' 2022-08-08 15:01:19 +09:00
Dean Herbert
a2a122d8cf Merge remote-tracking branch 'upstream/update-linux-x86-binaries' 2022-08-08 15:01:15 +09:00
github-actions[bot]
f4c321267e Update osx-arm64 SDL binaries 2022-08-08 05:47:21 +00:00
github-actions[bot]
017f034e30 Update osx-x64 SDL binaries 2022-08-08 05:45:33 +00:00
github-actions[bot]
f3af14599f Update win-arm64 SDL binaries 2022-08-08 05:43:27 +00:00
github-actions[bot]
978e54378a Update win-x64 SDL binaries 2022-08-08 05:43:15 +00:00
github-actions[bot]
0f36127209 Update win-x86 SDL binaries 2022-08-08 05:42:07 +00:00
github-actions[bot]
e0cd3e38b1 Update linux-x86 SDL binaries 2022-08-08 05:41:51 +00:00
github-actions[bot]
78ec07396f Update linux-x64 SDL binaries 2022-08-08 05:40:59 +00:00
Dan Balasescu
4da4dc03d4
Merge pull request #118 from elvodqa/master
Add SDL2_image
2022-05-27 14:32:51 +09:00
Emir Cengiz
56be43cd7b Add SDL2_image.cs 2022-05-27 08:18:40 +03:00
Dean Herbert
fd5e568e35 Merge remote-tracking branch 'upstream/update-win-x86-binaries' 2022-05-23 15:16:59 +09:00
Dean Herbert
1f6614f127 Merge remote-tracking branch 'upstream/update-win-x64-binaries' 2022-05-23 15:16:58 +09:00
Dean Herbert
46d736ff5a Merge remote-tracking branch 'upstream/update-win-arm64-binaries' 2022-05-23 15:16:57 +09:00
Dean Herbert
b45fdd562a Merge remote-tracking branch 'upstream/update-osx-x64-binaries' 2022-05-23 15:16:56 +09:00
Dean Herbert
9110635e65 Merge remote-tracking branch 'upstream/update-osx-arm64-binaries' 2022-05-23 15:16:54 +09:00
Dean Herbert
fca9b7bf84 Merge remote-tracking branch 'upstream/update-linux-x86-binaries' 2022-05-23 15:16:51 +09:00
github-actions[bot]
b721400a5a Update osx-x64 SDL binaries 2022-05-23 05:42:10 +00:00
github-actions[bot]
7af8222ce3 Update win-arm64 SDL binaries 2022-05-23 05:41:56 +00:00
github-actions[bot]
aacbe5085a Update win-x86 SDL binaries 2022-05-23 05:41:21 +00:00
github-actions[bot]
61272d3cbc Update osx-arm64 SDL binaries 2022-05-23 05:40:57 +00:00
github-actions[bot]
2070a7f25c Update linux-x86 SDL binaries 2022-05-23 05:40:44 +00:00
github-actions[bot]
39e7892cba Update win-x64 SDL binaries 2022-05-23 05:40:33 +00:00
github-actions[bot]
ff158cffd3 Update linux-x64 SDL binaries 2022-05-23 05:39:23 +00:00
Dean Herbert
0b5cb56c74
Merge pull request #116 from ekrctb/fix-i386
Workaround GitHub Action ubuntu-20.04 image issue
2022-05-23 14:36:45 +09:00
ekrctb
a2a5bb01c1 Workaround GitHub's ubuntu-20.04 image issue
This should fix linux-x86 failure
2022-05-23 14:21:45 +09:00
Dean Herbert
562fc2fcfe
Merge pull request #115 from ekrctb/fix-i386
Fix linux-x86 build failure and improve apt-get command line
2022-05-23 13:13:48 +09:00
ekrctb
9f7112dab7 Improve apt-get command line
- Use native Ninja.
- `libwayland-client++0` and `libwayland-cursor++0` are redundant
  because these are dependencies of `libwayland-dev`
- Added `-y` flag and `cmake` for local testing.
2022-05-23 12:48:22 +09:00
ekrctb
95c34e8606 Remove PPA that is no longer needed
this is no longer needed because we updated OS to 20.04
and it is breaking i386 build
2022-05-23 12:40:20 +09:00
Dean Herbert
74b903b48f
Merge pull request #108 from ekrctb/bump-linux-builder
Bump Linux builder OS to ubuntu-20.04
2022-05-22 19:03:19 +09:00
ekrctb
79efec7b3a Bump Linux builder OS to ubuntu-20.04
The resulting binary will require glibc version 2.31 or newer.
2022-05-21 18:37:01 +09:00
Dean Herbert
d6ddadcd3f Merge remote-tracking branch 'upstream/update-osx-x64-binaries' 2022-05-09 19:29:07 +09:00
github-actions[bot]
5b8f857b62 Update osx-x64 SDL binaries 2022-05-09 10:20:23 +00:00
Dean Herbert
619b60041d Merge remote-tracking branch 'upstream/update-win-x86-binaries' 2022-05-09 19:14:51 +09:00
Dean Herbert
1c79fa9d6b Merge remote-tracking branch 'upstream/update-win-x64-binaries' 2022-05-09 19:14:50 +09:00
Dean Herbert
1815852dcc Merge remote-tracking branch 'upstream/update-win-arm64-binaries' 2022-05-09 19:14:49 +09:00
Dean Herbert
4eaea60401 Merge remote-tracking branch 'upstream/update-osx-arm64-binaries' 2022-05-09 19:14:20 +09:00
Dean Herbert
46f2eabdc7 Merge remote-tracking branch 'upstream/update-linux-x86-binaries' 2022-05-09 19:14:18 +09:00
github-actions[bot]
f06b293caa Update osx-arm64 SDL binaries 2022-05-09 10:12:34 +00:00
github-actions[bot]
c7e834b048 Update win-x64 SDL binaries 2022-05-09 10:10:05 +00:00
github-actions[bot]
fdbdfbc6b4 Update win-x86 SDL binaries 2022-05-09 10:09:56 +00:00
github-actions[bot]
2e544995ce Update linux-x86 SDL binaries 2022-05-09 10:09:47 +00:00
github-actions[bot]
7c09b28d8a Update win-arm64 SDL binaries 2022-05-09 10:09:04 +00:00
github-actions[bot]
c33223356b Update linux-x64 SDL binaries 2022-05-09 10:07:01 +00:00
Dean Herbert
f0df2348d3
Merge pull request #100 from peppy/2.0.22
Pull in 2.0.22 changes from upstream
2022-05-09 19:03:39 +09:00
Dean Herbert
36ca8b2802 Merge branch 'flibitijibibo/master' 2022-05-09 19:01:28 +09:00
Ethan Lee
34338dfab2 2.0.22 2022-05-01 11:55:31 -04:00
Dean Herbert
d1e53cea05 Merge remote-tracking branch 'upstream/update-win-x86-binaries' 2022-01-29 15:01:22 +09:00
Dean Herbert
1821b2bb17 Merge remote-tracking branch 'upstream/update-win-x64-binaries' 2022-01-29 15:01:21 +09:00
Dean Herbert
b7fd7d726c Merge remote-tracking branch 'upstream/update-win-arm64-binaries' 2022-01-29 15:01:21 +09:00
Dean Herbert
19aa8b1798 Merge remote-tracking branch 'upstream/update-osx-x64-binaries' 2022-01-29 15:01:20 +09:00
Dean Herbert
f32e4b5478 Merge remote-tracking branch 'upstream/update-osx-arm64-binaries' 2022-01-29 15:01:19 +09:00
Dean Herbert
366aa00589 Merge remote-tracking branch 'upstream/update-linux-x86-binaries' 2022-01-29 15:01:17 +09:00
github-actions[bot]
ae180cfc1f Update osx-x64 SDL binaries 2022-01-29 05:49:57 +00:00
github-actions[bot]
187f94d325 Update osx-arm64 SDL binaries 2022-01-29 05:49:17 +00:00
github-actions[bot]
81c382eab4 Update win-arm64 SDL binaries 2022-01-29 05:47:34 +00:00
github-actions[bot]
11d2922072 Update win-x64 SDL binaries 2022-01-29 05:47:28 +00:00
github-actions[bot]
702b7c877a Update win-x86 SDL binaries 2022-01-29 05:47:01 +00:00
github-actions[bot]
735989b51e Update linux-x64 SDL binaries 2022-01-29 05:46:37 +00:00
github-actions[bot]
8cefdf4486 Update linux-x86 SDL binaries 2022-01-29 05:45:54 +00:00
Ethan Lee
b35aaa494e 2.0.20 changes 2022-01-10 16:07:17 -05:00
Ethan Lee
83205d8921 SDL2# now supports SDL2_gfx! 2021-12-17 13:00:55 -05:00
Ethan Lee
12137a127b SDL2_gfx dllmap 2021-12-17 13:00:14 -05:00
Ethan Lee
f62950eae7 SDL2_gfx tabbing/license cleanup 2021-12-17 13:00:01 -05:00
Refrag
0a8a135a34
SDL2_gfx library bindings (#230) 2021-12-17 12:57:53 -05:00
Caleb Cornett
298a725adb
Update for 2.0.18 (#229) 2021-11-30 12:27:41 -05:00
Dean Herbert
9a9d4fbfb9 Merge remote-tracking branch 'upstream/update-osx-x64-binaries' 2021-11-23 18:05:50 +09:00
Dean Herbert
f84a835639 Merge remote-tracking branch 'upstream/update-win-x86-binaries' 2021-11-23 18:05:48 +09:00
Dean Herbert
52f2a61602 Merge remote-tracking branch 'upstream/update-win-x64-binaries' 2021-11-23 18:05:45 +09:00
Dean Herbert
3b42c239f0 Merge remote-tracking branch 'upstream/update-win-arm64-binaries' 2021-11-23 18:05:43 +09:00
Dean Herbert
a0a6f8f64d Merge remote-tracking branch 'upstream/update-osx-arm64-binaries' 2021-11-23 18:05:41 +09:00
Dean Herbert
d4c8b25a79 Merge remote-tracking branch 'upstream/update-linux-x86-binaries' 2021-11-23 18:05:40 +09:00
github-actions[bot]
31db8dd836 Update osx-x64 SDL binaries 2021-11-23 08:40:03 +00:00
github-actions[bot]
0e75d73195 Update osx-arm64 SDL binaries 2021-11-23 08:39:51 +00:00
github-actions[bot]
8f179f0549 Update win-x86 SDL binaries 2021-11-23 08:39:37 +00:00
github-actions[bot]
ff380bf048 Update win-arm64 SDL binaries 2021-11-23 08:39:11 +00:00
github-actions[bot]
48224c9bd6 Update win-x64 SDL binaries 2021-11-23 08:38:45 +00:00
github-actions[bot]
d4bc1065c0 Update linux-x86 SDL binaries 2021-11-23 08:38:31 +00:00
github-actions[bot]
c168f4271a Update linux-x64 SDL binaries 2021-11-23 08:37:43 +00:00
Dean Herbert
0c6e7ac1a2 Merge branch '2.0.18' 2021-11-23 17:32:21 +09:00
Dean Herbert
054e86eabe Stop using fork 2021-11-23 17:29:50 +09:00
Dean Herbert
6dd9f14040
Merge pull request #85 from Susko3/add-hint-ime-show-ui 2021-11-21 10:04:14 +09:00
Susko3
9a854009f0 Add SDL_HINT_IME_SHOW_UI
SDL 2.0.18 doesn't exist yet, but I'm guessing https://github.com/libsdl-org/SDL/pull/4707
will make it in.

That PR is already included in our current libs.
2021-11-20 20:53:30 +01:00
Caleb Cornett
80841ecef0 Update for 2.0.18 2021-11-19 14:01:58 -05:00
Jeremy Sayers
4e9088b49d Add Mix_GetError, Mix_SetError, Mix_ClearError
Adding `Mix_GetError`, `Mix_SetError`, `Mix_ClearError` as per the SDL_mixer header file:

/* We'll use SDL for reporting errors */
#define Mix_SetError    SDL_SetError
#define Mix_GetError    SDL_GetError
#define Mix_ClearError  SDL_ClearError
2021-11-14 12:51:37 -05:00
Jeremy Sayers
db935863bb Add TTF_GetError and TTF_SetError
Adding some missing functions to SDL2_ttf that are just wrappers of the `SDL_GetError` and `SDL_SetError` as per the SDL_ttf header:
```
/* We'll use SDL for reporting errors */
#define TTF_SetError    SDL_SetError
#define TTF_GetError    SDL_GetError
```
2021-11-14 12:45:23 -05:00
s341507
ec5e8d8357 Fixed field type of ctouchpad and csensor in SDL_Event. 2021-11-03 10:09:07 -04:00
Caleb Cornett
5df88baf4b Add missing EntryPoint for SDL_AndroidShowToast 2021-11-02 15:20:30 -04:00
Dean Herbert
9ad2ef91d4 Merge remote-tracking branch 'upstream/update-win-x86-binaries' 2021-10-25 19:11:20 +09:00
Dean Herbert
46d450901c Merge remote-tracking branch 'upstream/update-win-x64-binaries' 2021-10-25 19:11:19 +09:00
Dean Herbert
a903801fcb Merge remote-tracking branch 'upstream/update-win-arm64-binaries' 2021-10-25 19:11:19 +09:00
Dean Herbert
79c04ec4e4 Merge remote-tracking branch 'upstream/update-osx-x64-binaries' 2021-10-25 19:11:17 +09:00
Dean Herbert
365ac7343c Merge remote-tracking branch 'upstream/update-osx-arm64-binaries' 2021-10-25 19:11:15 +09:00
Dean Herbert
589530739f Merge remote-tracking branch 'upstream/update-linux-x86-binaries' 2021-10-25 19:11:13 +09:00
github-actions[bot]
3dd6caee61 Update osx-x64 SDL binaries 2021-10-25 09:02:48 +00:00
github-actions[bot]
7b9cc0930c Update osx-arm64 SDL binaries 2021-10-25 09:02:21 +00:00
github-actions[bot]
9e75a76b27 Update win-x64 SDL binaries 2021-10-25 09:01:53 +00:00
github-actions[bot]
1ccc304a3b Update win-x86 SDL binaries 2021-10-25 09:01:01 +00:00
github-actions[bot]
41f1a7b98c Update win-arm64 SDL binaries 2021-10-25 09:00:33 +00:00
github-actions[bot]
7411451ccd Update linux-x86 SDL binaries 2021-10-25 09:00:16 +00:00
github-actions[bot]
6cbf30b667 Update linux-x64 SDL binaries 2021-10-25 08:59:36 +00:00
Dean Herbert
13efd80035 Merge remote-tracking branch 'upstream/update-linux-x64-binaries' 2021-08-20 13:32:14 +09:00
Dean Herbert
661432e075 Merge remote-tracking branch 'upstream/update-linux-x86-binaries' 2021-08-20 13:32:13 +09:00
Dean Herbert
07bf0132e2 Merge remote-tracking branch 'upstream/update-osx-arm64-binaries' 2021-08-20 13:32:12 +09:00
Dean Herbert
1740846bfb Merge remote-tracking branch 'upstream/update-osx-x64-binaries' 2021-08-20 13:32:12 +09:00
Dean Herbert
c7b2eed527 Merge remote-tracking branch 'upstream/update-win-arm64-binaries' 2021-08-20 13:32:11 +09:00
Dean Herbert
1f5701255d Merge remote-tracking branch 'upstream/update-win-x64-binaries' 2021-08-20 13:32:10 +09:00
Dean Herbert
47d127ff42 Merge remote-tracking branch 'upstream/update-win-x86-binaries' 2021-08-20 13:32:09 +09:00
github-actions[bot]
57efe7508d Update win-x86 SDL binaries 2021-08-20 13:28:43 +09:00
github-actions[bot]
180c6624da Update win-x64 SDL binaries 2021-08-20 13:28:43 +09:00
github-actions[bot]
616ec3e4af Update win-arm64 SDL binaries 2021-08-20 13:28:42 +09:00
github-actions[bot]
d122cdc0cc Update osx-x64 SDL binaries 2021-08-20 13:28:42 +09:00
github-actions[bot]
7fef4e4bcf Update osx-arm64 SDL binaries 2021-08-20 13:28:42 +09:00
github-actions[bot]
54fea85d7f Update linux-x86 SDL binaries 2021-08-20 13:28:42 +09:00
github-actions[bot]
7e253ea7fd Update linux-x64 SDL binaries 2021-08-20 13:28:42 +09:00
github-actions[bot]
1b8cb2a3ef Update osx-x64 SDL binaries 2021-08-20 04:24:33 +00:00
Dean Herbert
be91db5b85
Don't automatically build native dependencies on push
We don't really need this. We always manually do these updates anyway.
2021-08-20 13:24:04 +09:00
github-actions[bot]
e063120875 Update osx-arm64 SDL binaries 2021-08-20 04:20:30 +00:00
github-actions[bot]
a5dd0e3002 Update win-x64 SDL binaries 2021-08-20 04:12:32 +00:00
github-actions[bot]
55c8fc9736 Update win-arm64 SDL binaries 2021-08-20 04:12:09 +00:00
github-actions[bot]
1d947d73ad Update win-x86 SDL binaries 2021-08-20 04:11:50 +00:00
github-actions[bot]
c51685eab3 Update linux-x64 SDL binaries 2021-08-20 04:11:14 +00:00
github-actions[bot]
6ce8eaf83a Update linux-x86 SDL binaries 2021-08-20 04:10:50 +00:00
Esme
904eed3cb0 Fix typo in version comment 2021-08-16 14:35:27 -04:00
Mary
931d5fc06e Add multiple missing pointer overloads
THis adds some missing overloads that Ryujinx uses.

Changelog:
- Add a new overload of SDL_MixAudioFormat to allow passing raw pointers
  as dest and src (useful for usage with SDL_AudioSpec's callback).
- Add a new overload of SDL_OpenAudioDevice to allow passing null for
  the device parameter.
- Add a new overload of SDL_Vulkan_GetInstanceExtensions to allow
  passing null for the pName parameter.
2021-08-14 06:24:16 -04:00
Dean Herbert
8ac357412e
Merge pull request #65 from ppy/update-win-x64-binaries
Update win-x64 SDL binaries
2021-08-11 13:21:44 +09:00
Dean Herbert
e7e6bdefb0
Merge pull request #67 from ppy/update-win-x86-binaries
Update win-x86 SDL binaries
2021-08-11 13:21:36 +09:00
Dean Herbert
36ceacad9b
Merge pull request #66 from ppy/update-win-arm64-binaries
Update win-arm64 SDL binaries
2021-08-11 13:21:20 +09:00
github-actions[bot]
c1556e8f95 Update win-x64 SDL binaries 2021-08-11 03:03:10 +00:00
github-actions[bot]
52db66311c Update win-x86 SDL binaries 2021-08-11 03:03:05 +00:00
github-actions[bot]
606c573d3e Update win-arm64 SDL binaries 2021-08-11 03:03:03 +00:00
Dean Herbert
c94f27fa40 Merge branch 'flibitijibibo/master' 2021-08-11 11:59:58 +09:00
Caleb Cornett
09716fcbc2 Update to 2.0.16 2021-08-10 15:49:29 -04:00
Dean Herbert
7a875af110
Merge pull request #53 from ppy/update-win-arm64-binaries
Update win-arm64 SDL binaries
2021-08-06 23:05:44 +09:00
Dean Herbert
253d6b4da9
Merge pull request #54 from ppy/update-win-x86-binaries
Update win-x86 SDL binaries
2021-08-06 23:05:38 +09:00
Dean Herbert
88abfa1730
Merge pull request #55 from ppy/update-win-x64-binaries
Update win-x64 SDL binaries
2021-08-06 23:05:33 +09:00
Dean Herbert
4c2bf2ab88
Merge pull request #62 from ppy/update-osx-arm64-binaries
Update osx-arm64 SDL binaries
2021-08-06 23:05:27 +09:00
Dean Herbert
82aef37aca
Merge pull request #63 from ppy/update-osx-x64-binaries
Update osx-x64 SDL binaries
2021-08-06 23:05:21 +09:00
Dean Herbert
52e4a98e0a
Merge pull request #61 from ppy/update-linux-x86-binaries
Update linux-x86 SDL binaries
2021-08-06 23:05:03 +09:00
Dean Herbert
7a7197c277
Merge pull request #60 from ppy/update-linux-x64-binaries
Update linux-x64 SDL binaries
2021-08-06 23:04:53 +09:00
github-actions[bot]
ef5dc11cd3 Update osx-x64 SDL binaries 2021-08-06 14:02:43 +00:00
github-actions[bot]
e368843d7a Update osx-arm64 SDL binaries 2021-08-06 14:02:28 +00:00
github-actions[bot]
74a1fff30b Update win-x86 SDL binaries 2021-08-06 14:00:55 +00:00
github-actions[bot]
bcec137696 Update win-x64 SDL binaries 2021-08-06 14:00:18 +00:00
github-actions[bot]
33e12f2306 Update win-arm64 SDL binaries 2021-08-06 13:59:54 +00:00
github-actions[bot]
3fcefdd96d Update linux-x86 SDL binaries 2021-08-06 13:59:36 +00:00
github-actions[bot]
104a0e76cc Update linux-x64 SDL binaries 2021-08-06 13:58:54 +00:00
wanderer06
d5e1e56983 Add NULL overload to SDL_SetWindowDisplayMode 2021-08-04 16:58:59 -04:00
Dean Herbert
184bcfd476
Merge pull request #49 from ppy/update-linux-x64-binaries
Update linux-x64 SDL binaries
2021-07-25 15:31:13 +09:00
Dean Herbert
ae543f186c
Merge pull request #50 from ppy/update-linux-x86-binaries
Update linux-x86 SDL binaries
2021-07-25 15:30:58 +09:00
github-actions[bot]
1f2d1af595 Update linux-x86 SDL binaries 2021-07-25 06:29:36 +00:00
github-actions[bot]
ec825444fb Update linux-x64 SDL binaries 2021-07-25 06:28:52 +00:00
Dean Herbert
d786027acc
Merge pull request #59 from frenzibyte/fix-linux-failures
Fix linux platform workflow failures
2021-07-25 15:26:42 +09:00
Salman Ahmed
7e899b49c0 Fix linux platform workflow failures 2021-07-25 09:11:53 +03:00
Dean Herbert
2c82d193b9
Merge pull request #39 from ppy/update-win-arm64-binaries
Update win-arm64 SDL binaries
2021-07-25 13:48:22 +09:00
Dean Herbert
300874e40a
Merge pull request #51 from ppy/update-osx-x64-binaries
Update osx-x64 SDL binaries
2021-07-25 13:48:14 +09:00
Dean Herbert
4b751678a2
Merge pull request #52 from ppy/update-osx-arm64-binaries
Update osx-arm64 SDL binaries
2021-07-25 13:48:07 +09:00
Dean Herbert
d0d4705c55
Merge pull request #41 from ppy/update-win-x86-binaries
Update win-x86 SDL binaries
2021-07-25 13:47:43 +09:00
Dean Herbert
d9511db82c
Merge pull request #40 from ppy/update-win-x64-binaries
Update win-x64 SDL binaries
2021-07-25 13:47:33 +09:00
github-actions[bot]
16fdc264b6 Update osx-arm64 SDL binaries 2021-07-25 04:36:46 +00:00
github-actions[bot]
1415d15998 Update osx-x64 SDL binaries 2021-07-25 04:33:23 +00:00
github-actions[bot]
cd42526f1c Update win-arm64 SDL binaries 2021-07-25 04:32:55 +00:00
github-actions[bot]
251ec9ae31 Update win-x86 SDL binaries 2021-07-25 04:32:51 +00:00
github-actions[bot]
b188a3b90c Update win-x64 SDL binaries 2021-07-25 04:32:48 +00:00
Dean Herbert
9cb3215569
Merge pull request #48 from boswelja/missing-includes
Add missing includes for available binaries
2021-07-22 19:37:52 +09:00
Jack Boswell (boswelja)
a535172268 Add missing win-arm64 include 2021-07-22 20:35:36 +12:00
Jack Boswell (boswelja)
afaa34f0f3 Add missing include for osx-arm64 2021-07-22 20:34:55 +12:00
Ethan Lee
b2ed029f11 Woops, an internal function was public 2021-07-13 16:46:43 -04:00
Ethan Lee
8c25be5b12 Free GameControllerMapping return values 2021-06-29 15:56:23 -04:00
Dean Herbert
42709cf78f Merge branch 'flibitijibibo/master' 2021-06-06 23:24:51 +09:00
Ethan Lee
00c94a24eb Allow Utf8EncodeHeap to return NULL, clean up Utf8Size 2021-05-15 09:58:00 -04:00
Ethan Lee
e316ae5cfd Give the heap-allocated Utf8Encode a unique function name 2021-05-15 09:47:28 -04:00
Ethan Lee
a234470e39
Make all UTF8 conversions nullable.
Trying to avoid null strings was far too invasive and kept creating bugs in the wrapper, and the wrapper should not have enough code to create bugs in the first place.
2021-05-15 09:10:02 -04:00
Dean Herbert
abd696f7c0 Merge remote-tracking branch 'upstream/update-linux-x86-binaries' 2021-05-01 20:10:15 +09:00
github-actions[bot]
8b76a259af Update linux-x86 SDL binaries 2021-05-01 10:31:31 +00:00
github-actions[bot]
0ea9805e1d Update linux-x64 SDL binaries 2021-05-01 10:31:12 +00:00
Dean Herbert
dc716ca7c5
Merge pull request #43 from Ryujinx/fix/ubuntu-18.04
ci: Build on ubuntu 18.04 for Linux
2021-05-01 19:28:38 +09:00
Mary
db92e59f27 ci: Build on ubuntu 18.04 for Linux
This is to ensure we have an old enough glibc to be compatible wih
ancient version of it.
2021-05-01 12:04:16 +02:00
Ethan Lee
fadd0135c3
Removed obsolete Roadmap section from README 2021-04-19 11:57:58 -04:00
Ethan Lee
e8bf894c31
Try to fix use of C long in TTF_FontFaces 2021-04-19 11:54:43 -04:00
Dean Herbert
94f6c5e79a Merge remote-tracking branch 'upstream/update-win-x86-binaries' 2021-04-10 00:00:31 +09:00
Dean Herbert
b97b3cd339 Merge remote-tracking branch 'upstream/update-win-x64-binaries' 2021-04-10 00:00:29 +09:00
Dean Herbert
460f879545 Merge remote-tracking branch 'upstream/update-win-arm64-binaries' 2021-04-10 00:00:28 +09:00
Dean Herbert
5944136044 Merge remote-tracking branch 'upstream/update-osx-x64-binaries' 2021-04-10 00:00:26 +09:00
Dean Herbert
c54101eaf5 Merge remote-tracking branch 'upstream/update-osx-arm64-binaries' 2021-04-10 00:00:25 +09:00
Dean Herbert
b40112a74b Merge remote-tracking branch 'upstream/update-linux-x86-binaries' 2021-04-10 00:00:22 +09:00
github-actions[bot]
722f71f3a5 Update osx-arm64 SDL binaries 2021-04-09 13:25:21 +00:00
github-actions[bot]
2ee992ef3b Update osx-x64 SDL binaries 2021-04-09 13:25:11 +00:00
github-actions[bot]
4785fd817f Update win-arm64 SDL binaries 2021-04-09 13:22:43 +00:00
github-actions[bot]
a04537c994 Update win-x64 SDL binaries 2021-04-09 13:22:42 +00:00
github-actions[bot]
8462f99195 Update win-x86 SDL binaries 2021-04-09 13:22:41 +00:00
github-actions[bot]
7b7585b045 Update linux-x86 SDL binaries 2021-04-09 13:21:30 +00:00
github-actions[bot]
65b8105f09 Update linux-x64 SDL binaries 2021-04-09 13:21:06 +00:00
Dean Herbert
83717c51ef
Merge pull request #23 from ppy/update-linux-x64-binaries
Update linux-x64 SDL binaries
2021-04-07 11:37:00 +09:00
Dean Herbert
b8b194a7ec
Merge pull request #24 from ppy/update-linux-x86-binaries
Update linux-x86 SDL binaries
2021-04-07 11:36:47 +09:00
Dean Herbert
c9b096c847
Merge pull request #25 from ppy/update-win-x86-binaries
Update win-x86 SDL binaries
2021-04-07 11:36:39 +09:00
Dean Herbert
4c196724b0
Merge pull request #26 from ppy/update-win-arm64-binaries
Update win-arm64 SDL binaries
2021-04-07 11:36:33 +09:00
Dean Herbert
ecc9a9a154
Merge pull request #27 from ppy/update-win-x64-binaries
Update win-x64 SDL binaries
2021-04-07 11:36:28 +09:00
Dean Herbert
d5484a2fec
Merge pull request #28 from ppy/update-osx-arm64-binaries
Update osx-arm64 SDL binaries
2021-04-07 11:36:23 +09:00
Dean Herbert
9be777f917
Merge pull request #29 from ppy/update-osx-x64-binaries
Update osx-x64 SDL binaries
2021-04-07 11:35:14 +09:00
github-actions[bot]
c0281870b1 Update osx-x64 SDL binaries 2021-04-07 01:20:24 +00:00
github-actions[bot]
a858e3061d Update osx-arm64 SDL binaries 2021-04-07 01:19:18 +00:00
github-actions[bot]
8110b3c582 Update win-arm64 SDL binaries 2021-04-07 01:19:06 +00:00
github-actions[bot]
89753c4684 Update win-x64 SDL binaries 2021-04-07 01:19:05 +00:00
github-actions[bot]
36eccd760b Update win-x86 SDL binaries 2021-04-07 01:19:01 +00:00
github-actions[bot]
0c4c44634f Update linux-x86 SDL binaries 2021-04-07 01:19:00 +00:00
github-actions[bot]
b904c1164d Update linux-x64 SDL binaries 2021-04-07 01:17:53 +00:00
Dean Herbert
8825ccdf59
Merge pull request #22 from Ryujinx/feature/ci-revamp 2021-04-07 10:15:29 +09:00
Mary
4ca474a69b Switch target repo to ppy/SDL 2021-04-06 23:52:40 +02:00
Mary
8807bcc1b2 Rework CI
This rework current CI to build on all standard platform and architectures.

The following changes were made:
- Adds support for Windows x86, x64 and ARM64 builds
- Adds support for macOS arm64
- Use cmake instead of autoconf
- All artifacts are now build in Release insead of Debug
- A matrix is now used instead of individual steps to deduplicate steps and to allow adding new target architecture with a single line
- If build of one job fails, it will now let others continue instead of cancelling them
- The action can now be triggered via a manual workflow
2021-04-05 17:34:55 +02:00
Dean Herbert
503baa3663 Use locally build macOS libSDL to fix macOS 10.14 compatibility 2021-04-02 16:18:46 +09:00
Dean Herbert
408fadcded Try forcing xcode-select 2021-04-02 15:37:35 +09:00
Dean Herbert
8a2eb9bfa0 Use DEVELOPER_DIR instead 2021-04-02 15:19:06 +09:00
Dean Herbert
e05d0ef426 Attempt to force older version of xcode 2021-04-02 15:11:52 +09:00
Dean Herbert
53596261ca
Merge pull request #19 from ppy/update-macos-binaries
Update macOS SDL binaries
2021-04-02 14:35:21 +09:00
github-actions[bot]
e230266ff3 Update macOS SDL binaries 2021-04-02 05:34:08 +00:00
Dean Herbert
1b81e33fee Update windows binaries
Still building these manually as we don't have a github script for it
yet.
2021-04-02 14:28:18 +09:00
Dean Herbert
947e2503da Move envvar to correct task 2021-04-02 14:22:45 +09:00
Dean Herbert
b6fdbf043e
Merge pull request #17 from ppy/update-macos-binaries
Update macOS SDL binaries
2021-04-02 14:14:46 +09:00
github-actions[bot]
c37b077242 Update macOS SDL binaries 2021-04-02 05:03:04 +00:00
Dean Herbert
9bf64d5cd1 Attempt to target earlier macOS SDK version 2021-04-02 13:57:14 +09:00
Dean Herbert
3216da88bf
Merge pull request #18 from ppy/update-linux-binaries
Update Linux SDL binaries
2021-04-02 13:57:08 +09:00
github-actions[bot]
7bc858acd8 Update Linux SDL binaries 2021-04-02 04:54:37 +00:00
Dean Herbert
cc7d210bf4 Move fork to org 2021-04-02 13:43:25 +09:00
Dean Herbert
3442d7e8b4 Target fork for the time being 2021-04-02 13:39:40 +09:00
Dean Herbert
a043e0bb33 Add alpha suffix to release as prerelease package 2021-04-02 13:35:55 +09:00
Dean Herbert
186a34554d Merge branch 'flibitijibibo/master' 2021-03-30 11:21:03 +09:00
Dean Herbert
67dc4d0842
Merge pull request #9 from ppy/update-linux-binaries
Update Linux SDL binaries
2021-03-30 10:33:35 +09:00
Dean Herbert
d00bb32648
Merge pull request #8 from ppy/update-macos-binaries
Update macOS SDL binaries
2021-03-30 10:33:15 +09:00
github-actions[bot]
18cbf1485e Update Linux SDL binaries 2021-03-30 00:37:09 +00:00
github-actions[bot]
742ad3c971 Update macOS SDL binaries 2021-03-30 00:33:12 +00:00
Dean Herbert
82e95483bd
Merge pull request #13 from Ryujinx/feature/2.0.14 2021-03-30 09:26:36 +09:00
Mary
800ae50c84 Add some missing hints from 2.0.14 and minor correctness updates
This is based on my update to 2.0.14 I did based on ppy's fork.
Even if what I did in the end was duplicate compared to upstream, I found some differences and missing bits.

This commit is here to address those missing bits.
2021-03-29 16:06:26 -04:00
26 changed files with 3094 additions and 122 deletions

9
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,9 @@
version: 2
updates:
- directory: /
package-ecosystem: github-actions
reviewers:
- marysaka
- TSRBerry
schedule:
interval: daily

View File

@ -1,60 +1,92 @@
name: build-native
on: [push]
on:
workflow_dispatch:
inputs:
rev:
description: 'Ryujinx/SDL commit to build (this has to be a full commit sha, otherwise it will not work)'
required: true
# schedule:
# - cron: '0 0 * * *'
env:
BUILD_TYPE: Release
jobs:
build-macos:
runs-on: macos-latest
build:
name: ${{ matrix.platform.name }}
runs-on: ${{ matrix.platform.os }}
strategy:
fail-fast: false
matrix:
platform:
- { name: win-x64, os: windows-latest, arch: x64 }
# - { name: win-x86, os: windows-latest, arch: Win32 }
- { name: win-arm64, os: windows-latest, arch: ARM64 }
- { name: linux-x64, os: ubuntu-20.04, arch: amd64 }
# - { name: linux-x86, os: ubuntu-20.04, arch: i386 }
- { name: linux-arm64, os: ubuntu-20.04, arch: arm64 }
- { name: osx-x64, os: macos-latest, arch: x86_64 }
- { name: osx-arm64, os: macos-latest, arch: arm64 }
steps:
- uses: actions/checkout@v2
- name: Check out SDL sources
run: |
git clone --depth 1 --branch release-2.0.14 https://github.com/libsdl-org/SDL.git /tmp/SDL
- name: Build binaries
run: |
cd /tmp/SDL
./configure
make
make install
- name: copy built binary
run: cp /usr/local/lib/libSDL2-2.0.0.dylib native/osx-x64/libSDL2.dylib
- name: Create pull request
uses: peter-evans/create-pull-request@v2
- name: Setup qemu static
uses: docker/setup-qemu-action@v3
if: runner.os == 'Linux'
- uses: actions/checkout@v4
with:
commit-message: Update macOS SDL binaries
title: Update macOS SDL binaries
body: This PR has been auto-generated to update the macOS SDL binaries.
branch: update-macos-binaries
repository: Ryujinx/SDL
ref: ${{ github.event.inputs.rev }}
- uses: actions/checkout@v4
with:
path: 'SDL2-CS'
- name: Build and prepare release
run: SDL2-CS/ci/run.sh $PWD $PWD/SDL2-CS/native/${{ matrix.platform.name }} ${{ matrix.platform.arch }}
shell: bash
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.platform.name }}-binaries
path: install_output
- name: Create pull request
uses: peter-evans/create-pull-request@v4
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: 'SDL2-CS'
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
build-linux:
runs-on: ubuntu-latest
build-ios:
name: ios
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Check out SDL sources
run: |
git clone --depth 1 --branch release-2.0.14 https://github.com/libsdl-org/SDL.git /tmp/SDL
- name: Build i386 binaries
run: |
mkdir /tmp/i386
cd linux-build
docker build -t sdl2-i386 -f Dockerfile.i386 .
docker run -v `pwd`/compile:/entry -v /tmp/i386:/io -v /tmp/SDL:/src sdl2-i386
cp /tmp/i386/lib/libSDL2-2.0.so.0 ../native/linux-x86/libSDL2.so
- name: Build amd64 binaries
run: |
mkdir /tmp/amd64
cd linux-build
docker build -t sdl2-amd64 -f Dockerfile.amd64 .
docker run -v `pwd`/compile:/entry -v /tmp/amd64:/io -v /tmp/SDL:/src sdl2-amd64
cp /tmp/amd64/lib/libSDL2-2.0.so.0 ../native/linux-x64/libSDL2.so
- name: Create pull request
uses: peter-evans/create-pull-request@v2
- uses: actions/checkout@v4
with:
commit-message: Update Linux SDL binaries
title: Update Linux SDL binaries
body: This PR has been auto-generated to update the Linux SDL binaries.
branch: update-linux-binaries
repository: Ryujinx/SDL
ref: ${{ github.event.inputs.rev }}
- uses: actions/checkout@v4
with:
path: 'SDL2-CS'
- name: Build (iOS)
run: xcodebuild -project Xcode/SDL/SDL.xcodeproj -scheme xcFramework-iOS -configuration Release
- name: Prepare release directory (iOS)
run: mkdir -p SDL2-CS/native/ios
- name: Prepare release (iOS)
run: |
mkdir -p SDL2-CS/native/ios/SDL2.xcframework/ios-arm64/SDL2.framework;
mkdir -p SDL2-CS/native/ios/SDL2.xcframework/ios-arm64_x86_64-simulator/SDL2.framework;
cp Xcode/SDL/Products/SDL2.xcframework/Info.plist SDL2-CS/native/ios/SDL2.xcframework/Info.plist;
cp Xcode/SDL/Products/SDL2.xcframework/ios-arm64/SDL2.framework/SDL2 SDL2-CS/native/ios/SDL2.xcframework/ios-arm64/SDL2.framework/SDL2;
cp Xcode/SDL/Products/SDL2.xcframework/ios-arm64/SDL2.framework/Info.plist SDL2-CS/native/ios/SDL2.xcframework/ios-arm64/SDL2.framework/Info.plist;
cp Xcode/SDL/Products/SDL2.xcframework/ios-arm64_x86_64-simulator/SDL2.framework/SDL2 SDL2-CS/native/ios/SDL2.xcframework/ios-arm64_x86_64-simulator/SDL2.framework/SDL2;
cp Xcode/SDL/Products/SDL2.xcframework/ios-arm64_x86_64-simulator/SDL2.framework/Info.plist SDL2-CS/native/ios/SDL2.xcframework/ios-arm64_x86_64-simulator/SDL2.framework/Info.plist;
- name: Create pull request
uses: peter-evans/create-pull-request@v4
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: 'SDL2-CS'
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'

34
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,34 @@
name: Build
on:
workflow_dispatch:
inputs: {}
#push:
# branches: [ master ]
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 7.0.x
- uses: nuget/setup-nuget@v1
with:
nuget-api-key: ${{ secrets.NUGET_API_KEY }}
nuget-version: '6.x'
- name: Restore dependencies
run: dotnet restore
- name: Build
run: dotnet build --no-restore
- name: Test
run: dotnet test --no-build --verbosity normal
- name: Pack & Publish
run: |
dotnet pack --version-suffix "build${{ github.run_number }}" -c Release .\SDL2-CS.csproj -o .
$file_to_publish = Get-ChildItem -Path $dir -Filter *.nupkg | Select -First 1
echo $file_to_publish
nuget push $file_to_publish -Source https://api.nuget.org/v3/index.json

7
README
View File

@ -19,6 +19,7 @@ is written in a way that can be used for any general C# application.
The wrapper provides bindings for the following libraries:
- SDL2
- SDL2_gfx
- SDL2_image
- SDL2_mixer
- SDL2_ttf
@ -40,9 +41,3 @@ names threads with the 0x406D1388 exception will silently exit. To prevent this
exception from being thrown by SDL, add this line before your SDL_Init call:
SDL.SDL_SetHint(SDL.SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING, "1");
Roadmap
-------
To see the current roadmap for SDL2#, visit the GitHub issues page:
https://github.com/flibitijibibo/SDL2-CS/issues

View File

@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
<OutputType>Library</OutputType>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<AssemblyTitle>SDL2#</AssemblyTitle>
@ -8,13 +8,14 @@
<Description>libSDL2 bindings for C#</Description>
<RootNamespace>SDL2</RootNamespace>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<VersionPrefix>2.30.0</VersionPrefix>
</PropertyGroup>
<PropertyGroup Label="NuGet">
<Authors>ppy Pty Ltd &amp; flibitijibibo</Authors>
<Authors>marysaka &amp; ppy Pty Ltd &amp; flibitijibibo</Authors>
<Title>SDL2#</Title>
<PackageId>ppy.SDL2-CS</PackageId>
<PackageProjectUrl>https://github.com/ppy/SDL2-CS</PackageProjectUrl>
<RepositoryUrl>https://github.com/ppy/SDL2-CS</RepositoryUrl>
<PackageId>Ryujinx.SDL2-CS</PackageId>
<PackageProjectUrl>https://github.com/Ryujinx/SDL2-CS</PackageProjectUrl>
<RepositoryUrl>https://github.com/Ryujinx/SDL2-CS</RepositoryUrl>
</PropertyGroup>
<ItemGroup>
<Content Include="$(MSBuildThisFileDirectory)native\win-x64\SDL2.dll">
@ -22,9 +23,9 @@
<PackagePath>runtimes/win-x64/native</PackagePath>
<Pack>true</Pack>
</Content>
<Content Include="$(MSBuildThisFileDirectory)native\win-x86\SDL2.dll">
<Content Include="$(MSBuildThisFileDirectory)native\win-arm64\SDL2.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<PackagePath>runtimes/win-x86/native</PackagePath>
<PackagePath>runtimes/win-arm64/native</PackagePath>
<Pack>true</Pack>
</Content>
<Content Include="$(MSBuildThisFileDirectory)native\osx-x64\libSDL2.dylib">
@ -32,14 +33,24 @@
<PackagePath>runtimes/osx-x64/native</PackagePath>
<Pack>true</Pack>
</Content>
<Content Include="$(MSBuildThisFileDirectory)native\osx-arm64\libSDL2.dylib">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<PackagePath>runtimes/osx-arm64/native</PackagePath>
<Pack>true</Pack>
</Content>
<Content Include="$(MSBuildThisFileDirectory)native\linux-x64\libSDL2.so">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<PackagePath>runtimes/linux-x64/native</PackagePath>
<Pack>true</Pack>
</Content>
<Content Include="$(MSBuildThisFileDirectory)native\linux-x86\libSDL2.so">
<Content Include="$(MSBuildThisFileDirectory)native\linux-arm64\libSDL2.so">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<PackagePath>runtimes/linux-x86/native</PackagePath>
<PackagePath>runtimes/linux-arm64/native</PackagePath>
<Pack>true</Pack>
</Content>
<Content Include="$(MSBuildThisFileDirectory)native\ios\**\*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<PackagePath>runtimes/ios/native</PackagePath>
<Pack>true</Pack>
</Content>
</ItemGroup>

View File

@ -1,8 +1,8 @@
image: Visual Studio 2017
image: Visual Studio 2022
build_script:
- cmd: dotnet restore
- cmd: dotnet pack SDL2-CS.csproj -c:Release --include-symbols /p:Version=%APPVEYOR_BUILD_VERSION%
test: off
version: 1.0.{build}
version: 1.0.{build}-alpha
artifacts:
- path: 'bin\Release\*.nupkg'

109
ci/compile.sh Executable file
View File

@ -0,0 +1,109 @@
#!/bin/bash
set -e
if [ "$#" -le 1 ]; then
echo "usage: <sdl_dir> <output_path> [build_arch]"
exit 1
fi
uname_system="$(uname -s)"
case "${uname_system}" in
Linux*) system_name=linux;;
Darwin*) system_name=macos;;
CYGWIN*) system_name=win;;
MINGW*) system_name=win;;
*) system_name="Unknown OS: ${uname_system}"
esac
export DEBIAN_FRONTEND=noninteractive
sdl_dir=$1
output_path=$2
build_arch=$3
mkdir -p $output_path
if [ -z "$3" ]; then
if [ $system_name == "linux" ]; then
build_arch=$(dpkg --print-architecture)
else
echo "ERROR - build_arch parameter needed on macOS and Windows"
exit 1
fi
fi
if command -v sudo &> /dev/null
then
SUDO=sudo
fi
if [[ $system_name == "linux" ]]; then
if [[ $build_arch == "i386" ]]; then
sudo dpkg --add-architecture i386
export CFLAGS=-m32
export CXXFLAGS=-m32
fi
$SUDO apt-get update -y
$SUDO apt-get install -y \
build-essential \
cmake \
ninja-build \
wayland-scanner++ \
wayland-protocols \
pkg-config:$build_arch \
libasound2-dev:$build_arch \
libdbus-1-dev:$build_arch \
libegl1-mesa-dev:$build_arch \
libgl1-mesa-dev:$build_arch \
libgles2-mesa-dev:$build_arch \
libglu1-mesa-dev:$build_arch \
libibus-1.0-dev:$build_arch \
libpulse-dev:$build_arch \
libsdl2-2.0-0:$build_arch \
libsndio-dev:$build_arch \
libudev-dev:$build_arch \
libwayland-dev:$build_arch \
libx11-dev:$build_arch \
libxcursor-dev:$build_arch \
libxext-dev:$build_arch \
libxi-dev:$build_arch \
libxinerama-dev:$build_arch \
libxkbcommon-dev:$build_arch \
libxrandr-dev:$build_arch \
libxss-dev:$build_arch \
libxt-dev:$build_arch \
libxv-dev:$build_arch \
libxxf86vm-dev:$build_arch \
libdrm-dev:$build_arch \
libgbm-dev:$build_arch \
libpulse-dev:$build_arch \
libhidapi-dev:$build_arch \
libwayland-client++0:$build_arch \
libwayland-cursor++0:$build_arch
extra_cmake_flags="-GNinja"
elif [[ $system_name == "macos" ]]; then
extra_cmake_flags="-DCMAKE_OSX_ARCHITECTURES=\"$build_arch\" -DCMAKE_OSX_DEPLOYMENT_TARGET=\"11.0\""
elif [[ $system_name == "win" ]]; then
extra_cmake_flags="-A $build_arch"
fi
pushd $sdl_dir
cmake -B build -DCMAKE_BUILD_TYPE=Release -DSDL_SHARED_ENABLED_BY_DEFAULT=ON -DSDL_STATIC_ENABLED_BY_DEFAULT=ON $extra_cmake_flags
cmake --build build/ --config Release
$SUDO cmake --install build/ --prefix install_output --config Release
mkdir -p $output_path
if [[ $system_name == "linux" ]]; then
cp install_output/lib/libSDL2-2.0.so.0 $output_path/libSDL2.so
elif [[ $system_name == "macos" ]]; then
cp install_output/lib/libSDL2-2.0.dylib $output_path/libSDL2.dylib
elif [[ $system_name == "win" ]]; then
cp install_output/bin/SDL2.dll $output_path/SDL2.dll
fi
popd

41
ci/run.sh Executable file
View File

@ -0,0 +1,41 @@
#!/bin/bash
set -e
if [ "$#" -le 2 ]; then
echo "usage: <sdl_dir> <output_path> <build_arch>"
exit 1
fi
uname_system="$(uname -s)"
case "${uname_system}" in
Linux*) system_name=linux;;
Darwin*) system_name=macos;;
CYGWIN*) system_name=win;;
MINGW*) system_name=win;;
*) system_name="Unknown OS: ${uname_system}"
esac
sdl_dir=$1
output_path=$2
build_arch=$3
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
mkdir -p $output_path
if [ $system_name == "linux" ] && [ $build_arch == "arm64" ]; then
if command -v podman &> /dev/null; then
DOCKER=podman
elif command -v docker &> /dev/null; then
DOCKER=docker
else
echo "ERROR - Missing docker/podman env, cannot crossbuild"
exit 1
fi
$DOCKER run --rm -v $SCRIPT_DIR:/scripts -v $output_path:/output -v $sdl_dir:/source -t arm64v8/ubuntu:focal bash /scripts/compile.sh /source /output $build_arch
else
$SCRIPT_DIR/compile.sh "$sdl_dir" "$output_path" "$build_arch"
fi

View File

@ -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>AvailableLibraries</key>
<array>
<dict>
<key>LibraryIdentifier</key>
<string>ios-arm64</string>
<key>LibraryPath</key>
<string>SDL2.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
</dict>
<dict>
<key>LibraryIdentifier</key>
<string>ios-arm64_x86_64-simulator</string>
<key>LibraryPath</key>
<string>SDL2.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
</array>
<key>CFBundlePackageType</key>
<string>XFWK</string>
<key>XCFrameworkFormatVersion</key>
<string>1.0</string>
</dict>
</plist>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
native/osx-arm64/libSDL2.dylib Executable file

Binary file not shown.

Binary file not shown.

BIN
native/win-arm64/SDL2.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

390
src/SDL2_gfx.cs Normal file
View File

@ -0,0 +1,390 @@
#region License
/* SDL2# - C# Wrapper for SDL2
*
* Copyright (c) 2013-2021 Ethan Lee.
*
* 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.
*
* Ethan "flibitijibibo" Lee <flibitijibibo@flibitijibibo.com>
*
*/
#endregion
#region Using Statements
using System;
using System.Runtime.InteropServices;
#endregion
namespace SDL2
{
public static class SDL_gfx
{
#region SDL2# Variables
/* Used by DllImport to load the native library. */
private const string nativeLibName = "SDL2_gfx";
#endregion
public const double M_PI = 3.1415926535897932384626433832795;
#region SDL2_gfxPrimitives.h
public const uint SDL2_GFXPRIMITIVES_MAJOR = 1;
public const uint SDL2_GFXPRIMITIVES_MINOR = 0;
public const uint SDL2_GFXPRIMITIVES_MICRO = 1;
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int pixelColor(IntPtr renderer, short x, short y, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int pixelRGBA(IntPtr renderer, short x, short y, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int hlineColor(IntPtr renderer, short x1, short x2, short y, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int hlineRGBA(IntPtr renderer, short x1, short x2, short y, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int vlineColor(IntPtr renderer, short x, short y1, short y2, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int vlineRGBA(IntPtr renderer, short x, short y1, short y2, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int rectangleColor(IntPtr renderer, short x1, short y1, short x2, short y2, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int rectangleRGBA(IntPtr renderer, short x1, short y1, short x2, short y2, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int roundedRectangleColor(IntPtr renderer, short x1, short y1, short x2, short y2, short rad, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int roundedRectangleRGBA(IntPtr renderer, short x1, short y1, short x2, short y2, short rad, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int boxColor(IntPtr renderer, short x1, short y1, short x2, short y2, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int boxRGBA(IntPtr renderer, short x1, short y1, short x2, short y2, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int roundedBoxColor(IntPtr renderer, short x1, short y1, short x2, short y2, short rad, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int roundedBoxRGBA(IntPtr renderer, short x1, short y1, short x2, short y2, short rad, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int lineColor(IntPtr renderer, short x1, short y1, short x2, short y2, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int lineRGBA(IntPtr renderer, short x1, short y1, short x2, short y2, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int aalineColor(IntPtr renderer, short x1, short y1, short x2, short y2, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int aalineRGBA(IntPtr renderer, short x1, short y1, short x2, short y2, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int thickLineColor(IntPtr renderer, short x1, short y1, short x2, short y2, byte width, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int thickLineRGBA(IntPtr renderer, short x1, short y1, short x2, short y2, byte width, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int circleColor(IntPtr renderer, short x, short y, short rad, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int circleRGBA(IntPtr renderer, short x, short y, short rad, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int arcColor(IntPtr renderer, short x, short y, short rad, short start, short end, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int arcRGBA(IntPtr renderer, short x, short y, short rad, short start, short end, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int aacircleColor(IntPtr renderer, short x, short y, short rad, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int aacircleRGBA(IntPtr renderer, short x, short y, short rad, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int filledCircleColor(IntPtr renderer, short x, short y, short rad, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int filledCircleRGBA(IntPtr renderer, short x, short y, short rad, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int ellipseColor(IntPtr renderer, short x, short y, short rx, short ry, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int ellipseRGBA(IntPtr renderer, short x, short y, short rx, short ry, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int aaellipseColor(IntPtr renderer, short x, short y, short rx, short ry, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int aaellipseRGBA(IntPtr renderer, short x, short y, short rx, short ry, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int filledEllipseColor(IntPtr renderer, short x, short y, short rx, short ry, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int filledEllipseRGBA(IntPtr renderer, short x, short y, short rx, short ry, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int pieColor(IntPtr renderer, short x, short y, short rad, short start, short end, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int pieRGBA(IntPtr renderer, short x, short y, short rad, short start, short end, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int filledPieColor(IntPtr renderer, short x, short y, short rad, short start, short end, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int filledPieRGBA(IntPtr renderer, short x, short y, short rad, short start, short end, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int trigonColor(IntPtr renderer, short x1, short y1, short x2, short y2, short x3, short y3, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int trigonRGBA(IntPtr renderer, short x1, short y1, short x2, short y2, short x3, short y3, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int aatrigonColor(IntPtr renderer, short x1, short y1, short x2, short y2, short x3, short y3, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int aatrigonRGBA(IntPtr renderer, short x1, short y1, short x2, short y2, short x3, short y3, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int filledTrigonColor(IntPtr renderer, short x1, short y1, short x2, short y2, short x3, short y3, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int filledTrigonRGBA(IntPtr renderer, short x1, short y1, short x2, short y2, short x3, short y3, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int polygonColor(IntPtr renderer, [In] short[] vx, [In] short[] vy, int n, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int polygonRGBA(IntPtr renderer, [In] short[] vx, [In] short[] vy, int n, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int aapolygonColor(IntPtr renderer, [In] short[] vx, [In] short[] vy, int n, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int aapolygonRGBA(IntPtr renderer, [In] short[] vx, [In] short[] vy, int n, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int filledPolygonColor(IntPtr renderer, [In] short[] vx, [In] short[] vy, int n, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int filledPolygonRGBA(IntPtr renderer, [In] short[] vx, [In] short[] vy, int n, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int texturedPolygon(IntPtr renderer, [In] short[] vx, [In] short[] vy, int n, IntPtr texture, int texture_dx, int texture_dy);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int bezierColor(IntPtr renderer, [In] short[] vx, [In] short[] vy, int n, int s, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int bezierRGBA(IntPtr renderer, [In] short[] vx, [In] short[] vy, int n, int s, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void gfxPrimitivesSetFont([In] byte[] fontdata, uint cw, uint ch);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void gfxPrimitivesSetFontRotation(uint rotation);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int characterColor(IntPtr renderer, short x, short y, char c, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int characterRGBA(IntPtr renderer, short x, short y, char c, byte r, byte g, byte b, byte a);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int stringColor(IntPtr renderer, short x, short y, string s, uint color);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int stringRGBA(IntPtr renderer, short x, short y, string s, byte r, byte g, byte b, byte a);
#endregion
#region SDL2_rotozoom.h
public const int SMOOTHING_OFF = 0;
public const int SMOOTHING_ON = 1;
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr rotozoomSurface(IntPtr src, double angle, double zoom, int smooth);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr rotozoomSurfaceXY(IntPtr src, double angle, double zoomx, double zoomy, int smooth);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void rotozoomSurfaceSize(int width, int height, double angle, double zoom, out int dstwidth, out int dstheight);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void rotozoomSurfaceSizeXY(int width, int height, double angle, double zoomx, double zoomy, out int dstwidth, out int dstheight);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr zoomSurface(IntPtr src, double zoomx, double zoomy, int smooth);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void zoomSurfaceSize(int width, int height, double zoomx, double zoomy, out int dstwidth, out int dstheight);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr shrinkSurface(IntPtr src, int factorx, int factory);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr rotateSurface90Degrees(IntPtr src, int numClockwiseTurns);
#endregion
#region SDL2_framerate.h
public const int FPS_UPPER_LIMIT = 200;
public const int FPS_LOWER_LIMIT = 1;
public const int FPS_DEFAULT = 30;
[StructLayout(LayoutKind.Sequential)]
public struct FPSmanager
{
public uint framecount;
public float rateticks;
public uint baseticks;
public uint lastticks;
public uint rate;
}
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void SDL_initFramerate(ref FPSmanager manager);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_setFramerate(ref FPSmanager manager, uint rate);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_getFramerate(ref FPSmanager manager);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_getFramecount(ref FPSmanager manager);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern uint SDL_framerateDelay(ref FPSmanager manager);
#endregion
#region SDL2_imageFilter.h
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterMMXdetect();
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void SDL_imageFilterMMXoff();
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void SDL_imageFilterMMXon();
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterAdd([In] byte[] src1, [In] byte[] src2, [Out] byte[] dest, uint length);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterMean([In] byte[] src1, [In] byte[] src2, [Out] byte[] dest, uint length);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterSub([In] byte[] src1, [In] byte[] src2, [Out] byte[] dest, uint length);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterAbsDiff([In] byte[] src1, [In] byte[] src2, [Out] byte[] dest, uint length);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterMult([In] byte[] src1, [In] byte[] src2, [Out] byte[] dest, uint length);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterMultNor([In] byte[] src1, [In] byte[] src2, [Out] byte[] dest, uint length);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterMultDivby2([In] byte[] src1, [In] byte[] src2, [Out] byte[] dest, uint length);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterMultDivby4([In] byte[] src1, [In] byte[] src2, [Out] byte[] dest, uint length);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterBitAnd([In] byte[] src1, [In] byte[] src2, [Out] byte[] dest, uint length);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterBitOr([In] byte[] src1, [In] byte[] src2, [Out] byte[] dest, uint length);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterDiv([In] byte[] src1, [In] byte[] src2, [Out] byte[] dest, uint length);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterBitNegation([In] byte[] src1, [Out] byte[] dest, uint length);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterAddByte([In] byte[] src1, [Out] byte[] dest, uint length, byte c);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterAddUint([In] byte[] src1, [Out] byte[] dest, uint length, uint c);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterAddByteToHalf([In] byte[] src1, [Out] byte[] dest, uint length, byte c);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterSubByte([In] byte[] src1, [Out] byte[] dest, uint length, byte c);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterSubUint([In] byte[] src1, [Out] byte[] dest, uint length, uint c);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterShiftRight([In] byte[] src1, [Out] byte[] dest, uint length, byte n);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterShiftRightUint([In] byte[] src1, [Out] byte[] dest, uint length, byte n);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterMultByByte([In] byte[] src1, [Out] byte[] dest, uint length, byte c);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterShiftRightAndMultByByte([In] byte[] src1, [Out] byte[] dest, uint length, byte n, byte c);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterShiftLeftByte([In] byte[] src1, [Out] byte[] dest, uint length, byte n);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterShiftLeftUint([In] byte[] src1, [Out] byte[] dest, uint length, byte n);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterShiftLeft([In] byte[] src1, [Out] byte[] dest, uint length, byte n);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterBinarizeUsingThreshold([In] byte[] src1, [Out] byte[] dest, uint length, byte t);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterClipToRange([In] byte[] src1, [Out] byte[] dest, uint length, byte tmin, byte tmax);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_imageFilterNormalizeLinear([In] byte[] src1, [Out] byte[] dest, uint length, int cmin, int cmax, int nmin, int nmax);
#endregion
}
}

317
src/SDL2_image.cs Normal file
View File

@ -0,0 +1,317 @@
#region License
/* SDL2# - C# Wrapper for SDL2
*
* Copyright (c) 2013-2021 Ethan Lee.
*
* 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.
*
* Ethan "flibitijibibo" Lee <flibitijibibo@flibitijibibo.com>
*
*/
#endregion
#region Using Statements
using System;
using System.Runtime.InteropServices;
#endregion
namespace SDL2
{
public static class SDL_image
{
#region SDL2# Variables
/* Used by DllImport to load the native library. */
private const string nativeLibName = "SDL2_image";
#endregion
#region SDL_image.h
/* Similar to the headers, this is the version we're expecting to be
* running with. You will likely want to check this somewhere in your
* program!
*/
public const int SDL_IMAGE_MAJOR_VERSION = 2;
public const int SDL_IMAGE_MINOR_VERSION = 0;
public const int SDL_IMAGE_PATCHLEVEL = 6;
[Flags]
public enum IMG_InitFlags
{
IMG_INIT_JPG = 0x00000001,
IMG_INIT_PNG = 0x00000002,
IMG_INIT_TIF = 0x00000004,
IMG_INIT_WEBP = 0x00000008
}
public static void SDL_IMAGE_VERSION(out SDL.SDL_version X)
{
X.major = SDL_IMAGE_MAJOR_VERSION;
X.minor = SDL_IMAGE_MINOR_VERSION;
X.patch = SDL_IMAGE_PATCHLEVEL;
}
[DllImport(nativeLibName, EntryPoint = "IMG_Linked_Version", CallingConvention = CallingConvention.Cdecl)]
private static extern IntPtr INTERNAL_IMG_Linked_Version();
public static SDL.SDL_version IMG_Linked_Version()
{
SDL.SDL_version result;
IntPtr result_ptr = INTERNAL_IMG_Linked_Version();
result = (SDL.SDL_version) Marshal.PtrToStructure(
result_ptr,
typeof(SDL.SDL_version)
);
return result;
}
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int IMG_Init(IMG_InitFlags flags);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void IMG_Quit();
/* IntPtr refers to an SDL_Surface* */
[DllImport(nativeLibName, EntryPoint = "IMG_Load", CallingConvention = CallingConvention.Cdecl)]
private static extern unsafe IntPtr INTERNAL_IMG_Load(
byte* file
);
public static unsafe IntPtr IMG_Load(string file)
{
byte* utf8File = SDL.Utf8EncodeHeap(file);
IntPtr handle = INTERNAL_IMG_Load(
utf8File
);
Marshal.FreeHGlobal((IntPtr) utf8File);
return handle;
}
/* src refers to an SDL_RWops*, IntPtr to an SDL_Surface* */
/* THIS IS A PUBLIC RWops FUNCTION! */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr IMG_Load_RW(
IntPtr src,
int freesrc
);
/* src refers to an SDL_RWops*, IntPtr to an SDL_Surface* */
/* THIS IS A PUBLIC RWops FUNCTION! */
[DllImport(nativeLibName, EntryPoint = "IMG_LoadTyped_RW", CallingConvention = CallingConvention.Cdecl)]
private static extern unsafe IntPtr INTERNAL_IMG_LoadTyped_RW(
IntPtr src,
int freesrc,
byte* type
);
public static unsafe IntPtr IMG_LoadTyped_RW(
IntPtr src,
int freesrc,
string type
) {
int utf8TypeBufSize = SDL.Utf8Size(type);
byte* utf8Type = stackalloc byte[utf8TypeBufSize];
return INTERNAL_IMG_LoadTyped_RW(
src,
freesrc,
SDL.Utf8Encode(type, utf8Type, utf8TypeBufSize)
);
}
/* IntPtr refers to an SDL_Texture*, renderer to an SDL_Renderer* */
[DllImport(nativeLibName, EntryPoint = "IMG_LoadTexture", CallingConvention = CallingConvention.Cdecl)]
private static extern unsafe IntPtr INTERNAL_IMG_LoadTexture(
IntPtr renderer,
byte* file
);
public static unsafe IntPtr IMG_LoadTexture(
IntPtr renderer,
string file
) {
byte* utf8File = SDL.Utf8EncodeHeap(file);
IntPtr handle = INTERNAL_IMG_LoadTexture(
renderer,
utf8File
);
Marshal.FreeHGlobal((IntPtr) utf8File);
return handle;
}
/* renderer refers to an SDL_Renderer*.
* src refers to an SDL_RWops*.
* IntPtr to an SDL_Texture*.
*/
/* THIS IS A PUBLIC RWops FUNCTION! */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr IMG_LoadTexture_RW(
IntPtr renderer,
IntPtr src,
int freesrc
);
/* renderer refers to an SDL_Renderer*.
* src refers to an SDL_RWops*.
* IntPtr to an SDL_Texture*.
*/
/* THIS IS A PUBLIC RWops FUNCTION! */
[DllImport(nativeLibName, EntryPoint = "IMG_LoadTextureTyped_RW", CallingConvention = CallingConvention.Cdecl)]
private static extern unsafe IntPtr INTERNAL_IMG_LoadTextureTyped_RW(
IntPtr renderer,
IntPtr src,
int freesrc,
byte* type
);
public static unsafe IntPtr IMG_LoadTextureTyped_RW(
IntPtr renderer,
IntPtr src,
int freesrc,
string type
) {
byte* utf8Type = SDL.Utf8EncodeHeap(type);
IntPtr handle = INTERNAL_IMG_LoadTextureTyped_RW(
renderer,
src,
freesrc,
utf8Type
);
Marshal.FreeHGlobal((IntPtr) utf8Type);
return handle;
}
/* IntPtr refers to an SDL_Surface* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr IMG_ReadXPMFromArray(
[In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPStr)]
string[] xpm
);
/* surface refers to an SDL_Surface* */
[DllImport(nativeLibName, EntryPoint = "IMG_SavePNG", CallingConvention = CallingConvention.Cdecl)]
private static extern unsafe int INTERNAL_IMG_SavePNG(
IntPtr surface,
byte* file
);
public static unsafe int IMG_SavePNG(IntPtr surface, string file)
{
byte* utf8File = SDL.Utf8EncodeHeap(file);
int result = INTERNAL_IMG_SavePNG(
surface,
utf8File
);
Marshal.FreeHGlobal((IntPtr) utf8File);
return result;
}
/* surface refers to an SDL_Surface*, dst to an SDL_RWops* */
/* THIS IS A PUBLIC RWops FUNCTION! */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int IMG_SavePNG_RW(
IntPtr surface,
IntPtr dst,
int freedst
);
/* surface refers to an SDL_Surface* */
[DllImport(nativeLibName, EntryPoint = "IMG_SaveJPG", CallingConvention = CallingConvention.Cdecl)]
private static extern unsafe int INTERNAL_IMG_SaveJPG(
IntPtr surface,
byte* file,
int quality
);
public static unsafe int IMG_SaveJPG(IntPtr surface, string file, int quality)
{
byte* utf8File = SDL.Utf8EncodeHeap(file);
int result = INTERNAL_IMG_SaveJPG(
surface,
utf8File,
quality
);
Marshal.FreeHGlobal((IntPtr) utf8File);
return result;
}
/* surface refers to an SDL_Surface*, dst to an SDL_RWops* */
/* THIS IS A PUBLIC RWops FUNCTION! */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int IMG_SaveJPG_RW(
IntPtr surface,
IntPtr dst,
int freedst,
int quality
);
public static string IMG_GetError()
{
return SDL.SDL_GetError();
}
public static void IMG_SetError(string fmtAndArglist)
{
SDL.SDL_SetError(fmtAndArglist);
}
#region Animated Image Support
/* This region is only available in 2.0.6 or higher. */
public struct IMG_Animation
{
public int w;
public int h;
public IntPtr frames; /* SDL_Surface** */
public IntPtr delays; /* int* */
}
/* IntPtr refers to an IMG_Animation* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr IMG_LoadAnimation(
[In()] [MarshalAs(UnmanagedType.LPStr)]
string file
);
/* IntPtr refers to an IMG_Animation*, src to an SDL_RWops* */
/* THIS IS A PUBLIC RWops FUNCTION! */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr IMG_LoadAnimation_RW(
IntPtr src,
int freesrc
);
/* IntPtr refers to an IMG_Animation*, src to an SDL_RWops* */
/* THIS IS A PUBLIC RWops FUNCTION! */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr IMG_LoadAnimationTyped_RW(
IntPtr src,
int freesrc,
[In()] [MarshalAs(UnmanagedType.LPStr)]
string type
);
/* anim refers to an IMG_Animation* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void IMG_FreeAnimation(IntPtr anim);
/* IntPtr refers to an IMG_Animation*, src to an SDL_RWops* */
/* THIS IS A PUBLIC RWops FUNCTION! */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr IMG_LoadGIFAnimation_RW(IntPtr src);
#endregion
#endregion
}
}

666
src/SDL2_mixer.cs Normal file
View File

@ -0,0 +1,666 @@
#region License
/* SDL2# - C# Wrapper for SDL2
*
* Copyright (c) 2013-2021 Ethan Lee.
*
* 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.
*
* Ethan "flibitijibibo" Lee <flibitijibibo@flibitijibibo.com>
*
*/
#endregion
#region Using Statements
using System;
using System.Runtime.InteropServices;
#endregion
namespace SDL2
{
public static class SDL_mixer
{
#region SDL2# Variables
/* Used by DllImport to load the native library. */
private const string nativeLibName = "SDL2_mixer";
#endregion
#region SDL_mixer.h
/* Similar to the headers, this is the version we're expecting to be
* running with. You will likely want to check this somewhere in your
* program!
*/
public const int SDL_MIXER_MAJOR_VERSION = 2;
public const int SDL_MIXER_MINOR_VERSION = 0;
public const int SDL_MIXER_PATCHLEVEL = 5;
/* In C, you can redefine this value before including SDL_mixer.h.
* We're not going to allow this in SDL2#, since the value of this
* variable is persistent and not dependent on preprocessor ordering.
*/
public const int MIX_CHANNELS = 8;
public static readonly int MIX_DEFAULT_FREQUENCY = 44100;
public static readonly ushort MIX_DEFAULT_FORMAT =
BitConverter.IsLittleEndian ? SDL.AUDIO_S16LSB : SDL.AUDIO_S16MSB;
public static readonly int MIX_DEFAULT_CHANNELS = 2;
public static readonly byte MIX_MAX_VOLUME = 128;
[Flags]
public enum MIX_InitFlags
{
MIX_INIT_FLAC = 0x00000001,
MIX_INIT_MOD = 0x00000002,
MIX_INIT_MP3 = 0x00000008,
MIX_INIT_OGG = 0x00000010,
MIX_INIT_MID = 0x00000020,
MIX_INIT_OPUS = 0x00000040
}
public struct MIX_Chunk
{
public int allocated;
public IntPtr abuf; /* Uint8* */
public uint alen;
public byte volume;
}
public enum Mix_Fading
{
MIX_NO_FADING,
MIX_FADING_OUT,
MIX_FADING_IN
}
public enum Mix_MusicType
{
MUS_NONE,
MUS_CMD,
MUS_WAV,
MUS_MOD,
MUS_MID,
MUS_OGG,
MUS_MP3,
MUS_MP3_MAD_UNUSED,
MUS_FLAC,
MUS_MODPLUG_UNUSED,
MUS_OPUS
}
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate void MixFuncDelegate(
IntPtr udata, // void*
IntPtr stream, // Uint8*
int len
);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate void Mix_EffectFunc_t(
int chan,
IntPtr stream, // void*
int len,
IntPtr udata // void*
);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate void Mix_EffectDone_t(
int chan,
IntPtr udata // void*
);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate void MusicFinishedDelegate();
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate void ChannelFinishedDelegate(int channel);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate int SoundFontDelegate(
IntPtr a, // const char*
IntPtr b // void*
);
public static void SDL_MIXER_VERSION(out SDL.SDL_version X)
{
X.major = SDL_MIXER_MAJOR_VERSION;
X.minor = SDL_MIXER_MINOR_VERSION;
X.patch = SDL_MIXER_PATCHLEVEL;
}
[DllImport(nativeLibName, EntryPoint = "MIX_Linked_Version", CallingConvention = CallingConvention.Cdecl)]
private static extern IntPtr INTERNAL_MIX_Linked_Version();
public static SDL.SDL_version MIX_Linked_Version()
{
SDL.SDL_version result;
IntPtr result_ptr = INTERNAL_MIX_Linked_Version();
result = (SDL.SDL_version) Marshal.PtrToStructure(
result_ptr,
typeof(SDL.SDL_version)
);
return result;
}
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_Init(MIX_InitFlags flags);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void Mix_Quit();
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_OpenAudio(
int frequency,
ushort format,
int channels,
int chunksize
);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_AllocateChannels(int numchans);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_QuerySpec(
out int frequency,
out ushort format,
out int channels
);
/* src refers to an SDL_RWops*, IntPtr to a Mix_Chunk* */
/* THIS IS A PUBLIC RWops FUNCTION! */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr Mix_LoadWAV_RW(
IntPtr src,
int freesrc
);
/* IntPtr refers to a Mix_Chunk* */
/* This is an RWops macro in the C header. */
public static IntPtr Mix_LoadWAV(string file)
{
IntPtr rwops = SDL.SDL_RWFromFile(file, "rb");
return Mix_LoadWAV_RW(rwops, 1);
}
/* IntPtr refers to a Mix_Music* */
[DllImport(nativeLibName, EntryPoint = "Mix_LoadMUS", CallingConvention = CallingConvention.Cdecl)]
private static extern unsafe IntPtr INTERNAL_Mix_LoadMUS(
byte* file
);
public static unsafe IntPtr Mix_LoadMUS(string file)
{
byte* utf8File = SDL.Utf8EncodeHeap(file);
IntPtr handle = INTERNAL_Mix_LoadMUS(
utf8File
);
Marshal.FreeHGlobal((IntPtr) utf8File);
return handle;
}
/* IntPtr refers to a Mix_Chunk* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr Mix_QuickLoad_WAV(
[In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U1)]
byte[] mem
);
/* IntPtr refers to a Mix_Chunk* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr Mix_QuickLoad_RAW(
[In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U1, SizeParamIndex = 1)]
byte[] mem,
uint len
);
/* chunk refers to a Mix_Chunk* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void Mix_FreeChunk(IntPtr chunk);
/* music refers to a Mix_Music* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void Mix_FreeMusic(IntPtr music);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_GetNumChunkDecoders();
[DllImport(nativeLibName, EntryPoint = "Mix_GetChunkDecoder", CallingConvention = CallingConvention.Cdecl)]
private static extern IntPtr INTERNAL_Mix_GetChunkDecoder(int index);
public static string Mix_GetChunkDecoder(int index)
{
return SDL.UTF8_ToManaged(
INTERNAL_Mix_GetChunkDecoder(index)
);
}
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_GetNumMusicDecoders();
[DllImport(nativeLibName, EntryPoint = "Mix_GetMusicDecoder", CallingConvention = CallingConvention.Cdecl)]
private static extern IntPtr INTERNAL_Mix_GetMusicDecoder(int index);
public static string Mix_GetMusicDecoder(int index)
{
return SDL.UTF8_ToManaged(
INTERNAL_Mix_GetMusicDecoder(index)
);
}
/* music refers to a Mix_Music* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern Mix_MusicType Mix_GetMusicType(IntPtr music);
/* music refers to a Mix_Music*
* Only available in 2.0.5 or higher.
*/
[DllImport(nativeLibName, EntryPoint = "Mix_GetMusicTitle", CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr INTERNAL_Mix_GetMusicTitle(IntPtr music);
public static string Mix_GetMusicTitle(IntPtr music)
{
return SDL.UTF8_ToManaged(
INTERNAL_Mix_GetMusicTitle(music)
);
}
/* music refers to a Mix_Music*
* Only available in 2.0.5 or higher.
*/
[DllImport(nativeLibName, EntryPoint = "Mix_GetMusicTitleTag", CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr INTERNAL_Mix_GetMusicTitleTag(IntPtr music);
public static string Mix_GetMusicTitleTag(IntPtr music)
{
return SDL.UTF8_ToManaged(
INTERNAL_Mix_GetMusicTitleTag(music)
);
}
/* music refers to a Mix_Music*
* Only available in 2.0.5 or higher.
*/
[DllImport(nativeLibName, EntryPoint = "Mix_GetMusicArtistTag", CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr INTERNAL_Mix_GetMusicArtistTag(IntPtr music);
public static string Mix_GetMusicArtistTag(IntPtr music)
{
return SDL.UTF8_ToManaged(
INTERNAL_Mix_GetMusicArtistTag(music)
);
}
/* music refers to a Mix_Music*
* Only available in 2.0.5 or higher.
*/
[DllImport(nativeLibName, EntryPoint = "Mix_GetMusicAlbumTag", CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr INTERNAL_Mix_GetMusicAlbumTag(IntPtr music);
public static string Mix_GetMusicAlbumTag(IntPtr music)
{
return SDL.UTF8_ToManaged(
INTERNAL_Mix_GetMusicAlbumTag(music)
);
}
/* music refers to a Mix_Music*
* Only available in 2.0.5 or higher.
*/
[DllImport(nativeLibName, EntryPoint = "Mix_GetMusicCopyrightTag", CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr INTERNAL_Mix_GetMusicCopyrightTag(IntPtr music);
public static string Mix_GetMusicCopyrightTag(IntPtr music)
{
return SDL.UTF8_ToManaged(
INTERNAL_Mix_GetMusicCopyrightTag(music)
);
}
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void Mix_SetPostMix(
MixFuncDelegate mix_func,
IntPtr arg // void*
);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void Mix_HookMusic(
MixFuncDelegate mix_func,
IntPtr arg // void*
);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void Mix_HookMusicFinished(
MusicFinishedDelegate music_finished
);
/* IntPtr refers to a void* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr Mix_GetMusicHookData();
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void Mix_ChannelFinished(
ChannelFinishedDelegate channel_finished
);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_RegisterEffect(
int chan,
Mix_EffectFunc_t f,
Mix_EffectDone_t d,
IntPtr arg // void*
);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_UnregisterEffect(
int channel,
Mix_EffectFunc_t f
);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_UnregisterAllEffects(int channel);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_SetPanning(
int channel,
byte left,
byte right
);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_SetPosition(
int channel,
short angle,
byte distance
);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_SetDistance(int channel, byte distance);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_SetReverseStereo(int channel, int flip);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_ReserveChannels(int num);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_GroupChannel(int which, int tag);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_GroupChannels(int from, int to, int tag);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_GroupAvailable(int tag);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_GroupCount(int tag);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_GroupOldest(int tag);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_GroupNewer(int tag);
/* chunk refers to a Mix_Chunk* */
public static int Mix_PlayChannel(
int channel,
IntPtr chunk,
int loops
) {
return Mix_PlayChannelTimed(channel, chunk, loops, -1);
}
/* chunk refers to a Mix_Chunk* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_PlayChannelTimed(
int channel,
IntPtr chunk,
int loops,
int ticks
);
/* music refers to a Mix_Music* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_PlayMusic(IntPtr music, int loops);
/* music refers to a Mix_Music* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_FadeInMusic(
IntPtr music,
int loops,
int ms
);
/* music refers to a Mix_Music* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_FadeInMusicPos(
IntPtr music,
int loops,
int ms,
double position
);
/* chunk refers to a Mix_Chunk* */
public static int Mix_FadeInChannel(
int channel,
IntPtr chunk,
int loops,
int ms
) {
return Mix_FadeInChannelTimed(channel, chunk, loops, ms, -1);
}
/* chunk refers to a Mix_Chunk* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_FadeInChannelTimed(
int channel,
IntPtr chunk,
int loops,
int ms,
int ticks
);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_Volume(int channel, int volume);
/* chunk refers to a Mix_Chunk* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_VolumeChunk(
IntPtr chunk,
int volume
);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_VolumeMusic(int volume);
/* music refers to a Mix_Music*
* Only available in 2.0.5 or higher.
*/
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_GetVolumeMusicStream(IntPtr music);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_HaltChannel(int channel);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_HaltGroup(int tag);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_HaltMusic();
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_ExpireChannel(int channel, int ticks);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_FadeOutChannel(int which, int ms);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_FadeOutGroup(int tag, int ms);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_FadeOutMusic(int ms);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern Mix_Fading Mix_FadingMusic();
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern Mix_Fading Mix_FadingChannel(int which);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void Mix_Pause(int channel);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void Mix_Resume(int channel);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_Paused(int channel);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void Mix_PauseMusic();
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void Mix_ResumeMusic();
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void Mix_RewindMusic();
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_PausedMusic();
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_SetMusicPosition(double position);
/* music refers to a Mix_Music*
* Only available in 2.0.5 or higher.
*/
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern double Mix_GetMusicPosition(IntPtr music);
/* music refers to a Mix_Music*
* Only available in 2.0.5 or higher.
*/
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern double Mix_MusicDuration(IntPtr music);
/* music refers to a Mix_Music*
* Only available in 2.0.5 or higher.
*/
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern double Mix_GetMusicLoopStartTime(IntPtr music);
/* music refers to a Mix_Music*
* Only available in 2.0.5 or higher.
*/
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern double Mix_GetMusicLoopEndTime(IntPtr music);
/* music refers to a Mix_Music*
* Only available in 2.0.5 or higher.
*/
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern double Mix_GetMusicLoopLengthTime(IntPtr music);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_Playing(int channel);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_PlayingMusic();
[DllImport(nativeLibName, EntryPoint = "Mix_SetMusicCMD", CallingConvention = CallingConvention.Cdecl)]
private static extern unsafe int INTERNAL_Mix_SetMusicCMD(
byte* command
);
public static unsafe int Mix_SetMusicCMD(string command)
{
byte* utf8Cmd = SDL.Utf8EncodeHeap(command);
int result = INTERNAL_Mix_SetMusicCMD(
utf8Cmd
);
Marshal.FreeHGlobal((IntPtr) utf8Cmd);
return result;
}
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_SetSynchroValue(int value);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_GetSynchroValue();
[DllImport(nativeLibName, EntryPoint = "Mix_SetSoundFonts", CallingConvention = CallingConvention.Cdecl)]
private static extern unsafe int INTERNAL_Mix_SetSoundFonts(
byte* paths
);
public static unsafe int Mix_SetSoundFonts(string paths)
{
byte* utf8Paths = SDL.Utf8EncodeHeap(paths);
int result = INTERNAL_Mix_SetSoundFonts(
utf8Paths
);
Marshal.FreeHGlobal((IntPtr) utf8Paths);
return result;
}
[DllImport(nativeLibName, EntryPoint = "Mix_GetSoundFonts", CallingConvention = CallingConvention.Cdecl)]
private static extern IntPtr INTERNAL_Mix_GetSoundFonts();
public static string Mix_GetSoundFonts()
{
return SDL.UTF8_ToManaged(
INTERNAL_Mix_GetSoundFonts()
);
}
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_EachSoundFont(
SoundFontDelegate function,
IntPtr data // void*
);
/* Only available in 2.0.5 or later. */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int Mix_SetTimidityCfg(
[In()] [MarshalAs(UnmanagedType.LPStr)]
string path
);
/* Only available in 2.0.5 or later. */
[DllImport(nativeLibName, EntryPoint = "Mix_GetTimidityCfg", CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr INTERNAL_Mix_GetTimidityCfg();
public static string Mix_GetTimidityCfg()
{
return SDL.UTF8_ToManaged(
INTERNAL_Mix_GetTimidityCfg()
);
}
/* IntPtr refers to a Mix_Chunk* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr Mix_GetChunk(int channel);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void Mix_CloseAudio();
public static string Mix_GetError()
{
return SDL.SDL_GetError();
}
public static void Mix_SetError(string fmtAndArglist)
{
SDL.SDL_SetError(fmtAndArglist);
}
public static void Mix_ClearError()
{
SDL.SDL_ClearError();
}
#endregion
}
}

769
src/SDL2_ttf.cs Normal file
View File

@ -0,0 +1,769 @@
#region License
/* SDL2# - C# Wrapper for SDL2
*
* Copyright (c) 2013-2021 Ethan Lee.
*
* 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.
*
* Ethan "flibitijibibo" Lee <flibitijibibo@flibitijibibo.com>
*
*/
#endregion
#region Using Statements
using System;
using System.Runtime.InteropServices;
#endregion
namespace SDL2
{
public static class SDL_ttf
{
#region SDL2# Variables
/* Used by DllImport to load the native library. */
private const string nativeLibName = "SDL2_ttf";
#endregion
#region SDL_ttf.h
/* Similar to the headers, this is the version we're expecting to be
* running with. You will likely want to check this somewhere in your
* program!
*/
public const int SDL_TTF_MAJOR_VERSION = 2;
public const int SDL_TTF_MINOR_VERSION = 0;
public const int SDL_TTF_PATCHLEVEL = 16;
public const int UNICODE_BOM_NATIVE = 0xFEFF;
public const int UNICODE_BOM_SWAPPED = 0xFFFE;
public const int TTF_STYLE_NORMAL = 0x00;
public const int TTF_STYLE_BOLD = 0x01;
public const int TTF_STYLE_ITALIC = 0x02;
public const int TTF_STYLE_UNDERLINE = 0x04;
public const int TTF_STYLE_STRIKETHROUGH = 0x08;
public const int TTF_HINTING_NORMAL = 0;
public const int TTF_HINTING_LIGHT = 1;
public const int TTF_HINTING_MONO = 2;
public const int TTF_HINTING_NONE = 3;
public const int TTF_HINTING_LIGHT_SUBPIXEL = 4; /* >= 2.0.16 */
public static void SDL_TTF_VERSION(out SDL.SDL_version X)
{
X.major = SDL_TTF_MAJOR_VERSION;
X.minor = SDL_TTF_MINOR_VERSION;
X.patch = SDL_TTF_PATCHLEVEL;
}
[DllImport(nativeLibName, EntryPoint = "TTF_LinkedVersion", CallingConvention = CallingConvention.Cdecl)]
private static extern IntPtr INTERNAL_TTF_LinkedVersion();
public static SDL.SDL_version TTF_LinkedVersion()
{
SDL.SDL_version result;
IntPtr result_ptr = INTERNAL_TTF_LinkedVersion();
result = (SDL.SDL_version) Marshal.PtrToStructure(
result_ptr,
typeof(SDL.SDL_version)
);
return result;
}
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void TTF_ByteSwappedUNICODE(int swapped);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_Init();
/* IntPtr refers to a TTF_Font* */
[DllImport(nativeLibName, EntryPoint = "TTF_OpenFont", CallingConvention = CallingConvention.Cdecl)]
private static extern unsafe IntPtr INTERNAL_TTF_OpenFont(
byte* file,
int ptsize
);
public static unsafe IntPtr TTF_OpenFont(string file, int ptsize)
{
byte* utf8File = SDL.Utf8EncodeHeap(file);
IntPtr handle = INTERNAL_TTF_OpenFont(
utf8File,
ptsize
);
Marshal.FreeHGlobal((IntPtr) utf8File);
return handle;
}
/* src refers to an SDL_RWops*, IntPtr to a TTF_Font* */
/* THIS IS A PUBLIC RWops FUNCTION! */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr TTF_OpenFontRW(
IntPtr src,
int freesrc,
int ptsize
);
/* IntPtr refers to a TTF_Font* */
[DllImport(nativeLibName, EntryPoint = "TTF_OpenFontIndex", CallingConvention = CallingConvention.Cdecl)]
private static extern unsafe IntPtr INTERNAL_TTF_OpenFontIndex(
byte* file,
int ptsize,
long index
);
public static unsafe IntPtr TTF_OpenFontIndex(
string file,
int ptsize,
long index
) {
byte* utf8File = SDL.Utf8EncodeHeap(file);
IntPtr handle = INTERNAL_TTF_OpenFontIndex(
utf8File,
ptsize,
index
);
Marshal.FreeHGlobal((IntPtr) utf8File);
return handle;
}
/* src refers to an SDL_RWops*, IntPtr to a TTF_Font* */
/* THIS IS A PUBLIC RWops FUNCTION! */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr TTF_OpenFontIndexRW(
IntPtr src,
int freesrc,
int ptsize,
long index
);
/* font refers to a TTF_Font*
* Only available in 2.0.16 or higher.
*/
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_SetFontSize(
IntPtr font,
int ptsize
);
/* font refers to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_GetFontStyle(IntPtr font);
/* font refers to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void TTF_SetFontStyle(IntPtr font, int style);
/* font refers to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_GetFontOutline(IntPtr font);
/* font refers to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void TTF_SetFontOutline(IntPtr font, int outline);
/* font refers to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_GetFontHinting(IntPtr font);
/* font refers to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void TTF_SetFontHinting(IntPtr font, int hinting);
/* font refers to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_FontHeight(IntPtr font);
/* font refers to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_FontAscent(IntPtr font);
/* font refers to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_FontDescent(IntPtr font);
/* font refers to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_FontLineSkip(IntPtr font);
/* font refers to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_GetFontKerning(IntPtr font);
/* font refers to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void TTF_SetFontKerning(IntPtr font, int allowed);
/* font refers to a TTF_Font*.
* IntPtr is actually a C long! This ignores Win64!
*/
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr TTF_FontFaces(IntPtr font);
/* font refers to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_FontFaceIsFixedWidth(IntPtr font);
/* font refers to a TTF_Font* */
[DllImport(nativeLibName, EntryPoint = "TTF_FontFaceFamilyName", CallingConvention = CallingConvention.Cdecl)]
private static extern IntPtr INTERNAL_TTF_FontFaceFamilyName(
IntPtr font
);
public static string TTF_FontFaceFamilyName(IntPtr font)
{
return SDL.UTF8_ToManaged(
INTERNAL_TTF_FontFaceFamilyName(font)
);
}
/* font refers to a TTF_Font* */
[DllImport(nativeLibName, EntryPoint = "TTF_FontFaceStyleName", CallingConvention = CallingConvention.Cdecl)]
private static extern IntPtr INTERNAL_TTF_FontFaceStyleName(
IntPtr font
);
public static string TTF_FontFaceStyleName(IntPtr font)
{
return SDL.UTF8_ToManaged(
INTERNAL_TTF_FontFaceStyleName(font)
);
}
/* font refers to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_GlyphIsProvided(IntPtr font, ushort ch);
/* font refers to a TTF_Font*
* Only available in 2.0.16 or higher.
*/
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_GlyphIsProvided32(IntPtr font, uint ch);
/* font refers to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_GlyphMetrics(
IntPtr font,
ushort ch,
out int minx,
out int maxx,
out int miny,
out int maxy,
out int advance
);
/* font refers to a TTF_Font*
* Only available in 2.0.16 or higher.
*/
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_GlyphMetrics32(
IntPtr font,
uint ch,
out int minx,
out int maxx,
out int miny,
out int maxy,
out int advance
);
/* font refers to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_SizeText(
IntPtr font,
[In()] [MarshalAs(UnmanagedType.LPStr)]
string text,
out int w,
out int h
);
/* font refers to a TTF_Font* */
[DllImport(nativeLibName, EntryPoint = "TTF_SizeUTF8", CallingConvention = CallingConvention.Cdecl)]
public static extern unsafe int INTERNAL_TTF_SizeUTF8(
IntPtr font,
byte* text,
out int w,
out int h
);
public static unsafe int TTF_SizeUTF8(
IntPtr font,
string text,
out int w,
out int h
) {
byte* utf8Text = SDL.Utf8EncodeHeap(text);
int result = INTERNAL_TTF_SizeUTF8(
font,
utf8Text,
out w,
out h
);
Marshal.FreeHGlobal((IntPtr) utf8Text);
return result;
}
/* font refers to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_SizeUNICODE(
IntPtr font,
[In()] [MarshalAs(UnmanagedType.LPWStr)]
string text,
out int w,
out int h
);
/* font refers to a TTF_Font*
* Only available in 2.0.16 or higher.
*/
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_MeasureText(
IntPtr font,
[In()] [MarshalAs(UnmanagedType.LPStr)]
string text,
int measure_width,
out int extent,
out int count
);
/* font refers to a TTF_Font*
* Only available in 2.0.16 or higher.
*/
[DllImport(nativeLibName, EntryPoint = "TTF_MeasureUTF8", CallingConvention = CallingConvention.Cdecl)]
public static extern unsafe int INTERNAL_TTF_MeasureUTF8(
IntPtr font,
byte* text,
int measure_width,
out int extent,
out int count
);
public static unsafe int TTF_MeasureUTF8(
IntPtr font,
string text,
int measure_width,
out int extent,
out int count
) {
byte* utf8Text = SDL.Utf8EncodeHeap(text);
int result = INTERNAL_TTF_MeasureUTF8(
font,
utf8Text,
measure_width,
out extent,
out count
);
Marshal.FreeHGlobal((IntPtr) utf8Text);
return result;
}
/* font refers to a TTF_Font*
* Only available in 2.0.16 or higher.
*/
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_MeasureUNICODE(
IntPtr font,
[In()] [MarshalAs(UnmanagedType.LPWStr)]
string text,
int measure_width,
out int extent,
out int count
);
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr TTF_RenderText_Solid(
IntPtr font,
[In()] [MarshalAs(UnmanagedType.LPStr)]
string text,
SDL.SDL_Color fg
);
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */
[DllImport(nativeLibName, EntryPoint = "TTF_RenderUTF8_Solid", CallingConvention = CallingConvention.Cdecl)]
private static extern unsafe IntPtr INTERNAL_TTF_RenderUTF8_Solid(
IntPtr font,
byte* text,
SDL.SDL_Color fg
);
public static unsafe IntPtr TTF_RenderUTF8_Solid(
IntPtr font,
string text,
SDL.SDL_Color fg
) {
byte* utf8Text = SDL.Utf8EncodeHeap(text);
IntPtr result = INTERNAL_TTF_RenderUTF8_Solid(
font,
utf8Text,
fg
);
Marshal.FreeHGlobal((IntPtr) utf8Text);
return result;
}
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr TTF_RenderUNICODE_Solid(
IntPtr font,
[In()] [MarshalAs(UnmanagedType.LPWStr)]
string text,
SDL.SDL_Color fg
);
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font*
* Only available in 2.0.16 or higher.
*/
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr TTF_RenderText_Solid_Wrapped(
IntPtr font,
[In()] [MarshalAs(UnmanagedType.LPStr)]
string text,
SDL.SDL_Color fg,
uint wrapLength
);
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font*
* Only available in 2.0.16 or higher.
*/
[DllImport(nativeLibName, EntryPoint = "TTF_RenderUTF8_Solid_Wrapped", CallingConvention = CallingConvention.Cdecl)]
public static extern unsafe IntPtr INTERNAL_TTF_RenderUTF8_Solid_Wrapped(
IntPtr font,
byte* text,
SDL.SDL_Color fg,
uint wrapLength
);
public static unsafe IntPtr TTF_RenderUTF8_Solid_Wrapped(
IntPtr font,
string text,
SDL.SDL_Color fg,
uint wrapLength
) {
byte* utf8Text = SDL.Utf8EncodeHeap(text);
IntPtr result = INTERNAL_TTF_RenderUTF8_Solid_Wrapped(
font,
utf8Text,
fg,
wrapLength
);
Marshal.FreeHGlobal((IntPtr) utf8Text);
return result;
}
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font*
* Only available in 2.0.16 or higher.
*/
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr TTF_RenderUNICODE_Solid_Wrapped(
IntPtr font,
[In()] [MarshalAs(UnmanagedType.LPWStr)]
string text,
SDL.SDL_Color fg,
uint wrapLength
);
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr TTF_RenderGlyph_Solid(
IntPtr font,
ushort ch,
SDL.SDL_Color fg
);
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font*
* Only available in 2.0.16 or higher.
*/
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr TTF_RenderGlyph32_Solid(
IntPtr font,
uint ch,
SDL.SDL_Color fg
);
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr TTF_RenderText_Shaded(
IntPtr font,
[In()] [MarshalAs(UnmanagedType.LPStr)]
string text,
SDL.SDL_Color fg,
SDL.SDL_Color bg
);
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */
[DllImport(nativeLibName, EntryPoint = "TTF_RenderUTF8_Shaded", CallingConvention = CallingConvention.Cdecl)]
private static extern unsafe IntPtr INTERNAL_TTF_RenderUTF8_Shaded(
IntPtr font,
byte* text,
SDL.SDL_Color fg,
SDL.SDL_Color bg
);
public static unsafe IntPtr TTF_RenderUTF8_Shaded(
IntPtr font,
string text,
SDL.SDL_Color fg,
SDL.SDL_Color bg
) {
byte* utf8Text = SDL.Utf8EncodeHeap(text);
IntPtr result = INTERNAL_TTF_RenderUTF8_Shaded(
font,
utf8Text,
fg,
bg
);
Marshal.FreeHGlobal((IntPtr) utf8Text);
return result;
}
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr TTF_RenderUNICODE_Shaded(
IntPtr font,
[In()] [MarshalAs(UnmanagedType.LPWStr)]
string text,
SDL.SDL_Color fg,
SDL.SDL_Color bg
);
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr TTF_RenderText_Shaded_Wrapped(
IntPtr font,
[In()] [MarshalAs(UnmanagedType.LPStr)]
string text,
SDL.SDL_Color fg,
SDL.SDL_Color bg,
uint wrapLength
);
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font*
* Only available in 2.0.16 or higher.
*/
[DllImport(nativeLibName, EntryPoint = "TTF_RenderUTF8_Shaded_Wrapped", CallingConvention = CallingConvention.Cdecl)]
public static extern unsafe IntPtr INTERNAL_TTF_RenderUTF8_Shaded_Wrapped(
IntPtr font,
byte* text,
SDL.SDL_Color fg,
SDL.SDL_Color bg,
uint wrapLength
);
public static unsafe IntPtr TTF_RenderUTF8_Shaded_Wrapped(
IntPtr font,
string text,
SDL.SDL_Color fg,
SDL.SDL_Color bg,
uint wrapLength
) {
byte* utf8Text = SDL.Utf8EncodeHeap(text);
IntPtr result = INTERNAL_TTF_RenderUTF8_Shaded_Wrapped(
font,
utf8Text,
fg,
bg,
wrapLength
);
Marshal.FreeHGlobal((IntPtr) utf8Text);
return result;
}
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr TTF_RenderUNICODE_Shaded_Wrapped(
IntPtr font,
[In()] [MarshalAs(UnmanagedType.LPWStr)]
string text,
SDL.SDL_Color fg,
SDL.SDL_Color bg,
uint wrapLength
);
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr TTF_RenderGlyph_Shaded(
IntPtr font,
ushort ch,
SDL.SDL_Color fg,
SDL.SDL_Color bg
);
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font*
* Only available in 2.0.16 or higher.
*/
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr TTF_RenderGlyph32_Shaded(
IntPtr font,
uint ch,
SDL.SDL_Color fg,
SDL.SDL_Color bg
);
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr TTF_RenderText_Blended(
IntPtr font,
[In()] [MarshalAs(UnmanagedType.LPStr)]
string text,
SDL.SDL_Color fg
);
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */
[DllImport(nativeLibName, EntryPoint = "TTF_RenderUTF8_Blended", CallingConvention = CallingConvention.Cdecl)]
private static extern unsafe IntPtr INTERNAL_TTF_RenderUTF8_Blended(
IntPtr font,
byte* text,
SDL.SDL_Color fg
);
public static unsafe IntPtr TTF_RenderUTF8_Blended(
IntPtr font,
string text,
SDL.SDL_Color fg
) {
byte* utf8Text = SDL.Utf8EncodeHeap(text);
IntPtr result = INTERNAL_TTF_RenderUTF8_Blended(
font,
utf8Text,
fg
);
Marshal.FreeHGlobal((IntPtr) utf8Text);
return result;
}
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr TTF_RenderUNICODE_Blended(
IntPtr font,
[In()] [MarshalAs(UnmanagedType.LPWStr)]
string text,
SDL.SDL_Color fg
);
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr TTF_RenderText_Blended_Wrapped(
IntPtr font,
[In()] [MarshalAs(UnmanagedType.LPStr)]
string text,
SDL.SDL_Color fg,
uint wrapped
);
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */
[DllImport(nativeLibName, EntryPoint = "TTF_RenderUTF8_Blended_Wrapped", CallingConvention = CallingConvention.Cdecl)]
private static extern unsafe IntPtr INTERNAL_TTF_RenderUTF8_Blended_Wrapped(
IntPtr font,
byte* text,
SDL.SDL_Color fg,
uint wrapped
);
public static unsafe IntPtr TTF_RenderUTF8_Blended_Wrapped(
IntPtr font,
string text,
SDL.SDL_Color fg,
uint wrapped
) {
byte* utf8Text = SDL.Utf8EncodeHeap(text);
IntPtr result = INTERNAL_TTF_RenderUTF8_Blended_Wrapped(
font,
utf8Text,
fg,
wrapped
);
Marshal.FreeHGlobal((IntPtr) utf8Text);
return result;
}
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr TTF_RenderUNICODE_Blended_Wrapped(
IntPtr font,
[In()] [MarshalAs(UnmanagedType.LPWStr)]
string text,
SDL.SDL_Color fg,
uint wrapped
);
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr TTF_RenderGlyph_Blended(
IntPtr font,
ushort ch,
SDL.SDL_Color fg
);
/* IntPtr refers to an SDL_Surface*, font to a TTF_Font*
* Only available in 2.0.16 or higher.
*/
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr TTF_RenderGlyph32_Blended(
IntPtr font,
uint ch,
SDL.SDL_Color fg
);
/* Only available in 2.0.16 or higher. */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_SetDirection(int direction);
/* Only available in 2.0.16 or higher. */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_SetScript(int script);
/* font refers to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void TTF_CloseFont(IntPtr font);
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern void TTF_Quit();
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_WasInit();
/* font refers to a TTF_Font* */
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int SDL_GetFontKerningSize(
IntPtr font,
int prev_index,
int index
);
/* font refers to a TTF_Font*
* Only available in 2.0.15 or higher.
*/
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_GetFontKerningSizeGlyphs(
IntPtr font,
ushort previous_ch,
ushort ch
);
/* font refers to a TTF_Font*
* Only available in 2.0.16 or higher.
*/
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
public static extern int TTF_GetFontKerningSizeGlyphs32(
IntPtr font,
ushort previous_ch,
ushort ch
);
public static string TTF_GetError()
{
return SDL.SDL_GetError();
}
public static void TTF_SetError(string fmtAndArglist)
{
SDL.SDL_SetError(fmtAndArglist);
}
#endregion
}
}