2 // C Interface: texture
7 // Author: Tobias Glaesser <tobi.web@gmx.de>, (C) 2004
9 // Copyright: See COPYING file that comes with this distribution
13 #ifndef SUPERTUX_TEXTURE_H
14 #define SUPERTUX_TEXTURE_H
20 #include "SDL_opengl.h"
26 typedef struct texture_type
28 SDL_Surface* sdl_surface;
34 void texture_setup(void);
35 extern void (*texture_load) (texture_type* ptexture, const std::string& file, int use_alpha);
36 extern void (*texture_load_part) (texture_type* ptexture, const std::string& file, int x, int y, int w, int h, int use_alpha);
37 extern void (*texture_free) (texture_type* ptexture);
38 extern void (*texture_draw) (texture_type* ptexture, float x, float y, bool update = false);
39 extern void (*texture_draw_bg) (texture_type* ptexture, bool update = false);
40 extern void (*texture_draw_part) (texture_type* ptexture, float sx, float sy, float x, float y, float w, float h, bool update = false);
41 void texture_load_sdl(texture_type* ptexture, const std::string&, int use_alpha);
42 void texture_load_part_sdl(texture_type* ptexture, const std::string& file, int x, int y, int w, int h, int use_alpha);
43 void texture_free_sdl(texture_type* ptexture);
44 void texture_draw_sdl(texture_type* ptexture, float x, float y, bool update);
45 void texture_draw_bg_sdl(texture_type* ptexture, bool update);
46 void texture_draw_part_sdl(texture_type* ptexture,float sx, float sy, float x, float y, float w, float h, bool update);
47 void texture_from_sdl_surface(texture_type* ptexture, SDL_Surface * sdl_surf, int use_alpha);
49 void texture_load_gl(texture_type* ptexture, const std::string& file, int use_alpha);
50 void texture_load_part_gl(texture_type* ptexture, const std::string& file, int x, int y, int w, int h, int use_alpha);
51 void texture_free_gl(texture_type* ptexture);
52 void texture_draw_gl(texture_type* ptexture, float x, float y, bool update);
53 void texture_draw_bg_gl(texture_type* ptexture, bool update);
54 void texture_draw_part_gl(texture_type* ptexture, float sx, float sy, float x, float y, float w, float h, bool update);
55 void texture_create_gl(SDL_Surface * surf, GLuint * tex);
58 #endif /*SUPERTUX_TEXTURE_H*/