summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPetri Hintukainen <phintuka@users.sourceforge.net>2014-05-14 11:09:57 +0300
committerPetri Hintukainen <phintuka@users.sourceforge.net>2014-05-14 11:09:57 +0300
commitc2e5321920324d66f69f3407bd3670f4b2948cb0 (patch)
tree224f36706ff3d671f75e2693b1c9563beec75e60 /src
parent96d5611c15a1cab9c5954dd5c6fa0a9a6ac2f3a8 (diff)
downloadxine-lib-c2e5321920324d66f69f3407bd3670f4b2948cb0.tar.gz
xine-lib-c2e5321920324d66f69f3407bd3670f4b2948cb0.tar.bz2
video_out_opengl2: free overlay resources when overlay is not in use
Diffstat (limited to 'src')
-rw-r--r--src/video_out/video_out_opengl2.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/video_out/video_out_opengl2.c b/src/video_out/video_out_opengl2.c
index 0fc66ef6e..2b353b746 100644
--- a/src/video_out/video_out_opengl2.c
+++ b/src/video_out/video_out_opengl2.c
@@ -836,6 +836,14 @@ static void opengl2_update_overlays( opengl2_driver_t *that )
glTexParameteri( GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
glBindTexture( GL_TEXTURE_RECTANGLE_ARB, 0 );
}
+
+ /* free unused textures and buffers */
+ for ( ; i < XINE_VORAW_MAX_OVL && that->overlays[i].tex; ++i ) {
+ _x_freep( that->overlays[i].ovl_rgba );
+ that->overlays[i].ovl_w = 0;
+ that->overlays[i].ovl_h = 0;
+ glDeleteTextures( 1, &that->overlays[i].tex );
+ }
}
if ( that->ovl_changed && vid_scale && !cancel_vid_scale )