From c178e417b749035bc16aee048f15bb396462cb24 Mon Sep 17 00:00:00 2001 From: Peter Evans Date: Mon, 2 Apr 2018 08:37:01 -0500 Subject: [PATCH] Separate window and renderer creation; use software rendering It seems _slightly_ faster than hardware acceleration for the uses we have. --- src/vm_screen.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/vm_screen.c b/src/vm_screen.c index 808c4f5..46567ee 100644 --- a/src/vm_screen.c +++ b/src/vm_screen.c @@ -110,13 +110,23 @@ vm_screen_add_window(vm_screen *screen, int width, int height) // If HEADLESS is defined, we will assume we _don't_ want an actual // drawing surface, but want to pretend we've added one. #ifndef HEADLESS - SDL_CreateWindowAndRenderer( - width, height, 0, &screen->window, &screen->render); + screen->window = SDL_CreateWindow("erc", + SDL_WINDOWPOS_UNDEFINED, + SDL_WINDOWPOS_UNDEFINED, + width, height, 0); - if (screen->window == NULL || screen->render == NULL) { + if (screen->window == NULL) { log_crit("Could not create window: %s", SDL_GetError()); return ERR_GFXINIT; } + + screen->render = SDL_CreateRenderer(screen->window, -1, + SDL_RENDERER_SOFTWARE); + + if (screen->render == NULL) { + log_crit("Could not create renderer: %s", SDL_GetError()); + return ERR_GFXINIT; + } #endif // We plan to draw onto a surface that is xcoords x ycoords in area, @@ -195,7 +205,7 @@ vm_screen_active(vm_screen *scr) void vm_screen_prepare(vm_screen *scr) { - SDL_RenderClear(scr->render); + //SDL_RenderClear(scr->render); } /*