X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=futatabi%2Fvideo_stream.cpp;h=8b29794abe2ff7aca21eff8267b8e6a76092c13c;hb=d3aaa6449bc96989cb435b65c30199772d7ba353;hp=59ab8bfc936d989e9ebc7b2250788c69a8a84df4;hpb=a71e57d444a2f7312e052337ea668c0d432d6497;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()