Commit 96843660 authored by Sunny Sachanandani's avatar Sunny Sachanandani

Fix cleanup functions.

parent 23d259b8
...@@ -2040,6 +2040,13 @@ X11_DestroyTexture(SDL_Renderer * renderer, SDL_Texture * texture) ...@@ -2040,6 +2040,13 @@ X11_DestroyTexture(SDL_Renderer * renderer, SDL_Texture * texture)
shmdt(data->shminfo.shmaddr); shmdt(data->shminfo.shmaddr);
data->pixels = NULL; data->pixels = NULL;
} }
#endif
#ifdef SDL_VIDEO_DRIVER_X11_XRENDER
if (renderdata->use_xrender) {
if (data->picture) {
XRenderFreePicture(renderdata->display, data->picture);
}
}
#endif #endif
if (data->scaling_image) { if (data->scaling_image) {
SDL_free(data->scaling_image->data); SDL_free(data->scaling_image->data);
...@@ -2065,7 +2072,7 @@ X11_DestroyRenderer(SDL_Renderer * renderer) ...@@ -2065,7 +2072,7 @@ X11_DestroyRenderer(SDL_Renderer * renderer)
XFreePixmap(data->display, data->pixmaps[i]); XFreePixmap(data->display, data->pixmaps[i]);
} }
#ifdef SDL_VIDEO_DRIVER_X11_XRENDER #ifdef SDL_VIDEO_DRIVER_X11_XRENDER
if (data->pixmap_picts[i] != None) { if (data->use_xrender && data->pixmap_picts[i]) {
XRenderFreePicture(data->display, data->pixmap_picts[i]); XRenderFreePicture(data->display, data->pixmap_picts[i]);
} }
#endif #endif
...@@ -2074,18 +2081,25 @@ X11_DestroyRenderer(SDL_Renderer * renderer) ...@@ -2074,18 +2081,25 @@ X11_DestroyRenderer(SDL_Renderer * renderer)
XFreeGC(data->display, data->gc); XFreeGC(data->display, data->gc);
} }
#ifdef SDL_VIDEO_DRIVER_X11_XRENDER #ifdef SDL_VIDEO_DRIVER_X11_XRENDER
if (data->use_xrender) {
if (data->stencil_gc) { if (data->stencil_gc) {
XFreeGC(data->display, data->stencil_gc); XFreeGC(data->display, data->stencil_gc);
} }
if (data->stencil) { if (data->stencil) {
XFreePixmap(data->display, data->stencil); XFreePixmap(data->display, data->stencil);
} }
if (data->drawable_pict) { if (data->stencil_pict) {
XRenderFreePicture(data->display, data->drawable_pict); XRenderFreePicture(data->display, data->stencil_pict);
} }
if (data->xwindow_pict) { if (data->xwindow_pict) {
XRenderFreePicture(data->display, data->xwindow_pict); XRenderFreePicture(data->display, data->xwindow_pict);
} }
#ifdef SDL_VIDEO_DRIVER_X11_XDAMAGE
if (data->use_xdamage && data->stencil_damage) {
XDamageDestroy(data->display, data->stencil_damage);
}
#endif
}
#endif #endif
SDL_FreeDirtyRects(&data->dirty); SDL_FreeDirtyRects(&data->dirty);
SDL_free(data); SDL_free(data);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment