LLGL 0.05 Beta
Loading...
Searching...
No Matches
LLGL::RenderingCapabilities Struct Reference

Structure with all attributes describing the rendering capabilities of the render system. More...

#include <RenderSystemFlags.h>

Public Attributes

ScreenOrigin screenOrigin = ScreenOrigin::UpperLeft
 Screen coordinate system origin.
ClippingRange clippingRange = ClippingRange::ZeroToOne
 Specifies the clipping depth range.
std::vector< ShadingLanguage > shadingLanguages
 Specifies the list of supported shading languages.
std::vector< Format > textureFormats
 Specifies the list of supported hardware texture formats.
std::vector< Format > vertexFormats
 Specifies the list of supported hardware vertex formats.
std::vector< Format > swapChainColorFormats
 Specifies the list of color formats a swap-chain color buffer can have.
std::vector< Format > swapChainDepthStencilFormats
 Specifies the list of depth-stencil formats a swap-chain depth-stencil buffer can have.
RenderingFeatures features
 Specifies all supported hardware features.
RenderingLimits limits
 Specifies all rendering limitations.

Detailed Description

Structure with all attributes describing the rendering capabilities of the render system.

See also
RenderSystem::GetRenderingCaps

Member Data Documentation

◆ clippingRange

ClippingRange LLGL::RenderingCapabilities::clippingRange = ClippingRange::ZeroToOne

Specifies the clipping depth range.

◆ features

RenderingFeatures LLGL::RenderingCapabilities::features

Specifies all supported hardware features.

Remarks
Especially with OpenGL these features can vary between different hardware and GL versions.

◆ limits

RenderingLimits LLGL::RenderingCapabilities::limits

Specifies all rendering limitations.

Remarks
Especially with OpenGL these features can vary between different hardware and GL versions.

◆ screenOrigin

ScreenOrigin LLGL::RenderingCapabilities::screenOrigin = ScreenOrigin::UpperLeft

Screen coordinate system origin.

Remarks
This determines the native coordinate space of viewports, scissors, and framebuffers. If the native screen origin is in the bottom-left corner, LLGL emulates it to always maintain the upper-left corner as its screen origin.

◆ shadingLanguages

std::vector<ShadingLanguage> LLGL::RenderingCapabilities::shadingLanguages

Specifies the list of supported shading languages.

Remarks
This also specifies whether shaders can be loaded in source or binary form (using "Compile" or "LoadBinary" functions of the "Shader" interface).
See also
Shader::Compile
Shader::LoadBinary

◆ swapChainColorFormats

std::vector<Format> LLGL::RenderingCapabilities::swapChainColorFormats

Specifies the list of color formats a swap-chain color buffer can have.

Remarks
This is the set of formats SwapChain::GetColorFormat can return, i.e. a subset of textureFormats, since a swap-chain color buffer must also be presentable and not every renderable format can be scanned out by the display hardware. Requesting a format from this list via SwapChainDescriptor::colorFormat is a preference, not a guarantee: if the renderer cannot honor it, it falls back to its automatic selection. Use SwapChain::GetColorFormat to determine the format that was actually used.
Note
With Vulkan, final support also depends on the presentation surface, which is not known until a swap-chain is created, so a format listed here may still be rejected by a particular surface.
With Direct3D 11, Direct3D 12, and OpenGL, SwapChainDescriptor::colorFormat is currently not honored at all and the color buffer always uses the format the backend picks itself.
See also
SwapChainDescriptor::colorFormat
SwapChain::GetColorFormat

◆ swapChainDepthStencilFormats

std::vector<Format> LLGL::RenderingCapabilities::swapChainDepthStencilFormats

Specifies the list of depth-stencil formats a swap-chain depth-stencil buffer can have.

Remarks
This is the set of formats SwapChain::GetDepthStencilFormat can return and the set of formats that can be requested via SwapChainDescriptor::depthStencilFormat, i.e. a subset of Format::D16UNorm, Format::D24UNormS8UInt, Format::D32Float, and Format::D32FloatS8X24UInt. If a requested format is not in this list, the renderer falls back to its automatic selection. Use SwapChain::GetDepthStencilFormat to determine the format that was actually used.
Note
With OpenGL, the depth-stencil buffer belongs to the pixel format the windowing system selects, so a request is only a hint for that selection and the driver commonly substitutes a different format. Only the format that can be relied upon is reported here; SwapChain::GetDepthStencilFormat may still return another one.
See also
SwapChainDescriptor::depthStencilFormat
SwapChain::GetDepthStencilFormat

◆ textureFormats

std::vector<Format> LLGL::RenderingCapabilities::textureFormats

Specifies the list of supported hardware texture formats.

See also
Format

◆ vertexFormats

std::vector<Format> LLGL::RenderingCapabilities::vertexFormats

Specifies the list of supported hardware vertex formats.

Remarks
This is usually a much shorter list than textureFormats and does generally not include compressed or sRGB formats.
See also
Format

The documentation for this struct was generated from the following file: