X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=futatabi%2Fvideo_stream.cpp;h=8b29794abe2ff7aca21eff8267b8e6a76092c13c;hb=9c29ca89b638194f5771c22fadf6bf490d4595a3;hp=59ab8bfc936d989e9ebc7b2250788c69a8a84df4;hpb=cb0dcfa84f9529ee371ff41ee6813c9bea71766a;p=nageru diff --git a/futatabi/video_stream.cpp b/futatabi/video_stream.cpp index 59ab8bf..8b29794 100644 --- a/futatabi/video_stream.cpp +++ b/futatabi/video_stream.cpp @@ -241,6 +241,30 @@ VideoStream::~VideoStream() if (last_flow_tex != 0) { compute_flow->release_texture(last_flow_tex); } + + for (const unique_ptr &resource : interpolate_resources) { + glUnmapNamedBuffer(resource->pbo); + check_error(); + glDeleteBuffers(1, &resource->pbo); + check_error(); + glDeleteFramebuffers(2, resource->input_fbos); + check_error(); + glDeleteFramebuffers(1, &resource->fade_fbo); + check_error(); + glDeleteTextures(1, &resource->input_tex); + check_error(); + glDeleteTextures(1, &resource->gray_tex); + check_error(); + glDeleteTextures(1, &resource->fade_y_output_tex); + check_error(); + glDeleteTextures(1, &resource->fade_cbcr_output_tex); + check_error(); + glDeleteTextures(1, &resource->cb_tex); + check_error(); + glDeleteTextures(1, &resource->cr_tex); + check_error(); + } + assert(interpolate_resources.size() == num_interpolate_slots); } void VideoStream::start()