From 0e00550b0a727ae16693850b64cf6d6a0ffab4bf Mon Sep 17 00:00:00 2001 From: RD42 <42702181+dashr9230@users.noreply.github.com> Date: Sun, 7 Apr 2024 22:47:56 +0800 Subject: [PATCH] [saco] Implement few CFontRender member functions --- saco/fontrender.cpp | 52 ++++++++++++++++++++++++++++++++++++++++++--- saco/fontrender.h | 15 ++++++++++++- 2 files changed, 63 insertions(+), 4 deletions(-) diff --git a/saco/fontrender.cpp b/saco/fontrender.cpp index cdfee3d..d846ed7 100644 --- a/saco/fontrender.cpp +++ b/saco/fontrender.cpp @@ -1,19 +1,65 @@ #include "main.h" +#include "fontrender.h" + +//---------------------------------------------------- CFontRender::CFontRender(IDirect3DDevice9* pD3DDevice) { - // TODO: CFontRender::CFontRender() .text:1006BAF0 + m_pD3DDevice = pD3DDevice; + field_0 = NULL; + field_4 = NULL; + field_8 = NULL; + field_C = NULL; + field_14 = NULL; + field_10 = NULL; + + CreateFonts(); +} + +CFontRender::~CFontRender() +{ + SAFE_RELEASE(field_0); + SAFE_RELEASE(field_4); + SAFE_RELEASE(field_8); + SAFE_RELEASE(field_C); + SAFE_RELEASE(field_14); + SAFE_RELEASE(field_10); +} + +void CFontRender::CreateFonts() +{ + if(!m_pD3DDevice) return; + SAFE_RELEASE(field_0); + SAFE_RELEASE(field_4); + SAFE_RELEASE(field_8); + SAFE_RELEASE(field_C); + SAFE_RELEASE(field_14); + SAFE_RELEASE(field_10); + + // TODO: CFontRender::CreateFonts + + //D3DXCreateFont(); } void CFontRender::DeleteDeviceObjects() { - // TODO: CFontRender::DeleteDeviceObjects() .text:1006B180 + field_0->OnLostDevice(); + field_4->OnLostDevice(); + field_8->OnLostDevice(); + field_C->OnLostDevice(); + field_14->OnLostDevice(); + field_10->OnLostDevice(); } void CFontRender::RestoreDeviceObjects() { - // TODO: CFontRender::RestoreDeviceObjects() .text:1006B1C0 + field_0->OnResetDevice(); + field_4->OnResetDevice(); + field_8->OnResetDevice(); + field_C->OnResetDevice(); + field_14->OnResetDevice(); + field_10->OnResetDevice(); } SIZE CFontRender::MeasureText(char * szString, DWORD dwFormat) diff --git a/saco/fontrender.h b/saco/fontrender.h index 33294d7..cc1b947 100644 --- a/saco/fontrender.h +++ b/saco/fontrender.h @@ -4,10 +4,23 @@ class CFontRender // size: 40 { private: - char _gap0[40]; + ID3DXFontHook *field_0; + ID3DXFontHook *field_4; + ID3DXFont *field_8; + ID3DXFont *field_C; + ID3DXFont *field_10; + ID3DXSprite* field_14; + IDirect3DDevice9 *m_pD3DDevice; + CHAR *field_1C; + LONG field_20; + LONG field_24; public: + CFontRender(IDirect3DDevice9* pD3DDevice); + ~CFontRender(); + + void CreateFonts(); void DeleteDeviceObjects(); void RestoreDeviceObjects();