author | Philipp Wiesemann <philipp.wiesemann@arcor.de> |
Sun, 17 Jul 2016 20:32:44 +0200 | |
changeset 10197 | 623c40e8fd65 |
parent 10066 | 15b261fad7b9 |
permissions | -rw-r--r-- |
8094
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
1 |
/* |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
2 |
Simple DirectMedia Layer |
9998
f67cf37e9cd4
Updated copyright to 2016
Sam Lantinga <slouken@libsdl.org>
parents:
9619
diff
changeset
|
3 |
Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> |
8094
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
4 |
|
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
5 |
This software is provided 'as-is', without any express or implied |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
6 |
warranty. In no event will the authors be held liable for any damages |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
7 |
arising from the use of this software. |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
8 |
|
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
9 |
Permission is granted to anyone to use this software for any purpose, |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
10 |
including commercial applications, and to alter it and redistribute it |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
11 |
freely, subject to the following restrictions: |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
12 |
|
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
13 |
1. The origin of this software must not be misrepresented; you must not |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
14 |
claim that you wrote the original software. If you use this software |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
15 |
in a product, an acknowledgment in the product documentation would be |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
16 |
appreciated but is not required. |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
17 |
2. Altered source versions must be plainly marked as such, and must not be |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
18 |
misrepresented as being the original software. |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
19 |
3. This notice may not be removed or altered from any source distribution. |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
20 |
*/ |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
21 |
|
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
22 |
#ifndef _SDL_dynapi_h |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
23 |
#define _SDL_dynapi_h |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
24 |
|
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
25 |
/* IMPORTANT: |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
26 |
This is the master switch to disabling the dynamic API. We made it so you |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
27 |
have to hand-edit an internal source file in SDL to turn it off; you |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
28 |
can do it if you want it badly enough, but hopefully you won't want to. |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
29 |
You should understand the ramifications of turning this off: it makes it |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
30 |
hard to update your SDL in the field, and impossible if you've statically |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
31 |
linked SDL into your app. Understand that platforms change, and if we can't |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
32 |
drop in an updated SDL, your application can definitely break some time |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
33 |
in the future, even if it's fine today. |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
34 |
To be sure, as new system-level video and audio APIs are introduced, an |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
35 |
updated SDL can transparently take advantage of them, but your program will |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
36 |
not without this feature. Think hard before turning it off. |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
37 |
*/ |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
38 |
#ifdef SDL_DYNAMIC_API /* Tried to force it on the command line? */ |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
39 |
#error Nope, you have to edit this file to force this off. |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
40 |
#endif |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
41 |
|
8121
1b62b081a83b
Fix detection of iOS for disabling dynamic API.
Ryan C. Gordon <icculus@icculus.org>
parents:
8094
diff
changeset
|
42 |
#ifdef __APPLE__ |
1b62b081a83b
Fix detection of iOS for disabling dynamic API.
Ryan C. Gordon <icculus@icculus.org>
parents:
8094
diff
changeset
|
43 |
#include "TargetConditionals.h" |
1b62b081a83b
Fix detection of iOS for disabling dynamic API.
Ryan C. Gordon <icculus@icculus.org>
parents:
8094
diff
changeset
|
44 |
#endif |
1b62b081a83b
Fix detection of iOS for disabling dynamic API.
Ryan C. Gordon <icculus@icculus.org>
parents:
8094
diff
changeset
|
45 |
|
10197
623c40e8fd65
Fixed compile warnings about evaluating undefined identifiers.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents:
10066
diff
changeset
|
46 |
#if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE /* probably not useful on iOS. */ |
623c40e8fd65
Fixed compile warnings about evaluating undefined identifiers.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents:
10066
diff
changeset
|
47 |
#define SDL_DYNAMIC_API 0 |
623c40e8fd65
Fixed compile warnings about evaluating undefined identifiers.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents:
10066
diff
changeset
|
48 |
#elif defined(__native_client__) && __native_client__ /* probably not useful on NACL. */ |
8094
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
49 |
#define SDL_DYNAMIC_API 0 |
10197
623c40e8fd65
Fixed compile warnings about evaluating undefined identifiers.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents:
10066
diff
changeset
|
50 |
#elif defined(__EMSCRIPTEN__) && __EMSCRIPTEN__ /* probably not useful on Emscripten. */ |
8611
a762dfc67e1a
Fixed various build and runtime errors when using WinRT with VS2012.
David Ludwig <dludwig@pobox.com>
parents:
8149
diff
changeset
|
51 |
#define SDL_DYNAMIC_API 0 |
10197
623c40e8fd65
Fixed compile warnings about evaluating undefined identifiers.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents:
10066
diff
changeset
|
52 |
#elif defined(SDL_BUILDING_WINRT) && SDL_BUILDING_WINRT /* probably not useful on WinRT, given current .dll loading restrictions */ |
623c40e8fd65
Fixed compile warnings about evaluating undefined identifiers.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents:
10066
diff
changeset
|
53 |
#define SDL_DYNAMIC_API 0 |
623c40e8fd65
Fixed compile warnings about evaluating undefined identifiers.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents:
10066
diff
changeset
|
54 |
#elif defined(__PSP__) && __PSP__ |
10066
15b261fad7b9
PSP: Deactivated dynamic API.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents:
9998
diff
changeset
|
55 |
#define SDL_DYNAMIC_API 0 |
8640
89bab8249c74
Don't overwrite SDL_dynapi.h in checker-buildbot.sh.
Ryan C. Gordon <icculus@icculus.org>
parents:
8611
diff
changeset
|
56 |
#elif defined(__clang_analyzer__) |
89bab8249c74
Don't overwrite SDL_dynapi.h in checker-buildbot.sh.
Ryan C. Gordon <icculus@icculus.org>
parents:
8611
diff
changeset
|
57 |
#define SDL_DYNAMIC_API 0 /* Turn off for static analysis, so reports are more clear. */ |
9442
6073a89fc0eb
Make the Dynamic API master switch more clear.
Ryan C. Gordon <icculus@icculus.org>
parents:
9278
diff
changeset
|
58 |
#endif |
6073a89fc0eb
Make the Dynamic API master switch more clear.
Ryan C. Gordon <icculus@icculus.org>
parents:
9278
diff
changeset
|
59 |
|
6073a89fc0eb
Make the Dynamic API master switch more clear.
Ryan C. Gordon <icculus@icculus.org>
parents:
9278
diff
changeset
|
60 |
/* everyone else. This is where we turn on the API if nothing forced it off. */ |
6073a89fc0eb
Make the Dynamic API master switch more clear.
Ryan C. Gordon <icculus@icculus.org>
parents:
9278
diff
changeset
|
61 |
#ifndef SDL_DYNAMIC_API |
8094
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
62 |
#define SDL_DYNAMIC_API 1 |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
63 |
#endif |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
64 |
|
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
65 |
#endif |
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
66 |
|
9efaae827924
Implemented the Dynamic API magic.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
67 |
/* vi: set ts=4 sw=4 expandtab: */ |