Quellcode durchsuchen

Fixed MSVC build.

Branimir Karadžić vor 4 Jahren
Ursprung
Commit
c5aea5325d
2 geänderte Dateien mit 36 neuen und 36 gelöschten Zeilen
  1. 32 12
      src/renderer_gl.cpp
  2. 4 24
      src/renderer_gl.h

+ 32 - 12
src/renderer_gl.cpp

@@ -5135,6 +5135,11 @@ namespace bgfx { namespace gl
 		m_instanceData[used] = -1;
 		m_instanceData[used] = -1;
 	}
 	}
 
 
+	void ProgramGL::bindAttributesBegin()
+	{
+		bx::memCopy(m_unboundUsedAttrib, m_used, sizeof(m_unboundUsedAttrib));
+	}
+
 	void ProgramGL::bindAttributes(const VertexLayout& _layout, uint32_t _baseVertex)
 	void ProgramGL::bindAttributes(const VertexLayout& _layout, uint32_t _baseVertex)
 	{
 	{
 		for (uint32_t ii = 0, iiEnd = m_usedCount; ii < iiEnd; ++ii)
 		for (uint32_t ii = 0, iiEnd = m_usedCount; ii < iiEnd; ++ii)
@@ -5184,29 +5189,44 @@ namespace bgfx { namespace gl
 		}
 		}
 	}
 	}
 
 
-	void ProgramGL::unbindAttributes()
+	void ProgramGL::bindInstanceData(uint32_t _stride, uint32_t _baseVertex) const
 	{
 	{
-		for(uint32_t ii = 0, iiEnd = m_usedCount; ii < iiEnd; ++ii)
+		uint32_t baseVertex = _baseVertex;
+		for (uint32_t ii = 0; -1 != m_instanceData[ii]; ++ii)
 		{
 		{
-			if (Attrib::Count == m_unboundUsedAttrib[ii])
+			GLint loc = m_instanceData[ii];
+			lazyEnableVertexAttribArray(loc);
+			GL_CHECK(glVertexAttribPointer(loc, 4, GL_FLOAT, GL_FALSE, _stride, (void*)(uintptr_t)baseVertex));
+			GL_CHECK(glVertexAttribDivisor(loc, 1));
+			baseVertex += 16;
+		}
+	}
+
+	void ProgramGL::bindAttributesEnd()
+	{
+		for (uint32_t ii = 0, iiEnd = m_usedCount; ii < iiEnd; ++ii)
+		{
+			if (Attrib::Count != m_unboundUsedAttrib[ii])
 			{
 			{
-				Attrib::Enum attr = Attrib::Enum(m_used[ii]);
+				Attrib::Enum attr = Attrib::Enum(m_unboundUsedAttrib[ii]);
 				GLint loc = m_attributes[attr];
 				GLint loc = m_attributes[attr];
 				lazyDisableVertexAttribArray(loc);
 				lazyDisableVertexAttribArray(loc);
 			}
 			}
 		}
 		}
+
+		applyLazyEnabledVertexAttributes();
 	}
 	}
 
 
-	void ProgramGL::bindInstanceData(uint32_t _stride, uint32_t _baseVertex) const
+	void ProgramGL::unbindAttributes()
 	{
 	{
-		uint32_t baseVertex = _baseVertex;
-		for (uint32_t ii = 0; -1 != m_instanceData[ii]; ++ii)
+		for(uint32_t ii = 0, iiEnd = m_usedCount; ii < iiEnd; ++ii)
 		{
 		{
-			GLint loc = m_instanceData[ii];
-			lazyEnableVertexAttribArray(loc);
-			GL_CHECK(glVertexAttribPointer(loc, 4, GL_FLOAT, GL_FALSE, _stride, (void*)(uintptr_t)baseVertex) );
-			GL_CHECK(glVertexAttribDivisor(loc, 1) );
-			baseVertex += 16;
+			if (Attrib::Count == m_unboundUsedAttrib[ii])
+			{
+				Attrib::Enum attr = Attrib::Enum(m_used[ii]);
+				GLint loc = m_attributes[attr];
+				lazyDisableVertexAttribArray(loc);
+			}
 		}
 		}
 	}
 	}
 
 

+ 4 - 24
src/renderer_gl.h

@@ -1484,32 +1484,12 @@ namespace bgfx { namespace gl
 		void create(const ShaderGL& _vsh, const ShaderGL& _fsh);
 		void create(const ShaderGL& _vsh, const ShaderGL& _fsh);
 		void destroy();
 		void destroy();
 		void init();
 		void init();
-		void bindInstanceData(uint32_t _stride, uint32_t _baseVertex = 0) const;
-		void unbindInstanceData() const;
-
-		void bindAttributesBegin()
-		{
-			bx::memCopy(m_unboundUsedAttrib, m_used, sizeof(m_unboundUsedAttrib) );
-		}
 
 
+		void bindAttributesBegin();
 		void bindAttributes(const VertexLayout& _layout, uint32_t _baseVertex = 0);
 		void bindAttributes(const VertexLayout& _layout, uint32_t _baseVertex = 0);
-
-		void bindAttributesEnd()
-		{
-			for (uint32_t ii = 0, iiEnd = m_usedCount; ii < iiEnd; ++ii)
-			{
-				if (Attrib::Count != m_unboundUsedAttrib[ii])
-				{
-					Attrib::Enum attr = Attrib::Enum(m_unboundUsedAttrib[ii]);
-					GLint loc = m_attributes[attr];
-					lazyDisableVertexAttribArray(loc);
-				}
-			}
-
-			extern void applyLazyEnabledVertexAttributes();
-			applyLazyEnabledVertexAttributes();
-		}
-
+		void bindInstanceData(uint32_t _stride, uint32_t _baseVertex = 0) const;
+		void bindAttributesEnd();
+		void unbindInstanceData() const;
 		void unbindAttributes();
 		void unbindAttributes();
 
 
 		GLuint m_id;
 		GLuint m_id;