This commit is contained in:
Branimir Karadžić 2014-10-07 22:05:35 -07:00
Родитель b1878edd2e
Коммит 14a71bd477
2 изменённых файлов: 52 добавлений и 52 удалений

Просмотреть файл

@ -86,6 +86,58 @@ namespace bgfx
return _interface->Release();
}
template <typename Ty>
class StateCacheT
{
public:
void add(uint64_t _id, Ty* _item)
{
invalidate(_id);
m_hashMap.insert(stl::make_pair(_id, _item) );
}
Ty* find(uint64_t _id)
{
typename HashMap::iterator it = m_hashMap.find(_id);
if (it != m_hashMap.end() )
{
return it->second;
}
return NULL;
}
void invalidate(uint64_t _id)
{
typename HashMap::iterator it = m_hashMap.find(_id);
if (it != m_hashMap.end() )
{
DX_RELEASE_WARNONLY(it->second, 0);
m_hashMap.erase(it);
}
}
void invalidate()
{
for (typename HashMap::iterator it = m_hashMap.begin(), itEnd = m_hashMap.end(); it != itEnd; ++it)
{
DX_CHECK_REFCOUNT(it->second, 1);
it->second->Release();
}
m_hashMap.clear();
}
uint32_t getCount() const
{
return uint32_t(m_hashMap.size() );
}
private:
typedef stl::unordered_map<uint64_t, Ty*> HashMap;
HashMap m_hashMap;
};
} // namespace bgfx
#endif // BGFX_RENDERER_D3D_H_HEADER_GUARD

Просмотреть файл

@ -31,58 +31,6 @@
namespace bgfx
{
template <typename Ty>
class StateCacheT
{
public:
void add(uint64_t _id, Ty* _item)
{
invalidate(_id);
m_hashMap.insert(stl::make_pair(_id, _item) );
}
Ty* find(uint64_t _id)
{
typename HashMap::iterator it = m_hashMap.find(_id);
if (it != m_hashMap.end() )
{
return it->second;
}
return NULL;
}
void invalidate(uint64_t _id)
{
typename HashMap::iterator it = m_hashMap.find(_id);
if (it != m_hashMap.end() )
{
DX_RELEASE_WARNONLY(it->second, 0);
m_hashMap.erase(it);
}
}
void invalidate()
{
for (typename HashMap::iterator it = m_hashMap.begin(), itEnd = m_hashMap.end(); it != itEnd; ++it)
{
DX_CHECK_REFCOUNT(it->second, 1);
it->second->Release();
}
m_hashMap.clear();
}
uint32_t getCount() const
{
return uint32_t(m_hashMap.size() );
}
private:
typedef stl::unordered_map<uint64_t, Ty*> HashMap;
HashMap m_hashMap;
};
struct IndexBufferD3D11
{
IndexBufferD3D11()