LLGL 0.05 Beta
Loading...
Searching...
No Matches
LLGL Namespace Reference

Namespaces

namespace  Direct3D11
namespace  Direct3D12
namespace  Metal
namespace  OpenGL
namespace  OpenXR
namespace  Vulkan
namespace  Memory
namespace  Log
namespace  Timer
namespace  Version

Classes

class  Blob
 CPU read-only buffer of arbitrary size. More...
class  Buffer
 Hardware buffer interface. More...
class  BufferArray
 Hardware buffer container interface. More...
struct  BufferDescriptor
 Hardware buffer descriptor structure. More...
struct  BufferViewDescriptor
 Buffer view descriptor structure. More...
struct  VertexBufferView
 Vertex buffer view structure for buffer array initialization. More...
class  Canvas
 Canvas interface for mobile platforms. More...
struct  CanvasFlags
 Canvas creation flags. More...
struct  CanvasDescriptor
 Canvas descriptor structure. More...
class  CommandBuffer
 Command buffer interface used for storing and encoding GPU commands. More...
struct  CommandBufferFlags
 Command buffer creation flags. More...
struct  ClearFlags
 Command buffer clear flags. More...
struct  ClearValue
 Clear value structure for color, depth, and stencil clear operations. More...
struct  AttachmentClear
 Attachment clear command structure. More...
struct  CommandBufferDescriptor
 Command buffer descriptor structure. More...
class  CommandBufferTier1
 Extended tier-1 command buffer interface. More...
class  CommandQueue
 Command queue interface. More...
class  AlignedArray
 Alternative to std::aligned_storage but with support for zero length array. More...
class  AlignedArray< T, 0u >
 Template specialization for an empty array. More...
class  ArrayView
 Constant array view container template. Keeps pointer to array and length. More...
class  DynamicArray
 Generic container class for dynamic arrays that usually do not change in size. More...
struct  GrowStrategyAddHalf
 Container capacity grow strategy to increase the capacity to 150%. More...
struct  GrowStrategyDouble
 Container capacity grow strategy to increase the capacity to 200%. More...
struct  GrowStrategyRoundUpPow2
 Container capacity grow strategy to increase the capacity to the next higher power of two. More...
class  SmallVector
 Generic container class for consecutive arrays optimized for small sizes. More...
class  BasicStringLiteral
 Constant string container template to either reference a compile-time string literal (lightweight) or own a dynamic string (non-mutable). More...
class  BasicStringView
 Constant string view container template. Keeps pointer to string and its length. More...
class  UTF8String
 Container class for UTF-8 encoded strings. More...
class  Display
 Display interface to query the attributes of all connected displays/monitors. More...
struct  DisplayMode
 Display mode structure. More...
class  Fence
 Fence interface for CPU/GPU synchronization. More...
struct  FormatFlags
 Format attribute flags enumeration. More...
struct  FormatAttributes
 Vertex and texture format attributes structure. More...
struct  FragmentAttribute
 Fragment output attribute structure. More...
struct  MutableImageView
 Mutable image view structure used as destination when reading the image data from a hardware texture. More...
struct  ImageView
 Image view structure used as source when writing the image data to a hardware texture. More...
class  IncludeHandler
 File include handler interface. More...
struct  DrawIndirectArguments
 Structure for the arguments of an indirect draw command. More...
struct  DrawIndexedIndirectArguments
 Structure for the arguments of an indirect indexed draw command. More...
struct  DrawPatchIndirectArguments
 Structure for the arguments of an indirect draw/indexed-draw command for tessellation on Metal renderer. More...
struct  DispatchIndirectArguments
 Structure for the arguments of an indirect compute command. More...
struct  DrawMeshIndirectArguments
 Structure for the arguments of an indirect mesh draw command. More...
class  Interface
 Base class for all interfaces in LLGL. More...
struct  InterfaceID
 Enumeration of all interfaces in LLGL. More...
class  NonCopyable
 Base class for all classes with virtual function tables in LLGL. More...
class  PipelineCache
 Pipeline state cache interface. More...
class  PipelineLayout
 Pipeline layout interface. More...
struct  BarrierFlags
 Flags for memory barriers in pipeline layouts. More...
struct  BindingSlot
 Resource binding slot structure. More...
struct  BindingDescriptor
 Layout structure for a single binding point of the pipeline layout descriptor. More...
struct  StaticSamplerDescriptor
 Static sampler state pipeline layout descriptor. More...
struct  UniformDescriptor
 Shader uniform pipeline layout descriptor. More...
struct  CombinedTextureSamplerDescriptor
 Descriptor structure for a combined texture-sampler. More...
struct  PipelineLayoutDescriptor
 Pipeline layout descriptor structure. More...
class  PipelineState
 Graphics and compute pipeline state interface. More...
struct  ColorMaskFlags
 Blend target color mask flags. More...
struct  Viewport
 Viewport dimensions. More...
struct  Scissor
 Scissor dimensions. More...
struct  DepthDescriptor
 Depth state descriptor structure. More...
struct  StencilFaceDescriptor
 Stencil face descriptor structure. More...
struct  StencilDescriptor
 Stencil state descriptor structure. More...
struct  DepthBiasDescriptor
 Depth bias descriptor structure to control fragment depth values. More...
struct  RasterizerDescriptor
 Rasterizer state descriptor structure. More...
struct  BlendTargetDescriptor
 Blend target state descriptor structure. More...
struct  BlendDescriptor
 Blending state descriptor structure. More...
struct  TessellationDescriptor
 Tessellation descriptor structure for the graphics pipeline. More...
struct  GraphicsPipelineDescriptor
 Graphics pipeline state descriptor structure. More...
struct  ComputePipelineDescriptor
 Compute pipeline state descriptor structure. More...
struct  MeshPipelineDescriptor
 Mesh pipeline state descriptor structure. More...
struct  NativeHandle
 Android native handle structure. More...
class  QueryHeap
 Query heap interface that holds a certain number of queries that are all of the same type. More...
struct  QueryPipelineStatistics
 Query data structure for pipeline statistics. More...
struct  QueryHeapDescriptor
 Query heap descriptor structure. More...
struct  ApplicationDescriptor
 Application descriptor structure. More...
struct  RendererConfigurationVulkan
 Structure for a Vulkan renderer specific configuration. More...
struct  RendererConfigurationOpenGL
 OpenGL/OpenGLES profile descriptor structure. More...
class  RenderingDebugger
 Rendering debugger interface. More...
struct  ProfileTimeRecord
 Structure with annotation and elapsed time for a timer profile. More...
struct  ProfileCommandQueueRecord
struct  ProfileCommandBufferRecord
struct  FrameProfile
 Profile of a rendered frame. More...
class  RenderPass
 Render pass interface. More...
struct  AttachmentFormatDescriptor
 Render pass attachment descriptor structure. More...
struct  RenderPassDescriptor
 Render pass descriptor structure. More...
class  RenderSystemDeleter
 Delegate to delete an instance of the RenderSystem interface. More...
class  RenderSystem
 Render system interface. More...
class  RenderSystemChild
 Base class for all interfaces whose instances are owned by the RenderSystem. More...
struct  RenderSystemFlags
 Render system flags enumeration. More...
struct  RendererID
 Renderer identification number enumeration. More...
struct  RendererInfo
 Renderer basic information structure. More...
struct  RenderSystemDescriptor
 Render system descriptor structure. More...
struct  RenderingFeatures
 Contains the attributes for all supported rendering features. More...
struct  RenderingLimits
 Contains all rendering limitations such as maximum buffer size, maximum texture resolution etc. More...
struct  RenderingCapabilities
 Structure with all attributes describing the rendering capabilities of the render system. More...
class  RenderTarget
 Render target interface. More...
struct  AttachmentDescriptor
 Render target attachment descriptor structure. More...
struct  RenderTargetDescriptor
 Render target descriptor structure. More...
class  Report
 Error and warning report class. More...
class  Resource
 Base class for all hardware resource interfaces. More...
struct  BindFlags
 Flags for Buffer and Texture resources that describe for which purposes they will be used. More...
struct  CPUAccessFlags
 CPU read/write access flag enumeration for mapping GPU into CPU memory space. More...
struct  MiscFlags
 Miscellaneous resource flags. More...
class  ResourceHeap
 Resource heap interface. More...
struct  ResourceViewDescriptor
 Resource view descriptor structure. More...
struct  ResourceHeapDescriptor
 Resource heap descriptor structure. More...
class  Sampler
 Sampler interface. More...
struct  SamplerDescriptor
 Texture sampler descriptor structure. More...
class  Shader
 Shader interface. More...
struct  ShaderCompileFlags
 Shader compilation flags enumeration. More...
struct  StageFlags
 Shader stage flags enumeration. More...
struct  ShaderMacro
 Shader macro structure with name and optional body definition. More...
struct  VertexShaderAttributes
 Vertex (or geometry or tessellation-evaluation) shader specific structure. More...
struct  FragmentShaderAttributes
 Fragment shader specific descriptor structure. More...
struct  ComputeShaderAttributes
 Compute shader specific descriptor structure. More...
struct  ShaderDescriptor
 Shader source and binary code descriptor structure. More...
struct  ShaderResourceReflection
 Shader reflection resource structure. More...
struct  ShaderReflection
 Shader reflection structure. More...
class  Surface
 The Surface interface is the base interface for Window (on Desktop platforms) and Canvas (on mobile platforms). More...
class  SwapChain
 Swap-chain interface. More...
struct  ResizeBuffersFlags
 Swap-chain resize buffers flags. More...
struct  SwapChainDescriptor
 Swap chain descriptor structure. More...
struct  UninitializeTag
 Common uninitialize tag. More...
struct  CopyTag
 Common copy tag. More...
class  Texture
 Texture interface. More...
struct  TextureSwizzleRGBA
 Texture component swizzle structure for red, green, blue, and alpha components. More...
struct  TextureSubresource
 Texture subresource descriptor which specifies the array layer and MIP-map level range of a texture resource. More...
struct  TextureLocation
 Texture location structure: MIP-map level and offset. More...
struct  TextureRegion
 Texture region structure: Subresource (MIP-map level and array layer range), offset, and extent. More...
struct  TextureDescriptor
 Texture descriptor structure. More...
struct  TextureViewDescriptor
 Texture view descriptor structure. More...
struct  SubresourceFootprint
 Memory footprint structure for texture subresources. More...
struct  Extent2D
 2-Dimensional extent structure. More...
struct  Extent3D
 3-Dimensional extent structure. More...
struct  Offset2D
 2-Dimensional offset structure. More...
struct  Offset3D
 3-Dimensional offset structure. More...
class  Color
 Base color class with N components. More...
class  Color< T, 3u >
 RGB color class with components: r, g, and b. More...
class  Color< T, 4u >
 RGBA color class with components: r, g, b, and a. More...
class  Image
 Utility class to manage the storage and attributes of an image. More...
class  Input
 Default window event listener to receive user input. More...
class  ParseContext
 Context class for descriptor parsing. More...
struct  VertexFormat
 Utility structure to store vertex attributes. More...
struct  VersionInfo
 General purpose version information structure. More...
struct  VertexAttribute
 Vertex input/output attribute structure. More...
class  Window
 Window interface for desktop platforms. More...
struct  WindowFlags
 Window creation flags. More...
struct  WindowDescriptor
 Window descriptor structure. More...
struct  XRConfigurationOpenXR
 Configuration structure for OpenXR-specific settings. More...
struct  XRFrameState
 Per-frame state returned by XRSession::BeginFrame. More...
class  XRSession
 XR session interface. More...
class  XRSwapChain
 XR swap-chain interface. More...
class  XRSystem
 XR system interface. More...
struct  XRSystemFlags
 XR system flags enumeration. More...
struct  XRSystemDescriptor
 XR system descriptor structure. More...
struct  XRSessionDescriptor
 XR session descriptor structure. More...
struct  XRViewConfigurationView
 Per-view configuration entry returned by XRSystem::GetViewConfigurations. More...
struct  XRSwapChainDescriptor
 XR swap-chain descriptor structure. More...
struct  XRViewPose
 Pose and projection parameters for a single XR view sampled at frame begin. More...

Typedefs

using DynamicByteArray = DynamicArray<char>
 Common type for dynamic byte arrays.
template<typename T, typename Allocator = std::allocator<T>, typename GrowStrategy = GrowStrategyAddHalf>
using DynamicVector = SmallVector<T, 0, Allocator, GrowStrategy>
 Template alias to a SmallVector with zero local capacity. This is intended as alternative to std::vector in the public interface.
using StringLiteral = BasicStringLiteral<char>
 ANSI character string literal (char).
using WStringLiteral = BasicStringLiteral<wchar_t>
 Wide character string literal (wchar_t).
using StringView = BasicStringView<char>
 ANSI character string view (char).
using WStringView = BasicStringView<wchar_t>
 Wide character string view (wchar_t).
using RenderSystemPtr = std::unique_ptr<RenderSystem, RenderSystemDeleter>
 Unique pointer type for the RenderSystem interface with a custom deleter.
using ValidateRenderingCapsFunc = std::function<bool(const std::string& info, const std::string& attrib)>
 Callback interface for the ValidateRenderingCaps function.
template<typename T>
using ColorRGB = Color<T, 3>
using ColorRGBb = ColorRGB<bool>
using ColorRGBf = ColorRGB<float>
using ColorRGBd = ColorRGB<double>
using ColorRGBub = ColorRGB<std::uint8_t>
template<typename T>
using ColorRGBA = Color<T, 4>
using ColorRGBAb = ColorRGBA<bool>
using ColorRGBAf = ColorRGBA<float>
using ColorRGBAd = ColorRGBA<double>
using ColorRGBAub = ColorRGBA<std::uint8_t>
using XRSystemPtr = std::unique_ptr<XRSystem>
 Unique pointer type for the XRSystem interface.

Enumerations

enum class  EventAction { Began , Changed , Ended }
 Motion event action enumeration. More...
enum class  RenderConditionMode {
  Wait , NoWait , ByRegionWait , ByRegionNoWait ,
  WaitInverted , NoWaitInverted , ByRegionWaitInverted , ByRegionNoWaitInverted
}
 Render condition mode enumeration. More...
enum class  StencilFace { FrontAndBack , Front , Back }
 Stencil face enumeration. More...
enum class  ShadingRate {
  Size1x1 , Size1x2 , Size2x1 , Size2x2 ,
  Size2x4 , Size4x2 , Size4x4
}
 Variable rate shading enumeration. More...
enum class  ShadingRateOp {
  Keep , Replace , Min , Max ,
  Sum
}
 Shading rate combiner operation enumeration. More...
enum class  Format {
  Undefined , A8UNorm , R8UNorm , R8SNorm ,
  R8UInt , R8SInt , R16UNorm , R16SNorm ,
  R16UInt , R16SInt , R16Float , R32UInt ,
  R32SInt , R32Float , R64Float , RG8UNorm ,
  RG8SNorm , RG8UInt , RG8SInt , RG16UNorm ,
  RG16SNorm , RG16UInt , RG16SInt , RG16Float ,
  RG32UInt , RG32SInt , RG32Float , RG64Float ,
  RGB8UNorm , RGB8UNorm_sRGB , RGB8SNorm , RGB8UInt ,
  RGB8SInt , RGB16UNorm , RGB16SNorm , RGB16UInt ,
  RGB16SInt , RGB16Float , RGB32UInt , RGB32SInt ,
  RGB32Float , RGB64Float , RGBA8UNorm , RGBA8UNorm_sRGB ,
  RGBA8SNorm , RGBA8UInt , RGBA8SInt , RGBA16UNorm ,
  RGBA16SNorm , RGBA16UInt , RGBA16SInt , RGBA16Float ,
  RGBA32UInt , RGBA32SInt , RGBA32Float , RGBA64Float ,
  BGRA8UNorm , BGRA8UNorm_sRGB , BGRA8SNorm , BGRA8UInt ,
  BGRA8SInt , RGB10A2UNorm , RGB10A2UInt , RG11B10Float ,
  RGB9E5Float , BGR5A1UNorm , D16UNorm , D24UNormS8UInt ,
  D32Float , D32FloatS8X24UInt , BC1UNorm , BC1UNorm_sRGB ,
  BC2UNorm , BC2UNorm_sRGB , BC3UNorm , BC3UNorm_sRGB ,
  BC4UNorm , BC4SNorm , BC5UNorm , BC5SNorm ,
  BC6HUFloat , BC6HSFloat , BC7UNorm , BC7UNorm_sRGB ,
  ASTC4x4 , ASTC4x4_sRGB , ASTC5x4 , ASTC5x4_sRGB ,
  ASTC5x5 , ASTC5x5_sRGB , ASTC6x5 , ASTC6x5_sRGB ,
  ASTC6x6 , ASTC6x6_sRGB , ASTC8x5 , ASTC8x5_sRGB ,
  ASTC8x6 , ASTC8x6_sRGB , ASTC8x8 , ASTC8x8_sRGB ,
  ASTC10x5 , ASTC10x5_sRGB , ASTC10x6 , ASTC10x6_sRGB ,
  ASTC10x8 , ASTC10x8_sRGB , ASTC10x10 , ASTC10x10_sRGB ,
  ASTC12x10 , ASTC12x10_sRGB , ASTC12x12 , ASTC12x12_sRGB ,
  ETC1UNorm , ETC2UNorm , ETC2UNorm_sRGB
}
 Texture and vertex attribute format enumeration used for GPU side operations. More...
enum class  ImageFormat {
  Alpha , R , RG , RGB ,
  BGR , RGBA , BGRA , ARGB ,
  ABGR , Depth , DepthStencil , Stencil ,
  Compressed
}
 Image format enumeration that applies to each pixel of an image. More...
enum class  DataType {
  Undefined , Int8 , UInt8 , Int16 ,
  UInt16 , Int32 , UInt32 , Float16 ,
  Float32 , Float64
}
 Data types enumeration used for CPU side operations. More...
