Пример #1
0
//-----------------------------------------------------------------------------
// Purpose: 
//-----------------------------------------------------------------------------
CHudTexture *CHud::AddUnsearchableHudIconToList(CHudTexture& texture)
{
    // These names are composed based on the texture file name
    char composedName[512];

    if (texture.bRenderUsingFont)
    {
        Q_snprintf(composedName, sizeof(composedName), "%s_c%i",
            texture.szTextureFile, texture.cCharacterInFont);
    }
    else
    {
        Q_snprintf(composedName, sizeof(composedName), "%s_%i_%i_%i_%i",
            texture.szTextureFile, texture.rc.left, texture.rc.top, texture.rc.right, texture.rc.bottom);
    }

    CHudTexture *icon = GetIcon(composedName);
    if (icon)
    {
        return icon;
    }

    CHudTexture *newTexture = (CHudTexture *) g_HudTextureMemoryPool.Alloc();
    *newTexture = texture;

    SetupNewHudTexture(newTexture);

    int idx = m_Icons.Insert(composedName, newTexture);
    return m_Icons[idx];
}
Пример #2
0
CHudIcons::~CHudIcons()
{
	int c = m_Icons.Count();
	for (int i = c - 1; i >= 0; i--)
	{
		CHudTexture *tex = m_Icons[i];
		g_HudTextureMemoryPool.Free(tex);
	}
	m_Icons.Purge();
}
Пример #3
0
//-----------------------------------------------------------------------------
// Purpose: 
//-----------------------------------------------------------------------------
PanelAnimationMap *CPanelAnimationDictionary::FindOrAddPanelAnimationMap( char const *className )
{
	PanelAnimationMap *map = FindPanelAnimationMap( className );
	if ( map )
		return map;

	Panel::InitPropertyConverters();

	PanelAnimationMapDictionaryEntry entry;
	entry.map = (PanelAnimationMap *)m_PanelAnimationMapPool.Alloc();
	m_AnimationMaps.Insert( StripNamespace( className ), entry );
	return entry.map;
}
Пример #4
0
//-----------------------------------------------------------------------------
// Purpose: 
//-----------------------------------------------------------------------------
CHudTexture *CHud::AddSearchableHudIconToList(CHudTexture& texture)
{
    CHudTexture *icon = GetIcon(texture.szShortName);
    if (icon)
    {
        return icon;
    }

    CHudTexture *newTexture = (CHudTexture *) g_HudTextureMemoryPool.Alloc();
    *newTexture = texture;

    SetupNewHudTexture(newTexture);

    int idx = m_Icons.Insert(texture.szShortName, newTexture);
    return m_Icons[idx];
}
Пример #5
0
//-----------------------------------------------------------------------------
// Purpose: cleans up memory allocated for m_rg* arrays
//-----------------------------------------------------------------------------
CHud::~CHud()
{
    int c = m_Icons.Count();
    for (int i = c - 1; i >= 0; i--)
    {
        CHudTexture *tex = m_Icons[i];
        g_HudTextureMemoryPool.Free(tex);
    }
    m_Icons.Purge();

    c = m_RenderGroups.Count();
    for (int i = c - 1; i >= 0; i--)
    {
        CHudRenderGroup *group = m_RenderGroups[i];
        m_RenderGroups.RemoveAt(i);
        delete group;
    }
}