Cleanup.
This commit is contained in:
parent
813d145ac9
commit
425868f391
24
src/bgfx_p.h
24
src/bgfx_p.h
@ -1161,7 +1161,10 @@ namespace bgfx
|
|||||||
|
|
||||||
const UniformInfo& add(UniformHandle _handle, const char* _name, const void* _data)
|
const UniformInfo& add(UniformHandle _handle, const char* _name, const void* _data)
|
||||||
{
|
{
|
||||||
m_uniforms.insert(bx::hashMurmur2A(_name), _handle.idx);
|
BX_CHECK(isValid(_handle), "Uniform handle is invalid (name: %s)!", _name);
|
||||||
|
const uint32_t key = bx::hashMurmur2A(_name);
|
||||||
|
m_uniforms.removeByKey(key);
|
||||||
|
m_uniforms.insert(key, _handle.idx);
|
||||||
|
|
||||||
UniformInfo& info = m_info[_handle.idx];
|
UniformInfo& info = m_info[_handle.idx];
|
||||||
info.m_data = _data;
|
info.m_data = _data;
|
||||||
@ -1170,6 +1173,11 @@ namespace bgfx
|
|||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void remove(UniformHandle _handle)
|
||||||
|
{
|
||||||
|
m_uniforms.removeByHandle(_handle.idx);
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
typedef bx::HandleHashMapT<BGFX_CONFIG_MAX_UNIFORMS*2> UniformHashMap;
|
typedef bx::HandleHashMapT<BGFX_CONFIG_MAX_UNIFORMS*2> UniformHashMap;
|
||||||
UniformHashMap m_uniforms;
|
UniformHashMap m_uniforms;
|
||||||
@ -2981,7 +2989,9 @@ namespace bgfx
|
|||||||
pr.m_fsh = _fsh;
|
pr.m_fsh = _fsh;
|
||||||
pr.m_refCount = 1;
|
pr.m_refCount = 1;
|
||||||
|
|
||||||
m_programHashMap.insert(uint32_t(_fsh.idx<<16)|_vsh.idx, handle.idx);
|
const uint32_t key = uint32_t(_fsh.idx<<16)|_vsh.idx;
|
||||||
|
bool ok = m_programHashMap.insert(key, handle.idx);
|
||||||
|
BX_CHECK(ok, "Program already exists (key: %x, handle: %3d)!", key, handle.idx); BX_UNUSED(ok);
|
||||||
|
|
||||||
CommandBuffer& cmdbuf = getCommandBuffer(CommandBuffer::CreateProgram);
|
CommandBuffer& cmdbuf = getCommandBuffer(CommandBuffer::CreateProgram);
|
||||||
cmdbuf.write(handle);
|
cmdbuf.write(handle);
|
||||||
@ -3029,7 +3039,9 @@ namespace bgfx
|
|||||||
pr.m_fsh = fsh;
|
pr.m_fsh = fsh;
|
||||||
pr.m_refCount = 1;
|
pr.m_refCount = 1;
|
||||||
|
|
||||||
m_programHashMap.insert(uint32_t(_vsh.idx), handle.idx);
|
const uint32_t key = uint32_t(_vsh.idx);
|
||||||
|
bool ok = m_programHashMap.insert(key, handle.idx);
|
||||||
|
BX_CHECK(ok, "Program already exists (key: %x, handle: %3d)!", key, handle.idx); BX_UNUSED(ok);
|
||||||
|
|
||||||
CommandBuffer& cmdbuf = getCommandBuffer(CommandBuffer::CreateProgram);
|
CommandBuffer& cmdbuf = getCommandBuffer(CommandBuffer::CreateProgram);
|
||||||
cmdbuf.write(handle);
|
cmdbuf.write(handle);
|
||||||
@ -3066,7 +3078,7 @@ namespace bgfx
|
|||||||
hash |= pr.m_fsh.idx << 16;
|
hash |= pr.m_fsh.idx << 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_programHashMap.removeByKey(hash);
|
m_programHashMap.removeByHandle(_handle.idx);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3399,7 +3411,8 @@ namespace bgfx
|
|||||||
uniform.m_type = _type;
|
uniform.m_type = _type;
|
||||||
uniform.m_num = _num;
|
uniform.m_num = _num;
|
||||||
|
|
||||||
m_uniformHashMap.insert(bx::hashMurmur2A(_name), handle.idx);
|
bool ok = m_uniformHashMap.insert(bx::hashMurmur2A(_name), handle.idx);
|
||||||
|
BX_CHECK(ok, "Uniform already exists (name: %s)!", _name); BX_UNUSED(ok);
|
||||||
|
|
||||||
CommandBuffer& cmdbuf = getCommandBuffer(CommandBuffer::CreateUniform);
|
CommandBuffer& cmdbuf = getCommandBuffer(CommandBuffer::CreateUniform);
|
||||||
cmdbuf.write(handle);
|
cmdbuf.write(handle);
|
||||||
@ -3657,6 +3670,7 @@ namespace bgfx
|
|||||||
{
|
{
|
||||||
BGFX_CHECK_HANDLE("setUniform", m_uniformHandle, _handle);
|
BGFX_CHECK_HANDLE("setUniform", m_uniformHandle, _handle);
|
||||||
UniformRef& uniform = m_uniformRef[_handle.idx];
|
UniformRef& uniform = m_uniformRef[_handle.idx];
|
||||||
|
BX_CHECK(isValid(_handle) && 0 < uniform.m_refCount, "Setting invalid uniform (handle %3d)!", _handle.idx);
|
||||||
BX_CHECK(_num == UINT16_MAX || uniform.m_num >= _num, "Truncated uniform update. %d (max: %d)", _num, uniform.m_num);
|
BX_CHECK(_num == UINT16_MAX || uniform.m_num >= _num, "Truncated uniform update. %d (max: %d)", _num, uniform.m_num);
|
||||||
if (BX_ENABLED(BGFX_CONFIG_DEBUG_UNIFORM) )
|
if (BX_ENABLED(BGFX_CONFIG_DEBUG_UNIFORM) )
|
||||||
{
|
{
|
||||||
|
@ -1231,12 +1231,6 @@ BX_PRAGMA_DIAGNOSTIC_POP();
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
UniformHandle handle = BGFX_INVALID_HANDLE;
|
|
||||||
for (uint32_t ii = 0; ii < PredefinedUniform::Count; ++ii)
|
|
||||||
{
|
|
||||||
m_uniformReg.add(handle, getPredefinedUniformName(PredefinedUniform::Enum(ii) ), &m_predefinedUniforms[ii]);
|
|
||||||
}
|
|
||||||
|
|
||||||
g_caps.supported |= (0
|
g_caps.supported |= (0
|
||||||
| BGFX_CAPS_TEXTURE_3D
|
| BGFX_CAPS_TEXTURE_3D
|
||||||
| BGFX_CAPS_VERTEX_ATTRIB_HALF
|
| BGFX_CAPS_VERTEX_ATTRIB_HALF
|
||||||
@ -1934,6 +1928,7 @@ BX_PRAGMA_DIAGNOSTIC_POP();
|
|||||||
{
|
{
|
||||||
BX_FREE(g_allocator, m_uniforms[_handle.idx]);
|
BX_FREE(g_allocator, m_uniforms[_handle.idx]);
|
||||||
m_uniforms[_handle.idx] = NULL;
|
m_uniforms[_handle.idx] = NULL;
|
||||||
|
m_uniformReg.remove(_handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
void saveScreenShot(const char* _filePath) BX_OVERRIDE
|
void saveScreenShot(const char* _filePath) BX_OVERRIDE
|
||||||
@ -4152,7 +4147,7 @@ BX_PRAGMA_DIAGNOSTIC_POP();
|
|||||||
else if (0 == (BGFX_UNIFORM_SAMPLERBIT & type) )
|
else if (0 == (BGFX_UNIFORM_SAMPLERBIT & type) )
|
||||||
{
|
{
|
||||||
const UniformInfo* info = s_renderD3D11->m_uniformReg.find(name);
|
const UniformInfo* info = s_renderD3D11->m_uniformReg.find(name);
|
||||||
BX_CHECK(NULL != info, "User defined uniform '%s' is not found, it won't be set.", name);
|
BX_WARN(NULL != info, "User defined uniform '%s' is not found, it won't be set.", name);
|
||||||
|
|
||||||
if (NULL != info)
|
if (NULL != info)
|
||||||
{
|
{
|
||||||
|
@ -987,12 +987,6 @@ namespace bgfx { namespace d3d12
|
|||||||
, (void**)&m_rootSignature
|
, (void**)&m_rootSignature
|
||||||
) );
|
) );
|
||||||
|
|
||||||
UniformHandle handle = BGFX_INVALID_HANDLE;
|
|
||||||
for (uint32_t ii = 0; ii < PredefinedUniform::Count; ++ii)
|
|
||||||
{
|
|
||||||
m_uniformReg.add(handle, getPredefinedUniformName(PredefinedUniform::Enum(ii) ), &m_predefinedUniforms[ii]);
|
|
||||||
}
|
|
||||||
|
|
||||||
g_caps.supported |= ( 0
|
g_caps.supported |= ( 0
|
||||||
| BGFX_CAPS_TEXTURE_3D
|
| BGFX_CAPS_TEXTURE_3D
|
||||||
| BGFX_CAPS_TEXTURE_COMPARE_ALL
|
| BGFX_CAPS_TEXTURE_COMPARE_ALL
|
||||||
@ -1555,6 +1549,7 @@ namespace bgfx { namespace d3d12
|
|||||||
{
|
{
|
||||||
BX_FREE(g_allocator, m_uniforms[_handle.idx]);
|
BX_FREE(g_allocator, m_uniforms[_handle.idx]);
|
||||||
m_uniforms[_handle.idx] = NULL;
|
m_uniforms[_handle.idx] = NULL;
|
||||||
|
m_uniformReg.remove(_handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
void saveScreenShot(const char* _filePath) BX_OVERRIDE
|
void saveScreenShot(const char* _filePath) BX_OVERRIDE
|
||||||
@ -3879,7 +3874,7 @@ data.NumQualityLevels = 0;
|
|||||||
else if (0 == (BGFX_UNIFORM_SAMPLERBIT & type) )
|
else if (0 == (BGFX_UNIFORM_SAMPLERBIT & type) )
|
||||||
{
|
{
|
||||||
const UniformInfo* info = s_renderD3D12->m_uniformReg.find(name);
|
const UniformInfo* info = s_renderD3D12->m_uniformReg.find(name);
|
||||||
BX_CHECK(NULL != info, "User defined uniform '%s' is not found, it won't be set.", name);
|
BX_WARN(NULL != info, "User defined uniform '%s' is not found, it won't be set.", name);
|
||||||
|
|
||||||
if (NULL != info)
|
if (NULL != info)
|
||||||
{
|
{
|
||||||
|
@ -1113,6 +1113,7 @@ namespace bgfx { namespace d3d9
|
|||||||
{
|
{
|
||||||
BX_FREE(g_allocator, m_uniforms[_handle.idx]);
|
BX_FREE(g_allocator, m_uniforms[_handle.idx]);
|
||||||
m_uniforms[_handle.idx] = NULL;
|
m_uniforms[_handle.idx] = NULL;
|
||||||
|
m_uniformReg.remove(_handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
void saveScreenShot(const char* _filePath) BX_OVERRIDE
|
void saveScreenShot(const char* _filePath) BX_OVERRIDE
|
||||||
@ -2426,7 +2427,7 @@ namespace bgfx { namespace d3d9
|
|||||||
else if (0 == (BGFX_UNIFORM_SAMPLERBIT & type) )
|
else if (0 == (BGFX_UNIFORM_SAMPLERBIT & type) )
|
||||||
{
|
{
|
||||||
const UniformInfo* info = s_renderD3D9->m_uniformReg.find(name);
|
const UniformInfo* info = s_renderD3D9->m_uniformReg.find(name);
|
||||||
BX_CHECK(NULL != info, "User defined uniform '%s' is not found, it won't be set.", name);
|
BX_WARN(NULL != info, "User defined uniform '%s' is not found, it won't be set.", name);
|
||||||
|
|
||||||
if (NULL != info)
|
if (NULL != info)
|
||||||
{
|
{
|
||||||
|
@ -2439,6 +2439,7 @@ namespace bgfx { namespace gl
|
|||||||
{
|
{
|
||||||
BX_FREE(g_allocator, m_uniforms[_handle.idx]);
|
BX_FREE(g_allocator, m_uniforms[_handle.idx]);
|
||||||
m_uniforms[_handle.idx] = NULL;
|
m_uniforms[_handle.idx] = NULL;
|
||||||
|
m_uniformReg.remove(_handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
void saveScreenShot(const char* _filePath) BX_OVERRIDE
|
void saveScreenShot(const char* _filePath) BX_OVERRIDE
|
||||||
|
@ -897,6 +897,7 @@ namespace bgfx { namespace mtl
|
|||||||
{
|
{
|
||||||
BX_FREE(g_allocator, m_uniforms[_handle.idx]);
|
BX_FREE(g_allocator, m_uniforms[_handle.idx]);
|
||||||
m_uniforms[_handle.idx] = NULL;
|
m_uniforms[_handle.idx] = NULL;
|
||||||
|
m_uniformReg.remove(_handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
//cmdPre
|
//cmdPre
|
||||||
@ -2278,6 +2279,8 @@ namespace bgfx { namespace mtl
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
const UniformInfo* info = s_renderMtl->m_uniformReg.find(name);
|
const UniformInfo* info = s_renderMtl->m_uniformReg.find(name);
|
||||||
|
BX_WARN(NULL != info, "User defined uniform '%s' is not found, it won't be set.", name);
|
||||||
|
|
||||||
if (NULL != info)
|
if (NULL != info)
|
||||||
{
|
{
|
||||||
if (NULL == constantBuffer)
|
if (NULL == constantBuffer)
|
||||||
|
Loading…
Reference in New Issue
Block a user