Бранимир Караџић 4 лет назад
Родитель
Сommit
9310d19141
2 измененных файлов с 11 добавлено и 9 удалено
  1. 10 9
      src/renderer_gl.cpp
  2. 1 0
      src/renderer_gl.h

+ 10 - 9
src/renderer_gl.cpp

@@ -5061,18 +5061,19 @@ namespace bgfx { namespace gl
 		used = 0;
 		used = 0;
 		for (uint32_t ii = 0; ii < BX_COUNTOF(s_instanceDataName); ++ii)
 		for (uint32_t ii = 0; ii < BX_COUNTOF(s_instanceDataName); ++ii)
 		{
 		{
-			GLuint loc = glGetAttribLocation(m_id, s_instanceDataName[ii]);
-			if (GLuint(-1) != loc )
+			GLint loc = glGetAttribLocation(m_id, s_instanceDataName[ii]);
+			if (-1 != loc)
 			{
 			{
 				BX_TRACE("instance data %s: %d", s_instanceDataName[ii], loc);
 				BX_TRACE("instance data %s: %d", s_instanceDataName[ii], loc);
 				m_instanceData[used++] = loc;
 				m_instanceData[used++] = loc;
 			}
 			}
 		}
 		}
-		BX_ASSERT(used < BX_COUNTOF(m_instanceData), "Out of bounds %d > array size %d."
-				, used
-				, BX_COUNTOF(m_instanceData)
-				);
-		m_instanceData[used] = 0xffff;
+		BX_ASSERT(used < BX_COUNTOF(m_instanceData)
+			, "Out of bounds %d > array size %d."
+			, used
+			, BX_COUNTOF(m_instanceData)
+			);
+		m_instanceData[used] = -1;
 	}
 	}
 
 
 	void ProgramGL::bindAttributes(const VertexLayout& _layout, uint32_t _baseVertex)
 	void ProgramGL::bindAttributes(const VertexLayout& _layout, uint32_t _baseVertex)
@@ -5142,7 +5143,7 @@ namespace bgfx { namespace gl
 	void ProgramGL::bindInstanceData(uint32_t _stride, uint32_t _baseVertex) const
 	void ProgramGL::bindInstanceData(uint32_t _stride, uint32_t _baseVertex) const
 	{
 	{
 		uint32_t baseVertex = _baseVertex;
 		uint32_t baseVertex = _baseVertex;
-		for (uint32_t ii = 0; 0xffff != m_instanceData[ii]; ++ii)
+		for (uint32_t ii = 0; -1 != m_instanceData[ii]; ++ii)
 		{
 		{
 			GLint loc = m_instanceData[ii];
 			GLint loc = m_instanceData[ii];
 			lazyEnableVertexAttribArray(loc);
 			lazyEnableVertexAttribArray(loc);
@@ -5154,7 +5155,7 @@ namespace bgfx { namespace gl
 
 
 	void ProgramGL::unbindInstanceData() const
 	void ProgramGL::unbindInstanceData() const
 	{
 	{
-		for(uint32_t ii = 0; 0xffff != m_instanceData[ii]; ++ii)
+		for(uint32_t ii = 0; -1 != m_instanceData[ii]; ++ii)
 		{
 		{
 			GLint loc = m_instanceData[ii];
 			GLint loc = m_instanceData[ii];
 			lazyDisableVertexAttribArray(loc);
 			lazyDisableVertexAttribArray(loc);

+ 1 - 0
src/renderer_gl.h

@@ -1478,6 +1478,7 @@ namespace bgfx { namespace gl
 			, m_constantBuffer(NULL)
 			, m_constantBuffer(NULL)
 			, m_numPredefined(0)
 			, m_numPredefined(0)
 		{
 		{
+			m_instanceData[0] = -1;
 		}
 		}
 
 
 		void create(const ShaderGL& _vsh, const ShaderGL& _fsh);
 		void create(const ShaderGL& _vsh, const ShaderGL& _fsh);