From 4d0b62858c6a46986564b026d87355583552ba28 Mon Sep 17 00:00:00 2001 From: pjgat09 Date: Sat, 19 Jul 2014 02:42:33 +0000 Subject: [PATCH] N64: The jabo wrapper now calls functions in the d3d8 wrapper to bring video into bizhawk --- .../mupen64plus-video-jabo/main.cpp | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/libmupen64plus/mupen64plus-video-jabo/main.cpp b/libmupen64plus/mupen64plus-video-jabo/main.cpp index 9b54d6cded..52c8cbcfff 100644 --- a/libmupen64plus/mupen64plus-video-jabo/main.cpp +++ b/libmupen64plus/mupen64plus-video-jabo/main.cpp @@ -45,6 +45,13 @@ static int l_PluginInit = 0; HMODULE JaboDLL; HWND hWnd_jabo; +HMODULE D3D8Dll; + +typedef void (*ptr_D3D8_SetRenderingCallback)(void (*callback)(int)); +ptr_D3D8_SetRenderingCallback D3D8_SetRenderingCallback = NULL; +typedef void (*ptr_D3D8_ReadScreen)(void *dest, int *width, int *height); +ptr_D3D8_ReadScreen D3D8_ReadScreen = NULL; + void setup_jabo_functions() { JaboDLL = LoadLibrary("Jabotard_Direct3D8.dll"); @@ -67,6 +74,13 @@ void setup_jabo_functions() OldAPI::DllConfig = (OldAPI::ptr_DllConfig)GetProcAddress(JaboDLL,"DllConfig"); OldAPI::GetDllInfo = (OldAPI::ptr_GetDllInfo)GetProcAddress(JaboDLL,"GetDllInfo"); } + + D3D8Dll = LoadLibrary("D3D8.dll"); + if (D3D8Dll != NULL) + { + D3D8_SetRenderingCallback = (ptr_D3D8_SetRenderingCallback)GetProcAddress(D3D8Dll,"SetRenderingCallback"); + D3D8_ReadScreen = (ptr_D3D8_ReadScreen)GetProcAddress(D3D8Dll,"ReadScreen"); + } } /* Global functions */ @@ -250,6 +264,7 @@ EXPORT int CALL InitiateGFX(GFX_INFO Gfx_Info) blah.CheckInterrupts = Gfx_Info.CheckInterrupts; OldAPI::InitiateGFX(blah); + OldAPI::DllConfig(hWnd_jabo); return(TRUE); } @@ -300,6 +315,10 @@ EXPORT void CALL ViWidthChanged(void) EXPORT void CALL ReadScreen2(void *dest, int *width, int *height, int bFront) { LOG("API WRAPPER:\t ReadScreen2") + if (D3D8_ReadScreen != NULL) + { + D3D8_ReadScreen(dest, width, height); + } //*width = 800; //*height = 600; } @@ -308,6 +327,10 @@ EXPORT void CALL ReadScreen2(void *dest, int *width, int *height, int bFront) EXPORT void CALL SetRenderingCallback(void (*callback)(int)) { LOG("API WRAPPER:\t SetRenderingCallback") + if (D3D8_SetRenderingCallback != NULL) + { + D3D8_SetRenderingCallback(callback); + } } // IMPLEMENT LATER?