|
|
@@ -1,6 +1,8 @@
|
|
|
-- vim: syntax=lua
|
|
|
-- bgfx interface
|
|
|
|
|
|
+version(99)
|
|
|
+
|
|
|
typedef "bool"
|
|
|
typedef "char"
|
|
|
typedef "float"
|
|
|
@@ -25,6 +27,393 @@ funcptr.ReleaseFn
|
|
|
.ptr "void*" --- Pointer to allocated data.
|
|
|
.userData "void*" --- User defined data if needed.
|
|
|
|
|
|
+--- Color RGB/alpha/depth write. When it's not specified write will be disabled.
|
|
|
+flag.StateWrite { bits = 64 , base = 1 }
|
|
|
+ .R --- Enable R write.
|
|
|
+ .G --- Enable G write.
|
|
|
+ .B --- Enable B write.
|
|
|
+ .A --- Enable alpha write.
|
|
|
+ .Z ( 39 ) --- Enable depth write.
|
|
|
+ .Rgb { "R", "G", "B" } --- Enable RGB write.
|
|
|
+ .Mask { "Rgb", "A", "Z" } --- Write all channels mask.
|
|
|
+
|
|
|
+--- Depth test state. When `BGFX_STATE_DEPTH_` is not specified depth test will be disabled.
|
|
|
+flag.StateDepthTest { bits = 64, shift = 4, range = 4, base = 1 , desc = "Depth test state" }
|
|
|
+ .Less --- Enable depth test, less.
|
|
|
+ .Lequal --- Enable depth test, less or equal.
|
|
|
+ .Equal --- Enable depth test, equal.
|
|
|
+ .Gequal --- Enable depth test, greater or equal.
|
|
|
+ .Greater --- Enable depth test, greater.
|
|
|
+ .Notequal --- Enable depth test, not equal.
|
|
|
+ .Never --- Enable depth test, never.
|
|
|
+ .Always --- Enable depth test, always.
|
|
|
+ ()
|
|
|
+
|
|
|
+--- Use BGFX_STATE_BLEND_FUNC(_src, _dst) or BGFX_STATE_BLEND_FUNC_SEPARATE(_srcRGB, _dstRGB, _srcA, _dstA)
|
|
|
+--- helper macros.
|
|
|
+flag.StateBlend { bits = 64, shift = 12, range = 16, base = 1, desc = "Blend state" }
|
|
|
+ .Zero --- 0, 0, 0, 0
|
|
|
+ .One --- 1, 1, 1, 1
|
|
|
+ .SrcColor --- Rs, Gs, Bs, As
|
|
|
+ .InvSrcColor --- 1-Rs, 1-Gs, 1-Bs, 1-As
|
|
|
+ .SrcAlpha --- As, As, As, As
|
|
|
+ .InvSrcAlpha --- 1-As, 1-As, 1-As, 1-As
|
|
|
+ .DstAlpha --- Ad, Ad, Ad, Ad
|
|
|
+ .InvDstAlpha --- 1-Ad, 1-Ad, 1-Ad ,1-Ad
|
|
|
+ .DstColor --- Rd, Gd, Bd, Ad
|
|
|
+ .InvDstColor --- 1-Rd, 1-Gd, 1-Bd, 1-Ad
|
|
|
+ .SrcAlphaSat --- f, f, f, 1; f = min(As, 1-Ad)
|
|
|
+ .Factor --- Blend factor
|
|
|
+ .Inv_Factor --- 1-Blend factor
|
|
|
+ ()
|
|
|
+
|
|
|
+--- Use BGFX_STATE_BLEND_EQUATION(_equation) or BGFX_STATE_BLEND_EQUATION_SEPARATE(_equationRGB, _equationA)
|
|
|
+--- helper macros.
|
|
|
+flag.StateBlendEquation { bits = 64, shift = 28, range = 6, base = 0, desc = "Blend equation" }
|
|
|
+ .Add --- Blend add: src + dst.
|
|
|
+ .Sub --- Blend subtract: src - dst.
|
|
|
+ .Revsub --- Blend reverse subtract: dst - src.
|
|
|
+ .Min --- Blend min: min(src, dst).
|
|
|
+ .Max --- Blend max: max(src, dst).
|
|
|
+ ()
|
|
|
+
|
|
|
+--- Cull state. When `BGFX_STATE_CULL_*` is not specified culling will be disabled.
|
|
|
+flag.StateCull { bits = 64, shift = 36, range = 2, base = 1, desc = "Culling mode" }
|
|
|
+ .Cw --- Cull clockwise triangles.
|
|
|
+ .Ccw --- Cull counter-clockwise triangles.
|
|
|
+ ()
|
|
|
+
|
|
|
+--- Alpha reference value.
|
|
|
+flag.StateAlphaRef { bits = 64, shift = 40, range = 8, desc = "Alpha reference", "helper" }
|
|
|
+
|
|
|
+flag.StatePt { bits = 64, shift = 48, range = 3, desc = "Primitive type" }
|
|
|
+ .Tristrip --- Tristrip.
|
|
|
+ .Lines --- Lines.
|
|
|
+ .Linestrip --- Line strip.
|
|
|
+ .Points --- Points.
|
|
|
+ ()
|
|
|
+
|
|
|
+--- Point size value.
|
|
|
+flag.StatePointSize { bits = 64, shift = 52, range = 4, desc = "Point size", "helper" }
|
|
|
+
|
|
|
+--- Enable MSAA write when writing into MSAA frame buffer.
|
|
|
+--- This flag is ignored when not writing into MSAA frame buffer.
|
|
|
+flag.State { bits = 64 , range = 64 , desc = "State" }
|
|
|
+ .Msaa (57) --- Enable MSAA rasterization.
|
|
|
+ .Lineaa (58) --- Enable line AA rasterization.
|
|
|
+ .ConservativeRaster (59) --- Enable conservative rasterization.
|
|
|
+ .None (0) --- No state.
|
|
|
+ .BlendIndependent(35) --- Enable blend independent.
|
|
|
+ .BlendAlphaToCoverage (36) --- Enable alpha to coverage.
|
|
|
+ .Default { "WriteRgb", "WriteA", "WriteZ", "DepthTestLess", "CullCw", "Msaa" }
|
|
|
+ --- Default state is write to RGB, alpha, and depth with depth test less enabled, with clockwise
|
|
|
+ --- culling and MSAA (when writing into MSAA frame buffer, otherwise this flag is ignored).
|
|
|
+
|
|
|
+
|
|
|
+--- Do not use!
|
|
|
+flag.StateReserved { bits = 64, shift = 61, range = 3 }
|
|
|
+
|
|
|
+--- Set stencil ref value.
|
|
|
+flag.StencilFuncRef { bits = 32, shift = 0, range = 8, "helper" }
|
|
|
+
|
|
|
+--- Set stencil rmask value.
|
|
|
+flag.StencilFuncRmask { bits = 32, shift = 8, range = 8, "helper" }
|
|
|
+
|
|
|
+flag.Stencil { bits = 32, const }
|
|
|
+ .None (0x00000000)
|
|
|
+ .Mask (0xffffffff)
|
|
|
+ .Default (0x00000000)
|
|
|
+
|
|
|
+flag.StencilTest { bits = 32, shift = 16, range = 4 , base = 1, desc = "Stencil test" }
|
|
|
+ .Less --- Enable stencil test, less.
|
|
|
+ .Lequal --- Enable stencil test, less or equal.
|
|
|
+ .Equal --- Enable stencil test, equal.
|
|
|
+ .Gequal --- Enable stencil test, greater or equal.
|
|
|
+ .Greater --- Enable stencil test, greater.
|
|
|
+ .Notequal --- Enable stencil test, not equal.
|
|
|
+ .Never --- Enable stencil test, never.
|
|
|
+ .Always --- Enable stencil test, always.
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.StencilOpFailS { bits = 32, shift = 20, range = 4, base = 0, desc = "Stencil operation fail" }
|
|
|
+ .Zero --- Zero.
|
|
|
+ .Keep --- Keep.
|
|
|
+ .Replace --- Replace.
|
|
|
+ .Incr --- Increment and wrap.
|
|
|
+ .Incrsat --- Increment and clamp.
|
|
|
+ .Decr --- Decrement and wrap.
|
|
|
+ .Decrsat --- Decrement and clamp.
|
|
|
+ .Invert --- Invert.
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.StencilOpFailZ { bits = 32, shift = 24, range = 4, base = 0, desc = "Stencil operation depth fail" }
|
|
|
+ .Zero --- Zero.
|
|
|
+ .Keep --- Keep.
|
|
|
+ .Replace --- Replace.
|
|
|
+ .Incr --- Increment and wrap.
|
|
|
+ .Incrsat --- Increment and clamp.
|
|
|
+ .Decr --- Decrement and wrap.
|
|
|
+ .Decrsat --- Decrement and clamp.
|
|
|
+ .Invert --- Invert.
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.StencilOpPassZ { bits = 32, shift = 28, range = 4 , base = 0, desc = "Stencil operation depth pass" }
|
|
|
+ .Zero --- Zero.
|
|
|
+ .Keep --- Keep.
|
|
|
+ .Replace --- Replace.
|
|
|
+ .Incr --- Increment and wrap.
|
|
|
+ .Incrsat --- Increment and clamp.
|
|
|
+ .Decr --- Decrement and wrap.
|
|
|
+ .Decrsat --- Decrement and clamp.
|
|
|
+ .Invert --- Invert.
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.Clear { bits = 16 }
|
|
|
+ .None --- No clear flags.
|
|
|
+ .Color --- Clear color.
|
|
|
+ .Depth --- Clear depth.
|
|
|
+ .Stencil --- Clear stencil.
|
|
|
+ .DiscardColor0 --- Discard frame buffer attachment 0.
|
|
|
+ .DiscardColor1 --- Discard frame buffer attachment 1.
|
|
|
+ .DiscardColor2 --- Discard frame buffer attachment 2.
|
|
|
+ .DiscardColor3 --- Discard frame buffer attachment 3.
|
|
|
+ .DiscardColor4 --- Discard frame buffer attachment 4.
|
|
|
+ .DiscardColor5 --- Discard frame buffer attachment 5.
|
|
|
+ .DiscardColor6 --- Discard frame buffer attachment 6.
|
|
|
+ .DiscardColor7 --- Discard frame buffer attachment 7.
|
|
|
+ .DiscardDepth --- Discard frame buffer depth attachment.
|
|
|
+ .DiscardStencil --- Discard frame buffer stencil attachment.
|
|
|
+ .DiscardColorMask {
|
|
|
+ "DiscardColor0",
|
|
|
+ "DiscardColor1",
|
|
|
+ "DiscardColor2",
|
|
|
+ "DiscardColor3",
|
|
|
+ "DiscardColor4",
|
|
|
+ "DiscardColor5",
|
|
|
+ "DiscardColor6",
|
|
|
+ "DiscardColor7"
|
|
|
+ }
|
|
|
+ .DiscardMask {
|
|
|
+ "DiscardColorMask",
|
|
|
+ "DiscardDepth",
|
|
|
+ "DiscardStencil"
|
|
|
+ }
|
|
|
+
|
|
|
+flag.Debug { bits = 32 }
|
|
|
+ .None --- No debug.
|
|
|
+ .Wireframe --- Enable wireframe for all primitives.
|
|
|
+ .Ifh --- Enable infinitely fast hardware test. No draw calls will be submitted to driver. It’s useful when profiling to quickly assess bottleneck between CPU and GPU.
|
|
|
+ .Stats --- Enable statistics display.
|
|
|
+ .Text --- Enable debug text display.
|
|
|
+ .Profiler --- Enable profiler.
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.BufferComputeFormat { bits = 16, shift = 0, range = 4, base = 1 }
|
|
|
+ ["8x1"] --- 1 8-bit value
|
|
|
+ ["8x2"] --- 2 8-bit values
|
|
|
+ ["8x4"] --- 4 8-bit values
|
|
|
+ ["16x1"] --- 1 16-bit value
|
|
|
+ ["16x2"] --- 2 16-bit values
|
|
|
+ ["16x4"] --- 4 16-bit values
|
|
|
+ ["32x1"] --- 1 32-bit value
|
|
|
+ ["32x2"] --- 2 32-bit values
|
|
|
+ ["32x4"] --- 4 32-bit values
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.BufferComputeType { bits = 16, shift = 4, range = 2, base = 1 }
|
|
|
+ .Int --- Type `int`.
|
|
|
+ .Uint --- Type `uint`.
|
|
|
+ .Float --- Type `float`.
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.Buffer { bits = 16, base = 8 }
|
|
|
+ .None(0)
|
|
|
+ .ComputeRead --- Buffer will be read by shader.
|
|
|
+ .ComputeWrite --- Buffer will be used for writing.
|
|
|
+ .DrawIndirect --- Buffer will be used for storing draw indirect commands.
|
|
|
+ .AllowResize --- Allow dynamic index/vertex buffer resize during update.
|
|
|
+ .Index32 { cname = "INDEX32" } --- Index buffer contains 32-bit indices.
|
|
|
+ .ComputeReadWrite { "ComputeRead" , "ComputeWrite" }
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.Texture { bits = 64 }
|
|
|
+ .None (0)
|
|
|
+ .MsaaSample (36) --- Texture will be used for MSAA sampling.
|
|
|
+ .Rt (37) --- Render target no MSAA.
|
|
|
+ .ComputeWrite (45) --- Texture will be used for compute write.
|
|
|
+ .Srgb (46) --- Sample texture as sRGB.
|
|
|
+ .BlitDst (47) --- Texture will be used as blit destination.
|
|
|
+ .ReadBack (48) --- Texture will be used for read back from GPU.
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.TextureRtMsaa { bits = 64, shift = 36, range = 3 , base = 2 }
|
|
|
+ .X2 --- Render target MSAAx2 mode.
|
|
|
+ .X4 --- Render target MSAAx4 mode.
|
|
|
+ .X8 --- Render target MSAAx8 mode.
|
|
|
+ .X16 --- Render target MSAAx16 mode.
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.TextureRt { bits = 64, shift = 36, range = 4 }
|
|
|
+ .WriteOnly (9) --- Render target will be used for writing
|
|
|
+
|
|
|
+--- Sampler flags.
|
|
|
+flag.SamplerU { bits = 32, shift = 0, range = 2, base = 1 }
|
|
|
+ .Mirror --- Wrap U mode: Mirror
|
|
|
+ .Clamp --- Wrap U mode: Clamp
|
|
|
+ .Border --- Wrap U mode: Border
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.SamplerV { bits = 32, shift = 2, range = 2, base = 1 }
|
|
|
+ .Mirror --- Wrap V mode: Mirror
|
|
|
+ .Clamp --- Wrap V mode: Clamp
|
|
|
+ .Border --- Wrap V mode: Border
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.SamplerW { bits = 32, shift = 4, range = 2, base = 1 }
|
|
|
+ .Mirror --- Wrap W mode: Mirror
|
|
|
+ .Clamp --- Wrap W mode: Clamp
|
|
|
+ .Border --- Wrap W mode: Border
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.SamplerMin { bits = 32, shift = 6, range = 2, base = 1 }
|
|
|
+ .Point --- Min sampling mode: Point
|
|
|
+ .Anisotropic --- Min sampling mode: Anisotropic
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.SamplerMag { bits = 32, shift = 8, range = 2, base = 1 }
|
|
|
+ .Point --- Mag sampling mode: Point
|
|
|
+ .Anisotropic --- Mag sampling mode: Anisotropic
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.SamplerMip { bits = 32, shift = 10, range = 1, base = 1 }
|
|
|
+ .Point --- Mip sampling mode: Point
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.SamplerCompare { bits = 32 , shift = 16, range = 4, base = 1 }
|
|
|
+ .Less --- Compare when sampling depth texture: less.
|
|
|
+ .Lequal --- Compare when sampling depth texture: less or equal.
|
|
|
+ .Equal --- Compare when sampling depth texture: equal.
|
|
|
+ .Gequal --- Compare when sampling depth texture: greater or equal.
|
|
|
+ .Greater --- Compare when sampling depth texture: greater.
|
|
|
+ .Notequal --- Compare when sampling depth texture: not equal.
|
|
|
+ .Never --- Compare when sampling depth texture: never.
|
|
|
+ .Always --- Compare when sampling depth texture: always.
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.SamplerBorderColor { bits = 32, shift = 24, range = 4, "helper" }
|
|
|
+flag.SamplerReserved { bits = 32, shift = 28, range = 4 }
|
|
|
+
|
|
|
+flag.Sampler { bits = 32 }
|
|
|
+ .None
|
|
|
+ .SampleStencil (21) --- Sample stencil instead of depth.
|
|
|
+ .Point { "MinPoint", "MagPoint", "MipPoint" }
|
|
|
+ .UvwMirror { "UMirror", "VMirror", "WMirror" }
|
|
|
+ .UvwClamp { "UClamp", "VClamp", "WClamp" }
|
|
|
+ .UvwBorder { "UBorder", "VBorder", "WBorder" }
|
|
|
+ .BitsMask { "UMask", "VMask", "WMask", "MinMask", "MagMask", "MipMask", "CompareMask" }
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.ResetFullscreen { bits = 32, shift = 0, range = 1, base = 1 }
|
|
|
+ .Fullscreen --- Not supported yet.
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.ResetMsaa { bits = 32, shift = 4, range = 3, base = 1 }
|
|
|
+ .X2 --- Enable 2x MSAA.
|
|
|
+ .X4 --- Enable 4x MSAA.
|
|
|
+ .X8 --- Enable 8x MSAA.
|
|
|
+ .X16 --- Enable 16x MSAA.
|
|
|
+ ()
|
|
|
+
|
|
|
+
|
|
|
+flag.Reset { bits = 32 }
|
|
|
+ .None (0) --- No reset flags.
|
|
|
+ .Vsync (8) --- Enable V-Sync.
|
|
|
+ .Maxanisotropy (9) --- Turn on/off max anisotropy.
|
|
|
+ .Capture (10) --- Begin screen capture.
|
|
|
+ .FlushAfterRender (14) --- Flush rendering after submitting to GPU.
|
|
|
+ .FlipAfterRender (15) --- This flag specifies where flip occurs. Default behavior is that flip occurs before rendering new frame. This flag only has effect when `BGFX_CONFIG_MULTITHREADED=0`.
|
|
|
+ .SrgbBackbuffer (16) --- Enable sRGB backbuffer.
|
|
|
+ .Hdr10 (17) --- Enable HDR10 rendering.
|
|
|
+ .Hidpi (18) --- Enable HiDPI rendering.
|
|
|
+ .DepthClamp (19) --- Enable depth clamp.
|
|
|
+ .Suspend (20) --- Suspend rendering.
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.ResetReserved { bits = 32, shift = 31, range = 1 , desc = "Internal" }
|
|
|
+
|
|
|
+flag.Caps { bits = 64, base = 1, name = "Caps" }
|
|
|
+ .AlphaToCoverage --- Alpha to coverage is supported.
|
|
|
+ .BlendIndependent --- Blend independent is supported.
|
|
|
+ .Compute --- Compute shaders are supported.
|
|
|
+ .ConservativeRaster --- Conservative rasterization is supported.
|
|
|
+ .DrawIndirect --- Draw indirect is supported.
|
|
|
+ .FragmentDepth --- Fragment depth is accessible in fragment shader.
|
|
|
+ .FragmentOrdering --- Fragment ordering is available in fragment shader.
|
|
|
+ .FramebufferRw --- Read/Write frame buffer attachments are supported.
|
|
|
+ .GraphicsDebugger --- Graphics debugger is present.
|
|
|
+ .Reserved
|
|
|
+ .Hdr10 { cname = "HDR10" } --- HDR10 rendering is supported.
|
|
|
+ .Hidpi --- HiDPI rendering is supported.
|
|
|
+ .Index32 { cname = "INDEX32" } --- 32-bit indices are supported.
|
|
|
+ .Instancing --- Instancing is supported.
|
|
|
+ .OcclusionQuery --- Occlusion query is supported.
|
|
|
+ .RendererMultithreaded --- Renderer is on separate thread.
|
|
|
+ .SwapChain --- Multiple windows are supported.
|
|
|
+ .Texture2dArray --- 2D texture array is supported.
|
|
|
+ .Texture3d --- 3D textures are supported.
|
|
|
+ .TextureBlit --- Texture blit is supported.
|
|
|
+ .TextureCompareReserved --- All texture compare modes are supported.
|
|
|
+ .TextureCompareLequal --- Texture compare less equal mode is supported.
|
|
|
+ .TextureCubeArray --- Cubemap texture array is supported.
|
|
|
+ .TextureDirectAccess --- CPU direct access to GPU texture memory.
|
|
|
+ .TextureReadBack --- Read-back texture is supported.
|
|
|
+ .VertexAttribHalf --- Vertex attribute half-float is supported.
|
|
|
+ .VertexAttribUint10 { cname = "VERTEX_ATTRIB_UINT10" } --- Vertex attribute 10_10_10_2 is supported.
|
|
|
+ .VertexId --- Rendering with VertexID only is supported.
|
|
|
+ .TextureCompareAll { "TextureCompareReserved", "TextureCompareLequal" } --- All texture compare modes are supported.
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.CapsFormat { bits = 16 }
|
|
|
+ .TextureNone --- Texture format is not supported.
|
|
|
+ .Texture2d --- Texture format is supported.
|
|
|
+ .Texture2dSrgb --- Texture as sRGB format is supported.
|
|
|
+ .Texture2dEmulated --- Texture format is emulated.
|
|
|
+ .Texture3d --- Texture format is supported.
|
|
|
+ .Texture3dSrgb --- Texture as sRGB format is supported.
|
|
|
+ .Texture3dEmulated --- Texture format is emulated.
|
|
|
+ .TextureCube --- Texture format is supported.
|
|
|
+ .TextureCubeSrgb --- Texture as sRGB format is supported.
|
|
|
+ .TextureCubeEmulated --- Texture format is emulated.
|
|
|
+ .TextureVertex --- Texture format can be used from vertex shader.
|
|
|
+ .TextureImage --- Texture format can be used as image from compute shader.
|
|
|
+ .TextureFramebuffer --- Texture format can be used as frame buffer.
|
|
|
+ .TextureFramebufferMsaa --- Texture format can be used as MSAA frame buffer.
|
|
|
+ .TextureMsaa --- Texture can be sampled as MSAA.
|
|
|
+ .TextureMipAutogen --- Texture format supports auto-generated mips.
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.Resolve { bits = 8 }
|
|
|
+ .None --- No resolve flags.
|
|
|
+ .AutoGenMips --- Auto-generate mip maps on resolve.
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.PciId { bits = 16 , const }
|
|
|
+ .None (0x0000) --- Autoselect adapter.
|
|
|
+ .SoftwareRasterizer (0x0001) --- Software rasterizer.
|
|
|
+ .Amd (0x1002) --- AMD adapter.
|
|
|
+ .Intel (0x8086) --- Intel adapter.
|
|
|
+ .Nvidia (0x10de) --- nVidia adapter.
|
|
|
+ ()
|
|
|
+
|
|
|
+flag.CubeMap { bits = 8, const }
|
|
|
+ .PositiveX (0x00) --- Cubemap +x.
|
|
|
+ .NegativeX (0x01) --- Cubemap -x.
|
|
|
+ .PositiveY (0x02) --- Cubemap +y.
|
|
|
+ .NegativeY (0x03) --- Cubemap -y.
|
|
|
+ .PositiveZ (0x04) --- Cubemap +z.
|
|
|
+ .NegativeZ (0x05) --- Cubemap -z.
|
|
|
+ ()
|
|
|
+
|
|
|
--- Fatal error enum.
|
|
|
enum.Fatal { underscore, comment = "" }
|
|
|
.DebugCheck
|