1 /*
2  * SDLmm - a C++ wrapper for SDL and related libraries
3  * Copyright � 2001 David Hedbor <david@hedbor.org>
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License as
7  * published by the Free Software Foundation; either version 2 of the
8  * License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  *
19  */
20 
21 /*! \mainpage SDLmm - A C++ Wrapper for the Simple DirectMedia Layer
22   \section intro Introduction
23 
24   SDLmm is a C++ glue for SDL, or the Simple DirectMedia Layer, which
25   is a generic API that provides low level access to audio, keyboard,
26   mouse, joystick, 3D hardware via OpenGL, and 2D framebuffer across
27   multiple platforms.
28 
29   SDLmm aims to stay as close as possible to the C API while taking
30   advantage of native C++ features like object orientation. We will
31   also aim at being platform independent as much as possible. I.e
32   we'll try to support ever platform supported by SDL.
33 
34   \section misc Project Page
35 
36   This website and the SDLmm project pages are hosted at <a
37   href="http://sourceforge.net/">SourceForge</a>. For CVS information,
38   downloads, bug tracking, feature requests, mailing list information
39   and more, visit <a href="http://sourceforge.net/projects/sdlmm/">our
40   SourceForge project page</a>.
41 
42   \section license Licensing
43 
44   This library is, like SDL, distributed under GNU LGPL version 2
45   license, which can be found in the file \e COPYING. This license
46   allows you to use SDLmm freely in commercial programs as long as you
47   link with the dynamic library.
48 
49   \section develplan Development Plan
50 
51   This is a brief idea of the planned order of implementation, in
52   order of priority (highest first).
53 
54   - Implement a complete wrapper around the SDL library, using a
55     logical and simple object oriented design. Use as few global
56     functions as possible.
57 
58    - Add support for commonly used third party libraries. This
59      includes popular libs like SDL_image, SDL_ttf and SDL_mixer.
60 
61    - Build new features on the SDLmm framework, adding useful features
62      not available in SDL. This might include utility functions like
63      scaled blitting, drawing primitives (lines, polygons etc) and
64      sprites. Since there are other libraries providing many of these
65      features, it is to be determined what actually will be added.
66 
67    \section goals Development Goals
68 
69    - Build a logical C++ glue, allowing for easy-to-use object
70      oriented SDL programming, keeping everything within it's own
71      namespace, SDLmm.
72 
73    - Stay as close as possible to the syntax as SDL. This includes
74      using a similar naming scheme. For example SDL_BlitSurface()
75      becomes SDLmm::Surface::Blit().
76 
77   - When it makes sense, convert functions to returning true of false
78     to indiciate success/failure as opposed to 0 or -1. Sometimes this
79     is not viable, since a function might return 0, -1 or -2 (for
80     example).
81 
82   - Avoid the use of unnecessary global functions. If it makes sense
83     to move a function to a class, then it should be done. Also, avoid
84     duplication. I.e if there is a SDLmm::Surface::LoadBMP() method, there
85     won't be a global SDLmm::LoadBMP() method.
86 
87   - Use of exceptions is yet to be decided. Right now, none are
88     used. However they should be considered for use in at least
89     constructors where there is no other way to indicate a failure
90     than to thrown an exception. In any case, exceptions would only be
91     used for FATAL errors.
92 
93   \section docgoals Documentation Goals
94 
95   - Write and maintain class documentation using the doxygen
96     toolkit. All actual documentation is to be done in the include
97     files (and not the .cpp files). The reason being that the .h files
98     always will include all functions, while the .cpp files might not
99     (i.e inlined functions).
100 
101   - Write annotated code examples. Doxygen has a very nice feature for
102     doing this. It just takes time to write the examples and to
103     document them.
104 
105 */
106 
107 /*! \file sdlmm.h
108   This include file is to be used in all SDLmm applications. All files
109   requires are included here. You can also include just the files you
110   need (for performance reasons), but beware of cross-file
111   dependencies.
112  */
113 
114 #ifndef SDLMM_H
115 #define SDLMM_H
116 #include <SDL.h>
117 /* The undef kludge is to prevent conflicts with other automake
118  * packages..
119  */
120 #undef PACKAGE
121 #undef VERSION
122 #include "sdlmm_config.h"
123 #undef PACKAGE
124 #undef VERSION
125 #include "sdlmm_global.h"
126 #include "sdlmm_spoint.h"
127 #include "sdlmm_srect.h"
128 #include "sdlmm_color.h"
129 #include "sdlmm_basesurface.h"
130 #include "sdlmm_surface.h"
131 #include "sdlmm_videoinfo.h"
132 #include "sdlmm_pixelformat.h"
133 #include "sdlmm_display.h"
134 #include "sdlmm_eventhandler.h"
135 #include "sdlmm_event.h"
136 #include "sdlmm_timer.h"
137 #endif // SDLMM_H
138