Low Level Graphics Library (LLGL)
3-Clause BSD License
Renderer
Progress
Remarks
OpenGL
~90%
Direct3D 11
~85%
Depth-textures are incomplete
Direct3D 12
~15%
Experimental state; Tutorials working: 01, 02, (03), 06, 07, (10)
Vulkan
~30%
Experimental state; Tutorials working: 01, 02, 03, 06, 07, 10
Platform
Progress
Remarks
Windows
100%
Tested on Windows 10
Linux
50%
Tested on Kubuntu 16 ; Anti-aliasing is currently not supported
macOS
50%
Tested on macOS Sierra ; Not all tutorials are running
iOS
1%
Currently not compilable
// Unified Interface:
CommandBuffer::DrawIndexed (std::uint32_t numIndices, std::uint32_t firstIndex);
// OpenGL Implementation:
void GLCommandBuffer::DrawIndexed (std::uint32_t numIndices, std::uint32_t firstIndex)
{
const GLsizeiptr indices = firstIndex * renderState_.indexBufferStride ;
glDrawElements (
renderState_.drawMode ,
static_cast <GLsizei>(numIndices),
renderState_.indexBufferDataType ,
reinterpret_cast <const GLvoid*>(indices)
);
}
// Direct3D 11 Implementation
void D3D11CommandBuffer::DrawIndexed (std::uint32_t numIndices, std::uint32_t firstIndex)
{
context_->DrawIndexed (numIndices, firstIndex, 0 );
}
// Direct3D 12 Implementation
void D3D12CommandBuffer::DrawIndexed (std::uint32_t numIndices, std::uint32_t firstIndex)
{
commandList_->DrawIndexedInstanced (numIndices, 1 , firstIndex, 0 , 0 );
}
// Vulkan Implementation
void VKCommandBuffer::DrawIndexed (std::uint32_t numIndices, std::uint32_t firstIndex)
{
vkCmdDrawIndexed (commandBuffer_, numIndices, 1 , firstIndex, 0 , 0 );
}