Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  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.3 2001/06/19 13:35:05 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          2
  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 */
  91.