Skip to content

Commit

Permalink
Returned base font scale from swim bar and added unionCurrentCustomFo…
Browse files Browse the repository at this point in the history
…ntMultiplier
  • Loading branch information
hedin77 committed Oct 4, 2022
1 parent 101bb31 commit 247ed77
Show file tree
Hide file tree
Showing 9 changed files with 58 additions and 5 deletions.
2 changes: 1 addition & 1 deletion BuildAll.bat
@@ -1,7 +1,7 @@
@ECHO OFF
CD %~dp0

SET "MSBUILD=C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\amd64\MSBuild.exe"
SET "MSBUILD=G:\Program Files\Microsoft Visual Studio\2022\Community\Msbuild\Current\Bin\amd64\MSBuild.exe"

REM RMDIR /s /q D3D11Engine\Release_AVX\
REM RMDIR /s /q D3D11Engine\Release\
Expand Down
11 changes: 11 additions & 0 deletions BuilsAVX.bat
@@ -0,0 +1,11 @@
@ECHO OFF
CD %~dp0

SET "MSBUILD=G:\Program Files\Microsoft Visual Studio\2022\Community\Msbuild\Current\Bin\amd64\MSBuild.exe"

REM RMDIR /s /q D3D11Engine\Release_AVX\
REM RMDIR /s /q D3D11Engine\Release\
REM RMDIR /s /q D3D11Engine\Release_G1_AVX\
REM RMDIR /s /q D3D11Engine\Release_G1\

"%MSBUILD%" Direct3D7Wrapper.sln /p:Configuration=Release_AVX
2 changes: 1 addition & 1 deletion CreateRedist_All.bat
Expand Up @@ -3,7 +3,7 @@ setlocal enableextensions enabledelayedexpansion

PUSHD %~dp0

SET "VERSION=17.7-dev20"
SET "VERSION=17.8-dev9"

CALL :SUB_BUILD "Gothic2-GD3D11-%VERSION%_avx2" "Release_AVX"
CD /D %~dp0
Expand Down
22 changes: 21 additions & 1 deletion D3D11Engine/D3D11GraphicsEngine.cpp
Expand Up @@ -59,6 +59,7 @@ const int NUM_MIN_FRAME_SHADOW_UPDATES =
4; // Minimum lights to update per frame
const int MAX_IMPORTANT_LIGHT_UPDATES = 1;


