diff --git a/src/video/photon/SDL_photon_render.c b/src/video/photon/SDL_photon_render.c index 3bfd93df7..1f0cb180a 100644 --- a/src/video/photon/SDL_photon_render.c +++ b/src/video/photon/SDL_photon_render.c @@ -165,6 +165,8 @@ photon_createrenderer(SDL_Window * window, Uint32 flags) renderer->RenderLine = photon_renderline; renderer->RenderFill = photon_renderfill; renderer->RenderCopy = photon_rendercopy; + renderer->RenderReadPixels = photon_renderreadpixels; + renderer->RenderWritePixels = photon_renderwritepixels; renderer->RenderPresent = photon_renderpresent; renderer->DestroyTexture = photon_destroytexture; renderer->DestroyRenderer = photon_destroyrenderer; @@ -321,6 +323,10 @@ static int _photon_recreate_surfaces(SDL_Renderer * renderer) /* Create offscreen surfaces */ allocate_task=SDL_PHOTON_SURFTYPE_OFFSCREEN; + /* Before destroying surfaces, be sure, that rendering was completed */ + PgFlush(); + PgWaitHWIdle(); + /* Destroy current surfaces */ for (it=0; itdriverdata; uint32_t it; + /* Before destroying the renderer, be sure, that rendering was completed */ + PgFlush(); + PgWaitHWIdle(); + /* Destroy graphics context */ if (rdata->gc!=NULL) {