69 lines
2.1 KiB
C
69 lines
2.1 KiB
C
#define RENDERER_AUTO 0
|
|
#define RENDERER_DIRECT3D 1
|
|
#define RENDERER_OPENGL 2
|
|
#define RENDERER_OPENGLES2 3
|
|
#define RENDERER_OPENGLES 4
|
|
#define RENDERER_SOFTWARE 5
|
|
#define RENDERER_GL3 6
|
|
|
|
struct sdl_render_driver;
|
|
|
|
typedef struct sdl_renderer_t {
|
|
int (*init)(SDL_Window* window, struct sdl_render_driver driver, SDL_Rect screen);
|
|
void (*close)();
|
|
void (*update)(SDL_Window* window, SDL_Rect updated_rect, BITMAP* screen);
|
|
void (*present)(SDL_Window* window, SDL_Rect texture_rect, SDL_Rect window_rect, SDL_Rect screen);
|
|
int always_update;
|
|
} sdl_renderer_t;
|
|
|
|
typedef struct sdl_render_driver {
|
|
int id;
|
|
const char* sdl_id;
|
|
const char* name;
|
|
int sdl_window_params;
|
|
sdl_renderer_t* (*renderer_create)();
|
|
void (*renderer_close)(sdl_renderer_t* renderer);
|
|
int (*renderer_available)(struct sdl_render_driver* driver);
|
|
} sdl_render_driver;
|
|
|
|
typedef float (*FLASH_FUNC)(float v);
|
|
|
|
typedef struct flash_t {
|
|
int enabled;
|
|
int time;
|
|
char color[4];
|
|
int start;
|
|
char alpha;
|
|
FLASH_FUNC func;
|
|
} flash_t;
|
|
|
|
flash_t flash;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
int sdl_video_init();
|
|
void sdl_video_close();
|
|
int sdl_renderer_init(SDL_Window* window);
|
|
void sdl_renderer_close();
|
|
int sdl_renderer_update(SDL_Window* window);
|
|
void sdl_renderer_present(SDL_Window* window);
|
|
void sdl_scale(int scale, SDL_Rect src, SDL_Rect* dst, int w, int h);
|
|
int sdl_is_fullscreen(SDL_Window* window);
|
|
|
|
sdl_render_driver* sdl_get_render_drivers(int* num_renderers);
|
|
sdl_render_driver sdl_get_render_driver_by_id(int id, int def);
|
|
sdl_render_driver sdl_get_render_driver_by_name(const char* name, int def);
|
|
sdl_render_driver* sdl_get_render_driver_by_name_ptr(const char* name);
|
|
|
|
void color_flash(FLASH_FUNC func, int time_ms, char r, char g, char b, char a);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
extern sdl_render_driver requested_render_driver;
|
|
extern char current_render_driver_name[50];
|
|
|
|
extern int custom_resolution_width;
|
|
extern int custom_resolution_height;
|