mirror of
https://github.com/scratchfoundation/bgfx.git
synced 2025-04-02 10:30:07 -04:00
Added ability to bind static index buffer to compute.
This commit is contained in:
parent
ef05e607d6
commit
a038b6d426
7 changed files with 17 additions and 13 deletions
|
@ -615,7 +615,7 @@ namespace bgfx
|
|||
/// @remarks
|
||||
/// Only 16-bit index buffer is supported.
|
||||
///
|
||||
IndexBufferHandle createIndexBuffer(const Memory* _mem);
|
||||
IndexBufferHandle createIndexBuffer(const Memory* _mem, uint8_t _flags = BGFX_BUFFER_COMPUTE_NONE);
|
||||
|
||||
/// Destroy static index buffer.
|
||||
void destroyIndexBuffer(IndexBufferHandle _handle);
|
||||
|
|
11
src/bgfx.cpp
11
src/bgfx.cpp
|
@ -1477,7 +1477,7 @@ again:
|
|||
m_renderCtx = NULL;
|
||||
m_exit = true;
|
||||
}
|
||||
// fallthrough
|
||||
// fall through
|
||||
|
||||
case CommandBuffer::End:
|
||||
end = true;
|
||||
|
@ -1491,7 +1491,10 @@ again:
|
|||
Memory* mem;
|
||||
_cmdbuf.read(mem);
|
||||
|
||||
m_renderCtx->createIndexBuffer(handle, mem);
|
||||
uint8_t flags;
|
||||
_cmdbuf.read(flags);
|
||||
|
||||
m_renderCtx->createIndexBuffer(handle, mem, flags);
|
||||
|
||||
release(mem);
|
||||
}
|
||||
|
@ -2062,11 +2065,11 @@ again:
|
|||
s_ctx->dbgTextImage(_x, _y, _width, _height, _data, _pitch);
|
||||
}
|
||||
|
||||
IndexBufferHandle createIndexBuffer(const Memory* _mem)
|
||||
IndexBufferHandle createIndexBuffer(const Memory* _mem, uint8_t _flags)
|
||||
{
|
||||
BGFX_CHECK_MAIN_THREAD();
|
||||
BX_CHECK(NULL != _mem, "_mem can't be NULL");
|
||||
return s_ctx->createIndexBuffer(_mem);
|
||||
return s_ctx->createIndexBuffer(_mem, _flags);
|
||||
}
|
||||
|
||||
void destroyIndexBuffer(IndexBufferHandle _handle)
|
||||
|
|
|
@ -1784,7 +1784,7 @@ namespace bgfx
|
|||
virtual RendererType::Enum getRendererType() const = 0;
|
||||
virtual const char* getRendererName() const = 0;
|
||||
virtual void flip() = 0;
|
||||
virtual void createIndexBuffer(IndexBufferHandle _handle, Memory* _mem) = 0;
|
||||
virtual void createIndexBuffer(IndexBufferHandle _handle, Memory* _mem, uint8_t _flags) = 0;
|
||||
virtual void destroyIndexBuffer(IndexBufferHandle _handle) = 0;
|
||||
virtual void createVertexDecl(VertexDeclHandle _handle, const VertexDecl& _decl) = 0;
|
||||
virtual void destroyVertexDecl(VertexDeclHandle _handle) = 0;
|
||||
|
@ -1914,7 +1914,7 @@ namespace bgfx
|
|||
return NULL;
|
||||
}
|
||||
|
||||
BGFX_API_FUNC(IndexBufferHandle createIndexBuffer(const Memory* _mem) )
|
||||
BGFX_API_FUNC(IndexBufferHandle createIndexBuffer(const Memory* _mem, uint8_t _flags) )
|
||||
{
|
||||
IndexBufferHandle handle = { m_indexBufferHandle.alloc() };
|
||||
|
||||
|
@ -1924,6 +1924,7 @@ namespace bgfx
|
|||
CommandBuffer& cmdbuf = getCommandBuffer(CommandBuffer::CreateIndexBuffer);
|
||||
cmdbuf.write(handle);
|
||||
cmdbuf.write(_mem);
|
||||
cmdbuf.write(_flags);
|
||||
}
|
||||
|
||||
return handle;
|
||||
|
@ -2215,7 +2216,7 @@ namespace bgfx
|
|||
CommandBuffer& cmdbuf = getCommandBuffer(CommandBuffer::CreateDynamicIndexBuffer);
|
||||
cmdbuf.write(handle);
|
||||
cmdbuf.write(_size);
|
||||
cmdbuf.write(BGFX_BUFFER_COMPUTE_NONE);
|
||||
cmdbuf.write(uint8_t(BGFX_BUFFER_COMPUTE_NONE) );
|
||||
|
||||
ib = (TransientIndexBuffer*)BX_ALLOC(g_allocator, sizeof(TransientIndexBuffer)+_size);
|
||||
ib->data = (uint8_t*)&ib[1];
|
||||
|
|
|
@ -762,9 +762,9 @@ namespace bgfx
|
|||
return BGFX_RENDERER_DIRECT3D11_NAME;
|
||||
}
|
||||
|
||||
void createIndexBuffer(IndexBufferHandle _handle, Memory* _mem) BX_OVERRIDE
|
||||
void createIndexBuffer(IndexBufferHandle _handle, Memory* _mem, uint8_t _flags) BX_OVERRIDE
|
||||
{
|
||||
m_indexBuffers[_handle.idx].create(_mem->size, _mem->data, BGFX_BUFFER_COMPUTE_NONE);
|
||||
m_indexBuffers[_handle.idx].create(_mem->size, _mem->data, _flags);
|
||||
}
|
||||
|
||||
void destroyIndexBuffer(IndexBufferHandle _handle) BX_OVERRIDE
|
||||
|
|
|
@ -640,7 +640,7 @@ namespace bgfx
|
|||
return BGFX_RENDERER_DIRECT3D9_NAME;
|
||||
}
|
||||
|
||||
void createIndexBuffer(IndexBufferHandle _handle, Memory* _mem) BX_OVERRIDE
|
||||
void createIndexBuffer(IndexBufferHandle _handle, Memory* _mem, uint8_t /*_flags*/) BX_OVERRIDE
|
||||
{
|
||||
m_indexBuffers[_handle.idx].create(_mem->size, _mem->data);
|
||||
}
|
||||
|
|
|
@ -1438,7 +1438,7 @@ namespace bgfx
|
|||
}
|
||||
}
|
||||
|
||||
void createIndexBuffer(IndexBufferHandle _handle, Memory* _mem) BX_OVERRIDE
|
||||
void createIndexBuffer(IndexBufferHandle _handle, Memory* _mem, uint8_t /*_flags*/) BX_OVERRIDE
|
||||
{
|
||||
m_indexBuffers[_handle.idx].create(_mem->size, _mem->data);
|
||||
}
|
||||
|
|
|
@ -33,7 +33,7 @@ namespace bgfx
|
|||
{
|
||||
}
|
||||
|
||||
void createIndexBuffer(IndexBufferHandle /*_handle*/, Memory* /*_mem*/) BX_OVERRIDE
|
||||
void createIndexBuffer(IndexBufferHandle /*_handle*/, Memory* /*_mem*/, uint8_t /*_flags*/) BX_OVERRIDE
|
||||
{
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue