1 |
/* |
2 |
SDL - Simple DirectMedia Layer |
3 |
Copyright (C) 1997, 1998, 1999, 2000, 2001 Sam Lantinga |
4 |
|
5 |
This library is free software; you can redistribute it and/or |
6 |
modify it under the terms of the GNU Library General Public |
7 |
License as published by the Free Software Foundation; either |
8 |
version 2 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 |
Library General Public License for more details. |
14 |
|
15 |
You should have received a copy of the GNU Library General Public |
16 |
License along with this library; if not, write to the Free |
17 |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
18 |
|
19 |
Sam Lantinga |
20 |
slouken@devolution.com |
21 |
*/ |
22 |
|
23 |
#ifdef SAVE_RCSID |
24 |
static char rcsid = |
25 |
"@(#) $Id: SDL_version.h,v 1.2.2.15 2001/02/17 01:45:30 hercules Exp $"; |
26 |
#endif |
27 |
|
28 |
/* This header defines the current SDL version */ |
29 |
|
30 |
#ifndef _SDL_version_h |
31 |
#define _SDL_version_h |
32 |
|
33 |
#include "SDL_types.h" |
34 |
|
35 |
#include "begin_code.h" |
36 |
/* Set up for C function definitions, even when using C++ */ |
37 |
#ifdef __cplusplus |
38 |
extern "C" { |
39 |
#endif |
40 |
|
41 |
/* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL |
42 |
*/ |
43 |
#define SDL_MAJOR_VERSION 1 |
44 |
#define SDL_MINOR_VERSION 2 |
45 |
#define SDL_PATCHLEVEL 0 |
46 |
|
47 |
typedef struct { |
48 |
Uint8 major; |
49 |
Uint8 minor; |
50 |
Uint8 patch; |
51 |
} SDL_version; |
52 |
|
53 |
/* This macro can be used to fill a version structure with the compile-time |
54 |
* version of the SDL library. |
55 |
*/ |
56 |
#define SDL_VERSION(X) \ |
57 |
{ \ |
58 |
(X)->major = SDL_MAJOR_VERSION; \ |
59 |
(X)->minor = SDL_MINOR_VERSION; \ |
60 |
(X)->patch = SDL_PATCHLEVEL; \ |
61 |
} |
62 |
|
63 |
/* This macro turns the version numbers into a numeric value: |
64 |
(1,2,3) -> (1203) |
65 |
This assumes that there will never be more than 100 patchlevels |
66 |
*/ |
67 |
#define SDL_VERSIONNUM(X, Y, Z) \ |
68 |
(X)*1000 + (Y)*100 + (Z) |
69 |
|
70 |
/* This is the version number macro for the current SDL version */ |
71 |
#define SDL_COMPILEDVERSION \ |
72 |
SDL_VERSIONNUM(SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL) |
73 |
|
74 |
/* This macro will evaluate to true if compiled with SDL at least X.Y.Z */ |
75 |
#define SDL_VERSION_ATLEAST(X, Y, Z) \ |
76 |
(SDL_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z)) |
77 |
|
78 |
/* This function gets the version of the dynamically linked SDL library. |
79 |
it should NOT be used to fill a version structure, instead you should |
80 |
use the SDL_Version() macro. |
81 |
*/ |
82 |
extern DECLSPEC const SDL_version * SDL_Linked_Version(void); |
83 |
|
84 |
/* Ends C function definitions when using C++ */ |
85 |
#ifdef __cplusplus |
86 |
} |
87 |
#endif |
88 |
#include "close_code.h" |
89 |
|
90 |
#endif /* _SDL_version_h */ |