diff --git a/gamemaker/TheorafileGMS/extensions/TheorafileGMS/TheorafileGMS.dll b/gamemaker/TheorafileGMS/extensions/TheorafileGMS/TheorafileGMS.dll index 43179a2..3cfe54d 100644 Binary files a/gamemaker/TheorafileGMS/extensions/TheorafileGMS/TheorafileGMS.dll and b/gamemaker/TheorafileGMS/extensions/TheorafileGMS/TheorafileGMS.dll differ diff --git a/gamemaker/TheorafileGMS/objects/Renderer/CleanUp_0.gml b/gamemaker/TheorafileGMS/objects/Renderer/CleanUp_0.gml index ce920f6..48ee872 100644 --- a/gamemaker/TheorafileGMS/objects/Renderer/CleanUp_0.gml +++ b/gamemaker/TheorafileGMS/objects/Renderer/CleanUp_0.gml @@ -1 +1 @@ -Theorafile_Close(video); \ No newline at end of file +Theorafile_Close(video); diff --git a/gamemaker/TheorafileGMS/objects/Renderer/Draw_0.gml b/gamemaker/TheorafileGMS/objects/Renderer/Draw_0.gml index 1487f70..374814e 100644 --- a/gamemaker/TheorafileGMS/objects/Renderer/Draw_0.gml +++ b/gamemaker/TheorafileGMS/objects/Renderer/Draw_0.gml @@ -1,3 +1,3 @@ Theorafile_UpdateSurface(video); -draw_surface_stretched(video.videoSurface, 0, 0, surface_get_width(application_surface), surface_get_height(application_surface)); \ No newline at end of file +draw_surface_stretched(video.videoSurface, 0, 0, surface_get_width(application_surface), surface_get_height(application_surface)); diff --git a/gamemaker/TheorafileGMS/scripts/TheorafileGMS_Scripts/TheorafileGMS_Scripts.gml b/gamemaker/TheorafileGMS/scripts/TheorafileGMS_Scripts/TheorafileGMS_Scripts.gml index 247dd36..df9aeaa 100644 --- a/gamemaker/TheorafileGMS/scripts/TheorafileGMS_Scripts/TheorafileGMS_Scripts.gml +++ b/gamemaker/TheorafileGMS/scripts/TheorafileGMS_Scripts/TheorafileGMS_Scripts.gml @@ -57,7 +57,11 @@ function Theorafile_Open(filename) function Theorafile_Close(video) { - buffer_delete(video.yuvBuffer); + surface_free(video.ySurface); + surface_free(video.uSurface); + surface_free(video.vSurface); + surface_free(video.videoSurface); + //buffer_delete(video.yuvBuffer); vertex_format_delete(video.triangle_buffer_format); vertex_delete_buffer(video.triangle_buffer); TheorafileGMS_Close(video.handle); diff --git a/src/TheorafileGMS.c b/src/TheorafileGMS.c index 0d5c339..4f5b1ca 100644 --- a/src/TheorafileGMS.c +++ b/src/TheorafileGMS.c @@ -67,7 +67,9 @@ char* TheorafileGMS_Open(char* filename) void TheorafileGMS_Close(char* filePointer) { - SDL_free(filePointer); + OggTheora_File* file = (OggTheora_File*)filePointer; + tf_close(file); + /* SDL_free(file); */ /* FIXME: why the hell is this crashing game maker */ } double TheorafileGMS_HasVideo(char* filePointer)