enum class  Key {
  LButton , RButton , Cancel , MButton ,
  XButton1 , XButton2 , Back , Tab ,
  Clear , Return , Shift , Control ,
  Menu , Pause , Capital , Escape ,
  Space , PageUp , PageDown , End ,
  Home , Left , Up , Right ,
  Down , Select , Print , Exe ,
  Snapshot , Insert , Delete , Help ,
  D0 , D1 , D2 , D3 ,
  D4 , D5 , D6 , D7 ,
  D8 , D9 , A , B ,
  C , D , E , F ,
  G , H , I , J ,
  K , L , M , N ,
  O , P , Q , R ,
  S , T , U , V ,
  W , X , Y , Z ,
  LWin , RWin , Apps , Sleep ,
  Keypad0 , Keypad1 , Keypad2 , Keypad3 ,
  Keypad4 , Keypad5 , Keypad6 , Keypad7 ,
  Keypad8 , Keypad9 , KeypadMultiply , KeypadPlus ,
  KeypadSeparator , KeypadMinus , KeypadDecimal , KeypadDivide ,
  F1 , F2 , F3 , F4 ,
  F5 , F6 , F7 , F8 ,
  F9 , F10 , F11 , F12 ,
  F13 , F14 , F15 , F16 ,
  F17 , F18 , F19 , F20 ,
  F21 , F22 , F23 , F24 ,
  NumLock , ScrollLock , LShift , RShift ,
  LControl , RControl , LMenu , RMenu ,
  BrowserBack , BrowserForward , BrowserRefresh , BrowserStop ,
  BrowserSearch , BrowserFavorites , LLGL_DEPRECATED_ENUMCASE =("Identifier `BrowserFavorits` is deprecated since 0.05b; Use `BrowserFavorites` instead!", "BrowserFavorites") = BrowserFavorites , BrowserHome ,
  VolumeMute , VolumeDown , VolumeUp , MediaNextTrack ,
  MediaPrevTrack , MediaStop , MediaPlayPause , LaunchMail ,
  LaunchMediaSelect , LaunchApp1 , LaunchApp2 , Plus ,
  Comma , Minus , Period , Exponent ,
  Attn , CrSel , ExSel , ErEOF ,
  Play , Zoom , NoName , PA1 ,
  OEMClear , Any
}
 Input key codes. More...
enum class  UniformType {
  Undefined , Float1 , Float2 , Float3 ,
  Float4 , Double1 , Double2 , Double3 ,
  Double4 , Int1 , Int2 , Int3 ,
  Int4 , UInt1 , UInt2 , UInt3 ,
  UInt4 , Bool1 , Bool2 , Bool3 ,
  Bool4 , Float2x2 , Float2x3 , Float2x4 ,
  Float3x2 , Float3x3 , Float3x4 , Float4x2 ,
  Float4x3 , Float4x4 , Double2x2 , Double2x3 ,
  Double2x4 , Double3x2 , Double3x3 , Double3x4 ,
  Double4x2 , Double4x3 , Double4x4 , Sampler ,
  Image , AtomicCounter
}
 Shader uniform type enumeration. More...
enum class  PrimitiveTopology {
  PointList , LineList , LineStrip , LineListAdjacency ,
  LineStripAdjacency , TriangleList , TriangleStrip , TriangleListAdjacency ,
  TriangleStripAdjacency , Patches1 , Patches2 , Patches3 ,
  Patches4 , Patches5 , Patches6 , Patches7 ,
  Patches8 , Patches9 , Patches10 , Patches11 ,
  Patches12 , Patches13 , Patches14 , Patches15 ,
  Patches16 , Patches17 , Patches18 , Patches19 ,
  Patches20 , Patches21 , Patches22 , Patches23 ,
  Patches24 , Patches25 , Patches26 , Patches27 ,
  Patches28 , Patches29 , Patches30 , Patches31 ,
  Patches32
}
 Primitive topology enumeration. More...
enum class  CompareOp {
  NeverPass , Less , Equal , LessEqual ,
  Greater , NotEqual , GreaterEqual , AlwaysPass
}
 Compare operations enumeration. More...
enum class  StencilOp {
  Keep , Zero , Replace , IncClamp ,
  DecClamp , Invert , IncWrap , DecWrap
}
 Stencil operations enumeration. More...
enum class  BlendOp {
  Zero , One , SrcColor , InvSrcColor ,
  SrcAlpha , InvSrcAlpha , DstColor , InvDstColor ,
  DstAlpha , InvDstAlpha , SrcAlphaSaturate , BlendFactor ,
  InvBlendFactor , Src1Color , InvSrc1Color , Src1Alpha ,
  InvSrc1Alpha
}
 Blending operations enumeration. More...
enum class  BlendArithmetic {
  Add , Subtract , RevSubtract , Min ,
  Max
}
 Blending arithmetic operations enumeration. More...
enum class  PolygonMode { Fill , Wireframe , Points }
 Polygon filling modes enumeration. More...
enum class  CullMode { Disabled , Front , Back }
 Polygon culling modes enumeration. More...
enum class  LogicOp {
  Disabled , Clear , Set , Copy ,
  CopyInverted , NoOp , Invert , AND ,
  ANDReverse , ANDInverted , NAND , OR ,
  ORReverse , ORInverted , NOR , XOR ,
  Equiv
}
 Logical pixel operation enumeration. More...
enum class  TessellationPartition {
  Undefined , Integer , Pow2 , FractionalOdd ,
  FractionalEven
}
 Tessellation partition mode enumeration. More...
enum class  NativeType { X11 , Wayland }
 Type enumeration to distinguish native handles between X11 and Wayland protocols. More...
enum class  QueryType {
  SamplesPassed , AnySamplesPassed , AnySamplesPassedConservative , TimeElapsed ,
  StreamOutPrimitivesWritten , StreamOutOverflow , PipelineStatistics
}
 Query type enumeration. More...
enum class  OpenGLContextProfile {
  Auto , CompatibilityProfile , CoreProfile , ESProfile ,
  LLGL_DEPRECATED_ENUMCASE =("Identifier `DefaultProfile` is deprecated since 0.05b; Use `Auto` instead!", "Auto") = Auto
}
 OpenGL context profile enumeration. More...
enum class  ErrorType { InvalidArgument , InvalidState , UnsupportedFeature , UndefinedBehavior }
 Rendering debugger error types enumeration. More...
enum class  WarningType {
  ImproperArgument , ImproperState , PointlessOperation , VaryingBehavior ,
  DeprecatedFeature
}
 Rendering debugger warning types enumeration. More...
enum class  AttachmentLoadOp { Undefined , Load , Clear }
 Enumeration for render pass attachment load operations. More...
enum class  AttachmentStoreOp { Undefined , Store }
 Enumeration for render pass attachment store operations. More...
enum class  ShadingLanguage {
  GLSL = (0x10000) , GLSL_110 = (0x10000 | 110) , GLSL_120 = (0x10000 | 120) , GLSL_130 = (0x10000 | 130) ,
  GLSL_140 = (0x10000 | 140) , GLSL_150 = (0x10000 | 150) , GLSL_330 = (0x10000 | 330) , GLSL_400 = (0x10000 | 400) ,
  GLSL_410 = (0x10000 | 410) , GLSL_420 = (0x10000 | 420) , GLSL_430 = (0x10000 | 430) , GLSL_440 = (0x10000 | 440) ,
  GLSL_450 = (0x10000 | 450) , GLSL_460 = (0x10000 | 460) , ESSL = (0x20000) , ESSL_100 = (0x20000 | 100) ,
  ESSL_300 = (0x20000 | 300) , ESSL_310 = (0x20000 | 310) , ESSL_320 = (0x20000 | 320) , HLSL = (0x30000) ,
  HLSL_2_0 = (0x30000 | 200) , HLSL_2_0a = (0x30000 | 201) , HLSL_2_0b = (0x30000 | 202) , HLSL_3_0 = (0x30000 | 300) ,
  HLSL_4_0 = (0x30000 | 400) , HLSL_4_1 = (0x30000 | 410) , HLSL_5_0 = (0x30000 | 500) , HLSL_5_1 = (0x30000 | 510) ,
  HLSL_6_0 = (0x30000 | 600) , HLSL_6_1 = (0x30000 | 610) , HLSL_6_2 = (0x30000 | 620) , HLSL_6_3 = (0x30000 | 630) ,
  HLSL_6_4 = (0x30000 | 640) , HLSL_6_5 = (0x30000 | 650) , HLSL_6_6 = (0x30000 | 660) , HLSL_6_7 = (0x30000 | 670) ,
  HLSL_6_8 = (0x30000 | 680) , HLSL_6_9 = (0x30000 | 690) , Metal = (0x40000) , Metal_1_0 = (0x40000 | 100) ,
  Metal_1_1 = (0x40000 | 110) , Metal_1_2 = (0x40000 | 120) , Metal_2_0 = (0x40000 | 200) , Metal_2_1 = (0x40000 | 210) ,
  Metal_2_2 = (0x40000 | 220) , Metal_2_3 = (0x40000 | 230) , Metal_2_4 = (0x40000 | 240) , Metal_3_0 = (0x40000 | 300) ,
  SPIRV = (0x50000) , SPIRV_100 = (0x50000 | 100) , DXIL = (0x60000) , DXIL_1_0 = (0x60000 | 100) ,
  DXIL_1_1 = (0x60000 | 110) , DXIL_1_2 = (0x60000 | 120) , DXIL_1_3 = (0x60000 | 130) , DXIL_1_4 = (0x60000 | 140) ,
  DXIL_1_5 = (0x60000 | 150) , DXIL_1_6 = (0x60000 | 160) , DXIL_1_7 = (0x60000 | 170) , DXIL_1_8 = (0x60000 | 180) ,
  DXIL_1_9 = (0x60000 | 190) , VersionBitmask = 0x0000FFFF
}
 Shading language version enumeration. More...
enum class  ScreenOrigin { LowerLeft , UpperLeft }
 Screen coordinate system origin enumeration. More...
enum class  ClippingRange { MinusOneToOne , ZeroToOne }
 Clipping depth range enumeration. More...
enum class  CPUAccess { ReadOnly , WriteOnly , WriteDiscard , ReadWrite }
 Classifications of CPU access to mapped resources. More...
enum class  ResourceType { Undefined , Buffer , Texture , Sampler }
 Hardware resource type enumeration. More...
enum class  SamplerAddressMode {
  Repeat , Mirror , Clamp , Border ,
  MirrorOnce
}
 Technique for resolving texture coordinates that are outside of the range [0, 1]. More...
enum class  SamplerFilter { Nearest , Linear }
 Sampling filter enumeration. More...
enum class  ShaderType {
  Undefined , Vertex , TessControl , TessEvaluation ,
  Geometry , Fragment , Compute , Task ,
  Mesh , LLGL_DEPRECATED_ENUMCASE =("Identifier `Amplification` is deprecated since 0.05b; Use `Task` instead!", "Task") = Task
}
 Shader type enumeration. More...
enum class  ShaderSourceType { CodeString , CodeFile , BinaryBuffer , BinaryFile }
 Shader source type enumeration. More...
enum class  StorageBufferType {
  Undefined , TypedBuffer , StructuredBuffer , ByteAddressBuffer ,
  RWTypedBuffer , RWStructuredBuffer , RWByteAddressBuffer , AppendStructuredBuffer ,
  ConsumeStructuredBuffer
}
 Storage buffer type enumeration for shader reflection. More...
enum class  SystemValue {
  Undefined , ClipDistance , Color , CullDistance ,
  Depth , DepthGreater , DepthLess , FrontFacing ,
  InstanceID , Position , PrimitiveID , RenderTargetIndex ,
  SampleMask , SampleID , Stencil , VertexID ,
  ViewIndex , ViewportIndex
}
 Enumeration of system values for vertex input or fragment output attributes. More...
enum class  TextureType {
  Texture1D , Texture2D , Texture3D , TextureCube ,
  Texture1DArray , Texture2DArray , TextureCubeArray , Texture2DMS ,
  Texture2DMSArray
}
 Texture type enumeration. More...
enum class  TextureSwizzle : std::uint8_t {
  Zero , One , Red , Green ,
  Blue , Alpha
}
 Texture component swizzle enumeration. More...
enum class  Exception { RuntimeError , OutOfRange , BadCast , InvalidArgument }
 Enumeration of all exception classes Trap() can throw. More...
enum class  VersionStatus : std::uint8_t { Undefined , Alpha , Beta , Stable }
 Version status enumeration. More...
enum class  XRSessionState {
  Idle , Ready , Synchronized , Visible ,
  Focused , Stopping , LossPending , Exiting
}
 XR session lifecycle states reported by XRSession::GetState. More...
enum class  XRFormFactor { HeadMountedDisplay , HandheldDisplay }
 XR form factor enumeration. More...
enum class  XRViewConfiguration { Mono , Stereo }
 XR view configuration enumeration. More...
enum class  XREnvironmentBlendMode { Opaque , Additive , AlphaBlend }
 XR environment blend mode enumeration. More...

Functions

LLGL_EXPORT bool IsTypedBuffer (const BufferDescriptor &desc)
 Returns true if the buffer descriptor denotes a typed buffer, i.e. Buffer or RWBuffer in HLSL.
LLGL_EXPORT bool IsStructuredBuffer (const BufferDescriptor &desc)
 Returns true if the buffer descriptor denotes a structured buffer, i.e. StructuredBuffer, RWStructuredBuffer, AppendStructuredBuffer, or ConsumeStructuredBuffer in HLSL.
LLGL_EXPORT bool IsByteAddressBuffer (const BufferDescriptor &desc)
 Returns true if the buffer descriptor denotes a byte address buffer, i.e. ByteAddressBuffer or RWByteAddressBuffer in HLSL.
LLGL_EXPORT Extent2D GetShadingRateSize (ShadingRate shadingRate)
 Returns the dimensions of the specified shading rate.
UTF8String operator+ (const UTF8String &lhs, const UTF8String &rhs)
 Concatenates the two UTF-8 string.
template<typename TChar, typename Traits>
UTF8String operator+ (const UTF8String &lhs, const BasicStringView< TChar, Traits > &rhs)
template<typename TChar>
UTF8String operator+ (const UTF8String &lhs, const TChar *rhs)
template<typename TChar, typename Traits>
UTF8String operator+ (const BasicStringView< TChar, Traits > &lhs, const UTF8String &rhs)
template<typename TChar>
UTF8String operator+ (const TChar *lhs, const UTF8String &rhs)
 LLGL_DEFINE_STRING_COMPARE_OPERATORS (==,==)
 LLGL_DEFINE_STRING_COMPARE_OPERATORS (!=, !=)
 LLGL_DEFINE_STRING_COMPARE_OPERATORS (<, >)
 LLGL_DEFINE_STRING_COMPARE_OPERATORS (<=, >=)
 LLGL_DEFINE_STRING_COMPARE_OPERATORS (>=,<=)
LLGL_EXPORT bool operator== (const DisplayMode &lhs, const DisplayMode &rhs)
 Compares the two specified display mode descriptors on equality.
LLGL_EXPORT bool operator!= (const DisplayMode &lhs, const DisplayMode &rhs)
 Compares the two specified display mode descriptors on inequality.
LLGL_EXPORT bool CompareSWO (const DisplayMode &lhs, const DisplayMode &rhs)
 Compares the two display modes in a strict-weak-order (SWO) fashion.
LLGL_EXPORT Extent2D GetExtentRatio (const Extent2D &extent)
 Returns the ratio of the specified extent as another extent, i.e. all attributes are divided by their greatest common divisor.
LLGL_EXPORT const FormatAttributes & GetFormatAttribs (const Format format)
 Returns the attributes for the specified hardware format or a zero-initialized structure in case of an invalid argument.
LLGL_EXPORT std::uint32_t ImageFormatSize (const ImageFormat imageFormat)
 Returns the size (in number of components) of the specified image format.
LLGL_EXPORT std::size_t GetMemoryFootprint (const Format format, std::size_t numTexels)
 Returns the memory footprint (in bytes) of a texture or buffer with the specified hardware format and number of elements.
LLGL_EXPORT std::size_t GetMemoryFootprint (const ImageFormat imageFormat, const DataType dataType, std::size_t numTexels)
 Returns the memory footprint (in bytes) of an image with the specified format, data type, and number of elements.
LLGL_EXPORT bool IsCompressedFormat (const Format format)
 Returns true if the specified hardware format is a compressed format, e.g. Format::BC1UNorm, Format::BC2UNorm_sRGB, Format::BC4SNorm, etc.
LLGL_EXPORT bool IsDepthOrStencilFormat (const Format format)
 Returns true if the specified hardware format is a depth or depth-stencil format, i.e. Format::D16UNorm, Format::D24UNormS8UInt, Format::D32Float, or Format::D32FloatS8X24UInt.
LLGL_EXPORT bool IsDepthAndStencilFormat (const Format format)
 Returns true if the specified hardware format is a depth and stencil format, i.e. Format::D24UNormS8UInt or Format::D32FloatS8X24UInt.
LLGL_EXPORT bool IsDepthOrStencilFormat (const ImageFormat imageFormat)
 Returns true if the specified color format is a depth-stencil format, i.e. either ImageFormat::Depth or ImageFormat::DepthStencil.
LLGL_EXPORT bool IsDepthFormat (const Format format)
 Returns true if the specified hardware format is a depth format, i.e. Format::D16UNorm, Format::D24UNormS8UInt, Format::D32Float, or Format::D32FloatS8X24UInt.
LLGL_EXPORT bool IsStencilFormat (const Format format)
 Returns true if the specified hardware format is a stencil format, i.e. Format::D24UNormS8UInt or Format::D32FloatS8X24UInt.
LLGL_EXPORT bool IsColorFormat (const Format format)
 Returns true if the specified hardware format is a color format.
LLGL_EXPORT bool IsNormalizedFormat (const Format format)
 Returns true if the specified hardware format is a normalized format (like Format::RGBA8UNorm, Format::R8SNorm etc.).
LLGL_EXPORT bool IsIntegerFormat (const Format format)
 Returns true if the specified hardware format is a strict integer format (like Format::RGBA8UInt, Format::R8SInt etc.).
LLGL_EXPORT bool IsFloatFormat (const Format format)
 Returns true if the specified hardware format is a strict floating-point format (like Format::RGBA32Float, Format::R32Float etc.).
LLGL_EXPORT std::uint32_t DataTypeSize (const DataType dataType)
 Returns the size (in bytes) of the specified data type.
LLGL_EXPORT bool IsSIntDataType (const DataType dataType)
 Determines if the argument refers to a signed integer data type.
LLGL_EXPORT bool IsUIntDataType (const DataType dataType)
 Determines if the argument refers to an unsigned integer data type.
LLGL_EXPORT bool IsFloatDataType (const DataType dataType)
 Determines if the argument refers to a floating-pointer data type.
LLGL_EXPORT std::size_t ConvertImageBuffer (const ImageView &srcImageView, const MutableImageView &dstImageView, const Extent3D &extent, unsigned threadCount=0, bool copyUnchangedImage=false, std::uint32_t depthMask=~0u, std::uint32_t stencilMask=~0u)
 Converts the image format and data type of the source image (only uncompressed color formats).
LLGL_EXPORT std::size_t ConvertImageBuffer (const ImageView &srcImageView, const MutableImageView &dstImageView, unsigned threadCount=0, bool copyUnchangedImage=false)
 Converts the image format and data type of the source image (only uncompressed color formats).
