Skip to content

Commit

Permalink
Fix Render_R1 do not load.
Browse files Browse the repository at this point in the history
  • Loading branch information
intorr committed Dec 24, 2017
1 parent adfa5b3 commit bcb6a23
Show file tree
Hide file tree
Showing 7 changed files with 27 additions and 101 deletions.
14 changes: 1 addition & 13 deletions src/Layers/xrRenderPC_R1/xrRender_R1.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,5 @@ extern "C" void XR_EXPORT SetupEnv()
#ifdef DEBUG
GEnv.DRender = &DebugRenderImpl;
#endif
xrRender_initconsole();
}

BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH: SetupEnv(); break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH: break;
}
return TRUE;
xrRender_initconsole(); // XXX: Xottab_DUTY: move somewhere
}
22 changes: 2 additions & 20 deletions src/Layers/xrRenderPC_R2/xrRender_R2.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// xrRender_R2.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
#include "Layers/xrRender/dxRenderFactory.h"
#include "Layers/xrRender/dxUIRender.h"
Expand All @@ -16,26 +14,10 @@ extern "C" void XR_EXPORT SetupEnv()
#ifdef DEBUG
GEnv.DRender = &DebugRenderImpl;
#endif
xrRender_initconsole();
xrRender_initconsole(); // XXX: Xottab_DUTY: move somewhere
}

BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH: SetupEnv(); break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH: break;
}
return TRUE;
}

extern "C" {
bool _declspec(dllexport) SupportsAdvancedRendering();
};

bool _declspec(dllexport) SupportsAdvancedRendering()
extern "C" bool XR_EXPORT SupportsAdvancedRendering()
{
D3DCAPS9 caps;
CHW _HW;
Expand Down
22 changes: 2 additions & 20 deletions src/Layers/xrRenderPC_R3/xrRender_R3.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// xrRender_R2.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
#include "Layers/xrRender/dxRenderFactory.h"
#include "Layers/xrRender/dxUIRender.h"
Expand All @@ -16,26 +14,10 @@ extern "C" void XR_EXPORT SetupEnv()
#ifdef DEBUG
GEnv.DRender = &DebugRenderImpl;
#endif
xrRender_initconsole();
xrRender_initconsole(); // XXX: Xottab_DUTY: move somewhere
}

BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH: SetupEnv(); break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH: break;
}
return TRUE;
}

extern "C" {
bool _declspec(dllexport) SupportsDX10Rendering();
};

bool _declspec(dllexport) SupportsDX10Rendering()
extern "C" bool XR_EXPORT SupportsDX10Rendering()
{
return xrRender_test_hw() ? true : false;
/*
Expand Down
20 changes: 1 addition & 19 deletions src/Layers/xrRenderPC_R4/xrRender_R4.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// xrRender_R2.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
#include "Layers/xrRender/dxRenderFactory.h"
#include "Layers/xrRender/dxUIRender.h"
Expand All @@ -19,23 +17,7 @@ extern "C" void XR_EXPORT SetupEnv()
xrRender_initconsole(); // XXX: Xottab_DUTY: move somewhere
}

BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH: SetupEnv(); break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH: break;
}
return TRUE;
}

extern "C" {
bool _declspec(dllexport) SupportsDX11Rendering();
};

bool _declspec(dllexport) SupportsDX11Rendering()
extern "C" bool XR_EXPORT SupportsDX11Rendering()
{
return xrRender_test_hw() ? true : false;
/*
Expand Down
2 changes: 1 addition & 1 deletion src/xrCore/ModuleLookup.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ namespace XRay
{
Module::Module(const bool dontUnload) : handle(nullptr), dontUnload(dontUnload) {}

Module::Module(pcstr moduleName, bool dontUnload /*= false*/) : handle(nullptr)
Module::Module(pcstr moduleName, bool dontUnload /*= false*/) : handle(nullptr), dontUnload(dontUnload)
{
open(moduleName);
}
Expand Down
46 changes: 19 additions & 27 deletions src/xrEngine/EngineAPI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@

