- Getting Started with LLGL (PDF) with Introduction, Hello Triangle Tutorial, and Extensibility Example with GLFW
- LLGL Reference Manual (PDF)
- LLGL Coding Conventions (PDF)
- Version: 0.01 Beta
| Renderer | Progress | Remarks |
|---|---|---|
| OpenGL | ~85% | |
| Direct3D 11 | ~85% | |
| Direct3D 12 | ~5% | Experimental state; Tutorials working: 01, 06, 07 |
| 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 |
// Interface:
CommandBuffer::DrawIndexed(unsigned int numVertices, unsigned int firstIndex);
// OpenGL Implementation:
void GLCommandBuffer::DrawIndexed(unsigned int numVertices, unsigned int firstIndex)
{
glDrawElements(
renderState_.drawMode,
static_cast<GLsizei>(numVertices),
renderState_.indexBufferDataType,
(reinterpret_cast<const GLvoid*>(firstIndex * renderState_.indexBufferStride))
);
}
// Direct3D 11 Implementation
void D3D11CommandBuffer::DrawIndexed(unsigned int numVertices, unsigned int firstIndex)
{
context_->DrawIndexed(numVertices, firstIndex, 0);
}
// Direct3D 12 Implementation
void D3D12CommandBuffer::DrawIndexed(unsigned int numVertices, unsigned int firstIndex)
{
commandList_->DrawIndexedInstanced(numVertices, 1, firstIndex, 0, 0);
}
// Vulkan Implementation
void VKCommandBuffer::DrawIndexed(unsigned int numVertices, unsigned int firstIndex)
{
vkCmdDrawIndexed(commandBuffer_, numVertices, 1, firstIndex, 0, 0);
}This repository contains several tutorials and examples which show how to use LLGL. Here is a brief overview:
Getting started tutorial where a single multi-colored triangle is rendered.
Simple tessellation example without any textures.
Simple texturing and sampler state example.
Shows how to use Query objects and conditional rendering for occlusion culling.
No screenshot available
Simple render target example with optional multi-sample texture (Texture2DMS/ sampler2DMS).
Multi-context tutorial shows the following rendering techniques: multiple render contexts (one window each), rendering simultaneously into multiple viewports, geometry shader.
Shows how to use buffer arrays, i.e. render with multiple vertex buffers simultaneously, and hardware instancing.
Small example with a compute shader and a storage buffer.
No screenshot available
Small example with a geometry shader and a stream-output buffer.
No screenshot available
Practical example of hardware instancing by rendering tens of thousands of different textured plants instances.
Practical example of a glow effect with post-processing and the usage of several shaders, render targets and graphics pipelines.
Experimental example of using multiple renderers at once (only supported on Win32 platform).