LLGL_EXPORT DynamicByteArray ConvertImageBuffer (const ImageView &srcImageView, ImageFormat dstFormat, DataType dstDataType, const Extent3D &extent, unsigned threadCount=0)
 Converts the image format and data type of the source image (only uncompressed color formats) and returns the new generated image buffer.
LLGL_EXPORT DynamicByteArray ConvertImageBuffer (const ImageView &srcImageView, ImageFormat dstFormat, DataType dstDataType, unsigned threadCount=0)
 Converts the image format and data type of the source image (only uncompressed color formats) and returns the new generated image buffer.
LLGL_EXPORT DynamicByteArray DecompressImageBufferToRGBA8UNorm (Format compressedFormat, const ImageView &srcImageView, const Extent2D &extent, unsigned threadCount=0)
 Decompresses the specified image buffer to RGBA format with 8-bit unsigned normalized integers.
LLGL_EXPORT void CopyImageBufferRegion (const MutableImageView &dstImageView, const Offset3D &dstOffset, std::uint32_t dstRowStride, std::uint32_t dstLayerStride, const ImageView &srcImageView, const Offset3D &srcOffset, std::uint32_t srcRowStride, std::uint32_t srcLayerStride, const Extent3D &extent)
 Copies an image buffer region from the source buffer to the destination buffer.
LLGL_EXPORT DynamicByteArray GenerateImageBuffer (ImageFormat format, DataType dataType, std::size_t imageSize, const float fillColor[4])
 Generates an image buffer with the specified fill data for each pixel.
bool operator== (const BindingSlot &lhs, const BindingSlot &rhs)
 Returns true if the specified binding slots are equal, i.e. index and set are equal.
bool operator!= (const BindingSlot &lhs, const BindingSlot &rhs)
 Returns true if the specified binding slots are not equal, i.e. index and set are not equal.
LLGL_EXPORT bool IsPrimitiveTopologyPatches (const PrimitiveTopology primitiveTopology)
 Returns true if the specified primitive topology is a patch list.
LLGL_EXPORT bool IsPrimitiveTopologyStrip (const PrimitiveTopology primitiveTopology)
 Returns true if the specified primitive topology is a strip that generates a new primitive with each new vertex.
LLGL_EXPORT std::uint32_t GetPrimitiveTopologyPatchSize (const PrimitiveTopology primitiveTopology)
 Returns the number of patch control points of the specified primitive topology (in range [1, 32]), or 0 if the topology is not a patch list.
LLGL_EXPORT bool ValidateRenderingCaps (const RenderingCapabilities &presentCaps, const RenderingCapabilities &requiredCaps, const ValidateRenderingCapsFunc &callback={})
 Validates the presence of the specified required rendering capabilities.
LLGL_EXPORT bool IsShaderSourceCode (const ShaderSourceType type)
 Returns true if the specified shader source type is either ShaderSourceType::CodeString or ShaderSourceType::CodeFile.
LLGL_EXPORT bool IsShaderSourceBinary (const ShaderSourceType type)
 Returns true if the specified shader source type is either ShaderSourceType::BinaryBuffer or ShaderSourceType::BinaryFile.
LLGL_EXPORT long GetStageFlags (const ShaderType type)
 Returns the StageFlags bitmask for the specified shader type.
LLGL_EXPORT std::uint32_t NumMipLevels (std::uint32_t width, std::uint32_t height=1, std::uint32_t depth=1)
 Returns the number of MIP-map levels for a texture with the specified size.
LLGL_EXPORT std::uint32_t NumMipLevels (const TextureType type, const Extent3D &extent)
 Returns the number of MIP-map levels for the specified texture attributes.
LLGL_EXPORT std::uint32_t NumMipLevels (const TextureDescriptor &textureDesc)
 Returns the number of MIP-map levels for the specified texture descriptor.
LLGL_EXPORT std::uint32_t NumMipTexels (const TextureType type, const Extent3D &extent, std::uint32_t mipLevel)
 Returns the number of texture elements (texels) for the specified texture attributes, or zero extent if mipLevel is out of bounds (see NumMipLevels).
LLGL_EXPORT std::uint32_t NumMipTexels (const TextureType type, const Extent3D &extent, const TextureSubresource &subresource)
 Returns the number of texture elements (texels) for the specified texture subresource range.
LLGL_EXPORT std::uint32_t NumMipTexels (const TextureDescriptor &textureDesc, std::uint32_t mipLevel=~0u)
 Returns the number of texture elements (texels) for the specified texture descriptor.
LLGL_EXPORT std::uint32_t NumMipDimensions (const TextureType type)
 Returns the number of MIP-map dimensions for the specified texture type. This is either 1, 2, 3, or 0 if the input is invalid.
LLGL_EXPORT std::uint32_t NumTextureDimensions (const TextureType type)
 Returns the number of texture dimensions for the specified texture type. This is either 1, 2, 3, or 0 if the input is invalid.
LLGL_EXPORT Extent3D GetMipExtent (const TextureType type, const Extent3D &extent, std::uint32_t mipLevel)
 Returns the MIP-map extent (including array layers) for the specified texture type, or an empty extent if mipLevel is out of bounds (see NumMipLevels).
LLGL_EXPORT Extent3D GetMipExtent (const TextureDescriptor &textureDesc, std::uint32_t mipLevel=0)
 Returns the MIP-map extent (including array layers) for the specified texture descriptor.
LLGL_EXPORT std::size_t GetMemoryFootprint (const TextureType type, const Format format, const Extent3D &extent, const TextureSubresource &subresource)
 Returns the memory footprint (in bytes) of a texture subresource with the specified hardware format and extent.
LLGL_EXPORT bool IsMipMappedTexture (const TextureDescriptor &textureDesc)
 Returns true if the specified texture descriptor describes a texture with MIP-mapping enabled.
LLGL_EXPORT bool IsArrayTexture (const TextureType type)
 Returns true if the specified texture type is an array texture.
LLGL_EXPORT bool IsMultiSampleTexture (const TextureType type)
 Returns true if the specified texture type is a multi-sample texture.
LLGL_EXPORT bool IsCubeTexture (const TextureType type)
 Returns true if the specified texture type is a cube texture.
LLGL_EXPORT bool IsTextureSwizzleIdentity (const TextureSwizzleRGBA &swizzle)
 Returns true if the specified texture swizzling is equal to the identity mapping.
LLGL_EXPORT void Trap (Exception exception, const char *origin, const char *format,...)
 Primary function to trap execution from an unrecoverable state.
template<typename T>
bool IsInstanceOf (const Interface *obj)
 Returns whether the specified object is an instance of the interface specified by template parameter T.
template<typename T>
bool IsInstanceOf (const Interface &obj)
 Const-reference version of IsInstanceOf.
template<typename T>
const T * CastTo (const Interface *obj)
 Returns a constant pointer to this instance of type const T* if it implements the specified interface.
template<typename T>
T * CastTo (Interface *obj)
 Returns a pointer to this instance of type T* if it implements the specified interface.
template<typename T>
const T & CastTo (const Interface &obj)
 Returns a constant reference to this instance of type const T& if it implements the specified interface.
template<typename T>
T & CastTo (Interface &obj)
 Returns a reference to this instance of type T& if it implements the specified interface.
LLGL_EXPORT Extent2D operator+ (const Extent2D &lhs, const Extent2D &rhs)
 Returns the sum of left hand side extent 'lhs' and the right hand side extent 'rhs'.
LLGL_EXPORT Extent2D operator- (const Extent2D &lhs, const Extent2D &rhs)
 Returns the subtraction of left hand side extent 'lhs' and the right hand side extent 'rhs'.
LLGL_EXPORT Extent3D operator+ (const Extent3D &lhs, const Extent3D &rhs)
 Returns the sum of left hand side extent 'lhs' and the right hand side extent 'rhs'.
LLGL_EXPORT Extent3D operator- (const Extent3D &lhs, const Extent3D &rhs)
 Returns the subtraction of left hand side extent 'lhs' and the right hand side extent 'rhs'.
LLGL_EXPORT Offset2D operator+ (const Offset2D &lhs, const Offset2D &rhs)
 Returns the sum of left hand side offset 'lhs' and the right hand side offset 'rhs'.
LLGL_EXPORT Offset2D operator- (const Offset2D &lhs, const Offset2D &rhs)
 Returns the subtraction of left hand side offset 'lhs' and the right hand side offset 'rhs'.
LLGL_EXPORT Offset3D operator+ (const Offset3D &lhs, const Offset3D &rhs)
 Returns the sum of left hand side offset 'lhs' and the right hand side offset 'rhs'.
LLGL_EXPORT Offset3D operator- (const Offset3D &lhs, const Offset3D &rhs)
 Returns the subtraction of left hand side offset 'lhs' and the right hand side offset 'rhs'.
bool operator== (const Offset2D &lhs, const Offset2D &rhs)
 Returns true if the left hand side offset 'lhs' is equal to the right hand side offset 'rhs'.
bool operator!= (const Offset2D &lhs, const Offset2D &rhs)
 Returns true if the left hand side offset 'lhs' is unequal to the right hand side offset 'rhs'.
bool operator== (const Offset3D &lhs, const Offset3D &rhs)
 Returns true if the left hand side offset 'lhs' is equal to the right hand side offset 'rhs'.
bool operator!= (const Offset3D &lhs, const Offset3D &rhs)
 Returns true if the left hand side offset 'lhs' is unequal to the right hand side offset 'rhs'.
bool operator== (const Extent2D &lhs, const Extent2D &rhs)
 Returns true if the left hand side extent 'lhs' is equal to the right hand side extent 'rhs'.
bool operator!= (const Extent2D &lhs, const Extent2D &rhs)
 Returns true if the left hand side extent 'lhs' is unequal to the right hand side extent 'rhs'.
bool operator== (const Extent3D &lhs, const Extent3D &rhs)
 Returns true if the left hand side extent 'lhs' is equal to the right hand side extent 'rhs'.
bool operator!= (const Extent3D &lhs, const Extent3D &rhs)
 Returns true if the left hand side extent 'lhs' is unequal to the right hand side extent 'rhs'.
template<typename T>
T MaxColorValue ()
 Returns the maximal color value for the data type T. By default 1.
template<>
std::uint8_t MaxColorValue< std::uint8_t > ()
 Specialized version. For unsigned 8-bit integers, the return value is 255.
template<>
bool MaxColorValue< bool > ()
 Specialized version. For booleans, the return value is true.
template<typename Dst, typename Src>
Dst CastColorValue (const Src &value)
 Casts the specified color value and transforms it from the source data type range to the destination data type range.
template<>
bool CastColorValue< bool, bool > (const bool &value)
 Specialized template which merely passes the input value as output.
template<>
float CastColorValue< float, float > (const float &value)
 Specialized template which merely passes the input value as output.
template<>
double CastColorValue< double, double > (const double &value)
 Specialized template which merely passes the input value as output.
template<>
std::uint8_t CastColorValue< std::uint8_t, std::uint8_t > (const std::uint8_t &value)
 Specialized template which merely passes the input value as output.
template<typename T, std::size_t N>
Color< T, N > operator+ (const Color< T, N > &lhs, const Color< T, N > &rhs)
template<typename T, std::size_t N>
Color< T, N > operator- (const Color< T, N > &lhs, const Color< T, N > &rhs)
template<typename T, std::size_t N>
Color< T, N > operator* (const Color< T, N > &lhs, const Color< T, N > &rhs)
template<typename T, std::size_t N>
Color< T, N > operator/ (const Color< T, N > &lhs, const Color< T, N > &rhs)
template<typename T, std::size_t N>
Color< T, N > operator* (const Color< T, N > &lhs, const T &rhs)
template<typename T, std::size_t N>
Color< T, N > operator* (const T &lhs, const Color< T, N > &rhs)
template<typename T, std::size_t N>
Color< T, N > operator/ (const Color< T, N > &lhs, const T &rhs)
template<typename T, std::size_t N>
Color< T, N > operator/ (const T &lhs, const Color< T, N > &rhs)
template<typename T, std::size_t N>
bool operator== (const Color< T, N > &lhs, const Color< T, N > &rhs)
 Returns true if all components of both colors 'lhs' and 'rhs' are equal.
template<typename T, std::size_t N>
bool operator!= (const Color< T, N > &lhs, const Color< T, N > &rhs)
 Returns true if any component of both colors 'lhs' and 'rhs' are unequal.
LLGL_EXPORT ParseContext Parse (const char *format,...)
 Returns a parse context for the input source code.
LLGL_EXPORT ParseContext Parse (const StringView &s)
 Returns a parse context for the input source code.
LLGL_EXPORT const char * ToString (const ShaderType val)
 Returns a string representation for the specified ShaderType value, or null if the input type is invalid.
LLGL_EXPORT const char * ToString (const ErrorType val)
 Returns a string representation for the specified ErrorType value, or null if the input type is invalid.
LLGL_EXPORT const char * ToString (const WarningType val)
 Returns a string representation for the specified WarningType value, or null if the input type is invalid.
LLGL_EXPORT const char * ToString (const ShadingLanguage val)
 Returns a string representation for the specified ShadingLanguage value, or null if the input type is invalid.
LLGL_EXPORT const char * ToString (const Format val)
 Returns a string representation for the specified Format value, or null if the input type is invalid.
LLGL_EXPORT const char * ToString (const ImageFormat val)
 Returns a string representation for the specified ImageFormat value, or null if the input type is invalid.
LLGL_EXPORT const char * ToString (const TextureType val)
 Returns a string representation for the specified TextureType value, or null if the input type is invalid.
LLGL_EXPORT const char * ToString (const BlendOp val)
 Returns a string representation for the specified BlendOp value, or null if the input type is invalid.
LLGL_EXPORT const char * ToString (const ResourceType val)
 Returns a string representation for the specified ResourceType value, or null if the input type is invalid.
LLGL_EXPORT const char * ToString (const SystemValue val)
 Returns a string representation for the specified SystemValue value, or null if the input type is invalid.
LLGL_EXPORT const char * ToString (const QueryType val)
 Returns a string representation for the specified QueryType value, or null if the input type is invalid.
LLGL_EXPORT TextureDescriptor Texture1DDesc (Format format, std::uint32_t width, long bindFlags=(BindFlags::ColorAttachment|BindFlags::Sampled))
 Returns a TextureDescriptor structure with the TextureType::Texture1D type.
LLGL_EXPORT TextureDescriptor Texture2DDesc (Format format, std::uint32_t width, std::uint32_t height, long bindFlags=(BindFlags::ColorAttachment|BindFlags::Sampled))
 Returns a TextureDescriptor structure with the TextureType::Texture2D type.
LLGL_EXPORT TextureDescriptor Texture3DDesc (Format format, std::uint32_t width, std::uint32_t height, std::uint32_t depth, long bindFlags=(BindFlags::ColorAttachment|BindFlags::Sampled))
 Returns a TextureDescriptor structure with the TextureType::Texture3D type.
LLGL_EXPORT TextureDescriptor TextureCubeDesc (Format format, std::uint32_t width, std::uint32_t height, long bindFlags=(BindFlags::ColorAttachment|BindFlags::Sampled))
 Returns a TextureDescriptor structure with the TextureType::TextureCube type.
LLGL_EXPORT TextureDescriptor Texture1DArrayDesc (Format format, std::uint32_t width, std::uint32_t arrayLayers, long bindFlags=(BindFlags::ColorAttachment|BindFlags::Sampled))
 Returns a TextureDescriptor structure with the TextureType::Texture1DArray type.
LLGL_EXPORT TextureDescriptor Texture2DArrayDesc (Format format, std::uint32_t width, std::uint32_t height, std::uint32_t arrayLayers, long bindFlags=(BindFlags::ColorAttachment|BindFlags::Sampled))
 Returns a TextureDescriptor structure with the TextureType::Texture2DArray type.
LLGL_EXPORT TextureDescriptor TextureCubeArrayDesc (Format format, std::uint32_t width, std::uint32_t height, std::uint32_t arrayLayers, long bindFlags=(BindFlags::ColorAttachment|BindFlags::Sampled))
 Returns a TextureDescriptor structure with the TextureType::TextureCubeArray type.
LLGL_EXPORT TextureDescriptor Texture2DMSDesc (Format format, std::uint32_t width, std::uint32_t height, std::uint32_t samples, long bindFlags=(BindFlags::ColorAttachment|BindFlags::Sampled))
 Returns a TextureDescriptor structure with the TextureType::Texture2DMS type.
LLGL_EXPORT TextureDescriptor Texture2DMSArrayDesc (Format format, std::uint32_t width, std::uint32_t height, std::uint32_t arrayLayers, std::uint32_t samples, long bindFlags=(BindFlags::ColorAttachment|BindFlags::Sampled))
 Returns a TextureDescriptor structure with the TextureType::Texture2DMSArray type.
LLGL_EXPORT BufferDescriptor VertexBufferDesc (std::uint64_t size, std::uint32_t stride=0, long cpuAccessFlags=0)
 Returns a BufferDescriptor structure for a vertex buffer.
BufferDescriptor VertexBufferDesc (std::uint64_t size, const VertexFormat &vertexFormat, long cpuAccessFlags=0)
LLGL_EXPORT BufferDescriptor IndexBufferDesc (std::uint64_t size, const Format format, long cpuAccessFlags=0)
 Returns a BufferDescriptor structure for an index buffer.
LLGL_EXPORT BufferDescriptor ConstantBufferDesc (std::uint64_t size, long cpuAccessFlags=0)
 Returns a BufferDescriptor structure for a constant buffer.
LLGL_EXPORT BufferDescriptor StorageBufferDesc (std::uint64_t size, const StorageBufferType storageType, std::uint32_t stride, long cpuAccessFlags=CPUAccessFlags::ReadWrite)
 Returns a BufferDescriptor structure for a storage buffer.
LLGL_EXPORT ShaderDescriptor ShaderDescFromFile (const ShaderType type, const char *filename, const char *entryPoint=nullptr, const char *profile=nullptr, long flags=0)
 Returns a ShaderDescriptor structure.
LLGL_EXPORT PipelineLayoutDescriptor PipelineLayoutDesc (const ShaderReflection &reflection)
 Converts the specified shader reflection descriptor into a pipeline layout descriptor.
LLGL_EXPORT RenderPassDescriptor RenderPassDesc (const RenderTargetDescriptor &renderTargetDesc)
 Converts the specified render target descriptor into a render pass descriptor with default settings.
