Skip to content

Commit

Permalink
Fix render env setup.
Browse files Browse the repository at this point in the history
  • Loading branch information
nitrocaster committed Dec 13, 2015
1 parent 0af6e60 commit b28ce3b
Show file tree
Hide file tree
Showing 6 changed files with 75 additions and 56 deletions.
26 changes: 14 additions & 12 deletions src/Layers/xrRenderPC_GL/xrRender_GL.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,18 @@
#pragma comment(lib, "xrEngine.lib")
#pragma comment(lib, "xrScriptEngine.lib")

extern "C" void XR_EXPORT SetupEnv()
{
GlobalEnv.Render = &RImplementation;
GlobalEnv.RenderFactory = &RenderFactoryImpl;
GlobalEnv.DU = &DUImpl;
GlobalEnv.UIRender = &UIRenderImpl;
#ifdef DEBUG
GlobalEnv.DRender = &DebugRenderImpl;
#endif
xrRender_initconsole();
}

BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
Expand All @@ -16,18 +28,8 @@ BOOL APIENTRY DllMain( HANDLE hModule,
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH :
// Can't call CreateDXGIFactory from DllMain
//if (!xrRender_test_hw()) return FALSE;
GlobalEnv.Render = &RImplementation;
GlobalEnv.RenderFactory = &RenderFactoryImpl;
GlobalEnv.DU = &DUImpl;
//GlobalEnv.vid_mode_token = inited by HW;
GlobalEnv.UIRender = &UIRenderImpl;
#ifdef DEBUG
GlobalEnv.DRender = &DebugRenderImpl;
#endif // DEBUG
xrRender_initconsole ();
break ;
SetupEnv();
break;
case DLL_THREAD_ATTACH :
case DLL_THREAD_DETACH :
case DLL_PROCESS_DETACH :
Expand Down
24 changes: 14 additions & 10 deletions src/Layers/xrRenderPC_R1/xrRender_R1.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,18 @@
#pragma comment(lib, "xrEngine.lib")
#pragma comment(lib, "xrScriptEngine.lib")

extern "C" void XR_EXPORT SetupEnv()
{
GlobalEnv.Render = &RImplementation;
GlobalEnv.RenderFactory = &RenderFactoryImpl;
GlobalEnv.DU = &DUImpl;
GlobalEnv.UIRender = &UIRenderImpl;
#ifdef DEBUG
GlobalEnv.DRender = &DebugRenderImpl;
#endif
xrRender_initconsole();
}

BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
Expand All @@ -14,16 +26,8 @@ BOOL APIENTRY DllMain( HANDLE hModule,
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
GlobalEnv.Render = &RImplementation;
GlobalEnv.RenderFactory = &RenderFactoryImpl;
GlobalEnv.DU = &DUImpl;
//GlobalEnv.vid_mode_token = inited by HW;
GlobalEnv.UIRender = &UIRenderImpl;
#ifdef DEBUG
GlobalEnv.DRender = &DebugRenderImpl;
#endif // DEBUG
xrRender_initconsole ();
break;
SetupEnv();
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
Expand Down
24 changes: 14 additions & 10 deletions src/Layers/xrRenderPC_R2/xrRender_R2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,18 @@
#pragma comment(lib, "xrEngine.lib")
#pragma comment(lib, "xrScriptEngine.lib")

extern "C" void XR_EXPORT SetupEnv()
{
GlobalEnv.Render = &RImplementation;
GlobalEnv.RenderFactory = &RenderFactoryImpl;
GlobalEnv.DU = &DUImpl;
GlobalEnv.UIRender = &UIRenderImpl;
#ifdef DEBUG
GlobalEnv.DRender = &DebugRenderImpl;
#endif
xrRender_initconsole();
}

BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
Expand All @@ -16,16 +28,8 @@ BOOL APIENTRY DllMain( HANDLE hModule,
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH :
GlobalEnv.Render = &RImplementation;
GlobalEnv.RenderFactory = &RenderFactoryImpl;
GlobalEnv.DU = &DUImpl;
//GlobalEnv.vid_mode_token = inited by HW;
GlobalEnv.UIRender = &UIRenderImpl;
#ifdef DEBUG
GlobalEnv.DRender = &DebugRenderImpl;
#endif // DEBUG
xrRender_initconsole ();
break ;
SetupEnv();
break;
case DLL_THREAD_ATTACH :
case DLL_THREAD_DETACH :
case DLL_PROCESS_DETACH :
Expand Down
26 changes: 14 additions & 12 deletions src/Layers/xrRenderPC_R3/xrRender_R3.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,18 @@
#pragma comment(lib, "xrEngine.lib")
#pragma comment(lib, "xrScriptEngine.lib")

extern "C" void XR_EXPORT SetupEnv()
{
GlobalEnv.Render = &RImplementation;
GlobalEnv.RenderFactory = &RenderFactoryImpl;
GlobalEnv.DU = &DUImpl;
GlobalEnv.UIRender = &UIRenderImpl;
#ifdef DEBUG
GlobalEnv.DRender = &DebugRenderImpl;
#endif
xrRender_initconsole();
}

BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
Expand All @@ -16,18 +28,8 @@ BOOL APIENTRY DllMain( HANDLE hModule,
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH :
// Can't call CreateDXGIFactory from DllMain
//if (!xrRender_test_hw()) return FALSE;
GlobalEnv.Render = &RImplementation;
GlobalEnv.RenderFactory = &RenderFactoryImpl;
GlobalEnv.DU = &DUImpl;
//GlobalEnv.vid_mode_token = inited by HW;
GlobalEnv.UIRender = &UIRenderImpl;
#ifdef DEBUG
GlobalEnv.DRender = &DebugRenderImpl;
#endif // DEBUG
xrRender_initconsole ();
break ;
SetupEnv();
break;
case DLL_THREAD_ATTACH :
case DLL_THREAD_DETACH :
case DLL_PROCESS_DETACH :
Expand Down
26 changes: 14 additions & 12 deletions src/Layers/xrRenderPC_R4/xrRender_R4.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,18 @@
#pragma comment(lib, "xrEngine.lib")
#pragma comment(lib, "xrScriptEngine.lib")

extern "C" void XR_EXPORT SetupEnv()
{
GlobalEnv.Render = &RImplementation;
GlobalEnv.RenderFactory = &RenderFactoryImpl;
GlobalEnv.DU = &DUImpl;
GlobalEnv.UIRender = &UIRenderImpl;
#ifdef DEBUG
GlobalEnv.DRender = &DebugRenderImpl;
#endif
xrRender_initconsole();
}

BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
Expand All @@ -16,18 +28,8 @@ BOOL APIENTRY DllMain( HANDLE hModule,
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH :
// Can't call CreateDXGIFactory from DllMain
//if (!xrRender_test_hw()) return FALSE;
GlobalEnv.Render = &RImplementation;
GlobalEnv.RenderFactory = &RenderFactoryImpl;
GlobalEnv.DU = &DUImpl;
//GlobalEnv.vid_mode_token = inited by HW;
GlobalEnv.UIRender = &UIRenderImpl;
#ifdef DEBUG
GlobalEnv.DRender = &DebugRenderImpl;
#endif // DEBUG
xrRender_initconsole ();
break ;
SetupEnv();
break;
case DLL_THREAD_ATTACH :
case DLL_THREAD_DETACH :
case DLL_PROCESS_DETACH :
Expand Down
5 changes: 5 additions & 0 deletions src/xrEngine/EngineAPI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,11 @@ void CEngineAPI::Initialize(void)
R_ASSERT(hRender);
g_current_renderer = 1;
}
// ask current renderer to setup GlobalEnv
using SetupEnvFunc = void(*)();
auto setupEnv = (SetupEnvFunc)XRay::GetProcAddress(hRender, "SetupEnv");
R_ASSERT(setupEnv);
setupEnv();
// game
{
LPCSTR g_name = "xrGame";
Expand Down

0 comments on commit b28ce3b

Please sign in to comment.