diff --git a/core/rend/gles/gldraw.cpp b/core/rend/gles/gldraw.cpp index 34cc6bc12..54ba46b9e 100644 --- a/core/rend/gles/gldraw.cpp +++ b/core/rend/gles/gldraw.cpp @@ -919,4 +919,12 @@ void DrawGunCrosshair(u8 port) glcache.BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); } + +void termVmuLightgun() +{ + glcache.DeleteTextures(ARRAY_SIZE(vmuTextureId), vmuTextureId); + memset(vmuTextureId, 0, sizeof(vmuTextureId)); + glcache.DeleteTextures(ARRAY_SIZE(lightgunTextureId), lightgunTextureId); + memset(lightgunTextureId, 0, sizeof(lightgunTextureId)); +} #endif diff --git a/core/rend/gles/gles.cpp b/core/rend/gles/gles.cpp index 05e02e87f..856a54b70 100644 --- a/core/rend/gles/gles.cpp +++ b/core/rend/gles/gles.cpp @@ -403,6 +403,9 @@ void termGLCommon() free_output_framebuffer(); glcache.DeleteTextures(1, &fbTextureId); fbTextureId = 0; +#ifdef LIBRETRO + termVmuLightgun(); +#endif } static void gles_term() diff --git a/core/rend/gles/gles.h b/core/rend/gles/gles.h index d7ebae094..6bb81184c 100755 --- a/core/rend/gles/gles.h +++ b/core/rend/gles/gles.h @@ -338,4 +338,5 @@ out highp vec4 FragColor; \n\ " #ifdef LIBRETRO extern "C" struct retro_hw_render_callback hw_render; +void termVmuLightgun(); #endif