]>
Commit | Line | Data |
---|---|---|
1 | /* | |
2 | SDL - Simple DirectMedia Layer | |
3 | Copyright (C) 1997-2006 Sam Lantinga | |
4 | ||
5 | This library is free software; you can redistribute it and/or | |
6 | modify it under the terms of the GNU Lesser General Public | |
7 | License as published by the Free Software Foundation; either | |
8 | version 2.1 of the License, or (at your option) any later version. | |
9 | ||
10 | This library is distributed in the hope that it will be useful, | |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 | Lesser General Public License for more details. | |
14 | ||
15 | You should have received a copy of the GNU Lesser General Public | |
16 | License along with this library; if not, write to the Free Software | |
17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | |
18 | ||
19 | Sam Lantinga | |
20 | slouken@libsdl.org | |
21 | */ | |
22 | ||
23 | /* This header defines the current SDL version */ | |
24 | ||
25 | #ifndef _SDL_version_h | |
26 | #define _SDL_version_h | |
27 | ||
28 | #include "SDL_stdinc.h" | |
29 | ||
30 | #include "begin_code.h" | |
31 | /* Set up for C function definitions, even when using C++ */ | |
32 | #ifdef __cplusplus | |
33 | extern "C" { | |
34 | #endif | |
35 | ||
36 | /* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL | |
37 | */ | |
38 | #define SDL_MAJOR_VERSION 1 | |
39 | #define SDL_MINOR_VERSION 2 | |
40 | #define SDL_PATCHLEVEL 13 | |
41 | ||
42 | typedef struct SDL_version { | |
43 | Uint8 major; | |
44 | Uint8 minor; | |
45 | Uint8 patch; | |
46 | } SDL_version; | |
47 | ||
48 | /* This macro can be used to fill a version structure with the compile-time | |
49 | * version of the SDL library. | |
50 | */ | |
51 | #define SDL_VERSION(X) \ | |
52 | { \ | |
53 | (X)->major = SDL_MAJOR_VERSION; \ | |
54 | (X)->minor = SDL_MINOR_VERSION; \ | |
55 | (X)->patch = SDL_PATCHLEVEL; \ | |
56 | } | |
57 | ||
58 | /* This macro turns the version numbers into a numeric value: | |
59 | (1,2,3) -> (1203) | |
60 | This assumes that there will never be more than 100 patchlevels | |
61 | */ | |
62 | #define SDL_VERSIONNUM(X, Y, Z) \ | |
63 | ((X)*1000 + (Y)*100 + (Z)) | |
64 | ||
65 | /* This is the version number macro for the current SDL version */ | |
66 | #define SDL_COMPILEDVERSION \ | |
67 | SDL_VERSIONNUM(SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL) | |
68 | ||
69 | /* This macro will evaluate to true if compiled with SDL at least X.Y.Z */ | |
70 | #define SDL_VERSION_ATLEAST(X, Y, Z) \ | |
71 | (SDL_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z)) | |
72 | ||
73 | /* This function gets the version of the dynamically linked SDL library. | |
74 | it should NOT be used to fill a version structure, instead you should | |
75 | use the SDL_Version() macro. | |
76 | */ | |
77 | extern DECLSPEC const SDL_version * SDLCALL SDL_Linked_Version(void); | |
78 | ||
79 | /* Ends C function definitions when using C++ */ | |
80 | #ifdef __cplusplus | |
81 | } | |
82 | #endif | |
83 | #include "close_code.h" | |
84 | ||
85 | #endif /* _SDL_version_h */ |