diff --git a/libmupen64plus/mupen64plus-video-glide64/src/wrapper/main.cpp b/libmupen64plus/mupen64plus-video-glide64/src/wrapper/main.cpp index 7e10d24d8e..3790bbc460 100644 --- a/libmupen64plus/mupen64plus-video-glide64/src/wrapper/main.cpp +++ b/libmupen64plus/mupen64plus-video-glide64/src/wrapper/main.cpp @@ -212,10 +212,10 @@ static int texbuf_i; static SDL_Surface *m_pScreen; -// unsigned short * frameBuffer = NULL; -// unsigned short * depthBuffer = NULL; -unsigned short frameBuffer[2048*2048]; -unsigned short depthBuffer[2048*2048]; +unsigned short *frameBuffer = NULL; +unsigned short *depthBuffer = NULL; +// unsigned short frameBuffer[2048*2048]; +// unsigned short depthBuffer[2048*2048]; //#define VOODOO1 @@ -550,6 +550,8 @@ grSstWinOpen( // frameBuffer = (unsigned short *) calloc(2048, 2048*sizeof(unsigned short)); // depthBuffer = (unsigned short *) calloc(2048, 2048*sizeof(unsigned short)); + frameBuffer = (unsigned short *)_aligned_malloc(height*width*4, 256); + depthBuffer = (unsigned short *)_aligned_malloc(height*width*2, 256); screen_width = width; screen_height = height; @@ -605,15 +607,15 @@ grSstWinClose( GrContext_t context ) invtex[i] = 0; } -// if (frameBuffer) -// free(frameBuffer); -// if (depthBuffer) -// free(depthBuffer); -// frameBuffer = depthBuffer = NULL; + if (frameBuffer) + _aligned_free(frameBuffer); + if (depthBuffer) + _aligned_free(depthBuffer); + frameBuffer = depthBuffer = NULL; - free_combiners(); - if (use_fbo) - glBindFramebufferEXT( GL_FRAMEBUFFER_EXT, 0 ); + free_combiners(); + if (use_fbo) + glBindFramebufferEXT( GL_FRAMEBUFFER_EXT, 0 ); if (clear_texbuff) { diff --git a/libmupen64plus/mupen64plus-video-glide64mk2/projects/msvc10/mupen64plus-video-glide64mk2.vcxproj b/libmupen64plus/mupen64plus-video-glide64mk2/projects/msvc10/mupen64plus-video-glide64mk2.vcxproj index 6f47e20e5b..62bc3b1acd 100644 --- a/libmupen64plus/mupen64plus-video-glide64mk2/projects/msvc10/mupen64plus-video-glide64mk2.vcxproj +++ b/libmupen64plus/mupen64plus-video-glide64mk2/projects/msvc10/mupen64plus-video-glide64mk2.vcxproj @@ -42,10 +42,10 @@ <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ + $(SolutionDir)..\..\..\..\output\dll\ $(Configuration)\ true - $(SolutionDir)$(Configuration)\ + $(SolutionDir)..\..\..\..\output\dll\ $(Configuration)\ false true @@ -89,7 +89,7 @@ ..\lib;..\..\..\mupen64plus-win32-deps\boost-1.53.0\boost\libs;%(AdditionalLibraryDirectories) false true - .\Debug/Glide64.pdb + $(TargetDir)$(TargetName).pdb .\Debug/Glide64.lib MachineX86 diff --git a/libmupen64plus/mupen64plus-video-glide64mk2/src/Glitch64/glitchmain.cpp b/libmupen64plus/mupen64plus-video-glide64mk2/src/Glitch64/glitchmain.cpp index da75486c89..fbfa65faf8 100644 --- a/libmupen64plus/mupen64plus-video-glide64mk2/src/Glitch64/glitchmain.cpp +++ b/libmupen64plus/mupen64plus-video-glide64mk2/src/Glitch64/glitchmain.cpp @@ -199,8 +199,8 @@ struct texbuf_t { static texbuf_t texbufs[NB_TEXBUFS]; static int texbuf_i; -unsigned short frameBuffer[2048*2048]; -unsigned short depthBuffer[2048*2048]; +unsigned short *frameBuffer = NULL; +unsigned short *depthBuffer = NULL; //#define VOODOO1 @@ -497,6 +497,9 @@ grSstWinOpen( // ZIGGY viewport_offset is WIN32 specific, with SDL just set it to zero viewport_offset = 0; //-10 //-20; + frameBuffer = (unsigned short *)_aligned_malloc(height*width*4, 256); + depthBuffer = (unsigned short *)_aligned_malloc(height*width*2, 256); + // ZIGGY not sure, but it might be better to let the system choose CoreVideo_GL_SetAttribute(M64P_GL_DOUBLEBUFFER, 1); CoreVideo_GL_SetAttribute(M64P_GL_SWAP_CONTROL, vsync); @@ -743,6 +746,12 @@ grSstWinClose( GrContext_t context ) invtex[i] = 0; } + if (frameBuffer) + _aligned_free(frameBuffer); + if (depthBuffer) + _aligned_free(depthBuffer); + frameBuffer = depthBuffer = NULL; + free_combiners(); #ifndef WIN32 try // I don't know why, but opengl can be killed before this function call when emulator is closed (Gonetz). diff --git a/output/dll/mupen64plus-video-glide64mk2.dll b/output/dll/mupen64plus-video-glide64mk2.dll index 9eb12fed5a..a8ce1755e2 100644 Binary files a/output/dll/mupen64plus-video-glide64mk2.dll and b/output/dll/mupen64plus-video-glide64mk2.dll differ