fix fullscreen

This commit is contained in:
Toad King 2018-01-14 02:33:22 -06:00
parent de3581de73
commit 5ef595be1a
2 changed files with 15 additions and 2 deletions

View File

@ -16,6 +16,7 @@
*/
#include <emscripten/emscripten.h>
#include <emscripten/html5.h>
#include <string.h>
#include <file/config_file.h>
@ -169,7 +170,8 @@ int main(int argc, char *argv[])
{
settings_t *settings = config_get_ptr();
emscripten_set_canvas_size(800, 600);
emscripten_set_canvas_element_size("#canvas", 800, 600);
emscripten_set_element_css_size("#canvas", 800.0, 600.0);
rarch_main(argc, argv, NULL);
emscripten_set_main_loop(emscripten_mainloop,
settings->bools.video_vsync ? 0 : INT_MAX, 1);

View File

@ -43,6 +43,8 @@ typedef struct
#endif
unsigned fb_width;
unsigned fb_height;
int initial_width;
int initial_height;
} emscripten_ctx_data_t;
static void gfx_ctx_emscripten_swap_interval(void *data, unsigned interval)
@ -93,11 +95,18 @@ static void gfx_ctx_emscripten_check_window(void *data, bool *quit,
gfx_ctx_emscripten_get_canvas_size(&input_width, &input_height);
if (input_width == 0 || input_height == 0)
{
input_width = emscripten->initial_width;
input_height = emscripten->initial_height;
emscripten->fb_width = emscripten->fb_height = 0;
}
*width = (unsigned)input_width;
*height = (unsigned)input_height;
*resize = false;
if (*width != emscripten->fb_width || *height != emscripten->fb_height)
if (input_width != emscripten->fb_width || input_height != emscripten->fb_height)
{
printf("RESIZE: %dx%d\n", input_width, input_height);
r = emscripten_set_canvas_element_size("#canvas", input_width, input_height);
@ -177,6 +186,8 @@ static void *gfx_ctx_emscripten_init(video_frame_info_t *video_info, void *video
(void)video_driver;
emscripten_get_canvas_element_size("#canvas", &emscripten->initial_width, &emscripten->initial_height);
#ifdef HAVE_EGL
if (g_egl_inited)
{