LLGL_EXPORT int Compare (VersionInfo lhs, VersionInfo rhs)
LLGL_EXPORT const char * ToString (VersionStatus status)
 Returns a string representation of the specified version status or null if undefined (VersionStatus::Undefined).
LLGL_EXPORT const char * ToString (VersionInfo info)
 Returns a string representation of the specified version.
LLGL_EXPORT const char * ToString (VersionInfo info, std::size_t bufferSize, char *buffer, std::size_t *outMinBufferSize=nullptr)
 Returns a string representation of the specified version using a custom buffer.
LLGL_EXPORT VersionInfo GetLLGLVersion ()
 Returns the version information of this library.
bool operator== (VersionInfo lhs, VersionInfo rhs)
 Returns true if both VersionInfo arguments are equal.
bool operator!= (VersionInfo lhs, VersionInfo rhs)
 Returns true if both VersionInfo arguments are not equal.
bool operator< (VersionInfo lhs, VersionInfo rhs)
 Returns true if lhs describes an earlier version than rhs.
bool operator<= (VersionInfo lhs, VersionInfo rhs)
 Returns true if lhs describes an earlier or equal version as rhs.
bool operator> (VersionInfo lhs, VersionInfo rhs)
 Returns true if lhs describes a newer version than rhs.
bool operator>= (VersionInfo lhs, VersionInfo rhs)
 Returns true if lhs describes a newer or equal version as rhs.
LLGL_EXPORT bool operator== (const VertexAttribute &lhs, const VertexAttribute &rhs)
 Compares the two VertexAttribute types for equality (including their names and all other members).
LLGL_EXPORT bool operator!= (const VertexAttribute &lhs, const VertexAttribute &rhs)
 Compares the two VertexAttribute types for inequality (including their names and all other members).

Typedef Documentation

◆ ColorRGB

template<typename T>
using LLGL::ColorRGB = Color<T, 3>

◆ ColorRGBA

template<typename T>
using LLGL::ColorRGBA = Color<T, 4>

◆ ColorRGBAb

using LLGL::ColorRGBAb = ColorRGBA<bool>

◆ ColorRGBAd

using LLGL::ColorRGBAd = ColorRGBA<double>

◆ ColorRGBAf

using LLGL::ColorRGBAf = ColorRGBA<float>

◆ ColorRGBAub

using LLGL::ColorRGBAub = ColorRGBA<std::uint8_t>

◆ ColorRGBb

using LLGL::ColorRGBb = ColorRGB<bool>

◆ ColorRGBd

using LLGL::ColorRGBd = ColorRGB<double>

◆ ColorRGBf

using LLGL::ColorRGBf = ColorRGB<float>

◆ ColorRGBub

using LLGL::ColorRGBub = ColorRGB<std::uint8_t>

◆ DynamicByteArray

Common type for dynamic byte arrays.

Remarks
This is primarily used for image data conversion. It only manages a pointer of dynamically allocated memory and its size (in number of elements).
See also
ConvertImageBuffer
DecompressImageBufferToRGBA8UNorm
GenerateImageBuffer

◆ DynamicVector

template<typename T, typename Allocator = std::allocator<T>, typename GrowStrategy = GrowStrategyAddHalf>
using LLGL::DynamicVector = SmallVector<T, 0, Allocator, GrowStrategy>

Template alias to a SmallVector with zero local capacity. This is intended as alternative to std::vector in the public interface.

Remarks
The SmallVector template also allows a local capacity of 0, which effectively disables the local storage and only performs dynamic allocations.
See also
SmallVector

◆ RenderSystemPtr

Unique pointer type for the RenderSystem interface with a custom deleter.

See also
RenderSystem
RenderSystem::Load
RenderSystem::Unload
RenderSystemDeleter

◆ StringLiteral

ANSI character string literal (char).

◆ StringView

ANSI character string view (char).

◆ WStringLiteral

Wide character string literal (wchar_t).

◆ WStringView

Wide character string view (wchar_t).

◆ XRSystemPtr

using LLGL::XRSystemPtr = std::unique_ptr<XRSystem>

Unique pointer type for the XRSystem interface.

See also
XRSystem::Load
XRSystem::Unload

Enumeration Type Documentation

◆ AttachmentLoadOp

enum class LLGL::AttachmentLoadOp
strong

Enumeration for render pass attachment load operations.

See also
AttachmentFormatDescriptor
Enumerator
Undefined 

We don't care about the previous content of the respective render target attachment.

Load 

Loads the previous content of the respective render target attachment.

Clear 

Clear the previous content of the respective render target attachment.

Remarks
The clear value used for this load operation is specified at the CommandBuffer::BeginRenderPass function.
See also
CommandBuffer::BeginRenderPass

◆ AttachmentStoreOp

enum class LLGL::AttachmentStoreOp
strong

Enumeration for render pass attachment store operations.

See also
AttachmentFormatDescriptor
Enumerator
Undefined 

We don't care about the outcome of the respective render target attachment.

Remarks
Can be used, for example, if we only need the depth buffer for the depth test, but nothing is written to it.
Store 

Stores the outcome in the respective render target attachment.

◆ BlendArithmetic

enum class LLGL::BlendArithmetic
strong

Blending arithmetic operations enumeration.

See also
BlendTargetDescriptor::colorArithmetic
BlendTargetDescriptor::alphaArithmetic
Enumerator
Add 

Add source 1 and source 2. This is the default for all renderers.

Subtract 

Subtract source 1 from source 2.

RevSubtract 

Subtract source 2 from source 1.

Min 

Find the minimum of source 1 and source 2.

Max 

Find the maximum of source 1 and source 2.

◆ BlendOp

enum class LLGL::BlendOp
strong

Blending operations enumeration.

See also
BlendTargetDescriptor
Enumerator
Zero 

Data source is the color black (0, 0, 0, 0).

One 

Data source is the color white (1, 1, 1, 1).

SrcColor 

Data source is color data (RGB) from a fragment shader.

Remarks
This is a color-only blend operation.
InvSrcColor 

Data source is inverted color data (1 - RGB) from a fragment shader.

Remarks
This is a color-only blend operation.
SrcAlpha 

Data source is alpha data (A) from a fragment shader.

InvSrcAlpha 

Data source is inverted alpha data (1 - A) from a fragment shader.

DstColor 

Data source is color data (RGB) from a framebuffer.

Remarks
This is a color-only blend operation.
InvDstColor 

Data source is inverted color data (1 - RGB) from a framebuffer.

Remarks
This is a color-only blend operation.
DstAlpha 

Data source is alpha data (A) from a framebuffer.

InvDstAlpha 

Data source is inverted alpha data (1 - A) from a framebuffer.

SrcAlphaSaturate 

Data source is alpha data (A) from a fragment shader which is clamped to 1 or less.

BlendFactor 

Data source is the blend factor (RGBA) from the blend state.

See also
CommandBuffer::SetBlendFactor
InvBlendFactor 

Data source is the inverted blend factor (1 - RGBA) from the blend state.

See also
CommandBuffer::SetBlendFactor
Src1Color 

Data sources are both color data (RGB) from a fragment shader with dual-source color blending.

Remarks
This is a color-only blend operation.
InvSrc1Color 

Data sources are both inverted color data (1 - RGB) from a fragment shader with dual-source color blending.

Remarks
This is a color-only blend operation.
Src1Alpha 

Data sources are both alpha data (A) from a fragment shader with dual-source color blending.

InvSrc1Alpha 

Data sources are both inverted alpha data (1 - A) from a fragment shader with dual-source color blending.

◆ ClippingRange

enum class LLGL::ClippingRange
strong

Clipping depth range enumeration.

See also
RenderingCapabilities::clippingRange
Enumerator
MinusOneToOne 

Specifies the clipping depth range [-1, 1].

Note
Native clipping depth range in: OpenGL.
ZeroToOne 

Specifies the clipping depth range [0, 1].

Note
Native clipping depth range in: Direct3D 11, Direct3D 12, Vulkan, Metal.

◆ CompareOp

enum class LLGL::CompareOp
strong

Compare operations enumeration.

Remarks
This operation is used for depth tests, stencil tests, and texture sample comparisons.
See also
DepthDescriptor::compareOp
StencilFaceDescriptor::compareOp
SamplerDescriptor::compareOp
Enumerator
NeverPass 

Comparison never passes.

Less 

Comparison passes if the source data is less than the destination data.

Equal 

Comparison passes if the source data is equal to the right-hand-side.

LessEqual 

Comparison passes if the source data is less than or equal to the right-hand-side.

Greater 

Comparison passes if the source data is greater than the right-hand-side.

NotEqual 

Comparison passes if the source data is not equal to the right-hand-side.

GreaterEqual 

Comparison passes if the source data is greater than or equal to the right-hand-side.

AlwaysPass 

Comparison always passes.

◆ CPUAccess

enum class LLGL::CPUAccess
strong

Classifications of CPU access to mapped resources.

See also
RenderSystem::MapBuffer
CPUAccessFlags
Enumerator
ReadOnly 

CPU read access to a mapped resource.

Remarks
If this is used for RenderSystem::MapBuffer, the respective buffer must have been created with the CPUAccessFlags::Read access flag.
WriteOnly 

CPU write access to a mapped resource.

Remarks
If this is used for RenderSystem::MapBuffer, the respective buffer must have been created with the CPUAccessFlags::Write access flag.
WriteDiscard 

CPU write access to a mapped resource, where the previous content can be discarded.

Remarks
If this is used for RenderSystem::MapBuffer, the respective buffer must have been created with the CPUAccessFlags::Write access flag.
Note
Whether the previous content is discarded depends on the rendering API.
ReadWrite 

CPU read and write access to a mapped resource.

Remarks
If this is used for RenderSystem::MapBuffer, the respective buffer must have been created with both the CPUAccessFlags::Read and the CPUAccessFlags::Write access flags.

◆ CullMode

enum class LLGL::CullMode
strong

Polygon culling modes enumeration.

See also
RasterizerDescriptor::cullMode
Enumerator
Disabled 

No culling.

Front 

Front face culling.

Back 

Back face culling.

◆ DataType

enum class LLGL::DataType
strong

Data types enumeration used for CPU side operations.

Remarks
The counterpart of this enumeration for GPU side operations is LLGL::Format.
See also
ImageView::dataType
MutableImageView::dataType
Enumerator
Undefined 

Undefined data type.

Int8 

8-bit signed integer (char).

UInt8 

8-bit unsigned integer (unsigned char).

Int16 

16-bit signed integer (short).

UInt16 

16-bit unsigned integer (unsigned short).

Int32 

32-bit signed integer (int).

UInt32 

32-bit unsigned integer (unsigned int).

Float16 

16-bit floating-point (half).

Float32 

32-bit floating-point (float).

Float64 

64-bit real type (double).

◆ ErrorType

enum class LLGL::ErrorType
strong

Rendering debugger error types enumeration.

Enumerator
InvalidArgument 

Error due to invalid argument (e.g. creating a graphics pipeline without a valid shader program being specified).

InvalidState 

Error due to invalid render state (e.g. rendering without a valid graphics pipeline).

UnsupportedFeature 

Error due to use of unsupported feature (e.g. drawing with hardware instancing when the renderer hardware does not support it).

UndefinedBehavior 

Error due to arguments that cause undefined behavior.

◆ EventAction

enum class LLGL::EventAction
strong

Motion event action enumeration.

See also
Canvas::EventListener::OnPanGesture
Canvas::PostPanGesture
Enumerator
Began 

Action when a gesture began.

Changed 

Action when a gesture changed/moved.

Ended 

Action when a gesture ended.

◆ Exception

enum class LLGL::Exception
strong

Enumeration of all exception classes Trap() can throw.

Remarks
LLGL only throws exceptions if it was built with LLGL_ENABLE_EXCEPTIONS.
See also
Trap
Enumerator
RuntimeError 

Refers to std::runtime_error.

OutOfRange 

Refers to std::out_of_range.

BadCast 

Refers to std::bad_cast.

InvalidArgument 

Refers to std::invalid_argument.

◆ Format

enum class LLGL::Format
strong

Texture and vertex attribute format enumeration used for GPU side operations.

Remarks
The counterpart of this enumeration for CPU side operations are LLGL::ImageFormat and LLGL::DataType.
Packed color formats are stored from least significant bit (LSB) to most significant bit (MSB), i.e. for the Format::RGB10A2UNorm the bit pattern is A[31:30], B[29:20], G[19:10], R[9:0] for instance.
The following table illustrates the bit-size for each component of all ordinary and packed color formats (depth-stencil and compressed formats excluded) with the following notation:
  • n denotes unsigned normalized formats (UNorm)
  • s denotes signed normalized formats (SNorm)
  • u denotes unsigned integer formats (UInt)
  • i denotes signed integer formats (SInt)
  • f denotes floating-point formats (Float)
Format Bits Red Green Blue Alpha Shared
Format::A8UNorm 8 n8
Format::R8UNorm 8 n8
Format::R8SNorm 8 s8
Format::R8UInt 8 u8
Format::R8SInt 8 i8
Format::R16UNorm 16 n16
Format::R16SNorm 16 s16
Format::R16UInt 16 u16
Format::R16SInt 16 i16
Format::R16Float 16 f16
Format::R32UInt 32 u32
Format::R32SInt 32 i32
Format::R32Float 32 f32
Format::R64Float 64 f64
Format::RG8UNorm 16 n8 n8
Format::RG8SNorm 16 s8 s8
Format::RG8UInt 16 u8 u8
Format::RG8SInt 16 i8 i8
Format::RG16UNorm 32 n16 n16
Format::RG16SNorm 32 s16 s16
Format::RG16UInt 32 u16 u16
Format::RG16SInt 32 i16 i16
Format::RG16Float 32 f16 f16
Format::RG32UInt 64 u32 u32
Format::RG32SInt 64 i32 i32
Format::RG32Float 64 f32 f32
Format::RG64Float 128 f64 f64
Format::RGB8UNorm 24 n8 n8 n8
Format::RGB8UNorm_sRGB 24 n8 n8 n8
Format::RGB8SNorm 24 s8 s8 s8
Format::RGB8UInt 24 u8 u8 u8
Format::RGB8SInt 24 i8 i8 i8
Format::RGB16UNorm 48 n16 n16 n16
Format::RGB16SNorm 48 s16 s16 s16
Format::RGB16UInt 48 u16 u16 u16
Format::RGB16SInt 48 i16 i16 i16
Format::RGB16Float 48 f16 f16 f16
Format::RGB32UInt 96 u32 u32 u32
Format::RGB32SInt 96 i32 i32 i32
Format::RGB32Float 96 f32 f32 f32
Format::RGB64Float 192 f64 f64 f64
Format::RGBA8UNorm 32 n8 n8 n8 n8
Format::RGBA8UNorm_sRGB 32 n8 n8 n8 n8
Format::RGBA8SNorm 32 s8 s8 s8 s8
Format::RGBA8UInt 32 u8 u8 u8 u8
Format::RGBA8SInt 32 i8 i8 i8 i8
Format::RGBA16UNorm 64 n16 n16 n16 n16
Format::RGBA16SNorm 64 s16 s16 s16 s16
Format::RGBA16UInt 64 u16 u16 u16 u16
Format::RGBA16SInt 64 i16 i16 i16 i16
Format::RGBA16Float 64 f16 f16 f16 f16
Format::RGBA32UInt 128 u32 u32 u32 u32
Format::RGBA32SInt 128 i32 i32 i32 i32
Format::RGBA32Float 128 f32 f32 f32 f32
Format::RGBA64Float 256 f64 f64 f64 f64
Format::BGRA8UNorm 32 n8 n8 n8 n8
Format::BGRA8UNorm_sRGB 32 n8 n8 n8 n8
Format::BGRA8SNorm 32 s8 s8 s8 s8
Format::BGRA8UInt 32 u8 u8 u8 u8
Format::BGRA8SInt 32 i8 i8 i8 i8
Format::RGB10A2UNorm 32 n10 n10 n10 n2
Format::RGB10A2UInt 32 u10 u10 u10 u2
Format::RG11B10Float 32 f11 f11 f10
Format::RGB9E5Float 32 9 9 9 5
Format::BGR5A1UNorm 16 n5 n5 n5 n1
See also
TextureDescriptor::format
VertexAttribute::format
RenderingCapabilities::textureFormats
OpenGL counterpart: https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glTexImage1D.xhtml#id-1.6.14.1
Vulkan counterpart VkFormat: https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkFormat.html
Direct3D counterpart DXGI_FORMAT: https://msdn.microsoft.com/en-us/library/windows/desktop/bb173059(v=vs.85).aspx
Metal counterpart for textures MTLPixelFormat: https://developer.apple.com/documentation/metal/mtlpixelformat
Metal counterpart for vertices MTLVertexFormat: https://developer.apple.com/documentation/metal/mtlvertexformat
Enumerator
Undefined 

Undefined format.

A8UNorm 

Alpha channel format: alpha 8-bit normalized unsigned integer component.

R8UNorm 

Ordinary color format: red 8-bit normalized unsigned integer component.

R8SNorm 

Ordinary color format: red 8-bit normalized signed integer component.

R8UInt 

Ordinary color format: red 8-bit unsigned integer component.

R8SInt 

Ordinary color format: red 8-bit signed integer component.

R16UNorm 

Ordinary color format: red 16-bit normalized unsigned integer component.

R16SNorm 

Ordinary color format: red 16-bit normalized signed integer component.

R16UInt 

Ordinary color format: red 16-bit unsigned integer component.

R16SInt 

Ordinary color format: red 16-bit signed integer component.

R16Float 

Ordinary color format: red 16-bit floating point component.

R32UInt 

Ordinary color format: red 32-bit unsigned integer component.

R32SInt 

Ordinary color format: red 32-bit signed integer component.

R32Float 

Ordinary color format: red 32-bit floating point component.

R64Float 

Ordinary color format: red 64-bit floating point component.

Note
Only supported with: Vulkan.
RG8UNorm 

Ordinary color format: red, green 8-bit normalized unsigned integer components.

RG8SNorm 

Ordinary color format: red, green 8-bit normalized signed integer components.

RG8UInt 

Ordinary color format: red, green 8-bit unsigned integer components.

RG8SInt 

Ordinary color format: red, green 8-bit signed integer components.

RG16UNorm 

Ordinary color format: red, green 16-bit normalized unsigned integer components.

RG16SNorm 

Ordinary color format: red, green 16-bit normalized signed integer components.

RG16UInt 

Ordinary color format: red, green 16-bit unsigned integer components.

RG16SInt 

Ordinary color format: red, green 16-bit signed integer components.

RG16Float 

Ordinary color format: red, green 16-bit floating point components.

RG32UInt 

Ordinary color format: red, green 32-bit unsigned integer components.

RG32SInt 

