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; + } - + } }