2 // Copyright (C) 2006 Matthias Braun <matze@braunis.de>
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
14 // You should have received a copy of the GNU General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
19 #include "supertux/gameconfig.hpp"
20 #include "video/gl/gl_lightmap.hpp"
21 #include "video/gl/gl_renderer.hpp"
22 #include "video/gl/gl_surface_data.hpp"
23 #include "video/gl/gl_texture.hpp"
24 #include "video/lightmap.hpp"
25 #include "video/renderer.hpp"
26 #include "video/sdl/sdl_lightmap.hpp"
27 #include "video/sdl/sdl_renderer.hpp"
28 #include "video/sdl/sdl_surface_data.hpp"
29 #include "video/sdl/sdl_texture.hpp"
30 #include "video/texture.hpp"
31 #include "video/video_systems.hpp"
34 VideoSystem::new_renderer()
36 switch(g_config->video)
40 log_info << "new GL renderer\n";
41 return new GLRenderer();
43 log_warning << "new SDL renderer\n";
44 return new SDLRenderer();
48 log_info << "new GL renderer\n";
49 return new GLRenderer();
52 log_warning << "new SDL renderer\n";
53 return new SDLRenderer();
55 assert(0 && "invalid video system in config");
57 log_info << "new GL renderer\n";
58 return new GLRenderer();
60 log_warning << "new SDL renderer\n";
61 return new SDLRenderer();
67 VideoSystem::new_lightmap()
69 switch(g_config->video)
73 return new GLLightmap();
75 return new SDLLightmap();
79 return new GLLightmap();
82 return new SDLLightmap();
84 assert(0 && "invalid video system in config");
86 return new GLLightmap();
88 return new SDLLightmap();
94 VideoSystem::new_texture(SDL_Surface *image)
96 switch(g_config->video)
100 return new GLTexture(image);
102 return new SDLTexture(image);
106 return new GLTexture(image);
109 return new SDLTexture(image);
111 assert(0 && "invalid video system in config");
113 return new GLTexture(image);
115 return new SDLTexture(image);
121 VideoSystem::new_surface_data(const Surface &surface)
123 switch(g_config->video)
127 return new GLSurfaceData(surface);
129 return new SDLSurfaceData(surface);
133 return new GLSurfaceData(surface);
136 return new SDLSurfaceData(surface);
138 assert(0 && "invalid video system in config");
140 return new GLSurfaceData(surface);
142 return new SDLSurfaceData(surface);
148 VideoSystem::free_surface_data(SurfaceData* surface_data)
154 VideoSystem::get_video_system(const std::string &video)
161 else if(video == "opengl")
166 else if(video == "sdl")
177 VideoSystem::get_video_string(VideoSystem::Enum video)
188 assert(0 && "invalid video system in config");