mirror of
https://github.com/holub/mame
synced 2025-04-26 10:13:37 +03:00
SDL: More cleanups. (nw)
This commit is contained in:
parent
f83325f1a0
commit
4631c02ca0
@ -1,8 +1,8 @@
|
||||
//============================================================
|
||||
//
|
||||
// draw13.c - SDL 1.3 drawing implementation
|
||||
// draw13.c - SDL 2.0 drawing implementation
|
||||
//
|
||||
// Copyright (c) 1996-2010, Nicola Salmoria and the MAME Team.
|
||||
// Copyright (c) 1996-2014, Nicola Salmoria and the MAME Team.
|
||||
// Visit http://mamedev.org for licensing and usage restrictions.
|
||||
//
|
||||
// SDLMAME by Olivier Galibert and R. Belmont
|
||||
@ -145,17 +145,17 @@ struct sdl_info
|
||||
|
||||
// core functions
|
||||
|
||||
static void draw13_exit(void);
|
||||
static void draw13_attach(sdl_draw_info *info, sdl_window_info *window);
|
||||
static int draw13_window_create(sdl_window_info *window, int width, int height);
|
||||
static void draw13_window_resize(sdl_window_info *window, int width, int height);
|
||||
static void draw13_window_destroy(sdl_window_info *window);
|
||||
static int draw13_window_draw(sdl_window_info *window, UINT32 dc, int update);
|
||||
static render_primitive_list &draw13_window_get_primitives(sdl_window_info *window);
|
||||
static void draw13_destroy_all_textures(sdl_window_info *window);
|
||||
static void draw13_window_clear(sdl_window_info *window);
|
||||
static int draw13_xy_to_render_target(sdl_window_info *window, int x, int y, int *xt, int *yt);
|
||||
static void draw13_destroy_texture(sdl_info *sdl, texture_info *texture);
|
||||
static void drawsdl2_exit(void);
|
||||
static void drawsdl2_attach(sdl_draw_info *info, sdl_window_info *window);
|
||||
static int drawsdl2_window_create(sdl_window_info *window, int width, int height);
|
||||
static void drawsdl2_window_resize(sdl_window_info *window, int width, int height);
|
||||
static void drawsdl2_window_destroy(sdl_window_info *window);
|
||||
static int drawsdl2_window_draw(sdl_window_info *window, UINT32 dc, int update);
|
||||
static render_primitive_list &drawsdl2_window_get_primitives(sdl_window_info *window);
|
||||
static void drawsdl2_destroy_all_textures(sdl_window_info *window);
|
||||
static void drawsdl2_window_clear(sdl_window_info *window);
|
||||
static int drawsdl2_xy_to_render_target(sdl_window_info *window, int x, int y, int *xt, int *yt);
|
||||
static void drawsdl2_destroy_texture(sdl_info *sdl, texture_info *texture);
|
||||
|
||||
//============================================================
|
||||
// Textures
|
||||
@ -455,7 +455,7 @@ static int RendererSupportsFormat(SDL_Renderer *renderer, Uint32 format, Uint32
|
||||
#endif
|
||||
|
||||
//============================================================
|
||||
// draw13_init
|
||||
// drawsdl2_init
|
||||
//============================================================
|
||||
|
||||
static void add_list(copy_info **head, copy_info *element, Uint32 bm)
|
||||
@ -486,13 +486,13 @@ static void expand_copy_info(copy_info *list)
|
||||
}
|
||||
}
|
||||
|
||||
int draw13_init(running_machine &machine, sdl_draw_info *callbacks)
|
||||
int drawsdl2_init(running_machine &machine, sdl_draw_info *callbacks)
|
||||
{
|
||||
const char *stemp;
|
||||
|
||||
// fill in the callbacks
|
||||
callbacks->exit = draw13_exit;
|
||||
callbacks->attach = draw13_attach;
|
||||
callbacks->exit = drawsdl2_exit;
|
||||
callbacks->attach = drawsdl2_attach;
|
||||
|
||||
osd_printf_verbose("Using SDL native texturing driver (SDL 2.0+)\n");
|
||||
|
||||
@ -518,10 +518,10 @@ int draw13_init(running_machine &machine, sdl_draw_info *callbacks)
|
||||
|
||||
|
||||
//============================================================
|
||||
// draw13_exit
|
||||
// drawsdl2_exit
|
||||
//============================================================
|
||||
|
||||
static void draw13_exit(void)
|
||||
static void drawsdl2_exit(void)
|
||||
{
|
||||
int i;
|
||||
copy_info *bi, *freeme;
|
||||
@ -539,32 +539,32 @@ static void draw13_exit(void)
|
||||
}
|
||||
|
||||
//============================================================
|
||||
// draw13_attach
|
||||
// drawsdl2_attach
|
||||
//============================================================
|
||||
|
||||
static void draw13_attach(sdl_draw_info *info, sdl_window_info *window)
|
||||
static void drawsdl2_attach(sdl_draw_info *info, sdl_window_info *window)
|
||||
{
|
||||
// fill in the callbacks
|
||||
window->create = draw13_window_create;
|
||||
window->resize = draw13_window_resize;
|
||||
window->get_primitives = draw13_window_get_primitives;
|
||||
window->draw = draw13_window_draw;
|
||||
window->destroy = draw13_window_destroy;
|
||||
window->destroy_all_textures = draw13_destroy_all_textures;
|
||||
window->clear = draw13_window_clear;
|
||||
window->xy_to_render_target = draw13_xy_to_render_target;
|
||||
window->create = drawsdl2_window_create;
|
||||
window->resize = drawsdl2_window_resize;
|
||||
window->get_primitives = drawsdl2_window_get_primitives;
|
||||
window->draw = drawsdl2_window_draw;
|
||||
window->destroy = drawsdl2_window_destroy;
|
||||
window->destroy_all_textures = drawsdl2_destroy_all_textures;
|
||||
window->clear = drawsdl2_window_clear;
|
||||
window->xy_to_render_target = drawsdl2_xy_to_render_target;
|
||||
}
|
||||
|
||||
//============================================================
|
||||
// draw13_window_create
|
||||
// drawsdl2_window_create
|
||||
//============================================================
|
||||
|
||||
static int draw13_window_create(sdl_window_info *window, int width, int height)
|
||||
static int drawsdl2_window_create(sdl_window_info *window, int width, int height)
|
||||
{
|
||||
// allocate memory for our structures
|
||||
sdl_info *sdl = (sdl_info *) osd_malloc(sizeof(*sdl));
|
||||
|
||||
osd_printf_verbose("Enter draw13_window_create\n");
|
||||
osd_printf_verbose("Enter drawsdl2_window_create\n");
|
||||
|
||||
memset(sdl, 0, sizeof(*sdl));
|
||||
|
||||
@ -638,15 +638,15 @@ static int draw13_window_create(sdl_window_info *window, int width, int height)
|
||||
sdl->texture_max_height = 64;
|
||||
|
||||
SDL_RenderPresent(sdl->sdl_renderer);
|
||||
osd_printf_verbose("Leave draw13_window_create\n");
|
||||
osd_printf_verbose("Leave drawsdl2_window_create\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
//============================================================
|
||||
// draw13_window_resize
|
||||
// drawsdl2_window_resize
|
||||
//============================================================
|
||||
|
||||
static void draw13_window_resize(sdl_window_info *window, int width, int height)
|
||||
static void drawsdl2_window_resize(sdl_window_info *window, int width, int height)
|
||||
{
|
||||
sdl_info *sdl = (sdl_info *) window->dxdata;
|
||||
|
||||
@ -665,7 +665,7 @@ static void draw13_window_resize(sdl_window_info *window, int width, int height)
|
||||
// drawsdl_xy_to_render_target
|
||||
//============================================================
|
||||
|
||||
static int draw13_xy_to_render_target(sdl_window_info *window, int x, int y, int *xt, int *yt)
|
||||
static int drawsdl2_xy_to_render_target(sdl_window_info *window, int x, int y, int *xt, int *yt)
|
||||
{
|
||||
sdl_info *sdl = (sdl_info *) window->dxdata;
|
||||
|
||||
@ -679,10 +679,10 @@ static int draw13_xy_to_render_target(sdl_window_info *window, int x, int y, int
|
||||
}
|
||||
|
||||
//============================================================
|
||||
// draw13_window_get_primitives
|
||||
// drawsdl2_window_get_primitives
|
||||
//============================================================
|
||||
|
||||
static render_primitive_list &draw13_window_get_primitives(sdl_window_info *window)
|
||||
static render_primitive_list &drawsdl2_window_get_primitives(sdl_window_info *window)
|
||||
{
|
||||
if ((!window->fullscreen) || (video_config.switchres))
|
||||
{
|
||||
@ -697,10 +697,10 @@ static render_primitive_list &draw13_window_get_primitives(sdl_window_info *wind
|
||||
}
|
||||
|
||||
//============================================================
|
||||
// draw13_window_draw
|
||||
// drawsdl2_window_draw
|
||||
//============================================================
|
||||
|
||||
static int draw13_window_draw(sdl_window_info *window, UINT32 dc, int update)
|
||||
static int drawsdl2_window_draw(sdl_window_info *window, UINT32 dc, int update)
|
||||
{
|
||||
sdl_info *sdl = (sdl_info *) window->dxdata;
|
||||
render_primitive *prim;
|
||||
@ -809,10 +809,10 @@ static int draw13_window_draw(sdl_window_info *window, UINT32 dc, int update)
|
||||
|
||||
|
||||
//============================================================
|
||||
// draw13_window_clear
|
||||
// drawsdl2_window_clear
|
||||
//============================================================
|
||||
|
||||
static void draw13_window_clear(sdl_window_info *window)
|
||||
static void drawsdl2_window_clear(sdl_window_info *window)
|
||||
{
|
||||
sdl_info *sdl = (sdl_info *) window->dxdata;
|
||||
|
||||
@ -821,10 +821,10 @@ static void draw13_window_clear(sdl_window_info *window)
|
||||
|
||||
|
||||
//============================================================
|
||||
// draw13_window_destroy
|
||||
// drawsdl2_window_destroy
|
||||
//============================================================
|
||||
|
||||
static void draw13_window_destroy(sdl_window_info *window)
|
||||
static void drawsdl2_window_destroy(sdl_window_info *window)
|
||||
{
|
||||
sdl_info *sdl = (sdl_info *) window->dxdata;
|
||||
|
||||
@ -834,7 +834,7 @@ static void draw13_window_destroy(sdl_window_info *window)
|
||||
|
||||
// free the memory in the window
|
||||
|
||||
draw13_destroy_all_textures(window);
|
||||
drawsdl2_destroy_all_textures(window);
|
||||
|
||||
SDL_DestroyWindow(window->sdl_window);
|
||||
|
||||
@ -1107,7 +1107,7 @@ static texture_info *texture_find(sdl_info *sdl, const render_primitive *prim, q
|
||||
texture_info *expire = texture;
|
||||
texture = texture->next;
|
||||
if (now - expire->last_access > osd_ticks_per_second())
|
||||
draw13_destroy_texture(sdl, expire);
|
||||
drawsdl2_destroy_texture(sdl, expire);
|
||||
}
|
||||
|
||||
// nothing found
|
||||
@ -1147,7 +1147,7 @@ static texture_info * texture_update(sdl_window_info *window, const render_primi
|
||||
return texture;
|
||||
}
|
||||
|
||||
static void draw13_destroy_texture(sdl_info *sdl, texture_info *texture)
|
||||
static void drawsdl2_destroy_texture(sdl_info *sdl, texture_info *texture)
|
||||
{
|
||||
texture_info *p;
|
||||
|
||||
@ -1169,7 +1169,7 @@ static void draw13_destroy_texture(sdl_info *sdl, texture_info *texture)
|
||||
osd_free(texture);
|
||||
}
|
||||
|
||||
static void draw13_destroy_all_textures(sdl_window_info *window)
|
||||
static void drawsdl2_destroy_all_textures(sdl_window_info *window)
|
||||
{
|
||||
sdl_info *sdl = (sdl_info *) window->dxdata;
|
||||
texture_info *next_texture=NULL, *texture = NULL;
|
||||
@ -1189,7 +1189,7 @@ static void draw13_destroy_all_textures(sdl_window_info *window)
|
||||
while (texture)
|
||||
{
|
||||
next_texture = texture->next;
|
||||
draw13_destroy_texture(sdl, texture);
|
||||
drawsdl2_destroy_texture(sdl, texture);
|
||||
texture = next_texture;
|
||||
}
|
||||
|
||||
|
@ -82,9 +82,8 @@
|
||||
#define SDLOPTVAL_AUTO "auto"
|
||||
|
||||
#define SDLOPTVAL_OPENGL "opengl"
|
||||
#define SDLOPTVAL_OPENGL16 "opengl16"
|
||||
#define SDLOPTVAL_SOFT "soft"
|
||||
#define SDLOPTVAL_SDL13 "sdl13"
|
||||
#define SDLOPTVAL_SDL2ACCEL "accel"
|
||||
|
||||
#define SDLMAME_LED(x) "led" #x
|
||||
|
||||
|
@ -59,7 +59,7 @@ USE_DISPATCH_GL = 1
|
||||
# active development on sdlmame or SDL.
|
||||
|
||||
# uncomment the next line to compile and link against SDL2.0
|
||||
# SDL_LIBVER = sdl2
|
||||
#SDL_LIBVER = sdl2
|
||||
|
||||
# uncomment the next line to use couriersud's multi-keyboard patch for SDL 2.1? (this API was removed prior to the 2.0 release)
|
||||
# SDL2_MULTIAPI = 1
|
||||
|
@ -2,7 +2,7 @@
|
||||
//
|
||||
// video.c - SDL video handling
|
||||
//
|
||||
// Copyright (c) 1996-2010, Nicola Salmoria and the MAME Team.
|
||||
// Copyright (c) 1996-2014, Nicola Salmoria and the MAME Team.
|
||||
// Visit http://mamedev.org for licensing and usage restrictions.
|
||||
//
|
||||
// SDLMAME by Olivier Galibert and R. Belmont
|
||||
@ -645,15 +645,9 @@ static void extract_video_config(running_machine &machine)
|
||||
}
|
||||
else if (USE_OPENGL && (strcmp(stemp, SDLOPTVAL_OPENGL) == 0))
|
||||
video_config.mode = VIDEO_MODE_OPENGL;
|
||||
else if (USE_OPENGL && (strcmp(stemp, SDLOPTVAL_OPENGL16) == 0))
|
||||
else if (SDLMAME_SDL2 && (strcmp(stemp, SDLOPTVAL_SDL2ACCEL) == 0))
|
||||
{
|
||||
video_config.mode = VIDEO_MODE_OPENGL;
|
||||
video_config.prefer16bpp_tex = 1;
|
||||
}
|
||||
else if (SDLMAME_SDL2 && (strcmp(stemp, SDLOPTVAL_SDL13) == 0))
|
||||
{
|
||||
video_config.mode = VIDEO_MODE_SDL13;
|
||||
video_config.prefer16bpp_tex = 1;
|
||||
video_config.mode = VIDEO_MODE_SDL2ACCEL;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -684,7 +678,6 @@ static void extract_video_config(running_machine &machine)
|
||||
video_config.prescale = 1;
|
||||
}
|
||||
// default to working video please
|
||||
video_config.prefer16bpp_tex = 0;
|
||||
video_config.forcepow2texture = options.gl_force_pow2_texture();
|
||||
video_config.allowtexturerect = !(options.gl_no_texture_rect());
|
||||
video_config.vbo = options.gl_vbo();
|
||||
|
@ -2,7 +2,7 @@
|
||||
//
|
||||
// video.h - SDL implementation of MAME video routines
|
||||
//
|
||||
// Copyright (c) 1996-2006, Nicola Salmoria and the MAME Team.
|
||||
// Copyright (c) 1996-2014, Nicola Salmoria and the MAME Team.
|
||||
// Visit http://mamedev.org for licensing and usage restrictions.
|
||||
//
|
||||
// SDLMAME by Olivier Galibert and R. Belmont
|
||||
@ -21,7 +21,7 @@
|
||||
enum {
|
||||
VIDEO_MODE_SOFT = 0,
|
||||
VIDEO_MODE_OPENGL,
|
||||
VIDEO_MODE_SDL13
|
||||
VIDEO_MODE_SDL2ACCEL
|
||||
};
|
||||
|
||||
#define VIDEO_SCALE_MODE_NONE (0)
|
||||
@ -109,7 +109,6 @@ struct sdl_video_config
|
||||
|
||||
// OpenGL options
|
||||
int filter; // enable filtering, disabled if glsl_filter>0
|
||||
int prefer16bpp_tex;
|
||||
int glsl;
|
||||
int glsl_filter; // glsl filtering, >0 disables filter
|
||||
char * glsl_shader_mamebm[GLSL_SHADER_MAX]; // custom glsl shader set, mame bitmap
|
||||
|
@ -2,7 +2,7 @@
|
||||
//
|
||||
// window.c - SDL window handling
|
||||
//
|
||||
// Copyright (c) 1996-2010, Nicola Salmoria and the MAME Team.
|
||||
// Copyright (c) 1996-2014, Nicola Salmoria and the MAME Team.
|
||||
// Visit http://mamedev.org for licensing and usage restrictions.
|
||||
//
|
||||
// SDLMAME by Olivier Galibert and R. Belmont
|
||||
@ -239,9 +239,9 @@ bool sdl_osd_interface::window_init()
|
||||
}
|
||||
#endif
|
||||
#if SDLMAME_SDL2
|
||||
if (video_config.mode == VIDEO_MODE_SDL13)
|
||||
if (video_config.mode == VIDEO_MODE_SDL2ACCEL)
|
||||
{
|
||||
if (draw13_init(machine(), &draw))
|
||||
if (drawsdl2_init(machine(), &draw))
|
||||
video_config.mode = VIDEO_MODE_SOFT;
|
||||
}
|
||||
#endif
|
||||
@ -974,6 +974,7 @@ void sdlwindow_video_window_update(running_machine &machine, sdl_window_info *wi
|
||||
{
|
||||
window->minwidth = tempwidth;
|
||||
window->minheight = tempheight;
|
||||
|
||||
if (!window->fullscreen)
|
||||
{
|
||||
sdlwindow_blit_surface_size(window, window->width, window->height);
|
||||
|
@ -2,7 +2,7 @@
|
||||
//
|
||||
// window.h - SDL window handling
|
||||
//
|
||||
// Copyright (c) 1996-2006, Nicola Salmoria and the MAME Team.
|
||||
// Copyright (c) 1996-2014, Nicola Salmoria and the MAME Team.
|
||||
// Visit http://mamedev.org for licensing and usage restrictions.
|
||||
//
|
||||
// SDLMAME by Olivier Galibert and R. Belmont
|
||||
@ -147,6 +147,6 @@ int drawogl_init(running_machine &machine, sdl_draw_info *callbacks);
|
||||
// PROTOTYPES - draw13.c
|
||||
//============================================================
|
||||
|
||||
int draw13_init(running_machine &machine, sdl_draw_info *callbacks);
|
||||
int drawsdl2_init(running_machine &machine, sdl_draw_info *callbacks);
|
||||
|
||||
#endif /* __SDLWINDOW__ */
|
||||
|
Loading…
Reference in New Issue
Block a user