1 #ifdef HAVE_CONFIG_H
2 #include "config.h"
3 #endif
4 
5 #define FSE_INTERNAL_API
6 #include <fs/conf.h>
7 #include <fs/emu/buffer.h>
8 #include <fs/emu/input.h>
9 #include <fs/emu/options.h>
10 #include <fs/emu/video.h>
11 #include <fs/log.h>
12 
13 #include <stdbool.h>
14 #include <string.h>
15 
16 fse_video_t fse_video = {};
17 
fse_drivers(void)18 bool fse_drivers(void)
19 {
20     return fse_video.drivers;
21 }
22 
fs_emu_buffer_configure(int width,int height)23 void fs_emu_buffer_configure(int width, int height)
24 {
25     fse_video.configure_buffer(width, height);
26 }
27 
fs_emu_buffer_finish(fs_emu_buffer * buffer)28 void fs_emu_buffer_finish(fs_emu_buffer *buffer)
29 {
30     fse_video.finish_buffer(buffer);
31 }
32 
fs_emu_buffer_get(void)33 fs_emu_buffer *fs_emu_buffer_get(void)
34 {
35     return fse_video.get_buffer();
36 }
37 
fs_emu_video_create_window(int width,int height)38 void fs_emu_video_create_window(int width, int height)
39 {
40     fse_video.create_window(width, height);
41 }
42 
fs_emu_video_render(void)43 void fs_emu_video_render(void)
44 {
45     fse_video.render();
46 }
47 
fse_init_video(void)48 void fse_init_video(void)
49 {
50     fse_log("[VIDEO] Initialize\n");
51 
52     fs_emu_buffer_init();
53     fs_emu_video_dummy_init();
54     fse_main_loop = fs_emu_main_loop;
55 
56     fse_video.drivers = true;
57 
58     const char *driver = fs_config_get_const_string(OPTION_VIDEO_DRIVER);
59     if (0) {
60 #ifdef USE_SDL2
61     } else if (!driver || strcmp(driver, "legacy") == 0) {
62         fse_init_legacy_video();
63         fse_main_loop = fs_ml_main_loop;
64         fse_video.drivers = false;
65     } else if (!driver || strcmp(driver, "sdl") == 0) {
66         fs_emu_video_sdl_init();
67     } else if (!driver || strcmp(driver, "sdl-software") == 0) {
68         fs_emu_video_sdl_software_init();
69 #endif
70     }
71 
72     fse_log("[VIDEO] Creating window\n");
73     fs_emu_video_create_window(752, 572);
74 }
75