Ordinary color format: red, green 32-bit signed integer components.

RG32Float 

Ordinary color format: red, green 32-bit floating point components.

RG64Float 

Ordinary color format: red, green 64-bit floating point components.

Note
Only supported with: Vulkan.
RGB8UNorm 

Ordinary color format: red, green, blue 8-bit normalized unsigned integer components.

Note
Only supported with: OpenGL, Vulkan.
RGB8UNorm_sRGB 

Ordinary color format: red, green, blue 8-bit normalized unsigned integer components in non-linear sRGB color space.

Note
Only supported with: OpenGL, Vulkan.
RGB8SNorm 

Ordinary color format: red, green, blue 8-bit normalized signed integer components.

Note
Only supported with: OpenGL, Vulkan.
RGB8UInt 

Ordinary color format: red, green, blue 8-bit unsigned integer components.

Note
Only supported with: OpenGL, Vulkan.
RGB8SInt 

Ordinary color format: red, green, blue 8-bit signed integer components.

Note
Only supported with: OpenGL, Vulkan.
RGB16UNorm 

Ordinary color format: red, green, blue 16-bit normalized unsigned integer components.

Note
Only supported with: OpenGL, Vulkan.
RGB16SNorm 

Ordinary color format: red, green, blue 16-bit normalized signed integer components.

Note
Only supported with: OpenGL, Vulkan.
RGB16UInt 

Ordinary color format: red, green, blue 16-bit unsigned integer components.

Note
Only supported with: OpenGL, Vulkan.
RGB16SInt 

Ordinary color format: red, green, blue 16-bit signed integer components.

Note
Only supported with: OpenGL, Vulkan.
RGB16Float 

Ordinary color format: red, green, blue 16-bit floating point components.

Note
Only supported with: OpenGL, Vulkan.
RGB32UInt 

Ordinary color format: red, green, blue 32-bit unsigned integer components.

Note
As texture format only supported with: OpenGL, Vulkan, Direct3D 11, Direct3D 12.
RGB32SInt 

Ordinary color format: red, green, blue 32-bit signed integer components.

Note
As texture format only supported with: OpenGL, Vulkan, Direct3D 11, Direct3D 12.
RGB32Float 

Ordinary color format: red, green, blue 32-bit floating point components.

Note
As texture format only supported with: OpenGL, Vulkan, Direct3D 11, Direct3D 12.
RGB64Float 

Ordinary color format: red, green, blue 64-bit floating point components.

Note
Only supported with: Vulkan.
RGBA8UNorm 

Ordinary color format: red, green, blue, alpha 8-bit normalized unsigned integer components.

RGBA8UNorm_sRGB 

Ordinary color format: red, green, blue, alpha 8-bit normalized unsigned integer components in non-linear sRGB color space.

RGBA8SNorm 

Ordinary color format: red, green, blue, alpha 8-bit normalized signed integer components.

RGBA8UInt 

Ordinary color format: red, green, blue, alpha 8-bit unsigned integer components.

RGBA8SInt 

Ordinary color format: red, green, blue, alpha 8-bit signed integer components.

RGBA16UNorm 

Ordinary color format: red, green, blue, alpha 16-bit normalized unsigned integer components.

RGBA16SNorm 

Ordinary color format: red, green, blue, alpha 16-bit normalized signed integer components.

RGBA16UInt 

Ordinary color format: red, green, blue, alpha 16-bit unsigned integer components.

RGBA16SInt 

Ordinary color format: red, green, blue, alpha 16-bit signed integer components.

RGBA16Float 

Ordinary color format: red, green, blue, alpha 16-bit floating point components.

RGBA32UInt 

Ordinary color format: red, green, blue, alpha 32-bit unsigned integer components.

RGBA32SInt 

Ordinary color format: red, green, blue, alpha 32-bit signed integer components.

RGBA32Float 

Ordinary color format: red, green, blue, alpha 32-bit floating point components.

RGBA64Float 

Ordinary color format: red, green, blue, alpha 64-bit floating point components.

Note
Only supported with: Vulkan.
BGRA8UNorm 

Ordinary color format: blue, green, red, alpha 8-bit normalized unsigned integer components.

BGRA8UNorm_sRGB 

Ordinary color format: blue, green, red, alpha 8-bit normalized unsigned integer components in non-linear sRGB color space.

BGRA8SNorm 

Ordinary color format: blue, green, red, alpha 8-bit normalized signed integer components.

Note
Only supported with: Vulkan.
BGRA8UInt 

Ordinary color format: blue, green, red, alpha 8-bit unsigned integer components.

Note
Only supported with: Vulkan.
BGRA8SInt 

Ordinary color format: blue, green, red, alpha 8-bit signed integer components.

Note
Only supported with: Vulkan.
RGB10A2UNorm 

Packed color format: red, green, blue 10-bit and alpha 2-bit normalized unsigned integer components.

RGB10A2UInt 

Packed color format: red, green, blue 10-bit and alpha 2-bit unsigned integer components.

RG11B10Float 

Packed color format: red, green 11-bit and blue 10-bit unsigned floating point, i.e. 6-bit mantissa for red and green, 5-bit mantissa for blue, and 5-bit exponent for all components.

RGB9E5Float 

Packed color format: red, green, blue 9-bit unsigned floating-point with shared 5-bit exponent, i.e. 9-bit mantissa for each component and one 5-bit exponent for all components.

BGR5A1UNorm 

Packed color format: blue, green, red 5-bit and alpha 1-bit normalized unsigned integer components.

Note
Only supported with: OpenGL, Vulkan, Direct3D 11.1, Direct3D 12, Metal.
D16UNorm 

Depth-stencil format: depth 16-bit normalized unsigned integer component.

D24UNormS8UInt 

Depth-stencil format: depth 24-bit normalized unsigned integer component, and 8-bit unsigned integer stencil component.

D32Float 

Depth-stencil format: depth 32-bit floating point component.

D32FloatS8X24UInt 

Depth-stencil format: depth 32-bit floating point component, and 8-bit unsigned integer stencil components (where the remaining 24 bits are unused).

BC1UNorm 

Compressed color format: S3TC BC1 compressed RGBA with normalized unsigned integer components in 64-bit per 4x4 block.

BC1UNorm_sRGB 

Compressed color format: S3TC BC1 compressed RGBA with normalized unsigned integer components in 64-bit per 4x4 block in non-linear sRGB color space.

BC2UNorm 

Compressed color format: S3TC BC2 compressed RGBA with normalized unsigned integer components in 128-bit per 4x4 block.

BC2UNorm_sRGB 

Compressed color format: S3TC BC2 compressed RGBA with normalized unsigned integer components in 128-bit per 4x4 block in non-linear sRGB color space.

BC3UNorm 

Compressed color format: S3TC BC3 compressed RGBA with normalized unsigned integer components in 128-bit per 4x4 block.

BC3UNorm_sRGB 

Compressed color format: S3TC BC3 compressed RGBA with normalized unsigned integer components in 128-bit per 4x4 block in non-linear sRGB color space.

BC4UNorm 

Compressed color format: S3TC BC4 compressed red channel with normalized unsigned integer component in 64-bit per 4x4 block.

BC4SNorm 

Compressed color format: S3TC BC4 compressed red channel with normalized signed integer component 64-bit per 4x4 block.

BC5UNorm 

Compressed color format: S3TC BC5 compressed red and green channels with normalized unsigned integer components in 64-bit per 4x4 block.

BC5SNorm 

Compressed color format: S3TC BC5 compressed red and green channels with normalized signed integer components in 128-bit per 4x4 block.

BC6HUFloat 

Compressed color format: BPTC BC6H compressed RGB for high-dynamic range (HDR) with unsigned 16-bit floating-point components in 128-bit per 4x4 block.

BC6HSFloat 

Compressed color format: BPTC BC6H compressed RGB for high-dynamic range (HDR) with signed 16-bit floating-point components in 128-bit per 4x4 block.

BC7UNorm 

Compressed color format: BPTC BC7 compressed RGBA with normalized unsigned integer components in 128-bit per 4x4 block.

BC7UNorm_sRGB 

Compressed color format: BPTC BC7 compressed RGBA with normalized unsigned integer components in 128-bit per 4x4 block in non-linear sRGB color space.

ASTC4x4 

Compressed color format: ASTC compressed RGBA format in 128-bit per 4x4 block (8.00 bit rate).

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC4x4_sRGB 

Compressed color format: ASTC compressed RGBA format in 128-bit per 4x4 block (8.00 bit rate) in non-linear sRGB color space.

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC5x4 

Compressed color format: ASTC compressed RGBA format in 128-bit per 5x4 block (6.40 bit rate).

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC5x4_sRGB 

Compressed color format: ASTC compressed RGBA format in 128-bit per 5x4 block (6.40 bit rate) in non-linear sRGB color space.

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC5x5 

Compressed color format: ASTC compressed RGBA format in 128-bit per 5x5 block (5.12 bit rate).

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC5x5_sRGB 

Compressed color format: ASTC compressed RGBA format in 128-bit per 5x5 block (5.12 bit rate) in non-linear sRGB color space.

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC6x5 

Compressed color format: ASTC compressed RGBA format in 128-bit per 6x5 block (4.27 bit rate).

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC6x5_sRGB 

Compressed color format: ASTC compressed RGBA format in 128-bit per 6x5 block (4.27 bit rate) in non-linear sRGB color space.

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC6x6 

Compressed color format: ASTC compressed RGBA format in 128-bit per 6x6 block (3.56 bit rate).

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC6x6_sRGB 

Compressed color format: ASTC compressed RGBA format in 128-bit per 6x6 block (3.56 bit rate) in non-linear sRGB color space.

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC8x5 

Compressed color format: ASTC compressed RGBA format in 128-bit per 8x5 block (3.20 bit rate).

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC8x5_sRGB 

Compressed color format: ASTC compressed RGBA format in 128-bit per 8x5 block (3.20 bit rate) in non-linear sRGB color space.

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC8x6 

Compressed color format: ASTC compressed RGBA format in 128-bit per 8x6 block (2.67 bit rate).

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC8x6_sRGB 

Compressed color format: ASTC compressed RGBA format in 128-bit per 8x6 block (2.67 bit rate) in non-linear sRGB color space.

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC8x8 

Compressed color format: ASTC compressed RGBA format in 128-bit per 8x8 block (2.00 bit rate).

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC8x8_sRGB 

Compressed color format: ASTC compressed RGBA format in 128-bit per 8x8 block (2.00 bit rate) in non-linear sRGB color space.

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC10x5 

Compressed color format: ASTC compressed RGBA format in 128-bit per 10x5 block (2.56 bit rate).

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC10x5_sRGB 

Compressed color format: ASTC compressed RGBA format in 128-bit per 10x5 block (2.56 bit rate) in non-linear sRGB color space.

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC10x6 

Compressed color format: ASTC compressed RGBA format in 128-bit per 10x6 block (2.13 bit rate).

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC10x6_sRGB 

Compressed color format: ASTC compressed RGBA format in 128-bit per 10x6 block (2.13 bit rate) in non-linear sRGB color space.

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC10x8 

Compressed color format: ASTC compressed RGBA format in 128-bit per 10x8 block (1.60 bit rate).

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC10x8_sRGB 

Compressed color format: ASTC compressed RGBA format in 128-bit per 10x8 block (1.60 bit rate) in non-linear sRGB color space.

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC10x10 

Compressed color format: ASTC compressed RGBA format in 128-bit per 10x10 block (1.28 bit rate).

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC10x10_sRGB 

Compressed color format: ASTC compressed RGBA format in 128-bit per 10x10 block (1.28 bit rate) in non-linear sRGB color space.

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC12x10 

Compressed color format: ASTC compressed RGBA format in 128-bit per 12x10 block (1.07 bit rate).

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC12x10_sRGB 

Compressed color format: ASTC compressed RGBA format in 128-bit per 12x10 block (1.07 bit rate) in non-linear sRGB color space.

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC12x12 

Compressed color format: ASTC compressed RGBA format in 128-bit per 12x12 block (0.89 bit rate).

Note
Only supported with: OpenGL, Vulkan, Metal.
ASTC12x12_sRGB 

Compressed color format: ASTC compressed RGBA format in 128-bit per 12x12 block (0.89 bit rate) in non-linear sRGB color space.

Note
Only supported with: OpenGL, Vulkan, Metal.
ETC1UNorm 

Compressed color format: ETC1 compressed RGB with normalized unsigned integer components in 64-bit per 4x4 block.

Note
Only supported with: OpenGL, Vulkan, Metal.
ETC2UNorm 

Compressed color format: ETC2 compressed RGB with normalized unsigned integer components in 64-bit per 4x4 block.

Note
Only supported with: OpenGL, Vulkan, Metal.
ETC2UNorm_sRGB 

Compressed color format: ETC2 compressed RGB with normalized unsigned integer components in 64-bit per 4x4 block in non-linear sRGB color space.

Note
Only supported with: OpenGL, Vulkan, Metal.

◆ ImageFormat

enum class LLGL::ImageFormat
strong

Image format enumeration that applies to each pixel of an image.

See also
ImageView::format
MutableImageView::format
GetMemoryFootprint
Todo
Maybe find better name to not confuse this enum with LLGL::Format.
Enumerator
Alpha 

Single color component: Alpha.

R 

Single color component: Red.

RG 

Two color components: Red, Green.

RGB 

Three color components: Red, Green, Blue.

BGR 

Three color components: Blue, Green, Red.

RGBA 

Four color components: Red, Green, Blue, Alpha.

BGRA 

Four color components: Blue, Green, Red, Alpha.

ARGB 

Four color components: Alpha, Red, Green, Blue. Legacy format, mainly used in Direct3D 9.

ABGR 

Four color components: Alpha, Blue, Green, Red. Legacy format, mainly used in Direct3D 9.

Depth 

Depth component.

DepthStencil 

Depth and stencil components.

Stencil 

Stencil component.

Compressed 

Compressed image format. The actual compression format must be specified with Format.

◆ Key

enum class LLGL::Key
strong

Input key codes.

See also
Window::EventListener
Enumerator
LButton 

Left mouse button.

RButton 

Right mouse button.

Cancel 

Control-break processing.

MButton 

Middle mouse button (three-button mouse).

XButton1 

Windows 2000/XP: X1 mouse button.

XButton2 

Windows 2000/XP: X2 mouse button.

Back 

BACKSPACE key.

Tab 

TAB key.

Clear 

CLEAR key.

Return 

RETURN (or ENTER) key.

Shift 

SHIFT key.

Control 

CTRL key.

Menu 

ALT key.

Pause 

PAUSE key.

Capital 

CAPS LOCK key.

Escape 

Escape (ESC) key.

Space 

Space key.

PageUp 

Page up key.

PageDown 

Page down key.

End 

END key.

Home 

HOME (or POS1) key.

Left 

Left arrow key.

Up 

Up arrow key.

Right 

Right arrow key.

Down 

Down arrow key.

Select 

Select key.

Print 

Print key.

Exe 

Execute key.

Snapshot 

Snapshot key.

Insert 

Insert key.

Delete 

Delete key.

Help 

Help key.

D0 

Digit 0.

D1 

Digit 1.

D2 

Digit 2.

D3 

Digit 3.

D4 

Digit 4.

D5 

Digit 5.

D6 

Digit 6.

D7 

Digit 7.

D8 

Digit 8.

D9 

Digit 9.

A 

Letter A.

B 

Letter B.

C 

Letter C.

D 

Letter D.

E 

Letter E.

F 

Letter F.

G 

Letter G.

H 

Letter H.

I 

Letter I.

J 

Letter J.

K 

Letter K.

L 

Letter L.

M 

Letter M.

N 

Letter N.

O 

Letter O.

P 

Letter P.

Q 

Letter Q.

R 

Letter R.

S 

Letter S.

T 

Letter T.

U 

Letter U.

V 

Letter V.

W 

Letter W.

X 

Letter X.

Y 

Letter Y.

Z 

Letter Z.

LWin 

Left Windows key.

RWin 

Right Windows key.

Apps 

Application key.

Sleep 

Sleep key.

Keypad0 

Keypad 0 key.

Keypad1 

Keypad 1 key.

Keypad2 

Keypad 2 key.

Keypad3 

Keypad 3 key.

Keypad4 

Keypad 4 key.

Keypad5 

Keypad 5 key.

Keypad6 

Keypad 6 key.

Keypad7 

Keypad 7 key.

Keypad8 

Keypad 8 key.

Keypad9 

Keypad 9 key.

KeypadMultiply 

Keypad multiply '*'.

KeypadPlus 

Keypad plus '+'.

KeypadSeparator 

Keypad separator.

KeypadMinus 

Keypad minus '-'.

KeypadDecimal 

Keypad decimal ',' or '.' (depends on language).

KeypadDivide 

Keypad divide '/'.

F1 

F1 function key.

F2 

F2 function key.

F3 

F3 function key.

F4 

F4 function key.

F5 

F5 function key.

F6 

F6 function key.

F7 

F7 function key.

F8 

F8 function key.

F9 

F9 function key.

F10 

F10 function key.

F11 

F11 function key.

F12 

F12 function key.

F13 

F13 function key.

F14 

F14 function key.

F15 

F15 function key.

F16 

F16 function key.

F17 

F17 function key.

F18 

F18 function key.

F19 

F19 function key.

F20 

F20 function key.

F21 

F21 function key.

F22 

F22 function key.

F23 

F23 function key.

F24 

F24 function key.

NumLock 

Num lock key.

ScrollLock 

Scroll lock key.

LShift 

Left shift key.

RShift 

Right shift key.

LControl 

Left control (CTRL) key.

RControl 

Right control (CTRL) key.

LMenu 

Left menu key.

RMenu 

Right menu key.

BrowserBack 
BrowserForward 
BrowserRefresh 
BrowserStop 
BrowserSearch 
BrowserFavorites 
LLGL_DEPRECATED_ENUMCASE 
BrowserHome 
VolumeMute 
VolumeDown 
VolumeUp 
MediaNextTrack 
MediaPrevTrack 
MediaStop 
MediaPlayPause 
LaunchMail 
LaunchMediaSelect 
LaunchApp1 
LaunchApp2 
Plus 

'+'

Comma 

','

Minus 

'-'

Period 

'.'

Exponent 

'^'

Attn 
CrSel 
ExSel 
ErEOF 
Play 
Zoom 
NoName 
PA1 
OEMClear 
Any 

Refers to any key.

◆ LogicOp

enum class LLGL::LogicOp
strong

Logical pixel operation enumeration.

