mirror of
https://github.com/bkaradzic/bgfx.git
synced 2026-02-18 04:53:06 +01:00
Metal: Add BGFX_CAPS_VERTEX_ID support.
This commit is contained in:
@@ -478,6 +478,7 @@ namespace bgfx { namespace mtl
|
||||
g_caps.supported |= (0
|
||||
| BGFX_CAPS_ALPHA_TO_COVERAGE
|
||||
| BGFX_CAPS_BLEND_INDEPENDENT
|
||||
| BGFX_CAPS_COMPUTE
|
||||
| BGFX_CAPS_FRAGMENT_DEPTH
|
||||
| BGFX_CAPS_INDEX32
|
||||
| BGFX_CAPS_INSTANCING
|
||||
@@ -491,7 +492,7 @@ namespace bgfx { namespace mtl
|
||||
| BGFX_CAPS_TEXTURE_READ_BACK
|
||||
| BGFX_CAPS_VERTEX_ATTRIB_HALF
|
||||
| BGFX_CAPS_VERTEX_ATTRIB_UINT10
|
||||
| BGFX_CAPS_COMPUTE
|
||||
| BGFX_CAPS_VERTEX_ID
|
||||
);
|
||||
|
||||
if (BX_ENABLED(BX_PLATFORM_IOS) )
|
||||
@@ -4551,6 +4552,7 @@ namespace bgfx { namespace mtl
|
||||
if (0 != currentState.m_streamMask)
|
||||
{
|
||||
uint32_t numVertices = draw.m_numVertices;
|
||||
|
||||
if (UINT32_MAX == numVertices)
|
||||
{
|
||||
const VertexBufferMtl& vb = m_vertexBuffers[currentState.m_stream[0].m_handle.idx];
|
||||
@@ -4580,9 +4582,9 @@ namespace bgfx { namespace mtl
|
||||
MTLIndexType indexType = 0 == (ib.m_flags & BGFX_BUFFER_INDEX32) ? MTLIndexTypeUInt16 : MTLIndexTypeUInt32;
|
||||
|
||||
numDrawIndirect = UINT16_MAX == draw.m_numIndirect
|
||||
? vb.m_size/BGFX_CONFIG_DRAW_INDIRECT_STRIDE
|
||||
: draw.m_numIndirect
|
||||
;
|
||||
? vb.m_size/BGFX_CONFIG_DRAW_INDIRECT_STRIDE
|
||||
: draw.m_numIndirect
|
||||
;
|
||||
|
||||
for (uint32_t ii = 0; ii < numDrawIndirect; ++ii)
|
||||
{
|
||||
@@ -4592,9 +4594,10 @@ namespace bgfx { namespace mtl
|
||||
else
|
||||
{
|
||||
numDrawIndirect = UINT16_MAX == draw.m_numIndirect
|
||||
? vb.m_size/BGFX_CONFIG_DRAW_INDIRECT_STRIDE
|
||||
: draw.m_numIndirect
|
||||
;
|
||||
? vb.m_size/BGFX_CONFIG_DRAW_INDIRECT_STRIDE
|
||||
: draw.m_numIndirect
|
||||
;
|
||||
|
||||
for (uint32_t ii = 0; ii < numDrawIndirect; ++ii)
|
||||
{
|
||||
rce.drawPrimitives(prim.m_type,vb.m_ptr, (draw.m_startIndirect + ii) * BGFX_CONFIG_DRAW_INDIRECT_STRIDE);
|
||||
|
||||
Reference in New Issue
Block a user