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