This commit is contained in:
Branimir Karadžić 2016-12-15 09:03:53 -08:00
parent f873dcbd10
commit a978d21764

View File

@ -2328,7 +2328,7 @@ namespace bgfx { namespace mtl
else if ( NULL != s_renderMtl->m_renderCommandEncoder )
{
s_renderMtl->m_cmd.release(m_buffers[m_bufferIndex]);
if (_offset == 0 && _size == m_size)
m_buffers[m_bufferIndex] = s_renderMtl->m_device.newBufferWithBytes(_data, _size, 0);
else
@ -2629,8 +2629,17 @@ namespace bgfx { namespace mtl
memcpy(dst, src, rectpitch);
}
bce.copyFromBuffer(tempBuffer, 0, dstpitch, dstpitch * _rect.m_height, MTLSizeMake(_rect.m_width, _rect.m_height, _depth),
m_ptr, _side, _mip, MTLOriginMake(_rect.m_x, _rect.m_y, _z));
bce.copyFromBuffer(
tempBuffer
, 0
, dstpitch
, dstpitch * _rect.m_height
, MTLSizeMake(_rect.m_width, _rect.m_height, _depth)
, m_ptr
, _side
, _mip
, MTLOriginMake(_rect.m_x, _rect.m_y, _z)
);
release(tempBuffer);
}
@ -2645,17 +2654,19 @@ namespace bgfx { namespace mtl
if (_vertex)
{
s_renderMtl->m_renderCommandEncoder.setVertexTexture(m_ptr, _stage);
s_renderMtl->m_renderCommandEncoder.setVertexSamplerState(0 == (BGFX_TEXTURE_INTERNAL_DEFAULT_SAMPLER & _flags)
? s_renderMtl->getSamplerState(_flags)
: m_sampler, _stage);
s_renderMtl->m_renderCommandEncoder.setVertexSamplerState(
0 == (BGFX_TEXTURE_INTERNAL_DEFAULT_SAMPLER & _flags)
? s_renderMtl->getSamplerState(_flags)
: m_sampler, _stage);
}
if (_fragment)
{
s_renderMtl->m_renderCommandEncoder.setFragmentTexture(m_ptr, _stage);
s_renderMtl->m_renderCommandEncoder.setFragmentSamplerState(0 == (BGFX_TEXTURE_INTERNAL_DEFAULT_SAMPLER & _flags)
? s_renderMtl->getSamplerState(_flags)
: m_sampler, _stage);
s_renderMtl->m_renderCommandEncoder.setFragmentSamplerState(
0 == (BGFX_TEXTURE_INTERNAL_DEFAULT_SAMPLER & _flags)
? s_renderMtl->getSamplerState(_flags)
: m_sampler, _stage);
}
}
@ -2770,7 +2781,7 @@ namespace bgfx { namespace mtl
{
if ( _endFrame )
m_activeCommandBuffer.addCompletedHandler(commandBufferFinishedCallback, this);
m_activeCommandBuffer.commit();
if ( _waitForFinish )
m_activeCommandBuffer.waitUntilCompleted();
@ -2783,12 +2794,12 @@ namespace bgfx { namespace mtl
if ( _finishAll)
{
int count = m_activeCommandBuffer != NULL ? 2 : 3;
for( int i=0; i< count; ++i)
{
consume();
}
m_framesSemaphore.post(count);
}
else
@ -2907,7 +2918,7 @@ namespace bgfx { namespace mtl
void RendererContextMtl::submit(Frame* _render, ClearQuad& _clearQuad, TextVideoMemBlitter& _textVideoMemBlitter) BX_OVERRIDE
{
m_cmd.finish(false);
if ( m_commandBuffer == NULL )
{