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_reclaimFocusOnTokenField(false)
|
||||||
, m_queryNewListNonRecursive(false)
|
, m_queryNewListNonRecursive(false)
|
||||||
, m_queryGlobalBanList(true)
|
, m_queryGlobalBanList(true)
|
||||||
|
, m_lockedIconShaderResource(nullptr)
|
||||||
, m_hostMessageColor(1.00f, 1.00f, 1.00f, 1.00f)
|
, m_hostMessageColor(1.00f, 1.00f, 1.00f, 1.00f)
|
||||||
, m_hiddenServerMessageColor(0.00f, 1.00f, 0.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_serverAddressTextBuf, '\0', sizeof(m_serverAddressTextBuf));
|
||||||
memset(m_serverNetKeyTextBuf, '\0', sizeof(m_serverNetKeyTextBuf));
|
memset(m_serverNetKeyTextBuf, '\0', sizeof(m_serverNetKeyTextBuf));
|
||||||
|
|
||||||
m_lockedIconDataResource = GetModuleResource(IDB_PNG2);
|
|
||||||
|
|
||||||
m_levelName = "mp_lobby";
|
m_levelName = "mp_lobby";
|
||||||
m_gameMode = "dev_default";
|
m_gameMode = "dev_default";
|
||||||
}
|
}
|
||||||
@ -78,7 +77,10 @@ bool CBrowser::Init(void)
|
|||||||
{
|
{
|
||||||
SetStyleVar(927.f, 524.f, -500.f, 50.f);
|
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);
|
&m_lockedIconShaderResource, &m_lockedIconDataResource.m_nWidth, &m_lockedIconDataResource.m_nHeight);
|
||||||
|
|
||||||
IM_ASSERT(ret && m_lockedIconShaderResource);
|
IM_ASSERT(ret && m_lockedIconShaderResource);
|
||||||
|
@ -912,22 +912,19 @@ void CConsole::DetermineAutoCompleteWindowRect(void)
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
bool CConsole::LoadFlagIcons(void)
|
bool CConsole::LoadFlagIcons(void)
|
||||||
{
|
{
|
||||||
|
HMODULE sdkModule = reinterpret_cast<HMODULE>(g_SDKDll.GetModuleBase());
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
|
|
||||||
// Get all flag image resources for displaying flags.
|
// Get all flag image resources for displaying flags.
|
||||||
for (int i = IDB_PNG3, k = NULL; i <= IDB_PNG32; i++, k++)
|
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];
|
MODULERESOURCE& rFlagIcon = m_vecFlagIcons[k];
|
||||||
|
|
||||||
ret = LoadTextureBuffer(reinterpret_cast<unsigned char*>(rFlagIcon.m_pData), // !TODO: Fall-back texture.
|
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);
|
static_cast<int>(rFlagIcon.m_nSize), &rFlagIcon.m_idIcon, &rFlagIcon.m_nWidth, &rFlagIcon.m_nHeight);
|
||||||
|
|
||||||
if (!ret)
|
Assert(ret, "Texture flags load failed for %i", i);
|
||||||
{
|
|
||||||
Assert(0, "Texture flags load failed for %i", i);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m_autoCompleteTexturesLoaded = ret;
|
m_autoCompleteTexturesLoaded = ret;
|
||||||
|
@ -9,27 +9,22 @@
|
|||||||
//#############################################################################
|
//#############################################################################
|
||||||
//
|
//
|
||||||
//#############################################################################
|
//#############################################################################
|
||||||
MODULERESOURCE GetModuleResource(int iResource)
|
MODULERESOURCE GetModuleResource(HMODULE hModule, const int iResource)
|
||||||
{
|
{
|
||||||
static HGLOBAL rcData = NULL;
|
const HRSRC rc = FindResource(hModule, MAKEINTRESOURCE(iResource), MAKEINTRESOURCE(PNG));
|
||||||
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));
|
|
||||||
if (!rc)
|
if (!rc)
|
||||||
{
|
{
|
||||||
assert(rc == NULL);
|
assert(0);
|
||||||
return MODULERESOURCE();
|
return MODULERESOURCE();
|
||||||
}
|
}
|
||||||
|
|
||||||
rcData = LoadResource(handle, rc);
|
const HGLOBAL rcData = LoadResource(hModule, rc);
|
||||||
if (!rcData)
|
if (!rcData)
|
||||||
{
|
{
|
||||||
assert(rcData == NULL);
|
assert(0);
|
||||||
return MODULERESOURCE();
|
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;
|
int m_nHeight;
|
||||||
};
|
};
|
||||||
|
|
||||||
MODULERESOURCE GetModuleResource(int iResource);
|
MODULERESOURCE GetModuleResource(HMODULE hModule, const int iResource);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user