Mercurial > repos > blastem
diff render.h @ 2053:3414a4423de1 segacd
Merge from default
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 15 Jan 2022 13:15:21 -0800 |
parents | 193b804c9845 |
children | f11f4399d64b |
line wrap: on
line diff
--- a/render.h Sat Jan 05 00:58:08 2019 -0800 +++ b/render.h Sat Jan 15 13:15:21 2022 -0800 @@ -6,7 +6,13 @@ #ifndef RENDER_H_ #define RENDER_H_ -//TODO: Throw an ifdef in here once there's more than one renderer +#include <stdint.h> + +#ifndef IS_LIB +#ifdef USE_FBDEV +#include "special_keys_evdev.h" +#define render_relative_mouse(V) +#else #include <SDL.h> #define RENDERKEY_UP SDLK_UP #define RENDERKEY_DOWN SDLK_DOWN @@ -61,6 +67,9 @@ #define RENDER_DPAD_LEFT SDL_HAT_LEFT #define RENDER_DPAD_RIGHT SDL_HAT_RIGHT #define render_relative_mouse SDL_SetRelativeMouseMode +typedef SDL_Thread* render_thread; +#endif +#endif #define MAX_JOYSTICKS 8 #define MAX_MICE 8 @@ -68,9 +77,8 @@ #define FRAMEBUFFER_ODD 0 #define FRAMEBUFFER_EVEN 1 -#define FRAMEBUFFER_USER_START 2 - -#include "vdp.h" +#define FRAMEBUFFER_UI 2 +#define FRAMEBUFFER_USER_START 3 typedef enum { VID_NTSC, @@ -80,13 +88,15 @@ #define RENDER_DPAD_BIT 0x40000000 #define RENDER_AXIS_BIT 0x20000000 +#define RENDER_AXIS_POS 0x10000000 #define RENDER_INVALID_NAME -1 #define RENDER_NOT_MAPPED -2 #define RENDER_NOT_PLUGGED_IN -3 -typedef struct audio_source audio_source; typedef void (*drop_handler)(const char *filename); typedef void (*window_close_handler)(uint8_t which); +typedef void (*ui_render_fun)(void); +typedef int (*render_thread_fun)(void*); uint32_t render_map_color(uint8_t r, uint8_t g, uint8_t b); void render_save_screenshot(char *path); @@ -100,9 +110,7 @@ void render_set_video_standard(vid_std std); void render_toggle_fullscreen(); void render_update_caption(char *title); -void render_wait_quit(vdp_context * context); -uint32_t render_audio_buffer(); -uint32_t render_sample_rate(); +void render_wait_quit(void); void process_events(); int render_width(); int render_height(); @@ -120,18 +128,22 @@ uint32_t render_emulated_width(); uint32_t render_emulated_height(); uint32_t render_overscan_top(); +uint32_t render_overscan_bot(); uint32_t render_overscan_left(); uint32_t render_elapsed_ms(void); void render_sleep_ms(uint32_t delay); uint8_t render_has_gl(void); -audio_source *render_audio_source(uint64_t master_clock, uint64_t sample_divider, uint8_t channels); -void render_audio_adjust_clock(audio_source *src, uint64_t master_clock, uint64_t sample_divider); -void render_put_mono_sample(audio_source *src, int16_t value); -void render_put_stereo_sample(audio_source *src, int16_t left, int16_t right); -void render_pause_source(audio_source *src); -void render_resume_source(audio_source *src); -void render_free_source(audio_source *src); void render_config_updated(void); +void render_set_gl_context_handlers(ui_render_fun destroy, ui_render_fun create); +void render_set_ui_render_fun(ui_render_fun); +void render_set_ui_fb_resize_handler(ui_render_fun resize); +void render_video_loop(void); +uint8_t render_should_release_on_exit(void); +void render_set_external_sync(uint8_t ext_sync_on); +void render_reset_mappings(void); +#ifndef IS_LIB +uint8_t render_create_thread(render_thread *thread, const char *name, render_thread_fun fun, void *data); +#endif #endif //RENDER_H_