Remarks
These logical pixel operations are bitwise operations. In the following documentation, src denotes the source color and dst denotes the destination color.
Note
Only supported with: OpenGL, Vulkan, Direct3D 11.1+, Direct3D 12.0.
See also
BlendDescriptor::logicOp
Enumerator
Disabled 

No logical pixel operation.

Clear 

Resulting operation: 0.

Set 

Resulting operation: 1.

Copy 

Resulting operation: src.

CopyInverted 

Resulting operation: ~src.

NoOp 

Resulting operation: dst.

Invert 

Resulting operation: ~dst.

AND 

Resulting operation: src & dst.

ANDReverse 

Resulting operation: src & ~dst.

ANDInverted 

Resulting operation: ~src & dst.

NAND 

Resulting operation: ~(src & dst).

OR 

Resulting operation: src | dst.

ORReverse 

Resulting operation: src | ~dst.

ORInverted 

Resulting operation: ~src | dst.

NOR 

Resulting operation: ~(src | dst).

XOR 

Resulting operation: src ^ dst.

Equiv 

Resulting operation: ~(src ^ dst).

◆ NativeType

enum class LLGL::NativeType
strong

Type enumeration to distinguish native handles between X11 and Wayland protocols.

See also
NativeHandle::type
Enumerator
X11 
Wayland 

◆ OpenGLContextProfile

enum class LLGL::OpenGLContextProfile
strong

OpenGL context profile enumeration.

See also
RendererConfigurationOpenGL::contextProfile
Enumerator
Auto 

Automatic profile selection.

Remarks
This will automatically select the preferred profile for the platform, i.e. OpenGLContextProfile::CompatibilityProfile for desktop OpenGL when LLGL_GL_ENABLE_OPENGL2X is defined, OpenGLContextProfile::CoreProfile for desktop OpenGL when LLGL_GL_ENABLE_OPENGL2X is not defined, and OpenGLContextProfile::ESProfile for mobile OpenGLES.
CompatibilityProfile 

OpenGL compatibility profile.

CoreProfile 

OpenGL core profile.

ESProfile 

OpenGL ES profile.

Remarks
This profile is used for both OpenGL ES and WebGL since WebGL shaders also refer to the ES profile.
Note
Only supported on: Android, iOS, and WebAssembly.
LLGL_DEPRECATED_ENUMCASE 
Deprecated
Since 0.04b; Use OpenGLContextProfile::Auto instead!

◆ PolygonMode

enum class LLGL::PolygonMode
strong

Polygon filling modes enumeration.

See also
RasterizerDescriptor::polygonMode
Enumerator
Fill 

Draw filled polygon.

Wireframe 

Draw triangle edges only.

Points 

Draw vertex points only.

Note
Only supported with: OpenGL, Vulkan.

◆ PrimitiveTopology

enum class LLGL::PrimitiveTopology
strong

Primitive topology enumeration.

Remarks
All strip topologies (i.e. PrimitiveTopology::LineStrip, PrimitiveTopology::LineStripAdjacency, PrimitiveTopology::TriangleStrip, and PrimitiveTopology::TriangleStripAdjacency) use a fixed index value to restart the primitives. This fixed index value is the maximum possible value for the respective index buffer format, i.e. 2^16-1 (or 0xFFFF) for Format::R16UInt and 2^32-1 (or 0xFFFFFFFF) for Format::R32UInt.
See also
GraphicsPipelineDescriptor::primitiveTopology
Enumerator
PointList 

Point list, where each vertex represents a single point primitive.

LineList 

Line list, where each pair of two vertices represents a single line primitive.

LineStrip 

Line strip, where each vertex generates a new line primitive while the previous vertex is used as line start.

LineListAdjacency 

Adjacency line list, which is similar to LineList but each end point has a corresponding adjacent vertex that is accessible in a geometry shader.

Note
Only supported with: OpenGL, Vulkan, Direct3D 11, Direct3D 12.
LineStripAdjacency 

Adjacency line strip, which is similar to LineStrip but each end point has a corresponding adjacent vertex that is accessible in a geometry shader.

Note
Only supported with: OpenGL, Vulkan, Direct3D 11, Direct3D 12.
TriangleList 

Triangle list, where each set of three vertices represent a single triangle primitive.

TriangleStrip 

Triangle strip, where each vertex generates a new triangle primitive with an alternative triangle winding.

TriangleListAdjacency 

Adjacency triangle list, which is similar to TriangleList but each triangle edge has a corresponding adjacent vertex that is accessible in a geometry shader.

Note
Only supported with: OpenGL, Vulkan, Direct3D 11, Direct3D 12.
TriangleStripAdjacency 

Adjacency triangle strips which is similar to TriangleStrip but each triangle edge has a corresponding adjacent vertex that is accessible in a geometry shader.

Note
Only supported with: OpenGL, Vulkan, Direct3D 11, Direct3D 12.
Patches1 

Patches with 1 control point that is accessible in a tessellation shader.

Patches2 

Patches with 2 control points that are accessible in a tessellation shader.

Patches3 

Patches with 3 control points that are accessible in a tessellation shader.

Patches4 

Patches with 4 control points that are accessible in a tessellation shader.

Patches5 

Patches with 5 control points that are accessible in a tessellation shader.

Patches6 

Patches with 6 control points that are accessible in a tessellation shader.

Patches7 

Patches with 7 control points that are accessible in a tessellation shader.

Patches8 

Patches with 8 control points that are accessible in a tessellation shader.

Patches9 

Patches with 9 control points that are accessible in a tessellation shader.

Patches10 

Patches with 10 control points that are accessible in a tessellation shader.

Patches11 

Patches with 11 control points that are accessible in a tessellation shader.

Patches12 

Patches with 12 control points that are accessible in a tessellation shader.

Patches13 

Patches with 13 control points that are accessible in a tessellation shader.

Patches14 

Patches with 14 control points that are accessible in a tessellation shader.

Patches15 

Patches with 15 control points that are accessible in a tessellation shader.

Patches16 

Patches with 16 control points that are accessible in a tessellation shader.

Patches17 

Patches with 17 control points that are accessible in a tessellation shader.

Patches18 

Patches with 18 control points that are accessible in a tessellation shader.

Patches19 

Patches with 19 control points that are accessible in a tessellation shader.

Patches20 

Patches with 20 control points that are accessible in a tessellation shader.

Patches21 

Patches with 21 control points that are accessible in a tessellation shader.

Patches22 

Patches with 22 control points that are accessible in a tessellation shader.

Patches23 

Patches with 23 control points that are accessible in a tessellation shader.

Patches24 

Patches with 24 control points that are accessible in a tessellation shader.

Patches25 

Patches with 25 control points that are accessible in a tessellation shader.

Patches26 

Patches with 26 control points that are accessible in a tessellation shader.

Patches27 

Patches with 27 control points that are accessible in a tessellation shader.

Patches28 

Patches with 28 control points that are accessible in a tessellation shader.

Patches29 

Patches with 29 control points that are accessible in a tessellation shader.

Patches30 

Patches with 30 control points that are accessible in a tessellation shader.

Patches31 

Patches with 31 control points that are accessible in a tessellation shader.

Patches32 

Patches with 32 control points that are accessible in a tessellation shader.

◆ QueryType

enum class LLGL::QueryType
strong

Query type enumeration.

See also
QueryHeapDescriptor::type
Enumerator
SamplesPassed 

Number of samples that passed the depth test. This can be used as render condition.

AnySamplesPassed 

Non-zero if any samples passed the depth test. This can be used as render condition.

AnySamplesPassedConservative 

Non-zero if any samples passed the depth test within a conservative rasterization. This can be used as render condition.

TimeElapsed 

Elapsed time (in nanoseconds) between the begin- and end query command.

StreamOutPrimitivesWritten 

Number of vertices that have been written into a stream output (also called "Transform Feedback").

Remarks
If this query is not generated inside a stream-output section, i.e. between CommandBuffer::BeginStreamOutput and CommandBuffer::EndStreamOutput, the result is undefined.
StreamOutOverflow 

Non-zero if any of the streaming output buffers (also called "Transform Feedback Buffers") has an overflow.

Remarks
If this query is not generated inside a stream-output section, i.e. between CommandBuffer::BeginStreamOutput and CommandBuffer::EndStreamOutput, the result is undefined.
PipelineStatistics 

Pipeline statistics such as number of shader invocations, generated primitives, etc.

See also
QueryPipelineStatistics
RenderingFeatures::hasPipelineStatistics

◆ RenderConditionMode

enum class LLGL::RenderConditionMode
strong

Render condition mode enumeration.

Remarks
The condition is determined by the type of the QueryHeap object.
See also
CommandBuffer::BeginRenderCondition
Enumerator
Wait 

Wait until the occlusion query result is available, before conditional rendering begins.

NoWait 

Do not wait until the occlusion query result is available, before conditional rendering begins.

ByRegionWait 

Similar to Wait, but the renderer may discard the results of commands for any framebuffer region that did not contribute to the occlusion query.

ByRegionNoWait 

Similar to NoWait, but the renderer may discard the results of commands for any framebuffer region that did not contribute to the occlusion query.

WaitInverted 

Same as Wait, but the condition is inverted.

NoWaitInverted 

Same as NoWait, but the condition is inverted.

ByRegionWaitInverted 

Same as ByRegionWait, but the condition is inverted.

ByRegionNoWaitInverted 

Same as ByRegionNoWait, but the condition is inverted.

◆ ResourceType

enum class LLGL::ResourceType
strong

Hardware resource type enumeration.

Remarks
This is primarily used to describe the source type for a layout binding (see BindingDescriptor), which is why all buffer types are enumerated but not the texture types.
See also
BindingDescriptor::type
Enumerator
Undefined 

Undefined resource type.

Buffer 

Buffer resource.

See also
Buffer
RenderSystem::CreateBuffer
Texture 

Texture resource.

See also
Texture
TextureType
RenderSystem::CreateTexture
Sampler 

Sampler state resource.

See also
Sampler
RenderSystem::CreateSampler

◆ SamplerAddressMode

enum class LLGL::SamplerAddressMode
strong

Technique for resolving texture coordinates that are outside of the range [0, 1].

See also
SamplerDescriptor::addressModeU
SamplerDescriptor::addressModeV
SamplerDescriptor::addressModeW
Enumerator
Repeat 

Repeat texture coordinates within the interval [0, 1).

Mirror 

Flip texture coordinates at each integer junction.

Clamp 

Clamp texture coordinates to the interval [0, 1].

Border 

Sample border color for texture coordinates that are outside the interval [0, 1].

Note
Only supported on: desktop platforms (Windows, Linux, macOS).
MirrorOnce 

Takes the absolute value of the texture coordinates and then clamps it to the interval [0, 1], i.e. mirror around 0.

Note
Only supported on: desktop platforms (Windows, Linux, macOS).

◆ SamplerFilter

enum class LLGL::SamplerFilter
strong

Sampling filter enumeration.

See also
SamplerDescriptor::minFilter
SamplerDescriptor::magFilter
SamplerDescriptor::mipMapFilter
Image::Resize(const Extent3D&, const SamplerFilter)
Enumerator
Nearest 

Take the nearest texture sample.

Linear 

Interpolate between multiple texture samples.

◆ ScreenOrigin

enum class LLGL::ScreenOrigin
strong

Screen coordinate system origin enumeration.

See also
RenderingCapabilities::screenOrigin
Enumerator
LowerLeft 

Specifies a screen origin in the lower-left.

Note
Native screen origin in: OpenGL (If GL_ARB_clip_control is not supported).
UpperLeft 

Specifies a screen origin in the upper-left.

Note
Native screen origin in: Direct3D 11, Direct3D 12, Vulkan, OpenGL (If GL_ARB_clip_control is supported), Metal.

◆ ShaderSourceType

enum class LLGL::ShaderSourceType
strong

Shader source type enumeration.

See also
ShaderDescriptor::sourceType
ShaderDescriptor::sourceSize
Enumerator
CodeString 

Refers to sourceSize+1 bytes, describing shader high-level code (including null terminator).

CodeFile 

Refers to sourceSize+1 bytes, describing the filename of the shader high-level code (including null terminator).

BinaryBuffer 

Refers to sourceSize bytes, describing shader binary code.

BinaryFile 

Refers to sourceSize+1 bytes, describing the filename of the shader binary code (including null terminator).

◆ ShaderType

enum class LLGL::ShaderType
strong

Shader type enumeration.

See also
ShaderDescriptor::type
Enumerator
Undefined 

Undefined shader type.

Vertex 

Vertex shader type.

TessControl 

Tessellation control shader type (also "Hull Shader").

TessEvaluation 

Tessellation evaluation shader type (also "Domain Shader").

Geometry 

Geometry shader type.

Fragment 

Fragment shader type (also "Pixel Shader").

Compute 

Compute shader type.

Task 

Task shader (also "Amplification Shader").

Mesh 

Mesh shader.

LLGL_DEPRECATED_ENUMCASE 
Deprecated
Since 0.05b; Use Task instead!

◆ ShadingLanguage

enum class LLGL::ShadingLanguage
strong

Shading language version enumeration.

Remarks
These enumeration entries can be casted to an integer using the bitmask ShadingLanguage::VersionBitmask to get the respective version number:
// 'versionNo' will have the value 330
static const auto versionGLSL330 = static_cast<std::uint32_t>(LLGL::ShadingLanguage::GLSL_330);
static const auto versionBitmask = static_cast<std::uint32_t>(LLGL::ShadingLanguage::VersionBitmask);
static const auto versionNo = versionGLSL330 & versionBitmask;
@ GLSL_330
GLSL 3.30 (since OpenGL 3.3).
Definition RenderSystemFlags.h:61
@ VersionBitmask
Bitmask for the version number of each shading language enumeration entry.
Definition RenderSystemFlags.h:122
Enumerator
GLSL 

GLSL (OpenGL Shading Language).

GLSL_110 

GLSL 1.10 (since OpenGL 2.0).

GLSL_120 

GLSL 1.20 (since OpenGL 2.1).

GLSL_130 

GLSL 1.30 (since OpenGL 3.0).

GLSL_140 

GLSL 1.40 (since OpenGL 3.1).

GLSL_150 

GLSL 1.50 (since OpenGL 3.2).

GLSL_330 

GLSL 3.30 (since OpenGL 3.3).

GLSL_400 

GLSL 4.00 (since OpenGL 4.0).

GLSL_410 

GLSL 4.10 (since OpenGL 4.1).

GLSL_420 

GLSL 4.20 (since OpenGL 4.2).

GLSL_430 

GLSL 4.30 (since OpenGL 4.3).

GLSL_440 

GLSL 4.40 (since OpenGL 4.4).

GLSL_450 

GLSL 4.50 (since OpenGL 4.5).

GLSL_460 

GLSL 4.60 (since OpenGL 4.6).

ESSL 

ESSL (OpenGL ES Shading Language).

ESSL_100 

ESSL 1.00 (since OpenGL ES 2.0).

ESSL_300 

ESSL 3.00 (since OpenGL ES 3.0).

ESSL_310 

ESSL 3.10 (since OpenGL ES 3.1).

ESSL_320 

ESSL 3.20 (since OpenGL ES 3.2).

HLSL 

HLSL (High Level Shading Language).

HLSL_2_0 

HLSL 2.0 (since Direct3D 9).

HLSL_2_0a 

HLSL 2.0a (since Direct3D 9a).

HLSL_2_0b 

HLSL 2.0b (since Direct3D 9b).

HLSL_3_0 

HLSL 3.0 (since Direct3D 9c).

HLSL_4_0 

HLSL 4.0 (since Direct3D 10).

HLSL_4_1 

HLSL 4.1 (since Direct3D 10.1).

HLSL_5_0 

HLSL 5.0 (since Direct3D 11).

HLSL_5_1 

HLSL 5.1 (since Direct3D 11.3).

HLSL_6_0 

HLSL 6.0 (since Direct3D 12). Shader model 6.0 adds wave intrinsics and 64-bit integer types to HLSL.

HLSL_6_1 

HLSL 6.1 (since Direct3D 12). Shader model 6.1 adds SV_ViewID and SV_Barycentrics semantics to HLSL.

HLSL_6_2 

HLSL 6.2 (since Direct3D 12). Shader model 6.2 adds 16-bit scalar types to HLSL.

HLSL_6_3 

HLSL 6.3 (since Direct3D 12). Shader model 6.3 adds ray tracing (DXR) to HLSL.

HLSL_6_4 

HLSL 6.4 (since Direct3D 12). Shader model 6.4 adds machine learning intrinsics to HLSL.

HLSL_6_5 

HLSL 6.5 (since Direct3D 12). Shader model 6.5 adds DXR 1.1 to HLSL.

HLSL_6_6 

HLSL 6.6 (since Direct3D 12). Shader model 6.6 adds dynamic resources to HLSL.

HLSL_6_7 

HLSL 6.7 (since Direct3D 12). Shader model 6.7 adds advanced texture operations to HLSL.

HLSL_6_8 

HLSL 6.8 (since Direct3D 12). Shader model 6.8 adds work graphs to HLSL.

HLSL_6_9 

HLSL 6.9 (since Direct3D 12). Shader model 6.9 adds long vectors with up to 1024 elements.

Metal 

Metal Shading Language.

Metal_1_0 

Metal 1.0 (since iOS 8.0).

Metal_1_1 

Metal 1.1 (since iOS 9.0 and OS X 10.11).

Metal_1_2 

Metal 1.2 (since iOS 10.0 and macOS 10.12).

Metal_2_0 

Metal 2.0 (since iOS 11.0 and macOS 10.13).

Metal_2_1 

Metal 2.1 (since iOS 12.0 and macOS 10.14).

Metal_2_2 

Metal 2.2 (since iOS 13.0 and macOS 10.15).

Metal_2_3 

Metal 2.3 (since iOS 14.0 and macOS 11.0).

Metal_2_4 

Metal 2.4 (since iOS 15.0 and macOS 12.0).

Metal_3_0 

Metal 3.0 (since iOS 16.0 and macOS 13.0).

SPIRV 

SPIR-V Shading Language.

SPIRV_100 

SPIR-V 1.0.

DXIL 
DXIL_1_0 

DXIL 1.0 (since Direct3D 12) maps to Shader model 6.0. See HLSL_6_0.

DXIL_1_1 

DXIL 1.1 (since Direct3D 12) maps to Shader model 6.1. See HLSL_6_1.

DXIL_1_2 

DXIL 1.2 (since Direct3D 12) maps to Shader model 6.2. See HLSL_6_2.

DXIL_1_3 

DXIL 1.3 (since Direct3D 12) maps to Shader model 6.3. See HLSL_6_3.

DXIL_1_4 

DXIL 1.4 (since Direct3D 12) maps to Shader model 6.4. See HLSL_6_4.

