瀏覽代碼

Fixed vertexdecl cleanup.

Branimir Karadžić 9 年之前
父節點
當前提交
d6bf810fb0
共有 1 個文件被更改,包括 10 次插入1 次删除
  1. 10 1
      src/bgfx_p.h

+ 10 - 1
src/bgfx_p.h

@@ -1890,6 +1890,15 @@ namespace bgfx
 				}
 				}
 			}
 			}
 
 
+			for (VertexDeclMap::iterator it = m_vertexDeclMap.begin(), itEnd = m_vertexDeclMap.end(); it != itEnd; ++it)
+			{
+				if (it->second.idx == declHandle.idx)
+				{
+					m_vertexDeclMap.erase(it);
+					break;
+				}
+			}
+
 			return declHandle;
 			return declHandle;
 		}
 		}
 
 
@@ -2553,7 +2562,7 @@ namespace bgfx
 			DynamicVertexBuffer& dvb = m_dynamicVertexBuffers[_handle.idx];
 			DynamicVertexBuffer& dvb = m_dynamicVertexBuffers[_handle.idx];
 
 
 			VertexDeclHandle declHandle = m_declRef.release(dvb.m_handle);
 			VertexDeclHandle declHandle = m_declRef.release(dvb.m_handle);
-			if (invalidHandle != declHandle.idx)
+			if (isValid(declHandle) )
 			{
 			{
 				CommandBuffer& cmdbuf = getCommandBuffer(CommandBuffer::DestroyVertexDecl);
 				CommandBuffer& cmdbuf = getCommandBuffer(CommandBuffer::DestroyVertexDecl);
 				cmdbuf.write(declHandle);
 				cmdbuf.write(declHandle);