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_