mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
GameUI: use cached module handle to retrieve resources
Use the one we cache during the initialization of the SDK, which is faster than looking for it again.
This commit is contained in:
parent
b8550c9f32
commit
456a68af05
@ -48,6 +48,7 @@ CBrowser::CBrowser(void)
|
||||
: m_reclaimFocusOnTokenField(false)
|
||||
, m_queryNewListNonRecursive(false)
|
||||
, m_queryGlobalBanList(true)
|
||||
, m_lockedIconShaderResource(nullptr)
|
||||
, m_hostMessageColor(1.00f, 1.00f, 1.00f, 1.00f)
|
||||
, m_hiddenServerMessageColor(0.00f, 1.00f, 0.00f, 1.00f)
|
||||
{
|
||||
@ -57,8 +58,6 @@ CBrowser::CBrowser(void)
|
||||
memset(m_serverAddressTextBuf, '\0', sizeof(m_serverAddressTextBuf));
|
||||
memset(m_serverNetKeyTextBuf, '\0', sizeof(m_serverNetKeyTextBuf));
|
||||
|
||||
m_lockedIconDataResource = GetModuleResource(IDB_PNG2);
|
||||
|
||||
m_levelName = "mp_lobby";
|
||||
m_gameMode = "dev_default";
|
||||
}
|
||||
@ -78,7 +77,10 @@ bool CBrowser::Init(void)
|
||||
{
|
||||
SetStyleVar(927.f, 524.f, -500.f, 50.f);
|
||||
|
||||
bool ret = LoadTextureBuffer(reinterpret_cast<unsigned char*>(m_lockedIconDataResource.m_pData), int(m_lockedIconDataResource.m_nSize),
|
||||
HMODULE sdkModule = reinterpret_cast<HMODULE>(g_SDKDll.GetModuleBase());
|
||||
m_lockedIconDataResource = GetModuleResource(sdkModule, IDB_PNG2);
|
||||
|
||||
const bool ret = LoadTextureBuffer(reinterpret_cast<unsigned char*>(m_lockedIconDataResource.m_pData), int(m_lockedIconDataResource.m_nSize),
|
||||
&m_lockedIconShaderResource, &m_lockedIconDataResource.m_nWidth, &m_lockedIconDataResource.m_nHeight);
|
||||
|
||||
IM_ASSERT(ret && m_lockedIconShaderResource);
|
||||
|
@ -912,22 +912,19 @@ void CConsole::DetermineAutoCompleteWindowRect(void)
|
||||
//-----------------------------------------------------------------------------
|
||||
bool CConsole::LoadFlagIcons(void)
|
||||
{
|
||||
HMODULE sdkModule = reinterpret_cast<HMODULE>(g_SDKDll.GetModuleBase());
|
||||
bool ret = false;
|
||||
|
||||
// Get all flag image resources for displaying flags.
|
||||
for (int i = IDB_PNG3, k = NULL; i <= IDB_PNG32; i++, k++)
|
||||
{
|
||||
m_vecFlagIcons.push_back(MODULERESOURCE(GetModuleResource(i)));
|
||||
m_vecFlagIcons.push_back(MODULERESOURCE(GetModuleResource(sdkModule, i)));
|
||||
MODULERESOURCE& rFlagIcon = m_vecFlagIcons[k];
|
||||
|
||||
ret = LoadTextureBuffer(reinterpret_cast<unsigned char*>(rFlagIcon.m_pData), // !TODO: Fall-back texture.
|
||||
static_cast<int>(rFlagIcon.m_nSize), &rFlagIcon.m_idIcon, &rFlagIcon.m_nWidth, &rFlagIcon.m_nHeight);
|
||||
|
||||
if (!ret)
|
||||
{
|
||||
Assert(0, "Texture flags load failed for %i", i);
|
||||
break;
|
||||
}
|
||||
Assert(ret, "Texture flags load failed for %i", i);
|
||||
}
|
||||
|
||||
m_autoCompleteTexturesLoaded = ret;
|
||||
|
@ -9,27 +9,22 @@
|
||||
//#############################################################################
|
||||
//
|
||||
//#############################################################################
|
||||
MODULERESOURCE GetModuleResource(int iResource)
|
||||
MODULERESOURCE GetModuleResource(HMODULE hModule, const int iResource)
|
||||
{
|
||||
static HGLOBAL rcData = NULL;
|
||||
HMODULE handle;
|
||||
|
||||
GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS |
|
||||
GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, (LPCSTR)"unnamed", &handle);
|
||||
|
||||
HRSRC rc = FindResource(handle, MAKEINTRESOURCE(iResource), MAKEINTRESOURCE(PNG));
|
||||
const HRSRC rc = FindResource(hModule, MAKEINTRESOURCE(iResource), MAKEINTRESOURCE(PNG));
|
||||
if (!rc)
|
||||
{
|
||||
assert(rc == NULL);
|
||||
assert(0);
|
||||
return MODULERESOURCE();
|
||||
}
|
||||
|
||||
rcData = LoadResource(handle, rc);
|
||||
const HGLOBAL rcData = LoadResource(hModule, rc);
|
||||
if (!rcData)
|
||||
{
|
||||
assert(rcData == NULL);
|
||||
assert(0);
|
||||
return MODULERESOURCE();
|
||||
}
|
||||
return (MODULERESOURCE(LockResource(rcData), SizeofResource(handle, rc)));
|
||||
|
||||
return (MODULERESOURCE(LockResource(rcData), SizeofResource(hModule, rc)));
|
||||
}
|
||||
///////////////////////////////////////////////////////////////////////////////
|
@ -26,4 +26,4 @@ struct MODULERESOURCE
|
||||
int m_nHeight;
|
||||
};
|
||||
|
||||
MODULERESOURCE GetModuleResource(int iResource);
|
||||
MODULERESOURCE GetModuleResource(HMODULE hModule, const int iResource);
|
||||
|
Loading…
x
Reference in New Issue
Block a user