DXIL_1_5 

DXIL 1.5 (since Direct3D 12) maps to Shader model 6.5. See HLSL_6_5.

DXIL_1_6 

DXIL 1.6 (since Direct3D 12) maps to Shader model 6.6. See HLSL_6_6.

DXIL_1_7 

DXIL 1.7 (since Direct3D 12) maps to Shader model 6.7. See HLSL_6_7.

DXIL_1_8 

DXIL 1.8 (since Direct3D 12) maps to Shader model 6.8. See HLSL_6_8.

DXIL_1_9 

DXIL 1.9 (since Direct3D 12) maps to Shader model 6.9. See HLSL_6_9.

VersionBitmask 

Bitmask for the version number of each shading language enumeration entry.

◆ ShadingRate

enum class LLGL::ShadingRate
strong

Variable rate shading enumeration.

See also
CommandBufferTier1::SetShadingRate
RenderingFeatures::hasVariableRateShading
Note
Only supported with: Direct3D 12, Vulkan.
Enumerator
Size1x1 

No change in shading rate (Default).

Size1x2 

Reduce vertical resolution by 2x.

Size2x1 

Reduce horizontal resolution by 2x.

Size2x2 

Reduce horizontal and vertical resolution by 2x.

Size2x4 

Reduce horizontal resolution by 2x and vertical resolition by 4x.

Size4x2 

Reduce horizontal resolution by 4x and vertical resolition by 2x.

Size4x4 

Reduce horizontal and vertical resolution by 4x.

◆ ShadingRateOp

enum class LLGL::ShadingRateOp
strong

Shading rate combiner operation enumeration.

See also
CommandBufferTier1::SetShadingRate
RenderingFeatures::hasVariableRateShading
Note
Only supported with: Direct3D 12, Vulkan.
Enumerator
Keep 

Specifies the combiners as passthrough from input A.

Replace 

Specifies the combiners as override from input B.

Min 

Specifies the combiners minimum between inputs A and B.

Max 

Specifies the combiners maximum between inputs A and B.

Sum 

Specifies the combiners as sum of both inputs A and B.

Remarks
While the D3D12 equivalent D3D12_SHADING_RATE_COMBINER_SUM and Vulkan equivalent VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR sound they use different operations, they have the same effect on the result. They only have a different definition of how combiners are calculated.

◆ StencilFace

enum class LLGL::StencilFace
strong

Stencil face enumeration.

Remarks
To be compatible with Direct3D renderers, it is recommended to always use FrontAndBack.
See also
CommandBuffer::SetStencilReference
Enumerator
FrontAndBack 

Refers to both the front and back face of primitives.

Front 

Refers only to the front face of primitives.

Note
Only supported with: OpenGL, Vulkan, Metal.
Back 

Refers only to the back face of primitives.

Note
Only supported with: OpenGL, Vulkan, Metal.

◆ StencilOp

enum class LLGL::StencilOp
strong

Stencil operations enumeration.

See also
StencilFaceDescriptor
Enumerator
Keep 

Keep the existing stencil data.

Zero 

Set stencil data to 0.

Replace 

Set the stencil data to the reference value.

See also
StencilFaceDescriptor::reference
IncClamp 

Increment the stencil value by 1, and clamp the result.

DecClamp 

Decrement the stencil value by 1, and clamp the result.

Invert 

Invert the stencil data.

IncWrap 

Increment the stencil value by 1, and wrap the result if necessary.

DecWrap 

Decrement the stencil value by 1, and wrap the result if necessary.

◆ StorageBufferType

enum class LLGL::StorageBufferType
strong

Storage buffer type enumeration for shader reflection.

Note
Only supported with: Direct3D 11, Direct3D 12.
See also
ShaderResourceReflection::storageBufferType
Enumerator
Undefined 

Undefined storage buffer type.

TypedBuffer 

Typed buffer, e.g. Buffer<float4> in HLSL.

See also
BufferDescriptor::format
StructuredBuffer 

Structured buffer, e.g. StructuredBuffer<MyStruct> in HLSL.

See also
BufferDescriptor::stride
ByteAddressBuffer 

Byte-address buffer, e.g. ByteAddressBuffer in HLSL.

See also
BufferDescriptor::format
RWTypedBuffer 

Typed read/write buffer, e.g. RWBuffer<float4> in HLSL.

See also
BufferDescriptor::format
RWStructuredBuffer 

Read/write structured buffer, e.g. RWStructuredBuffer<MyStruct> in HLSL.

See also
BufferDescriptor::stride
RWByteAddressBuffer 

Read/write byte-address buffer, e.g. RWByteAddressBuffer in HLSL.

See also
BufferDescriptor::stride
AppendStructuredBuffer 

Append structured buffer, e.g. AppendStructuredBuffer<MyStruct> in HLSL.

See also
BufferDescriptor::stride
MiscFlags::Append
ConsumeStructuredBuffer 

Consume structured buffer, e.g. ConsumeStructuredBuffer<MyStruct> in HLSL.

See also
BufferDescriptor::stride
MiscFlags::Append

◆ SystemValue

enum class LLGL::SystemValue
strong

Enumeration of system values for vertex input or fragment output attributes.

