From 349120a41981cf2a6660059a1e66cadeac09ba0f Mon Sep 17 00:00:00 2001 From: Jorj Bauer Date: Sun, 26 Feb 2017 11:07:56 -0500 Subject: [PATCH] don't create the printer window until we need it --- sdl/sdl-printer.cpp | 25 ++++++++++++------------- sdl/sdl-printer.h | 1 - 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/sdl/sdl-printer.cpp b/sdl/sdl-printer.cpp index f44df48..7b9abc4 100644 --- a/sdl/sdl-printer.cpp +++ b/sdl/sdl-printer.cpp @@ -17,19 +17,8 @@ SDLPrinter::SDLPrinter() memset((void *)_hackyBitmap, 0, sizeof(_hackyBitmap)); - window = SDL_CreateWindow(WINDOWNAME, - SDL_WINDOWPOS_UNDEFINED, - SDL_WINDOWPOS_UNDEFINED, - WIDTH, HEIGHT, - SDL_WINDOW_SHOWN); - - // SDL_RENDERER_SOFTWARE because, at least on my Mac, this has some - // serious issues with hardware accelerated drawing (flashing and - // crashing). - renderer = SDL_CreateRenderer(window, -1, 0); - SDL_SetRenderDrawColor(renderer, 0, 0, 255, 255); - SDL_RenderClear(renderer); // clear it to the selected color - SDL_RenderPresent(renderer); // perform the render + window = NULL; + renderer = NULL; } SDLPrinter::~SDLPrinter() @@ -41,6 +30,16 @@ void SDLPrinter::update() if (isDirty) { isDirty = false; // set early in case there's a race + if (!window) { + window = SDL_CreateWindow(WINDOWNAME, + SDL_WINDOWPOS_UNDEFINED, + SDL_WINDOWPOS_UNDEFINED, + WIDTH, HEIGHT, + SDL_WINDOW_SHOWN); + + renderer = SDL_CreateRenderer(window, -1, 0); + } + for (int y=0; y