D3D11GraphicsEngine::D3D11GraphicsEngine() {
DebugPointlight = nullptr;
OutputWindow = nullptr;
Expand Down Expand Up @@ -86,6 +87,7 @@ D3D11GraphicsEngine::D3D11GraphicsEngine() {
Engine::GAPI->GetRendererState().RendererSettings.LoadedResolution;
CachedRefreshRate.Numerator = 0;
CachedRefreshRate.Denominator = 0;
unionCurrentCustomFontMultiplier = 1.0;
}

D3D11GraphicsEngine::~D3D11GraphicsEngine() {
Expand Down Expand Up @@ -6390,17 +6392,35 @@ namespace UI::zFont {
}
}


float D3D11GraphicsEngine::UpdateCustomFontMultiplierFontRendering( float multiplier ) {
float res = unionCurrentCustomFontMultiplier;
unionCurrentCustomFontMultiplier = multiplier;
return res;
}

void D3D11GraphicsEngine::DrawString( const std::string& str, float x, float y, const zFont* font, zColor& fontColor ) {
if ( str.empty() ) return;
if ( !font ) return;
if ( !font->tex ) return;

float UIScale = 1.0f;
static int savedBarSize = -1;
if ( oCGame::GetGame() ) {
if ( savedBarSize == -1 ) {
savedBarSize = oCGame::GetGame()->swimBar->psizex;
}
UIScale = static_cast<float>(savedBarSize) / 180.f;
}

constexpr float FONT_CACHE_PRIO = -1;
zCTexture* tx = font->tex;

if ( tx->CacheIn( FONT_CACHE_PRIO ) != zRES_CACHED_IN ) {
return;
}

UIScale *= unionCurrentCustomFontMultiplier;

//
// Backup old renderstates, BlendState can be ignored here.
Expand Down Expand Up @@ -6458,7 +6478,7 @@ void D3D11GraphicsEngine::DrawString( const std::string& str, float x, float y,
maxLen--;
}

UI::zFont::AppendGlyphs( vertices, str, maxLen, x, y, font, fontColor, oCGame::GetGame() && oCGame::GetGame()->swimBar ? static_cast<float>(oCGame::GetGame()->swimBar->psizex) / 180.f : 1.0f, zCCamera::GetCamera() );
UI::zFont::AppendGlyphs( vertices, str, maxLen, x, y, font, fontColor, UIScale, zCCamera::GetCamera() );

//if (str[0] == '(') {
// int o = 1;
Expand Down
4 changes: 4 additions & 0 deletions D3D11Engine/D3D11GraphicsEngine.h
Expand Up @@ -337,6 +337,9 @@ class D3D11GraphicsEngine : public D3D11GraphicsEngineBase {
RenderToTextureBuffer* GetDummyCubeRT() { return DummyShadowCubemapTexture.get(); }

void EnsureTempVertexBufferSize( std::unique_ptr<D3D11VertexBuffer>& buffer, UINT size );

float UpdateCustomFontMultiplierFontRendering( float multiplier );

protected:
std::unique_ptr<FpsLimiter> m_FrameLimiter;
int m_LastFrameLimit;
Expand Down Expand Up @@ -438,4 +441,5 @@ class D3D11GraphicsEngine : public D3D11GraphicsEngineBase {
bool m_HDR;
int m_previousFpsLimit;
bool m_isWindowActive;
float unionCurrentCustomFontMultiplier;
};
9 changes: 9 additions & 0 deletions D3D11Engine/DLLMain.cpp
Expand Up @@ -10,6 +10,7 @@
#include <signal.h>
#include "VersionCheck.h"
#include "InstructionSet.h"
#include "D3D11GraphicsEngine.h"

#include <shlwapi.h>

Expand Down Expand Up @@ -66,6 +67,7 @@ struct ddraw_dll {
FARPROC GetSurfaceFromDC;
FARPROC RegisterSpecialCase;
FARPROC ReleaseDDThreadLock;
FARPROC UpdateCustomFontMultiplier;
} ddraw;

HRESULT DoHookedDirectDrawCreateEx( GUID FAR* lpGuid, LPVOID* lplpDD, REFIID iid, IUnknown FAR* pUnkOuter ) {
Expand Down Expand Up @@ -111,6 +113,13 @@ extern "C" void WINAPI HookedReleaseDDThreadLock() {
LogInfo() << "ReleaseDDThreadLock called!";
}


extern "C" float WINAPI UpdateCustomFontMultiplierFontRendering( float multiplier ) {
D3D11GraphicsEngine* engine = reinterpret_cast<D3D11GraphicsEngine*>(Engine::GraphicsEngine);
return engine ? engine->UpdateCustomFontMultiplierFontRendering( multiplier ) : 1.0;
}


__declspec(naked) void FakeAcquireDDThreadLock() { _asm { jmp[ddraw.AcquireDDThreadLock] } }
__declspec(naked) void FakeCheckFullscreen() { _asm { jmp[ddraw.CheckFullscreen] } }
__declspec(naked) void FakeCompleteCreateSysmemSurface() { _asm { jmp[ddraw.CompleteCreateSysmemSurface] } }
Expand Down
3 changes: 2 additions & 1 deletion D3D11Engine/ddraw.def
Expand Up @@ -21,4 +21,5 @@ EXPORTS
GetOLEThunkData = FakeGetOLEThunkData @19
GetSurfaceFromDC = FakeGetSurfaceFromDC @20
RegisterSpecialCase = FakeRegisterSpecialCase @21
ReleaseDDThreadLock = HookedReleaseDDThreadLock @22
ReleaseDDThreadLock = HookedReleaseDDThreadLock @22
UpdateCustomFontMultiplier = UpdateCustomFontMultiplierFontRendering @23
3 changes: 2 additions & 1 deletion Launcher/ddraw.def
Expand Up @@ -33,4 +33,5 @@ EXPORTS
GDX_SetShadowAOStrength = FakeGDX_SetShadowAOStrength @31
GDX_SetWorldAOStrength = FakeGDX_SetWorldAOStrength @32
GDX_OpenMessageBox = FakeGDX_OpenMessageBox @33
GDX_Module = FakeGDX_Module @34
GDX_Module = FakeGDX_Module @34
UpdateCustomFontMultiplier = FakeUpdateCustomFontMultiplier @35
7 changes: 7 additions & 0 deletions Launcher/dllmain.cpp
Expand Up @@ -43,6 +43,8 @@ struct ddraw_dll {
FARPROC GDX_SetShadowAOStrength;
FARPROC GDX_SetWorldAOStrength;
FARPROC GDX_OpenMessageBox;

FARPROC UpdateCustomFontMultiplier;
} ddraw;

__declspec(naked) void FakeAcquireDDThreadLock() { _asm { jmp[ddraw.AcquireDDThreadLock] } }
Expand Down Expand Up @@ -80,6 +82,9 @@ __declspec(naked) void FakeGDX_SetShadowAOStrength() { _asm { jmp[ddraw.GDX_SetS
__declspec(naked) void FakeGDX_SetWorldAOStrength() { _asm { jmp[ddraw.GDX_SetWorldAOStrength] } }
__declspec(naked) void FakeGDX_OpenMessageBox() { _asm { jmp[ddraw.GDX_OpenMessageBox] } }

__declspec(naked) void FakeUpdateCustomFontMultiplier() { _asm { jmp[ddraw.UpdateCustomFontMultiplier] } }


extern "C" HMODULE WINAPI FakeGDX_Module() {
return ddraw.dll;
}
Expand Down Expand Up @@ -285,6 +290,8 @@ BOOL APIENTRY DllMain( HINSTANCE hInst, DWORD reason, LPVOID ) {
ddraw.GDX_SetShadowAOStrength = GetProcAddress( ddraw.dll, "GDX_SetShadowAOStrength" );
ddraw.GDX_SetWorldAOStrength = GetProcAddress( ddraw.dll, "GDX_SetWorldAOStrength" );
ddraw.GDX_OpenMessageBox = GetProcAddress( ddraw.dll, "GDX_OpenMessageBox" );
ddraw.UpdateCustomFontMultiplier = GetProcAddress( ddraw.dll, "UpdateCustomFontMultiplier" );

} else if ( reason == DLL_PROCESS_DETACH ) {
FreeLibrary( ddraw.dll );
}
Expand Down

0 comments on commit 247ed77

Please sign in to comment.