Remarks
This is only used for shader code reflection.
Here is an overview of all supported system values and their mapping to the respective shading language:
System value mapping
TypeHLSLGLSLSPIR-VMetal
SystemValue::ClipDistanceSV_ClipDistance gl_ClipDistance gl_ClipDistance [[clip_distance]]
SystemValue::ColorSV_Target N/AN/A[[color(N)]]
SystemValue::CullDistanceSV_CullDistance gl_CullDistance gl_CullDistance N/A
SystemValue::DepthSV_Depth gl_FragDepth gl_FragDepth [[depth(any)]]
SystemValue::DepthGreaterSV_DepthGreaterEqual N/AN/A[[depth(greater)]]
SystemValue::DepthLessSV_DepthLessEqual N/AN/A[[depth(less)]]
SystemValue::FrontFacingSV_IsFrontFace gl_FrontFacing gl_FrontFacing [[front_facing]]
SystemValue::InstanceIDSV_InstanceID gl_InstanceID gl_InstanceIndex [[instance_id]
SystemValue::PositionSV_Position gl_Position, gl_FragCoord gl_Position, gl_FragCoord [[position]]
SystemValue::PrimitiveIDSV_PrimitiveID gl_PrimitiveID gl_PrimitiveID N/A
SystemValue::RenderTargetIndexSV_RenderTargetArrayIndex gl_Layer gl_Layer [[render_target_array_index]]
SystemValue::SampleMaskSV_Coverage gl_SampleMask gl_SampleMask [[sample_mask]]
SystemValue::SampleIDSV_SampleIndex gl_SampleID gl_SampleID [[sample_id]]
SystemValue::StencilSV_StencilRef N/AN/A[[stencil]]
SystemValue::VertexIDSV_VertexID gl_VertexID gl_VertexIndex [[vertex_id]]
SystemValue::ViewIndexSV_ViewID gl_ViewIndex gl_ViewIndex [[amplification_id]]
SystemValue::ViewportIndexSV_ViewportArrayIndex gl_ViewportIndex gl_ViewportIndex [[viewport_array_index]]
See also
VertexAttribute::systemValue
FragmentAttribute::systemValue
Enumerator
Undefined 

Undefined system value.

ClipDistance 

Forward-compatible mechanism for vertex clipping.

Color 

Fragment output color value.

CullDistance 

Mechanism for controlling user culling.

Depth 

Fragment depth value.

DepthGreater 

Fragment depth value that is greater than or equal to the previous one.

DepthLess 

Fragment depth value that is less than or equal to the previous one.

FrontFacing 

Indicates whether a primitive is front or back facing.

InstanceID 

Index of the input instance.

Note
This value behaves differently between Direct3D and OpenGL.
See also
CommandBuffer::DrawInstanced(std::uint32_t, std::uint32_t, std::uint32_t, std::uint32_t)
Position 

Vertex or fragment position.

PrimitiveID 

Index of the geometry primitive.

RenderTargetIndex 

Index of the render target layer.

SampleMask 

Sample coverage mask.

SampleID 

Index of the input sample.

Stencil 

Fragment stencil value.

Note
Only supported with: Direct3D 11.3, Direct3D 12, Metal.
VertexID 

Index of the input vertex.

Note
This value behaves differently between Direct3D and OpenGL.
See also
CommandBuffer::Draw
ViewIndex 

Index of the view in a multiview render pass.

Remarks
This is used for single-pass layered rendering, where a single draw is broadcast to multiple array layers of the render target (e.g. single-pass stereo for VR or cascaded shadow maps). The shader uses this value to index per-view data such as view-projection matrices.
This requires RenderingFeatures::hasMultiview and is enabled per render pass via RenderPassDescriptor::views.
Note
Only supported with: Vulkan, Direct3D 12.
See also
RenderPassDescriptor::views
RenderingFeatures::hasMultiview
RenderingLimits::maxViews
ViewportIndex 

Index of the viewport array.

◆ TessellationPartition

enum class LLGL::TessellationPartition
strong

Tessellation partition mode enumeration.

See also
TessellationDescriptor::partition
Enumerator
Undefined 

Undefined partition mode.

Integer 

Integer with integers only.

Remarks
Equivalent of [partitioning("integer")] in HLSL and layout(equal_spacing) in GLSL.
Pow2 

Partition with power-of-two number only.

Remarks
Equivalent of [partitioning("pow2")] in HLSL.
FractionalOdd 

Partition with an odd, fractional number.

Remarks
Equivalent of [partitioning("fractional_odd")] in HLSL and layout(fractional_odd_spacing) in GLSL.
FractionalEven 

Partition with an even, fractional number.

Remarks
Equivalent of [partitioning("fractional_even")] in HLSL and layout(fractional_even_spacing) in GLSL.

◆ TextureSwizzle

enum class LLGL::TextureSwizzle : std::uint8_t
strong

Texture component swizzle enumeration.

Remarks
Can be used to change the order of texel components independently of a shader.
See also
TextureSwizzleRGBA
Enumerator
Zero 

The component is replaced by the constant zero.

One 

The component is replaced by the constant one.

Red 

The component is replaced by red component.

Green 

The component is replaced by green component.

Blue 

The component is replaced by blue component.

Alpha 

The component is replaced by alpha component.

◆ TextureType

enum class LLGL::TextureType
strong

Texture type enumeration.

Enumerator
Texture1D 

1-Dimensional texture.

Note
Only supported with: OpenGL, Vulkan, Direct3D 11, Direct3D 12, Metal.
Texture2D 

2-Dimensional texture.

Texture3D 

3-Dimensional texture.

TextureCube 

Cube texture.

See also
TextureDescriptor::arrayLayers
Texture1DArray 

1-Dimensional texture.

Note
Only supported with: OpenGL, Vulkan, Direct3D 11, Direct3D 12, Metal.
See also
TextureDescriptor::arrayLayers
Texture2DArray 

2-Dimensional array texture.

See also
TextureDescriptor::arrayLayers
TextureCubeArray 

Cube array texture.

See also
TextureDescriptor::arrayLayers
Note
Only supported with: OpenGL, OpenGLES 3.2, Vulkan, Direct3D 11, Direct3D 12, Metal.
Texture2DMS 

2-Dimensional multi-sample texture.

Note
Only supported with: OpenGL, OpenGLES 3.1, Vulkan, Direct3D 11, Direct3D 12, Metal.
See also
TextureDescriptor::samples
Texture2DMSArray 

2-Dimensional multi-sample array texture.

Note
Only supported with: OpenGL, OpenGLES 3.2, Vulkan, Direct3D 11, Direct3D 12, Metal.
See also
TextureDescriptor::samples

◆ UniformType

enum class LLGL::UniformType
strong

Shader uniform type enumeration.

Remarks
All uniform types have WORD size, i.e. they are a multiple of 32-bits.
Because "Bool" is a reserved identifier for an Xlib macro on GNU/Linux, all scalar types have a component index (i.e. Bool1 instead of Bool).
See also
LLGL::Parse
Enumerator
Undefined 

Undefined uniform type.

Float1 

Single scalar of a 32-bit floating-point. Use "float1" or "float" for parsing.

Float2 

Two component vector of 32-bit floating-points. Use "float2" for parsing.

Float3 

Three component vector of 32-bit floating-points. Use "float3" for parsing.

Float4 

Four component vector of 32-bit floating-points. Use "float4" for parsing.

Double1 

Single scalar of a 64-bit floating-point. Use "double1" or "double" for parsing.

Double2 

Two component vector of 64-bit floating-points. Use "double2" for parsing.

Double3 

Three component vector of 64-bit floating-points. Use "double3" for parsing.

Double4 

Four component vector of 64-bit floating-points. Use "double4" for parsing.

Int1 

Single scalar of a 32-bit signed integer. Use "int1" or "int" for parsing.

Int2 

Two component vector of 32-bit signed integers. Use "int2" for parsing.

Int3 

Three component vector of 32-bit signed integers. Use "int3" for parsing.

Int4 

Four component vector of 32-bit signed integers. Use "int4" for parsing.

UInt1 

Single scalar of a 32-bit unsigned integer. Use "int1" or "int" for parsing.

UInt2 

Two component vector of 32-bit unsigned integers. Use "int2" for parsing.

UInt3 

Three component vector of 32-bit unsigned integers. Use "int3" for parsing.

UInt4 

Four component vector of 32-bit unsigned integers. Use "int4" for parsing.

Bool1 

Single scalar of a 32-bit boolean. Use "bool1" or "bool" for parsing.

Bool2 

Two component vector of 32-bit booleans. Use "bool2" for parsing.

Bool3 

Three component vector of 32-bit booleans. Use "bool3" for parsing.

Bool4 

Four component vector of 32-bit booleans. Use "bool4" for parsing.

Float2x2 

2x2 matrix of 32-bit floating-points. Use "float2x2" for parsing.

Float2x3 

2x3 matrix of 32-bit floating-points. Use "float2x3" for parsing.

Float2x4 

2x4 matrix of 32-bit floating-points. Use "float2x4" for parsing.

Float3x2 

3x2 matrix of 32-bit floating-points. Use "float3x2" for parsing.

Float3x3 

3x3 matrix of 32-bit floating-points. Use "float3x3" for parsing.

Float3x4 

3x4 matrix of 32-bit floating-points. Use "float3x4" for parsing.

Float4x2 

4x2 matrix of 32-bit floating-points. Use "float4x2" for parsing.

Float4x3 

4x3 matrix of 32-bit floating-points. Use "float4x3" for parsing.

Float4x4 

4x4 matrix of 32-bit floating-points. Use "float4x4" for parsing.

Double2x2 

2x2 matrix of 64-bit floating-points. Use "double2x2" for parsing.

Double2x3 

2x3 matrix of 64-bit floating-points. Use "double2x3" for parsing.

Double2x4 

2x4 matrix of 64-bit floating-points. Use "double2x4" for parsing.

Double3x2 

3x2 matrix of 64-bit floating-points. Use "double3x2" for parsing.

Double3x3 

3x3 matrix of 64-bit floating-points. Use "double3x3" for parsing.

Double3x4 

3x4 matrix of 64-bit floating-points. Use "double3x4" for parsing.

Double4x2 

4x2 matrix of 64-bit floating-points. Use "double4x2" for parsing.

Double4x3 

4x3 matrix of 64-bit floating-points. Use "double4x3" for parsing.

Double4x4 

4x4 matrix of 64-bit floating-points. Use "double4x4" for parsing.

Sampler 

Sampler uniform (e.g. sampler2D). Not supported for parsing.

Image 

Image uniform (e.g. image2D). Not supported for parsing.

AtomicCounter 

Atomic counter uniform (e.g. atomic_uint). Not supported for parsing.

◆ VersionStatus

enum class LLGL::VersionStatus : std::uint8_t
strong

Version status enumeration.

See also
VersionInfo::status
Enumerator
Undefined 
Alpha 
Beta 
Stable 

◆ WarningType

enum class LLGL::WarningType
strong

Rendering debugger warning types enumeration.

Enumerator
ImproperArgument 

Warning due to improper argument (e.g. generating 4 vertices while having triangle list as primitive topology).

ImproperState 

Warning due to improper state (e.g. rendering while viewport is not visible).

PointlessOperation 

Warning due to a operation without any effect (e.g. drawing with 0 vertices).

VaryingBehavior 

Warning due to a varying behavior between the native APIs (e.g. SV_VertexID in HLSL behaves different to gl_VertexID in GLSL or gl_VertexIndex in SPIRV).

DeprecatedFeature 

Warning due to use of a deprecated feature.

◆ XREnvironmentBlendMode

enum class LLGL::XREnvironmentBlendMode
strong

XR environment blend mode enumeration.

Remarks
Describes how the runtime composes the rendered image against the physical world.
See also
XRSessionDescriptor::environmentBlendMode
Enumerator
Opaque 

Output is fully opaque; the physical environment is occluded entirely.

Additive 

Output is blended additively over a view of the physical environment.

AlphaBlend 

Output is alpha-blended over a view of the physical environment (passthrough).

◆ XRFormFactor

enum class LLGL::XRFormFactor
strong

XR form factor enumeration.

Remarks
Selects the kind of XR device the application targets. The runtime may report a chosen form factor as unavailable, in which case XRSystem::Load returns null with a report.
See also
XRSystemDescriptor::formFactor
Enumerator
HeadMountedDisplay 

Head-mounted display, e.g. a VR headset.

HandheldDisplay 

Handheld display, e.g. a phone or tablet held by the user.

◆ XRSessionState

enum class LLGL::XRSessionState
strong

XR session lifecycle states reported by XRSession::GetState.

See also
XRSession::GetState
Enumerator
Idle 

Session has been created but has not yet been started by the runtime.

Ready 

Session is ready; BeginFrame/EndFrame may be called.

Synchronized 

Session is synchronizing with the runtime; calls to BeginFrame may not yet render.

Visible 

Session is visible to the user and rendering should occur.

Focused 

Session is focused; the user is actively interacting with it.

Stopping 

Session has been requested to stop. Application should finish in-flight frames and call EndSession.

LossPending 

Session has lost its runtime context (e.g. headset disconnected). The session is no longer usable.

Exiting 

Session is being torn down.

◆ XRViewConfiguration

enum class LLGL::XRViewConfiguration
strong

XR view configuration enumeration.

Remarks
Selects how many views are rendered each frame and how they are laid out.
See also
XRSystemDescriptor::viewConfiguration
XRSystem::GetViewConfigurations
Enumerator
Mono 

A single view, typically used for non-stereo handheld or pass-through scenarios.

Stereo 

Two views, one per eye, in head-mounted display configurations.

Function Documentation

◆ CastColorValue()

template<typename Dst, typename Src>
Dst LLGL::CastColorValue ( const Src & value)
inline

Casts the specified color value and transforms it from the source data type range to the destination data type range.

See also
MaxColorValue

◆ CastColorValue< bool, bool >()

template<>
bool LLGL::CastColorValue< bool, bool > ( const bool & value)
inline

Specialized template which merely passes the input value as output.

◆ CastColorValue< double, double >()

template<>
double LLGL::CastColorValue< double, double > ( const double & value)
inline

Specialized template which merely passes the input value as output.

◆ CastColorValue< float, float >()

template<>
float LLGL::CastColorValue< float, float > ( const float & value)
inline

Specialized template which merely passes the input value as output.

◆ CastColorValue< std::uint8_t, std::uint8_t >()

template<>
std::uint8_t LLGL::CastColorValue< std::uint8_t, std::uint8_t > ( const std::uint8_t & value)
inline

Specialized template which merely passes the input value as output.

◆ CastTo() [1/4]

template<typename T>
const T & LLGL::CastTo ( const Interface & obj)
inline

Returns a constant reference to this instance of type const T& if it implements the specified interface.

Remarks
The typename T must be a sub class of Interface and implement the following function:
static InterfaceID GetInterfaceID();
Enumeration of all interfaces in LLGL.
Definition InterfaceID.h:26
This template can be used like in the following example:
const LLGL::Surface& mySurface = ...
const LLGL::Window& myWindow = LLGL::CastTo<LLGL::Window>(mySurface);
The Surface interface is the base interface for Window (on Desktop platforms) and Canvas (on mobile p...
Definition Surface.h:32
Window interface for desktop platforms.
Definition Window.h:32
const T * CastTo(const Interface *obj)
Returns a constant pointer to this instance of type const T* if it implements the specified interface...
Definition TypeInfo.h:60

◆ CastTo() [2/4]

template<typename T>
const T * LLGL::CastTo ( const Interface * obj)
inline

Returns a constant pointer to this instance of type const T* if it implements the specified interface.

Remarks
The typename T must be a sub class of Interface and implement the following function:
static InterfaceID GetInterfaceID();
This template can be used like in the following example:
const LLGL::Surface* mySurface = ...
if (const LLGL::Window* myWindow = LLGL::CastTo<LLGL::Window>(mySurface))
{
...
}

◆ CastTo() [3/4]

template<typename T>
T & LLGL::CastTo ( Interface & obj)
inline

Returns a reference to this instance of type T& if it implements the specified interface.

Remarks
The typename T must be a sub class of Interface and implement the following function:
static InterfaceID GetInterfaceID();
This template can be used like in the following example:
LLGL::Surface& mySurface = ...
LLGL::Window& myWindow = LLGL::CastTo<LLGL::Window&>(mySurface);

◆ CastTo() [4/4]

template<typename T>
T * LLGL::CastTo ( Interface * obj)
inline

Returns a pointer to this instance of type T* if it implements the specified interface.

Remarks
The typename T must be a sub class of Interface and implement the following function:
static InterfaceID GetInterfaceID();
This template can be used like in the following example:
LLGL::Surface* mySurface = ...
if (LLGL::Window* myWindow = LLGL::CastTo<LLGL::Window>(mySurface))
{
...
}

◆ Compare()

LLGL_EXPORT int LLGL::Compare ( VersionInfo lhs,
VersionInfo rhs )

\briefs Compares the two VersionInfo arguments.

Returns
0 if both arguemnts are equal, < 0 if lhs is considered an earlier version than rhs, or > 0 if lhs is considered a newer version than ths.

◆ GetExtentRatio()

LLGL_EXPORT Extent2D LLGL::GetExtentRatio ( const Extent2D & extent)

Returns the ratio of the specified extent as another extent, i.e. all attributes are divided by their greatest common divisor.

Remarks
This can be used to print out a display mode resolution in a better format (e.g. "16:9" rather than "1920:1080").
See also
DisplayMode::resolution

◆ GetLLGLVersion()

LLGL_EXPORT VersionInfo LLGL::GetLLGLVersion ( )

Returns the version information of this library.

◆ GetPrimitiveTopologyPatchSize()

LLGL_EXPORT std::uint32_t LLGL::GetPrimitiveTopologyPatchSize ( const PrimitiveTopology primitiveTopology)

Returns the number of patch control points of the specified primitive topology (in range [1, 32]), or 0 if the topology is not a patch list.

◆ GetShadingRateSize()

LLGL_EXPORT Extent2D LLGL::GetShadingRateSize ( ShadingRate shadingRate)

Returns the dimensions of the specified shading rate.

◆ GetStageFlags()

LLGL_EXPORT long LLGL::GetStageFlags ( const ShaderType type)

Returns the StageFlags bitmask for the specified shader type.

Returns
Bitmask of the StageFlags enumeration entries for the specified input shader type, e.g. StageFlags::VertexStage for the input ShaderType::Vertex.
See also
StageFlags
ShaderType

◆ IsInstanceOf() [1/2]

template<typename T>
bool LLGL::IsInstanceOf ( const Interface & obj)
inline

Const-reference version of IsInstanceOf.

See also
IsInstanceOf(const Interface*)

◆ IsInstanceOf() [2/2]

template<typename T>
bool LLGL::IsInstanceOf ( const Interface * obj)
inline

Returns whether the specified object is an instance of the interface specified by template parameter T.

Remarks
The typename T must be a sub class of Interface and implement the following function:
static InterfaceID GetInterfaceID();
See also
Interface::IsInstanceOf

◆ IsPrimitiveTopologyPatches()

LLGL_EXPORT bool LLGL::IsPrimitiveTopologyPatches ( const PrimitiveTopology primitiveTopology)

Returns true if the specified primitive topology is a patch list.

◆ IsPrimitiveTopologyStrip()

LLGL_EXPORT bool LLGL::IsPrimitiveTopologyStrip ( const PrimitiveTopology primitiveTopology)

Returns true if the specified primitive topology is a strip that generates a new primitive with each new vertex.

Returns
True if primitiveTopology is equal to one of the following primitive topologies:

◆ IsShaderSourceBinary()

LLGL_EXPORT bool LLGL::IsShaderSourceBinary ( const ShaderSourceType type)

Returns true if the specified shader source type is either ShaderSourceType::BinaryBuffer or ShaderSourceType::BinaryFile.

See also
ShaderSourceType

◆ IsShaderSourceCode()

LLGL_EXPORT bool LLGL::IsShaderSourceCode ( const ShaderSourceType type)

Returns true if the specified shader source type is either ShaderSourceType::CodeString or ShaderSourceType::CodeFile.

See also
ShaderSourceType

◆ LLGL_DEFINE_STRING_COMPARE_OPERATORS() [1/5]

LLGL::LLGL_DEFINE_STRING_COMPARE_OPERATORS ( ! ,
!  )

◆ LLGL_DEFINE_STRING_COMPARE_OPERATORS() [2/5]

LLGL::LLGL_DEFINE_STRING_COMPARE_OPERATORS ( <, > )

◆ LLGL_DEFINE_STRING_COMPARE_OPERATORS() [3/5]

LLGL::LLGL_DEFINE_STRING_COMPARE_OPERATORS ( <= ,
>=  )

◆ LLGL_DEFINE_STRING_COMPARE_OPERATORS() [4/5]

LLGL::LLGL_DEFINE_STRING_COMPARE_OPERATORS ( )

◆ LLGL_DEFINE_STRING_COMPARE_OPERATORS() [5/5]

LLGL::LLGL_DEFINE_STRING_COMPARE_OPERATORS ( >= ,
<=  )

◆ MaxColorValue()

template<typename T>
T LLGL::MaxColorValue ( )
inline

Returns the maximal color value for the data type T. By default 1.

◆ MaxColorValue< bool >()

template<>
bool LLGL::MaxColorValue< bool > ( )
inline

Specialized version. For booleans, the return value is true.

◆ MaxColorValue< std::uint8_t >()

template<>
std::uint8_t LLGL::MaxColorValue< std::uint8_t > ( )
inline

Specialized version. For unsigned 8-bit integers, the return value is 255.

◆ operator!=() [1/5]

bool LLGL::operator!= ( const BindingSlot & lhs,
const BindingSlot & rhs )
inline

Returns true if the specified binding slots are not equal, i.e. index and set are not equal.

◆ operator!=() [2/5]

template<typename T, std::size_t N>
bool LLGL::operator!= ( const Color< T, N > & lhs,
const Color< T, N > & rhs )

Returns true if any component of both colors 'lhs' and 'rhs' are unequal.

Remarks
The comparison uses the 'operator ==' of the underlying component type. Note that this comparison is quite limited for floating-point types, due to precision issues.

◆ operator!=() [3/5]

LLGL_EXPORT bool LLGL::operator!= ( const DisplayMode & lhs,
const DisplayMode & rhs )

Compares the two specified display mode descriptors on inequality.

◆ operator!=() [4/5]

LLGL_EXPORT bool LLGL::operator!= ( const VertexAttribute & lhs,
const VertexAttribute & rhs )

Compares the two VertexAttribute types for inequality (including their names and all other members).

◆ operator!=() [5/5]

bool LLGL::operator!= ( VersionInfo lhs,
VersionInfo rhs )
inline

Returns true if both VersionInfo arguments are not equal.

See also
Compare(VersionInfo)

◆ operator*() [1/3]

template<typename T, std::size_t N>
Color< T, N > LLGL::operator* ( const Color< T, N > & lhs,
const Color< T, N > & rhs )

◆ operator*() [2/3]

template<typename T, std::size_t N>
Color< T, N > LLGL::operator* ( const Color< T, N > & lhs,
const T & rhs )

◆ operator*() [3/3]

template<typename T, std::size_t N>
Color< T, N > LLGL::operator* ( const T & lhs,
const Color< T, N > & rhs )

◆ operator+() [1/6]

template<typename TChar, typename Traits>
UTF8String LLGL::operator+ ( const BasicStringView< TChar, Traits > & lhs,
const UTF8String & rhs )
inline

◆ operator+() [2/6]

template<typename T, std::size_t N>
Color< T, N > LLGL::operator+ ( const Color< T, N > & lhs,
const Color< T, N > & rhs )

◆ operator+() [3/6]

template<typename TChar>
UTF8String LLGL::operator+ ( const TChar * lhs,
const UTF8String & rhs )
inline

◆ operator+() [4/6]

template<typename TChar, typename Traits>
UTF8String LLGL::operator+ ( const UTF8String & lhs,
const BasicStringView< TChar, Traits > & rhs )
inline

◆ operator+() [5/6]

template<typename TChar>
UTF8String LLGL::operator+ ( const UTF8String & lhs,
const TChar * rhs )
inline

◆ operator+() [6/6]

UTF8String LLGL::operator+ ( const UTF8String & lhs,
const UTF8String & rhs )
inline

Concatenates the two UTF-8 string.

◆ operator-()

template<typename T, std::size_t N>
Color< T, N > LLGL::operator- ( const Color< T, N > & lhs,
const Color< T, N > & rhs )

◆ operator/() [1/3]

template<typename T, std::size_t N>
Color< T, N > LLGL::operator/ ( const Color< T, N > & lhs,
const Color< T, N > & rhs )

◆ operator/() [2/3]

template<typename T, std::size_t N>
Color< T, N > LLGL::operator/ ( const Color< T, N > & lhs,
const T & rhs )

◆ operator/() [3/3]

template<typename T, std::size_t N>
Color< T, N > LLGL::operator/ ( const T & lhs,
const Color< T, N > & rhs )

◆ operator<()

bool LLGL::operator< ( VersionInfo lhs,
VersionInfo rhs )
inline

Returns true if lhs describes an earlier version than rhs.

See also
Compare(VersionInfo)

◆ operator<=()

bool LLGL::operator<= ( VersionInfo lhs,
VersionInfo rhs )
inline

Returns true if lhs describes an earlier or equal version as rhs.

See also
Compare(VersionInfo)

◆ operator==() [1/5]

bool LLGL::operator== ( const BindingSlot & lhs,
const BindingSlot & rhs )
inline

Returns true if the specified binding slots are equal, i.e. index and set are equal.

◆ operator==() [2/5]

template<typename T, std::size_t N>
bool LLGL::operator== ( const Color< T, N > & lhs,
const Color< T, N > & rhs )

Returns true if all components of both colors 'lhs' and 'rhs' are equal.

Remarks
The comparison uses the 'operator ==' of the underlying component type. Note that this comparison is quite limited for floating-point types, due to precision issues.

◆ operator==() [3/5]

LLGL_EXPORT bool LLGL::operator== ( const DisplayMode & lhs,
const DisplayMode & rhs )

Compares the two specified display mode descriptors on equality.

◆ operator==() [4/5]

LLGL_EXPORT bool LLGL::operator== ( const VertexAttribute & lhs,
const VertexAttribute & rhs )

Compares the two VertexAttribute types for equality (including their names and all other members).

◆ operator==() [5/5]

bool LLGL::operator== ( VersionInfo lhs,
VersionInfo rhs )
inline

Returns true if both VersionInfo arguments are equal.

See also
Compare(VersionInfo)

◆ operator>()

bool LLGL::operator> ( VersionInfo lhs,
VersionInfo rhs )
inline

Returns true if lhs describes a newer version than rhs.

See also
Compare(VersionInfo)

◆ operator>=()

bool LLGL::operator>= ( VersionInfo lhs,
VersionInfo rhs )
inline

Returns true if lhs describes a newer or equal version as rhs.

See also
Compare(VersionInfo)

◆ ToString() [1/3]

LLGL_EXPORT const char * LLGL::ToString ( VersionInfo info)

Returns a string representation of the specified version.

Remarks
This version of this function uses an internal thread-local buffer and can therefore only be used for one version at a time. To forward the return value to a printf function directly for instance, use the other version of this function and provide it with a custom buffer.
See also
ToString(VersionInfo, std::size_t, char*)

◆ ToString() [2/3]

LLGL_EXPORT const char * LLGL::ToString ( VersionInfo info,
std::size_t bufferSize,
char * buffer,
std::size_t * outMinBufferSize = nullptr )

Returns a string representation of the specified version using a custom buffer.

Parameters
[in]infoSpecifies the version information to print as a string.
[in]bufferSizeSpecifies the size (in number of characters) of the output buffer. This size includes the NUL-terminator.
[out]bufferPointer to the output buffer to write the string representation to. This buffer must point to a memory block of at least bufferSize characters. This may also be null, in which case only the outMinBufferSize is used to write out the requird buffer size.
[out]outMinBufferSizeOptional pointer the function can write the required buffer size to.
Returns
Same value as buffer parameter for convenient use in printf style functions.
See also
ToString(VersionInfo)

◆ ToString() [3/3]

LLGL_EXPORT const char * LLGL::ToString ( VersionStatus status)

Returns a string representation of the specified version status or null if undefined (VersionStatus::Undefined).

◆ Trap()

LLGL_EXPORT void LLGL::Trap ( Exception exception,
const char * origin,
const char * format,
... )

Primary function to trap execution from an unrecoverable state.

Parameters
[in]exceptionSpecifies what type of exception this function should throw if exceptions are enabled.
[in]originSpecifies the origin where execution is trapped. This can be the special preprocessor macro __FUNCTION__ for instance.
[in]formatSpecifies the formatted string as used with printf.
Remarks
This might either throw an exception, abort execution, or break the debugger depending on the configuration LLGL was built with. LLGL does not handle exceptions of any kind but can throw exceptions (if built with LLGL_ENABLE_EXCEPTIONS) to let the client programmer exit the application gracefully. Otherwise, this function simply aborts execution and dumps the callstack to the standard error pipe.

◆ ValidateRenderingCaps()

LLGL_EXPORT bool LLGL::ValidateRenderingCaps ( const RenderingCapabilities & presentCaps,
const RenderingCapabilities & requiredCaps,
const ValidateRenderingCapsFunc & callback = {} )

Validates the presence of the specified required rendering capabilities.

Parameters
[in]presentCapsSpecifies the rendering capabilities that are present for a certain renderer.
[in]requiredCapsSpecifies the rendering capabilities that are required for the host application to work properly.
[in]callbackOptional callback to retrieve information about the attributes that did not fulfill the requirement. If this is null the validation process breaks with the first attribute that did not fulfill the requirement. By default null.
Returns
True on success, otherwise at least one attribute did not fulfill the requirement.
Remarks
Here is an example usage to print out all attributes that did not fulfill the requirement:
// Initialize the requirements
myRequirements.features.hasStorageBuffers = true;
myRequirements.features.hasComputeShaders = true;
myRequirements.limits.maxComputeShaderWorkGroups[0] = 1024;
myRequirements.limits.maxComputeShaderWorkGroups[1] = 1024;
myRequirements.limits.maxComputeShaderWorkGroups[2] = 1;
myRequirements.limits.maxComputeShaderWorkGroupSize[0] = 8;
myRequirements.limits.maxComputeShaderWorkGroupSize[1] = 8;
myRequirements.limits.maxComputeShaderWorkGroupSize[2] = 8;
// Validate rendering capabilities supported by the render system
myRenderer->GetRenderingCaps(),
myRequirements,
[](const std::string& info, const std::string& attrib) {
::fprintf(stderr, "%s: %s\n", info.c_str(), attrib.c_str());
return true;
}
);
LLGL_EXPORT bool ValidateRenderingCaps(const RenderingCapabilities &presentCaps, const RenderingCapabilities &requiredCaps, const ValidateRenderingCapsFunc &callback={})
Validates the presence of the specified required rendering capabilities.
Structure with all attributes describing the rendering capabilities of the render system.
Definition RenderSystemFlags.h:944
RenderingLimits limits
Specifies all rendering limitations.
Definition RenderSystemFlags.h:1016
RenderingFeatures features
Specifies all supported hardware features.
Definition RenderSystemFlags.h:1010
bool hasComputeShaders
Specifies whether compute shaders are supported.
Definition RenderSystemFlags.h:618
bool hasStorageBuffers
Specifies whether storage buffers (also "read/write buffers") are supported.
Definition RenderSystemFlags.h:586
std::uint32_t maxComputeShaderWorkGroupSize[3]
Specifies the maximum work group size in a compute shader.
Definition RenderSystemFlags.h:809
std::uint32_t maxComputeShaderWorkGroups[3]
Specifies the maximum number of work groups in a compute shader.
Definition RenderSystemFlags.h:806
Note
The following attributes of the RenderingCapabilities structure are ignored: 'screenOrigin' and 'clippingRange'.
See also
RenderingCapabilities
ValidateRenderingCapsFunc