#include "stdafx.h"
#include "EngineAPI.h"
#include "xrCDB/xrXRC.h"
#include "xrScriptEngine/script_engine.hpp"

#include "xrCore/ModuleLookup.hpp"

Expand Down Expand Up @@ -98,12 +96,10 @@ void CEngineAPI::InitializeRenderers()
InitializeNotDedicated();
#endif // DEDICATED_SERVER

if (!hRender->exist())
if ((!hRender->exist()) | (!psDeviceFlags.test(rsR4|rsR3|rsR2)))
{
// try to load R1
psDeviceFlags.set(rsR4, false);
psDeviceFlags.set(rsR3, false);
psDeviceFlags.set(rsR2, false);
psDeviceFlags.set(rsR4|rsR3|rsR2, false);
renderer_value = 0; // con cmd

hRender->open(r1_name);
Expand Down Expand Up @@ -158,19 +154,15 @@ void CEngineAPI::Initialize(void)

void CEngineAPI::Destroy(void)
{
pCreate = 0;
pDestroy = 0;
if (hGame) hGame->close();
if (hTuner) hTuner->close();
if (hRender) hRender->close();
pCreate = nullptr;
pDestroy = nullptr;
Engine.Event._destroy();
XRC.r_clear_compact();
}

extern "C"
{
using SupportsAdvancedRendering = bool __cdecl();
using SupportsDX10Rendering = bool XR_EXPORT();
using SupportsDX11Rendering = bool XR_EXPORT();
};

void CEngineAPI::CreateRendererList()
{
#ifdef DEDICATED_SERVER
Expand Down Expand Up @@ -208,10 +200,10 @@ void CEngineAPI::CreateRendererList()
if (hRender->exist())
{
bSupports_r2 = true;
auto test_rendering =
(SupportsAdvancedRendering*)hRender->getProcAddress("SupportsAdvancedRendering");
R_ASSERT(test_rendering);
bSupports_r2_5 = test_rendering();
using SupportsAdvancedRendering = bool(*)();
auto test = (SupportsAdvancedRendering)hRender->getProcAddress("SupportsAdvancedRendering");
R_ASSERT(test);
bSupports_r2_5 = test();
}

// try to initialize R3
Expand All @@ -222,10 +214,10 @@ void CEngineAPI::CreateRendererList()
SetErrorMode(0);
if (hRender->exist())
{
auto test_dx10_rendering =
(SupportsDX10Rendering*)hRender->getProcAddress("SupportsDX10Rendering");
R_ASSERT(test_dx10_rendering);
bSupports_r3 = test_dx10_rendering();
using SupportsDX10Rendering = bool(*)();
auto test = (SupportsDX10Rendering)hRender->getProcAddress("SupportsDX10Rendering");
R_ASSERT(test);
bSupports_r3 = test();
}

// try to initialize R4
Expand All @@ -236,10 +228,10 @@ void CEngineAPI::CreateRendererList()
SetErrorMode(0);
if (hRender->exist())
{
auto test_dx11_rendering =
(SupportsDX11Rendering*)hRender->getProcAddress("SupportsDX11Rendering");
R_ASSERT(test_dx11_rendering);
bSupports_r4 = test_dx11_rendering();
using SupportsDX11Rendering = bool(*)();
auto test = (SupportsDX11Rendering)hRender->getProcAddress("SupportsDX11Rendering");
R_ASSERT(test);
bSupports_r4 = test();
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/xrEngine/EngineAPI.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ typedef void __cdecl VTResume(void);
class ENGINE_API CEngineAPI
{
std::unique_ptr<XRay::Module> hGame;
std::unique_ptr<XRay::Module> hRender;
std::unique_ptr<XRay::Module> hTuner;
std::unique_ptr<XRay::Module> hRender;

public:
BENCH_SEC_SCRAMBLEMEMBER1
Expand Down

0 comments on commit bcb6a23

Please sign in to comment.