Commit 3d52d049778be4a3663674d2fa9cb4661b8b25e6

Cameron Cawley 2022-05-19T15:38:35

Remove the '_' prefix from symbol names in Windows OpenWatcom builds

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
diff --git a/Makefile.w32 b/Makefile.w32
index 780593f..48f4e2b 100644
--- a/Makefile.w32
+++ b/Makefile.w32
@@ -11,6 +11,7 @@ DESCRIPTION = Simple DirectMedia Layer 2
 LIBHOME = .
 DLLFILE = $(LIBHOME)/$(LIBNAME).dll
 LIBFILE = $(LIBHOME)/$(LIBNAME).lib
+EXPFILE = $(LIBHOME)/$(LIBNAME).exp
 LNKFILE = $(LIBNAME).lnk
 
 INCPATH = -I"$(%WATCOM)/h/nt" -I"$(%WATCOM)/h/nt/directx" -I"$(%WATCOM)/h"
@@ -31,8 +32,9 @@ CFLAGS_STATIC=$(CFLAGS)
 # building dll:
 CFLAGS_DLL =$(CFLAGS)
 CFLAGS_DLL+= -bd
-# building SDL itself (for DECLSPEC):
-CFLAGS_DLL+= -DDLL_EXPORT
+# we override the DECLSPEC define in begin_code.h, because we are using
+# an exports file to remove the _cdecl '_' prefix from the symbol names
+CFLAGS_DLL+= -DDECLSPEC=
 
 CFLAGS_DLL+= -DSDL_BUILD_MAJOR_VERSION=$(MAJOR_VERSION)
 CFLAGS_DLL+= -DSDL_BUILD_MINOR_VERSION=$(MINOR_VERSION)
@@ -116,7 +118,7 @@ $(DLLFILE): build_dll $(OBJS) $(MOBJS) $(RCOBJS) $(LNKFILE)
 
 $(LIBFILE): $(DLLFILE)
     @echo * Creating LIB file: $@
-    wlib -q -b -n -c -pa -s -t -zld -ii -io $* $(DLLFILE)
+    wlib -q -b -n -c -pa -s -t -zld -ii -io $* @$(EXPFILE)
 
 .c.obj:
     wcc386 $(CFLAGS_DLL) -fo=$^@ $<
@@ -197,8 +199,9 @@ $(LNKFILE): Makefile.w32
     @%append $@ NAME $(DLLFILE)
     @for %i in ($(OBJS)) do @%append $@ FILE %i
     @for %i in ($(LIBS)) do @%append $@ LIB %i
+    @%append $@ EXPORT=src/dynapi/SDL2.exports
     @%append $@ OPTION QUIET
-    @%append $@ OPTION IMPF=$(LIBHOME)/$^&.exp
+    @%append $@ OPTION IMPF=$(EXPFILE)
     @%append $@ OPTION MAP=$(LIBHOME)/$^&.map
     @%append $@ OPTION DESCRIPTION '@$#libsdl org:$(VERSION)$#@$(DESCRIPTION)'
     @%append $@ OPTION ELIMINATE
