annotate render.h @ 1021:4a92889e2889 v0.4.0

Fix OS X build
author Michael Pavone <pavone@retrodev.com>
date Wed, 04 May 2016 00:50:20 -0700
parents 9364dad5561a
children 284d905ca582
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
467
140af5509ce7 Added copyright notice to source files and added GPL license text in COPYING
Mike Pavone <pavone@retrodev.com>
parents: 444
diff changeset
1 /*
140af5509ce7 Added copyright notice to source files and added GPL license text in COPYING
Mike Pavone <pavone@retrodev.com>
parents: 444
diff changeset
2 Copyright 2013 Michael Pavone
487
c08a4efeee7f Update opengl branch from default. Fix build breakage unrelated to merge
Mike Pavone <pavone@retrodev.com>
parents: 449 467
diff changeset
3 This file is part of BlastEm.
467
140af5509ce7 Added copyright notice to source files and added GPL license text in COPYING
Mike Pavone <pavone@retrodev.com>
parents: 444
diff changeset
4 BlastEm is free software distributed under the terms of the GNU General Public License version 3 or greater. See COPYING for full license text.
140af5509ce7 Added copyright notice to source files and added GPL license text in COPYING
Mike Pavone <pavone@retrodev.com>
parents: 444
diff changeset
5 */
398
c26e48a93fa3 Make keybindings data driven so they can be populated from a config file later
Mike Pavone <pavone@retrodev.com>
parents: 364
diff changeset
6 #ifndef RENDER_H_
c26e48a93fa3 Make keybindings data driven so they can be populated from a config file later
Mike Pavone <pavone@retrodev.com>
parents: 364
diff changeset
7 #define RENDER_H_
20
f664eeb55cb4 Mostly broken VDP core and savestate viewer
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
8
741
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents: 504
diff changeset
9 //TODO: Throw an ifdef in here once there's more than one renderer
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents: 504
diff changeset
10 #include <SDL.h>
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents: 504
diff changeset
11 #define RENDERKEY_UP SDLK_UP
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents: 504
diff changeset
12 #define RENDERKEY_DOWN SDLK_DOWN
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents: 504
diff changeset
13 #define RENDERKEY_LEFT SDLK_LEFT
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents: 504
diff changeset
14 #define RENDERKEY_RIGHT SDLK_RIGHT
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents: 504
diff changeset
15 #define RENDERKEY_ESC SDLK_ESCAPE
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents: 504
diff changeset
16 #define RENDERKEY_LSHIFT SDLK_LSHIFT
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents: 504
diff changeset
17 #define RENDERKEY_RSHIFT SDLK_RSHIFT
903
0e5f9d6135be Make nexus player remote useable as a controller for games that only require a dpad + start + c. Use warning() instead of fprintf(stder,...) in io.c
Michael Pavone <pavone@retrodev.com>
parents: 897
diff changeset
18 #define RENDERKEY_SELECT SDLK_SELECT
0e5f9d6135be Make nexus player remote useable as a controller for games that only require a dpad + start + c. Use warning() instead of fprintf(stder,...) in io.c
Michael Pavone <pavone@retrodev.com>
parents: 897
diff changeset
19 #define RENDERKEY_PLAY SDLK_AUDIOPLAY
0e5f9d6135be Make nexus player remote useable as a controller for games that only require a dpad + start + c. Use warning() instead of fprintf(stder,...) in io.c
Michael Pavone <pavone@retrodev.com>
parents: 897
diff changeset
20 #define RENDERKEY_SEARCH SDLK_AC_SEARCH
0e5f9d6135be Make nexus player remote useable as a controller for games that only require a dpad + start + c. Use warning() instead of fprintf(stder,...) in io.c
Michael Pavone <pavone@retrodev.com>
parents: 897
diff changeset
21 #define RENDERKEY_BACK SDLK_AC_BACK
741
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents: 504
diff changeset
22 #define RENDER_DPAD_UP SDL_HAT_UP
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents: 504
diff changeset
23 #define RENDER_DPAD_DOWN SDL_HAT_DOWN
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents: 504
diff changeset
24 #define RENDER_DPAD_LEFT SDL_HAT_LEFT
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents: 504
diff changeset
25 #define RENDER_DPAD_RIGHT SDL_HAT_RIGHT
915
9e882eca717e Initial support for relative mouse mode and skeleton of support for capture mode. Avoid mouse position overflow in absolute mode. Allow absolute mode to be set by ROM DB.
Michael Pavone <pavone@retrodev.com>
parents: 914
diff changeset
26 #define render_relative_mouse SDL_SetRelativeMouseMode
741
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents: 504
diff changeset
27
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents: 504
diff changeset
28 #define MAX_JOYSTICKS 8
897
b9564fb88a5a WIP support for mega mouse
Michael Pavone <pavone@retrodev.com>
parents: 884
diff changeset
29 #define MAX_MICE 8
907
b5d35222047e Mega mouse support is mostly done
Michael Pavone <pavone@retrodev.com>
parents: 903
diff changeset
30 #define MAX_MOUSE_BUTTONS 8
741
80a67be1770b Initial work on Windows port
Michael Pavone <pavone@retrodev.com>
parents: 504
diff changeset
31
20
f664eeb55cb4 Mostly broken VDP core and savestate viewer
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
32 #include "vdp.h"
354
15dd6418fe67 Initial PSG support. Mostly works, noise channel is borked though.
Mike Pavone <pavone@retrodev.com>
parents: 342
diff changeset
33 #include "psg.h"
364
62177cc39049 Incredibly broken YM2612 support plus a fix to Z80 bus request
Mike Pavone <pavone@retrodev.com>
parents: 354
diff changeset
34 #include "ym2612.h"
449
7696d824489d Started work on OpenGL support in new branch
Mike Pavone <pavone@retrodev.com>
parents: 426
diff changeset
35
7696d824489d Started work on OpenGL support in new branch
Mike Pavone <pavone@retrodev.com>
parents: 426
diff changeset
36 typedef struct {
7696d824489d Started work on OpenGL support in new branch
Mike Pavone <pavone@retrodev.com>
parents: 426
diff changeset
37 void *oddbuf;
7696d824489d Started work on OpenGL support in new branch
Mike Pavone <pavone@retrodev.com>
parents: 426
diff changeset
38 void *evenbuf;
7696d824489d Started work on OpenGL support in new branch
Mike Pavone <pavone@retrodev.com>
parents: 426
diff changeset
39 int stride;
7696d824489d Started work on OpenGL support in new branch
Mike Pavone <pavone@retrodev.com>
parents: 426
diff changeset
40 } surface_info;
7696d824489d Started work on OpenGL support in new branch
Mike Pavone <pavone@retrodev.com>
parents: 426
diff changeset
41
426
add9e2f5c0e3 Make VDP render in native pixel format of the renderer for a modest performance gain and to make it easier to use OpenGL for rendering
Mike Pavone <pavone@retrodev.com>
parents: 418
diff changeset
42 uint32_t render_map_color(uint8_t r, uint8_t g, uint8_t b);
487
c08a4efeee7f Update opengl branch from default. Fix build breakage unrelated to merge
Mike Pavone <pavone@retrodev.com>
parents: 449 467
diff changeset
43 void render_alloc_surfaces(vdp_context * context);
884
252dfd29831d Selecting a second game from the menu now works
Michael Pavone <pavone@retrodev.com>
parents: 874
diff changeset
44 void render_free_surfaces(vdp_context *context);
719
019d27995e32 Upgrade to SDL 2.0 and drop support for the non-OpenGL render path
Michael Pavone <pavone@retrodev.com>
parents: 504
diff changeset
45 void render_init(int width, int height, char * title, uint32_t fps, uint8_t fullscreen);
874
b6842dfb8edf ROM is now run after being selected in menu. Initial path for menu is read from config file.
Michael Pavone <pavone@retrodev.com>
parents: 792
diff changeset
46 void render_update_caption(char *title);
20
f664eeb55cb4 Mostly broken VDP core and savestate viewer
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
47 void render_context(vdp_context * context);
43
3fc57e1a2c56 Add debug render mode and fix vertical flip bit for bg tiles
Mike Pavone <pavone@retrodev.com>
parents: 33
diff changeset
48 void render_wait_quit(vdp_context * context);
364
62177cc39049 Incredibly broken YM2612 support plus a fix to Z80 bus request
Mike Pavone <pavone@retrodev.com>
parents: 354
diff changeset
49 void render_wait_psg(psg_context * context);
62177cc39049 Incredibly broken YM2612 support plus a fix to Z80 bus request
Mike Pavone <pavone@retrodev.com>
parents: 354
diff changeset
50 void render_wait_ym(ym2612_context * context);
338
5c34a9c39394 Re-enable frame limit, but add a command line flag to disable it
Mike Pavone <pavone@retrodev.com>
parents: 198
diff changeset
51 int wait_render_frame(vdp_context * context, int frame_limit);
342
13f994c88c34 Get frame time correct and frame rate sort of correct for EUR region
Mike Pavone <pavone@retrodev.com>
parents: 340
diff changeset
52 void render_fps(uint32_t fps);
354
15dd6418fe67 Initial PSG support. Mostly works, noise channel is borked though.
Mike Pavone <pavone@retrodev.com>
parents: 342
diff changeset
53 uint32_t render_audio_buffer();
15dd6418fe67 Initial PSG support. Mostly works, noise channel is borked though.
Mike Pavone <pavone@retrodev.com>
parents: 342
diff changeset
54 uint32_t render_sample_rate();
398
c26e48a93fa3 Make keybindings data driven so they can be populated from a config file later
Mike Pavone <pavone@retrodev.com>
parents: 364
diff changeset
55 void render_debug_mode(uint8_t mode);
c26e48a93fa3 Make keybindings data driven so they can be populated from a config file later
Mike Pavone <pavone@retrodev.com>
parents: 364
diff changeset
56 void render_debug_pal(uint8_t pal);
409
c1bddeadc566 Process events in vgm player so that quitting works
Mike Pavone <pavone@retrodev.com>
parents: 398
diff changeset
57 void process_events();
914
28ec32e720b2 Scale mouse data based on window size
Michael Pavone <pavone@retrodev.com>
parents: 907
diff changeset
58 int render_width();
28ec32e720b2 Scale mouse data based on window size
Michael Pavone <pavone@retrodev.com>
parents: 907
diff changeset
59 int render_height();
915
9e882eca717e Initial support for relative mouse mode and skeleton of support for capture mode. Avoid mouse position overflow in absolute mode. Allow absolute mode to be set by ROM DB.
Michael Pavone <pavone@retrodev.com>
parents: 914
diff changeset
60 int render_fullscreen();
723
7178d750efbd Process events while waiting for 68K debugger input. This prevents "not responsive" dialogs when sitting in the debugger
Michael Pavone <pavone@retrodev.com>
parents: 719
diff changeset
61 void process_events();
792
724bbec47f86 Use a new fatal_error function instead of calling fprintf and exit for fatal errors. This new function more gracefully handles the case in which BlastEm was not started from a terminal or disconnected from ther terminal (Windows).
Michael Pavone <pavone@retrodev.com>
parents: 744
diff changeset
62 void render_errorbox(char *title, char *message);
724bbec47f86 Use a new fatal_error function instead of calling fprintf and exit for fatal errors. This new function more gracefully handles the case in which BlastEm was not started from a terminal or disconnected from ther terminal (Windows).
Michael Pavone <pavone@retrodev.com>
parents: 744
diff changeset
63 void render_warnbox(char *title, char *message);
724bbec47f86 Use a new fatal_error function instead of calling fprintf and exit for fatal errors. This new function more gracefully handles the case in which BlastEm was not started from a terminal or disconnected from ther terminal (Windows).
Michael Pavone <pavone@retrodev.com>
parents: 744
diff changeset
64 void render_infobox(char *title, char *message);
418
dbf4e1c86f3c Implement basic joystick support
Mike Pavone <pavone@retrodev.com>
parents: 409
diff changeset
65
20
f664eeb55cb4 Mostly broken VDP core and savestate viewer
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
66
398
c26e48a93fa3 Make keybindings data driven so they can be populated from a config file later
Mike Pavone <pavone@retrodev.com>
parents: 364
diff changeset
67 #endif //RENDER_H_
c26e48a93fa3 Make keybindings data driven so they can be populated from a config file later
Mike Pavone <pavone@retrodev.com>
parents: 364
diff changeset
68