From b883c9f530a8ee3ab5cd7a814e4d52d59292e21f Mon Sep 17 00:00:00 2001 From: Joshua Granick Date: Mon, 12 Sep 2016 11:48:17 -0700 Subject: [PATCH] Multi-window fix --- lime/app/Application.hx | 6 ++++++ lime/app/Module.hx | 6 +++++- project/src/backend/sdl/SDLRenderer.cpp | 6 ++++-- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/lime/app/Application.hx b/lime/app/Application.hx index e692f0e00..2ed76ea97 100644 --- a/lime/app/Application.hx +++ b/lime/app/Application.hx @@ -252,6 +252,12 @@ class Application extends Module { windowByID.remove (window.id); window.close (); + if (window.renderer != null) { + + removeRenderer (window.renderer); + + } + if (this.window == window) { this.window = null; diff --git a/lime/app/Module.hx b/lime/app/Module.hx index 66afceaea..d78eeb45e 100644 --- a/lime/app/Module.hx +++ b/lime/app/Module.hx @@ -127,7 +127,11 @@ class Module implements IModule { @:noCompletion public function removeWindow (window:Window):Void { - + if (window != null && __windows.indexOf (window) > -1) { + + __windows.remove (window); + + } } diff --git a/project/src/backend/sdl/SDLRenderer.cpp b/project/src/backend/sdl/SDLRenderer.cpp index ed5cc383d..25927d5e3 100644 --- a/project/src/backend/sdl/SDLRenderer.cpp +++ b/project/src/backend/sdl/SDLRenderer.cpp @@ -217,10 +217,12 @@ namespace lime { SDL_RenderReadPixels (sdlRenderer, &bounds, SDL_PIXELFORMAT_ABGR8888, buffer->data->Data (), buffer->Stride ()); - for (unsigned char *it=buffer->data->Data()+3; it<(buffer->data->Data()+buffer->data->Length());it+=4) { + for (unsigned char *it=buffer->data->Data () + 3; it < (buffer->data->Data () + buffer->data->Length ()); it += 4) { + *it = 0xff; + } - + } }