diff --git a/src/dynapi/SDL2.exports b/src/dynapi/SDL2.exports
new file mode 100644
index 0000000..c1c4f29
--- /dev/null
+++ b/src/dynapi/SDL2.exports
@@ -0,0 +1,842 @@
+# Windows exports file for Watcom
+# DO NOT EDIT THIS FILE BY HAND. It is autogenerated by gendynapi.pl.
+++'_SDL_SetError'.'SDL2.dll'.'SDL_SetError'
+++'_SDL_Log'.'SDL2.dll'.'SDL_Log'
+++'_SDL_LogVerbose'.'SDL2.dll'.'SDL_LogVerbose'
+++'_SDL_LogDebug'.'SDL2.dll'.'SDL_LogDebug'
+++'_SDL_LogInfo'.'SDL2.dll'.'SDL_LogInfo'
+++'_SDL_LogWarn'.'SDL2.dll'.'SDL_LogWarn'
+++'_SDL_LogError'.'SDL2.dll'.'SDL_LogError'
+++'_SDL_LogCritical'.'SDL2.dll'.'SDL_LogCritical'
+++'_SDL_LogMessage'.'SDL2.dll'.'SDL_LogMessage'
+++'_SDL_sscanf'.'SDL2.dll'.'SDL_sscanf'
+++'_SDL_snprintf'.'SDL2.dll'.'SDL_snprintf'
+++'_SDL_CreateThread'.'SDL2.dll'.'SDL_CreateThread'
+++'_SDL_RWFromFP'.'SDL2.dll'.'SDL_RWFromFP'
+++'_SDL_RegisterApp'.'SDL2.dll'.'SDL_RegisterApp'
+++'_SDL_UnregisterApp'.'SDL2.dll'.'SDL_UnregisterApp'
+++'_SDL_Direct3D9GetAdapterIndex'.'SDL2.dll'.'SDL_Direct3D9GetAdapterIndex'
+++'_SDL_RenderGetD3D9Device'.'SDL2.dll'.'SDL_RenderGetD3D9Device'
+# ++'_SDL_iPhoneSetAnimationCallback'.'SDL2.dll'.'SDL_iPhoneSetAnimationCallback'
+# ++'_SDL_iPhoneSetEventPump'.'SDL2.dll'.'SDL_iPhoneSetEventPump'
+# ++'_SDL_AndroidGetJNIEnv'.'SDL2.dll'.'SDL_AndroidGetJNIEnv'
+# ++'_SDL_AndroidGetActivity'.'SDL2.dll'.'SDL_AndroidGetActivity'
+# ++'_SDL_AndroidGetInternalStoragePath'.'SDL2.dll'.'SDL_AndroidGetInternalStoragePath'
+# ++'_SDL_AndroidGetExternalStorageState'.'SDL2.dll'.'SDL_AndroidGetExternalStorageState'
+# ++'_SDL_AndroidGetExternalStoragePath'.'SDL2.dll'.'SDL_AndroidGetExternalStoragePath'
+++'_SDL_Init'.'SDL2.dll'.'SDL_Init'
+++'_SDL_InitSubSystem'.'SDL2.dll'.'SDL_InitSubSystem'
+++'_SDL_QuitSubSystem'.'SDL2.dll'.'SDL_QuitSubSystem'
+++'_SDL_WasInit'.'SDL2.dll'.'SDL_WasInit'
+++'_SDL_Quit'.'SDL2.dll'.'SDL_Quit'
+++'_SDL_ReportAssertion'.'SDL2.dll'.'SDL_ReportAssertion'
+++'_SDL_SetAssertionHandler'.'SDL2.dll'.'SDL_SetAssertionHandler'
+++'_SDL_GetAssertionReport'.'SDL2.dll'.'SDL_GetAssertionReport'
+++'_SDL_ResetAssertionReport'.'SDL2.dll'.'SDL_ResetAssertionReport'
+++'_SDL_AtomicTryLock'.'SDL2.dll'.'SDL_AtomicTryLock'
+++'_SDL_AtomicLock'.'SDL2.dll'.'SDL_AtomicLock'
+++'_SDL_AtomicUnlock'.'SDL2.dll'.'SDL_AtomicUnlock'
+++'_SDL_AtomicCAS'.'SDL2.dll'.'SDL_AtomicCAS'
+++'_SDL_AtomicSet'.'SDL2.dll'.'SDL_AtomicSet'
+++'_SDL_AtomicGet'.'SDL2.dll'.'SDL_AtomicGet'
+++'_SDL_AtomicAdd'.'SDL2.dll'.'SDL_AtomicAdd'
+++'_SDL_AtomicCASPtr'.'SDL2.dll'.'SDL_AtomicCASPtr'
+++'_SDL_AtomicSetPtr'.'SDL2.dll'.'SDL_AtomicSetPtr'
+++'_SDL_AtomicGetPtr'.'SDL2.dll'.'SDL_AtomicGetPtr'
+++'_SDL_GetNumAudioDrivers'.'SDL2.dll'.'SDL_GetNumAudioDrivers'
+++'_SDL_GetAudioDriver'.'SDL2.dll'.'SDL_GetAudioDriver'
+++'_SDL_AudioInit'.'SDL2.dll'.'SDL_AudioInit'
+++'_SDL_AudioQuit'.'SDL2.dll'.'SDL_AudioQuit'
+++'_SDL_GetCurrentAudioDriver'.'SDL2.dll'.'SDL_GetCurrentAudioDriver'
+++'_SDL_OpenAudio'.'SDL2.dll'.'SDL_OpenAudio'
+++'_SDL_GetNumAudioDevices'.'SDL2.dll'.'SDL_GetNumAudioDevices'
+++'_SDL_GetAudioDeviceName'.'SDL2.dll'.'SDL_GetAudioDeviceName'
+++'_SDL_OpenAudioDevice'.'SDL2.dll'.'SDL_OpenAudioDevice'
+++'_SDL_GetAudioStatus'.'SDL2.dll'.'SDL_GetAudioStatus'
+++'_SDL_GetAudioDeviceStatus'.'SDL2.dll'.'SDL_GetAudioDeviceStatus'
+++'_SDL_PauseAudio'.'SDL2.dll'.'SDL_PauseAudio'
+++'_SDL_PauseAudioDevice'.'SDL2.dll'.'SDL_PauseAudioDevice'
+++'_SDL_LoadWAV_RW'.'SDL2.dll'.'SDL_LoadWAV_RW'
+++'_SDL_FreeWAV'.'SDL2.dll'.'SDL_FreeWAV'
+++'_SDL_BuildAudioCVT'.'SDL2.dll'.'SDL_BuildAudioCVT'
+++'_SDL_ConvertAudio'.'SDL2.dll'.'SDL_ConvertAudio'
+++'_SDL_MixAudio'.'SDL2.dll'.'SDL_MixAudio'
+++'_SDL_MixAudioFormat'.'SDL2.dll'.'SDL_MixAudioFormat'
+++'_SDL_LockAudio'.'SDL2.dll'.'SDL_LockAudio'
+++'_SDL_LockAudioDevice'.'SDL2.dll'.'SDL_LockAudioDevice'
+++'_SDL_UnlockAudio'.'SDL2.dll'.'SDL_UnlockAudio'
+++'_SDL_UnlockAudioDevice'.'SDL2.dll'.'SDL_UnlockAudioDevice'
+++'_SDL_CloseAudio'.'SDL2.dll'.'SDL_CloseAudio'
+++'_SDL_CloseAudioDevice'.'SDL2.dll'.'SDL_CloseAudioDevice'
+++'_SDL_SetClipboardText'.'SDL2.dll'.'SDL_SetClipboardText'
+++'_SDL_GetClipboardText'.'SDL2.dll'.'SDL_GetClipboardText'
+++'_SDL_HasClipboardText'.'SDL2.dll'.'SDL_HasClipboardText'
+++'_SDL_GetCPUCount'.'SDL2.dll'.'SDL_GetCPUCount'
+++'_SDL_GetCPUCacheLineSize'.'SDL2.dll'.'SDL_GetCPUCacheLineSize'
+++'_SDL_HasRDTSC'.'SDL2.dll'.'SDL_HasRDTSC'
+++'_SDL_HasAltiVec'.'SDL2.dll'.'SDL_HasAltiVec'
+++'_SDL_HasMMX'.'SDL2.dll'.'SDL_HasMMX'
+++'_SDL_Has3DNow'.'SDL2.dll'.'SDL_Has3DNow'
+++'_SDL_HasSSE'.'SDL2.dll'.'SDL_HasSSE'
+++'_SDL_HasSSE2'.'SDL2.dll'.'SDL_HasSSE2'
+++'_SDL_HasSSE3'.'SDL2.dll'.'SDL_HasSSE3'
+++'_SDL_HasSSE41'.'SDL2.dll'.'SDL_HasSSE41'
+++'_SDL_HasSSE42'.'SDL2.dll'.'SDL_HasSSE42'
+++'_SDL_GetSystemRAM'.'SDL2.dll'.'SDL_GetSystemRAM'
+++'_SDL_GetError'.'SDL2.dll'.'SDL_GetError'
+++'_SDL_ClearError'.'SDL2.dll'.'SDL_ClearError'
+++'_SDL_Error'.'SDL2.dll'.'SDL_Error'
+++'_SDL_PumpEvents'.'SDL2.dll'.'SDL_PumpEvents'
+++'_SDL_PeepEvents'.'SDL2.dll'.'SDL_PeepEvents'
+++'_SDL_HasEvent'.'SDL2.dll'.'SDL_HasEvent'
+++'_SDL_HasEvents'.'SDL2.dll'.'SDL_HasEvents'
+++'_SDL_FlushEvent'.'SDL2.dll'.'SDL_FlushEvent'
+++'_SDL_FlushEvents'.'SDL2.dll'.'SDL_FlushEvents'
+++'_SDL_PollEvent'.'SDL2.dll'.'SDL_PollEvent'
+++'_SDL_WaitEvent'.'SDL2.dll'.'SDL_WaitEvent'
+++'_SDL_WaitEventTimeout'.'SDL2.dll'.'SDL_WaitEventTimeout'
+++'_SDL_PushEvent'.'SDL2.dll'.'SDL_PushEvent'
+++'_SDL_SetEventFilter'.'SDL2.dll'.'SDL_SetEventFilter'
+++'_SDL_GetEventFilter'.'SDL2.dll'.'SDL_GetEventFilter'
+++'_SDL_AddEventWatch'.'SDL2.dll'.'SDL_AddEventWatch'
+++'_SDL_DelEventWatch'.'SDL2.dll'.'SDL_DelEventWatch'
+++'_SDL_FilterEvents'.'SDL2.dll'.'SDL_FilterEvents'
+++'_SDL_EventState'.'SDL2.dll'.'SDL_EventState'
+++'_SDL_RegisterEvents'.'SDL2.dll'.'SDL_RegisterEvents'
+++'_SDL_GetBasePath'.'SDL2.dll'.'SDL_GetBasePath'
+++'_SDL_GetPrefPath'.'SDL2.dll'.'SDL_GetPrefPath'
+++'_SDL_GameControllerAddMapping'.'SDL2.dll'.'SDL_GameControllerAddMapping'
+++'_SDL_GameControllerMappingForGUID'.'SDL2.dll'.'SDL_GameControllerMappingForGUID'
+++'_SDL_GameControllerMapping'.'SDL2.dll'.'SDL_GameControllerMapping'
+++'_SDL_IsGameController'.'SDL2.dll'.'SDL_IsGameController'
+++'_SDL_GameControllerNameForIndex'.'SDL2.dll'.'SDL_GameControllerNameForIndex'
+++'_SDL_GameControllerOpen'.'SDL2.dll'.'SDL_GameControllerOpen'
+++'_SDL_GameControllerName'.'SDL2.dll'.'SDL_GameControllerName'
+++'_SDL_GameControllerGetAttached'.'SDL2.dll'.'SDL_GameControllerGetAttached'
+++'_SDL_GameControllerGetJoystick'.'SDL2.dll'.'SDL_GameControllerGetJoystick'
+++'_SDL_GameControllerEventState'.'SDL2.dll'.'SDL_GameControllerEventState'
+++'_SDL_GameControllerUpdate'.'SDL2.dll'.'SDL_GameControllerUpdate'
+++'_SDL_GameControllerGetAxisFromString'.'SDL2.dll'.'SDL_GameControllerGetAxisFromString'
+++'_SDL_GameControllerGetStringForAxis'.'SDL2.dll'.'SDL_GameControllerGetStringForAxis'
+++'_SDL_GameControllerGetBindForAxis'.'SDL2.dll'.'SDL_GameControllerGetBindForAxis'
+++'_SDL_GameControllerGetAxis'.'SDL2.dll'.'SDL_GameControllerGetAxis'
+++'_SDL_GameControllerGetButtonFromString'.'SDL2.dll'.'SDL_GameControllerGetButtonFromString'
+++'_SDL_GameControllerGetStringForButton'.'SDL2.dll'.'SDL_GameControllerGetStringForButton'
+++'_SDL_GameControllerGetBindForButton'.'SDL2.dll'.'SDL_GameControllerGetBindForButton'
+++'_SDL_GameControllerGetButton'.'SDL2.dll'.'SDL_GameControllerGetButton'
+++'_SDL_GameControllerClose'.'SDL2.dll'.'SDL_GameControllerClose'
+++'_SDL_RecordGesture'.'SDL2.dll'.'SDL_RecordGesture'
+++'_SDL_SaveAllDollarTemplates'.'SDL2.dll'.'SDL_SaveAllDollarTemplates'
+++'_SDL_SaveDollarTemplate'.'SDL2.dll'.'SDL_SaveDollarTemplate'
+++'_SDL_LoadDollarTemplates'.'SDL2.dll'.'SDL_LoadDollarTemplates'
+++'_SDL_NumHaptics'.'SDL2.dll'.'SDL_NumHaptics'
+++'_SDL_HapticName'.'SDL2.dll'.'SDL_HapticName'
+++'_SDL_HapticOpen'.'SDL2.dll'.'SDL_HapticOpen'
+++'_SDL_HapticOpened'.'SDL2.dll'.'SDL_HapticOpened'
+++'_SDL_HapticIndex'.'SDL2.dll'.'SDL_HapticIndex'
+++'_SDL_MouseIsHaptic'.'SDL2.dll'.'SDL_MouseIsHaptic'
+++'_SDL_HapticOpenFromMouse'.'SDL2.dll'.'SDL_HapticOpenFromMouse'
+++'_SDL_JoystickIsHaptic'.'SDL2.dll'.'SDL_JoystickIsHaptic'
+++'_SDL_HapticOpenFromJoystick'.'SDL2.dll'.'SDL_HapticOpenFromJoystick'
+++'_SDL_HapticClose'.'SDL2.dll'.'SDL_HapticClose'
+++'_SDL_HapticNumEffects'.'SDL2.dll'.'SDL_HapticNumEffects'
+++'_SDL_HapticNumEffectsPlaying'.'SDL2.dll'.'SDL_HapticNumEffectsPlaying'
+++'_SDL_HapticQuery'.'SDL2.dll'.'SDL_HapticQuery'
+++'_SDL_HapticNumAxes'.'SDL2.dll'.'SDL_HapticNumAxes'
+++'_SDL_HapticEffectSupported'.'SDL2.dll'.'SDL_HapticEffectSupported'
+++'_SDL_HapticNewEffect'.'SDL2.dll'.'SDL_HapticNewEffect'
+++'_SDL_HapticUpdateEffect'.'SDL2.dll'.'SDL_HapticUpdateEffect'
+++'_SDL_HapticRunEffect'.'SDL2.dll'.'SDL_HapticRunEffect'
+++'_SDL_HapticStopEffect'.'SDL2.dll'.'SDL_HapticStopEffect'
+++'_SDL_HapticDestroyEffect'.'SDL2.dll'.'SDL_HapticDestroyEffect'
+++'_SDL_HapticGetEffectStatus'.'SDL2.dll'.'SDL_HapticGetEffectStatus'
+++'_SDL_HapticSetGain'.'SDL2.dll'.'SDL_HapticSetGain'
+++'_SDL_HapticSetAutocenter'.'SDL2.dll'.'SDL_HapticSetAutocenter'
+++'_SDL_HapticPause'.'SDL2.dll'.'SDL_HapticPause'
+++'_SDL_HapticUnpause'.'SDL2.dll'.'SDL_HapticUnpause'
+++'_SDL_HapticStopAll'.'SDL2.dll'.'SDL_HapticStopAll'
+++'_SDL_HapticRumbleSupported'.'SDL2.dll'.'SDL_HapticRumbleSupported'
+++'_SDL_HapticRumbleInit'.'SDL2.dll'.'SDL_HapticRumbleInit'
+++'_SDL_HapticRumblePlay'.'SDL2.dll'.'SDL_HapticRumblePlay'
+++'_SDL_HapticRumbleStop'.'SDL2.dll'.'SDL_HapticRumbleStop'
+++'_SDL_SetHintWithPriority'.'SDL2.dll'.'SDL_SetHintWithPriority'
+++'_SDL_SetHint'.'SDL2.dll'.'SDL_SetHint'
+++'_SDL_GetHint'.'SDL2.dll'.'SDL_GetHint'
+++'_SDL_AddHintCallback'.'SDL2.dll'.'SDL_AddHintCallback'
+++'_SDL_DelHintCallback'.'SDL2.dll'.'SDL_DelHintCallback'
+++'_SDL_ClearHints'.'SDL2.dll'.'SDL_ClearHints'
+++'_SDL_NumJoysticks'.'SDL2.dll'.'SDL_NumJoysticks'
+++'_SDL_JoystickNameForIndex'.'SDL2.dll'.'SDL_JoystickNameForIndex'
+++'_SDL_JoystickOpen'.'SDL2.dll'.'SDL_JoystickOpen'
+++'_SDL_JoystickName'.'SDL2.dll'.'SDL_JoystickName'
+++'_SDL_JoystickGetDeviceGUID'.'SDL2.dll'.'SDL_JoystickGetDeviceGUID'
+++'_SDL_JoystickGetGUID'.'SDL2.dll'.'SDL_JoystickGetGUID'
+++'_SDL_JoystickGetGUIDString'.'SDL2.dll'.'SDL_JoystickGetGUIDString'
+++'_SDL_JoystickGetGUIDFromString'.'SDL2.dll'.'SDL_JoystickGetGUIDFromString'
+++'_SDL_JoystickGetAttached'.'SDL2.dll'.'SDL_JoystickGetAttached'
+++'_SDL_JoystickInstanceID'.'SDL2.dll'.'SDL_JoystickInstanceID'
+++'_SDL_JoystickNumAxes'.'SDL2.dll'.'SDL_JoystickNumAxes'
+++'_SDL_JoystickNumBalls'.'SDL2.dll'.'SDL_JoystickNumBalls'
+++'_SDL_JoystickNumHats'.'SDL2.dll'.'SDL_JoystickNumHats'
+++'_SDL_JoystickNumButtons'.'SDL2.dll'.'SDL_JoystickNumButtons'
+++'_SDL_JoystickUpdate'.'SDL2.dll'.'SDL_JoystickUpdate'
+++'_SDL_JoystickEventState'.'SDL2.dll'.'SDL_JoystickEventState'
+++'_SDL_JoystickGetAxis'.'SDL2.dll'.'SDL_JoystickGetAxis'
+++'_SDL_JoystickGetHat'.'SDL2.dll'.'SDL_JoystickGetHat'
+++'_SDL_JoystickGetBall'.'SDL2.dll'.'SDL_JoystickGetBall'
+++'_SDL_JoystickGetButton'.'SDL2.dll'.'SDL_JoystickGetButton'
+++'_SDL_JoystickClose'.'SDL2.dll'.'SDL_JoystickClose'
+++'_SDL_GetKeyboardFocus'.'SDL2.dll'.'SDL_GetKeyboardFocus'
+++'_SDL_GetKeyboardState'.'SDL2.dll'.'SDL_GetKeyboardState'
+++'_SDL_GetModState'.'SDL2.dll'.'SDL_GetModState'
+++'_SDL_SetModState'.'SDL2.dll'.'SDL_SetModState'
+++'_SDL_GetKeyFromScancode'.'SDL2.dll'.'SDL_GetKeyFromScancode'
+++'_SDL_GetScancodeFromKey'.'SDL2.dll'.'SDL_GetScancodeFromKey'
+++'_SDL_GetScancodeName'.'SDL2.dll'.'SDL_GetScancodeName'
+++'_SDL_GetScancodeFromName'.'SDL2.dll'.'SDL_GetScancodeFromName'
+++'_SDL_GetKeyName'.'SDL2.dll'.'SDL_GetKeyName'
+++'_SDL_GetKeyFromName'.'SDL2.dll'.'SDL_GetKeyFromName'
+++'_SDL_StartTextInput'.'SDL2.dll'.'SDL_StartTextInput'
+++'_SDL_IsTextInputActive'.'SDL2.dll'.'SDL_IsTextInputActive'
+++'_SDL_StopTextInput'.'SDL2.dll'.'SDL_StopTextInput'
+++'_SDL_SetTextInputRect'.'SDL2.dll'.'SDL_SetTextInputRect'
+++'_SDL_HasScreenKeyboardSupport'.'SDL2.dll'.'SDL_HasScreenKeyboardSupport'
+++'_SDL_IsScreenKeyboardShown'.'SDL2.dll'.'SDL_IsScreenKeyboardShown'
+++'_SDL_LoadObject'.'SDL2.dll'.'SDL_LoadObject'
+++'_SDL_LoadFunction'.'SDL2.dll'.'SDL_LoadFunction'
+++'_SDL_UnloadObject'.'SDL2.dll'.'SDL_UnloadObject'
+++'_SDL_LogSetAllPriority'.'SDL2.dll'.'SDL_LogSetAllPriority'
+++'_SDL_LogSetPriority'.'SDL2.dll'.'SDL_LogSetPriority'
+++'_SDL_LogGetPriority'.'SDL2.dll'.'SDL_LogGetPriority'
+++'_SDL_LogResetPriorities'.'SDL2.dll'.'SDL_LogResetPriorities'
+++'_SDL_LogMessageV'.'SDL2.dll'.'SDL_LogMessageV'
+++'_SDL_LogGetOutputFunction'.'SDL2.dll'.'SDL_LogGetOutputFunction'
+++'_SDL_LogSetOutputFunction'.'SDL2.dll'.'SDL_LogSetOutputFunction'
+++'_SDL_SetMainReady'.'SDL2.dll'.'SDL_SetMainReady'
+++'_SDL_ShowMessageBox'.'SDL2.dll'.'SDL_ShowMessageBox'
+++'_SDL_ShowSimpleMessageBox'.'SDL2.dll'.'SDL_ShowSimpleMessageBox'
+++'_SDL_GetMouseFocus'.'SDL2.dll'.'SDL_GetMouseFocus'
+++'_SDL_GetMouseState'.'SDL2.dll'.'SDL_GetMouseState'
+++'_SDL_GetRelativeMouseState'.'SDL2.dll'.'SDL_GetRelativeMouseState'
+++'_SDL_WarpMouseInWindow'.'SDL2.dll'.'SDL_WarpMouseInWindow'
+++'_SDL_SetRelativeMouseMode'.'SDL2.dll'.'SDL_SetRelativeMouseMode'
+++'_SDL_GetRelativeMouseMode'.'SDL2.dll'.'SDL_GetRelativeMouseMode'
+++'_SDL_CreateCursor'.'SDL2.dll'.'SDL_CreateCursor'
+++'_SDL_CreateColorCursor'.'SDL2.dll'.'SDL_CreateColorCursor'
+++'_SDL_CreateSystemCursor'.'SDL2.dll'.'SDL_CreateSystemCursor'
+++'_SDL_SetCursor'.'SDL2.dll'.'SDL_SetCursor'
+++'_SDL_GetCursor'.'SDL2.dll'.'SDL_GetCursor'
+++'_SDL_GetDefaultCursor'.'SDL2.dll'.'SDL_GetDefaultCursor'
+++'_SDL_FreeCursor'.'SDL2.dll'.'SDL_FreeCursor'
+++'_SDL_ShowCursor'.'SDL2.dll'.'SDL_ShowCursor'
+++'_SDL_CreateMutex'.'SDL2.dll'.'SDL_CreateMutex'
+++'_SDL_LockMutex'.'SDL2.dll'.'SDL_LockMutex'
+++'_SDL_TryLockMutex'.'SDL2.dll'.'SDL_TryLockMutex'
+++'_SDL_UnlockMutex'.'SDL2.dll'.'SDL_UnlockMutex'
+++'_SDL_DestroyMutex'.'SDL2.dll'.'SDL_DestroyMutex'
+++'_SDL_CreateSemaphore'.'SDL2.dll'.'SDL_CreateSemaphore'
+++'_SDL_DestroySemaphore'.'SDL2.dll'.'SDL_DestroySemaphore'
+++'_SDL_SemWait'.'SDL2.dll'.'SDL_SemWait'
+++'_SDL_SemTryWait'.'SDL2.dll'.'SDL_SemTryWait'
+++'_SDL_SemWaitTimeout'.'SDL2.dll'.'SDL_SemWaitTimeout'
+++'_SDL_SemPost'.'SDL2.dll'.'SDL_SemPost'
+++'_SDL_SemValue'.'SDL2.dll'.'SDL_SemValue'
+++'_SDL_CreateCond'.'SDL2.dll'.'SDL_CreateCond'
+++'_SDL_DestroyCond'.'SDL2.dll'.'SDL_DestroyCond'
+++'_SDL_CondSignal'.'SDL2.dll'.'SDL_CondSignal'
+++'_SDL_CondBroadcast'.'SDL2.dll'.'SDL_CondBroadcast'
+++'_SDL_CondWait'.'SDL2.dll'.'SDL_CondWait'
+++'_SDL_CondWaitTimeout'.'SDL2.dll'.'SDL_CondWaitTimeout'
+++'_SDL_GetPixelFormatName'.'SDL2.dll'.'SDL_GetPixelFormatName'
+++'_SDL_PixelFormatEnumToMasks'.'SDL2.dll'.'SDL_PixelFormatEnumToMasks'
+++'_SDL_MasksToPixelFormatEnum'.'SDL2.dll'.'SDL_MasksToPixelFormatEnum'
+++'_SDL_AllocFormat'.'SDL2.dll'.'SDL_AllocFormat'
+++'_SDL_FreeFormat'.'SDL2.dll'.'SDL_FreeFormat'
+++'_SDL_AllocPalette'.'SDL2.dll'.'SDL_AllocPalette'
+++'_SDL_SetPixelFormatPalette'.'SDL2.dll'.'SDL_SetPixelFormatPalette'
+++'_SDL_SetPaletteColors'.'SDL2.dll'.'SDL_SetPaletteColors'
+++'_SDL_FreePalette'.'SDL2.dll'.'SDL_FreePalette'
+++'_SDL_MapRGB'.'SDL2.dll'.'SDL_MapRGB'
+++'_SDL_MapRGBA'.'SDL2.dll'.'SDL_MapRGBA'
+++'_SDL_GetRGB'.'SDL2.dll'.'SDL_GetRGB'
+++'_SDL_GetRGBA'.'SDL2.dll'.'SDL_GetRGBA'
+++'_SDL_CalculateGammaRamp'.'SDL2.dll'.'SDL_CalculateGammaRamp'
+++'_SDL_GetPlatform'.'SDL2.dll'.'SDL_GetPlatform'
+++'_SDL_GetPowerInfo'.'SDL2.dll'.'SDL_GetPowerInfo'
+++'_SDL_HasIntersection'.'SDL2.dll'.'SDL_HasIntersection'
+++'_SDL_IntersectRect'.'SDL2.dll'.'SDL_IntersectRect'
+++'_SDL_UnionRect'.'SDL2.dll'.'SDL_UnionRect'
+++'_SDL_EnclosePoints'.'SDL2.dll'.'SDL_EnclosePoints'
+++'_SDL_IntersectRectAndLine'.'SDL2.dll'.'SDL_IntersectRectAndLine'
+++'_SDL_GetNumRenderDrivers'.'SDL2.dll'.'SDL_GetNumRenderDrivers'
+++'_SDL_GetRenderDriverInfo'.'SDL2.dll'.'SDL_GetRenderDriverInfo'
+++'_SDL_CreateWindowAndRenderer'.'SDL2.dll'.'SDL_CreateWindowAndRenderer'
+++'_SDL_CreateRenderer'.'SDL2.dll'.'SDL_CreateRenderer'
+++'_SDL_CreateSoftwareRenderer'.'SDL2.dll'.'SDL_CreateSoftwareRenderer'
+++'_SDL_GetRenderer'.'SDL2.dll'.'SDL_GetRenderer'
+++'_SDL_GetRendererInfo'.'SDL2.dll'.'SDL_GetRendererInfo'
+++'_SDL_GetRendererOutputSize'.'SDL2.dll'.'SDL_GetRendererOutputSize'
+++'_SDL_CreateTexture'.'SDL2.dll'.'SDL_CreateTexture'
+++'_SDL_CreateTextureFromSurface'.'SDL2.dll'.'SDL_CreateTextureFromSurface'
+++'_SDL_QueryTexture'.'SDL2.dll'.'SDL_QueryTexture'
+++'_SDL_SetTextureColorMod'.'SDL2.dll'.'SDL_SetTextureColorMod'
+++'_SDL_GetTextureColorMod'.'SDL2.dll'.'SDL_GetTextureColorMod'
+++'_SDL_SetTextureAlphaMod'.'SDL2.dll'.'SDL_SetTextureAlphaMod'
+++'_SDL_GetTextureAlphaMod'.'SDL2.dll'.'SDL_GetTextureAlphaMod'
+++'_SDL_SetTextureBlendMode'.'SDL2.dll'.'SDL_SetTextureBlendMode'
+++'_SDL_GetTextureBlendMode'.'SDL2.dll'.'SDL_GetTextureBlendMode'
+++'_SDL_UpdateTexture'.'SDL2.dll'.'SDL_UpdateTexture'
+++'_SDL_UpdateYUVTexture'.'SDL2.dll'.'SDL_UpdateYUVTexture'
+++'_SDL_LockTexture'.'SDL2.dll'.'SDL_LockTexture'
+++'_SDL_UnlockTexture'.'SDL2.dll'.'SDL_UnlockTexture'
+++'_SDL_RenderTargetSupported'.'SDL2.dll'.'SDL_RenderTargetSupported'
+++'_SDL_SetRenderTarget'.'SDL2.dll'.'SDL_SetRenderTarget'
+++'_SDL_GetRenderTarget'.'SDL2.dll'.'SDL_GetRenderTarget'
+++'_SDL_RenderSetLogicalSize'.'SDL2.dll'.'SDL_RenderSetLogicalSize'
+++'_SDL_RenderGetLogicalSize'.'SDL2.dll'.'SDL_RenderGetLogicalSize'
+++'_SDL_RenderSetViewport'.'SDL2.dll'.'SDL_RenderSetViewport'
+++'_SDL_RenderGetViewport'.'SDL2.dll'.'SDL_RenderGetViewport'
+++'_SDL_RenderSetClipRect'.'SDL2.dll'.'SDL_RenderSetClipRect'
+++'_SDL_RenderGetClipRect'.'SDL2.dll'.'SDL_RenderGetClipRect'
+++'_SDL_RenderSetScale'.'SDL2.dll'.'SDL_RenderSetScale'
+++'_SDL_RenderGetScale'.'SDL2.dll'.'SDL_RenderGetScale'
+++'_SDL_SetRenderDrawColor'.'SDL2.dll'.'SDL_SetRenderDrawColor'
+++'_SDL_GetRenderDrawColor'.'SDL2.dll'.'SDL_GetRenderDrawColor'
+++'_SDL_SetRenderDrawBlendMode'.'SDL2.dll'.'SDL_SetRenderDrawBlendMode'
+++'_SDL_GetRenderDrawBlendMode'.'SDL2.dll'.'SDL_GetRenderDrawBlendMode'
+++'_SDL_RenderClear'.'SDL2.dll'.'SDL_RenderClear'
+++'_SDL_RenderDrawPoint'.'SDL2.dll'.'SDL_RenderDrawPoint'
+++'_SDL_RenderDrawPoints'.'SDL2.dll'.'SDL_RenderDrawPoints'
+++'_SDL_RenderDrawLine'.'SDL2.dll'.'SDL_RenderDrawLine'
+++'_SDL_RenderDrawLines'.'SDL2.dll'.'SDL_RenderDrawLines'
+++'_SDL_RenderDrawRect'.'SDL2.dll'.'SDL_RenderDrawRect'
+++'_SDL_RenderDrawRects'.'SDL2.dll'.'SDL_RenderDrawRects'
+++'_SDL_RenderFillRect'.'SDL2.dll'.'SDL_RenderFillRect'
+++'_SDL_RenderFillRects'.'SDL2.dll'.'SDL_RenderFillRects'
+++'_SDL_RenderCopy'.'SDL2.dll'.'SDL_RenderCopy'
+++'_SDL_RenderCopyEx'.'SDL2.dll'.'SDL_RenderCopyEx'
+++'_SDL_RenderReadPixels'.'SDL2.dll'.'SDL_RenderReadPixels'
+++'_SDL_RenderPresent'.'SDL2.dll'.'SDL_RenderPresent'
+++'_SDL_DestroyTexture'.'SDL2.dll'.'SDL_DestroyTexture'
+++'_SDL_DestroyRenderer'.'SDL2.dll'.'SDL_DestroyRenderer'
+++'_SDL_GL_BindTexture'.'SDL2.dll'.'SDL_GL_BindTexture'
+++'_SDL_GL_UnbindTexture'.'SDL2.dll'.'SDL_GL_UnbindTexture'
+++'_SDL_RWFromFile'.'SDL2.dll'.'SDL_RWFromFile'
+++'_SDL_RWFromMem'.'SDL2.dll'.'SDL_RWFromMem'
+++'_SDL_RWFromConstMem'.'SDL2.dll'.'SDL_RWFromConstMem'
+++'_SDL_AllocRW'.'SDL2.dll'.'SDL_AllocRW'
+++'_SDL_FreeRW'.'SDL2.dll'.'SDL_FreeRW'
+++'_SDL_ReadU8'.'SDL2.dll'.'SDL_ReadU8'
+++'_SDL_ReadLE16'.'SDL2.dll'.'SDL_ReadLE16'
+++'_SDL_ReadBE16'.'SDL2.dll'.'SDL_ReadBE16'
+++'_SDL_ReadLE32'.'SDL2.dll'.'SDL_ReadLE32'
+++'_SDL_ReadBE32'.'SDL2.dll'.'SDL_ReadBE32'
+++'_SDL_ReadLE64'.'SDL2.dll'.'SDL_ReadLE64'
+++'_SDL_ReadBE64'.'SDL2.dll'.'SDL_ReadBE64'
+++'_SDL_WriteU8'.'SDL2.dll'.'SDL_WriteU8'
+++'_SDL_WriteLE16'.'SDL2.dll'.'SDL_WriteLE16'
+++'_SDL_WriteBE16'.'SDL2.dll'.'SDL_WriteBE16'
+++'_SDL_WriteLE32'.'SDL2.dll'.'SDL_WriteLE32'
+++'_SDL_WriteBE32'.'SDL2.dll'.'SDL_WriteBE32'
+++'_SDL_WriteLE64'.'SDL2.dll'.'SDL_WriteLE64'
+++'_SDL_WriteBE64'.'SDL2.dll'.'SDL_WriteBE64'
+++'_SDL_CreateShapedWindow'.'SDL2.dll'.'SDL_CreateShapedWindow'
+++'_SDL_IsShapedWindow'.'SDL2.dll'.'SDL_IsShapedWindow'
+++'_SDL_SetWindowShape'.'SDL2.dll'.'SDL_SetWindowShape'
+++'_SDL_GetShapedWindowMode'.'SDL2.dll'.'SDL_GetShapedWindowMode'
+++'_SDL_malloc'.'SDL2.dll'.'SDL_malloc'
+++'_SDL_calloc'.'SDL2.dll'.'SDL_calloc'
+++'_SDL_realloc'.'SDL2.dll'.'SDL_realloc'
+++'_SDL_free'.'SDL2.dll'.'SDL_free'
+++'_SDL_getenv'.'SDL2.dll'.'SDL_getenv'
+++'_SDL_setenv'.'SDL2.dll'.'SDL_setenv'
+++'_SDL_qsort'.'SDL2.dll'.'SDL_qsort'
+++'_SDL_abs'.'SDL2.dll'.'SDL_abs'
+++'_SDL_isdigit'.'SDL2.dll'.'SDL_isdigit'
+++'_SDL_isspace'.'SDL2.dll'.'SDL_isspace'
+++'_SDL_toupper'.'SDL2.dll'.'SDL_toupper'
+++'_SDL_tolower'.'SDL2.dll'.'SDL_tolower'
+++'_SDL_memset'.'SDL2.dll'.'SDL_memset'
+++'_SDL_memcpy'.'SDL2.dll'.'SDL_memcpy'
+++'_SDL_memmove'.'SDL2.dll'.'SDL_memmove'
+++'_SDL_memcmp'.'SDL2.dll'.'SDL_memcmp'
+++'_SDL_wcslen'.'SDL2.dll'.'SDL_wcslen'
+++'_SDL_wcslcpy'.'SDL2.dll'.'SDL_wcslcpy'
+++'_SDL_wcslcat'.'SDL2.dll'.'SDL_wcslcat'
+++'_SDL_strlen'.'SDL2.dll'.'SDL_strlen'
+++'_SDL_strlcpy'.'SDL2.dll'.'SDL_strlcpy'
+++'_SDL_utf8strlcpy'.'SDL2.dll'.'SDL_utf8strlcpy'
+++'_SDL_strlcat'.'SDL2.dll'.'SDL_strlcat'
+++'_SDL_strdup'.'SDL2.dll'.'SDL_strdup'
+++'_SDL_strrev'.'SDL2.dll'.'SDL_strrev'
+++'_SDL_strupr'.'SDL2.dll'.'SDL_strupr'
+++'_SDL_strlwr'.'SDL2.dll'.'SDL_strlwr'
+++'_SDL_strchr'.'SDL2.dll'.'SDL_strchr'
+++'_SDL_strrchr'.'SDL2.dll'.'SDL_strrchr'
+++'_SDL_strstr'.'SDL2.dll'.'SDL_strstr'
+++'_SDL_itoa'.'SDL2.dll'.'SDL_itoa'
+++'_SDL_uitoa'.'SDL2.dll'.'SDL_uitoa'
+++'_SDL_ltoa'.'SDL2.dll'.'SDL_ltoa'
+++'_SDL_ultoa'.'SDL2.dll'.'SDL_ultoa'
+++'_SDL_lltoa'.'SDL2.dll'.'SDL_lltoa'
+++'_SDL_ulltoa'.'SDL2.dll'.'SDL_ulltoa'
+++'_SDL_atoi'.'SDL2.dll'.'SDL_atoi'
+++'_SDL_atof'.'SDL2.dll'.'SDL_atof'
+++'_SDL_strtol'.'SDL2.dll'.'SDL_strtol'
+++'_SDL_strtoul'.'SDL2.dll'.'SDL_strtoul'
+++'_SDL_strtoll'.'SDL2.dll'.'SDL_strtoll'
+++'_SDL_strtoull'.'SDL2.dll'.'SDL_strtoull'
+++'_SDL_strtod'.'SDL2.dll'.'SDL_strtod'
+++'_SDL_strcmp'.'SDL2.dll'.'SDL_strcmp'
+++'_SDL_strncmp'.'SDL2.dll'.'SDL_strncmp'
+++'_SDL_strcasecmp'.'SDL2.dll'.'SDL_strcasecmp'
+++'_SDL_strncasecmp'.'SDL2.dll'.'SDL_strncasecmp'
+++'_SDL_vsnprintf'.'SDL2.dll'.'SDL_vsnprintf'
+++'_SDL_acos'.'SDL2.dll'.'SDL_acos'
+++'_SDL_asin'.'SDL2.dll'.'SDL_asin'
+++'_SDL_atan'.'SDL2.dll'.'SDL_atan'
+++'_SDL_atan2'.'SDL2.dll'.'SDL_atan2'
+++'_SDL_ceil'.'SDL2.dll'.'SDL_ceil'
+++'_SDL_copysign'.'SDL2.dll'.'SDL_copysign'
+++'_SDL_cos'.'SDL2.dll'.'SDL_cos'
+++'_SDL_cosf'.'SDL2.dll'.'SDL_cosf'
+++'_SDL_fabs'.'SDL2.dll'.'SDL_fabs'
+++'_SDL_floor'.'SDL2.dll'.'SDL_floor'
+++'_SDL_log'.'SDL2.dll'.'SDL_log'
+++'_SDL_pow'.'SDL2.dll'.'SDL_pow'
+++'_SDL_scalbn'.'SDL2.dll'.'SDL_scalbn'
+++'_SDL_sin'.'SDL2.dll'.'SDL_sin'
+++'_SDL_sinf'.'SDL2.dll'.'SDL_sinf'
+++'_SDL_sqrt'.'SDL2.dll'.'SDL_sqrt'
+++'_SDL_iconv_open'.'SDL2.dll'.'SDL_iconv_open'
+++'_SDL_iconv_close'.'SDL2.dll'.'SDL_iconv_close'
+++'_SDL_iconv'.'SDL2.dll'.'SDL_iconv'
+++'_SDL_iconv_string'.'SDL2.dll'.'SDL_iconv_string'
+++'_SDL_CreateRGBSurface'.'SDL2.dll'.'SDL_CreateRGBSurface'
+++'_SDL_CreateRGBSurfaceFrom'.'SDL2.dll'.'SDL_CreateRGBSurfaceFrom'
+++'_SDL_FreeSurface'.'SDL2.dll'.'SDL_FreeSurface'
+++'_SDL_SetSurfacePalette'.'SDL2.dll'.'SDL_SetSurfacePalette'
+++'_SDL_LockSurface'.'SDL2.dll'.'SDL_LockSurface'
+++'_SDL_UnlockSurface'.'SDL2.dll'.'SDL_UnlockSurface'
+++'_SDL_LoadBMP_RW'.'SDL2.dll'.'SDL_LoadBMP_RW'
+++'_SDL_SaveBMP_RW'.'SDL2.dll'.'SDL_SaveBMP_RW'
+++'_SDL_SetSurfaceRLE'.'SDL2.dll'.'SDL_SetSurfaceRLE'
+++'_SDL_SetColorKey'.'SDL2.dll'.'SDL_SetColorKey'
+++'_SDL_GetColorKey'.'SDL2.dll'.'SDL_GetColorKey'
+++'_SDL_SetSurfaceColorMod'.'SDL2.dll'.'SDL_SetSurfaceColorMod'
+++'_SDL_GetSurfaceColorMod'.'SDL2.dll'.'SDL_GetSurfaceColorMod'
+++'_SDL_SetSurfaceAlphaMod'.'SDL2.dll'.'SDL_SetSurfaceAlphaMod'
+++'_SDL_GetSurfaceAlphaMod'.'SDL2.dll'.'SDL_GetSurfaceAlphaMod'
+++'_SDL_SetSurfaceBlendMode'.'SDL2.dll'.'SDL_SetSurfaceBlendMode'
+++'_SDL_GetSurfaceBlendMode'.'SDL2.dll'.'SDL_GetSurfaceBlendMode'
+++'_SDL_SetClipRect'.'SDL2.dll'.'SDL_SetClipRect'
+++'_SDL_GetClipRect'.'SDL2.dll'.'SDL_GetClipRect'
+++'_SDL_ConvertSurface'.'SDL2.dll'.'SDL_ConvertSurface'
+++'_SDL_ConvertSurfaceFormat'.'SDL2.dll'.'SDL_ConvertSurfaceFormat'
+++'_SDL_ConvertPixels'.'SDL2.dll'.'SDL_ConvertPixels'
+++'_SDL_FillRect'.'SDL2.dll'.'SDL_FillRect'
+++'_SDL_FillRects'.'SDL2.dll'.'SDL_FillRects'
+++'_SDL_UpperBlit'.'SDL2.dll'.'SDL_UpperBlit'
+++'_SDL_LowerBlit'.'SDL2.dll'.'SDL_LowerBlit'
+++'_SDL_SoftStretch'.'SDL2.dll'.'SDL_SoftStretch'
+++'_SDL_UpperBlitScaled'.'SDL2.dll'.'SDL_UpperBlitScaled'
+++'_SDL_LowerBlitScaled'.'SDL2.dll'.'SDL_LowerBlitScaled'
+++'_SDL_GetWindowWMInfo'.'SDL2.dll'.'SDL_GetWindowWMInfo'
+++'_SDL_GetThreadName'.'SDL2.dll'.'SDL_GetThreadName'
+++'_SDL_ThreadID'.'SDL2.dll'.'SDL_ThreadID'
+++'_SDL_GetThreadID'.'SDL2.dll'.'SDL_GetThreadID'
+++'_SDL_SetThreadPriority'.'SDL2.dll'.'SDL_SetThreadPriority'
+++'_SDL_WaitThread'.'SDL2.dll'.'SDL_WaitThread'
+++'_SDL_DetachThread'.'SDL2.dll'.'SDL_DetachThread'
+++'_SDL_TLSCreate'.'SDL2.dll'.'SDL_TLSCreate'
+++'_SDL_TLSGet'.'SDL2.dll'.'SDL_TLSGet'
+++'_SDL_TLSSet'.'SDL2.dll'.'SDL_TLSSet'
+++'_SDL_GetTicks'.'SDL2.dll'.'SDL_GetTicks'
+++'_SDL_GetPerformanceCounter'.'SDL2.dll'.'SDL_GetPerformanceCounter'
+++'_SDL_GetPerformanceFrequency'.'SDL2.dll'.'SDL_GetPerformanceFrequency'
+++'_SDL_Delay'.'SDL2.dll'.'SDL_Delay'
+++'_SDL_AddTimer'.'SDL2.dll'.'SDL_AddTimer'
+++'_SDL_RemoveTimer'.'SDL2.dll'.'SDL_RemoveTimer'
+++'_SDL_GetNumTouchDevices'.'SDL2.dll'.'SDL_GetNumTouchDevices'
+++'_SDL_GetTouchDevice'.'SDL2.dll'.'SDL_GetTouchDevice'
+++'_SDL_GetNumTouchFingers'.'SDL2.dll'.'SDL_GetNumTouchFingers'
+++'_SDL_GetTouchFinger'.'SDL2.dll'.'SDL_GetTouchFinger'
+++'_SDL_GetVersion'.'SDL2.dll'.'SDL_GetVersion'
+++'_SDL_GetRevision'.'SDL2.dll'.'SDL_GetRevision'
+++'_SDL_GetRevisionNumber'.'SDL2.dll'.'SDL_GetRevisionNumber'
+++'_SDL_GetNumVideoDrivers'.'SDL2.dll'.'SDL_GetNumVideoDrivers'
+++'_SDL_GetVideoDriver'.'SDL2.dll'.'SDL_GetVideoDriver'
+++'_SDL_VideoInit'.'SDL2.dll'.'SDL_VideoInit'
+++'_SDL_VideoQuit'.'SDL2.dll'.'SDL_VideoQuit'
+++'_SDL_GetCurrentVideoDriver'.'SDL2.dll'.'SDL_GetCurrentVideoDriver'
+++'_SDL_GetNumVideoDisplays'.'SDL2.dll'.'SDL_GetNumVideoDisplays'
+++'_SDL_GetDisplayName'.'SDL2.dll'.'SDL_GetDisplayName'
+++'_SDL_GetDisplayBounds'.'SDL2.dll'.'SDL_GetDisplayBounds'
+++'_SDL_GetDisplayDPI'.'SDL2.dll'.'SDL_GetDisplayDPI'
+++'_SDL_GetNumDisplayModes'.'SDL2.dll'.'SDL_GetNumDisplayModes'
+++'_SDL_GetDisplayMode'.'SDL2.dll'.'SDL_GetDisplayMode'
+++'_SDL_GetDesktopDisplayMode'.'SDL2.dll'.'SDL_GetDesktopDisplayMode'
+++'_SDL_GetCurrentDisplayMode'.'SDL2.dll'.'SDL_GetCurrentDisplayMode'
+++'_SDL_GetClosestDisplayMode'.'SDL2.dll'.'SDL_GetClosestDisplayMode'
+++'_SDL_GetWindowDisplayIndex'.'SDL2.dll'.'SDL_GetWindowDisplayIndex'
+++'_SDL_SetWindowDisplayMode'.'SDL2.dll'.'SDL_SetWindowDisplayMode'
+++'_SDL_GetWindowDisplayMode'.'SDL2.dll'.'SDL_GetWindowDisplayMode'
+++'_SDL_GetWindowPixelFormat'.'SDL2.dll'.'SDL_GetWindowPixelFormat'
+++'_SDL_CreateWindow'.'SDL2.dll'.'SDL_CreateWindow'
+++'_SDL_CreateWindowFrom'.'SDL2.dll'.'SDL_CreateWindowFrom'
+++'_SDL_GetWindowID'.'SDL2.dll'.'SDL_GetWindowID'
+++'_SDL_GetWindowFromID'.'SDL2.dll'.'SDL_GetWindowFromID'
+++'_SDL_GetWindowFlags'.'SDL2.dll'.'SDL_GetWindowFlags'
+++'_SDL_SetWindowTitle'.'SDL2.dll'.'SDL_SetWindowTitle'
+++'_SDL_GetWindowTitle'.'SDL2.dll'.'SDL_GetWindowTitle'
+++'_SDL_SetWindowIcon'.'SDL2.dll'.'SDL_SetWindowIcon'
+++'_SDL_SetWindowData'.'SDL2.dll'.'SDL_SetWindowData'
+++'_SDL_GetWindowData'.'SDL2.dll'.'SDL_GetWindowData'
+++'_SDL_SetWindowPosition'.'SDL2.dll'.'SDL_SetWindowPosition'
+++'_SDL_GetWindowPosition'.'SDL2.dll'.'SDL_GetWindowPosition'
+++'_SDL_SetWindowSize'.'SDL2.dll'.'SDL_SetWindowSize'
+++'_SDL_GetWindowSize'.'SDL2.dll'.'SDL_GetWindowSize'
+++'_SDL_SetWindowMinimumSize'.'SDL2.dll'.'SDL_SetWindowMinimumSize'
+++'_SDL_GetWindowMinimumSize'.'SDL2.dll'.'SDL_GetWindowMinimumSize'
+++'_SDL_SetWindowMaximumSize'.'SDL2.dll'.'SDL_SetWindowMaximumSize'
+++'_SDL_GetWindowMaximumSize'.'SDL2.dll'.'SDL_GetWindowMaximumSize'
+++'_SDL_SetWindowBordered'.'SDL2.dll'.'SDL_SetWindowBordered'
+++'_SDL_ShowWindow'.'SDL2.dll'.'SDL_ShowWindow'
+++'_SDL_HideWindow'.'SDL2.dll'.'SDL_HideWindow'
+++'_SDL_RaiseWindow'.'SDL2.dll'.'SDL_RaiseWindow'
+++'_SDL_MaximizeWindow'.'SDL2.dll'.'SDL_MaximizeWindow'
+++'_SDL_MinimizeWindow'.'SDL2.dll'.'SDL_MinimizeWindow'
+++'_SDL_RestoreWindow'.'SDL2.dll'.'SDL_RestoreWindow'
+++'_SDL_SetWindowFullscreen'.'SDL2.dll'.'SDL_SetWindowFullscreen'
+++'_SDL_GetWindowSurface'.'SDL2.dll'.'SDL_GetWindowSurface'
+++'_SDL_UpdateWindowSurface'.'SDL2.dll'.'SDL_UpdateWindowSurface'
+++'_SDL_UpdateWindowSurfaceRects'.'SDL2.dll'.'SDL_UpdateWindowSurfaceRects'
+++'_SDL_SetWindowGrab'.'SDL2.dll'.'SDL_SetWindowGrab'
+++'_SDL_GetWindowGrab'.'SDL2.dll'.'SDL_GetWindowGrab'
+++'_SDL_SetWindowBrightness'.'SDL2.dll'.'SDL_SetWindowBrightness'
+++'_SDL_GetWindowBrightness'.'SDL2.dll'.'SDL_GetWindowBrightness'
+++'_SDL_SetWindowGammaRamp'.'SDL2.dll'.'SDL_SetWindowGammaRamp'
+++'_SDL_GetWindowGammaRamp'.'SDL2.dll'.'SDL_GetWindowGammaRamp'
+++'_SDL_DestroyWindow'.'SDL2.dll'.'SDL_DestroyWindow'
+++'_SDL_IsScreenSaverEnabled'.'SDL2.dll'.'SDL_IsScreenSaverEnabled'
+++'_SDL_EnableScreenSaver'.'SDL2.dll'.'SDL_EnableScreenSaver'
+++'_SDL_DisableScreenSaver'.'SDL2.dll'.'SDL_DisableScreenSaver'
+++'_SDL_GL_LoadLibrary'.'SDL2.dll'.'SDL_GL_LoadLibrary'
+++'_SDL_GL_GetProcAddress'.'SDL2.dll'.'SDL_GL_GetProcAddress'
+++'_SDL_GL_UnloadLibrary'.'SDL2.dll'.'SDL_GL_UnloadLibrary'
+++'_SDL_GL_ExtensionSupported'.'SDL2.dll'.'SDL_GL_ExtensionSupported'
+++'_SDL_GL_SetAttribute'.'SDL2.dll'.'SDL_GL_SetAttribute'
+++'_SDL_GL_GetAttribute'.'SDL2.dll'.'SDL_GL_GetAttribute'
+++'_SDL_GL_CreateContext'.'SDL2.dll'.'SDL_GL_CreateContext'
+++'_SDL_GL_MakeCurrent'.'SDL2.dll'.'SDL_GL_MakeCurrent'
+++'_SDL_GL_GetCurrentWindow'.'SDL2.dll'.'SDL_GL_GetCurrentWindow'
+++'_SDL_GL_GetCurrentContext'.'SDL2.dll'.'SDL_GL_GetCurrentContext'
+++'_SDL_GL_GetDrawableSize'.'SDL2.dll'.'SDL_GL_GetDrawableSize'
+++'_SDL_GL_SetSwapInterval'.'SDL2.dll'.'SDL_GL_SetSwapInterval'
+++'_SDL_GL_GetSwapInterval'.'SDL2.dll'.'SDL_GL_GetSwapInterval'
+++'_SDL_GL_SwapWindow'.'SDL2.dll'.'SDL_GL_SwapWindow'
+++'_SDL_GL_DeleteContext'.'SDL2.dll'.'SDL_GL_DeleteContext'
+++'_SDL_vsscanf'.'SDL2.dll'.'SDL_vsscanf'
+++'_SDL_GameControllerAddMappingsFromRW'.'SDL2.dll'.'SDL_GameControllerAddMappingsFromRW'
+++'_SDL_GL_ResetAttributes'.'SDL2.dll'.'SDL_GL_ResetAttributes'
+++'_SDL_HasAVX'.'SDL2.dll'.'SDL_HasAVX'
+++'_SDL_GetDefaultAssertionHandler'.'SDL2.dll'.'SDL_GetDefaultAssertionHandler'
+++'_SDL_GetAssertionHandler'.'SDL2.dll'.'SDL_GetAssertionHandler'
+++'_SDL_DXGIGetOutputInfo'.'SDL2.dll'.'SDL_DXGIGetOutputInfo'
+++'_SDL_RenderIsClipEnabled'.'SDL2.dll'.'SDL_RenderIsClipEnabled'
+# ++'_SDL_WinRTRunApp'.'SDL2.dll'.'SDL_WinRTRunApp'
+++'_SDL_WarpMouseGlobal'.'SDL2.dll'.'SDL_WarpMouseGlobal'
+# ++'_SDL_WinRTGetFSPathUNICODE'.'SDL2.dll'.'SDL_WinRTGetFSPathUNICODE'
+# ++'_SDL_WinRTGetFSPathUTF8'.'SDL2.dll'.'SDL_WinRTGetFSPathUTF8'
+++'_SDL_sqrtf'.'SDL2.dll'.'SDL_sqrtf'
+++'_SDL_tan'.'SDL2.dll'.'SDL_tan'
+++'_SDL_tanf'.'SDL2.dll'.'SDL_tanf'
+++'_SDL_CaptureMouse'.'SDL2.dll'.'SDL_CaptureMouse'
+++'_SDL_SetWindowHitTest'.'SDL2.dll'.'SDL_SetWindowHitTest'
+++'_SDL_GetGlobalMouseState'.'SDL2.dll'.'SDL_GetGlobalMouseState'
+++'_SDL_HasAVX2'.'SDL2.dll'.'SDL_HasAVX2'
+++'_SDL_QueueAudio'.'SDL2.dll'.'SDL_QueueAudio'
+++'_SDL_GetQueuedAudioSize'.'SDL2.dll'.'SDL_GetQueuedAudioSize'
+++'_SDL_ClearQueuedAudio'.'SDL2.dll'.'SDL_ClearQueuedAudio'
+++'_SDL_GetGrabbedWindow'.'SDL2.dll'.'SDL_GetGrabbedWindow'
+++'_SDL_SetWindowsMessageHook'.'SDL2.dll'.'SDL_SetWindowsMessageHook'
+++'_SDL_JoystickCurrentPowerLevel'.'SDL2.dll'.'SDL_JoystickCurrentPowerLevel'
+++'_SDL_GameControllerFromInstanceID'.'SDL2.dll'.'SDL_GameControllerFromInstanceID'
+++'_SDL_JoystickFromInstanceID'.'SDL2.dll'.'SDL_JoystickFromInstanceID'
+++'_SDL_GetDisplayUsableBounds'.'SDL2.dll'.'SDL_GetDisplayUsableBounds'
+++'_SDL_GetWindowBordersSize'.'SDL2.dll'.'SDL_GetWindowBordersSize'
+++'_SDL_SetWindowOpacity'.'SDL2.dll'.'SDL_SetWindowOpacity'
+++'_SDL_GetWindowOpacity'.'SDL2.dll'.'SDL_GetWindowOpacity'
+++'_SDL_SetWindowInputFocus'.'SDL2.dll'.'SDL_SetWindowInputFocus'
+++'_SDL_SetWindowModalFor'.'SDL2.dll'.'SDL_SetWindowModalFor'
+++'_SDL_RenderSetIntegerScale'.'SDL2.dll'.'SDL_RenderSetIntegerScale'
+++'_SDL_RenderGetIntegerScale'.'SDL2.dll'.'SDL_RenderGetIntegerScale'
+++'_SDL_DequeueAudio'.'SDL2.dll'.'SDL_DequeueAudio'
+++'_SDL_SetWindowResizable'.'SDL2.dll'.'SDL_SetWindowResizable'
+++'_SDL_CreateRGBSurfaceWithFormat'.'SDL2.dll'.'SDL_CreateRGBSurfaceWithFormat'
+++'_SDL_CreateRGBSurfaceWithFormatFrom'.'SDL2.dll'.'SDL_CreateRGBSurfaceWithFormatFrom'
+++'_SDL_GetHintBoolean'.'SDL2.dll'.'SDL_GetHintBoolean'
+++'_SDL_JoystickGetDeviceVendor'.'SDL2.dll'.'SDL_JoystickGetDeviceVendor'
+++'_SDL_JoystickGetDeviceProduct'.'SDL2.dll'.'SDL_JoystickGetDeviceProduct'
+++'_SDL_JoystickGetDeviceProductVersion'.'SDL2.dll'.'SDL_JoystickGetDeviceProductVersion'
+++'_SDL_JoystickGetVendor'.'SDL2.dll'.'SDL_JoystickGetVendor'
+++'_SDL_JoystickGetProduct'.'SDL2.dll'.'SDL_JoystickGetProduct'
+++'_SDL_JoystickGetProductVersion'.'SDL2.dll'.'SDL_JoystickGetProductVersion'
+++'_SDL_GameControllerGetVendor'.'SDL2.dll'.'SDL_GameControllerGetVendor'
+++'_SDL_GameControllerGetProduct'.'SDL2.dll'.'SDL_GameControllerGetProduct'
+++'_SDL_GameControllerGetProductVersion'.'SDL2.dll'.'SDL_GameControllerGetProductVersion'
+++'_SDL_HasNEON'.'SDL2.dll'.'SDL_HasNEON'
+++'_SDL_GameControllerNumMappings'.'SDL2.dll'.'SDL_GameControllerNumMappings'
+++'_SDL_GameControllerMappingForIndex'.'SDL2.dll'.'SDL_GameControllerMappingForIndex'
+++'_SDL_JoystickGetAxisInitialState'.'SDL2.dll'.'SDL_JoystickGetAxisInitialState'
+++'_SDL_JoystickGetDeviceType'.'SDL2.dll'.'SDL_JoystickGetDeviceType'
+++'_SDL_JoystickGetType'.'SDL2.dll'.'SDL_JoystickGetType'
+++'_SDL_MemoryBarrierReleaseFunction'.'SDL2.dll'.'SDL_MemoryBarrierReleaseFunction'
+++'_SDL_MemoryBarrierAcquireFunction'.'SDL2.dll'.'SDL_MemoryBarrierAcquireFunction'
+++'_SDL_JoystickGetDeviceInstanceID'.'SDL2.dll'.'SDL_JoystickGetDeviceInstanceID'
+++'_SDL_utf8strlen'.'SDL2.dll'.'SDL_utf8strlen'
+++'_SDL_LoadFile_RW'.'SDL2.dll'.'SDL_LoadFile_RW'
+++'_SDL_wcscmp'.'SDL2.dll'.'SDL_wcscmp'
+++'_SDL_ComposeCustomBlendMode'.'SDL2.dll'.'SDL_ComposeCustomBlendMode'
+++'_SDL_DuplicateSurface'.'SDL2.dll'.'SDL_DuplicateSurface'
+++'_SDL_Vulkan_LoadLibrary'.'SDL2.dll'.'SDL_Vulkan_LoadLibrary'
+++'_SDL_Vulkan_GetVkGetInstanceProcAddr'.'SDL2.dll'.'SDL_Vulkan_GetVkGetInstanceProcAddr'
+++'_SDL_Vulkan_UnloadLibrary'.'SDL2.dll'.'SDL_Vulkan_UnloadLibrary'
+++'_SDL_Vulkan_GetInstanceExtensions'.'SDL2.dll'.'SDL_Vulkan_GetInstanceExtensions'
+++'_SDL_Vulkan_CreateSurface'.'SDL2.dll'.'SDL_Vulkan_CreateSurface'
+++'_SDL_Vulkan_GetDrawableSize'.'SDL2.dll'.'SDL_Vulkan_GetDrawableSize'
+++'_SDL_LockJoysticks'.'SDL2.dll'.'SDL_LockJoysticks'
+++'_SDL_UnlockJoysticks'.'SDL2.dll'.'SDL_UnlockJoysticks'
+++'_SDL_GetMemoryFunctions'.'SDL2.dll'.'SDL_GetMemoryFunctions'
+++'_SDL_SetMemoryFunctions'.'SDL2.dll'.'SDL_SetMemoryFunctions'
+++'_SDL_GetNumAllocations'.'SDL2.dll'.'SDL_GetNumAllocations'
+++'_SDL_NewAudioStream'.'SDL2.dll'.'SDL_NewAudioStream'
+++'_SDL_AudioStreamPut'.'SDL2.dll'.'SDL_AudioStreamPut'
+++'_SDL_AudioStreamGet'.'SDL2.dll'.'SDL_AudioStreamGet'
+++'_SDL_AudioStreamClear'.'SDL2.dll'.'SDL_AudioStreamClear'
+++'_SDL_AudioStreamAvailable'.'SDL2.dll'.'SDL_AudioStreamAvailable'
+++'_SDL_FreeAudioStream'.'SDL2.dll'.'SDL_FreeAudioStream'
+++'_SDL_AudioStreamFlush'.'SDL2.dll'.'SDL_AudioStreamFlush'
+++'_SDL_acosf'.'SDL2.dll'.'SDL_acosf'
+++'_SDL_asinf'.'SDL2.dll'.'SDL_asinf'
+++'_SDL_atanf'.'SDL2.dll'.'SDL_atanf'
+++'_SDL_atan2f'.'SDL2.dll'.'SDL_atan2f'
+++'_SDL_ceilf'.'SDL2.dll'.'SDL_ceilf'
+++'_SDL_copysignf'.'SDL2.dll'.'SDL_copysignf'
+++'_SDL_fabsf'.'SDL2.dll'.'SDL_fabsf'
+++'_SDL_floorf'.'SDL2.dll'.'SDL_floorf'
+++'_SDL_logf'.'SDL2.dll'.'SDL_logf'
+++'_SDL_powf'.'SDL2.dll'.'SDL_powf'
+++'_SDL_scalbnf'.'SDL2.dll'.'SDL_scalbnf'
+++'_SDL_fmod'.'SDL2.dll'.'SDL_fmod'
+++'_SDL_fmodf'.'SDL2.dll'.'SDL_fmodf'
+++'_SDL_SetYUVConversionMode'.'SDL2.dll'.'SDL_SetYUVConversionMode'
+++'_SDL_GetYUVConversionMode'.'SDL2.dll'.'SDL_GetYUVConversionMode'
+++'_SDL_GetYUVConversionModeForResolution'.'SDL2.dll'.'SDL_GetYUVConversionModeForResolution'
+++'_SDL_RenderGetMetalLayer'.'SDL2.dll'.'SDL_RenderGetMetalLayer'
+++'_SDL_RenderGetMetalCommandEncoder'.'SDL2.dll'.'SDL_RenderGetMetalCommandEncoder'
+# ++'_SDL_IsAndroidTV'.'SDL2.dll'.'SDL_IsAndroidTV'
+# ++'_SDL_WinRTGetDeviceFamily'.'SDL2.dll'.'SDL_WinRTGetDeviceFamily'
+++'_SDL_log10'.'SDL2.dll'.'SDL_log10'
+++'_SDL_log10f'.'SDL2.dll'.'SDL_log10f'
+++'_SDL_GameControllerMappingForDeviceIndex'.'SDL2.dll'.'SDL_GameControllerMappingForDeviceIndex'
+# ++'_SDL_LinuxSetThreadPriority'.'SDL2.dll'.'SDL_LinuxSetThreadPriority'
+++'_SDL_HasAVX512F'.'SDL2.dll'.'SDL_HasAVX512F'
+# ++'_SDL_IsChromebook'.'SDL2.dll'.'SDL_IsChromebook'
+# ++'_SDL_IsDeXMode'.'SDL2.dll'.'SDL_IsDeXMode'
+# ++'_SDL_AndroidBackButton'.'SDL2.dll'.'SDL_AndroidBackButton'
+++'_SDL_exp'.'SDL2.dll'.'SDL_exp'
+++'_SDL_expf'.'SDL2.dll'.'SDL_expf'
+++'_SDL_wcsdup'.'SDL2.dll'.'SDL_wcsdup'
+++'_SDL_GameControllerRumble'.'SDL2.dll'.'SDL_GameControllerRumble'
+++'_SDL_JoystickRumble'.'SDL2.dll'.'SDL_JoystickRumble'
+++'_SDL_NumSensors'.'SDL2.dll'.'SDL_NumSensors'
+++'_SDL_SensorGetDeviceName'.'SDL2.dll'.'SDL_SensorGetDeviceName'
+++'_SDL_SensorGetDeviceType'.'SDL2.dll'.'SDL_SensorGetDeviceType'
+++'_SDL_SensorGetDeviceNonPortableType'.'SDL2.dll'.'SDL_SensorGetDeviceNonPortableType'
+++'_SDL_SensorGetDeviceInstanceID'.'SDL2.dll'.'SDL_SensorGetDeviceInstanceID'
+++'_SDL_SensorOpen'.'SDL2.dll'.'SDL_SensorOpen'
+++'_SDL_SensorFromInstanceID'.'SDL2.dll'.'SDL_SensorFromInstanceID'
+++'_SDL_SensorGetName'.'SDL2.dll'.'SDL_SensorGetName'
+++'_SDL_SensorGetType'.'SDL2.dll'.'SDL_SensorGetType'
+++'_SDL_SensorGetNonPortableType'.'SDL2.dll'.'SDL_SensorGetNonPortableType'
+++'_SDL_SensorGetInstanceID'.'SDL2.dll'.'SDL_SensorGetInstanceID'
+++'_SDL_SensorGetData'.'SDL2.dll'.'SDL_SensorGetData'
+++'_SDL_SensorClose'.'SDL2.dll'.'SDL_SensorClose'
+++'_SDL_SensorUpdate'.'SDL2.dll'.'SDL_SensorUpdate'
+++'_SDL_IsTablet'.'SDL2.dll'.'SDL_IsTablet'
+++'_SDL_GetDisplayOrientation'.'SDL2.dll'.'SDL_GetDisplayOrientation'
+++'_SDL_HasColorKey'.'SDL2.dll'.'SDL_HasColorKey'
+++'_SDL_CreateThreadWithStackSize'.'SDL2.dll'.'SDL_CreateThreadWithStackSize'
+++'_SDL_JoystickGetDevicePlayerIndex'.'SDL2.dll'.'SDL_JoystickGetDevicePlayerIndex'
+++'_SDL_JoystickGetPlayerIndex'.'SDL2.dll'.'SDL_JoystickGetPlayerIndex'
+++'_SDL_GameControllerGetPlayerIndex'.'SDL2.dll'.'SDL_GameControllerGetPlayerIndex'
+++'_SDL_RenderFlush'.'SDL2.dll'.'SDL_RenderFlush'
+++'_SDL_RenderDrawPointF'.'SDL2.dll'.'SDL_RenderDrawPointF'
+++'_SDL_RenderDrawPointsF'.'SDL2.dll'.'SDL_RenderDrawPointsF'
+++'_SDL_RenderDrawLineF'.'SDL2.dll'.'SDL_RenderDrawLineF'
+++'_SDL_RenderDrawLinesF'.'SDL2.dll'.'SDL_RenderDrawLinesF'
+++'_SDL_RenderDrawRectF'.'SDL2.dll'.'SDL_RenderDrawRectF'
+++'_SDL_RenderDrawRectsF'.'SDL2.dll'.'SDL_RenderDrawRectsF'
+++'_SDL_RenderFillRectF'.'SDL2.dll'.'SDL_RenderFillRectF'
+++'_SDL_RenderFillRectsF'.'SDL2.dll'.'SDL_RenderFillRectsF'
+++'_SDL_RenderCopyF'.'SDL2.dll'.'SDL_RenderCopyF'
+++'_SDL_RenderCopyExF'.'SDL2.dll'.'SDL_RenderCopyExF'
+++'_SDL_GetTouchDeviceType'.'SDL2.dll'.'SDL_GetTouchDeviceType'
+# ++'_SDL_UIKitRunApp'.'SDL2.dll'.'SDL_UIKitRunApp'
+++'_SDL_SIMDGetAlignment'.'SDL2.dll'.'SDL_SIMDGetAlignment'
+++'_SDL_SIMDAlloc'.'SDL2.dll'.'SDL_SIMDAlloc'
+++'_SDL_SIMDFree'.'SDL2.dll'.'SDL_SIMDFree'
+++'_SDL_RWsize'.'SDL2.dll'.'SDL_RWsize'
+++'_SDL_RWseek'.'SDL2.dll'.'SDL_RWseek'
+++'_SDL_RWtell'.'SDL2.dll'.'SDL_RWtell'
+++'_SDL_RWread'.'SDL2.dll'.'SDL_RWread'
+++'_SDL_RWwrite'.'SDL2.dll'.'SDL_RWwrite'
+++'_SDL_RWclose'.'SDL2.dll'.'SDL_RWclose'
+++'_SDL_LoadFile'.'SDL2.dll'.'SDL_LoadFile'
+++'_SDL_Metal_CreateView'.'SDL2.dll'.'SDL_Metal_CreateView'
+++'_SDL_Metal_DestroyView'.'SDL2.dll'.'SDL_Metal_DestroyView'
+++'_SDL_LockTextureToSurface'.'SDL2.dll'.'SDL_LockTextureToSurface'
+++'_SDL_HasARMSIMD'.'SDL2.dll'.'SDL_HasARMSIMD'
+++'_SDL_strtokr'.'SDL2.dll'.'SDL_strtokr'
+++'_SDL_wcsstr'.'SDL2.dll'.'SDL_wcsstr'
+++'_SDL_wcsncmp'.'SDL2.dll'.'SDL_wcsncmp'
+++'_SDL_GameControllerTypeForIndex'.'SDL2.dll'.'SDL_GameControllerTypeForIndex'
+++'_SDL_GameControllerGetType'.'SDL2.dll'.'SDL_GameControllerGetType'
+++'_SDL_GameControllerFromPlayerIndex'.'SDL2.dll'.'SDL_GameControllerFromPlayerIndex'
+++'_SDL_GameControllerSetPlayerIndex'.'SDL2.dll'.'SDL_GameControllerSetPlayerIndex'
+++'_SDL_JoystickFromPlayerIndex'.'SDL2.dll'.'SDL_JoystickFromPlayerIndex'
+++'_SDL_JoystickSetPlayerIndex'.'SDL2.dll'.'SDL_JoystickSetPlayerIndex'
+++'_SDL_SetTextureScaleMode'.'SDL2.dll'.'SDL_SetTextureScaleMode'
+++'_SDL_GetTextureScaleMode'.'SDL2.dll'.'SDL_GetTextureScaleMode'
+++'_SDL_OnApplicationWillTerminate'.'SDL2.dll'.'SDL_OnApplicationWillTerminate'
+++'_SDL_OnApplicationDidReceiveMemoryWarning'.'SDL2.dll'.'SDL_OnApplicationDidReceiveMemoryWarning'
+++'_SDL_OnApplicationWillResignActive'.'SDL2.dll'.'SDL_OnApplicationWillResignActive'
+++'_SDL_OnApplicationDidEnterBackground'.'SDL2.dll'.'SDL_OnApplicationDidEnterBackground'
+++'_SDL_OnApplicationWillEnterForeground'.'SDL2.dll'.'SDL_OnApplicationWillEnterForeground'
+++'_SDL_OnApplicationDidBecomeActive'.'SDL2.dll'.'SDL_OnApplicationDidBecomeActive'
+# ++'_SDL_OnApplicationDidChangeStatusBarOrientation'.'SDL2.dll'.'SDL_OnApplicationDidChangeStatusBarOrientation'
+# ++'_SDL_GetAndroidSDKVersion'.'SDL2.dll'.'SDL_GetAndroidSDKVersion'
+++'_SDL_isupper'.'SDL2.dll'.'SDL_isupper'
+++'_SDL_islower'.'SDL2.dll'.'SDL_islower'
+++'_SDL_JoystickAttachVirtual'.'SDL2.dll'.'SDL_JoystickAttachVirtual'
+++'_SDL_JoystickDetachVirtual'.'SDL2.dll'.'SDL_JoystickDetachVirtual'
+++'_SDL_JoystickIsVirtual'.'SDL2.dll'.'SDL_JoystickIsVirtual'
+++'_SDL_JoystickSetVirtualAxis'.'SDL2.dll'.'SDL_JoystickSetVirtualAxis'
+++'_SDL_JoystickSetVirtualButton'.'SDL2.dll'.'SDL_JoystickSetVirtualButton'
+++'_SDL_JoystickSetVirtualHat'.'SDL2.dll'.'SDL_JoystickSetVirtualHat'
+++'_SDL_GetErrorMsg'.'SDL2.dll'.'SDL_GetErrorMsg'
+++'_SDL_LockSensors'.'SDL2.dll'.'SDL_LockSensors'
+++'_SDL_UnlockSensors'.'SDL2.dll'.'SDL_UnlockSensors'
+++'_SDL_Metal_GetLayer'.'SDL2.dll'.'SDL_Metal_GetLayer'
+++'_SDL_Metal_GetDrawableSize'.'SDL2.dll'.'SDL_Metal_GetDrawableSize'
+++'_SDL_trunc'.'SDL2.dll'.'SDL_trunc'
+++'_SDL_truncf'.'SDL2.dll'.'SDL_truncf'
+++'_SDL_GetPreferredLocales'.'SDL2.dll'.'SDL_GetPreferredLocales'
+++'_SDL_SIMDRealloc'.'SDL2.dll'.'SDL_SIMDRealloc'
+# ++'_SDL_AndroidRequestPermission'.'SDL2.dll'.'SDL_AndroidRequestPermission'
+++'_SDL_OpenURL'.'SDL2.dll'.'SDL_OpenURL'
+++'_SDL_HasSurfaceRLE'.'SDL2.dll'.'SDL_HasSurfaceRLE'
+++'_SDL_GameControllerHasLED'.'SDL2.dll'.'SDL_GameControllerHasLED'
+++'_SDL_GameControllerSetLED'.'SDL2.dll'.'SDL_GameControllerSetLED'
+++'_SDL_JoystickHasLED'.'SDL2.dll'.'SDL_JoystickHasLED'
+++'_SDL_JoystickSetLED'.'SDL2.dll'.'SDL_JoystickSetLED'
+++'_SDL_GameControllerRumbleTriggers'.'SDL2.dll'.'SDL_GameControllerRumbleTriggers'
+++'_SDL_JoystickRumbleTriggers'.'SDL2.dll'.'SDL_JoystickRumbleTriggers'
+++'_SDL_GameControllerHasAxis'.'SDL2.dll'.'SDL_GameControllerHasAxis'
+++'_SDL_GameControllerHasButton'.'SDL2.dll'.'SDL_GameControllerHasButton'
+++'_SDL_GameControllerGetNumTouchpads'.'SDL2.dll'.'SDL_GameControllerGetNumTouchpads'
+++'_SDL_GameControllerGetNumTouchpadFingers'.'SDL2.dll'.'SDL_GameControllerGetNumTouchpadFingers'
+++'_SDL_GameControllerGetTouchpadFinger'.'SDL2.dll'.'SDL_GameControllerGetTouchpadFinger'
+++'_SDL_crc32'.'SDL2.dll'.'SDL_crc32'
+++'_SDL_GameControllerGetSerial'.'SDL2.dll'.'SDL_GameControllerGetSerial'
+++'_SDL_JoystickGetSerial'.'SDL2.dll'.'SDL_JoystickGetSerial'
+++'_SDL_GameControllerHasSensor'.'SDL2.dll'.'SDL_GameControllerHasSensor'
+++'_SDL_GameControllerSetSensorEnabled'.'SDL2.dll'.'SDL_GameControllerSetSensorEnabled'
+++'_SDL_GameControllerIsSensorEnabled'.'SDL2.dll'.'SDL_GameControllerIsSensorEnabled'
+++'_SDL_GameControllerGetSensorData'.'SDL2.dll'.'SDL_GameControllerGetSensorData'
+++'_SDL_wcscasecmp'.'SDL2.dll'.'SDL_wcscasecmp'
+++'_SDL_wcsncasecmp'.'SDL2.dll'.'SDL_wcsncasecmp'
+++'_SDL_round'.'SDL2.dll'.'SDL_round'
+++'_SDL_roundf'.'SDL2.dll'.'SDL_roundf'
+++'_SDL_lround'.'SDL2.dll'.'SDL_lround'
+++'_SDL_lroundf'.'SDL2.dll'.'SDL_lroundf'
+++'_SDL_SoftStretchLinear'.'SDL2.dll'.'SDL_SoftStretchLinear'
+++'_SDL_RenderGetD3D11Device'.'SDL2.dll'.'SDL_RenderGetD3D11Device'
+++'_SDL_UpdateNVTexture'.'SDL2.dll'.'SDL_UpdateNVTexture'
+++'_SDL_SetWindowKeyboardGrab'.'SDL2.dll'.'SDL_SetWindowKeyboardGrab'
+++'_SDL_SetWindowMouseGrab'.'SDL2.dll'.'SDL_SetWindowMouseGrab'
+++'_SDL_GetWindowKeyboardGrab'.'SDL2.dll'.'SDL_GetWindowKeyboardGrab'
+++'_SDL_GetWindowMouseGrab'.'SDL2.dll'.'SDL_GetWindowMouseGrab'
+++'_SDL_isalpha'.'SDL2.dll'.'SDL_isalpha'
+++'_SDL_isalnum'.'SDL2.dll'.'SDL_isalnum'
+++'_SDL_isblank'.'SDL2.dll'.'SDL_isblank'
+++'_SDL_iscntrl'.'SDL2.dll'.'SDL_iscntrl'
+++'_SDL_isxdigit'.'SDL2.dll'.'SDL_isxdigit'
+++'_SDL_ispunct'.'SDL2.dll'.'SDL_ispunct'
+++'_SDL_isprint'.'SDL2.dll'.'SDL_isprint'
+++'_SDL_isgraph'.'SDL2.dll'.'SDL_isgraph'
+# ++'_SDL_AndroidShowToast'.'SDL2.dll'.'SDL_AndroidShowToast'
+++'_SDL_GetAudioDeviceSpec'.'SDL2.dll'.'SDL_GetAudioDeviceSpec'
+++'_SDL_TLSCleanup'.'SDL2.dll'.'SDL_TLSCleanup'
+++'_SDL_SetWindowAlwaysOnTop'.'SDL2.dll'.'SDL_SetWindowAlwaysOnTop'
+++'_SDL_FlashWindow'.'SDL2.dll'.'SDL_FlashWindow'
+++'_SDL_GameControllerSendEffect'.'SDL2.dll'.'SDL_GameControllerSendEffect'
+++'_SDL_JoystickSendEffect'.'SDL2.dll'.'SDL_JoystickSendEffect'
+++'_SDL_GameControllerGetSensorDataRate'.'SDL2.dll'.'SDL_GameControllerGetSensorDataRate'
+++'_SDL_SetTextureUserData'.'SDL2.dll'.'SDL_SetTextureUserData'
+++'_SDL_GetTextureUserData'.'SDL2.dll'.'SDL_GetTextureUserData'
+++'_SDL_RenderGeometry'.'SDL2.dll'.'SDL_RenderGeometry'
+++'_SDL_RenderGeometryRaw'.'SDL2.dll'.'SDL_RenderGeometryRaw'
+++'_SDL_RenderSetVSync'.'SDL2.dll'.'SDL_RenderSetVSync'
+++'_SDL_asprintf'.'SDL2.dll'.'SDL_asprintf'
+++'_SDL_vasprintf'.'SDL2.dll'.'SDL_vasprintf'
+++'_SDL_GetWindowICCProfile'.'SDL2.dll'.'SDL_GetWindowICCProfile'
+++'_SDL_GetTicks64'.'SDL2.dll'.'SDL_GetTicks64'
+# ++'_SDL_LinuxSetThreadPriorityAndPolicy'.'SDL2.dll'.'SDL_LinuxSetThreadPriorityAndPolicy'
+++'_SDL_GameControllerGetAppleSFSymbolsNameForButton'.'SDL2.dll'.'SDL_GameControllerGetAppleSFSymbolsNameForButton'
+++'_SDL_GameControllerGetAppleSFSymbolsNameForAxis'.'SDL2.dll'.'SDL_GameControllerGetAppleSFSymbolsNameForAxis'
+++'_SDL_hid_init'.'SDL2.dll'.'SDL_hid_init'
+++'_SDL_hid_exit'.'SDL2.dll'.'SDL_hid_exit'
+++'_SDL_hid_device_change_count'.'SDL2.dll'.'SDL_hid_device_change_count'
+++'_SDL_hid_enumerate'.'SDL2.dll'.'SDL_hid_enumerate'
+++'_SDL_hid_free_enumeration'.'SDL2.dll'.'SDL_hid_free_enumeration'
+++'_SDL_hid_open'.'SDL2.dll'.'SDL_hid_open'
+++'_SDL_hid_open_path'.'SDL2.dll'.'SDL_hid_open_path'
+++'_SDL_hid_write'.'SDL2.dll'.'SDL_hid_write'
+++'_SDL_hid_read_timeout'.'SDL2.dll'.'SDL_hid_read_timeout'
+++'_SDL_hid_read'.'SDL2.dll'.'SDL_hid_read'
+++'_SDL_hid_set_nonblocking'.'SDL2.dll'.'SDL_hid_set_nonblocking'
+++'_SDL_hid_send_feature_report'.'SDL2.dll'.'SDL_hid_send_feature_report'
+++'_SDL_hid_get_feature_report'.'SDL2.dll'.'SDL_hid_get_feature_report'
+++'_SDL_hid_close'.'SDL2.dll'.'SDL_hid_close'
+++'_SDL_hid_get_manufacturer_string'.'SDL2.dll'.'SDL_hid_get_manufacturer_string'
+++'_SDL_hid_get_product_string'.'SDL2.dll'.'SDL_hid_get_product_string'
+++'_SDL_hid_get_serial_number_string'.'SDL2.dll'.'SDL_hid_get_serial_number_string'
+++'_SDL_hid_get_indexed_string'.'SDL2.dll'.'SDL_hid_get_indexed_string'
+++'_SDL_SetWindowMouseRect'.'SDL2.dll'.'SDL_SetWindowMouseRect'
+++'_SDL_GetWindowMouseRect'.'SDL2.dll'.'SDL_GetWindowMouseRect'
+++'_SDL_RenderWindowToLogical'.'SDL2.dll'.'SDL_RenderWindowToLogical'
+++'_SDL_RenderLogicalToWindow'.'SDL2.dll'.'SDL_RenderLogicalToWindow'
+++'_SDL_JoystickHasRumble'.'SDL2.dll'.'SDL_JoystickHasRumble'
+++'_SDL_JoystickHasRumbleTriggers'.'SDL2.dll'.'SDL_JoystickHasRumbleTriggers'
+++'_SDL_GameControllerHasRumble'.'SDL2.dll'.'SDL_GameControllerHasRumble'
+++'_SDL_GameControllerHasRumbleTriggers'.'SDL2.dll'.'SDL_GameControllerHasRumbleTriggers'
+++'_SDL_hid_ble_scan'.'SDL2.dll'.'SDL_hid_ble_scan'
+++'_SDL_PremultiplyAlpha'.'SDL2.dll'.'SDL_PremultiplyAlpha'
+# ++'_SDL_AndroidSendMessage'.'SDL2.dll'.'SDL_AndroidSendMessage'
+++'_SDL_GetTouchName'.'SDL2.dll'.'SDL_GetTouchName'
+++'_SDL_ClearComposition'.'SDL2.dll'.'SDL_ClearComposition'
+++'_SDL_IsTextInputShown'.'SDL2.dll'.'SDL_IsTextInputShown'
+++'_SDL_HasIntersectionF'.'SDL2.dll'.'SDL_HasIntersectionF'
+++'_SDL_IntersectFRect'.'SDL2.dll'.'SDL_IntersectFRect'
+++'_SDL_UnionFRect'.'SDL2.dll'.'SDL_UnionFRect'
+++'_SDL_EncloseFPoints'.'SDL2.dll'.'SDL_EncloseFPoints'
+++'_SDL_IntersectFRectAndLine'.'SDL2.dll'.'SDL_IntersectFRectAndLine'
+++'_SDL_RenderGetWindow'.'SDL2.dll'.'SDL_RenderGetWindow'
+++'_SDL_bsearch'.'SDL2.dll'.'SDL_bsearch'
+++'_SDL_GameControllerPathForIndex'.'SDL2.dll'.'SDL_GameControllerPathForIndex'
+++'_SDL_GameControllerPath'.'SDL2.dll'.'SDL_GameControllerPath'
+++'_SDL_JoystickPathForIndex'.'SDL2.dll'.'SDL_JoystickPathForIndex'
+++'_SDL_JoystickPath'.'SDL2.dll'.'SDL_JoystickPath'
+++'_SDL_JoystickAttachVirtualEx'.'SDL2.dll'.'SDL_JoystickAttachVirtualEx'
diff --git a/src/dynapi/gendynapi.pl b/src/dynapi/gendynapi.pl
index b99a8a4..a9ff972 100755
--- a/src/dynapi/gendynapi.pl
+++ b/src/dynapi/gendynapi.pl
@@ -33,6 +33,7 @@ use File::Basename;
 chdir(dirname(__FILE__) . '/../..');
 my $sdl_dynapi_procs_h = "src/dynapi/SDL_dynapi_procs.h";
 my $sdl_dynapi_overrides_h = "src/dynapi/SDL_dynapi_overrides.h";
