Forráskód Böngészése

Merge branch 'master' of github.com:bkaradzic/bgfx

Branimir Karadžić 11 éve
szülő
commit
34ab21c7cf
5 módosított fájl, 42 hozzáadás és 33 törlés
  1. 1 1
      src/bgfx.cpp
  2. 9 6
      src/renderer_d3d11.cpp
  3. 13 10
      src/renderer_d3d9.cpp
  4. 2 2
      src/renderer_d3d9.h
  5. 17 14
      src/renderer_gl.cpp

+ 1 - 1
src/bgfx.cpp

@@ -1376,7 +1376,7 @@ again:
 				RendererType::Enum first  = RendererType::Direct3D9;
 				RendererType::Enum second = RendererType::Direct3D11;
 
-				if (windowsVersionIs(Condition::GreaterEqual, 0x0603) )
+				if (windowsVersionIs(Condition::GreaterEqual, 0x0602) )
 				{
 					first  = RendererType::Direct3D11 /* Direct3D12 */;
 					second = RendererType::Direct3D11;

+ 9 - 6
src/renderer_d3d11.cpp

@@ -1092,14 +1092,17 @@ namespace bgfx
 
 		void blitRender(TextVideoMemBlitter& _blitter, uint32_t _numIndices) BX_OVERRIDE
 		{
-			ID3D11DeviceContext* deviceCtx = m_deviceCtx;
+			const uint32_t numVertices = _numIndices*4/6;
+			if (0 < numVertices)
+			{
+				ID3D11DeviceContext* deviceCtx = m_deviceCtx;
 
-			uint32_t numVertices = _numIndices*4/6;
-			m_indexBuffers [_blitter.m_ib->handle.idx].update(0, _numIndices*2, _blitter.m_ib->data);
-			m_vertexBuffers[_blitter.m_vb->handle.idx].update(0, numVertices*_blitter.m_decl.m_stride, _blitter.m_vb->data, true);
+				m_indexBuffers [_blitter.m_ib->handle.idx].update(0, _numIndices*2, _blitter.m_ib->data);
+				m_vertexBuffers[_blitter.m_vb->handle.idx].update(0, numVertices*_blitter.m_decl.m_stride, _blitter.m_vb->data, true);
 
-			deviceCtx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
-			deviceCtx->DrawIndexed(_numIndices, 0, 0);
+				deviceCtx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
+				deviceCtx->DrawIndexed(_numIndices, 0, 0);
+			}
 		}
 
 		void preReset()

+ 13 - 10
src/renderer_d3d9.cpp

@@ -924,17 +924,20 @@ namespace bgfx
 
 		void blitRender(TextVideoMemBlitter& _blitter, uint32_t _numIndices) BX_OVERRIDE
 		{
-			uint32_t numVertices = _numIndices*4/6;
-			m_indexBuffers [_blitter.m_ib->handle.idx].update(0, _numIndices*2, _blitter.m_ib->data, true);
-			m_vertexBuffers[_blitter.m_vb->handle.idx].update(0, numVertices*_blitter.m_decl.m_stride, _blitter.m_vb->data, true);
+			const uint32_t numVertices = _numIndices*4/6;
+			if (0 < numVertices)
+			{
+				m_indexBuffers[_blitter.m_ib->handle.idx].update(0, _numIndices * 2, _blitter.m_ib->data, true);
+				m_vertexBuffers[_blitter.m_vb->handle.idx].update(0, numVertices*_blitter.m_decl.m_stride, _blitter.m_vb->data, true);
 
-			DX_CHECK(m_device->DrawIndexedPrimitive(D3DPT_TRIANGLELIST
-				, 0
-				, 0
-				, numVertices
-				, 0
-				, _numIndices/3
-				) );
+				DX_CHECK(m_device->DrawIndexedPrimitive(D3DPT_TRIANGLELIST
+					, 0
+					, 0
+					, numVertices
+					, 0
+					, _numIndices / 3
+					) );
+			}
 		}
 
 		void updateMsaa()

+ 2 - 2
src/renderer_d3d9.h

@@ -145,7 +145,7 @@ namespace bgfx
 
 			memcpy(buffer, _data, _size);
 
-			m_ptr->Unlock();
+			DX_CHECK(m_ptr->Unlock() );
 		}
 
 		void destroy()
@@ -185,7 +185,7 @@ namespace bgfx
 
 			memcpy(buffer, _data, _size);
 
-			m_ptr->Unlock();
+			DX_CHECK(m_ptr->Unlock() );
 		}
 
 		void destroy()

+ 17 - 14
src/renderer_gl.cpp

@@ -1703,24 +1703,27 @@ namespace bgfx
 
 		void blitRender(TextVideoMemBlitter& _blitter, uint32_t _numIndices) BX_OVERRIDE
 		{
-			uint32_t numVertices = _numIndices*4/6;
-			m_indexBuffers[_blitter.m_ib->handle.idx].update(0, _numIndices*2, _blitter.m_ib->data);
-			m_vertexBuffers[_blitter.m_vb->handle.idx].update(0, numVertices*_blitter.m_decl.m_stride, _blitter.m_vb->data);
+			const uint32_t numVertices = _numIndices*4/6;
+			if (0 < numVertices)
+			{
+				m_indexBuffers[_blitter.m_ib->handle.idx].update(0, _numIndices*2, _blitter.m_ib->data);
+				m_vertexBuffers[_blitter.m_vb->handle.idx].update(0, numVertices*_blitter.m_decl.m_stride, _blitter.m_vb->data);
 
-			VertexBufferGL& vb = m_vertexBuffers[_blitter.m_vb->handle.idx];
-			GL_CHECK(glBindBuffer(GL_ARRAY_BUFFER, vb.m_id) );
+				VertexBufferGL& vb = m_vertexBuffers[_blitter.m_vb->handle.idx];
+				GL_CHECK(glBindBuffer(GL_ARRAY_BUFFER, vb.m_id) );
 
-			IndexBufferGL& ib = m_indexBuffers[_blitter.m_ib->handle.idx];
-			GL_CHECK(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ib.m_id) );
+				IndexBufferGL& ib = m_indexBuffers[_blitter.m_ib->handle.idx];
+				GL_CHECK(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ib.m_id) );
 
-			ProgramGL& program = m_program[_blitter.m_program.idx];
-			program.bindAttributes(_blitter.m_decl, 0);
+				ProgramGL& program = m_program[_blitter.m_program.idx];
+				program.bindAttributes(_blitter.m_decl, 0);
 
-			GL_CHECK(glDrawElements(GL_TRIANGLES
-				, _numIndices
-				, GL_UNSIGNED_SHORT
-				, (void*)0
-				) );
+				GL_CHECK(glDrawElements(GL_TRIANGLES
+					, _numIndices
+					, GL_UNSIGNED_SHORT
+					, (void*)0
+					) );
+			}
 		}
 
 		void updateResolution(const Resolution& _resolution)