+my $sdl2_exports = "src/dynapi/SDL2.exports";
 
 my %existing = ();
 if (-f $sdl_dynapi_procs_h) {
@@ -47,6 +48,7 @@ if (-f $sdl_dynapi_procs_h) {
 
 open(SDL_DYNAPI_PROCS_H, '>>', $sdl_dynapi_procs_h) or die("Can't open $sdl_dynapi_procs_h: $!\n");
 open(SDL_DYNAPI_OVERRIDES_H, '>>', $sdl_dynapi_overrides_h) or die("Can't open $sdl_dynapi_overrides_h: $!\n");
+open(SDL2_EXPORTS, '>>', $sdl2_exports) or die("Can't open $sdl2_exports: $!\n");
 
 opendir(HEADERS, 'include') or die("Can't open include dir: $!\n");
 while (my $d = readdir(HEADERS)) {
@@ -133,6 +135,7 @@ while (my $d = readdir(HEADERS)) {
             print("NEW: $decl\n");
             print SDL_DYNAPI_PROCS_H "SDL_DYNAPI_PROC($rc,$fn,$paramstr,$argstr,$retstr)\n";
             print SDL_DYNAPI_OVERRIDES_H "#define $fn ${fn}_REAL\n";
+            print SDL2_EXPORTS "++'_${fn}'.'SDL2.dll'.'${fn}'\n";
         } else {
             print("Failed to parse decl [$decl]!\n");
         }
@@ -143,5 +146,6 @@ closedir(HEADERS);
 
 close(SDL_DYNAPI_PROCS_H);
 close(SDL_DYNAPI_OVERRIDES_H);
+close(SDL2_EXPORTS);
 
 # vi: set ts=4 sw=4 expandtab: