Showing preview only (6,412K chars total). Download the full file or copy to clipboard to get everything.
Repository: alipbcs/ZetaRay
Branch: master
Commit: 6fd82f1e7336
Files: 358
Total size: 6.0 MB
Directory structure:
gitextract_aors0i3m/
├── .gitattributes
├── .github/
│ └── workflows/
│ └── build.yml
├── .gitignore
├── Assets/
│ ├── CornellBox/
│ │ ├── compressed/
│ │ │ └── checkerboard.dds
│ │ ├── cornell.gltf
│ │ ├── cornell_emissive.gltf
│ │ └── license.txt
│ ├── Font/
│ │ ├── Font.h
│ │ ├── IconsFontAwesome6.h
│ │ └── LICENSE-bfont.ttf.txt
│ └── LUT/
│ ├── LICENSE-MIT
│ ├── rho.dds
│ └── tony_mc_mapface.dds
├── CMake/
│ ├── CompileHLSL.cmake
│ ├── Copy.cmake
│ ├── SetBuildConfigurations.cmake
│ ├── SetupAgilitySDK.cmake
│ ├── SetupDXC.cmake
│ ├── SetupDoctest.cmake
│ ├── SetupImGui.cmake
│ ├── SetupWinPIX.cmake
│ ├── Setupcgltf.cmake
│ └── SetupxxHash.cmake
├── CMakeLists.txt
├── External/
│ ├── FSR2/
│ │ └── Include/
│ │ ├── dx12/
│ │ │ └── shaders/
│ │ │ └── ffx_fsr2_shaders_dx12.h
│ │ ├── ffx_assert.h
│ │ ├── ffx_error.h
│ │ ├── ffx_fsr2.h
│ │ ├── ffx_fsr2_interface.h
│ │ ├── ffx_types.h
│ │ ├── ffx_util.h
│ │ └── shaders/
│ │ ├── ffx_fsr2_common.h
│ │ └── ffx_fsr2_resources.h
│ ├── FastDelegate/
│ │ ├── FastDelegate.h
│ │ └── FastDelegateBind.h
│ ├── ImGui/
│ │ ├── ImGuizmo.cpp
│ │ ├── ImGuizmo.h
│ │ └── imconfig.h
│ ├── concurrentqueue/
│ │ ├── blockingconcurrentqueue.h
│ │ ├── concurrentqueue.h
│ │ └── lightweightsemaphore.h
│ └── stb/
│ ├── stb_image.h
│ ├── stb_image_write.h
│ └── stb_sprintf.h
├── LICENSE
├── README.md
├── Source/
│ ├── CMakeLists.txt
│ ├── ZetaCore/
│ │ ├── App/
│ │ │ ├── App.h
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Common.h
│ │ │ ├── Filesystem.h
│ │ │ ├── Log.h
│ │ │ ├── Path.h
│ │ │ ├── Timer.h
│ │ │ └── ZetaRay.h
│ │ ├── CMakeLists.txt
│ │ ├── Core/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── CommandList.cpp
│ │ │ ├── CommandList.h
│ │ │ ├── CommandQueue.cpp
│ │ │ ├── CommandQueue.h
│ │ │ ├── Config.h
│ │ │ ├── DescriptorHeap.cpp
│ │ │ ├── DescriptorHeap.h
│ │ │ ├── Device.cpp
│ │ │ ├── Device.h
│ │ │ ├── Direct3DUtil.cpp
│ │ │ ├── Direct3DUtil.h
│ │ │ ├── GpuMemory.cpp
│ │ │ ├── GpuMemory.h
│ │ │ ├── GpuTimer.cpp
│ │ │ ├── GpuTimer.h
│ │ │ ├── HLSLCompat.h
│ │ │ ├── Material.h
│ │ │ ├── PipelineStateLibrary.cpp
│ │ │ ├── PipelineStateLibrary.h
│ │ │ ├── RenderGraph.cpp
│ │ │ ├── RenderGraph.h
│ │ │ ├── RendererCore.cpp
│ │ │ ├── RendererCore.h
│ │ │ ├── RootSignature.cpp
│ │ │ ├── RootSignature.h
│ │ │ ├── SharedShaderResources.cpp
│ │ │ ├── SharedShaderResources.h
│ │ │ ├── Vertex.h
│ │ │ └── dds.h
│ │ ├── Math/
│ │ │ ├── BVH.cpp
│ │ │ ├── BVH.h
│ │ │ ├── CMakeLists.txt
│ │ │ ├── CollisionFuncs.h
│ │ │ ├── CollisionTypes.h
│ │ │ ├── Color.cpp
│ │ │ ├── Color.h
│ │ │ ├── Common.cpp
│ │ │ ├── Common.h
│ │ │ ├── Matrix.h
│ │ │ ├── MatrixFuncs.h
│ │ │ ├── OctahedralVector.h
│ │ │ ├── Quaternion.h
│ │ │ ├── Sampling.cpp
│ │ │ ├── Sampling.h
│ │ │ ├── Surface.cpp
│ │ │ ├── Surface.h
│ │ │ ├── Vector.h
│ │ │ └── VectorFuncs.h
│ │ ├── Model/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Mesh.cpp
│ │ │ ├── Mesh.h
│ │ │ ├── glTF.cpp
│ │ │ ├── glTF.h
│ │ │ └── glTFAsset.h
│ │ ├── RayTracing/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── RtAccelerationStructure.cpp
│ │ │ ├── RtAccelerationStructure.h
│ │ │ └── RtCommon.h
│ │ ├── Scene/
│ │ │ ├── Asset.cpp
│ │ │ ├── Asset.h
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Camera.cpp
│ │ │ ├── Camera.h
│ │ │ ├── SceneCommon.h
│ │ │ ├── SceneCore.cpp
│ │ │ ├── SceneCore.h
│ │ │ └── SceneRenderer.h
│ │ ├── Support/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── FrameMemory.h
│ │ │ ├── Memory.h
│ │ │ ├── MemoryArena.cpp
│ │ │ ├── MemoryArena.h
│ │ │ ├── MemoryPool.cpp
│ │ │ ├── MemoryPool.h
│ │ │ ├── OffsetAllocator.cpp
│ │ │ ├── OffsetAllocator.h
│ │ │ ├── Param.cpp
│ │ │ ├── Param.h
│ │ │ ├── Stat.h
│ │ │ ├── Task.cpp
│ │ │ ├── Task.h
│ │ │ ├── ThreadPool.cpp
│ │ │ └── ThreadPool.h
│ │ ├── Utility/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Error.cpp
│ │ │ ├── Error.h
│ │ │ ├── Function.h
│ │ │ ├── HashTable.h
│ │ │ ├── Optional.h
│ │ │ ├── RNG.h
│ │ │ ├── SmallVector.h
│ │ │ ├── Span.h
│ │ │ ├── SynchronizedView.h
│ │ │ └── Utility.h
│ │ └── Win32/
│ │ ├── CMakeLists.txt
│ │ ├── Win32.h
│ │ ├── Win32App.cpp
│ │ ├── Win32Common.cpp
│ │ ├── Win32Filesystem.cpp
│ │ └── Win32Timer.cpp
│ ├── ZetaLab/
│ │ ├── CMakeLists.txt
│ │ └── ZetaLab.cpp
│ ├── ZetaRenderPass/
│ │ ├── AutoExposure/
│ │ │ ├── AutoExposure.cpp
│ │ │ ├── AutoExposure.h
│ │ │ ├── AutoExposure_Common.h
│ │ │ ├── AutoExposure_Histogram.hlsl
│ │ │ ├── AutoExposure_WeightedAvg.hlsl
│ │ │ └── CMakeLists.txt
│ │ ├── CMakeLists.txt
│ │ ├── Common/
│ │ │ ├── BSDF.hlsli
│ │ │ ├── BSDFSampling.hlsli
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Common.hlsli
│ │ │ ├── FrameConstants.h
│ │ │ ├── GBuffers.hlsli
│ │ │ ├── LightSource.hlsli
│ │ │ ├── LightVoxelGrid.hlsli
│ │ │ ├── Math.hlsli
│ │ │ ├── RT.hlsli
│ │ │ ├── RayQuery.hlsli
│ │ │ ├── SH.hlsli
│ │ │ ├── Sampling.hlsli
│ │ │ ├── StaticTextureSamplers.hlsli
│ │ │ └── Volumetric.hlsli
│ │ ├── Compositing/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Compositing.cpp
│ │ │ ├── Compositing.h
│ │ │ ├── Compositing.hlsl
│ │ │ ├── Compositing_Common.h
│ │ │ └── FireflyFilter.hlsl
│ │ ├── DirectLighting/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Emissive/
│ │ │ │ ├── DirectLighting.cpp
│ │ │ │ ├── DirectLighting.h
│ │ │ │ ├── DirectLighting_Common.h
│ │ │ │ ├── PairwiseMIS.hlsli
│ │ │ │ ├── Params.hlsli
│ │ │ │ ├── ReSTIR_DI_Spatial.hlsl
│ │ │ │ ├── ReSTIR_DI_Temporal.hlsl
│ │ │ │ ├── ReSTIR_DI_Temporal_WPS.hlsl
│ │ │ │ ├── Resampling.hlsli
│ │ │ │ ├── Reservoir.hlsli
│ │ │ │ └── Util.hlsli
│ │ │ └── Sky/
│ │ │ ├── PairwiseMIS.hlsli
│ │ │ ├── Params.hlsli
│ │ │ ├── Resampling.hlsli
│ │ │ ├── Reservoir.hlsli
│ │ │ ├── SkyDI.cpp
│ │ │ ├── SkyDI.h
│ │ │ ├── SkyDI_Common.h
│ │ │ ├── SkyDI_Spatial.hlsl
│ │ │ ├── SkyDI_Temporal.hlsl
│ │ │ └── Util.hlsli
│ │ ├── Display/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Display.cpp
│ │ │ ├── Display.h
│ │ │ ├── Display.hlsl
│ │ │ ├── Display_Common.h
│ │ │ ├── DrawPicked.hlsl
│ │ │ ├── Sobel.hlsl
│ │ │ └── Tonemap.hlsli
│ │ ├── FSR2/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── FSR2.cpp
│ │ │ └── FSR2.h
│ │ ├── GBuffer/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── GBufferRT.cpp
│ │ │ ├── GBufferRT.h
│ │ │ ├── GBufferRT.hlsli
│ │ │ ├── GBufferRT_Common.h
│ │ │ ├── GBufferRT_Inline.hlsl
│ │ │ ├── GenerateDepthBuffer.cpp
│ │ │ ├── GenerateDepthBuffer.h
│ │ │ └── GenerateDepthBuffer.hlsl
│ │ ├── GUI/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── GuiPass.cpp
│ │ │ ├── GuiPass.h
│ │ │ ├── GuiPass_Common.h
│ │ │ └── ImGui.hlsl
│ │ ├── IndirectLighting/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── IndirectLighting.cpp
│ │ │ ├── IndirectLighting.h
│ │ │ ├── IndirectLighting_Common.h
│ │ │ ├── NEE.hlsli
│ │ │ ├── PathTracer/
│ │ │ │ ├── Params.hlsli
│ │ │ │ ├── PathTracer.hlsl
│ │ │ │ └── Variants/
│ │ │ │ ├── PathTracer_WPS.hlsl
│ │ │ │ └── PathTracer_WoPS.hlsl
│ │ │ ├── ReSTIR_GI/
│ │ │ │ ├── PairwiseMIS.hlsli
│ │ │ │ ├── Params.hlsli
│ │ │ │ ├── PathTracing.hlsli
│ │ │ │ ├── ReSTIR_GI.hlsl
│ │ │ │ ├── ReSTIR_GI_NEE.hlsli
│ │ │ │ ├── Resampling.hlsli
│ │ │ │ ├── Reservoir.hlsli
│ │ │ │ └── Variants/
│ │ │ │ ├── ReSTIR_GI_LVG.hlsl
│ │ │ │ ├── ReSTIR_GI_WPS.hlsl
│ │ │ │ └── ReSTIR_GI_WoPS.hlsl
│ │ │ └── ReSTIR_PT/
│ │ │ ├── Params.hlsli
│ │ │ ├── ReSTIR_PT_NEE.hlsli
│ │ │ ├── ReSTIR_PT_PathTrace.hlsl
│ │ │ ├── ReSTIR_PT_Reconnect_CtS.hlsl
│ │ │ ├── ReSTIR_PT_Reconnect_CtT.hlsl
│ │ │ ├── ReSTIR_PT_Reconnect_StC.hlsl
│ │ │ ├── ReSTIR_PT_Reconnect_TtC.hlsl
│ │ │ ├── ReSTIR_PT_Replay.hlsl
│ │ │ ├── ReSTIR_PT_Sort.hlsl
│ │ │ ├── ReSTIR_PT_SpatialSearch.hlsl
│ │ │ ├── Reservoir.hlsli
│ │ │ ├── SampleSet.hlsli
│ │ │ ├── Shift.hlsli
│ │ │ ├── Util.hlsli
│ │ │ └── Variants/
│ │ │ ├── ReSTIR_PT_PathTrace_WPS.hlsl
│ │ │ ├── ReSTIR_PT_PathTrace_WoPS.hlsl
│ │ │ ├── ReSTIR_PT_Reconnect_CtS_E.hlsl
│ │ │ ├── ReSTIR_PT_Reconnect_CtT_E.hlsl
│ │ │ ├── ReSTIR_PT_Reconnect_StC_E.hlsl
│ │ │ ├── ReSTIR_PT_Reconnect_TtC_E.hlsl
│ │ │ ├── ReSTIR_PT_Replay_CtS.hlsl
│ │ │ ├── ReSTIR_PT_Replay_CtS_E.hlsl
│ │ │ ├── ReSTIR_PT_Replay_E.hlsl
│ │ │ ├── ReSTIR_PT_Replay_StC.hlsl
│ │ │ ├── ReSTIR_PT_Replay_StC_E.hlsl
│ │ │ ├── ReSTIR_PT_Replay_TtC.hlsl
│ │ │ ├── ReSTIR_PT_Replay_TtC_E.hlsl
│ │ │ ├── ReSTIR_PT_Sort_CtS.hlsl
│ │ │ ├── ReSTIR_PT_Sort_StC.hlsl
│ │ │ └── ReSTIR_PT_Sort_TtC.hlsl
│ │ ├── PreLighting/
│ │ │ ├── BuildLightVoxelGrid.hlsl
│ │ │ ├── CMakeLists.txt
│ │ │ ├── EstimateTriEmissivePower.hlsl
│ │ │ ├── PreLighting.cpp
│ │ │ ├── PreLighting.h
│ │ │ ├── PreLighting_Common.h
│ │ │ └── PresampleEmissives.hlsl
│ │ ├── RenderPass.h
│ │ ├── Sky/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Inscattering.hlsl
│ │ │ ├── Sky.cpp
│ │ │ ├── Sky.h
│ │ │ ├── SkyViewLUT.hlsl
│ │ │ └── Sky_Common.h
│ │ └── TAA/
│ │ ├── CMakeLists.txt
│ │ ├── TAA.cpp
│ │ ├── TAA.h
│ │ ├── TAA.hlsl
│ │ └── TAA_Common.h
│ └── ZetaRenderer/
│ ├── CMakeLists.txt
│ └── Default/
│ ├── CMakeLists.txt
│ ├── DefaultRenderer.cpp
│ ├── DefaultRenderer.h
│ ├── DefaultRendererImpl.h
│ ├── GBuffer.cpp
│ ├── PathTracer.cpp
│ └── PostProcessor.cpp
├── Tests/
│ ├── CMakeLists.txt
│ ├── TestAliasTable.cpp
│ ├── TestContainer.cpp
│ ├── TestMath.cpp
│ ├── TestOffsetAllocator.cpp
│ ├── TestOptional.cpp
│ └── main.cpp
└── Tools/
├── BCnCompressglTF/
│ ├── BCnCompressglTF.cpp
│ ├── CMakeLists.txt
│ ├── DirectXTex/
│ │ ├── BC.cpp
│ │ ├── BC.h
│ │ ├── BC4BC5.cpp
│ │ ├── BC6HBC7.cpp
│ │ ├── BCDirectCompute.cpp
│ │ ├── BCDirectCompute.h
│ │ ├── DDS.h
│ │ ├── DirectXTex.h
│ │ ├── DirectXTex.inl
│ │ ├── DirectXTexCompress.cpp
│ │ ├── DirectXTexCompressGPU.cpp
│ │ ├── DirectXTexConvert.cpp
│ │ ├── DirectXTexD3D11.cpp
│ │ ├── DirectXTexDDS.cpp
│ │ ├── DirectXTexFlipRotate.cpp
│ │ ├── DirectXTexImage.cpp
│ │ ├── DirectXTexMipmaps.cpp
│ │ ├── DirectXTexMisc.cpp
│ │ ├── DirectXTexP.h
│ │ ├── DirectXTexResize.cpp
│ │ ├── DirectXTexUtil.cpp
│ │ ├── DirectXTexWIC.cpp
│ │ ├── Shaders/
│ │ │ └── Compiled/
│ │ │ ├── BC6HEncode_EncodeBlockCS.inc
│ │ │ ├── BC6HEncode_TryModeG10CS.inc
│ │ │ ├── BC6HEncode_TryModeLE10CS.inc
│ │ │ ├── BC7Encode_EncodeBlockCS.inc
│ │ │ ├── BC7Encode_TryMode02CS.inc
│ │ │ ├── BC7Encode_TryMode137CS.inc
│ │ │ └── BC7Encode_TryMode456CS.inc
│ │ ├── filters.h
│ │ └── scoped.h
│ └── TexConv/
│ ├── texconv.cpp
│ └── texconv.h
├── CMakeLists.txt
├── Natvis/
│ ├── App.natvis
│ ├── Container.natvis
│ └── imgui.natvis
└── PrecompileShaders/
├── CMakeLists.txt
└── PrecompileShaders.cpp
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitattributes
================================================
Tools/BCnCompressglTF/DirectXTex/Shaders/Compiled/* linguist-vendored
Tools/BCnCompressglTF/DirectXTex/** linguist-vendored
Tools/BCnCompressglTF/TexConv/** linguist-vendored
External/** linguist-vendored
Assets/** linguist-vendored
================================================
FILE: .github/workflows/build.yml
================================================
name: build-and-test
on:
push:
branches:
- master
paths:
- 'Source/**'
- 'Tests/**'
- 'CMake/**'
- 'Tools/**'
- '!Tools/Natvis/**'
pull_request:
branches:
- master
paths:
- 'Source/**'
- 'Tests/**'
- 'CMake/**'
- 'Tools/**'
- '!Tools/Natvis/**'
jobs:
build:
name: ${{ matrix.compiler }}-${{ matrix.config }}
runs-on: windows-latest
strategy:
matrix:
compiler: [msvc, clang]
config: [Debug, Release]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Configure CMake
run: |
mkdir build
cmake -S . -B build -G "Visual Studio 17 2022" -T ${{ matrix.compiler == 'msvc' && 'host=x64' || 'ClangCL' }} -DBUILD_TESTS=on
- name: Build
run: cmake --build build --config ${{ matrix.config }}
- name: Test
shell: bash
run: |
if [ "${{ matrix.config }}" == "Debug" ]; then
"bin/Testsd.exe"
else
"bin/Tests.exe"
fi
================================================
FILE: .gitignore
================================================
# build files
/.vs
/.vscode
build/
bin/
# assets
Assets/*
!Assets/CornellBox
!Assets/Font
!Assets/LUT
!Assets/Samplers
!Assets/Images
# external libs
External/*
!External/concurrentqueue
!External/FastDelegate
!External/FSR2
!External/stb
!External/ImGui
External/ImGui/imgui_*
External/ImGui/imnodes*
External/ImGui/implot*
External/ImGui/imstb*
External/ImGui/imgui.h
External/ImGui/imgui.cpp
# misc
docs/
Tools/dxc
temp/
================================================
FILE: Assets/CornellBox/cornell.gltf
================================================
{
"accessors": [
{
"bufferView": 0,
"componentType": 5126,
"type": "VEC3",
"count": 54,
"min": [-1, -1, -1],
"max": [1, 1, 1]
},
{
"bufferView": 1,
"componentType": 5126,
"type": "VEC3",
"count": 54
},
{
"bufferView": 2,
"componentType": 5126,
"type": "VEC2",
"count": 54
},
{
"bufferView": 3,
"componentType": 5126,
"type": "VEC4",
"count": 54
},
{
"bufferView": 4,
"componentType": 5123,
"type": "SCALAR",
"count": 60
},
{
"bufferView": 5,
"componentType": 5126,
"type": "VEC3",
"count": 4,
"min": [1, -0.964481771, -0.964481771],
"max": [1, 0.964481771, 1]
},
{
"bufferView": 6,
"componentType": 5126,
"type": "VEC3",
"count": 4
},
{
"bufferView": 7,
"componentType": 5126,
"type": "VEC2",
"count": 4
},
{
"bufferView": 8,
"componentType": 5126,
"type": "VEC4",
"count": 4
},
{
"bufferView": 9,
"componentType": 5123,
"type": "SCALAR",
"count": 6
},
{
"bufferView": 10,
"componentType": 5126,
"type": "VEC3",
"count": 4,
"min": [-1, -0.964481771, -0.964481771],
"max": [-1, 0.964481771, 1]
},
{
"bufferView": 11,
"componentType": 5126,
"type": "VEC3",
"count": 4
},
{
"bufferView": 12,
"componentType": 5126,
"type": "VEC2",
"count": 4
},
{
"bufferView": 13,
"componentType": 5126,
"type": "VEC4",
"count": 4
},
{
"bufferView": 14,
"componentType": 5123,
"type": "SCALAR",
"count": 6
},
{
"bufferView": 15,
"componentType": 5126,
"type": "VEC3",
"count": 4,
"min": [-0.964481771, -0.964481771, -1],
"max": [0.964481771, 0.964481771, -1]
},
{
"bufferView": 16,
"componentType": 5126,
"type": "VEC3",
"count": 4
},
{
"bufferView": 17,
"componentType": 5126,
"type": "VEC2",
"count": 4
},
{
"bufferView": 18,
"componentType": 5126,
"type": "VEC4",
"count": 4
},
{
"bufferView": 19,
"componentType": 5126,
"type": "VEC3",
"count": 4,
"min": [-0.964481771, 1, -0.964481771],
"max": [0.964481771, 1, 1]
},
{
"bufferView": 20,
"componentType": 5126,
"type": "VEC3",
"count": 4
},
{
"bufferView": 21,
"componentType": 5126,
"type": "VEC2",
"count": 4
},
{
"bufferView": 22,
"componentType": 5126,
"type": "VEC4",
"count": 4
},
{
"bufferView": 23,
"componentType": 5123,
"type": "SCALAR",
"count": 6
},
{
"bufferView": 24,
"componentType": 5126,
"type": "VEC3",
"count": 4,
"min": [-0.964481771, -1, -0.964481771],
"max": [0.964481771, -1, 1]
},
{
"bufferView": 25,
"componentType": 5126,
"type": "VEC3",
"count": 4
},
{
"bufferView": 26,
"componentType": 5126,
"type": "VEC2",
"count": 4
},
{
"bufferView": 27,
"componentType": 5126,
"type": "VEC4",
"count": 4
},
{
"bufferView": 28,
"componentType": 5123,
"type": "SCALAR",
"count": 6
},
{
"bufferView": 29,
"componentType": 5126,
"type": "VEC3",
"count": 4,
"min": [-1, 0, -1],
"max": [1, 0, 1]
},
{
"bufferView": 30,
"componentType": 5126,
"type": "VEC3",
"count": 4
},
{
"bufferView": 31,
"componentType": 5126,
"type": "VEC2",
"count": 4
},
{
"bufferView": 32,
"componentType": 5126,
"type": "VEC4",
"count": 4
},
{
"bufferView": 33,
"componentType": 5126,
"type": "VEC3",
"count": 4,
"min": [-1, 0, -1],
"max": [1, 0, 1]
},
{
"bufferView": 34,
"componentType": 5126,
"type": "VEC3",
"count": 4
},
{
"bufferView": 35,
"componentType": 5126,
"type": "VEC2",
"count": 4
},
{
"bufferView": 36,
"componentType": 5126,
"type": "VEC4",
"count": 4
},
{
"bufferView": 37,
"componentType": 5123,
"type": "SCALAR",
"count": 6
},
{
"bufferView": 38,
"componentType": 5126,
"type": "VEC3",
"count": 24,
"min": [-1, -1, -1],
"max": [1, 1, 1]
},
{
"bufferView": 39,
"componentType": 5126,
"type": "VEC3",
"count": 24
},
{
"bufferView": 40,
"componentType": 5126,
"type": "VEC2",
"count": 24
},
{
"bufferView": 41,
"componentType": 5126,
"type": "VEC4",
"count": 24
},
{
"bufferView": 42,
"componentType": 5123,
"type": "SCALAR",
"count": 36
},
{
"bufferView": 43,
"componentType": 5126,
"type": "VEC3",
"count": 24,
"min": [-1, -1, -1],
"max": [1, 1, 1]
},
{
"bufferView": 44,
"componentType": 5126,
"type": "VEC3",
"count": 24
},
{
"bufferView": 45,
"componentType": 5126,
"type": "VEC2",
"count": 24
},
{
"bufferView": 46,
"componentType": 5126,
"type": "VEC4",
"count": 24
}
],
"asset": {
"generator": "Khronos glTF Blender I/O v3.6.28",
"version": "2.0"
},
"bufferViews": [
{
"buffer": 0,
"byteLength": 648
},
{
"buffer": 0,
"byteLength": 648,
"byteOffset": 648
},
{
"buffer": 0,
"byteLength": 432,
"byteOffset": 1296
},
{
"buffer": 0,
"byteLength": 864,
"byteOffset": 1728
},
{
"buffer": 0,
"byteLength": 120,
"byteOffset": 2592
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 2712
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 2760
},
{
"buffer": 0,
"byteLength": 32,
"byteOffset": 2808
},
{
"buffer": 0,
"byteLength": 64,
"byteOffset": 2840
},
{
"buffer": 0,
"byteLength": 12,
"byteOffset": 2904
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 2916
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 2964
},
{
"buffer": 0,
"byteLength": 32,
"byteOffset": 3012
},
{
"buffer": 0,
"byteLength": 64,
"byteOffset": 3044
},
{
"buffer": 0,
"byteLength": 12,
"byteOffset": 3108
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 3120
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 3168
},
{
"buffer": 0,
"byteLength": 32,
"byteOffset": 3216
},
{
"buffer": 0,
"byteLength": 64,
"byteOffset": 3248
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 3312
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 3360
},
{
"buffer": 0,
"byteLength": 32,
"byteOffset": 3408
},
{
"buffer": 0,
"byteLength": 64,
"byteOffset": 3440
},
{
"buffer": 0,
"byteLength": 12,
"byteOffset": 3504
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 3516
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 3564
},
{
"buffer": 0,
"byteLength": 32,
"byteOffset": 3612
},
{
"buffer": 0,
"byteLength": 64,
"byteOffset": 3644
},
{
"buffer": 0,
"byteLength": 12,
"byteOffset": 3708
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 3720
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 3768
},
{
"buffer": 0,
"byteLength": 32,
"byteOffset": 3816
},
{
"buffer": 0,
"byteLength": 64,
"byteOffset": 3848
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 3912
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 3960
},
{
"buffer": 0,
"byteLength": 32,
"byteOffset": 4008
},
{
"buffer": 0,
"byteLength": 64,
"byteOffset": 4040
},
{
"buffer": 0,
"byteLength": 12,
"byteOffset": 4104
},
{
"buffer": 0,
"byteLength": 288,
"byteOffset": 4116
},
{
"buffer": 0,
"byteLength": 288,
"byteOffset": 4404
},
{
"buffer": 0,
"byteLength": 192,
"byteOffset": 4692
},
{
"buffer": 0,
"byteLength": 384,
"byteOffset": 4884
},
{
"buffer": 0,
"byteLength": 72,
"byteOffset": 5268
},
{
"buffer": 0,
"byteLength": 288,
"byteOffset": 5340
},
{
"buffer": 0,
"byteLength": 288,
"byteOffset": 5628
},
{
"buffer": 0,
"byteLength": 192,
"byteOffset": 5916
},
{
"buffer": 0,
"byteLength": 384,
"byteOffset": 6108
}
],
"buffers": [
{
"uri": "cornell.bin",
"byteLength": 6492
}
],
"images": [
{
"name": "checkerboard",
"uri": "compressed/checkerboard.dds",
"mimeType": "image/png"
}
],
"meshes": [
{
"name": "CubeMesh",
"primitives": [
{
"indices": 4,
"material": 0,
"attributes": {
"POSITION": 0,
"NORMAL": 1,
"TEXCOORD_0": 2,
"TANGENT": 3
}
}
]
},
{
"name": "RightWallMesh",
"primitives": [
{
"indices": 9,
"material": 1,
"attributes": {
"POSITION": 5,
"NORMAL": 6,
"TEXCOORD_0": 7,
"TANGENT": 8
}
}
]
},
{
"name": "LeftWallMesh",
"primitives": [
{
"indices": 14,
"material": 2,
"attributes": {
"POSITION": 10,
"NORMAL": 11,
"TEXCOORD_0": 12,
"TANGENT": 13
}
}
]
},
{
"name": "BackWallMesh",
"primitives": [
{
"indices": 14,
"material": 3,
"attributes": {
"POSITION": 15,
"NORMAL": 16,
"TEXCOORD_0": 17,
"TANGENT": 18
}
}
]
},
{
"name": "RoofMesh",
"primitives": [
{
"indices": 23,
"material": 4,
"attributes": {
"POSITION": 19,
"NORMAL": 20,
"TEXCOORD_0": 21,
"TANGENT": 22
}
}
]
},
{
"name": "FloorMesh",
"primitives": [
{
"indices": 28,
"material": 0,
"attributes": {
"POSITION": 24,
"NORMAL": 25,
"TEXCOORD_0": 26,
"TANGENT": 27
}
}
]
},
{
"name": "Plane",
"primitives": [
{
"indices": 14,
"material": 5,
"attributes": {
"POSITION": 29,
"NORMAL": 30,
"TEXCOORD_0": 31,
"TANGENT": 32
}
}
]
},
{
"name": "Plane.001",
"primitives": [
{
"indices": 37,
"material": 6,
"attributes": {
"POSITION": 33,
"NORMAL": 34,
"TEXCOORD_0": 35,
"TANGENT": 36
}
}
]
},
{
"name": "Cube.001",
"primitives": [
{
"indices": 42,
"material": 7,
"attributes": {
"POSITION": 38,
"NORMAL": 39,
"TEXCOORD_0": 40,
"TANGENT": 41
}
}
]
},
{
"name": "Cube.002",
"primitives": [
{
"indices": 42,
"material": 8,
"attributes": {
"POSITION": 43,
"NORMAL": 44,
"TEXCOORD_0": 45,
"TANGENT": 46
}
}
]
}
],
"materials": [
{
"name": "floor",
"doubleSided": true,
"pbrMetallicRoughness": {
"metallicFactor": 0,
"baseColorFactor": [0.725000024, 0.709999979, 0.680000007, 1]
}
},
{
"name": "rightWall",
"doubleSided": true,
"pbrMetallicRoughness": {
"metallicFactor": 0,
"baseColorFactor": [0.140000001, 0.449999988, 0.0909999982, 1]
}
},
{
"name": "leftWall.001",
"doubleSided": true,
"pbrMetallicRoughness": {
"metallicFactor": 0,
"baseColorFactor": [0.629999995, 0.0649999976, 0.0500000007, 1]
}
},
{
"name": "backWall",
"doubleSided": true,
"pbrMetallicRoughness": {
"metallicFactor": 0,
"baseColorFactor": [0.725000024, 0.709999979, 0.680000007, 1]
}
},
{
"name": "ceiling",
"doubleSided": true,
"pbrMetallicRoughness": {
"metallicFactor": 0,
"baseColorFactor": [0.725000024, 0.709999979, 0.680000007, 1]
}
},
{
"name": "light",
"doubleSided": true,
"pbrMetallicRoughness": {
"metallicFactor": 0,
"baseColorFactor": [0.779999971, 0.779999971, 0.779999971, 1]
}
},
{
"name": "ground",
"doubleSided": true,
"pbrMetallicRoughness": {
"baseColorTexture": {
"index": 0
},
"metallicFactor": 0
}
},
{
"name": "shortBox",
"doubleSided": true,
"pbrMetallicRoughness": {
"metallicFactor": 0,
"baseColorFactor": [0.725000024, 0.709999979, 0.680000007, 1]
}
},
{
"name": "tallBox",
"doubleSided": true,
"pbrMetallicRoughness": {
"metallicFactor": 0,
"baseColorFactor": [0.725000024, 0.709999979, 0.680000007, 1]
}
}
],
"nodes": [
{
"mesh": 0,
"name": "Cube",
"translation": [0, 1.02813554, 0]
},
{
"mesh": 1,
"name": "RightWall",
"translation": [0, 1.02813554, 0]
},
{
"mesh": 2,
"name": "LeftWall",
"translation": [0, 1.02813554, 0]
},
{
"mesh": 3,
"name": "BackWall",
"translation": [0, 1.02813554, 0]
},
{
"mesh": 4,
"name": "Roof",
"translation": [0, 1.02813554, 0]
},
{
"mesh": 5,
"name": "Floor",
"translation": [0, 1.02813554, 0]
},
{
"mesh": 6,
"name": "Plane",
"translation": [-0.00379260769, 2.02274299, -0.0408690274],
"scale": [0.235878631, 0.235878631, 0.194536671]
},
{
"mesh": 7,
"name": "Plane.001",
"scale": [50, 50, 50]
},
{
"mesh": 8,
"name": "Cube.003",
"translation": [0.325628012, 0.329526007, 0.373807997],
"rotation": [0, -0.144368067, 0, 0.989524126],
"scale": [0.297057986, 0.297057986, 0.297057986]
},
{
"mesh": 9,
"name": "Cube.004",
"translation": [-0.327136993, 0.609180987, -0.291770011],
"rotation": [0, 0.157149047, 0, 0.987574995],
"scale": [0.290537, 0.581031978, 0.290537]
}
],
"samplers": [
{
"magFilter": 9729,
"minFilter": 9987
}
],
"scene": 0,
"scenes": [
{
"name": "Scene",
"nodes": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
}
],
"textures": [
{
"source": 0,
"sampler": 0
}
]
}
================================================
FILE: Assets/CornellBox/cornell_emissive.gltf
================================================
{
"accessors": [
{
"bufferView": 0,
"componentType": 5126,
"type": "VEC3",
"count": 54,
"min": [-1, -1, -1],
"max": [1, 1, 1]
},
{
"bufferView": 1,
"componentType": 5126,
"type": "VEC3",
"count": 54
},
{
"bufferView": 2,
"componentType": 5126,
"type": "VEC2",
"count": 54
},
{
"bufferView": 3,
"componentType": 5126,
"type": "VEC4",
"count": 54
},
{
"bufferView": 4,
"componentType": 5123,
"type": "SCALAR",
"count": 60
},
{
"bufferView": 5,
"componentType": 5126,
"type": "VEC3",
"count": 4,
"min": [1, -0.964481771, -0.964481771],
"max": [1, 0.964481771, 1]
},
{
"bufferView": 6,
"componentType": 5126,
"type": "VEC3",
"count": 4
},
{
"bufferView": 7,
"componentType": 5126,
"type": "VEC2",
"count": 4
},
{
"bufferView": 8,
"componentType": 5126,
"type": "VEC4",
"count": 4
},
{
"bufferView": 9,
"componentType": 5123,
"type": "SCALAR",
"count": 6
},
{
"bufferView": 10,
"componentType": 5126,
"type": "VEC3",
"count": 4,
"min": [-1, -0.964481771, -0.964481771],
"max": [-1, 0.964481771, 1]
},
{
"bufferView": 11,
"componentType": 5126,
"type": "VEC3",
"count": 4
},
{
"bufferView": 12,
"componentType": 5126,
"type": "VEC2",
"count": 4
},
{
"bufferView": 13,
"componentType": 5126,
"type": "VEC4",
"count": 4
},
{
"bufferView": 14,
"componentType": 5123,
"type": "SCALAR",
"count": 6
},
{
"bufferView": 15,
"componentType": 5126,
"type": "VEC3",
"count": 4,
"min": [-0.964481771, -0.964481771, -1],
"max": [0.964481771, 0.964481771, -1]
},
{
"bufferView": 16,
"componentType": 5126,
"type": "VEC3",
"count": 4
},
{
"bufferView": 17,
"componentType": 5126,
"type": "VEC2",
"count": 4
},
{
"bufferView": 18,
"componentType": 5126,
"type": "VEC4",
"count": 4
},
{
"bufferView": 19,
"componentType": 5126,
"type": "VEC3",
"count": 4,
"min": [-0.964481771, 1, -0.964481771],
"max": [0.964481771, 1, 1]
},
{
"bufferView": 20,
"componentType": 5126,
"type": "VEC3",
"count": 4
},
{
"bufferView": 21,
"componentType": 5126,
"type": "VEC2",
"count": 4
},
{
"bufferView": 22,
"componentType": 5126,
"type": "VEC4",
"count": 4
},
{
"bufferView": 23,
"componentType": 5123,
"type": "SCALAR",
"count": 6
},
{
"bufferView": 24,
"componentType": 5126,
"type": "VEC3",
"count": 4,
"min": [-0.964481771, -1, -0.964481771],
"max": [0.964481771, -1, 1]
},
{
"bufferView": 25,
"componentType": 5126,
"type": "VEC3",
"count": 4
},
{
"bufferView": 26,
"componentType": 5126,
"type": "VEC2",
"count": 4
},
{
"bufferView": 27,
"componentType": 5126,
"type": "VEC4",
"count": 4
},
{
"bufferView": 28,
"componentType": 5123,
"type": "SCALAR",
"count": 6
},
{
"bufferView": 29,
"componentType": 5126,
"type": "VEC3",
"count": 4,
"min": [-1, 0, -1],
"max": [1, 0, 1]
},
{
"bufferView": 30,
"componentType": 5126,
"type": "VEC3",
"count": 4
},
{
"bufferView": 31,
"componentType": 5126,
"type": "VEC2",
"count": 4
},
{
"bufferView": 32,
"componentType": 5126,
"type": "VEC4",
"count": 4
},
{
"bufferView": 33,
"componentType": 5126,
"type": "VEC3",
"count": 4,
"min": [-1, 0, -1],
"max": [1, 0, 1]
},
{
"bufferView": 34,
"componentType": 5126,
"type": "VEC3",
"count": 4
},
{
"bufferView": 35,
"componentType": 5126,
"type": "VEC2",
"count": 4
},
{
"bufferView": 36,
"componentType": 5126,
"type": "VEC4",
"count": 4
},
{
"bufferView": 37,
"componentType": 5123,
"type": "SCALAR",
"count": 6
},
{
"bufferView": 38,
"componentType": 5126,
"type": "VEC3",
"count": 24,
"min": [-1, -1, -1],
"max": [1, 1, 1]
},
{
"bufferView": 39,
"componentType": 5126,
"type": "VEC3",
"count": 24
},
{
"bufferView": 40,
"componentType": 5126,
"type": "VEC2",
"count": 24
},
{
"bufferView": 41,
"componentType": 5126,
"type": "VEC4",
"count": 24
},
{
"bufferView": 42,
"componentType": 5123,
"type": "SCALAR",
"count": 36
},
{
"bufferView": 43,
"componentType": 5126,
"type": "VEC3",
"count": 24,
"min": [-1, -1, -1],
"max": [1, 1, 1]
},
{
"bufferView": 44,
"componentType": 5126,
"type": "VEC3",
"count": 24
},
{
"bufferView": 45,
"componentType": 5126,
"type": "VEC2",
"count": 24
},
{
"bufferView": 46,
"componentType": 5126,
"type": "VEC4",
"count": 24
}
],
"asset": {
"generator": "Khronos glTF Blender I/O v3.6.28",
"version": "2.0"
},
"bufferViews": [
{
"buffer": 0,
"byteLength": 648
},
{
"buffer": 0,
"byteLength": 648,
"byteOffset": 648
},
{
"buffer": 0,
"byteLength": 432,
"byteOffset": 1296
},
{
"buffer": 0,
"byteLength": 864,
"byteOffset": 1728
},
{
"buffer": 0,
"byteLength": 120,
"byteOffset": 2592
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 2712
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 2760
},
{
"buffer": 0,
"byteLength": 32,
"byteOffset": 2808
},
{
"buffer": 0,
"byteLength": 64,
"byteOffset": 2840
},
{
"buffer": 0,
"byteLength": 12,
"byteOffset": 2904
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 2916
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 2964
},
{
"buffer": 0,
"byteLength": 32,
"byteOffset": 3012
},
{
"buffer": 0,
"byteLength": 64,
"byteOffset": 3044
},
{
"buffer": 0,
"byteLength": 12,
"byteOffset": 3108
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 3120
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 3168
},
{
"buffer": 0,
"byteLength": 32,
"byteOffset": 3216
},
{
"buffer": 0,
"byteLength": 64,
"byteOffset": 3248
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 3312
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 3360
},
{
"buffer": 0,
"byteLength": 32,
"byteOffset": 3408
},
{
"buffer": 0,
"byteLength": 64,
"byteOffset": 3440
},
{
"buffer": 0,
"byteLength": 12,
"byteOffset": 3504
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 3516
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 3564
},
{
"buffer": 0,
"byteLength": 32,
"byteOffset": 3612
},
{
"buffer": 0,
"byteLength": 64,
"byteOffset": 3644
},
{
"buffer": 0,
"byteLength": 12,
"byteOffset": 3708
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 3720
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 3768
},
{
"buffer": 0,
"byteLength": 32,
"byteOffset": 3816
},
{
"buffer": 0,
"byteLength": 64,
"byteOffset": 3848
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 3912
},
{
"buffer": 0,
"byteLength": 48,
"byteOffset": 3960
},
{
"buffer": 0,
"byteLength": 32,
"byteOffset": 4008
},
{
"buffer": 0,
"byteLength": 64,
"byteOffset": 4040
},
{
"buffer": 0,
"byteLength": 12,
"byteOffset": 4104
},
{
"buffer": 0,
"byteLength": 288,
"byteOffset": 4116
},
{
"buffer": 0,
"byteLength": 288,
"byteOffset": 4404
},
{
"buffer": 0,
"byteLength": 192,
"byteOffset": 4692
},
{
"buffer": 0,
"byteLength": 384,
"byteOffset": 4884
},
{
"buffer": 0,
"byteLength": 72,
"byteOffset": 5268
},
{
"buffer": 0,
"byteLength": 288,
"byteOffset": 5340
},
{
"buffer": 0,
"byteLength": 288,
"byteOffset": 5628
},
{
"buffer": 0,
"byteLength": 192,
"byteOffset": 5916
},
{
"buffer": 0,
"byteLength": 384,
"byteOffset": 6108
}
],
"buffers": [
{
"uri": "cornell.bin",
"byteLength": 6492
}
],
"images": [
{
"name": "checkerboard",
"uri": "compressed/checkerboard.dds",
"mimeType": "image/png"
}
],
"meshes": [
{
"name": "CubeMesh",
"primitives": [
{
"indices": 4,
"material": 0,
"attributes": {
"POSITION": 0,
"NORMAL": 1,
"TEXCOORD_0": 2,
"TANGENT": 3
}
}
]
},
{
"name": "RightWallMesh",
"primitives": [
{
"indices": 9,
"material": 1,
"attributes": {
"POSITION": 5,
"NORMAL": 6,
"TEXCOORD_0": 7,
"TANGENT": 8
}
}
]
},
{
"name": "LeftWallMesh",
"primitives": [
{
"indices": 14,
"material": 2,
"attributes": {
"POSITION": 10,
"NORMAL": 11,
"TEXCOORD_0": 12,
"TANGENT": 13
}
}
]
},
{
"name": "BackWallMesh",
"primitives": [
{
"indices": 14,
"material": 3,
"attributes": {
"POSITION": 15,
"NORMAL": 16,
"TEXCOORD_0": 17,
"TANGENT": 18
}
}
]
},
{
"name": "RoofMesh",
"primitives": [
{
"indices": 23,
"material": 4,
"attributes": {
"POSITION": 19,
"NORMAL": 20,
"TEXCOORD_0": 21,
"TANGENT": 22
}
}
]
},
{
"name": "FloorMesh",
"primitives": [
{
"indices": 28,
"material": 0,
"attributes": {
"POSITION": 24,
"NORMAL": 25,
"TEXCOORD_0": 26,
"TANGENT": 27
}
}
]
},
{
"name": "Plane",
"primitives": [
{
"indices": 14,
"material": 5,
"attributes": {
"POSITION": 29,
"NORMAL": 30,
"TEXCOORD_0": 31,
"TANGENT": 32
}
}
]
},
{
"name": "Plane.001",
"primitives": [
{
"indices": 37,
"material": 6,
"attributes": {
"POSITION": 33,
"NORMAL": 34,
"TEXCOORD_0": 35,
"TANGENT": 36
}
}
]
},
{
"name": "Cube.001",
"primitives": [
{
"indices": 42,
"material": 7,
"attributes": {
"POSITION": 38,
"NORMAL": 39,
"TEXCOORD_0": 40,
"TANGENT": 41
}
}
]
},
{
"name": "Cube.002",
"primitives": [
{
"indices": 42,
"material": 8,
"attributes": {
"POSITION": 43,
"NORMAL": 44,
"TEXCOORD_0": 45,
"TANGENT": 46
}
}
]
}
],
"materials": [
{
"name": "floor",
"doubleSided": true,
"pbrMetallicRoughness": {
"metallicFactor": 0,
"baseColorFactor": [0.725000024, 0.709999979, 0.680000007, 1]
}
},
{
"name": "rightWall",
"doubleSided": true,
"pbrMetallicRoughness": {
"metallicFactor": 0,
"baseColorFactor": [0.140000001, 0.449999988, 0.0909999982, 1]
}
},
{
"name": "leftWall.001",
"doubleSided": true,
"pbrMetallicRoughness": {
"metallicFactor": 0,
"baseColorFactor": [0.629999995, 0.0649999976, 0.0500000007, 1]
}
},
{
"name": "backWall",
"doubleSided": true,
"pbrMetallicRoughness": {
"metallicFactor": 0,
"baseColorFactor": [0.725000024, 0.709999979, 0.680000007, 1]
}
},
{
"name": "ceiling",
"doubleSided": true,
"pbrMetallicRoughness": {
"metallicFactor": 0,
"baseColorFactor": [0.725000024, 0.709999979, 0.680000007, 1]
}
},
{
"name": "light",
"doubleSided": true,
"pbrMetallicRoughness": {
"metallicFactor": 0,
"baseColorFactor": [0.779999971, 0.779999971, 0.779999971, 1]
},
"extensions": {
"KHR_materials_emissive_strength": {
"emissiveStrength": 20
}
},
"emissiveFactor": [1, 0.775918424, 0.616738319]
},
{
"name": "ground",
"doubleSided": true,
"pbrMetallicRoughness": {
"baseColorTexture": {
"index": 0
},
"metallicFactor": 0
}
},
{
"name": "shortBox",
"doubleSided": true,
"pbrMetallicRoughness": {
"metallicFactor": 0,
"baseColorFactor": [0.725000024, 0.709999979, 0.680000007, 1]
}
},
{
"name": "tallBox",
"doubleSided": true,
"pbrMetallicRoughness": {
"metallicFactor": 0,
"baseColorFactor": [0.725000024, 0.709999979, 0.680000007, 1]
}
}
],
"nodes": [
{
"mesh": 0,
"name": "Cube",
"translation": [0, 1.02813554, 0]
},
{
"mesh": 1,
"name": "RightWall",
"translation": [0, 1.02813554, 0]
},
{
"mesh": 2,
"name": "LeftWall",
"translation": [0, 1.02813554, 0]
},
{
"mesh": 3,
"name": "BackWall",
"translation": [0, 1.02813554, 0]
},
{
"mesh": 4,
"name": "Roof",
"translation": [0, 1.02813554, 0]
},
{
"mesh": 5,
"name": "Floor",
"translation": [0, 1.02813554, 0]
},
{
"mesh": 6,
"name": "Plane",
"translation": [-0.00379260769, 2.02274299, -0.0408690274],
"scale": [0.235878631, 0.235878631, 0.194536671]
},
{
"mesh": 7,
"name": "Plane.001",
"scale": [50, 50, 50]
},
{
"mesh": 8,
"name": "Cube.003",
"translation": [0.325628012, 0.329526007, 0.373807997],
"rotation": [0, -0.144368097, 0, 0.989524126],
"scale": [0.297057986, 0.297057986, 0.297057986]
},
{
"mesh": 9,
"name": "Cube.004",
"translation": [-0.327136993, 0.609180987, -0.291770011],
"rotation": [0, 0.157149047, 0, 0.987574995],
"scale": [0.290537, 0.581031978, 0.290537]
}
],
"samplers": [
{
"magFilter": 9729,
"minFilter": 9987
}
],
"scene": 0,
"scenes": [
{
"name": "Scene",
"nodes": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
}
],
"textures": [
{
"source": 0,
"sampler": 0
}
],
"extensionsUsed": [
"KHR_materials_emissive_strength"
]
}
================================================
FILE: Assets/CornellBox/license.txt
================================================
Model Information:
* title: Cornell Box- Original
* source: https://sketchfab.com/3d-models/cornell-box-original-0d18de8d108c4c9cab1a4405698cc6b6
* author: t-ly (https://sketchfab.com/t-ly)
Model License:
* license type: CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)
* requirements: Author must be credited. Commercial use is allowed.
If you use this 3D model in your project be sure to copy paste this credit wherever you share it:
This work is based on "Cornell Box- Original" (https://sketchfab.com/3d-models/cornell-box-original-0d18de8d108c4c9cab1a4405698cc6b6) by t-ly (https://sketchfab.com/t-ly) licensed under CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)
================================================
FILE: Assets/Font/Font.h
================================================
#pragma once
#if defined(__cplusplus)
extern "C" {
#endif
struct FontSpan
{
const void* Data;
size_t N;
};
enum FONT_TYPE
{
ROBOTO_REGULAR,
FONT_AWESOME_6,
BFONT,
COUNT
};
__declspec(dllexport) FontSpan GetFont(FONT_TYPE f);
#if defined(__cplusplus)
}
#endif
================================================
FILE: Assets/Font/IconsFontAwesome6.h
================================================
// Generated by https://github.com/juliettef/IconFontCppHeaders script GenerateIconFontCppHeaders.py for languages C and C++
// from https://github.com/FortAwesome/Font-Awesome/raw/6.x/metadata/icons.yml
// for use with https://github.com/FortAwesome/Font-Awesome/blob/6.x/webfonts/fa-solid-900.ttf
#pragma once
#define FONT_ICON_FILE_NAME_FAS "fa-solid-900.ttf"
#define ICON_MIN_FA 0xe005
#define ICON_MAX_16_FA 0xf8ff
#define ICON_MAX_FA 0xf8ff
#define ICON_FA_0 "0" // U+0030
#define ICON_FA_1 "1" // U+0031
#define ICON_FA_2 "2" // U+0032
#define ICON_FA_3 "3" // U+0033
#define ICON_FA_4 "4" // U+0034
#define ICON_FA_5 "5" // U+0035
#define ICON_FA_6 "6" // U+0036
#define ICON_FA_7 "7" // U+0037
#define ICON_FA_8 "8" // U+0038
#define ICON_FA_9 "9" // U+0039
#define ICON_FA_A "A" // U+0041
#define ICON_FA_ADDRESS_BOOK "\xef\x8a\xb9" // U+f2b9
#define ICON_FA_ADDRESS_CARD "\xef\x8a\xbb" // U+f2bb
#define ICON_FA_ALIGN_CENTER "\xef\x80\xb7" // U+f037
#define ICON_FA_ALIGN_JUSTIFY "\xef\x80\xb9" // U+f039
#define ICON_FA_ALIGN_LEFT "\xef\x80\xb6" // U+f036
#define ICON_FA_ALIGN_RIGHT "\xef\x80\xb8" // U+f038
#define ICON_FA_ANCHOR "\xef\x84\xbd" // U+f13d
#define ICON_FA_ANCHOR_CIRCLE_CHECK "\xee\x92\xaa" // U+e4aa
#define ICON_FA_ANCHOR_CIRCLE_EXCLAMATION "\xee\x92\xab" // U+e4ab
#define ICON_FA_ANCHOR_CIRCLE_XMARK "\xee\x92\xac" // U+e4ac
#define ICON_FA_ANCHOR_LOCK "\xee\x92\xad" // U+e4ad
#define ICON_FA_ANGLE_DOWN "\xef\x84\x87" // U+f107
#define ICON_FA_ANGLE_LEFT "\xef\x84\x84" // U+f104
#define ICON_FA_ANGLE_RIGHT "\xef\x84\x85" // U+f105
#define ICON_FA_ANGLE_UP "\xef\x84\x86" // U+f106
#define ICON_FA_ANGLES_DOWN "\xef\x84\x83" // U+f103
#define ICON_FA_ANGLES_LEFT "\xef\x84\x80" // U+f100
#define ICON_FA_ANGLES_RIGHT "\xef\x84\x81" // U+f101
#define ICON_FA_ANGLES_UP "\xef\x84\x82" // U+f102
#define ICON_FA_ANKH "\xef\x99\x84" // U+f644
#define ICON_FA_APPLE_WHOLE "\xef\x97\x91" // U+f5d1
#define ICON_FA_ARCHWAY "\xef\x95\x97" // U+f557
#define ICON_FA_ARROW_DOWN "\xef\x81\xa3" // U+f063
#define ICON_FA_ARROW_DOWN_1_9 "\xef\x85\xa2" // U+f162
#define ICON_FA_ARROW_DOWN_9_1 "\xef\xa2\x86" // U+f886
#define ICON_FA_ARROW_DOWN_A_Z "\xef\x85\x9d" // U+f15d
#define ICON_FA_ARROW_DOWN_LONG "\xef\x85\xb5" // U+f175
#define ICON_FA_ARROW_DOWN_SHORT_WIDE "\xef\xa2\x84" // U+f884
#define ICON_FA_ARROW_DOWN_UP_ACROSS_LINE "\xee\x92\xaf" // U+e4af
#define ICON_FA_ARROW_DOWN_UP_LOCK "\xee\x92\xb0" // U+e4b0
#define ICON_FA_ARROW_DOWN_WIDE_SHORT "\xef\x85\xa0" // U+f160
#define ICON_FA_ARROW_DOWN_Z_A "\xef\xa2\x81" // U+f881
#define ICON_FA_ARROW_LEFT "\xef\x81\xa0" // U+f060
#define ICON_FA_ARROW_LEFT_LONG "\xef\x85\xb7" // U+f177
#define ICON_FA_ARROW_POINTER "\xef\x89\x85" // U+f245
#define ICON_FA_ARROW_RIGHT "\xef\x81\xa1" // U+f061
#define ICON_FA_ARROW_RIGHT_ARROW_LEFT "\xef\x83\xac" // U+f0ec
#define ICON_FA_ARROW_RIGHT_FROM_BRACKET "\xef\x82\x8b" // U+f08b
#define ICON_FA_ARROW_RIGHT_LONG "\xef\x85\xb8" // U+f178
#define ICON_FA_ARROW_RIGHT_TO_BRACKET "\xef\x82\x90" // U+f090
#define ICON_FA_ARROW_RIGHT_TO_CITY "\xee\x92\xb3" // U+e4b3
#define ICON_FA_ARROW_ROTATE_LEFT "\xef\x83\xa2" // U+f0e2
#define ICON_FA_ARROW_ROTATE_RIGHT "\xef\x80\x9e" // U+f01e
#define ICON_FA_ARROW_TREND_DOWN "\xee\x82\x97" // U+e097
#define ICON_FA_ARROW_TREND_UP "\xee\x82\x98" // U+e098
#define ICON_FA_ARROW_TURN_DOWN "\xef\x85\x89" // U+f149
#define ICON_FA_ARROW_TURN_UP "\xef\x85\x88" // U+f148
#define ICON_FA_ARROW_UP "\xef\x81\xa2" // U+f062
#define ICON_FA_ARROW_UP_1_9 "\xef\x85\xa3" // U+f163
#define ICON_FA_ARROW_UP_9_1 "\xef\xa2\x87" // U+f887
#define ICON_FA_ARROW_UP_A_Z "\xef\x85\x9e" // U+f15e
#define ICON_FA_ARROW_UP_FROM_BRACKET "\xee\x82\x9a" // U+e09a
#define ICON_FA_ARROW_UP_FROM_GROUND_WATER "\xee\x92\xb5" // U+e4b5
#define ICON_FA_ARROW_UP_FROM_WATER_PUMP "\xee\x92\xb6" // U+e4b6
#define ICON_FA_ARROW_UP_LONG "\xef\x85\xb6" // U+f176
#define ICON_FA_ARROW_UP_RIGHT_DOTS "\xee\x92\xb7" // U+e4b7
#define ICON_FA_ARROW_UP_RIGHT_FROM_SQUARE "\xef\x82\x8e" // U+f08e
#define ICON_FA_ARROW_UP_SHORT_WIDE "\xef\xa2\x85" // U+f885
#define ICON_FA_ARROW_UP_WIDE_SHORT "\xef\x85\xa1" // U+f161
#define ICON_FA_ARROW_UP_Z_A "\xef\xa2\x82" // U+f882
#define ICON_FA_ARROWS_DOWN_TO_LINE "\xee\x92\xb8" // U+e4b8
#define ICON_FA_ARROWS_DOWN_TO_PEOPLE "\xee\x92\xb9" // U+e4b9
#define ICON_FA_ARROWS_LEFT_RIGHT "\xef\x81\xbe" // U+f07e
#define ICON_FA_ARROWS_LEFT_RIGHT_TO_LINE "\xee\x92\xba" // U+e4ba
#define ICON_FA_ARROWS_ROTATE "\xef\x80\xa1" // U+f021
#define ICON_FA_ARROWS_SPIN "\xee\x92\xbb" // U+e4bb
#define ICON_FA_ARROWS_SPLIT_UP_AND_LEFT "\xee\x92\xbc" // U+e4bc
#define ICON_FA_ARROWS_TO_CIRCLE "\xee\x92\xbd" // U+e4bd
#define ICON_FA_ARROWS_TO_DOT "\xee\x92\xbe" // U+e4be
#define ICON_FA_ARROWS_TO_EYE "\xee\x92\xbf" // U+e4bf
#define ICON_FA_ARROWS_TURN_RIGHT "\xee\x93\x80" // U+e4c0
#define ICON_FA_ARROWS_TURN_TO_DOTS "\xee\x93\x81" // U+e4c1
#define ICON_FA_ARROWS_UP_DOWN "\xef\x81\xbd" // U+f07d
#define ICON_FA_ARROWS_UP_DOWN_LEFT_RIGHT "\xef\x81\x87" // U+f047
#define ICON_FA_ARROWS_UP_TO_LINE "\xee\x93\x82" // U+e4c2
#define ICON_FA_ASTERISK "*" // U+002a
#define ICON_FA_AT "@" // U+0040
#define ICON_FA_ATOM "\xef\x97\x92" // U+f5d2
#define ICON_FA_AUDIO_DESCRIPTION "\xef\x8a\x9e" // U+f29e
#define ICON_FA_AUSTRAL_SIGN "\xee\x82\xa9" // U+e0a9
#define ICON_FA_AWARD "\xef\x95\x99" // U+f559
#define ICON_FA_B "B" // U+0042
#define ICON_FA_BABY "\xef\x9d\xbc" // U+f77c
#define ICON_FA_BABY_CARRIAGE "\xef\x9d\xbd" // U+f77d
#define ICON_FA_BACKWARD "\xef\x81\x8a" // U+f04a
#define ICON_FA_BACKWARD_FAST "\xef\x81\x89" // U+f049
#define ICON_FA_BACKWARD_STEP "\xef\x81\x88" // U+f048
#define ICON_FA_BACON "\xef\x9f\xa5" // U+f7e5
#define ICON_FA_BACTERIA "\xee\x81\x99" // U+e059
#define ICON_FA_BACTERIUM "\xee\x81\x9a" // U+e05a
#define ICON_FA_BAG_SHOPPING "\xef\x8a\x90" // U+f290
#define ICON_FA_BAHAI "\xef\x99\xa6" // U+f666
#define ICON_FA_BAHT_SIGN "\xee\x82\xac" // U+e0ac
#define ICON_FA_BAN "\xef\x81\x9e" // U+f05e
#define ICON_FA_BAN_SMOKING "\xef\x95\x8d" // U+f54d
#define ICON_FA_BANDAGE "\xef\x91\xa2" // U+f462
#define ICON_FA_BANGLADESHI_TAKA_SIGN "\xee\x8b\xa6" // U+e2e6
#define ICON_FA_BARCODE "\xef\x80\xaa" // U+f02a
#define ICON_FA_BARS "\xef\x83\x89" // U+f0c9
#define ICON_FA_BARS_PROGRESS "\xef\xa0\xa8" // U+f828
#define ICON_FA_BARS_STAGGERED "\xef\x95\x90" // U+f550
#define ICON_FA_BASEBALL "\xef\x90\xb3" // U+f433
#define ICON_FA_BASEBALL_BAT_BALL "\xef\x90\xb2" // U+f432
#define ICON_FA_BASKET_SHOPPING "\xef\x8a\x91" // U+f291
#define ICON_FA_BASKETBALL "\xef\x90\xb4" // U+f434
#define ICON_FA_BATH "\xef\x8b\x8d" // U+f2cd
#define ICON_FA_BATTERY_EMPTY "\xef\x89\x84" // U+f244
#define ICON_FA_BATTERY_FULL "\xef\x89\x80" // U+f240
#define ICON_FA_BATTERY_HALF "\xef\x89\x82" // U+f242
#define ICON_FA_BATTERY_QUARTER "\xef\x89\x83" // U+f243
#define ICON_FA_BATTERY_THREE_QUARTERS "\xef\x89\x81" // U+f241
#define ICON_FA_BED "\xef\x88\xb6" // U+f236
#define ICON_FA_BED_PULSE "\xef\x92\x87" // U+f487
#define ICON_FA_BEER_MUG_EMPTY "\xef\x83\xbc" // U+f0fc
#define ICON_FA_BELL "\xef\x83\xb3" // U+f0f3
#define ICON_FA_BELL_CONCIERGE "\xef\x95\xa2" // U+f562
#define ICON_FA_BELL_SLASH "\xef\x87\xb6" // U+f1f6
#define ICON_FA_BEZIER_CURVE "\xef\x95\x9b" // U+f55b
#define ICON_FA_BICYCLE "\xef\x88\x86" // U+f206
#define ICON_FA_BINOCULARS "\xef\x87\xa5" // U+f1e5
#define ICON_FA_BIOHAZARD "\xef\x9e\x80" // U+f780
#define ICON_FA_BITCOIN_SIGN "\xee\x82\xb4" // U+e0b4
#define ICON_FA_BLENDER "\xef\x94\x97" // U+f517
#define ICON_FA_BLENDER_PHONE "\xef\x9a\xb6" // U+f6b6
#define ICON_FA_BLOG "\xef\x9e\x81" // U+f781
#define ICON_FA_BOLD "\xef\x80\xb2" // U+f032
#define ICON_FA_BOLT "\xef\x83\xa7" // U+f0e7
#define ICON_FA_BOLT_LIGHTNING "\xee\x82\xb7" // U+e0b7
#define ICON_FA_BOMB "\xef\x87\xa2" // U+f1e2
#define ICON_FA_BONE "\xef\x97\x97" // U+f5d7
#define ICON_FA_BONG "\xef\x95\x9c" // U+f55c
#define ICON_FA_BOOK "\xef\x80\xad" // U+f02d
#define ICON_FA_BOOK_ATLAS "\xef\x95\x98" // U+f558
#define ICON_FA_BOOK_BIBLE "\xef\x99\x87" // U+f647
#define ICON_FA_BOOK_BOOKMARK "\xee\x82\xbb" // U+e0bb
#define ICON_FA_BOOK_JOURNAL_WHILLS "\xef\x99\xaa" // U+f66a
#define ICON_FA_BOOK_MEDICAL "\xef\x9f\xa6" // U+f7e6
#define ICON_FA_BOOK_OPEN "\xef\x94\x98" // U+f518
#define ICON_FA_BOOK_OPEN_READER "\xef\x97\x9a" // U+f5da
#define ICON_FA_BOOK_QURAN "\xef\x9a\x87" // U+f687
#define ICON_FA_BOOK_SKULL "\xef\x9a\xb7" // U+f6b7
#define ICON_FA_BOOK_TANAKH "\xef\xa0\xa7" // U+f827
#define ICON_FA_BOOKMARK "\xef\x80\xae" // U+f02e
#define ICON_FA_BORDER_ALL "\xef\xa1\x8c" // U+f84c
#define ICON_FA_BORDER_NONE "\xef\xa1\x90" // U+f850
#define ICON_FA_BORDER_TOP_LEFT "\xef\xa1\x93" // U+f853
#define ICON_FA_BORE_HOLE "\xee\x93\x83" // U+e4c3
#define ICON_FA_BOTTLE_DROPLET "\xee\x93\x84" // U+e4c4
#define ICON_FA_BOTTLE_WATER "\xee\x93\x85" // U+e4c5
#define ICON_FA_BOWL_FOOD "\xee\x93\x86" // U+e4c6
#define ICON_FA_BOWL_RICE "\xee\x8b\xab" // U+e2eb
#define ICON_FA_BOWLING_BALL "\xef\x90\xb6" // U+f436
#define ICON_FA_BOX "\xef\x91\xa6" // U+f466
#define ICON_FA_BOX_ARCHIVE "\xef\x86\x87" // U+f187
#define ICON_FA_BOX_OPEN "\xef\x92\x9e" // U+f49e
#define ICON_FA_BOX_TISSUE "\xee\x81\x9b" // U+e05b
#define ICON_FA_BOXES_PACKING "\xee\x93\x87" // U+e4c7
#define ICON_FA_BOXES_STACKED "\xef\x91\xa8" // U+f468
#define ICON_FA_BRAILLE "\xef\x8a\xa1" // U+f2a1
#define ICON_FA_BRAIN "\xef\x97\x9c" // U+f5dc
#define ICON_FA_BRAZILIAN_REAL_SIGN "\xee\x91\xac" // U+e46c
#define ICON_FA_BREAD_SLICE "\xef\x9f\xac" // U+f7ec
#define ICON_FA_BRIDGE "\xee\x93\x88" // U+e4c8
#define ICON_FA_BRIDGE_CIRCLE_CHECK "\xee\x93\x89" // U+e4c9
#define ICON_FA_BRIDGE_CIRCLE_EXCLAMATION "\xee\x93\x8a" // U+e4ca
#define ICON_FA_BRIDGE_CIRCLE_XMARK "\xee\x93\x8b" // U+e4cb
#define ICON_FA_BRIDGE_LOCK "\xee\x93\x8c" // U+e4cc
#define ICON_FA_BRIDGE_WATER "\xee\x93\x8e" // U+e4ce
#define ICON_FA_BRIEFCASE "\xef\x82\xb1" // U+f0b1
#define ICON_FA_BRIEFCASE_MEDICAL "\xef\x91\xa9" // U+f469
#define ICON_FA_BROOM "\xef\x94\x9a" // U+f51a
#define ICON_FA_BROOM_BALL "\xef\x91\x98" // U+f458
#define ICON_FA_BRUSH "\xef\x95\x9d" // U+f55d
#define ICON_FA_BUCKET "\xee\x93\x8f" // U+e4cf
#define ICON_FA_BUG "\xef\x86\x88" // U+f188
#define ICON_FA_BUG_SLASH "\xee\x92\x90" // U+e490
#define ICON_FA_BUGS "\xee\x93\x90" // U+e4d0
#define ICON_FA_BUILDING "\xef\x86\xad" // U+f1ad
#define ICON_FA_BUILDING_CIRCLE_ARROW_RIGHT "\xee\x93\x91" // U+e4d1
#define ICON_FA_BUILDING_CIRCLE_CHECK "\xee\x93\x92" // U+e4d2
#define ICON_FA_BUILDING_CIRCLE_EXCLAMATION "\xee\x93\x93" // U+e4d3
#define ICON_FA_BUILDING_CIRCLE_XMARK "\xee\x93\x94" // U+e4d4
#define ICON_FA_BUILDING_COLUMNS "\xef\x86\x9c" // U+f19c
#define ICON_FA_BUILDING_FLAG "\xee\x93\x95" // U+e4d5
#define ICON_FA_BUILDING_LOCK "\xee\x93\x96" // U+e4d6
#define ICON_FA_BUILDING_NGO "\xee\x93\x97" // U+e4d7
#define ICON_FA_BUILDING_SHIELD "\xee\x93\x98" // U+e4d8
#define ICON_FA_BUILDING_UN "\xee\x93\x99" // U+e4d9
#define ICON_FA_BUILDING_USER "\xee\x93\x9a" // U+e4da
#define ICON_FA_BUILDING_WHEAT "\xee\x93\x9b" // U+e4db
#define ICON_FA_BULLHORN "\xef\x82\xa1" // U+f0a1
#define ICON_FA_BULLSEYE "\xef\x85\x80" // U+f140
#define ICON_FA_BURGER "\xef\xa0\x85" // U+f805
#define ICON_FA_BURST "\xee\x93\x9c" // U+e4dc
#define ICON_FA_BUS "\xef\x88\x87" // U+f207
#define ICON_FA_BUS_SIMPLE "\xef\x95\x9e" // U+f55e
#define ICON_FA_BUSINESS_TIME "\xef\x99\x8a" // U+f64a
#define ICON_FA_C "C" // U+0043
#define ICON_FA_CABLE_CAR "\xef\x9f\x9a" // U+f7da
#define ICON_FA_CAKE_CANDLES "\xef\x87\xbd" // U+f1fd
#define ICON_FA_CALCULATOR "\xef\x87\xac" // U+f1ec
#define ICON_FA_CALENDAR "\xef\x84\xb3" // U+f133
#define ICON_FA_CALENDAR_CHECK "\xef\x89\xb4" // U+f274
#define ICON_FA_CALENDAR_DAY "\xef\x9e\x83" // U+f783
#define ICON_FA_CALENDAR_DAYS "\xef\x81\xb3" // U+f073
#define ICON_FA_CALENDAR_MINUS "\xef\x89\xb2" // U+f272
#define ICON_FA_CALENDAR_PLUS "\xef\x89\xb1" // U+f271
#define ICON_FA_CALENDAR_WEEK "\xef\x9e\x84" // U+f784
#define ICON_FA_CALENDAR_XMARK "\xef\x89\xb3" // U+f273
#define ICON_FA_CAMERA "\xef\x80\xb0" // U+f030
#define ICON_FA_CAMERA_RETRO "\xef\x82\x83" // U+f083
#define ICON_FA_CAMERA_ROTATE "\xee\x83\x98" // U+e0d8
#define ICON_FA_CAMPGROUND "\xef\x9a\xbb" // U+f6bb
#define ICON_FA_CANDY_CANE "\xef\x9e\x86" // U+f786
#define ICON_FA_CANNABIS "\xef\x95\x9f" // U+f55f
#define ICON_FA_CAPSULES "\xef\x91\xab" // U+f46b
#define ICON_FA_CAR "\xef\x86\xb9" // U+f1b9
#define ICON_FA_CAR_BATTERY "\xef\x97\x9f" // U+f5df
#define ICON_FA_CAR_BURST "\xef\x97\xa1" // U+f5e1
#define ICON_FA_CAR_ON "\xee\x93\x9d" // U+e4dd
#define ICON_FA_CAR_REAR "\xef\x97\x9e" // U+f5de
#define ICON_FA_CAR_SIDE "\xef\x97\xa4" // U+f5e4
#define ICON_FA_CAR_TUNNEL "\xee\x93\x9e" // U+e4de
#define ICON_FA_CARAVAN "\xef\xa3\xbf" // U+f8ff
#define ICON_FA_CARET_DOWN "\xef\x83\x97" // U+f0d7
#define ICON_FA_CARET_LEFT "\xef\x83\x99" // U+f0d9
#define ICON_FA_CARET_RIGHT "\xef\x83\x9a" // U+f0da
#define ICON_FA_CARET_UP "\xef\x83\x98" // U+f0d8
#define ICON_FA_CARROT "\xef\x9e\x87" // U+f787
#define ICON_FA_CART_ARROW_DOWN "\xef\x88\x98" // U+f218
#define ICON_FA_CART_FLATBED "\xef\x91\xb4" // U+f474
#define ICON_FA_CART_FLATBED_SUITCASE "\xef\x96\x9d" // U+f59d
#define ICON_FA_CART_PLUS "\xef\x88\x97" // U+f217
#define ICON_FA_CART_SHOPPING "\xef\x81\xba" // U+f07a
#define ICON_FA_CASH_REGISTER "\xef\x9e\x88" // U+f788
#define ICON_FA_CAT "\xef\x9a\xbe" // U+f6be
#define ICON_FA_CEDI_SIGN "\xee\x83\x9f" // U+e0df
#define ICON_FA_CENT_SIGN "\xee\x8f\xb5" // U+e3f5
#define ICON_FA_CERTIFICATE "\xef\x82\xa3" // U+f0a3
#define ICON_FA_CHAIR "\xef\x9b\x80" // U+f6c0
#define ICON_FA_CHALKBOARD "\xef\x94\x9b" // U+f51b
#define ICON_FA_CHALKBOARD_USER "\xef\x94\x9c" // U+f51c
#define ICON_FA_CHAMPAGNE_GLASSES "\xef\x9e\x9f" // U+f79f
#define ICON_FA_CHARGING_STATION "\xef\x97\xa7" // U+f5e7
#define ICON_FA_CHART_AREA "\xef\x87\xbe" // U+f1fe
#define ICON_FA_CHART_BAR "\xef\x82\x80" // U+f080
#define ICON_FA_CHART_COLUMN "\xee\x83\xa3" // U+e0e3
#define ICON_FA_CHART_GANTT "\xee\x83\xa4" // U+e0e4
#define ICON_FA_CHART_LINE "\xef\x88\x81" // U+f201
#define ICON_FA_CHART_PIE "\xef\x88\x80" // U+f200
#define ICON_FA_CHART_SIMPLE "\xee\x91\xb3" // U+e473
#define ICON_FA_CHECK "\xef\x80\x8c" // U+f00c
#define ICON_FA_CHECK_DOUBLE "\xef\x95\xa0" // U+f560
#define ICON_FA_CHECK_TO_SLOT "\xef\x9d\xb2" // U+f772
#define ICON_FA_CHEESE "\xef\x9f\xaf" // U+f7ef
#define ICON_FA_CHESS "\xef\x90\xb9" // U+f439
#define ICON_FA_CHESS_BISHOP "\xef\x90\xba" // U+f43a
#define ICON_FA_CHESS_BOARD "\xef\x90\xbc" // U+f43c
#define ICON_FA_CHESS_KING "\xef\x90\xbf" // U+f43f
#define ICON_FA_CHESS_KNIGHT "\xef\x91\x81" // U+f441
#define ICON_FA_CHESS_PAWN "\xef\x91\x83" // U+f443
#define ICON_FA_CHESS_QUEEN "\xef\x91\x85" // U+f445
#define ICON_FA_CHESS_ROOK "\xef\x91\x87" // U+f447
#define ICON_FA_CHEVRON_DOWN "\xef\x81\xb8" // U+f078
#define ICON_FA_CHEVRON_LEFT "\xef\x81\x93" // U+f053
#define ICON_FA_CHEVRON_RIGHT "\xef\x81\x94" // U+f054
#define ICON_FA_CHEVRON_UP "\xef\x81\xb7" // U+f077
#define ICON_FA_CHILD "\xef\x86\xae" // U+f1ae
#define ICON_FA_CHILD_COMBATANT "\xee\x93\xa0" // U+e4e0
#define ICON_FA_CHILD_DRESS "\xee\x96\x9c" // U+e59c
#define ICON_FA_CHILD_REACHING "\xee\x96\x9d" // U+e59d
#define ICON_FA_CHILDREN "\xee\x93\xa1" // U+e4e1
#define ICON_FA_CHURCH "\xef\x94\x9d" // U+f51d
#define ICON_FA_CIRCLE "\xef\x84\x91" // U+f111
#define ICON_FA_CIRCLE_ARROW_DOWN "\xef\x82\xab" // U+f0ab
#define ICON_FA_CIRCLE_ARROW_LEFT "\xef\x82\xa8" // U+f0a8
#define ICON_FA_CIRCLE_ARROW_RIGHT "\xef\x82\xa9" // U+f0a9
#define ICON_FA_CIRCLE_ARROW_UP "\xef\x82\xaa" // U+f0aa
#define ICON_FA_CIRCLE_CHECK "\xef\x81\x98" // U+f058
#define ICON_FA_CIRCLE_CHEVRON_DOWN "\xef\x84\xba" // U+f13a
#define ICON_FA_CIRCLE_CHEVRON_LEFT "\xef\x84\xb7" // U+f137
#define ICON_FA_CIRCLE_CHEVRON_RIGHT "\xef\x84\xb8" // U+f138
#define ICON_FA_CIRCLE_CHEVRON_UP "\xef\x84\xb9" // U+f139
#define ICON_FA_CIRCLE_DOLLAR_TO_SLOT "\xef\x92\xb9" // U+f4b9
#define ICON_FA_CIRCLE_DOT "\xef\x86\x92" // U+f192
#define ICON_FA_CIRCLE_DOWN "\xef\x8d\x98" // U+f358
#define ICON_FA_CIRCLE_EXCLAMATION "\xef\x81\xaa" // U+f06a
#define ICON_FA_CIRCLE_H "\xef\x91\xbe" // U+f47e
#define ICON_FA_CIRCLE_HALF_STROKE "\xef\x81\x82" // U+f042
#define ICON_FA_CIRCLE_INFO "\xef\x81\x9a" // U+f05a
#define ICON_FA_CIRCLE_LEFT "\xef\x8d\x99" // U+f359
#define ICON_FA_CIRCLE_MINUS "\xef\x81\x96" // U+f056
#define ICON_FA_CIRCLE_NODES "\xee\x93\xa2" // U+e4e2
#define ICON_FA_CIRCLE_NOTCH "\xef\x87\x8e" // U+f1ce
#define ICON_FA_CIRCLE_PAUSE "\xef\x8a\x8b" // U+f28b
#define ICON_FA_CIRCLE_PLAY "\xef\x85\x84" // U+f144
#define ICON_FA_CIRCLE_PLUS "\xef\x81\x95" // U+f055
#define ICON_FA_CIRCLE_QUESTION "\xef\x81\x99" // U+f059
#define ICON_FA_CIRCLE_RADIATION "\xef\x9e\xba" // U+f7ba
#define ICON_FA_CIRCLE_RIGHT "\xef\x8d\x9a" // U+f35a
#define ICON_FA_CIRCLE_STOP "\xef\x8a\x8d" // U+f28d
#define ICON_FA_CIRCLE_UP "\xef\x8d\x9b" // U+f35b
#define ICON_FA_CIRCLE_USER "\xef\x8a\xbd" // U+f2bd
#define ICON_FA_CIRCLE_XMARK "\xef\x81\x97" // U+f057
#define ICON_FA_CITY "\xef\x99\x8f" // U+f64f
#define ICON_FA_CLAPPERBOARD "\xee\x84\xb1" // U+e131
#define ICON_FA_CLIPBOARD "\xef\x8c\xa8" // U+f328
#define ICON_FA_CLIPBOARD_CHECK "\xef\x91\xac" // U+f46c
#define ICON_FA_CLIPBOARD_LIST "\xef\x91\xad" // U+f46d
#define ICON_FA_CLIPBOARD_QUESTION "\xee\x93\xa3" // U+e4e3
#define ICON_FA_CLIPBOARD_USER "\xef\x9f\xb3" // U+f7f3
#define ICON_FA_CLOCK "\xef\x80\x97" // U+f017
#define ICON_FA_CLOCK_ROTATE_LEFT "\xef\x87\x9a" // U+f1da
#define ICON_FA_CLONE "\xef\x89\x8d" // U+f24d
#define ICON_FA_CLOSED_CAPTIONING "\xef\x88\x8a" // U+f20a
#define ICON_FA_CLOUD "\xef\x83\x82" // U+f0c2
#define ICON_FA_CLOUD_ARROW_DOWN "\xef\x83\xad" // U+f0ed
#define ICON_FA_CLOUD_ARROW_UP "\xef\x83\xae" // U+f0ee
#define ICON_FA_CLOUD_BOLT "\xef\x9d\xac" // U+f76c
#define ICON_FA_CLOUD_MEATBALL "\xef\x9c\xbb" // U+f73b
#define ICON_FA_CLOUD_MOON "\xef\x9b\x83" // U+f6c3
#define ICON_FA_CLOUD_MOON_RAIN "\xef\x9c\xbc" // U+f73c
#define ICON_FA_CLOUD_RAIN "\xef\x9c\xbd" // U+f73d
#define ICON_FA_CLOUD_SHOWERS_HEAVY "\xef\x9d\x80" // U+f740
#define ICON_FA_CLOUD_SHOWERS_WATER "\xee\x93\xa4" // U+e4e4
#define ICON_FA_CLOUD_SUN "\xef\x9b\x84" // U+f6c4
#define ICON_FA_CLOUD_SUN_RAIN "\xef\x9d\x83" // U+f743
#define ICON_FA_CLOVER "\xee\x84\xb9" // U+e139
#define ICON_FA_CODE "\xef\x84\xa1" // U+f121
#define ICON_FA_CODE_BRANCH "\xef\x84\xa6" // U+f126
#define ICON_FA_CODE_COMMIT "\xef\x8e\x86" // U+f386
#define ICON_FA_CODE_COMPARE "\xee\x84\xba" // U+e13a
#define ICON_FA_CODE_FORK "\xee\x84\xbb" // U+e13b
#define ICON_FA_CODE_MERGE "\xef\x8e\x87" // U+f387
#define ICON_FA_CODE_PULL_REQUEST "\xee\x84\xbc" // U+e13c
#define ICON_FA_COINS "\xef\x94\x9e" // U+f51e
#define ICON_FA_COLON_SIGN "\xee\x85\x80" // U+e140
#define ICON_FA_COMMENT "\xef\x81\xb5" // U+f075
#define ICON_FA_COMMENT_DOLLAR "\xef\x99\x91" // U+f651
#define ICON_FA_COMMENT_DOTS "\xef\x92\xad" // U+f4ad
#define ICON_FA_COMMENT_MEDICAL "\xef\x9f\xb5" // U+f7f5
#define ICON_FA_COMMENT_SLASH "\xef\x92\xb3" // U+f4b3
#define ICON_FA_COMMENT_SMS "\xef\x9f\x8d" // U+f7cd
#define ICON_FA_COMMENTS "\xef\x82\x86" // U+f086
#define ICON_FA_COMMENTS_DOLLAR "\xef\x99\x93" // U+f653
#define ICON_FA_COMPACT_DISC "\xef\x94\x9f" // U+f51f
#define ICON_FA_COMPASS "\xef\x85\x8e" // U+f14e
#define ICON_FA_COMPASS_DRAFTING "\xef\x95\xa8" // U+f568
#define ICON_FA_COMPRESS "\xef\x81\xa6" // U+f066
#define ICON_FA_COMPUTER "\xee\x93\xa5" // U+e4e5
#define ICON_FA_COMPUTER_MOUSE "\xef\xa3\x8c" // U+f8cc
#define ICON_FA_COOKIE "\xef\x95\xa3" // U+f563
#define ICON_FA_COOKIE_BITE "\xef\x95\xa4" // U+f564
#define ICON_FA_COPY "\xef\x83\x85" // U+f0c5
#define ICON_FA_COPYRIGHT "\xef\x87\xb9" // U+f1f9
#define ICON_FA_COUCH "\xef\x92\xb8" // U+f4b8
#define ICON_FA_COW "\xef\x9b\x88" // U+f6c8
#define ICON_FA_CREDIT_CARD "\xef\x82\x9d" // U+f09d
#define ICON_FA_CROP "\xef\x84\xa5" // U+f125
#define ICON_FA_CROP_SIMPLE "\xef\x95\xa5" // U+f565
#define ICON_FA_CROSS "\xef\x99\x94" // U+f654
#define ICON_FA_CROSSHAIRS "\xef\x81\x9b" // U+f05b
#define ICON_FA_CROW "\xef\x94\xa0" // U+f520
#define ICON_FA_CROWN "\xef\x94\xa1" // U+f521
#define ICON_FA_CRUTCH "\xef\x9f\xb7" // U+f7f7
#define ICON_FA_CRUZEIRO_SIGN "\xee\x85\x92" // U+e152
#define ICON_FA_CUBE "\xef\x86\xb2" // U+f1b2
#define ICON_FA_CUBES "\xef\x86\xb3" // U+f1b3
#define ICON_FA_CUBES_STACKED "\xee\x93\xa6" // U+e4e6
#define ICON_FA_D "D" // U+0044
#define ICON_FA_DATABASE "\xef\x87\x80" // U+f1c0
#define ICON_FA_DELETE_LEFT "\xef\x95\x9a" // U+f55a
#define ICON_FA_DEMOCRAT "\xef\x9d\x87" // U+f747
#define ICON_FA_DESKTOP "\xef\x8e\x90" // U+f390
#define ICON_FA_DHARMACHAKRA "\xef\x99\x95" // U+f655
#define ICON_FA_DIAGRAM_NEXT "\xee\x91\xb6" // U+e476
#define ICON_FA_DIAGRAM_PREDECESSOR "\xee\x91\xb7" // U+e477
#define ICON_FA_DIAGRAM_PROJECT "\xef\x95\x82" // U+f542
#define ICON_FA_DIAGRAM_SUCCESSOR "\xee\x91\xba" // U+e47a
#define ICON_FA_DIAMOND "\xef\x88\x99" // U+f219
#define ICON_FA_DIAMOND_TURN_RIGHT "\xef\x97\xab" // U+f5eb
#define ICON_FA_DICE "\xef\x94\xa2" // U+f522
#define ICON_FA_DICE_D20 "\xef\x9b\x8f" // U+f6cf
#define ICON_FA_DICE_D6 "\xef\x9b\x91" // U+f6d1
#define ICON_FA_DICE_FIVE "\xef\x94\xa3" // U+f523
#define ICON_FA_DICE_FOUR "\xef\x94\xa4" // U+f524
#define ICON_FA_DICE_ONE "\xef\x94\xa5" // U+f525
#define ICON_FA_DICE_SIX "\xef\x94\xa6" // U+f526
#define ICON_FA_DICE_THREE "\xef\x94\xa7" // U+f527
#define ICON_FA_DICE_TWO "\xef\x94\xa8" // U+f528
#define ICON_FA_DISEASE "\xef\x9f\xba" // U+f7fa
#define ICON_FA_DISPLAY "\xee\x85\xa3" // U+e163
#define ICON_FA_DIVIDE "\xef\x94\xa9" // U+f529
#define ICON_FA_DNA "\xef\x91\xb1" // U+f471
#define ICON_FA_DOG "\xef\x9b\x93" // U+f6d3
#define ICON_FA_DOLLAR_SIGN "$" // U+0024
#define ICON_FA_DOLLY "\xef\x91\xb2" // U+f472
#define ICON_FA_DONG_SIGN "\xee\x85\xa9" // U+e169
#define ICON_FA_DOOR_CLOSED "\xef\x94\xaa" // U+f52a
#define ICON_FA_DOOR_OPEN "\xef\x94\xab" // U+f52b
#define ICON_FA_DOVE "\xef\x92\xba" // U+f4ba
#define ICON_FA_DOWN_LEFT_AND_UP_RIGHT_TO_CENTER "\xef\x90\xa2" // U+f422
#define ICON_FA_DOWN_LONG "\xef\x8c\x89" // U+f309
#define ICON_FA_DOWNLOAD "\xef\x80\x99" // U+f019
#define ICON_FA_DRAGON "\xef\x9b\x95" // U+f6d5
#define ICON_FA_DRAW_POLYGON "\xef\x97\xae" // U+f5ee
#define ICON_FA_DROPLET "\xef\x81\x83" // U+f043
#define ICON_FA_DROPLET_SLASH "\xef\x97\x87" // U+f5c7
#define ICON_FA_DRUM "\xef\x95\xa9" // U+f569
#define ICON_FA_DRUM_STEELPAN "\xef\x95\xaa" // U+f56a
#define ICON_FA_DRUMSTICK_BITE "\xef\x9b\x97" // U+f6d7
#define ICON_FA_DUMBBELL "\xef\x91\x8b" // U+f44b
#define ICON_FA_DUMPSTER "\xef\x9e\x93" // U+f793
#define ICON_FA_DUMPSTER_FIRE "\xef\x9e\x94" // U+f794
#define ICON_FA_DUNGEON "\xef\x9b\x99" // U+f6d9
#define ICON_FA_E "E" // U+0045
#define ICON_FA_EAR_DEAF "\xef\x8a\xa4" // U+f2a4
#define ICON_FA_EAR_LISTEN "\xef\x8a\xa2" // U+f2a2
#define ICON_FA_EARTH_AFRICA "\xef\x95\xbc" // U+f57c
#define ICON_FA_EARTH_AMERICAS "\xef\x95\xbd" // U+f57d
#define ICON_FA_EARTH_ASIA "\xef\x95\xbe" // U+f57e
#define ICON_FA_EARTH_EUROPE "\xef\x9e\xa2" // U+f7a2
#define ICON_FA_EARTH_OCEANIA "\xee\x91\xbb" // U+e47b
#define ICON_FA_EGG "\xef\x9f\xbb" // U+f7fb
#define ICON_FA_EJECT "\xef\x81\x92" // U+f052
#define ICON_FA_ELEVATOR "\xee\x85\xad" // U+e16d
#define ICON_FA_ELLIPSIS "\xef\x85\x81" // U+f141
#define ICON_FA_ELLIPSIS_VERTICAL "\xef\x85\x82" // U+f142
#define ICON_FA_ENVELOPE "\xef\x83\xa0" // U+f0e0
#define ICON_FA_ENVELOPE_CIRCLE_CHECK "\xee\x93\xa8" // U+e4e8
#define ICON_FA_ENVELOPE_OPEN "\xef\x8a\xb6" // U+f2b6
#define ICON_FA_ENVELOPE_OPEN_TEXT "\xef\x99\x98" // U+f658
#define ICON_FA_ENVELOPES_BULK "\xef\x99\xb4" // U+f674
#define ICON_FA_EQUALS "=" // U+003d
#define ICON_FA_ERASER "\xef\x84\xad" // U+f12d
#define ICON_FA_ETHERNET "\xef\x9e\x96" // U+f796
#define ICON_FA_EURO_SIGN "\xef\x85\x93" // U+f153
#define ICON_FA_EXCLAMATION "!" // U+0021
#define ICON_FA_EXPAND "\xef\x81\xa5" // U+f065
#define ICON_FA_EXPLOSION "\xee\x93\xa9" // U+e4e9
#define ICON_FA_EYE "\xef\x81\xae" // U+f06e
#define ICON_FA_EYE_DROPPER "\xef\x87\xbb" // U+f1fb
#define ICON_FA_EYE_LOW_VISION "\xef\x8a\xa8" // U+f2a8
#define ICON_FA_EYE_SLASH "\xef\x81\xb0" // U+f070
#define ICON_FA_F "F" // U+0046
#define ICON_FA_FACE_ANGRY "\xef\x95\x96" // U+f556
#define ICON_FA_FACE_DIZZY "\xef\x95\xa7" // U+f567
#define ICON_FA_FACE_FLUSHED "\xef\x95\xb9" // U+f579
#define ICON_FA_FACE_FROWN "\xef\x84\x99" // U+f119
#define ICON_FA_FACE_FROWN_OPEN "\xef\x95\xba" // U+f57a
#define ICON_FA_FACE_GRIMACE "\xef\x95\xbf" // U+f57f
#define ICON_FA_FACE_GRIN "\xef\x96\x80" // U+f580
#define ICON_FA_FACE_GRIN_BEAM "\xef\x96\x82" // U+f582
#define ICON_FA_FACE_GRIN_BEAM_SWEAT "\xef\x96\x83" // U+f583
#define ICON_FA_FACE_GRIN_HEARTS "\xef\x96\x84" // U+f584
#define ICON_FA_FACE_GRIN_SQUINT "\xef\x96\x85" // U+f585
#define ICON_FA_FACE_GRIN_SQUINT_TEARS "\xef\x96\x86" // U+f586
#define ICON_FA_FACE_GRIN_STARS "\xef\x96\x87" // U+f587
#define ICON_FA_FACE_GRIN_TEARS "\xef\x96\x88" // U+f588
#define ICON_FA_FACE_GRIN_TONGUE "\xef\x96\x89" // U+f589
#define ICON_FA_FACE_GRIN_TONGUE_SQUINT "\xef\x96\x8a" // U+f58a
#define ICON_FA_FACE_GRIN_TONGUE_WINK "\xef\x96\x8b" // U+f58b
#define ICON_FA_FACE_GRIN_WIDE "\xef\x96\x81" // U+f581
#define ICON_FA_FACE_GRIN_WINK "\xef\x96\x8c" // U+f58c
#define ICON_FA_FACE_KISS "\xef\x96\x96" // U+f596
#define ICON_FA_FACE_KISS_BEAM "\xef\x96\x97" // U+f597
#define ICON_FA_FACE_KISS_WINK_HEART "\xef\x96\x98" // U+f598
#define ICON_FA_FACE_LAUGH "\xef\x96\x99" // U+f599
#define ICON_FA_FACE_LAUGH_BEAM "\xef\x96\x9a" // U+f59a
#define ICON_FA_FACE_LAUGH_SQUINT "\xef\x96\x9b" // U+f59b
#define ICON_FA_FACE_LAUGH_WINK "\xef\x96\x9c" // U+f59c
#define ICON_FA_FACE_MEH "\xef\x84\x9a" // U+f11a
#define ICON_FA_FACE_MEH_BLANK "\xef\x96\xa4" // U+f5a4
#define ICON_FA_FACE_ROLLING_EYES "\xef\x96\xa5" // U+f5a5
#define ICON_FA_FACE_SAD_CRY "\xef\x96\xb3" // U+f5b3
#define ICON_FA_FACE_SAD_TEAR "\xef\x96\xb4" // U+f5b4
#define ICON_FA_FACE_SMILE "\xef\x84\x98" // U+f118
#define ICON_FA_FACE_SMILE_BEAM "\xef\x96\xb8" // U+f5b8
#define ICON_FA_FACE_SMILE_WINK "\xef\x93\x9a" // U+f4da
#define ICON_FA_FACE_SURPRISE "\xef\x97\x82" // U+f5c2
#define ICON_FA_FACE_TIRED "\xef\x97\x88" // U+f5c8
#define ICON_FA_FAN "\xef\xa1\xa3" // U+f863
#define ICON_FA_FAUCET "\xee\x80\x85" // U+e005
#define ICON_FA_FAUCET_DRIP "\xee\x80\x86" // U+e006
#define ICON_FA_FAX "\xef\x86\xac" // U+f1ac
#define ICON_FA_FEATHER "\xef\x94\xad" // U+f52d
#define ICON_FA_FEATHER_POINTED "\xef\x95\xab" // U+f56b
#define ICON_FA_FERRY "\xee\x93\xaa" // U+e4ea
#define ICON_FA_FILE "\xef\x85\x9b" // U+f15b
#define ICON_FA_FILE_ARROW_DOWN "\xef\x95\xad" // U+f56d
#define ICON_FA_FILE_ARROW_UP "\xef\x95\xb4" // U+f574
#define ICON_FA_FILE_AUDIO "\xef\x87\x87" // U+f1c7
#define ICON_FA_FILE_CIRCLE_CHECK "\xee\x96\xa0" // U+e5a0
#define ICON_FA_FILE_CIRCLE_EXCLAMATION "\xee\x93\xab" // U+e4eb
#define ICON_FA_FILE_CIRCLE_MINUS "\xee\x93\xad" // U+e4ed
#define ICON_FA_FILE_CIRCLE_PLUS "\xee\x92\x94" // U+e494
#define ICON_FA_FILE_CIRCLE_QUESTION "\xee\x93\xaf" // U+e4ef
#define ICON_FA_FILE_CIRCLE_XMARK "\xee\x96\xa1" // U+e5a1
#define ICON_FA_FILE_CODE "\xef\x87\x89" // U+f1c9
#define ICON_FA_FILE_CONTRACT "\xef\x95\xac" // U+f56c
#define ICON_FA_FILE_CSV "\xef\x9b\x9d" // U+f6dd
#define ICON_FA_FILE_EXCEL "\xef\x87\x83" // U+f1c3
#define ICON_FA_FILE_EXPORT "\xef\x95\xae" // U+f56e
#define ICON_FA_FILE_IMAGE "\xef\x87\x85" // U+f1c5
#define ICON_FA_FILE_IMPORT "\xef\x95\xaf" // U+f56f
#define ICON_FA_FILE_INVOICE "\xef\x95\xb0" // U+f570
#define ICON_FA_FILE_INVOICE_DOLLAR "\xef\x95\xb1" // U+f571
#define ICON_FA_FILE_LINES "\xef\x85\x9c" // U+f15c
#define ICON_FA_FILE_MEDICAL "\xef\x91\xb7" // U+f477
#define ICON_FA_FILE_PDF "\xef\x87\x81" // U+f1c1
#define ICON_FA_FILE_PEN "\xef\x8c\x9c" // U+f31c
#define ICON_FA_FILE_POWERPOINT "\xef\x87\x84" // U+f1c4
#define ICON_FA_FILE_PRESCRIPTION "\xef\x95\xb2" // U+f572
#define ICON_FA_FILE_SHIELD "\xee\x93\xb0" // U+e4f0
#define ICON_FA_FILE_SIGNATURE "\xef\x95\xb3" // U+f573
#define ICON_FA_FILE_VIDEO "\xef\x87\x88" // U+f1c8
#define ICON_FA_FILE_WAVEFORM "\xef\x91\xb8" // U+f478
#define ICON_FA_FILE_WORD "\xef\x87\x82" // U+f1c2
#define ICON_FA_FILE_ZIPPER "\xef\x87\x86" // U+f1c6
#define ICON_FA_FILL "\xef\x95\xb5" // U+f575
#define ICON_FA_FILL_DRIP "\xef\x95\xb6" // U+f576
#define ICON_FA_FILM "\xef\x80\x88" // U+f008
#define ICON_FA_FILTER "\xef\x82\xb0" // U+f0b0
#define ICON_FA_FILTER_CIRCLE_DOLLAR "\xef\x99\xa2" // U+f662
#define ICON_FA_FILTER_CIRCLE_XMARK "\xee\x85\xbb" // U+e17b
#define ICON_FA_FINGERPRINT "\xef\x95\xb7" // U+f577
#define ICON_FA_FIRE "\xef\x81\xad" // U+f06d
#define ICON_FA_FIRE_BURNER "\xee\x93\xb1" // U+e4f1
#define ICON_FA_FIRE_EXTINGUISHER "\xef\x84\xb4" // U+f134
#define ICON_FA_FIRE_FLAME_CURVED "\xef\x9f\xa4" // U+f7e4
#define ICON_FA_FIRE_FLAME_SIMPLE "\xef\x91\xaa" // U+f46a
#define ICON_FA_FISH "\xef\x95\xb8" // U+f578
#define ICON_FA_FISH_FINS "\xee\x93\xb2" // U+e4f2
#define ICON_FA_FLAG "\xef\x80\xa4" // U+f024
#define ICON_FA_FLAG_CHECKERED "\xef\x84\x9e" // U+f11e
#define ICON_FA_FLAG_USA "\xef\x9d\x8d" // U+f74d
#define ICON_FA_FLASK "\xef\x83\x83" // U+f0c3
#define ICON_FA_FLASK_VIAL "\xee\x93\xb3" // U+e4f3
#define ICON_FA_FLOPPY_DISK "\xef\x83\x87" // U+f0c7
#define ICON_FA_FLORIN_SIGN "\xee\x86\x84" // U+e184
#define ICON_FA_FOLDER "\xef\x81\xbb" // U+f07b
#define ICON_FA_FOLDER_CLOSED "\xee\x86\x85" // U+e185
#define ICON_FA_FOLDER_MINUS "\xef\x99\x9d" // U+f65d
#define ICON_FA_FOLDER_OPEN "\xef\x81\xbc" // U+f07c
#define ICON_FA_FOLDER_PLUS "\xef\x99\x9e" // U+f65e
#define ICON_FA_FOLDER_TREE "\xef\xa0\x82" // U+f802
#define ICON_FA_FONT "\xef\x80\xb1" // U+f031
#define ICON_FA_FONT_AWESOME "\xef\x8a\xb4" // U+f2b4
#define ICON_FA_FOOTBALL "\xef\x91\x8e" // U+f44e
#define ICON_FA_FORWARD "\xef\x81\x8e" // U+f04e
#define ICON_FA_FORWARD_FAST "\xef\x81\x90" // U+f050
#define ICON_FA_FORWARD_STEP "\xef\x81\x91" // U+f051
#define ICON_FA_FRANC_SIGN "\xee\x86\x8f" // U+e18f
#define ICON_FA_FROG "\xef\x94\xae" // U+f52e
#define ICON_FA_FUTBOL "\xef\x87\xa3" // U+f1e3
#define ICON_FA_G "G" // U+0047
#define ICON_FA_GAMEPAD "\xef\x84\x9b" // U+f11b
#define ICON_FA_GAS_PUMP "\xef\x94\xaf" // U+f52f
#define ICON_FA_GAUGE "\xef\x98\xa4" // U+f624
#define ICON_FA_GAUGE_HIGH "\xef\x98\xa5" // U+f625
#define ICON_FA_GAUGE_SIMPLE "\xef\x98\xa9" // U+f629
#define ICON_FA_GAUGE_SIMPLE_HIGH "\xef\x98\xaa" // U+f62a
#define ICON_FA_GAVEL "\xef\x83\xa3" // U+f0e3
#define ICON_FA_GEAR "\xef\x80\x93" // U+f013
#define ICON_FA_GEARS "\xef\x82\x85" // U+f085
#define ICON_FA_GEM "\xef\x8e\xa5" // U+f3a5
#define ICON_FA_GENDERLESS "\xef\x88\xad" // U+f22d
#define ICON_FA_GHOST "\xef\x9b\xa2" // U+f6e2
#define ICON_FA_GIFT "\xef\x81\xab" // U+f06b
#define ICON_FA_GIFTS "\xef\x9e\x9c" // U+f79c
#define ICON_FA_GLASS_WATER "\xee\x93\xb4" // U+e4f4
#define ICON_FA_GLASS_WATER_DROPLET "\xee\x93\xb5" // U+e4f5
#define ICON_FA_GLASSES "\xef\x94\xb0" // U+f530
#define ICON_FA_GLOBE "\xef\x82\xac" // U+f0ac
#define ICON_FA_GOLF_BALL_TEE "\xef\x91\x90" // U+f450
#define ICON_FA_GOPURAM "\xef\x99\xa4" // U+f664
#define ICON_FA_GRADUATION_CAP "\xef\x86\x9d" // U+f19d
#define ICON_FA_GREATER_THAN ">" // U+003e
#define ICON_FA_GREATER_THAN_EQUAL "\xef\x94\xb2" // U+f532
#define ICON_FA_GRIP "\xef\x96\x8d" // U+f58d
#define ICON_FA_GRIP_LINES "\xef\x9e\xa4" // U+f7a4
#define ICON_FA_GRIP_LINES_VERTICAL "\xef\x9e\xa5" // U+f7a5
#define ICON_FA_GRIP_VERTICAL "\xef\x96\x8e" // U+f58e
#define ICON_FA_GROUP_ARROWS_ROTATE "\xee\x93\xb6" // U+e4f6
#define ICON_FA_GUARANI_SIGN "\xee\x86\x9a" // U+e19a
#define ICON_FA_GUITAR "\xef\x9e\xa6" // U+f7a6
#define ICON_FA_GUN "\xee\x86\x9b" // U+e19b
#define ICON_FA_H "H" // U+0048
#define ICON_FA_HAMMER "\xef\x9b\xa3" // U+f6e3
#define ICON_FA_HAMSA "\xef\x99\xa5" // U+f665
#define ICON_FA_HAND "\xef\x89\x96" // U+f256
#define ICON_FA_HAND_BACK_FIST "\xef\x89\x95" // U+f255
#define ICON_FA_HAND_DOTS "\xef\x91\xa1" // U+f461
#define ICON_FA_HAND_FIST "\xef\x9b\x9e" // U+f6de
#define ICON_FA_HAND_HOLDING "\xef\x92\xbd" // U+f4bd
#define ICON_FA_HAND_HOLDING_DOLLAR "\xef\x93\x80" // U+f4c0
#define ICON_FA_HAND_HOLDING_DROPLET "\xef\x93\x81" // U+f4c1
#define ICON_FA_HAND_HOLDING_HAND "\xee\x93\xb7" // U+e4f7
#define ICON_FA_HAND_HOLDING_HEART "\xef\x92\xbe" // U+f4be
#define ICON_FA_HAND_HOLDING_MEDICAL "\xee\x81\x9c" // U+e05c
#define ICON_FA_HAND_LIZARD "\xef\x89\x98" // U+f258
#define ICON_FA_HAND_MIDDLE_FINGER "\xef\xa0\x86" // U+f806
#define ICON_FA_HAND_PEACE "\xef\x89\x9b" // U+f25b
#define ICON_FA_HAND_POINT_DOWN "\xef\x82\xa7" // U+f0a7
#define ICON_FA_HAND_POINT_LEFT "\xef\x82\xa5" // U+f0a5
#define ICON_FA_HAND_POINT_RIGHT "\xef\x82\xa4" // U+f0a4
#define ICON_FA_HAND_POINT_UP "\xef\x82\xa6" // U+f0a6
#define ICON_FA_HAND_POINTER "\xef\x89\x9a" // U+f25a
#define ICON_FA_HAND_SCISSORS "\xef\x89\x97" // U+f257
#define ICON_FA_HAND_SPARKLES "\xee\x81\x9d" // U+e05d
#define ICON_FA_HAND_SPOCK "\xef\x89\x99" // U+f259
#define ICON_FA_HANDCUFFS "\xee\x93\xb8" // U+e4f8
#define ICON_FA_HANDS "\xef\x8a\xa7" // U+f2a7
#define ICON_FA_HANDS_ASL_INTERPRETING "\xef\x8a\xa3" // U+f2a3
#define ICON_FA_HANDS_BOUND "\xee\x93\xb9" // U+e4f9
#define ICON_FA_HANDS_BUBBLES "\xee\x81\x9e" // U+e05e
#define ICON_FA_HANDS_CLAPPING "\xee\x86\xa8" // U+e1a8
#define ICON_FA_HANDS_HOLDING "\xef\x93\x82" // U+f4c2
#define ICON_FA_HANDS_HOLDING_CHILD "\xee\x93\xba" // U+e4fa
#define ICON_FA_HANDS_HOLDING_CIRCLE "\xee\x93\xbb" // U+e4fb
#define ICON_FA_HANDS_PRAYING "\xef\x9a\x84" // U+f684
#define ICON_FA_HANDSHAKE "\xef\x8a\xb5" // U+f2b5
#define ICON_FA_HANDSHAKE_ANGLE "\xef\x93\x84" // U+f4c4
#define ICON_FA_HANDSHAKE_SIMPLE "\xef\x93\x86" // U+f4c6
#define ICON_FA_HANDSHAKE_SIMPLE_SLASH "\xee\x81\x9f" // U+e05f
#define ICON_FA_HANDSHAKE_SLASH "\xee\x81\xa0" // U+e060
#define ICON_FA_HANUKIAH "\xef\x9b\xa6" // U+f6e6
#define ICON_FA_HARD_DRIVE "\xef\x82\xa0" // U+f0a0
#define ICON_FA_HASHTAG "#" // U+0023
#define ICON_FA_HAT_COWBOY "\xef\xa3\x80" // U+f8c0
#define ICON_FA_HAT_COWBOY_SIDE "\xef\xa3\x81" // U+f8c1
#define ICON_FA_HAT_WIZARD "\xef\x9b\xa8" // U+f6e8
#define ICON_FA_HEAD_SIDE_COUGH "\xee\x81\xa1" // U+e061
#define ICON_FA_HEAD_SIDE_COUGH_SLASH "\xee\x81\xa2" // U+e062
#define ICON_FA_HEAD_SIDE_MASK "\xee\x81\xa3" // U+e063
#define ICON_FA_HEAD_SIDE_VIRUS "\xee\x81\xa4" // U+e064
#define ICON_FA_HEADING "\xef\x87\x9c" // U+f1dc
#define ICON_FA_HEADPHONES "\xef\x80\xa5" // U+f025
#define ICON_FA_HEADPHONES_SIMPLE "\xef\x96\x8f" // U+f58f
#define ICON_FA_HEADSET "\xef\x96\x90" // U+f590
#define ICON_FA_HEART "\xef\x80\x84" // U+f004
#define ICON_FA_HEART_CIRCLE_BOLT "\xee\x93\xbc" // U+e4fc
#define ICON_FA_HEART_CIRCLE_CHECK "\xee\x93\xbd" // U+e4fd
#define ICON_FA_HEART_CIRCLE_EXCLAMATION "\xee\x93\xbe" // U+e4fe
#define ICON_FA_HEART_CIRCLE_MINUS "\xee\x93\xbf" // U+e4ff
#define ICON_FA_HEART_CIRCLE_PLUS "\xee\x94\x80" // U+e500
#define ICON_FA_HEART_CIRCLE_XMARK "\xee\x94\x81" // U+e501
#define ICON_FA_HEART_CRACK "\xef\x9e\xa9" // U+f7a9
#define ICON_FA_HEART_PULSE "\xef\x88\x9e" // U+f21e
#define ICON_FA_HELICOPTER "\xef\x94\xb3" // U+f533
#define ICON_FA_HELICOPTER_SYMBOL "\xee\x94\x82" // U+e502
#define ICON_FA_HELMET_SAFETY "\xef\xa0\x87" // U+f807
#define ICON_FA_HELMET_UN "\xee\x94\x83" // U+e503
#define ICON_FA_HIGHLIGHTER "\xef\x96\x91" // U+f591
#define ICON_FA_HILL_AVALANCHE "\xee\x94\x87" // U+e507
#define ICON_FA_HILL_ROCKSLIDE "\xee\x94\x88" // U+e508
#define ICON_FA_HIPPO "\xef\x9b\xad" // U+f6ed
#define ICON_FA_HOCKEY_PUCK "\xef\x91\x93" // U+f453
#define ICON_FA_HOLLY_BERRY "\xef\x9e\xaa" // U+f7aa
#define ICON_FA_HORSE "\xef\x9b\xb0" // U+f6f0
#define ICON_FA_HORSE_HEAD "\xef\x9e\xab" // U+f7ab
#define ICON_FA_HOSPITAL "\xef\x83\xb8" // U+f0f8
#define ICON_FA_HOSPITAL_USER "\xef\xa0\x8d" // U+f80d
#define ICON_FA_HOT_TUB_PERSON "\xef\x96\x93" // U+f593
#define ICON_FA_HOTDOG "\xef\xa0\x8f" // U+f80f
#define ICON_FA_HOTEL "\xef\x96\x94" // U+f594
#define ICON_FA_HOURGLASS "\xef\x89\x94" // U+f254
#define ICON_FA_HOURGLASS_END "\xef\x89\x93" // U+f253
#define ICON_FA_HOURGLASS_HALF "\xef\x89\x92" // U+f252
#define ICON_FA_HOURGLASS_START "\xef\x89\x91" // U+f251
#define ICON_FA_HOUSE "\xef\x80\x95" // U+f015
#define ICON_FA_HOUSE_CHIMNEY "\xee\x8e\xaf" // U+e3af
#define ICON_FA_HOUSE_CHIMNEY_CRACK "\xef\x9b\xb1" // U+f6f1
#define ICON_FA_HOUSE_CHIMNEY_MEDICAL "\xef\x9f\xb2" // U+f7f2
#define ICON_FA_HOUSE_CHIMNEY_USER "\xee\x81\xa5" // U+e065
#define ICON_FA_HOUSE_CHIMNEY_WINDOW "\xee\x80\x8d" // U+e00d
#define ICON_FA_HOUSE_CIRCLE_CHECK "\xee\x94\x89" // U+e509
#define ICON_FA_HOUSE_CIRCLE_EXCLAMATION "\xee\x94\x8a" // U+e50a
#define ICON_FA_HOUSE_CIRCLE_XMARK "\xee\x94\x8b" // U+e50b
#define ICON_FA_HOUSE_CRACK "\xee\x8e\xb1" // U+e3b1
#define ICON_FA_HOUSE_FIRE "\xee\x94\x8c" // U+e50c
#define ICON_FA_HOUSE_FLAG "\xee\x94\x8d" // U+e50d
#define ICON_FA_HOUSE_FLOOD_WATER "\xee\x94\x8e" // U+e50e
#define ICON_FA_HOUSE_FLOOD_WATER_CIRCLE_ARROW_RIGHT "\xee\x94\x8f" // U+e50f
#define ICON_FA_HOUSE_LAPTOP "\xee\x81\xa6" // U+e066
#define ICON_FA_HOUSE_LOCK "\xee\x94\x90" // U+e510
#define ICON_FA_HOUSE_MEDICAL "\xee\x8e\xb2" // U+e3b2
#define ICON_FA_HOUSE_MEDICAL_CIRCLE_CHECK "\xee\x94\x91" // U+e511
#define ICON_FA_HOUSE_MEDICAL_CIRCLE_EXCLAMATION "\xee\x94\x92" // U+e512
#define ICON_FA_HOUSE_MEDICAL_CIRCLE_XMARK "\xee\x94\x93" // U+e513
#define ICON_FA_HOUSE_MEDICAL_FLAG "\xee\x94\x94" // U+e514
#define ICON_FA_HOUSE_SIGNAL "\xee\x80\x92" // U+e012
#define ICON_FA_HOUSE_TSUNAMI "\xee\x94\x95" // U+e515
#define ICON_FA_HOUSE_USER "\xee\x86\xb0" // U+e1b0
#define ICON_FA_HRYVNIA_SIGN "\xef\x9b\xb2" // U+f6f2
#define ICON_FA_HURRICANE "\xef\x9d\x91" // U+f751
#define ICON_FA_I "I" // U+0049
#define ICON_FA_I_CURSOR "\xef\x89\x86" // U+f246
#define ICON_FA_ICE_CREAM "\xef\xa0\x90" // U+f810
#define ICON_FA_ICICLES "\xef\x9e\xad" // U+f7ad
#define ICON_FA_ICONS "\xef\xa1\xad" // U+f86d
#define ICON_FA_ID_BADGE "\xef\x8b\x81" // U+f2c1
#define ICON_FA_ID_CARD "\xef\x8b\x82" // U+f2c2
#define ICON_FA_ID_CARD_CLIP "\xef\x91\xbf" // U+f47f
#define ICON_FA_IGLOO "\xef\x9e\xae" // U+f7ae
#define ICON_FA_IMAGE "\xef\x80\xbe" // U+f03e
#define ICON_FA_IMAGE_PORTRAIT "\xef\x8f\xa0" // U+f3e0
#define ICON_FA_IMAGES "\xef\x8c\x82" // U+f302
#define ICON_FA_INBOX "\xef\x80\x9c" // U+f01c
#define ICON_FA_INDENT "\xef\x80\xbc" // U+f03c
#define ICON_FA_INDIAN_RUPEE_SIGN "\xee\x86\xbc" // U+e1bc
#define ICON_FA_INDUSTRY "\xef\x89\xb5" // U+f275
#define ICON_FA_INFINITY "\xef\x94\xb4" // U+f534
#define ICON_FA_INFO "\xef\x84\xa9" // U+f129
#define ICON_FA_ITALIC "\xef\x80\xb3" // U+f033
#define ICON_FA_J "J" // U+004a
#define ICON_FA_JAR "\xee\x94\x96" // U+e516
#define ICON_FA_JAR_WHEAT "\xee\x94\x97" // U+e517
#define ICON_FA_JEDI "\xef\x99\xa9" // U+f669
#define ICON_FA_JET_FIGHTER "\xef\x83\xbb" // U+f0fb
#define ICON_FA_JET_FIGHTER_UP "\xee\x94\x98" // U+e518
#define ICON_FA_JOINT "\xef\x96\x95" // U+f595
#define ICON_FA_JUG_DETERGENT "\xee\x94\x99" // U+e519
#define ICON_FA_K "K" // U+004b
#define ICON_FA_KAABA "\xef\x99\xab" // U+f66b
#define ICON_FA_KEY "\xef\x82\x84" // U+f084
#define ICON_FA_KEYBOARD "\xef\x84\x9c" // U+f11c
#define ICON_FA_KHANDA "\xef\x99\xad" // U+f66d
#define ICON_FA_KIP_SIGN "\xee\x87\x84" // U+e1c4
#define ICON_FA_KIT_MEDICAL "\xef\x91\xb9" // U+f479
#define ICON_FA_KITCHEN_SET "\xee\x94\x9a" // U+e51a
#define ICON_FA_KIWI_BIRD "\xef\x94\xb5" // U+f535
#define ICON_FA_L "L" // U+004c
#define ICON_FA_LAND_MINE_ON "\xee\x94\x9b" // U+e51b
#define ICON_FA_LANDMARK "\xef\x99\xaf" // U+f66f
#define ICON_FA_LANDMARK_DOME "\xef\x9d\x92" // U+f752
#define ICON_FA_LANDMARK_FLAG "\xee\x94\x9c" // U+e51c
#define ICON_FA_LANGUAGE "\xef\x86\xab" // U+f1ab
#define ICON_FA_LAPTOP "\xef\x84\x89" // U+f109
#define ICON_FA_LAPTOP_CODE "\xef\x97\xbc" // U+f5fc
#define ICON_FA_LAPTOP_FILE "\xee\x94\x9d" // U+e51d
#define ICON_FA_LAPTOP_MEDICAL "\xef\xa0\x92" // U+f812
#define ICON_FA_LARI_SIGN "\xee\x87\x88" // U+e1c8
#define ICON_FA_LAYER_GROUP "\xef\x97\xbd" // U+f5fd
#define ICON_FA_LEAF "\xef\x81\xac" // U+f06c
#define ICON_FA_LEFT_LONG "\xef\x8c\x8a" // U+f30a
#define ICON_FA_LEFT_RIGHT "\xef\x8c\xb7" // U+f337
#define ICON_FA_LEMON "\xef\x82\x94" // U+f094
#define ICON_FA_LESS_THAN "<" // U+003c
#define ICON_FA_LESS_THAN_EQUAL "\xef\x94\xb7" // U+f537
#define ICON_FA_LIFE_RING "\xef\x87\x8d" // U+f1cd
#define ICON_FA_LIGHTBULB "\xef\x83\xab" // U+f0eb
#define ICON_FA_LINES_LEANING "\xee\x94\x9e" // U+e51e
#define ICON_FA_LINK "\xef\x83\x81" // U+f0c1
#define ICON_FA_LINK_SLASH "\xef\x84\xa7" // U+f127
#define ICON_FA_LIRA_SIGN "\xef\x86\x95" // U+f195
#define ICON_FA_LIST "\xef\x80\xba" // U+f03a
#define ICON_FA_LIST_CHECK "\xef\x82\xae" // U+f0ae
#define ICON_FA_LIST_OL "\xef\x83\x8b" // U+f0cb
#define ICON_FA_LIST_UL "\xef\x83\x8a" // U+f0ca
#define ICON_FA_LITECOIN_SIGN "\xee\x87\x93" // U+e1d3
#define ICON_FA_LOCATION_ARROW "\xef\x84\xa4" // U+f124
#define ICON_FA_LOCATION_CROSSHAIRS "\xef\x98\x81" // U+f601
#define ICON_FA_LOCATION_DOT "\xef\x8f\x85" // U+f3c5
#define ICON_FA_LOCATION_PIN "\xef\x81\x81" // U+f041
#define ICON_FA_LOCATION_PIN_LOCK "\xee\x94\x9f" // U+e51f
#define ICON_FA_LOCK "\xef\x80\xa3" // U+f023
#define ICON_FA_LOCK_OPEN "\xef\x8f\x81" // U+f3c1
#define ICON_FA_LOCUST "\xee\x94\xa0" // U+e520
#define ICON_FA_LUNGS "\xef\x98\x84" // U+f604
#define ICON_FA_LUNGS_VIRUS "\xee\x81\xa7" // U+e067
#define ICON_FA_M "M" // U+004d
#define ICON_FA_MAGNET "\xef\x81\xb6" // U+f076
#define ICON_FA_MAGNIFYING_GLASS "\xef\x80\x82" // U+f002
#define ICON_FA_MAGNIFYING_GLASS_ARROW_RIGHT "\xee\x94\xa1" // U+e521
#define ICON_FA_MAGNIFYING_GLASS_CHART "\xee\x94\xa2" // U+e522
#define ICON_FA_MAGNIFYING_GLASS_DOLLAR "\xef\x9a\x88" // U+f688
#define ICON_FA_MAGNIFYING_GLASS_LOCATION "\xef\x9a\x89" // U+f689
#define ICON_FA_MAGNIFYING_GLASS_MINUS "\xef\x80\x90" // U+f010
#define ICON_FA_MAGNIFYING_GLASS_PLUS "\xef\x80\x8e" // U+f00e
#define ICON_FA_MANAT_SIGN "\xee\x87\x95" // U+e1d5
#define ICON_FA_MAP "\xef\x89\xb9" // U+f279
#define ICON_FA_MAP_LOCATION "\xef\x96\x9f" // U+f59f
#define ICON_FA_MAP_LOCATION_DOT "\xef\x96\xa0" // U+f5a0
#define ICON_FA_MAP_PIN "\xef\x89\xb6" // U+f276
#define ICON_FA_MARKER "\xef\x96\xa1" // U+f5a1
#define ICON_FA_MARS "\xef\x88\xa2" // U+f222
#define ICON_FA_MARS_AND_VENUS "\xef\x88\xa4" // U+f224
#define ICON_FA_MARS_AND_VENUS_BURST "\xee\x94\xa3" // U+e523
#define ICON_FA_MARS_DOUBLE "\xef\x88\xa7" // U+f227
#define ICON_FA_MARS_STROKE "\xef\x88\xa9" // U+f229
#define ICON_FA_MARS_STROKE_RIGHT "\xef\x88\xab" // U+f22b
#define ICON_FA_MARS_STROKE_UP "\xef\x88\xaa" // U+f22a
#define ICON_FA_MARTINI_GLASS "\xef\x95\xbb" // U+f57b
#define ICON_FA_MARTINI_GLASS_CITRUS "\xef\x95\xa1" // U+f561
#define ICON_FA_MARTINI_GLASS_EMPTY "\xef\x80\x80" // U+f000
#define ICON_FA_MASK "\xef\x9b\xba" // U+f6fa
#define ICON_FA_MASK_FACE "\xee\x87\x97" // U+e1d7
#define ICON_FA_MASK_VENTILATOR "\xee\x94\xa4" // U+e524
#define ICON_FA_MASKS_THEATER "\xef\x98\xb0" // U+f630
#define ICON_FA_MATTRESS_PILLOW "\xee\x94\xa5" // U+e525
#define ICON_FA_MAXIMIZE "\xef\x8c\x9e" // U+f31e
#define ICON_FA_MEDAL "\xef\x96\xa2" // U+f5a2
#define ICON_FA_MEMORY "\xef\x94\xb8" // U+f538
#define ICON_FA_MENORAH "\xef\x99\xb6" // U+f676
#define ICON_FA_MERCURY "\xef\x88\xa3" // U+f223
#define ICON_FA_MESSAGE "\xef\x89\xba" // U+f27a
#define ICON_FA_METEOR "\xef\x9d\x93" // U+f753
#define ICON_FA_MICROCHIP "\xef\x8b\x9b" // U+f2db
#define ICON_FA_MICROPHONE "\xef\x84\xb0" // U+f130
#define ICON_FA_MICROPHONE_LINES "\xef\x8f\x89" // U+f3c9
#define ICON_FA_MICROPHONE_LINES_SLASH "\xef\x94\xb9" // U+f539
#define ICON_FA_MICROPHONE_SLASH "\xef\x84\xb1" // U+f131
#define ICON_FA_MICROSCOPE "\xef\x98\x90" // U+f610
#define ICON_FA_MILL_SIGN "\xee\x87\xad" // U+e1ed
#define ICON_FA_MINIMIZE "\xef\x9e\x8c" // U+f78c
#define ICON_FA_MINUS "\xef\x81\xa8" // U+f068
#define ICON_FA_MITTEN "\xef\x9e\xb5" // U+f7b5
#define ICON_FA_MOBILE "\xef\x8f\x8e" // U+f3ce
#define ICON_FA_MOBILE_BUTTON "\xef\x84\x8b" // U+f10b
#define ICON_FA_MOBILE_RETRO "\xee\x94\xa7" // U+e527
#define ICON_FA_MOBILE_SCREEN "\xef\x8f\x8f" // U+f3cf
#define ICON_FA_MOBILE_SCREEN_BUTTON "\xef\x8f\x8d" // U+f3cd
#define ICON_FA_MONEY_BILL "\xef\x83\x96" // U+f0d6
#define ICON_FA_MONEY_BILL_1 "\xef\x8f\x91" // U+f3d1
#define ICON_FA_MONEY_BILL_1_WAVE "\xef\x94\xbb" // U+f53b
#define ICON_FA_MONEY_BILL_TRANSFER "\xee\x94\xa8" // U+e528
#define ICON_FA_MONEY_BILL_TREND_UP "\xee\x94\xa9" // U+e529
#define ICON_FA_MONEY_BILL_WAVE "\xef\x94\xba" // U+f53a
#define ICON_FA_MONEY_BILL_WHEAT "\xee\x94\xaa" // U+e52a
#define ICON_FA_MONEY_BILLS "\xee\x87\xb3" // U+e1f3
#define ICON_FA_MONEY_CHECK "\xef\x94\xbc" // U+f53c
#define ICON_FA_MONEY_CHECK_DOLLAR "\xef\x94\xbd" // U+f53d
#define ICON_FA_MONUMENT "\xef\x96\xa6" // U+f5a6
#define ICON_FA_MOON "\xef\x86\x86" // U+f186
#define ICON_FA_MORTAR_PESTLE "\xef\x96\xa7" // U+f5a7
#define ICON_FA_MOSQUE "\xef\x99\xb8" // U+f678
#define ICON_FA_MOSQUITO "\xee\x94\xab" // U+e52b
#define ICON_FA_MOSQUITO_NET "\xee\x94\xac" // U+e52c
#define ICON_FA_MOTORCYCLE "\xef\x88\x9c" // U+f21c
#define ICON_FA_MOUND "\xee\x94\xad" // U+e52d
#define ICON_FA_MOUNTAIN "\xef\x9b\xbc" // U+f6fc
#define ICON_FA_MOUNTAIN_CITY "\xee\x94\xae" // U+e52e
#define ICON_FA_MOUNTAIN_SUN "\xee\x94\xaf" // U+e52f
#define ICON_FA_MUG_HOT "\xef\x9e\xb6" // U+f7b6
#define ICON_FA_MUG_SAUCER "\xef\x83\xb4" // U+f0f4
#define ICON_FA_MUSIC "\xef\x80\x81" // U+f001
#define ICON_FA_N "N" // U+004e
#define ICON_FA_NAIRA_SIGN "\xee\x87\xb6" // U+e1f6
#define ICON_FA_NETWORK_WIRED "\xef\x9b\xbf" // U+f6ff
#define ICON_FA_NEUTER "\xef\x88\xac" // U+f22c
#define ICON_FA_NEWSPAPER "\xef\x87\xaa" // U+f1ea
#define ICON_FA_NOT_EQUAL "\xef\x94\xbe" // U+f53e
#define ICON_FA_NOTDEF "\xee\x87\xbe" // U+e1fe
#define ICON_FA_NOTE_STICKY "\xef\x89\x89" // U+f249
#define ICON_FA_NOTES_MEDICAL "\xef\x92\x81" // U+f481
#define ICON_FA_O "O" // U+004f
#define ICON_FA_OBJECT_GROUP "\xef\x89\x87" // U+f247
#define ICON_FA_OBJECT_UNGROUP "\xef\x89\x88" // U+f248
#define ICON_FA_OIL_CAN "\xef\x98\x93" // U+f613
#define ICON_FA_OIL_WELL "\xee\x94\xb2" // U+e532
#define ICON_FA_OM "\xef\x99\xb9" // U+f679
#define ICON_FA_OTTER "\xef\x9c\x80" // U+f700
#define ICON_FA_OUTDENT "\xef\x80\xbb" // U+f03b
#define ICON_FA_P "P" // U+0050
#define ICON_FA_PAGER "\xef\xa0\x95" // U+f815
#define ICON_FA_PAINT_ROLLER "\xef\x96\xaa" // U+f5aa
#define ICON_FA_PAINTBRUSH "\xef\x87\xbc" // U+f1fc
#define ICON_FA_PALETTE "\xef\x94\xbf" // U+f53f
#define ICON_FA_PALLET "\xef\x92\x82" // U+f482
#define ICON_FA_PANORAMA "\xee\x88\x89" // U+e209
#define ICON_FA_PAPER_PLANE "\xef\x87\x98" // U+f1d8
#define ICON_FA_PAPERCLIP "\xef\x83\x86" // U+f0c6
#define ICON_FA_PARACHUTE_BOX "\xef\x93\x8d" // U+f4cd
#define ICON_FA_PARAGRAPH "\xef\x87\x9d" // U+f1dd
#define ICON_FA_PASSPORT "\xef\x96\xab" // U+f5ab
#define ICON_FA_PASTE "\xef\x83\xaa" // U+f0ea
#define ICON_FA_PAUSE "\xef\x81\x8c" // U+f04c
#define ICON_FA_PAW "\xef\x86\xb0" // U+f1b0
#define ICON_FA_PEACE "\xef\x99\xbc" // U+f67c
#define ICON_FA_PEN "\xef\x8c\x84" // U+f304
#define ICON_FA_PEN_CLIP "\xef\x8c\x85" // U+f305
#define ICON_FA_PEN_FANCY "\xef\x96\xac" // U+f5ac
#define ICON_FA_PEN_NIB "\xef\x96\xad" // U+f5ad
#define ICON_FA_PEN_RULER "\xef\x96\xae" // U+f5ae
#define ICON_FA_PEN_TO_SQUARE "\xef\x81\x84" // U+f044
#define ICON_FA_PENCIL "\xef\x8c\x83" // U+f303
#define ICON_FA_PEOPLE_ARROWS "\xee\x81\xa8" // U+e068
#define ICON_FA_PEOPLE_CARRY_BOX "\xef\x93\x8e" // U+f4ce
#define ICON_FA_PEOPLE_GROUP "\xee\x94\xb3" // U+e533
#define ICON_FA_PEOPLE_LINE "\xee\x94\xb4" // U+e534
#define ICON_FA_PEOPLE_PULLING "\xee\x94\xb5" // U+e535
#define ICON_FA_PEOPLE_ROBBERY "\xee\x94\xb6" // U+e536
#define ICON_FA_PEOPLE_ROOF "\xee\x94\xb7" // U+e537
#define ICON_FA_PEPPER_HOT "\xef\xa0\x96" // U+f816
#define ICON_FA_PERCENT "%" // U+0025
#define ICON_FA_PERSON "\xef\x86\x83" // U+f183
#define ICON_FA_PERSON_ARROW_DOWN_TO_LINE "\xee\x94\xb8" // U+e538
#define ICON_FA_PERSON_ARROW_UP_FROM_LINE "\xee\x94\xb9" // U+e539
#define ICON_FA_PERSON_BIKING "\xef\xa1\x8a" // U+f84a
#define ICON_FA_PERSON_BOOTH "\xef\x9d\x96" // U+f756
#define ICON_FA_PERSON_BREASTFEEDING "\xee\x94\xba" // U+e53a
#define ICON_FA_PERSON_BURST "\xee\x94\xbb" // U+e53b
#define ICON_FA_PERSON_CANE "\xee\x94\xbc" // U+e53c
#define ICON_FA_PERSON_CHALKBOARD "\xee\x94\xbd" // U+e53d
#define ICON_FA_PERSON_CIRCLE_CHECK "\xee\x94\xbe" // U+e53e
#define ICON_FA_PERSON_CIRCLE_EXCLAMATION "\xee\x94\xbf" // U+e53f
#define ICON_FA_PERSON_CIRCLE_MINUS "\xee\x95\x80" // U+e540
#define ICON_FA_PERSON_CIRCLE_PLUS "\xee\x95\x81" // U+e541
#define ICON_FA_PERSON_CIRCLE_QUESTION "\xee\x95\x82" // U+e542
#define ICON_FA_PERSON_CIRCLE_XMARK "\xee\x95\x83" // U+e543
#define ICON_FA_PERSON_DIGGING "\xef\xa1\x9e" // U+f85e
#define ICON_FA_PERSON_DOTS_FROM_LINE "\xef\x91\xb0" // U+f470
#define ICON_FA_PERSON_DRESS "\xef\x86\x82" // U+f182
#define ICON_FA_PERSON_DRESS_BURST "\xee\x95\x84" // U+e544
#define ICON_FA_PERSON_DROWNING "\xee\x95\x85" // U+e545
#define ICON_FA_PERSON_FALLING "\xee\x95\x86" // U+e546
#define ICON_FA_PERSON_FALLING_BURST "\xee\x95\x87" // U+e547
#define ICON_FA_PERSON_HALF_DRESS "\xee\x95\x88" // U+e548
#define ICON_FA_PERSON_HARASSING "\xee\x95\x89" // U+e549
#define ICON_FA_PERSON_HIKING "\xef\x9b\xac" // U+f6ec
#define ICON_FA_PERSON_MILITARY_POINTING "\xee\x95\x8a" // U+e54a
#define ICON_FA_PERSON_MILITARY_RIFLE "\xee\x95\x8b" // U+e54b
#define ICON_FA_PERSON_MILITARY_TO_PERSON "\xee\x95\x8c" // U+e54c
#define ICON_FA_PERSON_PRAYING "\xef\x9a\x83" // U+f683
#define ICON_FA_PERSON_PREGNANT "\xee\x8c\x9e" // U+e31e
#define ICON_FA_PERSON_RAYS "\xee\x95\x8d" // U+e54d
#define ICON_FA_PERSON_RIFLE "\xee\x95\x8e" // U+e54e
#define ICON_FA_PERSON_RUNNING "\xef\x9c\x8c" // U+f70c
#define ICON_FA_PERSON_SHELTER "\xee\x95\x8f" // U+e54f
#define ICON_FA_PERSON_SKATING "\xef\x9f\x85" // U+f7c5
#define ICON_FA_PERSON_SKIING "\xef\x9f\x89" // U+f7c9
#define ICON_FA_PERSON_SKIING_NORDIC "\xef\x9f\x8a" // U+f7ca
#define ICON_FA_PERSON_SNOWBOARDING "\xef\x9f\x8e" // U+f7ce
#define ICON_FA_PERSON_SWIMMING "\xef\x97\x84" // U+f5c4
#define ICON_FA_PERSON_THROUGH_WINDOW "\xee\x96\xa9" // U+e5a9
#define ICON_FA_PERSON_WALKING "\xef\x95\x94" // U+f554
#define ICON_FA_PERSON_WALKING_ARROW_LOOP_LEFT "\xee\x95\x91" // U+e551
#define ICON_FA_PERSON_WALKING_ARROW_RIGHT "\xee\x95\x92" // U+e552
#define ICON_FA_PERSON_WALKING_DASHED_LINE_ARROW_RIGHT "\xee\x95\x93" // U+e553
#define ICON_FA_PERSON_WALKING_LUGGAGE "\xee\x95\x94" // U+e554
#define ICON_FA_PERSON_WALKING_WITH_CANE "\xef\x8a\x9d" // U+f29d
#define ICON_FA_PESETA_SIGN "\xee\x88\xa1" // U+e221
#define ICON_FA_PESO_SIGN "\xee\x88\xa2" // U+e222
#define ICON_FA_PHONE "\xef\x82\x95" // U+f095
#define ICON_FA_PHONE_FLIP "\xef\xa1\xb9" // U+f879
#define ICON_FA_PHONE_SLASH "\xef\x8f\x9d" // U+f3dd
#define ICON_FA_PHONE_VOLUME "\xef\x8a\xa0" // U+f2a0
#define ICON_FA_PHOTO_FILM "\xef\xa1\xbc" // U+f87c
#define ICON_FA_PIGGY_BANK "\xef\x93\x93" // U+f4d3
#define ICON_FA_PILLS "\xef\x92\x84" // U+f484
#define ICON_FA_PIZZA_SLICE "\xef\xa0\x98" // U+f818
#define ICON_FA_PLACE_OF_WORSHIP "\xef\x99\xbf" // U+f67f
#define ICON_FA_PLANE "\xef\x81\xb2" // U+f072
#define ICON_FA_PLANE_ARRIVAL "\xef\x96\xaf" // U+f5af
#define ICON_FA_PLANE_CIRCLE_CHECK "\xee\x95\x95" // U+e555
#define ICON_FA_PLANE_CIRCLE_EXCLAMATION "\xee\x95\x96" // U+e556
#define ICON_FA_PLANE_CIRCLE_XMARK "\xee\x95\x97" // U+e557
#define ICON_FA_PLANE_DEPARTURE "\xef\x96\xb0" // U+f5b0
#define ICON_FA_PLANE_LOCK "\xee\x95\x98" // U+e558
#define ICON_FA_PLANE_SLASH "\xee\x81\xa9" // U+e069
#define ICON_FA_PLANE_UP "\xee\x88\xad" // U+e22d
#define ICON_FA_PLANT_WILT "\xee\x96\xaa" // U+e5aa
#define ICON_FA_PLATE_WHEAT "\xee\x95\x9a" // U+e55a
#define ICON_FA_PLAY "\xef\x81\x8b" // U+f04b
#define ICON_FA_PLUG "\xef\x87\xa6" // U+f1e6
#define ICON_FA_PLUG_CIRCLE_BOLT "\xee\x95\x9b" // U+e55b
#define ICON_FA_PLUG_CIRCLE_CHECK "\xee\x95\x9c" // U+e55c
#define ICON_FA_PLUG_CIRCLE_EXCLAMATION "\xee\x95\x9d" // U+e55d
#define ICON_FA_PLUG_CIRCLE_MINUS "\xee\x95\x9e" // U+e55e
#define ICON_FA_PLUG_CIRCLE_PLUS "\xee\x95\x9f" // U+e55f
#define ICON_FA_PLUG_CIRCLE_XMARK "\xee\x95\xa0" // U+e560
#define ICON_FA_PLUS "+" // U+002b
#define ICON_FA_PLUS_MINUS "\xee\x90\xbc" // U+e43c
#define ICON_FA_PODCAST "\xef\x8b\x8e" // U+f2ce
#define ICON_FA_POO "\xef\x8b\xbe" // U+f2fe
#define ICON_FA_POO_STORM "\xef\x9d\x9a" // U+f75a
#define ICON_FA_POOP "\xef\x98\x99" // U+f619
#define ICON_FA_POWER_OFF "\xef\x80\x91" // U+f011
#define ICON_FA_PRESCRIPTION "\xef\x96\xb1" // U+f5b1
#define ICON_FA_PRESCRIPTION_BOTTLE "\xef\x92\x85" // U+f485
#define ICON_FA_PRESCRIPTION_BOTTLE_MEDICAL "\xef\x92\x86" // U+f486
#define ICON_FA_PRINT "\xef\x80\xaf" // U+f02f
#define ICON_FA_PUMP_MEDICAL "\xee\x81\xaa" // U+e06a
#define ICON_FA_PUMP_SOAP "\xee\x81\xab" // U+e06b
#define ICON_FA_PUZZLE_PIECE "\xef\x84\xae" // U+f12e
#define ICON_FA_Q "Q" // U+0051
#define ICON_FA_QRCODE "\xef\x80\xa9" // U+f029
#define ICON_FA_QUESTION "?" // U+003f
#define ICON_FA_QUOTE_LEFT "\xef\x84\x8d" // U+f10d
#define ICON_FA_QUOTE_RIGHT "\xef\x84\x8e" // U+f10e
#define ICON_FA_R "R" // U+0052
#define ICON_FA_RADIATION "\xef\x9e\xb9" // U+f7b9
#define ICON_FA_RADIO "\xef\xa3\x97" // U+f8d7
#define ICON_FA_RAINBOW "\xef\x9d\x9b" // U+f75b
#define ICON_FA_RANKING_STAR "\xee\x95\xa1" // U+e561
#define ICON_FA_RECEIPT "\xef\x95\x83" // U+f543
#define ICON_FA_RECORD_VINYL "\xef\xa3\x99" // U+f8d9
#define ICON_FA_RECTANGLE_AD "\xef\x99\x81" // U+f641
#define ICON_FA_RECTANGLE_LIST "\xef\x80\xa2" // U+f022
#define ICON_FA_RECTANGLE_XMARK "\xef\x90\x90" // U+f410
#define ICON_FA_RECYCLE "\xef\x86\xb8" // U+f1b8
#define ICON_FA_REGISTERED "\xef\x89\x9d" // U+f25d
#define ICON_FA_REPEAT "\xef\x8d\xa3" // U+f363
#define ICON_FA_REPLY "\xef\x8f\xa5" // U+f3e5
#define ICON_FA_REPLY_ALL "\xef\x84\xa2" // U+f122
#define ICON_FA_REPUBLICAN "\xef\x9d\x9e" // U+f75e
#define ICON_FA_RESTROOM "\xef\x9e\xbd" // U+f7bd
#define ICON_FA_RETWEET "\xef\x81\xb9" // U+f079
#define ICON_FA_RIBBON "\xef\x93\x96" // U+f4d6
#define ICON_FA_RIGHT_FROM_BRACKET "\xef\x8b\xb5" // U+f2f5
#define ICON_FA_RIGHT_LEFT "\xef\x8d\xa2" // U+f362
#define ICON_FA_RIGHT_LONG "\xef\x8c\x8b" // U+f30b
#define ICON_FA_RIGHT_TO_BRACKET "\xef\x8b\xb6" // U+f2f6
#define ICON_FA_RING "\xef\x9c\x8b" // U+f70b
#define ICON_FA_ROAD "\xef\x80\x98" // U+f018
#define ICON_FA_ROAD_BARRIER "\xee\x95\xa2" // U+e562
#define ICON_FA_ROAD_BRIDGE "\xee\x95\xa3" // U+e563
#define ICON_FA_ROAD_CIRCLE_CHECK "\xee\x95\xa4" // U+e564
#define ICON_FA_ROAD_CIRCLE_EXCLAMATION "\xee\x95\xa5" // U+e565
#define ICON_FA_ROAD_CIRCLE_XMARK "\xee\x95\xa6" // U+e566
#define ICON_FA_ROAD_LOCK "\xee\x95\xa7" // U+e567
#define ICON_FA_ROAD_SPIKES "\xee\x95\xa8" // U+e568
#define ICON_FA_ROBOT "\xef\x95\x84" // U+f544
#define ICON_FA_ROCKET "\xef\x84\xb5" // U+f135
#define ICON_FA_ROTATE "\xef\x8b\xb1" // U+f2f1
#define ICON_FA_ROTATE_LEFT "\xef\x8b\xaa" // U+f2ea
#define ICON_FA_ROTATE_RIGHT "\xef\x8b\xb9" // U+f2f9
#define ICON_FA_ROUTE "\xef\x93\x97" // U+f4d7
#define ICON_FA_RSS "\xef\x82\x9e" // U+f09e
#define ICON_FA_RUBLE_SIGN "\xef\x85\x98" // U+f158
#define ICON_FA_RUG "\xee\x95\xa9" // U+e569
#define ICON_FA_RULER "\xef\x95\x85" // U+f545
#define ICON_FA_RULER_COMBINED "\xef\x95\x86" // U+f546
#define ICON_FA_RULER_HORIZONTAL "\xef\x95\x87" // U+f547
#define ICON_FA_RULER_VERTICAL "\xef\x95\x88" // U+f548
#define ICON_FA_RUPEE_SIGN "\xef\x85\x96" // U+f156
#define ICON_FA_RUPIAH_SIGN "\xee\x88\xbd" // U+e23d
#define ICON_FA_S "S" // U+0053
#define ICON_FA_SACK_DOLLAR "\xef\xa0\x9d" // U+f81d
#define ICON_FA_SACK_XMARK "\xee\x95\xaa" // U+e56a
#define ICON_FA_SAILBOAT "\xee\x91\x85" // U+e445
#define ICON_FA_SATELLITE "\xef\x9e\xbf" // U+f7bf
#define ICON_FA_SATELLITE_DISH "\xef\x9f\x80" // U+f7c0
#define ICON_FA_SCALE_BALANCED "\xef\x89\x8e" // U+f24e
#define ICON_FA_SCALE_UNBALANCED "\xef\x94\x95" // U+f515
#define ICON_FA_SCALE_UNBALANCED_FLIP "\xef\x94\x96" // U+f516
#define ICON_FA_SCHOOL "\xef\x95\x89" // U+f549
#define ICON_FA_SCHOOL_CIRCLE_CHECK "\xee\x95\xab" // U+e56b
#define ICON_FA_SCHOOL_CIRCLE_EXCLAMATION "\xee\x95\xac" // U+e56c
#define ICON_FA_SCHOOL_CIRCLE_XMARK "\xee\x95\xad" // U+e56d
#define ICON_FA_SCHOOL_FLAG "\xee\x95\xae" // U+e56e
#define ICON_FA_SCHOOL_LOCK "\xee\x95\xaf" // U+e56f
#define ICON_FA_SCISSORS "\xef\x83\x84" // U+f0c4
#define ICON_FA_SCREWDRIVER "\xef\x95\x8a" // U+f54a
#define ICON_FA_SCREWDRIVER_WRENCH "\xef\x9f\x99" // U+f7d9
#define ICON_FA_SCROLL "\xef\x9c\x8e" // U+f70e
#define ICON_FA_SCROLL_TORAH "\xef\x9a\xa0" // U+f6a0
#define ICON_FA_SD_CARD "\xef\x9f\x82" // U+f7c2
#define ICON_FA_SECTION "\xee\x91\x87" // U+e447
#define ICON_FA_SEEDLING "\xef\x93\x98" // U+f4d8
#define ICON_FA_SERVER "\xef\x88\xb3" // U+f233
#define ICON_FA_SHAPES "\xef\x98\x9f" // U+f61f
#define ICON_FA_SHARE "\xef\x81\xa4" // U+f064
#define ICON_FA_SHARE_FROM_SQUARE "\xef\x85\x8d" // U+f14d
#define ICON_FA_SHARE_NODES "\xef\x87\xa0" // U+f1e0
#define ICON_FA_SHEET_PLASTIC "\xee\x95\xb1" // U+e571
#define ICON_FA_SHEKEL_SIGN "\xef\x88\x8b" // U+f20b
#define ICON_FA_SHIELD "\xef\x84\xb2" // U+f132
#define ICON_FA_SHIELD_CAT "\xee\x95\xb2" // U+e572
#define ICON_FA_SHIELD_DOG "\xee\x95\xb3" // U+e573
#define ICON_FA_SHIELD_HALVED "\xef\x8f\xad" // U+f3ed
#define ICON_FA_SHIELD_HEART "\xee\x95\xb4" // U+e574
#define ICON_FA_SHIELD_VIRUS "\xee\x81\xac" // U+e06c
#define ICON_FA_SHIP "\xef\x88\x9a" // U+f21a
#define ICON_FA_SHIRT "\xef\x95\x93" // U+f553
#define ICON_FA_SHOE_PRINTS "\xef\x95\x8b" // U+f54b
#define ICON_FA_SHOP "\xef\x95\x8f" // U+f54f
#define ICON_FA_SHOP_LOCK "\xee\x92\xa5" // U+e4a5
#define ICON_FA_SHOP_SLASH "\xee\x81\xb0" // U+e070
#define ICON_FA_SHOWER "\xef\x8b\x8c" // U+f2cc
#define ICON_FA_SHRIMP "\xee\x91\x88" // U+e448
#define ICON_FA_SHUFFLE "\xef\x81\xb4" // U+f074
#define ICON_FA_SHUTTLE_SPACE "\xef\x86\x97" // U+f197
#define ICON_FA_SIGN_HANGING "\xef\x93\x99" // U+f4d9
#define ICON_FA_SIGNAL "\xef\x80\x92" // U+f012
#define ICON_FA_SIGNATURE "\xef\x96\xb7" // U+f5b7
#define ICON_FA_SIGNS_POST "\xef\x89\xb7" // U+f277
#define ICON_FA_SIM_CARD "\xef\x9f\x84" // U+f7c4
#define ICON_FA_SINK "\xee\x81\xad" // U+e06d
#define ICON_FA_SITEMAP "\xef\x83\xa8" // U+f0e8
#define ICON_FA_SKULL "\xef\x95\x8c" // U+f54c
#define ICON_FA_SKULL_CROSSBONES "\xef\x9c\x94" // U+f714
#define ICON_FA_SLASH "\xef\x9c\x95" // U+f715
#define ICON_FA_SLEIGH "\xef\x9f\x8c" // U+f7cc
#define ICON_FA_SLIDERS "\xef\x87\x9e" // U+f1de
#define ICON_FA_SMOG "\xef\x9d\x9f" // U+f75f
#define ICON_FA_SMOKING "\xef\x92\x8d" // U+f48d
#define ICON_FA_SNOWFLAKE "\xef\x8b\x9c" // U+f2dc
#define ICON_FA_SNOWMAN "\xef\x9f\x90" // U+f7d0
#define ICON_FA_SNOWPLOW "\xef\x9f\x92" // U+f7d2
#define ICON_FA_SOAP "\xee\x81\xae" // U+e06e
#define ICON_FA_SOCKS "\xef\x9a\x96" // U+f696
#define ICON_FA_SOLAR_PANEL "\xef\x96\xba" // U+f5ba
#define ICON_FA_SORT "\xef\x83\x9c" // U+f0dc
#define ICON_FA_SORT_DOWN "\xef\x83\x9d" // U+f0dd
#define ICON_FA_SORT_UP "\xef\x83\x9e" // U+f0de
#define ICON_FA_SPA "\xef\x96\xbb" // U+f5bb
#define ICON_FA_SPAGHETTI_MONSTER_FLYING "\xef\x99\xbb" // U+f67b
#define ICON_FA_SPELL_CHECK "\xef\xa2\x91" // U+f891
#define ICON_FA_SPIDER "\xef\x9c\x97" // U+f717
#define ICON_FA_SPINNER "\xef\x84\x90" // U+f110
#define ICON_FA_SPLOTCH "\xef\x96\xbc" // U+f5bc
#define ICON_FA_SPOON "\xef\x8b\xa5" // U+f2e5
#define ICON_FA_SPRAY_CAN "\xef\x96\xbd" // U+f5bd
#define ICON_FA_SPRAY_CAN_SPARKLES "\xef\x97\x90" // U+f5d0
#define ICON_FA_SQUARE "\xef\x83\x88" // U+f0c8
#define ICON_FA_SQUARE_ARROW_UP_RIGHT "\xef\x85\x8c" // U+f14c
#define ICON_FA_SQUARE_CARET_DOWN "\xef\x85\x90" // U+f150
#define ICON_FA_SQUARE_CARET_LEFT "\xef\x86\x91" // U+f191
#define ICON_FA_SQUARE_CARET_RIGHT "\xef\x85\x92" // U+f152
#define ICON_FA_SQUARE_CARET_UP "\xef\x85\x91" // U+f151
#define ICON_FA_SQUARE_CHECK "\xef\x85\x8a" // U+f14a
#define ICON_FA_SQUARE_ENVELOPE "\xef\x86\x99" // U+f199
#define ICON_FA_SQUARE_FULL "\xef\x91\x9c" // U+f45c
#define ICON_FA_SQUARE_H "\xef\x83\xbd" // U+f0fd
#define ICON_FA_SQUARE_MINUS "\xef\x85\x86" // U+f146
#define ICON_FA_SQUARE_NFI "\xee\x95\xb6" // U+e576
#define ICON_FA_SQUARE_PARKING "\xef\x95\x80" // U+f540
#define ICON_FA_SQUARE_PEN "\xef\x85\x8b" // U+f14b
#define ICON_FA_SQUARE_PERSON_CONFINED "\xee\x95\xb7" // U+e577
#define ICON_FA_SQUARE_PHONE "\xef\x82\x98" // U+f098
#define ICON_FA_SQUARE_PHONE_FLIP "\xef\xa1\xbb" // U+f87b
#define ICON_FA_SQUARE_PLUS "\xef\x83\xbe" // U+f0fe
#define ICON_FA_SQUARE_POLL_HORIZONTAL "\xef\x9a\x82" // U+f682
#define ICON_FA_SQUARE_POLL_VERTICAL "\xef\x9a\x81" // U+f681
#define ICON_FA_SQUARE_ROOT_VARIABLE "\xef\x9a\x98" // U+f698
#define ICON_FA_SQUARE_RSS "\xef\x85\x83" // U+f143
#define ICON_FA_SQUARE_SHARE_NODES "\xef\x87\xa1" // U+f1e1
#define ICON_FA_SQUARE_UP_RIGHT "\xef\x8d\xa0" // U+f360
#define ICON_FA_SQUARE_VIRUS "\xee\x95\xb8" // U+e578
#define ICON_FA_SQUARE_XMARK "\xef\x8b\x93" // U+f2d3
#define ICON_FA_STAFF_SNAKE "\xee\x95\xb9" // U+e579
#define ICON_FA_STAIRS "\xee\x8a\x89" // U+e289
#define ICON_FA_STAMP "\xef\x96\xbf" // U+f5bf
#define ICON_FA_STAPLER "\xee\x96\xaf" // U+e5af
#define ICON_FA_STAR "\xef\x80\x85" // U+f005
#define ICON_FA_STAR_AND_CRESCENT "\xef\x9a\x99" // U+f699
#define ICON_FA_STAR_HALF "\xef\x82\x89" // U+f089
#define ICON_FA_STAR_HALF_STROKE "\xef\x97\x80" // U+f5c0
#define ICON_FA_STAR_OF_DAVID "\xef\x9a\x9a" // U+f69a
#define ICON_FA_STAR_OF_LIFE "\xef\x98\xa1" // U+f621
#define ICON_FA_STERLING_SIGN "\xef\x85\x94" // U+f154
#define ICON_FA_STETHOSCOPE "\xef\x83\xb1" // U+f0f1
#define ICON_FA_STOP "\xef\x81\x8d" // U+f04d
#define ICON_FA_STOPWATCH "\xef\x8b\xb2" // U+f2f2
#define ICON_FA_STOPWATCH_20 "\xee\x81\xaf" // U+e06f
#define ICON_FA_STORE "\xef\x95\x8e" // U+f54e
#define ICON_FA_STORE_SLASH "\xee\x81\xb1" // U+e071
#define ICON_FA_STREET_VIEW "\xef\x88\x9d" // U+f21d
#define ICON_FA_STRIKETHROUGH "\xef\x83\x8c" // U+f0cc
#define ICON_FA_STROOPWAFEL "\xef\x95\x91" // U+f551
#define ICON_FA_SUBSCRIPT "\xef\x84\xac" // U+f12c
#define ICON_FA_SUITCASE "\xef\x83\xb2" // U+f0f2
#define ICON_FA_SUITCASE_MEDICAL "\xef\x83\xba" // U+f0fa
#define ICON_FA_SUITCASE_ROLLING "\xef\x97\x81" // U+f5c1
#define ICON_FA_SUN "\xef\x86\x85" // U+f185
#define ICON_FA_SUN_PLANT_WILT "\xee\x95\xba" // U+e57a
#define ICON_FA_SUPERSCRIPT "\xef\x84\xab" // U+f12b
#define ICON_FA_SWATCHBOOK "\xef\x97\x83" // U+f5c3
#define ICON_FA_SYNAGOGUE "\xef\x9a\x9b" // U+f69b
#define ICON_FA_SYRINGE "\xef\x92\x8e" // U+f48e
#define ICON_FA_T "T" // U+0054
#define ICON_FA_TABLE "\xef\x83\x8e" // U+f0ce
#define ICON_FA_TABLE_CELLS "\xef\x80\x8a" // U+f00a
#define ICON_FA_TABLE_CELLS_LARGE "\xef\x80\x89" // U+f009
#define ICON_FA_TABLE_COLUMNS "\xef\x83\x9b" // U+f0db
#define ICON_FA_TABLE_LIST "\xef\x80\x8b" // U+f00b
#define ICON_FA_TABLE_TENNIS_PADDLE_BALL "\xef\x91\x9d" // U+f45d
#define ICON_FA_TABLET "\xef\x8f\xbb" // U+f3fb
#define ICON_FA_TABLET_BUTTON "\xef\x84\x8a" // U+f10a
#define ICON_FA_TABLET_SCREEN_BUTTON "\xef\x8f\xba" // U+f3fa
#define ICON_FA_TABLETS "\xef\x92\x90" // U+f490
#define ICON_FA_TACHOGRAPH_DIGITAL "\xef\x95\xa6" // U+f566
#define ICON_FA_TAG "\xef\x80\xab" // U+f02b
#define ICON_FA_TAGS "\xef\x80\xac" // U+f02c
#define ICON_FA_TAPE "\xef\x93\x9b" // U+f4db
#define ICON_FA_TARP "\xee\x95\xbb" // U+e57b
#define ICON_FA_TARP_DROPLET "\xee\x95\xbc" // U+e57c
#define ICON_FA_TAXI "\xef\x86\xba" // U+f1ba
#define ICON_FA_TEETH "\xef\x98\xae" // U+f62e
#define ICON_FA_TEETH_OPEN "\xef\x98\xaf" // U+f62f
#define ICON_FA_TEMPERATURE_ARROW_DOWN "\xee\x80\xbf" // U+e03f
#define ICON_FA_TEMPERATURE_ARROW_UP "\xee\x81\x80" // U+e040
#define ICON_FA_TEMPERATURE_EMPTY "\xef\x8b\x8b" // U+f2cb
#define ICON_FA_TEMPERATURE_FULL "\xef\x8b\x87" // U+f2c7
#define ICON_FA_TEMPERATURE_HALF "\xef\x8b\x89" // U+f2c9
#define ICON_FA_TEMPERATURE_HIGH "\xef\x9d\xa9" // U+f769
#define ICON_FA_TEMPERATURE_LOW "\xef\x9d\xab" // U+f76b
#define ICON_FA_TEMPERATURE_QUARTER "\xef\x8b\x8a" // U+f2ca
#define ICON_FA_TEMPERATURE_THREE_QUARTERS "\xef\x8b\x88" // U+f2c8
#define ICON_FA_TENGE_SIGN "\xef\x9f\x97" // U+f7d7
#define ICON_FA_TENT "\xee\x95\xbd" // U+e57d
#define ICON_FA_TENT_ARROW_DOWN_TO_LINE "\xee\x95\xbe" // U+e57e
#define ICON_FA_TENT_ARROW_LEFT_RIGHT "\xee\x95\xbf" // U+e57f
#define ICON_FA_TENT_ARROW_TURN_LEFT "\xee\x96\x80" // U+e580
#define ICON_FA_TENT_ARROWS_DOWN "\xee\x96\x81" // U+e581
#define ICON_FA_TENTS "\xee\x96\x82" // U+e582
#define ICON_FA_TERMINAL "\xef\x84\xa0" // U+f120
#define ICON_FA_TEXT_HEIGHT "\xef\x80\xb4" // U+f034
#define ICON_FA_TEXT_SLASH "\xef\xa1\xbd" // U+f87d
#define ICON_FA_TEXT_WIDTH "\xef\x80\xb5" // U+f035
#define ICON_FA_THERMOMETER "\xef\x92\x91" // U+f491
#define ICON_FA_THUMBS_DOWN "\xef\x85\xa5" // U+f165
#define ICON_FA_THUMBS_UP "\xef\x85\xa4" // U+f164
#define ICON_FA_THUMBTACK "\xef\x82\x8d" // U+f08d
#define ICON_FA_TICKET "\xef\x85\x85" // U+f145
#define ICON_FA_TICKET_SIMPLE "\xef\x8f\xbf" // U+f3ff
#define ICON_FA_TIMELINE "\xee\x8a\x9c" // U+e29c
#define ICON_FA_TOGGLE_OFF "\xef\x88\x84" // U+f204
#define ICON_FA_TOGGLE_ON "\xef\x88\x85" // U+f205
#define ICON_FA_TOILET "\xef\x9f\x98" // U+f7d8
#define ICON_FA_TOILET_PAPER "\xef\x9c\x9e" // U+f71e
#define ICON_FA_TOILET_PAPER_SLASH "\xee\x81\xb2" // U+e072
#define ICON_FA_TOILET_PORTABLE "\xee\x96\x83" // U+e583
#define ICON_FA_TOILETS_PORTABLE "\xee\x96\x84" // U+e584
#define ICON_FA_TOOLBOX "\xef\x95\x92" // U+f552
#define ICON_FA_TOOTH "\xef\x97\x89" // U+f5c9
#define ICON_FA_TORII_GATE "\xef\x9a\xa1" // U+f6a1
#define ICON_FA_TORNADO "\xef\x9d\xaf" // U+f76f
#define ICON_FA_TOWER_BROADCAST "\xef\x94\x99" // U+f519
#define ICON_FA_TOWER_CELL "\xee\x96\x85" // U+e585
#define ICON_FA_TOWER_OBSERVATION "\xee\x96\x86" // U+e586
#define ICON_FA_TRACTOR "\xef\x9c\xa2" // U+f722
#define ICON_FA_TRADEMARK "\xef\x89\x9c" // U+f25c
#define ICON_FA_TRAFFIC_LIGHT "\xef\x98\xb7" // U+f637
#define ICON_FA_TRAILER "\xee\x81\x81" // U+e041
#define ICON_FA_TRAIN "\xef\x88\xb8" // U+f238
#define ICON_FA_TRAIN_SUBWAY "\xef\x88\xb9" // U+f239
#define ICON_FA_TRAIN_TRAM "\xee\x96\xb4" // U+e5b4
#define ICON_FA_TRANSGENDER "\xef\x88\xa5" // U+f225
#define ICON_FA_TRASH "\xef\x87\xb8" // U+f1f8
#define ICON_FA_TRASH_ARROW_UP "\xef\xa0\xa9" // U+f829
#define ICON_FA_TRASH_CAN "\xef\x8b\xad" // U+f2ed
#define ICON_FA_TRASH_CAN_ARROW_UP "\xef\xa0\xaa" // U+f82a
#define ICON_FA_TREE "\xef\x86\xbb" // U+f1bb
#define ICON_FA_TREE_CITY "\xee\x96\x87" // U+e587
#define ICON_FA_TRIANGLE_EXCLAMATION "\xef\x81\xb1" // U+f071
#define ICON_FA_TROPHY "\xef\x82\x91" // U+f091
#define ICON_FA_TROWEL "\xee\x96\x89" // U+e589
#define ICON_FA_TROWEL_BRICKS "\xee\x96\x8a" // U+e58a
#define ICON_FA_TRUCK "\xef\x83\x91" // U+f0d1
#define ICON_FA_TRUCK_ARROW_RIGHT "\xee\x96\x8b" // U+e58b
#define ICON_FA_TRUCK_DROPLET "\xee\x96\x8c" // U+e58c
#define ICON_FA_TRUCK_FAST "\xef\x92\x8b" // U+f48b
#define ICON_FA_TRUCK_FIELD "\xee\x96\x8d" // U+e58d
#define ICON_FA_TRUCK_FIELD_UN "\xee\x96\x8e" // U+e58e
#define ICON_FA_TRUCK_FRONT "\xee\x8a\xb7" // U+e2b7
#define ICON_FA_TRUCK_MEDICAL "\xef\x83\xb9" // U+f0f9
#define ICON_FA_TRUCK_MONSTER "\xef\x98\xbb" // U+f63b
#define ICON_FA_TRUCK_MOVING "\xef\x93\x9f" // U+f4df
#define ICON_FA_TRUCK_PICKUP "\xef\x98\xbc" // U+f63c
#define ICON_FA_TRUCK_PLANE "\xee\x96\x8f" // U+e58f
#define ICON_FA_TRUCK_RAMP_BOX "\xef\x93\x9e" // U+f4de
#define ICON_FA_TTY "\xef\x87\xa4" // U+f1e4
#define ICON_FA_TURKISH_LIRA_SIGN "\xee\x8a\xbb" // U+e2bb
#define ICON_FA_TURN_DOWN "\xef\x8e\xbe" // U+f3be
#define ICON_FA_TURN_UP "\xef\x8e\xbf" // U+f3bf
#define ICON_FA_TV "\xef\x89\xac" // U+f26c
#define ICON_FA_U "U" // U+0055
#define ICON_FA_UMBRELLA "\xef\x83\xa9" // U+f0e9
#define ICON_FA_UMBRELLA_BEACH "\xef\x97\x8a" // U+f5ca
#define ICON_FA_UNDERLINE "\xef\x83\x8d" // U+f0cd
#define ICON_FA_UNIVERSAL_ACCESS "\xef\x8a\x9a" // U+f29a
#define ICON_FA_UNLOCK "\xef\x82\x9c" // U+f09c
#define ICON_FA_UNLOCK_KEYHOLE "\xef\x84\xbe" // U+f13e
#define ICON_FA_UP_DOWN "\xef\x8c\xb8" // U+f338
#define ICON_FA_UP_DOWN_LEFT_RIGHT "\xef\x82\xb2" // U+f0b2
#define ICON_FA_UP_LONG "\xef\x8c\x8c" // U+f30c
#define ICON_FA_UP_RIGHT_AND_DOWN_LEFT_FROM_CENTER "\xef\x90\xa4" // U+f424
#define ICON_FA_UP_RIGHT_FROM_SQUARE "\xef\x8d\x9d" // U+f35d
#define ICON_FA_UPLOAD "\xef\x82\x93" // U+f093
#define ICON_FA_USER "\xef\x80\x87" // U+f007
#define ICON_FA_USER_ASTRONAUT "\xef\x93\xbb" // U+f4fb
#define ICON_FA_USER_CHECK "\xef\x93\xbc" // U+f4fc
#define ICON_FA_USER_CLOCK "\xef\x93\xbd" // U+f4fd
#define ICON_FA_USER_DOCTOR "\xef\x83\xb0" // U+f0f0
#define ICON_FA_USER_GEAR "\xef\x93\xbe" // U+f4fe
#define ICON_FA_USER_GRADUATE "\xef\x94\x81" // U+f501
#define ICON_FA_USER_GROUP "\xef\x94\x80" // U+f500
#define ICON_FA_USER_INJURED "\xef\x9c\xa8" // U+f728
#define ICON_FA_USER_LARGE "\xef\x90\x86" // U+f406
#define ICON_FA_USER_LARGE_SLASH "\xef\x93\xba" // U+f4fa
#define ICON_FA_USER_LOCK "\xef\x94\x82" // U+f502
#define ICON_FA_USER_MINUS "\xef\x94\x83" // U+f503
#define ICON_FA_USER_NINJA "\xef\x94\x84" // U+f504
#define ICON_FA_USER_NURSE "\xef\xa0\xaf" // U+f82f
#define ICON_FA_USER_PEN "\xef\x93\xbf" // U+f4ff
#define ICON_FA_USER_PLUS "\xef\x88\xb4" // U+f234
#define ICON_FA_USER_SECRET "\xef\x88\x9b" // U+f21b
#define ICON_FA_USER_SHIELD "\xef\x94\x85" // U+f505
#define ICON_FA_USER_SLASH "\xef\x94\x86" // U+f506
#define ICON_FA_USER_TAG "\xef\x94\x87" // U+f507
#define ICON_FA_USER_TIE "\xef\x94\x88" // U+f508
#define ICON_FA_USER_XMARK "\xef\x88\xb5" // U+f235
#define ICON_FA_USERS "\xef\x83\x80" // U+f0c0
#define ICON_FA_USERS_BETWEEN_LINES "\xee\x96\x91" // U+e591
#define ICON_FA_USERS_GEAR "\xef\x94\x89" // U+f509
#define ICON_FA_USERS_LINE "\xee\x96\x92" // U+e592
#define ICON_FA_USERS_RAYS "\xee\x96\x93" // U+e593
#define ICON_FA_USERS_RECTANGLE "\xee\x96\x94" // U+e594
#define ICON_FA_USERS_SLASH "\xee\x81\xb3" // U+e073
#define ICON_FA_USERS_VIEWFINDER "\xee\x96\x95" // U+e595
#define ICON_FA_UTENSILS "\xef\x8b\xa7" // U+f2e7
#define ICON_FA_V "V" // U+0056
#define ICON_FA_VAN_SHUTTLE "\xef\x96\xb6" // U+f5b6
#define ICON_FA_VAULT "\xee\x8b\x85" // U+e2c5
#define ICON_FA_VECTOR_SQUARE "\xef\x97\x8b" // U+f5cb
#define ICON_FA_VENUS "\xef\x88\xa1" // U+f221
#define ICON_FA_VENUS_DOUBLE "\xef\x88\xa6" // U+f226
#define ICON_FA_VENUS_MARS "\xef\x88\xa8" // U+f228
#define ICON_FA_VEST "\xee\x82\x85" // U+e085
#define ICON_FA_VEST_PATCHES "\xee\x82\x86" // U+e086
#define ICON_FA_VIAL "\xef\x92\x92" // U+f492
#define ICON_FA_VIAL_CIRCLE_CHECK "\xee\x96\x96" // U+e596
#define ICON_FA_VIAL_VIRUS "\xee\x96\x97" // U+e597
#define ICON_FA_VIALS "\xef\x92\x93" // U+f493
#define ICON_FA_VIDEO "\xef\x80\xbd" // U+f03d
#define ICON_FA_VIDEO_SLASH "\xef\x93\xa2" // U+f4e2
#define ICON_FA_VIHARA "\xef\x9a\xa7" // U+f6a7
#define ICON_FA_VIRUS "\xee\x81\xb4" // U+e074
#define ICON_FA_VIRUS_COVID "\xee\x92\xa8" // U+e4a8
#define ICON_FA_VIRUS_COVID_SLASH "\xee\x92\xa9" // U+e4a9
#define ICON_FA_VIRUS_SLASH "\xee\x81\xb5" // U+e075
#define ICON_FA_VIRUSES "\xee\x81\xb6" // U+e076
#define ICON_FA_VOICEMAIL "\xef\xa2\x97" // U+f897
#define ICON_FA_VOLCANO "\xef\x9d\xb0" // U+f770
#define ICON_FA_VOLLEYBALL "\xef\x91\x9f" // U+f45f
#define ICON_FA_VOLUME_HIGH "\xef\x80\xa8" // U+f028
#define ICON_FA_VOLUME_LOW "\xef\x80\xa7" // U+f027
#define ICON_FA_VOLUME_OFF "\xef\x80\xa6" // U+f026
#define ICON_FA_VOLUME_XMARK "\xef\x9a\xa9" // U+f6a9
#define ICON_FA_VR_CARDBOARD "\xef\x9c\xa9" // U+f729
#define ICON_FA_W "W" // U+0057
#define ICON_FA_WALKIE_TALKIE "\xef\xa3\xaf" // U+f8ef
#define ICON_FA_WALLET "\xef\x95\x95" // U+f555
#define ICON_FA_WAND_MAGIC "\xef\x83\x90" // U+f0d0
#define ICON_FA_WAND_MAGIC_SPARKLES "\xee\x8b\x8a" // U+e2ca
#define ICON_FA_WAND_SPARKLES "\xef\x9c\xab" // U+f72b
#define ICON_FA_WAREHOUSE "\xef\x92\x94" // U+f494
#define ICON_FA_WATER "\xef\x9d\xb3" // U+f773
#define ICON_FA_WATER_LADDER "\xef\x97\x85" // U+f5c5
#define ICON_FA_WAVE_SQUARE "\xef\xa0\xbe" // U+f83e
#define ICON_FA_WEIGHT_HANGING "\xef\x97\x8d" // U+f5cd
#define ICON_FA_WEIGHT_SCALE "\xef\x92\x96" // U+f496
#define ICON_FA_WHEAT_AWN "\xee\x8b\x8d" // U+e2cd
#define ICON_FA_WHEAT_AWN_CIRCLE_EXCLAMATION "\xee\x96\x98" // U+e598
#define ICON_FA_WHEELCHAIR "\xef\x86\x93" // U+f193
#define ICON_FA_WHEELCHAIR_MOVE "\xee\x8b\x8e" // U+e2ce
#define ICON_FA_WHISKEY_GLASS "\xef\x9e\xa0" // U+f7a0
#define ICON_FA_WIFI "\xef\x87\xab" // U+f1eb
#define ICON_FA_WIND "\xef\x9c\xae" // U+f72e
#define ICON_FA_WINDOW_MAXIMIZE "\xef\x8b\x90" // U+f2d0
#define ICON_FA_WINDOW_MINIMIZE "\xef\x8b\x91" // U+f2d1
#define ICON_FA_WINDOW_RESTORE "\xef\x8b\x92" // U+f2d2
#define ICON_FA_WINE_BOTTLE "\xef\x9c\xaf" // U+f72f
#define ICON_FA_WINE_GLASS "\xef\x93\xa3" // U+f4e3
#define ICON_FA_WINE_GLASS_EMPTY "\xef\x97\x8e" // U+f5ce
#define ICON_FA_WON_SIGN "\xef\x85\x99" // U+f159
#define ICON_FA_WORM "\xee\x96\x99" // U+e599
#define ICON_FA_WRENCH "\xef\x82\xad" // U+f0ad
#define ICON_FA_X "X" // U+0058
#define ICON_FA_X_RAY "\xef\x92\x97" // U+f497
#define ICON_FA_XMARK "\xef\x80\x8d" // U+f00d
#define ICON_FA_XMARKS_LINES "\xee\x96\x9a" // U+e59a
#define ICON_FA_Y "Y" // U+0059
#define ICON_FA_YEN_SIGN "\xef\x85\x97" // U+f157
#define ICON_FA_YIN_YANG "\xef\x9a\xad" // U+f6ad
#define ICON_FA_Z "Z" // U+005a
================================================
FILE: Assets/Font/LICENSE-bfont.ttf.txt
================================================
Fonts are (c) Bitstream (see below). DejaVu changes are in public domain. Glyphs imported from Arev fonts are (c) Tavmjung Bah (see below)
'DeJaVu-Lite' changes (removing characters for lighter file size) are in public domain. Source file is accompanied in this directory, BZip2 compressed, DeJaVuSans-Lite.sfd.bz2 .
Bitstream Vera Fonts Copyright
------------------------------
Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
a trademark of Bitstream, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of the fonts accompanying this license ("Fonts") and associated
documentation files (the "Font Software"), to reproduce and distribute the
Font Software, including without limitation the rights to use, copy, merge,
publish, distribute, and/or sell copies of the Font Software, and to permit
persons to whom the Font Software is furnished to do so, subject to the
following conditions:
The above copyright and trademark notices and this permission notice shall
be included in all copies of one or more of the Font Software typefaces.
The Font Software may be modified, altered, or added to, and in particular
the designs of glyphs or characters in the Fonts may be modified and
additional glyphs or characters may be added to the Fonts, only if the fonts
are renamed to names not containing either the words "Bitstream" or the word
"Vera".
This License becomes null and void to the extent applicable to Fonts or Font
Software that has been modified and is distributed under the "Bitstream
Vera" names.
The Font Software may be sold as part of a larger software package but no
copy of one or more of the Font Software typefaces may be sold by itself.
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME
FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING
ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE
FONT SOFTWARE.
Except as contained in this notice, the names of Gnome, the Gnome
Foundation, and Bitstream Inc., shall not be used in advertising or
otherwise to promote the sale, use or other dealings in this Font Software
without prior written authorization from the Gnome Foundation or Bitstream
Inc., respectively. For further information, contact: fonts at gnome dot
org.
Arev Fonts Copyright
------------------------------
Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.
Permission is hereby granted, free of charge, to any person obtaining
a copy of the fonts accompanying this license ("Fonts") and
associated documentation files (the "Font Software"), to reproduce
and distribute the modifications to the Bitstream Vera Font Software,
including without limitation the rights to use, copy, merge, publish,
distribute, and/or sell copies of the Font Software, and to permit
persons to whom the Font Software is furnished to do so, subject to
the following conditions:
The above copyright and trademark notices and this permission notice
shall be included in all copies of one or more of the Font Software
typefaces.
The Font Software may be modified, altered, or added to, and in
particular the designs of glyphs or characters in the Fonts may be
modified and additional glyphs or characters may be added to the
Fonts, only if the fonts are renamed to names not containing either
the words "Tavmjong Bah" or the word "Arev".
This License becomes null and void to the extent applicable to Fonts
or Font Software that has been modified and is distributed under the
"Tavmjong Bah Arev" names.
The Font Software may be sold as part of a larger software package but
no copy of one or more of the Font Software typefaces may be sold by
itself.
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL
TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
Except as contained in this notice, the name of Tavmjong Bah shall not
be used in advertising or otherwise to promote the sale, use or other
dealings in this Font Software without prior written authorization
from Tavmjong Bah. For further information, contact: tavmjong @ free
. fr.
================================================
FILE: Assets/LUT/LICENSE-MIT
================================================
Copyright (c) 2023 Tomasz Stachowiak
Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the
Software without restriction, including without
limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software
is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice
shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
================================================
FILE: CMake/CompileHLSL.cmake
================================================
# Returns a list of included paths (if any)
function(ParseIncludes DATA DIR RET)
string(REGEX MATCHALL "#include[ \t]*[\"]([^\"]+)[\"]" ALL_MATCHES "${DATA}")
set(INCLUDES "")
foreach(INCLUDE_LINE ${ALL_MATCHES})
string(REGEX REPLACE "#include[ \t]*[\"]([^\"]+)[\"]" "\\1" INCLUDED_FILE "${INCLUDE_LINE}")
# Skip if extension is not .hlsli, .hlsl or .h
get_filename_component(EX "${INCLUDED_FILE}" LAST_EXT)
if(NOT "${EX}" STREQUAL ".hlsli" AND NOT "${EX}" STREQUAL ".hlsl" AND NOT "${EX}" STREQUAL ".h")
continue()
endif()
set(CURR_PATH "${DIR}/${INCLUDED_FILE}")
# Necessary in order to detect duplicate paths
get_filename_component(CURR_PATH_ABS "${CURR_PATH}" ABSOLUTE)
set(INCLUDES ${INCLUDES} "${CURR_PATH_ABS}")
endforeach()
set(${RET} ${INCLUDES} PARENT_SCOPE)
endfunction()
# DFS search to recursively find all included paths
function(DFS FILE_PATH FILE_CONTENTS RET)
get_filename_component(CURR_DIR "${FILE_PATH}" DIRECTORY)
ParseIncludes("${FILE_CONTENTS}" "${CURR_DIR}" INCLUDES)
set(ALL ${INCLUDES})
foreach(INCLUDE ${INCLUDES})
# Skip searching cpp headers that are not in render pass directory
get_filename_component(FILE_NAME "${INCLUDE}" LAST_EXT)
string(SUBSTRING "${INCLUDE}" 0 ${ZETA_RENDER_PASS_DIR_LEN} TEMP)
if("${FILE_NAME}" STREQUAL ".h" AND NOT "${TEMP}" STREQUAL "${ZETA_RENDER_PASS_DIR}")
continue()
endif()
file(STRINGS "${INCLUDE}" NEXT_FILE_CONTENTS NEWLINE_CONSUME)
DFS("${INCLUDE}" "${NEXT_FILE_CONTENTS}" NEXT_INCLUDES)
set(ALL ${ALL} ${NEXT_INCLUDES})
endforeach()
# Remove duplicate paths
list(REMOVE_DUPLICATES ALL)
set(${RET} ${ALL} PARENT_SCOPE)
endfunction()
function(CompileHLSL HLSL_PATH RET)
# DXC compiler
find_program(DXC dxc PATHS "${DXC_BIN_DIR}" REQUIRED NO_DEFAULT_PATH)
get_filename_component(FILE_NAME_WO_EXT ${HLSL_PATH} NAME_WLE)
file(STRINGS "${HLSL_PATH}" DATA NEWLINE_CONSUME)
DFS("${HLSL_PATH}" ${DATA} ALL_INCLUDES)
# Figure out if shader is a compute shader, DXIL lib, etc
if(COMPILE_SHADERS_WITH_DEBUG_INFO)
set(COMMON_ARGS "-Qembed_debug" "-Qstrip_reflect" "-nologo" "-Zi" "-all_resources_bound" "-enable-16bit-types" "-WX" "-HV 202x" "-Wdouble-promotion")
else()
set(COMMON_ARGS "-Qstrip_reflect" "-nologo" "-all_resources_bound" "-enable-16bit-types" "-WX" "-HV 202x" "-Wdouble-promotion")
endif()
# Compute shader
set(RE_CS "\\[numthreads.*\\][ \t\r\n]*void[ \t\r\n]+([a-zA-Z][A-Za-z0-9_]*)")
string(REGEX MATCH ${RE_CS} MATCH ${DATA})
if(${CMAKE_MATCH_COUNT} GREATER 0)
set(MAIN_FUNC ${CMAKE_MATCH_1})
set(CSO_PATH "${CSO_DIR}/${FILE_NAME_WO_EXT}_cs.cso")
add_custom_command(
OUTPUT ${CSO_PATH}
COMMAND ${DXC} ${COMMON_ARGS} -T cs_6_7 -E ${MAIN_FUNC} -Fo ${CSO_PATH} ${HLSL_PATH}
DEPENDS ${ALL_INCLUDES} "${HLSL_PATH}"
COMMENT "Compiling HLSL source file ${FILE_NAME_WO_EXT}.hlsl..."
VERBATIM)
set(CSOS ${CSO_PATH})
else()
# RT lib
set(RE_DXIL "\\[shader(.*)\\][ \t\r\n]")
string(REGEX MATCH ${RE_DXIL} MATCH ${DATA})
if(${CMAKE_MATCH_COUNT} GREATER 0)
set(CSO_PATH "${CSO_DIR}/${FILE_NAME_WO_EXT}_lib.cso")
add_custom_command(
OUTPUT ${CSO_PATH}
COMMAND ${DXC} ${COMMON_ARGS} -T lib_6_7 -Fo ${CSO_PATH} ${HLSL_PATH}
DEPENDS ${ALL_INCLUDES} "${HLSL_PATH}"
COMMENT "Compiling DXIL library ${FILE_NAME_WO_EXT}.hlsl..."
VERBATIM)
set(CSOS ${CSO_PATH})
else()
# Compute shader that includes another .hlsl. Further assumes included hlsl has a "main" entry point.
set(RE_INCLUDE_HLSL "#include[ \t]*[\"<]([^\">]+)\\.hlsl[\">]")
string(REGEX MATCH ${RE_INCLUDE_HLSL} MATCH ${DATA})
if(${CMAKE_MATCH_COUNT} GREATER 0)
set(CSO_PATH "${CSO_DIR}/${FILE_NAME_WO_EXT}_cs.cso")
add_custom_command(
OUTPUT ${CSO_PATH}
COMMAND ${DXC} ${COMMON_ARGS} -T cs_6_7 -E main -Fo ${CSO_PATH} ${HLSL_PATH}
DEPENDS ${ALL_INCLUDES} "${HLSL_PATH}"
COMMENT "Compiling HLSL source file ${FILE_NAME_WO_EXT}.hlsl..."
VERBATIM)
set(CSOS ${CSO_PATH})
# VS-PS
else()
# Vertex shader
set(CSO_PATH_VS ${CSO_DIR}/${FILE_NAME_WO_EXT}_vs.cso)
# Pixel shader
set(CSO_PATH_PS ${CSO_DIR}/${FILE_NAME_WO_EXT}_ps.cso)
add_custom_command(
OUTPUT ${CSO_PATH_VS} ${CSO_PATH_PS}
COMMAND ${DXC} ${COMMON_ARGS} -T vs_6_7 -E mainVS -Fo ${CSO_PATH_VS} ${HLSL_PATH}
COMMAND ${DXC} ${COMMON_ARGS} -T ps_6_7 -E mainPS -Fo ${CSO_PATH_PS} ${HLSL_PATH}
DEPENDS ${ALL_INCLUDES} "${HLSL_PATH}"
COMMENT "Compiling HLSL source file ${FILE_NAME_WO_EXT}.hlsl..."
VERBATIM)
set(CSOS ${CSO_PATH_VS} ${CSO_PATH_PS})
endif()
endif()
endif()
set(${RET} ${CSOS} PARENT_SCOPE)
endfunction()
================================================
FILE: CMake/Copy.cmake
================================================
function(Copy FILES DEST TARGET_NAME)
foreach(FULL_FILENAME ${FILES})
get_filename_component(FILE ${FULL_FILENAME} NAME)
add_custom_command(
OUTPUT ${DEST}/${FILE}
COMMAND ${CMAKE_COMMAND} -E make_directory ${DEST}
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${FULL_FILENAME} ${DEST}
MAIN_DEPENDENCY ${FULL_FILENAME}
COMMENT "Copying ${FILE} into ${DEST}..." )
list(APPEND ALL_DESTS ${DEST}/${FILE})
endforeach()
add_custom_target(${TARGET_NAME} DEPENDS "${ALL_DESTS}")
set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "CopyTargets")
endfunction()
================================================
FILE: CMake/SetBuildConfigurations.cmake
================================================
get_property(isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
if(isMultiConfig)
set(CMAKE_CONFIGURATION_TYPES "Debug;Release;" CACHE STRING "" FORCE)
endif()
================================================
FILE: CMake/SetupAgilitySDK.cmake
================================================
function(SetupAgilitySDK SDK_VERSION)
set(VER "1.615.0")
set(SDK_DIR "${EXTERNAL_DIR}/D3D12/${VER}")
file(GLOB_RECURSE CORE_DLL_PATH "${SDK_DIR}/*D3D12Core.dll")
if(CORE_DLL_PATH STREQUAL "")
file(MAKE_DIRECTORY ${SDK_DIR})
# download from nuget
set(URL "https://www.nuget.org/api/v2/package/Microsoft.Direct3D.D3D12/${VER}")
message(STATUS "Downloading Agility SDK from ${URL}...")
set(ARCHIVE_PATH "${SDK_DIR}/temp/agility.zip")
file(DOWNLOAD "${URL}" "${ARCHIVE_PATH}" TIMEOUT 120)
file(ARCHIVE_EXTRACT INPUT "${ARCHIVE_PATH}" DESTINATION "${SDK_DIR}/temp")
# remove d3dx12
file(REMOVE_RECURSE "${SDK_DIR}/temp/build/native/include/d3dx12")
# copy headers
file(GLOB_RECURSE SDK_HEADERS "${SDK_DIR}/temp/build/native/include/*.h")
file(COPY ${SDK_HEADERS} DESTINATION ${SDK_DIR})
if(SDK_HEADERS STREQUAL "")
message(FATAL_ERROR "Setting up Agility SDK failed.")
endif()
# copy binaries
set(DLLS
"${SDK_DIR}/temp/build/native/bin/x64/D3D12Core.dll"
"${SDK_DIR}/temp/build/native/bin/x64/d3d12SDKLayers.dll")
file(COPY ${DLLS} DESTINATION ${SDK_DIR})
# cleanup
file(REMOVE_RECURSE "${SDK_DIR}/temp")
endif()
set(${SDK_VERSION} ${VER} PARENT_SCOPE)
endfunction()
================================================
FILE: CMake/SetupDXC.cmake
================================================
function(SetupDXC DXC_BIN_DIR)
set(DXC_DIR "${TOOLS_DIR}/dxc")
file(GLOB_RECURSE DXC_BIN_PATH "${DXC_DIR}/*dxc.exe")
# if(NOT EXISTS "${DXC_BIN_DIR}")
if(DXC_BIN_PATH STREQUAL "")
set(URL "https://github.com/microsoft/DirectXShaderCompiler/releases/download/v1.8.2405/dxc_2024_05_24_clang_cl.zip")
message(STATUS "Downloading DXC from ${URL}...")
set(ARCHIVE_PATH "${TOOLS_DIR}/dxc.zip")
file(DOWNLOAD "${URL}" "${ARCHIVE_PATH}" TIMEOUT 120)
file(ARCHIVE_EXTRACT INPUT "${ARCHIVE_PATH}" DESTINATION "${DXC_DIR}")
file(REMOVE_RECURSE "${DXC_DIR}/bin/arm64")
file(REMOVE_RECURSE "${DXC_DIR}/bin/x86")
file(REMOVE_RECURSE "${DXC_DIR}/lib")
file(REMOVE_RECURSE "${DXC_DIR}/inc")
file(REMOVE "${ARCHIVE_PATH}")
file(GLOB_RECURSE DXC_BIN_PATH "${DXC_DIR}/*dxc.exe")
if(DXC_BIN_PATH STREQUAL "")
message(FATAL_ERROR "Setting up DXC failed.")
endif()
endif()
get_filename_component(PARENT_DIR ${DXC_BIN_PATH} DIRECTORY)
set(${DXC_BIN_DIR} ${PARENT_DIR} PARENT_SCOPE)
endfunction()
================================================
FILE: CMake/SetupDoctest.cmake
================================================
function(SetupDoctest)
set(DOCTEST_DIR "${EXTERNAL_DIR}/doctest")
file(GLOB_RECURSE HEADER_PATH "${DOCTEST_DIR}/doctest.h")
if(HEADER_PATH STREQUAL "")
file(MAKE_DIRECTORY ${DOCTEST_DIR})
set(URL "https://github.com/doctest/doctest/releases/download/v2.4.11/doctest.h")
message(STATUS "Downloading doctest 2.4.11 from ${URL}...")
file(DOWNLOAD "${URL}" "${DOCTEST_DIR}/doctest.h" TIMEOUT 60)
endif()
endfunction()
================================================
FILE: CMake/SetupImGui.cmake
================================================
function(SetupImGui)
set(IMGUI_VER "1.91.6")
set(IMPLOT_COMMIT "47522f47054d33178e7defa780042bd2a06b09f9")
set(IMNODES_COMMIT "8563e1655bd9bb1f249e6552cc6274d506ee788b")
set(IMGUI_DIR "${EXTERNAL_DIR}/ImGui")
file(GLOB_RECURSE IMGUI_HEADER_PATH "${IMGUI_DIR}/*imgui.h")
file(GLOB_RECURSE IMPLOT_HEADER_PATH "${IMGUI_DIR}/*implot.h")
file(GLOB_RECURSE IMNODES_HEADER_PATH "${IMGUI_DIR}/*imnodes.h")
if(IMGUI_HEADER_PATH STREQUAL "")
# download ImGui source code
set(URL "https://github.com/ocornut/imgui/archive/refs/tags/v${IMGUI_VER}.zip")
message(STATUS "Downloading ImGui ${IMGUI_VER} from ${URL}...")
set(ARCHIVE_PATH "${IMGUI_DIR}/temp/imgui.zip")
file(DOWNLOAD "${URL}" "${ARCHIVE_PATH}" TIMEOUT 120)
file(ARCHIVE_EXTRACT INPUT "${ARCHIVE_PATH}" DESTINATION "${IMGUI_DIR}/temp")
# copy to ImGui directory
set(FILES
"${IMGUI_DIR}/temp/imgui-${IMGUI_VER}/imgui_draw.cpp"
"${IMGUI_DIR}/temp/imgui-${IMGUI_VER}/imgui_internal.h"
"${IMGUI_DIR}/temp/imgui-${IMGUI_VER}/imgui_tables.cpp"
"${IMGUI_DIR}/temp/imgui-${IMGUI_VER}/imgui_widgets.cpp"
"${IMGUI_DIR}/temp/imgui-${IMGUI_VER}/imgui.cpp"
"${IMGUI_DIR}/temp/imgui-${IMGUI_VER}/imgui.h"
"${IMGUI_DIR}/temp/imgui-${IMGUI_VER}/imstb_rectpack.h"
"${IMGUI_DIR}/temp/imgui-${IMGUI_VER}/imstb_textedit.h"
"${IMGUI_DIR}/temp/imgui-${IMGUI_VER}/imstb_truetype.h")
file(COPY ${FILES} DESTINATION ${IMGUI_DIR})
# cleanup
file(REMOVE_RECURSE "${IMGUI_DIR}/temp")
endif()
if(IMPLOT_HEADER_PATH STREQUAL "")
# download ImPlot source code
set(URL "https://github.com/epezent/implot/archive/${IMPLOT_COMMIT}.zip")
message(STATUS "Downloading ImPlot from ${URL}...")
set(ARCHIVE_PATH "${IMGUI_DIR}/temp/implot.zip")
file(DOWNLOAD "${URL}" "${ARCHIVE_PATH}" TIMEOUT 120)
file(ARCHIVE_EXTRACT INPUT "${ARCHIVE_PATH}" DESTINATION "${IMGUI_DIR}/temp")
# copy to ImGui directory
set(FILES
"${IMGUI_DIR}/temp/implot-${IMPLOT_COMMIT}/implot_internal.h"
"${IMGUI_DIR}/temp/implot-${IMPLOT_COMMIT}/implot_items.cpp"
"${IMGUI_DIR}/temp/implot-${IMPLOT_COMMIT}/implot.cpp"
"${IMGUI_DIR}/temp/implot-${IMPLOT_COMMIT}/implot.h")
file(COPY ${FILES} DESTINATION ${IMGUI_DIR})
# cleanup
file(REMOVE_RECURSE "${IMGUI_DIR}/temp")
endif()
if(IMNODES_HEADER_PATH STREQUAL "")
# download imnodes source code
set(URL "https://github.com/Nelarius/imnodes/archive/${IMNODES_COMMIT}.zip")
message(STATUS "Downloading imnodes from ${URL}...")
set(ARCHIVE_PATH "${IMGUI_DIR}/temp/imnodes.zip")
file(DOWNLOAD "${URL}" "${ARCHIVE_PATH}" TIMEOUT 120)
file(ARCHIVE_EXTRACT INPUT "${ARCHIVE_PATH}" DESTINATION "${IMGUI_DIR}/temp")
# copy to ImGui directory
set(FILES
"${IMGUI_DIR}/temp/imnodes-${IMNODES_COMMIT}/imnodes_internal.h"
"${IMGUI_DIR}/temp/imnodes-${IMNODES_COMMIT}/imnodes.cpp"
"${IMGUI_DIR}/temp/imnodes-${IMNODES_COMMIT}/imnodes.h")
file(COPY ${FILES} DESTINATION ${IMGUI_DIR})
# cleanup
file(REMOVE_RECURSE "${IMGUI_DIR}/temp")
endif()
endfunction()
================================================
FILE: CMake/SetupWinPIX.cmake
================================================
function(SetupWinPIX)
set(PIX_DIR "${EXTERNAL_DIR}/WinPixEventRuntime")
file(GLOB_RECURSE DLL_PATH "${PIX_DIR}/*WinPixEventRuntime.dll")
if(DLL_PATH STREQUAL "")
file(MAKE_DIRECTORY ${PIX_DIR})
# download from nuget
set(URL "https://www.nuget.org/api/v2/package/WinPixEventRuntime/1.0.231030001")
message(STATUS "Downloading WinPixEventRuntime from ${URL}...")
set(ARCHIVE_PATH "${PIX_DIR}/temp/pix.zip")
file(DOWNLOAD "${URL}" "${ARCHIVE_PATH}" TIMEOUT 120)
file(ARCHIVE_EXTRACT INPUT "${ARCHIVE_PATH}" DESTINATION "${PIX_DIR}/temp")
# copy headers
file(GLOB_RECURSE PIX_HEADERS "${PIX_DIR}/temp/include/*.h")
file(COPY ${PIX_HEADERS} DESTINATION ${PIX_DIR})
if(PIX_HEADERS STREQUAL "")
message(FATAL_ERROR "Setting up WinPixEventRuntime failed.")
endif()
# copy binaries
set(BINS
"${PIX_DIR}/temp/bin/x64/WinPixEventRuntime.dll"
"${PIX_DIR}/temp/bin/x64/WinPixEventRuntime.lib")
file(COPY ${BINS} DESTINATION ${PIX_DIR})
# cleanup
file(REMOVE_RECURSE "${PIX_DIR}/temp")
endif()
endfunction()
================================================
FILE: CMake/Setupcgltf.cmake
================================================
function(Setupcgltf)
set(CGLTF_DIR "${EXTERNAL_DIR}/cgltf")
file(GLOB_RECURSE HEADER_PATH "${CGLTF_DIR}/cgltf.h")
file(GLOB_RECURSE HEADER_PATH_WRITE "${CGLTF_DIR}/cgltf_write.h")
set(CGLTF_VER "1.14")
if(HEADER_PATH STREQUAL "" OR HEADER_PATH_WRITE STREQUAL "")
file(MAKE_DIRECTORY ${CGLTF_DIR})
# download
set(URL "https://github.com/jkuhlmann/cgltf/archive/refs/tags/v${CGLTF_VER}.zip")
message(STATUS "Downloading cgltf ${CGLTF_VER} from ${URL}...")
set(ARCHIVE_PATH "${CGLTF_DIR}/temp/cgltf.zip")
file(DOWNLOAD "${URL}" "${ARCHIVE_PATH}" TIMEOUT 120)
file(ARCHIVE_EXTRACT INPUT "${ARCHIVE_PATH}" DESTINATION "${CGLTF_DIR}/temp")
# copy headers
file(GLOB_RECURSE HEADER "${CGLTF_DIR}/temp/*cgltf*.h")
file(COPY ${HEADER} DESTINATION ${CGLTF_DIR})
if(HEADER STREQUAL "")
message(FATAL_ERROR "Setting up cgltf failed.")
endif()
# cleanup
file(REMOVE_RECURSE "${CGLTF_DIR}/temp")
endif()
endfunction()
================================================
FILE: CMake/SetupxxHash.cmake
================================================
function(SetupxxHash)
set(XXHASH_DIR "${EXTERNAL_DIR}/xxHash")
file(GLOB_RECURSE HEADER_PATH "${XXHASH_DIR}/xxHash.h")
if(HEADER_PATH STREQUAL "")
file(MAKE_DIRECTORY ${XXHASH_DIR})
# download
set(URL "https://github.com/Cyan4973/xxHash/archive/refs/tags/v0.8.1.zip")
message(STATUS "Downloading xxHash 0.8.1 from ${URL}...")
set(ARCHIVE_PATH "${XXHASH_DIR}/temp/xxhash.zip")
file(DOWNLOAD "${URL}" "${ARCHIVE_PATH}" TIMEOUT 120)
file(ARCHIVE_EXTRACT INPUT "${ARCHIVE_PATH}" DESTINATION "${XXHASH_DIR}/temp")
# copy header
file(GLOB_RECURSE HEADER "${XXHASH_DIR}/temp/*xxhash.h")
file(COPY ${HEADER} DESTINATION ${XXHASH_DIR})
if(HEADER STREQUAL "")
message(FATAL_ERROR "Setting up xxHash failed.")
endif()
# cleanup
file(REMOVE_RECURSE "${XXHASH_DIR}/temp")
endif()
endfunction()
================================================
FILE: CMakeLists.txt
================================================
cmake_minimum_required(VERSION 3.21)
# Enable building custom commands by Visual Studio in parallel. Introduced in CMake 3.27.
if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.27")
cmake_policy(SET CMP0147 NEW)
endif()
set(CMAKE_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/CMake")
include("${CMAKE_INCLUDE_DIR}/SetBuildConfigurations.cmake")
include("${CMAKE_INCLUDE_DIR}/SetupDXC.cmake")
project(ZetaRay
LANGUAGES CXX
DESCRIPTION "Real-time Direct3D 12 path tracer")
option(BUILD_TESTS "Build unit tests" OFF)
option(BUILD_TOOLS "Build tools" ON)
option(COMPILE_SHADERS_WITH_DEBUG_INFO "Compile shaders with debug information (-Zi in dxc)" OFF)
# set output directories
set(CMAKE_SUPPRESS_REGENERATION true)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
# append 'd' to debug targets
set(CMAKE_DEBUG_POSTFIX "d")
# enable folders for code organization
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
# if(MSVC)
# # generate pdb files for the release build (off by default)
# add_compile_options("$<$<CONFIG:RELEASE>:/Zi>")
# add_link_options("$<$<CONFIG:RELEASE>:/DEBUG>")
# endif()
#
# compiler options
#
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_COMPILE_WARNING_AS_ERROR ON)
if(MSVC)
if(MSVC_TOOLSET_VERSION VERSION_LESS 142)
message(FATAL_ERROR "MSVC toolset version 142 or greater is required.")
endif()
# disable exceptions
string(REPLACE "/EHsc" "" NEW_CXX_FLAGS ${CMAKE_CXX_FLAGS})
set(CMAKE_CXX_FLAGS ${NEW_CXX_FLAGS} CACHE STRING "" FORCE)
# disable runtime checks
string(REPLACE "/RTC1" "" NEW_CXX_DBG_FLAGS ${CMAKE_CXX_FLAGS_DEBUG})
set(CMAKE_CXX_FLAGS_DEBUG ${NEW_CXX_DBG_FLAGS} CACHE STRING "" FORCE)
# multi-processor compilation
add_compile_options(/MP)
# warning level
add_compile_options(/W4)
# enable intrinsic functions
add_compile_options(/Oi)
add_compile_options("$<$<CONFIG:DEBUG>:/Ob1>")
# disable RTTI
add_compile_options(/GR-)
# precise floating point
add_compile_options(/fp:precise)
# standards conformance
add_compile_options(/permissive-)
add_compile_options(/arch:AVX2)
# disable a few MSVC warnings
if (NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
# _CRT_SECURE_NO_WARNINGS
add_compile_options(/wd4996)
# unreferenced local variable
add_compile_options(/wd4101)
# unreferenced formal parameter
add_compile_options(/wd4100)
# local variable is initialized but not referenced
add_compile_options(/wd4189)
# structure was padded due to alignment specifier
add_compile_options(/wd4324)
endif()
add_compile_definitions("ZETA_HAS_NO_UNIQUE_ADDRESS")
endif()
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
add_compile_options(-Wno-unused-parameter)
add_compile_options(-Wno-deprecated-declarations)
add_compile_options(-Wno-reorder-ctor)
add_compile_options(-Wno-unused-variable)
add_compile_options(-Wno-unused-but-set-variable)
add_compile_options(-Wno-sign-compare)
add_compile_options(-Wno-missing-braces)
add_compile_options(-Wno-unused-local-typedef)
add_compile_options(-Wno-unused-function)
add_compile_options(-Wno-unused-private-field)
if (${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER_EQUAL 18)
add_compile_options(-Wno-nan-infinity-disabled)
add_compile_definitions("ZETA_HAS_NO_UNIQUE_ADDRESS")
endif()
# Echo the currently compiled filename
if (${CMAKE_CXX_SIMULATE_ID} STREQUAL MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /showFilenames")
endif()
endif()
#
# common paths
#
set(EXTERNAL_DIR "${CMAKE_SOURCE_DIR}/External")
set(TOOLS_DIR "${CMAKE_SOURCE_DIR}/Tools")
set(ZETA_CORE_DIR "${CMAKE_SOURCE_DIR}/Source/ZetaCore")
set(ZETA_RENDER_PASS_DIR "${CMAKE_SOURCE_DIR}/Source/ZetaRenderPass")
string(LENGTH "${ZETA_RENDER_PASS_DIR}" ZETA_RENDER_PASS_DIR_LEN)
set(ZETA_RENDERER_DIR "${CMAKE_SOURCE_DIR}/Source/ZetaRenderer")
set(ASSET_DIR "${CMAKE_SOURCE_DIR}/Assets")
set(CSO_DIR "${ASSET_DIR}/CSO")
#
# setup DXC
#
SetupDXC(DXC_BIN_DIR)
add_subdirectory(Source)
if(BUILD_TESTS)
add_subdirectory(Tests)
endif()
if(BUILD_TOOLS)
add_subdirectory(Tools)
endif()
================================================
FILE: External/FSR2/Include/dx12/shaders/ffx_fsr2_shaders_dx12.h
================================================
// This file is part of the FidelityFX SDK.
//
// Copyright (c) 2022-2023 Advanced Micro Devices, Inc. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
#pragma once
#include <stdint.h>
#include "../../ffx_fsr2_interface.h"
#if defined(__cplusplus)
extern "C" {
#endif // #if defined(__cplusplus)
// A single shader blob and a description of its resources.
typedef struct Fsr2ShaderBlobDX12 {
const uint8_t* data; // A pointer to the blob
uint32_t size; // Size in bytes.
uint32_t uavCount; // Number of UAV.
uint32_t srvCount; // Number of SRV.
uint32_t cbvCount; // Number of CBs.
const char** boundUAVResourceNames;
const uint32_t* boundUAVResources; // Pointer to an array of bound UAV resources.
const char** boundSRVResourceNames;
const uint32_t* boundSRVResources; // Pointer to an array of bound SRV resources.
const char** boundCBVResourceNames;
const uint32_t* boundCBVResources; // Pointer to an array of bound ConstantBuffers.
} Fsr2ShaderBlobDX12;
// The different options which contribute to permutations.
typedef enum Fs2ShaderPermutationOptionsDX12 {
FSR2_SHADER_PERMUTATION_USE_LANCZOS_TYPE = (1<<0), // FFX_FSR2_OPTION_REPROJECT_USE_LANCZOS_TYPE. Off means reference, On means LUT
FSR2_SHADER_PERMUTATION_HDR_COLOR_INPUT = (1<<1), // FFX_FSR2_OPTION_HDR_COLOR_INPUT
FSR2_SHADER_PERMUTATION_LOW_RES_MOTION_VECTORS = (1<<2), // FFX_FSR2_OPTION_LOW_RESOLUTION_MOTION_VECTORS
FSR2_SHADER_PERMUTATION_JITTER_MOTION_VECTORS = (1<<3), // FFX_FSR2_OPTION_JITTERED_MOTION_VECTORS
FSR2_SHADER_PERMUTATION_DEPTH_INVERTED = (1<<4), // FFX_FSR2_OPTION_INVERTED_DEPTH
FSR2_SHADER_PERMUTATION_ENABLE_SHARPENING = (1<<5), // FFX_FSR2_OPTION_APPLY_SHARPENING
FSR2_SHADER_PERMUTATION_FORCE_WAVE64 = (1<<6), // doesn't map to a define, selects different table
FSR2_SHADER_PERMUTATION_ALLOW_FP16 = (1<<7), // FFX_USE_16BIT
} Fs2ShaderPermutationOptionsDX12;
// Get a DX12 shader blob for the specified pass and permutation index.
FFX_API Fsr2ShaderBlobDX12 fsr2GetPermutationBlobByIndexDX12(FfxFsr2Pass passId, uint32_t permutationOptions);
#if defined(__cplusplus)
}
#endif // #if defined(__cplusplus)
================================================
FILE: External/FSR2/Include/ffx_assert.h
================================================
// This file is part of the FidelityFX SDK.
//
// Copyright (c) 2022-2023 Advanced Micro Devices, Inc. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
#pragma once
#include "ffx_types.h"
#include "ffx_util.h"
#ifdef __cplusplus
extern "C" {
#endif // #ifdef __cplusplus
#ifdef _DEBUG
#ifdef _WIN32
#ifdef DISABLE_FFX_DEBUG_BREAK
#define FFX_DEBUG_BREAK \
{ \
}
#else
/// Macro to force the debugger to break at this point in the code.
#define FFX_DEBUG_BREAK __debugbreak();
#endif
#else
#define FFX_DEBUG_BREAK \
{ \
}
#endif
#else
// don't allow debug break in release builds.
#define FFX_DEBUG_BREAK
#endif
/// A typedef for the callback function for assert printing.
///
/// This can be used to re-route printing of assert messages from the FFX backend
/// to another destination. For example instead of the default behaviour of printing
/// the assert messages to the debugger's TTY the message can be re-routed to a
/// MessageBox in a GUI application.
///
/// @param [in] message The message generated by the assert.
///
typedef void (*FfxAssertCallback)(const char* message);
/// Function to report an assert.
///
/// @param [in] file The name of the file as a string.
/// @param [in] line The index of the line in the file.
/// @param [in] condition The boolean condition that was tested.
/// @param [in] msg The optional message to print.
///
/// @returns
/// Always returns true.
///
FFX_API bool ffxAssertReport(const char* file, int32_t line, const char* condition, const char* msg);
/// Provides the ability to set a callback for assert messages.
///
/// @param [in] callback The callback function that will receive assert messages.
///
FFX_API void ffxAssertSetPrintingCallback(FfxAssertCallback callback);
#ifdef _DEBUG
/// Standard assert macro.
#define FFX_ASSERT(condition) \
do \
{ \
if (!(condition) && ffxAssertReport(__FILE__, __LINE__, #condition, NULL)) \
FFX_DEBUG_BREAK \
} while (0)
/// Assert macro with message.
#define FFX_ASSERT_MESSAGE(condition, msg) \
do \
{ \
if (!(condition) && ffxAssertReport(__FILE__, __LINE__, #condition, msg)) \
FFX_DEBUG_BREAK \
} while (0)
/// Assert macro that always fails.
#define FFX_ASSERT_FAIL(message) \
do \
{ \
ffxAssertReport(__FILE__, __LINE__, NULL, message); \
FFX_DEBUG_BREAK \
} while (0)
#else
// asserts disabled
#define FFX_ASSERT(condition) \
do \
{ \
FFX_UNUSED(condition); \
} while (0)
#define FFX_ASSERT_MESSAGE(condition, message) \
do \
{ \
FFX_UNUSED(condition); \
FFX_UNUSED(message); \
} while (0)
#define FFX_ASSERT_FAIL(message) \
do \
{ \
FFX_UNUSED(message); \
} while (0)
#endif // #if _DEBUG
/// Simple static assert.
#define FFX_STATIC_ASSERT(condition) static_assert(condition, #condition)
#ifdef __cplusplus
}
#endif // #ifdef __cplusplus
================================================
FILE: External/FSR2/Include/ffx_error.h
================================================
// This file is part of the FidelityFX SDK.
//
// Copyright (c) 2022-2023 Advanced Micro Devices, Inc. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
#pragma once
#include "ffx_types.h"
/// Typedef for error codes returned from functions in the FidelityFX SDK.
typedef int32_t FfxErrorCode;
static const FfxErrorCode FFX_OK = 0; ///< The operation completed successfully.
static const FfxErrorCode FFX_ERROR_INVALID_POINTER = 0x80000000; ///< The operation failed due to an invalid pointer.
static const FfxErrorCode FFX_ERROR_INVALID_ALIGNMENT = 0x80000001; ///< The operation failed due to an invalid alignment.
static const FfxErrorCode FFX_ERROR_INVALID_SIZE = 0x80000002; ///< The operation failed due to an invalid size.
static const FfxErrorCode FFX_EOF = 0x80000003; ///< The end of the file was encountered.
static const FfxErrorCode FFX_ERROR_INVALID_PATH = 0x80000004; ///< The operation failed because the specified path was invalid.
static const FfxErrorCode FFX_ERROR_EOF = 0x80000005; ///< The operation failed because end of file was reached.
static const FfxErrorCode FFX_ERROR_MALFORMED_DATA = 0x80000006; ///< The operation failed because of some malformed data.
static const FfxErrorCode FFX_ERROR_OUT_OF_MEMORY = 0x80000007; ///< The operation failed because it ran out memory.
static const FfxErrorCode FFX_ERROR_INCOMPLETE_INTERFACE = 0x80000008; ///< The operation failed because the interface was not fully configured.
static const FfxErrorCode FFX_ERROR_INVALID_ENUM = 0x80000009; ///< The operation failed because of an invalid enumeration value.
static const FfxErrorCode FFX_ERROR_INVALID_ARGUMENT = 0x8000000a; ///< The operation failed because an argument was invalid.
static const FfxErrorCode FFX_ERROR_OUT_OF_RANGE = 0x8000000b; ///< The operation failed because a value was out of range.
static const FfxErrorCode FFX_ERROR_NULL_DEVICE = 0x8000000c; ///< The operation failed because a device was null.
static const FfxErrorCode FFX_ERROR_BACKEND_API_ERROR = 0x8000000d; ///< The operation failed because the backend API returned an error code.
static const FfxErrorCode FFX_ERROR_INSUFFICIENT_MEMORY = 0x8000000e; ///< The operation failed because there was not enough memory.
/// Helper macro to return error code y from a function when a specific condition, x, is not met.
#define FFX_RETURN_ON_ERROR(x, y) \
if (!(x)) \
{ \
return (y); \
}
/// Helper macro to return error code x from a function when it is not FFX_OK.
#define FFX_VALIDATE(x) \
{ \
FfxErrorCode ret = x; \
FFX_RETURN_ON_ERROR(ret == FFX_OK, ret); \
}
================================================
FILE: External/FSR2/Include/ffx_fsr2.h
================================================
// This file is part of the FidelityFX SDK.
//
// Copyright (c) 2022-2023 Advanced Micro Devices, Inc. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
// @defgroup FSR2
#pragma once
// Include the interface for the backend of the FSR2 API.
#include "ffx_fsr2_interface.h"
/// FidelityFX Super Resolution 2 major version.
///
/// @ingroup FSR2
#define FFX_FSR2_VERSION_MAJOR (2)
/// FidelityFX Super Resolution 2 minor version.
///
/// @ingroup FSR2
#define FFX_FSR2_VERSION_MINOR (2)
/// FidelityFX Super Resolution 2 patch version.
///
/// @ingroup FSR2
#define FFX_FSR2_VERSION_PATCH (0)
/// The size of the context specified in 32bit values.
///
/// @ingroup FSR2
#define FFX_FSR2_CONTEXT_SIZE (16536)
#if defined(__cplusplus)
extern "C" {
#endif // #if defined(__cplusplus)
/// An enumeration of all the quality modes supported by FidelityFX Super
/// Resolution 2 upscaling.
///
/// In order to provide a consistent user experience across multiple
/// applications which implement FSR2. It is strongly recommended that the
/// following preset scaling factors are made available through your
/// application's user interface.
///
/// If your application does not expose the notion of preset scaling factors
/// for upscaling algorithms (perhaps instead implementing a fixed ratio which
/// is immutable) or implementing a more dynamic scaling scheme (such as
/// dynamic resolution scaling), then there is no need to use these presets.
///
/// Please note that <c><i>FFX_FSR2_QUALITY_MODE_ULTRA_PERFORMANCE</i></c> is
/// an optional mode which may introduce significant quality degradation in the
/// final image. As such it is recommended that you evaluate the final results
/// of using this scaling mode before deciding if you should include it in your
/// application.
///
/// @ingroup FSR2
typedef enum FfxFsr2QualityMode {
FFX_FSR2_QUALITY_MODE_QUALITY = 1, ///< Perform upscaling with a per-dimension upscaling ratio of 1.5x.
FFX_FSR2_QUALITY_MODE_BALANCED = 2, ///< Perform upscaling with a per-dimension upscaling ratio of 1.7x.
FFX_FSR2_QUALITY_MODE_PERFORMANCE = 3, ///< Perform upscaling with a per-dimension upscaling ratio of 2.0x.
FFX_FSR2_QUALITY_MODE_ULTRA_PERFORMANCE = 4 ///< Perform upscaling with a per-dimension upscaling ratio of 3.0x.
} FfxFsr2QualityMode;
/// An enumeration of bit flags used when creating a
/// <c><i>FfxFsr2Context</i></c>. See <c><i>FfxFsr2ContextDescription</i></c>.
///
/// @ingroup FSR2
typedef enum FfxFsr2InitializationFlagBits {
FFX_FSR2_ENABLE_HIGH_DYNAMIC_RANGE = (1<<0), ///< A bit indicating if the input color data provided is using a high-dynamic range.
FFX_FSR2_ENABLE_DISPLAY_RESOLUTION_MOTION_VECTORS = (1<<1), ///< A bit indicating if the motion vectors are rendered at display resolution.
FFX_FSR2_ENABLE_MOTION_VECTORS_JITTER_CANCELLATION = (1<<2), ///< A bit indicating that the motion vectors have the jittering pattern applied to them.
FFX_FSR2_ENABLE_DEPTH_INVERTED = (1<<3), ///< A bit indicating that the input depth buffer data provided is inverted [1..0].
FFX_FSR2_ENABLE_DEPTH_INFINITE = (1<<4), ///< A bit indicating that the input depth buffer data provided is using an infinite far plane.
FFX_FSR2_ENABLE_AUTO_EXPOSURE = (1<<5), ///< A bit indicating if automatic exposure should be applied to input color data.
FFX_FSR2_ENABLE_DYNAMIC_RESOLUTION = (1<<6), ///< A bit indicating that the application uses dynamic resolution scaling.
FFX_FSR2_ENABLE_TEXTURE1D_USAGE = (1<<7), ///< A bit indicating that the backend should use 1D textures.
FFX_FSR2_ENABLE_DEBUG_CHECKING = (1<<8), ///< A bit indicating that the runtime should check some API values and report issues.
} FfxFsr2InitializationFlagBits;
/// A structure encapsulating the parameters required to initialize FidelityFX
/// Super Resolution 2 upscaling.
///
/// @ingroup FSR2
typedef struct FfxFsr2ContextDescription {
uint32_t flags; ///< A collection of <c><i>FfxFsr2InitializationFlagBits</i></c>.
FfxDimensions2D maxRenderSize; ///< The maximum size that rendering will be performed at.
FfxDimensions2D displaySize; ///< The size of the presentation resolution targeted by the upscaling process.
FfxFsr2Interface callbacks; ///< A set of pointers to the backend implementation for FSR 2.0.
FfxDevice device; ///< The abstracted device which is passed to some callback functions.
FfxFsr2Message fpMessage; ///< A pointer to a function that can recieve messages from the runtime.
} FfxFsr2ContextDescription;
/// A structure encapsulating the parameters for dispatching the various passes
/// of FidelityFX Super Resolution 2.
///
/// @ingroup FSR2
typedef struct FfxFsr2DispatchDescription {
FfxCommandList commandList; ///< The <c><i>FfxCommandList</i></c> to record FSR2 rendering commands into.
FfxResource color; ///< A <c><i>FfxResource</i></c> containing the color buffer for the current frame (at render resolution).
FfxResource depth; ///< A <c><i>FfxResource</i></c> containing 32bit depth values for the current frame (at render resolution).
FfxResource motionVectors; ///< A <c><i>FfxResource</i></c> containing 2-dimensional motion vectors (at render resolution if <c><i>FFX_FSR2_ENABLE_DISPLAY_RESOLUTION_MOTION_VECTORS</i></c> is not set).
FfxResource exposure; ///< A optional <c><i>FfxResource</i></c> containing a 1x1 exposure value.
FfxResource reactive; ///< A optional <c><i>FfxResource</i></c> containing alpha value of reactive objects in the scene.
FfxResource transparencyAndComposition; ///< A optional <c><i>FfxResource</i></c> containing alpha value of special objects in the scene.
FfxResource output; ///< A <c><i>FfxResource</i></c> containing the output color buffer for the current frame (at presentation resolution).
FfxFloatCoords2D jitterOffset; ///< The subpixel jitter offset applied to the camera.
FfxFloatCoords2D motionVectorScale; ///< The scale factor to apply to motion vectors.
FfxDimensions2D renderSize; ///< The resolution that was used for rendering the input resources.
bool enableSharpening; ///< Enable an additional sharpening pass.
float sharpness; ///< The sharpness value between 0 and 1, where 0 is no additional sharpness and 1 is maximum additional sharpness.
float frameTimeDelta; ///< The time elapsed since the last frame (expressed in milliseconds).
float preExposure; ///< The pre exposure value (must be > 0.0f)
bool reset; ///< A boolean value which when set to true, indicates the camera has moved discontinuously.
float cameraNear; ///< The distance to the near plane of the camera.
float cameraFar; ///< The distance to the far plane of the camera. This is used only used in case of non infinite depth.
float cameraFovAngleVertical; ///< The camera angle field of view in the vertical direction (expressed in radians).
float viewSpaceToMetersFactor; ///< The scale factor to convert view space units to meters
// EXPERIMENTAL reactive mask generation parameters
bool enableAutoReactive; ///< A boolean value to indicate internal reactive autogeneration should be used
FfxResource colorOpaqueOnly; ///< A <c><i>FfxResource</i></c> containing the opaque only color buffer for the current frame (at render resolution).
float autoTcThreshold; ///< Cutoff value for TC
float autoTcScale; ///< A value to scale the transparency and composition mask
float autoReactiveScale; ///< A value to scale the reactive mask
float autoReactiveMax; ///< A value to clamp the reactive mask
} FfxFsr2DispatchDescription;
/// A structure encapsulating the parameters for automatic generation of a reactive mask
///
/// @ingroup FSR2
typedef struct FfxFsr2GenerateReactiveDescription {
FfxCommandList commandList; ///< The <c><i>FfxCommandList</i></c> to record FSR2 rendering commands into.
FfxResource colorOpaqueOnly; ///< A <c><i>FfxResource</i></c> containing the opaque only color buffer for the current frame (at render resolution).
FfxResource colorPreUpscale; ///< A <c><i>FfxResource</i></c> containing the opaque+translucent color buffer for the current frame (at render resolution).
FfxResource outReactive; ///< A <c><i>FfxResource</i></c> containing the surface to generate the reactive mask into.
FfxDimensions2D renderSize; ///< The resolution that was used for rendering the input resources.
float scale; ///< A value to scale the output
float cutoffThreshold; ///< A threshold value to generate a binary reactive mask
float binaryValue; ///< A value to set for the binary reactive mask
uint32_t flags; ///< Flags to determine how to generate the reactive mask
} FfxFsr2GenerateReactiveDescription;
/// A structure encapsulating the FidelityFX Super Resolution 2 context.
///
/// This sets up an object which contains all persistent internal data and
/// resources that are required by FSR2.
///
/// The <c><i>FfxFsr2Context</i></c> object should have a lifetime matching
/// your use of FSR2. Before destroying the FSR2 context care should be taken
/// to ensure the GPU is not accessing the resources created or used by FSR2.
/// It is therefore recommended that the GPU is idle before destroying the
/// FSR2 context.
///
/// @ingroup FSR2
typedef struct FfxFsr2Context {
uint32_t data[FFX_FSR2_CONTEXT_SIZE]; ///< An opaque set of <c>uint32_t</c> which contain the data for the context.
} FfxFsr2Context;
/// Create a FidelityFX Super Resolution 2 context from the parameters
/// programmed to the <c><i>FfxFsr2CreateParams</i></c> structure.
///
/// The context structure is the main object used to interact with the FSR2
/// API, and is responsible for the management of the internal resources used
/// by the FSR2 algorithm. When this API is called, multiple calls will be
/// made via the pointers contained in the <c><i>callbacks</i></c> structure.
/// These callbacks will attempt to retreive the device capabilities, and
/// create the internal resources, and pipelines required by FSR2's
/// frame-to-frame function. Depending on the precise configuration used when
/// creating the <c><i>FfxFsr2Context</i></c> a different set of resources and
/// pipelines might be requested via the callback functions.
///
/// The flags included in the <c><i>flags</i></c> field of
/// <c><i>FfxFsr2Context</i></c> how match the configuration of your
/// application as well as the intended use of FSR2. It is important that these
/// flags are set correctly (as well as a correct programmed
/// <c><i>FfxFsr2DispatchDescription</i></c>) to ensure correct operation. It is
/// recommended to consult the overview documentation for further details on
/// how FSR2 should be integerated into an application.
///
/// When the <c><i>FfxFsr2Context</i></c> is created, you should use the
/// <c><i>ffxFsr2ContextDispatch</i></c> function each frame where FSR2
/// upscaling should be applied. See the documentation of
/// <c><i>ffxFsr2ContextDispatch</i></c> for more details.
///
/// The <c><i>FfxFsr2Context</i></c> should be destroyed when use of it is
/// completed, typically when an application is unloaded or FSR2 upscaling is
/// disabled by a user. To destroy the FSR2 context you should call
/// <c><i>ffxFsr2ContextDestroy</i></c>.
///
/// @param [out] context A pointer to a <c><i>FfxFsr2Context</i></c> structure to populate.
/// @param [in] contextDescription A pointer to a <c><i>FfxFsr2ContextDescription</i></c> structure.
///
/// @retval
/// FFX_OK The operation completed successfully.
/// @retval
/// FFX_ERROR_CODE_NULL_POINTER The operation failed because either <c><i>context</i></c> or <c><i>contextDescription</i></c> was <c><i>NULL</i></c>.
/// @retval
/// FFX_ERROR_INCOMPLETE_INTERFACE The operation failed because the <c><i>FfxFsr2ContextDescription.callbacks</i></c> was not fully specified.
/// @retval
/// FFX_ERROR_BACKEND_API_ERROR The operation failed because of an error returned from the backend.
///
/// @ingroup FSR2
FFX_API FfxErrorCode ffxFsr2ContextCreate(FfxFsr2Context* context, const FfxFsr2ContextDescription* contextDescription);
/// Dispatch the various passes that constitute FidelityFX Super Resolution 2.
///
/// FSR2 is a composite effect, meaning that it is compromised of multiple
/// constituent passes (implemented as one or more clears, copies and compute
/// dispatches). The <c><i>ffxFsr2ContextDispatch</i></c> function is the
/// function which (via the use of the functions contained in the
/// <c><i>callbacks</i></c> field of the <c><i>FfxFsr2Context</i></c>
/// structure) utlimately generates the sequence of graphics API calls required
/// each frame.
///
/// As with the creation of the <c><i>FfxFsr2Context</i></c> correctly
/// programming the <c><i>FfxFsr2DispatchDescription</i></c> is key to ensuring
/// the correct operation of FSR2. It is particularly important to ensure that
/// camera jitter is correctly applied to your application's projection matrix
/// (or camera origin for raytraced applications). FSR2 provides the
/// <c><i>ffxFsr2GetJitterPhaseCount</i></c> and
/// <c><i>ffxFsr2GetJitterOffset</i></c> entry points to help applications
/// correctly compute the camera jitter. Whatever jitter pattern is used by the
/// application it should be correctly programmed to the
/// <c><i>jitterOffset</i></c> field of the <c><i>dispatchDescription</i></c>
/// structure. For more guidance on camera jitter please consult the
/// documentation for <c><i>ffxFsr2GetJitterOffset</i></c> as well as the
/// accompanying overview documentation for FSR2.
///
/// @param [in] context A pointer to a <c><i>FfxFsr2Context</i></c> structure.
/// @param [in] dispatchDescription A pointer to a <c><i>FfxFsr2DispatchDescription</i></c> structure.
///
/// @retval
/// FFX_OK The operation completed successfully.
/// @retval
/// FFX_ERROR_CODE_NULL_POINTER The operation failed because either <c><i>context</i></c> or <c><i>dispatchDescription</i></c> was <c><i>NULL</i></c>.
/// @retval
/// FFX_ERROR_OUT_OF_RANGE The operation failed because <c><i>dispatchDescription.renderSize</i></c> was larger than the maximum render resolution.
/// @retval
/// FFX_ERROR_NULL_DEVICE The operation failed because the device inside the context was <c><i>NULL</i></c>.
/// @retval
/// FFX_ERROR_BACKEND_API_ERROR The operation failed because of an error returned from the backend.
///
/// @ingroup FSR2
FFX_API FfxErrorCode ffxFsr2ContextDispatch(FfxFsr2Context* context, const FfxFsr2DispatchDescription* dispatchDescription);
/// A helper function generate a Reactive mask from an opaque only texure and one containing translucent objects.
///
/// @param [in] context A pointer to a <c><i>FfxFsr2Context</i></c> structure.
/// @param [in] params A pointer to a <c><i>FfxFsr2GenerateReactiveDescription</i></c> structure
///
/// @retval
/// FFX_OK The operation completed successfully.
///
/// @ingroup FSR2
FFX_API FfxErrorCode ffxFsr2ContextGenerateReactiveMask(FfxFsr2Context* context, const FfxFsr2GenerateReactiveDescription* params);
/// Destroy the FidelityFX Super Resolution context.
///
/// @param [out] context A pointer to a <c><i>FfxFsr2Context</i></c> structure to destroy.
///
/// @retval
/// FFX_OK The operation completed successfully.
/// @retval
/// FFX_ERROR_CODE_NULL_POINTER The operation failed because either <c><i>context</i></c> was <c><i>NULL</i></c>.
///
/// @ingroup FSR2
FFX_API FfxErrorCode ffxFsr2ContextDestroy(FfxFsr2Context* context);
/// Get the upscale ratio from the quality mode.
///
/// The following table enumerates the mapping of the quality modes to
/// per-dimension scaling ratios.
///
/// Quality preset | Scale factor
/// ----------------------------------------------------- | -------------
/// <c><i>FFX_FSR2_QUALITY_MODE_QUALITY</i></c> | 1.5x
/// <c><i>FFX_FSR2_QUALITY_MODE_BALANCED</i></c> | 1.7x
/// <c><i>FFX_FSR2_QUALITY_MODE_PERFORMANCE</i></c> | 2.0x
/// <c><i>FFX_FSR2_QUALITY_MODE_ULTRA_PERFORMANCE</i></c> | 3.0x
///
/// Passing an invalid <c><i>qualityMode</i></c> will return 0.0f.
///
/// @param [in] qualityMode The quality mode preset.
///
/// @returns
/// The upscaling the per-dimension upscaling ratio for
/// <c><i>qualityMode</i></c> according to the table above.
///
/// @ingroup FSR2
FFX_API float ffxFsr2GetUpscaleRatioFromQualityMode(FfxFsr2QualityMode qualityMode);
/// A helper function to calculate the rendering resolution from a target
/// resolution and desired quality level.
///
/// This function applies the scaling factor returned by
/// <c><i>ffxFsr2GetUpscaleRatioFromQualityMode</i></c> to each dimension.
///
/// @param [out] renderWidth A pointer to a <c>uint32_t</c> which will hold the calculated render resolution width.
/// @param [out] renderHeight A pointer to a <c>uint32_t</c> which will hold the calculated render resolution height.
/// @param [in] displayWidth The target display resolution width.
/// @param [in] displayHeight The target display resolution height.
/// @param [in] qualityMode The desired quality mode for FSR 2 upscaling.
///
/// @retval
/// FFX_OK The operation completed successfully.
/// @retval
/// FFX_ERROR_INVALID_POINTER Either <c><i>renderWidth</i></c> or <c><i>renderHeight</i></c> was <c>NULL</c>.
/// @retval
/// FFX_ERROR_INVALID_ENUM An invalid quality mode was specified.
///
/// @ingroup FSR2
FFX_API FfxErrorCode ffxFsr2GetRenderResolutionFromQualityMode(
uint32_t* renderWidth,
uint32_t* renderHeight,
uint32_t displayWidth,
uint32_t displayHeight,
FfxFsr2QualityMode qualityMode);
/// A helper function to calculate the jitter phase count from display
/// resolution.
///
/// For more detailed information about the application of camera jitter to
/// your application's rendering please refer to the
/// <c><i>ffxFsr2GetJitterOffset</i></c> function.
///
/// The table below shows the jitter phase count which this function
/// would return for each of the quality presets.
///
/// Quality preset | Scale factor | Phase count
/// ----------------------------------------------------- | ------------- | ---------------
/// <c><i>FFX_FSR2_QUALITY_MODE_QUALITY</i></c> | 1.5x | 18
/// <c><i>FFX_FSR2_QUALITY_MODE_BALANCED</i></c> | 1.7x | 23
/// <c><i>FFX_FSR2_QUALITY_MODE_PERFORMANCE</i></c> | 2.0x | 32
/// <c><i>FFX_FSR2_QUALITY_MODE_ULTRA_PERFORMANCE</i></c> | 3.0x | 72
/// Custom | [1..n]x | ceil(8*n^2)
///
/// @param [in] renderWidth The render resolution width.
/// @param [in] displayWidth The display resolution width.
///
/// @returns
/// The jitter phase count for the scaling factor between <c><i>renderWidth</i></c> and <c><i>displayWidth</i></c>.
///
/// @ingroup FSR2
FFX_API int32_t ffxFsr2GetJitterPhaseCount(int32_t renderWidth, int32_t displayWidth);
/// A helper function to calculate the subpixel jitter offset.
///
/// FSR2 relies on the application to apply sub-pixel jittering while rendering.
/// This is typically included in the projection matrix of the camera. To make
/// the application of camera jitter simple, the FSR2 API provides a small set
/// of utility function which computes the sub-pixel jitter offset for a
/// particular frame within a sequence of separate jitter offsets. To begin, the
/// index within the jitter phase must be computed. To calculate the
/// sequence's length, you can call the <c><i>ffxFsr2GetJitterPhaseCount</i></c>
/// function. The index should be a value which is incremented each frame modulo
/// the length of the sequence computed by <c><i>ffxFsr2GetJitterPhaseCount</i></c>.
/// The index within the jitter phase is passed to
/// <c><i>ffxFsr2GetJitterOffset</i></c> via the <c><i>index</i></c> parameter.
///
/// This function uses a Halton(2,3) sequence to compute the jitter offset.
/// The ultimate index used for the sequence is <c><i>index</i></c> %
/// <c><i>phaseCount</i></c>.
///
/// It is important to understand that the values returned from the
/// <c><i>ffxFsr2GetJitterOffset</i></c> function are in unit pixel space, and
/// in order to composite this correctly into a projection matrix we must
/// convert them into projection offsets. This is done as per the pseudo code
/// listing which is shown below.
///
/// const int32_t jitterPhaseCount = ffxFsr2GetJitterPhaseCount(renderWidth, displayWidth);
///
/// float jitterX = 0;
/// float jitterY = 0;
/// ffxFsr2GetJitterOffset(&jitterX, &jitterY, index, jitterPhaseCount);
///
/// const float jitterX = 2.0f * jitterX / (float)renderWidth;
/// const float jitterY = -2.0f * jitterY / (float)renderHeight;
/// const Matrix4 jitterTranslationMatrix = translateMatrix(Matrix3::identity, Vector3(jitterX, jitterY, 0));
/// const Matrix4 jitteredProjectionMatrix = jitterTranslationMatrix * projectionMatrix;
///
/// Jitter should be applied to all rendering. This includes opaque, alpha
/// transparent, and raytraced objects. For rasterized objects, the sub-pixel
/// jittering values calculated by the <c><i>iffxFsr2GetJitterOffset</i></c>
/// function can be applied to the camera projection matrix which is ultimately
/// used to perform transformations during vertex shading. For raytraced
/// rendering, the sub-pixel jitter should be applied to the ray's origin,
/// often the camera's position.
///
/// Whether you elect to use the <c><i>ffxFsr2GetJitterOffset</i></c> function
/// or your own sequence generator, you must program the
/// <c><i>jitterOffset</i></c> field of the
/// <c><i>FfxFsr2DispatchParameters</i></c> structure in order to inform FSR2
/// of the jitter offset that has been applied in order to render each frame.
///
/// If not using the recommended <c><i>ffxFsr2GetJitterOffset</i></c> function,
/// care should be taken that your jitter sequence never generates a null vector;
/// that is value of 0 in both the X and Y dimensions.
///
/// @param [out] outX A pointer to a <c>float</c> which will contain the subpixel jitter offset for the x dimension.
/// @param [out] outY A pointer to a <c>float</c> which will contain the subpixel jitter offset for the y dimension.
/// @param [in] index The index within the jitter sequence.
/// @param [in] phaseCount The length of jitter phase. See <c><i>ffxFsr2GetJitterPhaseCount</i></c>.
///
/// @retval
/// FFX_OK The operation completed successfully.
/// @retval
/// FFX_ERROR_INVALID_POINTER Either <c><i>outX</i></c> or <c><i>outY</i></c> was <c>NULL</c>.
/// @retval
/// FFX_ERROR_INVALID_ARGUMENT Argument <c><i>phaseCount</i></c> must be greater than 0.
///
/// @ingroup FSR2
FFX_API FfxErrorCode ffxFsr2GetJitterOffset(float* outX, float* outY, int32_t index, int32_t phaseCount);
/// A helper function to check if a resource is
/// <c><i>FFX_FSR2_RESOURCE_IDENTIFIER_NULL</i></c>.
///
/// @param [in] resource A <c><i>FfxResource</i></c>.
///
/// @returns
/// true The <c><i>resource</i></c> was not <c><i>FFX_FSR2_RESOURCE_IDENTIFIER_NULL</i></c>.
/// @returns
/// false The <c><i>resource</i></c> was <c><i>FFX_FSR2_RESOURCE_IDENTIFIER_NULL</i></c>.
///
/// @ingroup FSR2
FFX_API bool ffxFsr2ResourceIsNull(FfxResource resource);
#if defined(__cplusplus)
}
#endif // #if defined(__cplusplus)
================================================
FILE: External/FSR2/Include/ffx_fsr2_interface.h
================================================
// This file is part of the FidelityFX SDK.
//
// Copyright (c) 2022-2023 Advanced Micro Devices, Inc. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
#pragma once
#include "ffx_assert.h"
#include "ffx_types.h"
#include "ffx_error.h"
// Include the FSR2 resources defined in the HLSL code. This shared here to avoid getting out of sync.
#define FFX_CPU
#include "shaders/ffx_fsr2_resources.h"
#include "shaders/ffx_fsr2_common.h"
#if defined(__cplusplus)
extern "C" {
#endif // #if defined(__cplusplus)
FFX_FORWARD_DECLARE(FfxFsr2Interface);
/// An enumeration of all the passes which constitute the FSR2 algorithm.
///
/// FSR2 is implemented as a composite of several compute passes each
/// computing a key part of the final result. Each call to the
/// <c><i>FfxFsr2ScheduleGpuJobFunc</i></c> callback function will
/// correspond to a single pass included in <c><i>FfxFsr2Pass</i></c>. For a
/// more comprehensive description of each pass, please refer to the FSR2
/// reference documentation.
///
/// Please note in some cases e.g.: <c><i>FFX_FSR2_PASS_ACCUMULATE</i></c>
/// and <c><i>FFX_FSR2_PASS_ACCUMULATE_SHARPEN</i></c> either one pass or the
/// other will be used (they are mutually exclusive). The choice of which will
/// depend on the way the <c><i>FfxFsr2Context</i></c> is created and the
/// precise contents of <c><i>FfxFsr2DispatchParamters</i></c> each time a call
/// is made to <c><i>ffxFsr2ContextDispatch</i></c>.
///
/// @ingroup FSR2
typedef enum FfxFsr2Pass {
FFX_FSR2_PASS_DEPTH_CLIP = 0, ///< A pass which performs depth clipping.
FFX_FSR2_PASS_RECONSTRUCT_PREVIOUS_DEPTH = 1, ///< A pass which performs reconstruction of previous frame's depth.
FFX_FSR2_PASS_LOCK = 2, ///< A pass which calculates pixel locks.
FFX_FSR2_PASS_ACCUMULATE = 3, ///< A pass which performs upscaling.
FFX_FSR2_PASS_ACCUMULATE_SHARPEN = 4, ///< A pass which performs upscaling when sharpening is used.
FFX_FSR2_PASS_RCAS = 5, ///< A pass which performs sharpening.
FFX_FSR2_PASS_COMPUTE_LUMINANCE_PYRAMID = 6, ///< A pass which generates the luminance mipmap chain for the current frame.
FFX_FSR2_PASS_GENERATE_REACTIVE = 7, ///< An optional pass to generate a reactive mask
FFX_FSR2_PASS_TCR_AUTOGENERATE = 8, ///< An optional pass to generate a texture-and-composition and reactive masks
FFX_FSR2_PASS_COUNT ///< The number of passes performed by FSR2.
} FfxFsr2Pass;
typedef enum FfxFsr2MsgType {
FFX_FSR2_MESSAGE_TYPE_ERROR = 0,
FFX_FSR2_MESSAGE_TYPE_WARNING = 1,
FFX_FSR2_MESSAGE_TYPE_COUNT
} FfxFsr2MsgType;
/// Create and initialize the backend context.
///
/// The callback function sets up the backend context for rendering.
/// It will create or reference the device and create required internal data structures.
///
/// @param [in] backendInterface A pointer to the backend interface.
/// @param [in] device The FfxDevice obtained by ffxGetDevice(DX12/VK/...).
///
/// @retval
/// FFX_OK The operation completed successfully.
/// @retval
/// Anything else The operation failed.
///
/// @ingroup FSR2
typedef FfxErrorCode (*FfxFsr2CreateBackendContextFunc)(
FfxFsr2Interface* backendInterface,
FfxDevice device);
/// Get a list of capabilities of the device.
///
/// When creating an <c><i>FfxFsr2Context</i></c> it is desirable for the FSR2
/// core implementation to be aware of certain characteristics of the platform
/// that is being targetted. This is because some optimizations which FSR2
/// attempts to perform are more effective on certain classes of hardware than
/// others, or are not supported by older hardware. In order to avoid cases
/// where optimizations actually have the effect of decreasing performance, or
/// reduce the breadth of support provided by FSR2, FSR2 queries the
/// capabilities of the device to make such decisions.
///
/// For target platforms with fixed hardware support you need not implement
/// this callback function by querying the device, but instead may hardcore
/// what features are available on the platform.
///
/// @param [in] backendInterface A pointer to the backend interface.
/// @param [out] outDeviceCapabilities The device capabilities structure to fill out.
/// @param [in] device The device to query for capabilities.
///
/// @retval
/// FFX_OK The operation completed successfully.
/// @retval
/// Anything else The operation failed.
///
/// @ingroup FSR2
typedef FfxErrorCode(*FfxFsr2GetDeviceCapabilitiesFunc)(
FfxFsr2Interface* backendInterface,
FfxDeviceCapabilities* outDeviceCapabilities,
FfxDevice device);
/// Destroy the backend context and dereference the device.
///
/// This function is called when the <c><i>FfxFsr2Context</i></c> is destroyed.
///
/// @param [in] backendInterface A pointer to the backend interface.
///
/// @retval
/// FFX_OK The operation completed successfully.
/// @retval
/// Anything else The operation failed.
///
/// @ingroup FSR2
typedef FfxErrorCode(*FfxFsr2DestroyBackendContextFunc)(
FfxFsr2Interface* backendInterface);
/// Create a resource.
///
/// This callback is intended for the backend to create internal resources.
///
/// Please note: It is also possible that the creation of resources might
/// itself cause additional resources to be created by simply calling the
/// <c><i>FfxFsr2CreateResourceFunc</i></c> function pointer again. This is
/// useful when handling the initial creation of resources which must be
/// initialized. The flow in such a case would be an initial call to create the
/// CPU-side resource, another to create the GPU-side resource, and then a call
/// to schedule a copy render job to move the data between the two. Typically
/// this type of function call flow is only seen during the creation of an
/// <c><i>FfxFsr2Context</i></c>.
///
/// @param [in] backendInterface A pointer to the backend interface.
/// @param [in] createResourceDescription A pointer to a <c><i>FfxCreateResourceDescription</i></c>.
/// @param [out] outResource A pointer to a <c><i>FfxResource</i></c> object.
///
/// @retval
/// FFX_OK The operation completed successfully.
/// @retval
/// Anything else The operation failed.
///
/// @ingroup FSR2
typedef FfxErrorCode (*FfxFsr2CreateResourceFunc)(
FfxFsr2Interface* backendInterface,
const FfxCreateResourceDescription* createResourceDescription,
FfxResourceInternal* outResource);
/// Register a resource in the backend for the current frame.
///
/// Since FSR2 and the backend are not aware how many different
/// resources will get passed to FSR2 over time, it's not safe
/// to register all resources simultaneously in the backend.
/// Also passed resources may not be valid after the dispatch call.
/// As a result it's safest to register them as FfxResourceInternal
/// and clear them at the end of the dispatch call.
///
/// @param [in] backendInterface A pointer to the backend interface.
/// @param [in] inResource A pointer to a <c><i>FfxResource</i></c>.
/// @param [out] outResource A pointer to a <c><i>FfxResourceInternal</i></c> object.
///
/// @retval
/// FFX_OK The operation completed successfully.
/// @retval
/// Anything else The operation failed.
///
/// @ingroup FSR2
typedef FfxErrorCode(*FfxFsr2RegisterResourceFunc)(
FfxFsr2Interface* backendInterface,
const FfxResource* inResource,
FfxResourceInternal* outResource);
/// Unregister all temporary FfxResourceInternal from the backend.
///
/// Unregister FfxResourceInternal referencing resources passed to
/// a function as a parameter.
///
/// @param [in] backendInterface A pointer to the backend interface.
///
/// @retval
/// FFX_OK The operation completed successfully.
/// @retval
/// Anything else The operation failed.
///
/// @ingroup FSR2
typedef FfxErrorCode(*FfxFsr2UnregisterResourcesFunc)(
FfxFsr2Interface* backendInterface);
/// Retrieve a <c><i>FfxResourceDescription</i></c> matching a
/// <c><i>FfxResource</i></c> structure.
///
/// @param [in] backendInterface A pointer to the backend interface.
/// @param [in] resource A pointer to a <c><i>FfxResource</i></c> object.
///
/// @returns
/// A description of the resource.
///
/// @ingroup FSR2
typedef FfxResourceDescription (*FfxFsr2GetResourceDescriptionFunc)(
FfxFsr2Interface* backendInterface,
FfxResourceInternal resource);
/// Destroy a resource
///
/// This callback is intended for the backend to release an internal resource.
///
/// @param [in] backendInterface A pointer to the backend interface.
/// @param [in] resource A pointer to a <c><i>FfxResource</i></c> object.
///
/// @retval
/// FFX_OK The operation completed successfully.
/// @retval
/// Anything else The operation failed.
///
/// @ingroup FSR2
typedef FfxErrorCode (*FfxFsr2DestroyResourceFunc)(
FfxFsr2Interface* backendInterface,
FfxResourceInternal resource);
/// Create a render pipeline.
///
/// A rendering pipeline contains the shader as well as resource bindpoints
/// and samplers.
///
/// @param [in] backendInterface A pointer to the backend interface.
/// @param [in] pass The identifier for the pass.
/// @param [in] pipelineDescription A pointer to a <c><i>FfxPipelineDescription</i></c> describing the pipeline to be created.
/// @param [out] outPipeline A pointer to a <c><i>FfxPipelineState</i></c> structure which should be populated.
///
/// @retval
/// FFX_OK The operation completed successfully.
/// @retval
/// Anything else The operation failed.
///
/// @ingroup FSR2
typedef FfxErrorCode (*FfxFsr2CreatePipelineFunc)(
FfxFsr2Interface* backendInterface,
FfxFsr2Pass pass,
const FfxPipelineDescription* pipelineDescription,
FfxPipelineState* outPipeline);
/// Destroy a render pipeline.
///
/// @param [in] backendInterface A pointer to the backend interface.
/// @param [out] pipeline A pointer to a <c><i>FfxPipelineState</i></c> structure which should be released.
///
/// @retval
/// FFX_OK The operation completed successfully.
/// @retval
/// Anything else The operation failed.
///
/// @ingroup FSR2
typedef FfxErrorCode (*FfxFsr2DestroyPipelineFunc)(
FfxFsr2Interface* backendInterface,
FfxPipelineState* pipeline);
/// Schedule a render job to be executed on the next call of
/// <c><i>FfxFsr2ExecuteGpuJobsFunc</i></c>.
///
/// Render jobs can perform one of three different tasks: clear, copy or
/// compute dispatches.
///
/// @param [in] backendInterface A pointer to the backend interface.
/// @param [in] job A pointer to a <c><i>FfxGpuJobDescription</i></c> structure.
///
/// @retval
/// FFX_OK The operation completed successfully.
/// @retval
/// Anything else The operation failed.
///
/// @ingroup FSR2
typedef FfxErrorCode (*FfxFsr2ScheduleGpuJobFunc)(
FfxFsr2Interface* backendInterface,
const FfxGpuJobDescription* job);
/// Execute scheduled render jobs on the <c><i>comandList</i></c> provided.
///
/// The recording of the graphics API commands should take place in this
/// callback function, the render jobs which were previously enqueued (via
/// callbacks made to <c><i>FfxFsr2ScheduleGpuJobFunc</i></c>) should be
/// processed in the order they were received. Advanced users might choose to
/// reorder the rendering jobs, but should do so with care to respect the
/// resource dependencies.
///
/// Depending on the precise contents of <c><i>FfxFsr2DispatchDescription</i></c> a
/// different number of render jobs might have previously been enqueued (for
/// example if sharpening is toggled on and off).
///
/// @param [in] backendInterface A pointer to the backend interface.
/// @param [in] commandList A pointer to a <c><i>FfxCommandList</i></c> structure.
///
/// @retval
/// FFX_OK The operation completed successfully.
/// @retval
/// Anything else The operation failed.
///
/// @ingroup FSR2
typedef FfxErrorCode (*FfxFsr2ExecuteGpuJobsFunc)(
FfxFsr2Interface* backendInterface,
FfxCommandList commandList);
/// Pass a string message
///
/// Used for debug messages.
///
/// @param [in] type The type of message.
/// @param [in] message A string message to pass.
///
///
/// @ingroup FSR2
typedef void(*FfxFsr2Message)(
FfxFsr2MsgType type,
const wchar_t* message);
/// A structure encapsulating the interface between the core implentation of
/// the FSR2 algorithm and any graphics API that it should ultimately call.
///
/// This set of functions serves as an abstraction layer between FSR2 and the
/// API used to implement it. While FSR2 ships with backends for DirectX12 and
/// Vulkan, it is possible to implement your own backend for other platforms or
/// which sits ontop of your engine's own abstraction layer. For details on the
/// expectations of what each function should do you should refer the
/// description of the following function pointer types:
///
/// <c><i>FfxFsr2CreateDeviceFunc</i></c>
/// <c><i>FfxFsr2GetDeviceCapabilitiesFunc</i></c>
/// <c><i>FfxFsr2DestroyDeviceFunc</i></c>
/// <c><i>FfxFsr2CreateResourceFunc</i></c>
/// <c><i>FfxFsr2GetResourceDescriptionFunc</i></c>
/// <c><i>FfxFsr2DestroyResourceFunc</i></c>
/// <c><i>FfxFsr2CreatePipelineFunc</i></c>
/// <c><i>FfxFsr2DestroyPipelineFunc</i></c>
/// <c><i>FfxFsr2ScheduleGpuJobFunc</i></c>
/// <c><i>FfxFsr2ExecuteGpuJobsFunc</i></c>
///
/// Depending on the graphics API that is abstracted by the backend, it may be
/// required that the backend is to some extent stateful. To ensure that
/// applications retain full control to manage the memory used by FSR2, the
/// <c><i>scratchBuffer</i></c> and <c><i>scratchBufferSize</i></c> fields are
/// provided. A backend should provide a means of specifying how much scratch
/// memory is required for its internal implementation (e.g: via a function
/// or constant value). The application is that responsible for allocating that
/// memory and providing it when setting up the FSR2 backend. Backends provided
/// with FSR2 do not perform dynamic memory allocations, and instead
/// suballocate all memory from the scratch buffers provided.
///
/// The <c><i>scratchBuffer</i></c> and <c><i>scratchBufferSize</i></c> fields
/// should be populated according to the requirements of each backend. For
/// example, if using the DirectX 12 backend you should call the
/// <c><i>ffxFsr2GetScratchMemorySizeDX12</i></c> function. It is not required
/// that custom backend implementations use a scratch buffer.
///
/// @ingroup FSR2
typedef struct FfxFsr2Interface {
FfxFsr2CreateBackendContextFunc fpCreateBackendContext; ///< A callback function to create and initialize the backend context.
FfxFsr2GetDeviceCapabilitiesFunc fpGetDeviceCapabilities; ///< A callback function to query device capabilites.
FfxFsr2DestroyBackendContextFunc fpDestroyBackendContext; ///< A callback function to destroy the backendcontext. This also dereferences the device.
FfxFsr2CreateResourceFunc fpCreateResource; ///< A callback function to create a resource.
FfxFsr2RegisterResourceFunc fpRegisterResource; ///< A callback function to register an external resource.
FfxFsr2UnregisterResourcesFunc fpUnregisterResources; ///< A callback function to unregister external resource.
FfxFsr2GetResourceDescriptionFunc fpGetResourceDescription; ///< A callback function to retrieve a resource description.
FfxFsr2DestroyResourceFunc fpDestroyResource; ///< A callback function to destroy a resource.
FfxFsr2CreatePipelineFunc fpCreatePipeline; ///< A callback function to create a render or compute pipeline.
FfxFsr2DestroyPipelineFunc fpDestroyPipeline; ///< A callback function to destroy a render or compute pipeline.
FfxFsr2ScheduleGpuJobFunc fpScheduleGpuJob; ///< A callback function to schedule a render job.
FfxFsr2ExecuteGpuJobsFunc fpExecuteGpuJobs; ///< A callback function to execute all queued render jobs.
void* scratchBuffer; ///< A preallocated buffer for memory utilized internally by the backend.
size_t scratchBufferSize; ///< Size of the buffer pointed to by <c><i>scratchBuffer</i></c>.
} FfxFsr2Interface;
#if defined(__cplusplus)
}
#endif // #if defined(__cplusplus)
================================================
FILE: External/FSR2/Include/ffx_types.h
================================================
// This file is part of the FidelityFX SDK.
//
// Copyright (c) 2022-2023 Advanced Micro Devices, Inc. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
#pragma once
#include <stdint.h>
#if defined (FFX_GCC)
/// FidelityFX exported functions
#define FFX_API
#else
/// FidelityFX exported functions
#define FFX_API __declspec(dllexport)
#endif // #if defined (FFX_GCC)
/// Maximum supported number of simultaneously bound SRVs.
#define FFX_MAX_NUM_SRVS 16
/// Maximum supported number of simultaneously bound UAVs.
#define FFX_MAX_NUM_UAVS 8
/// Maximum number of constant buffers bound.
#define FFX_MAX_NUM_CONST_BUFFERS 2
/// Maximum size of bound constant buffers.
#define FFX_MAX_CONST_SIZE 64
/// Off by defau
gitextract_aors0i3m/
├── .gitattributes
├── .github/
│ └── workflows/
│ └── build.yml
├── .gitignore
├── Assets/
│ ├── CornellBox/
│ │ ├── compressed/
│ │ │ └── checkerboard.dds
│ │ ├── cornell.gltf
│ │ ├── cornell_emissive.gltf
│ │ └── license.txt
│ ├── Font/
│ │ ├── Font.h
│ │ ├── IconsFontAwesome6.h
│ │ └── LICENSE-bfont.ttf.txt
│ └── LUT/
│ ├── LICENSE-MIT
│ ├── rho.dds
│ └── tony_mc_mapface.dds
├── CMake/
│ ├── CompileHLSL.cmake
│ ├── Copy.cmake
│ ├── SetBuildConfigurations.cmake
│ ├── SetupAgilitySDK.cmake
│ ├── SetupDXC.cmake
│ ├── SetupDoctest.cmake
│ ├── SetupImGui.cmake
│ ├── SetupWinPIX.cmake
│ ├── Setupcgltf.cmake
│ └── SetupxxHash.cmake
├── CMakeLists.txt
├── External/
│ ├── FSR2/
│ │ └── Include/
│ │ ├── dx12/
│ │ │ └── shaders/
│ │ │ └── ffx_fsr2_shaders_dx12.h
│ │ ├── ffx_assert.h
│ │ ├── ffx_error.h
│ │ ├── ffx_fsr2.h
│ │ ├── ffx_fsr2_interface.h
│ │ ├── ffx_types.h
│ │ ├── ffx_util.h
│ │ └── shaders/
│ │ ├── ffx_fsr2_common.h
│ │ └── ffx_fsr2_resources.h
│ ├── FastDelegate/
│ │ ├── FastDelegate.h
│ │ └── FastDelegateBind.h
│ ├── ImGui/
│ │ ├── ImGuizmo.cpp
│ │ ├── ImGuizmo.h
│ │ └── imconfig.h
│ ├── concurrentqueue/
│ │ ├── blockingconcurrentqueue.h
│ │ ├── concurrentqueue.h
│ │ └── lightweightsemaphore.h
│ └── stb/
│ ├── stb_image.h
│ ├── stb_image_write.h
│ └── stb_sprintf.h
├── LICENSE
├── README.md
├── Source/
│ ├── CMakeLists.txt
│ ├── ZetaCore/
│ │ ├── App/
│ │ │ ├── App.h
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Common.h
│ │ │ ├── Filesystem.h
│ │ │ ├── Log.h
│ │ │ ├── Path.h
│ │ │ ├── Timer.h
│ │ │ └── ZetaRay.h
│ │ ├── CMakeLists.txt
│ │ ├── Core/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── CommandList.cpp
│ │ │ ├── CommandList.h
│ │ │ ├── CommandQueue.cpp
│ │ │ ├── CommandQueue.h
│ │ │ ├── Config.h
│ │ │ ├── DescriptorHeap.cpp
│ │ │ ├── DescriptorHeap.h
│ │ │ ├── Device.cpp
│ │ │ ├── Device.h
│ │ │ ├── Direct3DUtil.cpp
│ │ │ ├── Direct3DUtil.h
│ │ │ ├── GpuMemory.cpp
│ │ │ ├── GpuMemory.h
│ │ │ ├── GpuTimer.cpp
│ │ │ ├── GpuTimer.h
│ │ │ ├── HLSLCompat.h
│ │ │ ├── Material.h
│ │ │ ├── PipelineStateLibrary.cpp
│ │ │ ├── PipelineStateLibrary.h
│ │ │ ├── RenderGraph.cpp
│ │ │ ├── RenderGraph.h
│ │ │ ├── RendererCore.cpp
│ │ │ ├── RendererCore.h
│ │ │ ├── RootSignature.cpp
│ │ │ ├── RootSignature.h
│ │ │ ├── SharedShaderResources.cpp
│ │ │ ├── SharedShaderResources.h
│ │ │ ├── Vertex.h
│ │ │ └── dds.h
│ │ ├── Math/
│ │ │ ├── BVH.cpp
│ │ │ ├── BVH.h
│ │ │ ├── CMakeLists.txt
│ │ │ ├── CollisionFuncs.h
│ │ │ ├── CollisionTypes.h
│ │ │ ├── Color.cpp
│ │ │ ├── Color.h
│ │ │ ├── Common.cpp
│ │ │ ├── Common.h
│ │ │ ├── Matrix.h
│ │ │ ├── MatrixFuncs.h
│ │ │ ├── OctahedralVector.h
│ │ │ ├── Quaternion.h
│ │ │ ├── Sampling.cpp
│ │ │ ├── Sampling.h
│ │ │ ├── Surface.cpp
│ │ │ ├── Surface.h
│ │ │ ├── Vector.h
│ │ │ └── VectorFuncs.h
│ │ ├── Model/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Mesh.cpp
│ │ │ ├── Mesh.h
│ │ │ ├── glTF.cpp
│ │ │ ├── glTF.h
│ │ │ └── glTFAsset.h
│ │ ├── RayTracing/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── RtAccelerationStructure.cpp
│ │ │ ├── RtAccelerationStructure.h
│ │ │ └── RtCommon.h
│ │ ├── Scene/
│ │ │ ├── Asset.cpp
│ │ │ ├── Asset.h
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Camera.cpp
│ │ │ ├── Camera.h
│ │ │ ├── SceneCommon.h
│ │ │ ├── SceneCore.cpp
│ │ │ ├── SceneCore.h
│ │ │ └── SceneRenderer.h
│ │ ├── Support/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── FrameMemory.h
│ │ │ ├── Memory.h
│ │ │ ├── MemoryArena.cpp
│ │ │ ├── MemoryArena.h
│ │ │ ├── MemoryPool.cpp
│ │ │ ├── MemoryPool.h
│ │ │ ├── OffsetAllocator.cpp
│ │ │ ├── OffsetAllocator.h
│ │ │ ├── Param.cpp
│ │ │ ├── Param.h
│ │ │ ├── Stat.h
│ │ │ ├── Task.cpp
│ │ │ ├── Task.h
│ │ │ ├── ThreadPool.cpp
│ │ │ └── ThreadPool.h
│ │ ├── Utility/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Error.cpp
│ │ │ ├── Error.h
│ │ │ ├── Function.h
│ │ │ ├── HashTable.h
│ │ │ ├── Optional.h
│ │ │ ├── RNG.h
│ │ │ ├── SmallVector.h
│ │ │ ├── Span.h
│ │ │ ├── SynchronizedView.h
│ │ │ └── Utility.h
│ │ └── Win32/
│ │ ├── CMakeLists.txt
│ │ ├── Win32.h
│ │ ├── Win32App.cpp
│ │ ├── Win32Common.cpp
│ │ ├── Win32Filesystem.cpp
│ │ └── Win32Timer.cpp
│ ├── ZetaLab/
│ │ ├── CMakeLists.txt
│ │ └── ZetaLab.cpp
│ ├── ZetaRenderPass/
│ │ ├── AutoExposure/
│ │ │ ├── AutoExposure.cpp
│ │ │ ├── AutoExposure.h
│ │ │ ├── AutoExposure_Common.h
│ │ │ ├── AutoExposure_Histogram.hlsl
│ │ │ ├── AutoExposure_WeightedAvg.hlsl
│ │ │ └── CMakeLists.txt
│ │ ├── CMakeLists.txt
│ │ ├── Common/
│ │ │ ├── BSDF.hlsli
│ │ │ ├── BSDFSampling.hlsli
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Common.hlsli
│ │ │ ├── FrameConstants.h
│ │ │ ├── GBuffers.hlsli
│ │ │ ├── LightSource.hlsli
│ │ │ ├── LightVoxelGrid.hlsli
│ │ │ ├── Math.hlsli
│ │ │ ├── RT.hlsli
│ │ │ ├── RayQuery.hlsli
│ │ │ ├── SH.hlsli
│ │ │ ├── Sampling.hlsli
│ │ │ ├── StaticTextureSamplers.hlsli
│ │ │ └── Volumetric.hlsli
│ │ ├── Compositing/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Compositing.cpp
│ │ │ ├── Compositing.h
│ │ │ ├── Compositing.hlsl
│ │ │ ├── Compositing_Common.h
│ │ │ └── FireflyFilter.hlsl
│ │ ├── DirectLighting/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Emissive/
│ │ │ │ ├── DirectLighting.cpp
│ │ │ │ ├── DirectLighting.h
│ │ │ │ ├── DirectLighting_Common.h
│ │ │ │ ├── PairwiseMIS.hlsli
│ │ │ │ ├── Params.hlsli
│ │ │ │ ├── ReSTIR_DI_Spatial.hlsl
│ │ │ │ ├── ReSTIR_DI_Temporal.hlsl
│ │ │ │ ├── ReSTIR_DI_Temporal_WPS.hlsl
│ │ │ │ ├── Resampling.hlsli
│ │ │ │ ├── Reservoir.hlsli
│ │ │ │ └── Util.hlsli
│ │ │ └── Sky/
│ │ │ ├── PairwiseMIS.hlsli
│ │ │ ├── Params.hlsli
│ │ │ ├── Resampling.hlsli
│ │ │ ├── Reservoir.hlsli
│ │ │ ├── SkyDI.cpp
│ │ │ ├── SkyDI.h
│ │ │ ├── SkyDI_Common.h
│ │ │ ├── SkyDI_Spatial.hlsl
│ │ │ ├── SkyDI_Temporal.hlsl
│ │ │ └── Util.hlsli
│ │ ├── Display/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Display.cpp
│ │ │ ├── Display.h
│ │ │ ├── Display.hlsl
│ │ │ ├── Display_Common.h
│ │ │ ├── DrawPicked.hlsl
│ │ │ ├── Sobel.hlsl
│ │ │ └── Tonemap.hlsli
│ │ ├── FSR2/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── FSR2.cpp
│ │ │ └── FSR2.h
│ │ ├── GBuffer/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── GBufferRT.cpp
│ │ │ ├── GBufferRT.h
│ │ │ ├── GBufferRT.hlsli
│ │ │ ├── GBufferRT_Common.h
│ │ │ ├── GBufferRT_Inline.hlsl
│ │ │ ├── GenerateDepthBuffer.cpp
│ │ │ ├── GenerateDepthBuffer.h
│ │ │ └── GenerateDepthBuffer.hlsl
│ │ ├── GUI/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── GuiPass.cpp
│ │ │ ├── GuiPass.h
│ │ │ ├── GuiPass_Common.h
│ │ │ └── ImGui.hlsl
│ │ ├── IndirectLighting/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── IndirectLighting.cpp
│ │ │ ├── IndirectLighting.h
│ │ │ ├── IndirectLighting_Common.h
│ │ │ ├── NEE.hlsli
│ │ │ ├── PathTracer/
│ │ │ │ ├── Params.hlsli
│ │ │ │ ├── PathTracer.hlsl
│ │ │ │ └── Variants/
│ │ │ │ ├── PathTracer_WPS.hlsl
│ │ │ │ └── PathTracer_WoPS.hlsl
│ │ │ ├── ReSTIR_GI/
│ │ │ │ ├── PairwiseMIS.hlsli
│ │ │ │ ├── Params.hlsli
│ │ │ │ ├── PathTracing.hlsli
│ │ │ │ ├── ReSTIR_GI.hlsl
│ │ │ │ ├── ReSTIR_GI_NEE.hlsli
│ │ │ │ ├── Resampling.hlsli
│ │ │ │ ├── Reservoir.hlsli
│ │ │ │ └── Variants/
│ │ │ │ ├── ReSTIR_GI_LVG.hlsl
│ │ │ │ ├── ReSTIR_GI_WPS.hlsl
│ │ │ │ └── ReSTIR_GI_WoPS.hlsl
│ │ │ └── ReSTIR_PT/
│ │ │ ├── Params.hlsli
│ │ │ ├── ReSTIR_PT_NEE.hlsli
│ │ │ ├── ReSTIR_PT_PathTrace.hlsl
│ │ │ ├── ReSTIR_PT_Reconnect_CtS.hlsl
│ │ │ ├── ReSTIR_PT_Reconnect_CtT.hlsl
│ │ │ ├── ReSTIR_PT_Reconnect_StC.hlsl
│ │ │ ├── ReSTIR_PT_Reconnect_TtC.hlsl
│ │ │ ├── ReSTIR_PT_Replay.hlsl
│ │ │ ├── ReSTIR_PT_Sort.hlsl
│ │ │ ├── ReSTIR_PT_SpatialSearch.hlsl
│ │ │ ├── Reservoir.hlsli
│ │ │ ├── SampleSet.hlsli
│ │ │ ├── Shift.hlsli
│ │ │ ├── Util.hlsli
│ │ │ └── Variants/
│ │ │ ├── ReSTIR_PT_PathTrace_WPS.hlsl
│ │ │ ├── ReSTIR_PT_PathTrace_WoPS.hlsl
│ │ │ ├── ReSTIR_PT_Reconnect_CtS_E.hlsl
│ │ │ ├── ReSTIR_PT_Reconnect_CtT_E.hlsl
│ │ │ ├── ReSTIR_PT_Reconnect_StC_E.hlsl
│ │ │ ├── ReSTIR_PT_Reconnect_TtC_E.hlsl
│ │ │ ├── ReSTIR_PT_Replay_CtS.hlsl
│ │ │ ├── ReSTIR_PT_Replay_CtS_E.hlsl
│ │ │ ├── ReSTIR_PT_Replay_E.hlsl
│ │ │ ├── ReSTIR_PT_Replay_StC.hlsl
│ │ │ ├── ReSTIR_PT_Replay_StC_E.hlsl
│ │ │ ├── ReSTIR_PT_Replay_TtC.hlsl
│ │ │ ├── ReSTIR_PT_Replay_TtC_E.hlsl
│ │ │ ├── ReSTIR_PT_Sort_CtS.hlsl
│ │ │ ├── ReSTIR_PT_Sort_StC.hlsl
│ │ │ └── ReSTIR_PT_Sort_TtC.hlsl
│ │ ├── PreLighting/
│ │ │ ├── BuildLightVoxelGrid.hlsl
│ │ │ ├── CMakeLists.txt
│ │ │ ├── EstimateTriEmissivePower.hlsl
│ │ │ ├── PreLighting.cpp
│ │ │ ├── PreLighting.h
│ │ │ ├── PreLighting_Common.h
│ │ │ └── PresampleEmissives.hlsl
│ │ ├── RenderPass.h
│ │ ├── Sky/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Inscattering.hlsl
│ │ │ ├── Sky.cpp
│ │ │ ├── Sky.h
│ │ │ ├── SkyViewLUT.hlsl
│ │ │ └── Sky_Common.h
│ │ └── TAA/
│ │ ├── CMakeLists.txt
│ │ ├── TAA.cpp
│ │ ├── TAA.h
│ │ ├── TAA.hlsl
│ │ └── TAA_Common.h
│ └── ZetaRenderer/
│ ├── CMakeLists.txt
│ └── Default/
│ ├── CMakeLists.txt
│ ├── DefaultRenderer.cpp
│ ├── DefaultRenderer.h
│ ├── DefaultRendererImpl.h
│ ├── GBuffer.cpp
│ ├── PathTracer.cpp
│ └── PostProcessor.cpp
├── Tests/
│ ├── CMakeLists.txt
│ ├── TestAliasTable.cpp
│ ├── TestContainer.cpp
│ ├── TestMath.cpp
│ ├── TestOffsetAllocator.cpp
│ ├── TestOptional.cpp
│ └── main.cpp
└── Tools/
├── BCnCompressglTF/
│ ├── BCnCompressglTF.cpp
│ ├── CMakeLists.txt
│ ├── DirectXTex/
│ │ ├── BC.cpp
│ │ ├── BC.h
│ │ ├── BC4BC5.cpp
│ │ ├── BC6HBC7.cpp
│ │ ├── BCDirectCompute.cpp
│ │ ├── BCDirectCompute.h
│ │ ├── DDS.h
│ │ ├── DirectXTex.h
│ │ ├── DirectXTex.inl
│ │ ├── DirectXTexCompress.cpp
│ │ ├── DirectXTexCompressGPU.cpp
│ │ ├── DirectXTexConvert.cpp
│ │ ├── DirectXTexD3D11.cpp
│ │ ├── DirectXTexDDS.cpp
│ │ ├── DirectXTexFlipRotate.cpp
│ │ ├── DirectXTexImage.cpp
│ │ ├── DirectXTexMipmaps.cpp
│ │ ├── DirectXTexMisc.cpp
│ │ ├── DirectXTexP.h
│ │ ├── DirectXTexResize.cpp
│ │ ├── DirectXTexUtil.cpp
│ │ ├── DirectXTexWIC.cpp
│ │ ├── Shaders/
│ │ │ └── Compiled/
│ │ │ ├── BC6HEncode_EncodeBlockCS.inc
│ │ │ ├── BC6HEncode_TryModeG10CS.inc
│ │ │ ├── BC6HEncode_TryModeLE10CS.inc
│ │ │ ├── BC7Encode_EncodeBlockCS.inc
│ │ │ ├── BC7Encode_TryMode02CS.inc
│ │ │ ├── BC7Encode_TryMode137CS.inc
│ │ │ └── BC7Encode_TryMode456CS.inc
│ │ ├── filters.h
│ │ └── scoped.h
│ └── TexConv/
│ ├── texconv.cpp
│ └── texconv.h
├── CMakeLists.txt
├── Natvis/
│ ├── App.natvis
│ ├── Container.natvis
│ └── imgui.natvis
└── PrecompileShaders/
├── CMakeLists.txt
└── PrecompileShaders.cpp
SYMBOL INDEX (1791 symbols across 165 files)
FILE: Assets/Font/Font.h
type FontSpan (line 7) | struct FontSpan
type FONT_TYPE (line 13) | enum FONT_TYPE
FILE: External/FSR2/Include/dx12/shaders/ffx_fsr2_shaders_dx12.h
type Fsr2ShaderBlobDX12 (line 32) | typedef struct Fsr2ShaderBlobDX12 {
type Fs2ShaderPermutationOptionsDX12 (line 48) | typedef enum Fs2ShaderPermutationOptionsDX12 {
FILE: External/FSR2/Include/ffx_error.h
type FfxErrorCode (line 27) | typedef int32_t FfxErrorCode;
FILE: External/FSR2/Include/ffx_fsr2.h
type FfxFsr2QualityMode (line 74) | typedef enum FfxFsr2QualityMode {
type FfxFsr2InitializationFlagBits (line 86) | typedef enum FfxFsr2InitializationFlagBits {
type FfxFsr2ContextDescription (line 103) | typedef struct FfxFsr2ContextDescription {
type FfxFsr2DispatchDescription (line 118) | typedef struct FfxFsr2DispatchDescription {
type FfxFsr2GenerateReactiveDescription (line 154) | typedef struct FfxFsr2GenerateReactiveDescription {
type FfxFsr2Context (line 179) | typedef struct FfxFsr2Context {
FILE: External/FSR2/Include/ffx_fsr2_interface.h
type FfxFsr2Pass (line 56) | typedef enum FfxFsr2Pass {
type FfxFsr2MsgType (line 71) | typedef enum FfxFsr2MsgType {
type FfxErrorCode (line 91) | typedef FfxErrorCode (*FfxFsr2CreateBackendContextFunc)(
type FfxErrorCode (line 120) | typedef FfxErrorCode(*FfxFsr2GetDeviceCapabilitiesFunc)(
type FfxErrorCode (line 137) | typedef FfxErrorCode(*FfxFsr2DestroyBackendContextFunc)(
type FfxErrorCode (line 164) | typedef FfxErrorCode (*FfxFsr2CreateResourceFunc)(
type FfxErrorCode (line 188) | typedef FfxErrorCode(*FfxFsr2RegisterResourceFunc)(
type FfxErrorCode (line 206) | typedef FfxErrorCode(*FfxFsr2UnregisterResourcesFunc)(
type FfxResourceDescription (line 219) | typedef FfxResourceDescription (*FfxFsr2GetResourceDescriptionFunc)(
type FfxErrorCode (line 236) | typedef FfxErrorCode (*FfxFsr2DestroyResourceFunc)(
type FfxErrorCode (line 256) | typedef FfxErrorCode (*FfxFsr2CreatePipelineFunc)(
type FfxErrorCode (line 273) | typedef FfxErrorCode (*FfxFsr2DestroyPipelineFunc)(
type FfxErrorCode (line 292) | typedef FfxErrorCode (*FfxFsr2ScheduleGpuJobFunc)(
type FfxErrorCode (line 318) | typedef FfxErrorCode (*FfxFsr2ExecuteGpuJobsFunc)(
type FfxFsr2Interface (line 374) | typedef struct FfxFsr2Interface {
FILE: External/FSR2/Include/ffx_types.h
type FfxSurfaceFormat (line 64) | typedef enum FfxSurfaceFormat {
type FfxResourceUsage (line 89) | typedef enum FfxResourceUsage {
type FfxResourceStates (line 97) | typedef enum FfxResourceStates {
type FfxResourceDimension (line 107) | typedef enum FfxResourceDimension {
type FfxResourceFlags (line 114) | typedef enum FfxResourceFlags {
type FfxResourceViewType (line 121) | typedef enum FfxResourceViewType {
type FfxFilterType (line 128) | typedef enum FfxFilterType {
type FfxShaderModel (line 135) | typedef enum FfxShaderModel {
type FfxResourceType (line 149) | typedef enum FfxResourceType {
type FfxHeapType (line 158) | typedef enum FfxHeapType {
type FfxGpuJobType (line 165) | typedef enum FfxGpuJobType {
type FfxDeviceCapabilities (line 185) | typedef struct FfxDeviceCapabilities {
type FfxDimensions2D (line 195) | typedef struct FfxDimensions2D {
type FfxIntCoords2D (line 202) | typedef struct FfxIntCoords2D {
type FfxFloatCoords2D (line 209) | typedef struct FfxFloatCoords2D {
type FfxResourceDescription (line 216) | typedef struct FfxResourceDescription {
type FfxResource (line 228) | typedef struct FfxResource {
type FfxResourceInternal (line 238) | typedef struct FfxResourceInternal {
type FfxResourceBinding (line 244) | typedef struct FfxResourceBinding
type FfxPipelineState (line 252) | typedef struct FfxPipelineState {
type FfxCreateResourceDescription (line 266) | typedef struct FfxCreateResourceDescription {
type FfxPipelineDescription (line 305) | typedef struct FfxPipelineDescription {
type FfxConstantBuffer (line 315) | typedef struct FfxConstantBuffer {
type FfxClearFloatJobDescription (line 322) | typedef struct FfxClearFloatJobDescription {
type FfxComputeJobDescription (line 329) | typedef struct FfxComputeJobDescription {
type FfxCopyJobDescription (line 344) | typedef struct FfxCopyJobDescription
type FfxGpuJobDescription (line 351) | typedef struct FfxGpuJobDescription{
FILE: External/FSR2/Include/shaders/ffx_fsr2_common.h
type AccumulationPassCommonParams (line 58) | struct AccumulationPassCommonParams
type LockState (line 75) | struct LockState
function InitializeNewLockSample (line 81) | void InitializeNewLockSample(FFX_PARAMETER_OUT FfxFloat32x2 fLockStatus)
function InitializeNewLockSample (line 87) | void InitializeNewLockSample(FFX_PARAMETER_OUT FFX_MIN16_F2 fLockStatus)
function KillLock (line 94) | void KillLock(FFX_PARAMETER_INOUT FfxFloat32x2 fLockStatus)
function KillLock (line 100) | void KillLock(FFX_PARAMETER_INOUT FFX_MIN16_F2 fLockStatus)
type RectificationBox (line 106) | struct RectificationBox
type RectificationBoxMin16 (line 115) | struct RectificationBoxMin16
function RectificationBoxReset (line 125) | void RectificationBoxReset(FFX_PARAMETER_INOUT RectificationBox rectific...
function RectificationBoxReset (line 135) | void RectificationBoxReset(FFX_PARAMETER_INOUT RectificationBoxMin16 rec...
function RectificationBoxAddInitialSample (line 146) | void RectificationBoxAddInitialSample(FFX_PARAMETER_INOUT RectificationB...
function RectificationBoxAddSample (line 157) | void RectificationBoxAddSample(FfxBoolean bInitialSample, FFX_PARAMETER_...
function RectificationBoxAddInitialSample (line 172) | void RectificationBoxAddInitialSample(FFX_PARAMETER_INOUT RectificationB...
function RectificationBoxAddSample (line 183) | void RectificationBoxAddSample(FfxBoolean bInitialSample, FFX_PARAMETER_...
function RectificationBoxComputeVarianceBoxData (line 199) | void RectificationBoxComputeVarianceBoxData(FFX_PARAMETER_INOUT Rectific...
function RectificationBoxComputeVarianceBoxData (line 208) | void RectificationBoxComputeVarianceBoxData(FFX_PARAMETER_INOUT Rectific...
function FfxFloat32x3 (line 218) | FfxFloat32x3 SafeRcp3(FfxFloat32x3 v)
function FFX_MIN16_F3 (line 223) | FFX_MIN16_F3 SafeRcp3(FFX_MIN16_F3 v)
function FfxFloat32 (line 229) | FfxFloat32 MinDividedByMax(const FfxFloat32 v0, const FfxFloat32 v1)
function FFX_MIN16_F (line 236) | FFX_MIN16_F MinDividedByMax(const FFX_MIN16_F v0, const FFX_MIN16_F v1)
function FfxFloat32x3 (line 243) | FfxFloat32x3 YCoCgToRGB(FfxFloat32x3 fYCoCg)
function FFX_MIN16_F3 (line 255) | FFX_MIN16_F3 YCoCgToRGB(FFX_MIN16_F3 fYCoCg)
function FfxFloat32x3 (line 268) | FfxFloat32x3 RGBToYCoCg(FfxFloat32x3 fRgb)
function FFX_MIN16_F3 (line 280) | FFX_MIN16_F3 RGBToYCoCg(FFX_MIN16_F3 fRgb)
function FfxFloat32 (line 293) | FfxFloat32 RGBToLuma(FfxFloat32x3 fLinearRgb)
function FFX_MIN16_F (line 298) | FFX_MIN16_F RGBToLuma(FFX_MIN16_F3 fLinearRgb)
function FfxFloat32 (line 304) | FfxFloat32 RGBToPerceivedLuma(FfxFloat32x3 fLinearRgb)
function FFX_MIN16_F (line 319) | FFX_MIN16_F RGBToPerceivedLuma(FFX_MIN16_F3 fLinearRgb)
function FfxFloat32x3 (line 335) | FfxFloat32x3 Tonemap(FfxFloat32x3 fRgb)
function FfxFloat32x3 (line 340) | FfxFloat32x3 InverseTonemap(FfxFloat32x3 fRgb)
function FFX_MIN16_F3 (line 346) | FFX_MIN16_F3 Tonemap(FFX_MIN16_F3 fRgb)
function FFX_MIN16_F3 (line 351) | FFX_MIN16_F3 InverseTonemap(FFX_MIN16_F3 fRgb)
function FfxInt32x2 (line 357) | FfxInt32x2 ClampLoad(FfxInt32x2 iPxSample, FfxInt32x2 iPxOffset, FfxInt3...
function FFX_MIN16_I2 (line 369) | FFX_MIN16_I2 ClampLoad(FFX_MIN16_I2 iPxSample, FFX_MIN16_I2 iPxOffset, F...
function FfxFloat32x2 (line 382) | FfxFloat32x2 ClampUv(FfxFloat32x2 fUv, FfxInt32x2 iTextureSize, FfxInt32...
function FfxBoolean (line 391) | FfxBoolean IsOnScreen(FfxInt32x2 pos, FfxInt32x2 size)
function FfxBoolean (line 396) | FfxBoolean IsOnScreen(FFX_MIN16_I2 pos, FFX_MIN16_I2 size)
function FfxFloat32 (line 402) | FfxFloat32 ComputeAutoExposureFromLavg(FfxFloat32 Lavg)
function FFX_MIN16_F (line 416) | FFX_MIN16_F ComputeAutoExposureFromLavg(FFX_MIN16_F Lavg)
function FfxInt32x2 (line 431) | FfxInt32x2 ComputeHrPosFromLrPos(FfxInt32x2 iPxLrPos)
function FFX_MIN16_I2 (line 439) | FFX_MIN16_I2 ComputeHrPosFromLrPos(FFX_MIN16_I2 iPxLrPos)
function FfxFloat32x2 (line 448) | FfxFloat32x2 ComputeNdc(FfxFloat32x2 fPxPos, FfxInt32x2 iSize)
function FfxFloat32 (line 453) | FfxFloat32 GetViewSpaceDepth(FfxFloat32 fDeviceDepth)
function FfxFloat32 (line 461) | FfxFloat32 GetViewSpaceDepthInMeters(FfxFloat32 fDeviceDepth)
function FfxFloat32x3 (line 466) | FfxFloat32x3 GetViewSpacePosition(FfxInt32x2 iViewportPos, FfxInt32x2 iV...
function FfxFloat32x3 (line 479) | FfxFloat32x3 GetViewSpacePositionInMeters(FfxInt32x2 iViewportPos, FfxIn...
function FfxFloat32 (line 484) | FfxFloat32 GetMaxDistanceInMeters()
function FfxFloat32x3 (line 493) | FfxFloat32x3 PrepareRgb(FfxFloat32x3 fRgb, FfxFloat32 fExposure, FfxFloa...
function FfxFloat32x3 (line 503) | FfxFloat32x3 UnprepareRgb(FfxFloat32x3 fRgb, FfxFloat32 fExposure)
type BilinearSamplingData (line 512) | struct BilinearSamplingData
function BilinearSamplingData (line 519) | BilinearSamplingData GetBilinearSamplingData(FfxFloat32x2 fUv, FfxInt32x...
type PlaneData (line 540) | struct PlaneData
function PlaneData (line 546) | PlaneData GetPlaneFromPoints(FfxFloat32x3 fP0, FfxFloat32x3 fP1, FfxFloa...
function FfxFloat32 (line 558) | FfxFloat32 PointToPlaneDistance(PlaneData plane, FfxFloat32x3 fPoint)
FILE: External/FastDelegate/FastDelegate.h
function namespace (line 142) | namespace fastdelegate {
function namespace (line 661) | namespace detail {
type DesiredRetType (line 857) | typedef DesiredRetType (*StaticFunctionPtr)();
type RetType (line 858) | typedef RetType (*UnvoidStaticFunctionPtr)();
type detail (line 860) | typedef detail::ClosurePtr<GenericMemFn, StaticFunctionPtr, UnvoidStatic...
function bind (line 885) | void bind(Y *pthis, DesiredRetType (X::* function_to_bind)()) {
function bind (line 901) | inline void bind(DesiredRetType (*function_to_bind)()) {
type StaticFunctionPtr (line 913) | typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type;
function StaticFunctionPtr (line 919) | inline bool operator==(StaticFunctionPtr funcptr) {
function StaticFunctionPtr (line 921) | inline bool operator!=(StaticFunctionPtr funcptr) {
function clear (line 927) | void clear() { m_Closure.clear();}
function DelegateMemento (line 929) | const DelegateMemento & GetMemento() { return m_Closure; }
function SetMemento (line 930) | void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, a...
type DesiredRetType (line 942) | typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1);
type RetType (line 943) | typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1);
type detail (line 945) | typedef detail::ClosurePtr<GenericMemFn, StaticFunctionPtr, UnvoidStatic...
function bind (line 970) | void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1)) {
function const (line 977) | void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 ...
function bind (line 986) | inline void bind(DesiredRetType (*function_to_bind)(Param1 p1)) {
function RetType (line 990) | RetType operator() (Param1 p1) const {
type StaticFunctionPtr (line 998) | typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type;
function StaticFunctionPtr (line 1004) | inline bool operator==(StaticFunctionPtr funcptr) {
function StaticFunctionPtr (line 1006) | inline bool operator!=(StaticFunctionPtr funcptr) {
function clear (line 1012) | void clear() { m_Closure.clear();}
function DelegateMemento (line 1014) | const DelegateMemento & GetMemento() { return m_Closure; }
function SetMemento (line 1015) | void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, a...
type DesiredRetType (line 1027) | typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2);
type RetType (line 1028) | typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2);
type detail (line 1030) | typedef detail::ClosurePtr<GenericMemFn, StaticFunctionPtr, UnvoidStatic...
function bind (line 1055) | void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Pa...
function const (line 1062) | void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 ...
function bind (line 1071) | inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2...
function RetType (line 1075) | RetType operator() (Param1 p1, Param2 p2) const {
type StaticFunctionPtr (line 1083) | typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type;
function StaticFunctionPtr (line 1089) | inline bool operator==(StaticFunctionPtr funcptr) {
function StaticFunctionPtr (line 1091) | inline bool operator!=(StaticFunctionPtr funcptr) {
function clear (line 1097) | void clear() { m_Closure.clear();}
function DelegateMemento (line 1099) | const DelegateMemento & GetMemento() { return m_Closure; }
function SetMemento (line 1100) | void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, a...
type DesiredRetType (line 1112) | typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3...
type RetType (line 1113) | typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 ...
type detail (line 1115) | typedef detail::ClosurePtr<GenericMemFn, StaticFunctionPtr, UnvoidStatic...
function bind (line 1140) | void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Pa...
function const (line 1147) | void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 ...
function bind (line 1156) | inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2...
function RetType (line 1160) | RetType operator() (Param1 p1, Param2 p2, Param3 p3) const {
type StaticFunctionPtr (line 1168) | typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type;
function StaticFunctionPtr (line 1174) | inline bool operator==(StaticFunctionPtr funcptr) {
function StaticFunctionPtr (line 1176) | inline bool operator!=(StaticFunctionPtr funcptr) {
function clear (line 1182) | void clear() { m_Closure.clear();}
function DelegateMemento (line 1184) | const DelegateMemento & GetMemento() { return m_Closure; }
function SetMemento (line 1185) | void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, a...
type DesiredRetType (line 1197) | typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3...
type RetType (line 1198) | typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 ...
type detail (line 1200) | typedef detail::ClosurePtr<GenericMemFn, StaticFunctionPtr, UnvoidStatic...
function bind (line 1225) | void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Pa...
function const (line 1232) | void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 ...
function bind (line 1241) | inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2...
function RetType (line 1245) | RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4) const {
type StaticFunctionPtr (line 1253) | typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type;
function StaticFunctionPtr (line 1259) | inline bool operator==(StaticFunctionPtr funcptr) {
function StaticFunctionPtr (line 1261) | inline bool operator!=(StaticFunctionPtr funcptr) {
function clear (line 1267) | void clear() { m_Closure.clear();}
function DelegateMemento (line 1269) | const DelegateMemento & GetMemento() { return m_Closure; }
function SetMemento (line 1270) | void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, a...
type DesiredRetType (line 1282) | typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3...
type RetType (line 1283) | typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 ...
type detail (line 1285) | typedef detail::ClosurePtr<GenericMemFn, StaticFunctionPtr, UnvoidStatic...
function bind (line 1310) | void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Pa...
function const (line 1317) | void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 ...
function bind (line 1326) | inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2...
function RetType (line 1330) | RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p...
type StaticFunctionPtr (line 1338) | typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type;
function StaticFunctionPtr (line 1344) | inline bool operator==(StaticFunctionPtr funcptr) {
function StaticFunctionPtr (line 1346) | inline bool operator!=(StaticFunctionPtr funcptr) {
function clear (line 1352) | void clear() { m_Closure.clear();}
function DelegateMemento (line 1354) | const DelegateMemento & GetMemento() { return m_Closure; }
function SetMemento (line 1355) | void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, a...
type DesiredRetType (line 1367) | typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3...
type RetType (line 1368) | typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 ...
type detail (line 1370) | typedef detail::ClosurePtr<GenericMemFn, StaticFunctionPtr, UnvoidStatic...
function bind (line 1395) | void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Pa...
function const (line 1402) | void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 ...
function bind (line 1411) | inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2...
function RetType (line 1415) | RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p...
type StaticFunctionPtr (line 1423) | typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type;
function StaticFunctionPtr (line 1429) | inline bool operator==(StaticFunctionPtr funcptr) {
function StaticFunctionPtr (line 1431) | inline bool operator!=(StaticFunctionPtr funcptr) {
function clear (line 1437) | void clear() { m_Closure.clear();}
function DelegateMemento (line 1439) | const DelegateMemento & GetMemento() { return m_Closure; }
function SetMemento (line 1440) | void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, a...
type DesiredRetType (line 1452) | typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3...
type RetType (line 1453) | typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 ...
type detail (line 1455) | typedef detail::ClosurePtr<GenericMemFn, StaticFunctionPtr, UnvoidStatic...
function bind (line 1480) | void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Pa...
function const (line 1487) | void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 ...
function bind (line 1496) | inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2...
function RetType (line 1500) | RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p...
type StaticFunctionPtr (line 1508) | typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type;
function StaticFunctionPtr (line 1514) | inline bool operator==(StaticFunctionPtr funcptr) {
function StaticFunctionPtr (line 1516) | inline bool operator!=(StaticFunctionPtr funcptr) {
function clear (line 1522) | void clear() { m_Closure.clear();}
function DelegateMemento (line 1524) | const DelegateMemento & GetMemento() { return m_Closure; }
function SetMemento (line 1525) | void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, a...
type DesiredRetType (line 1537) | typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3...
type RetType (line 1538) | typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 ...
type detail (line 1540) | typedef detail::ClosurePtr<GenericMemFn, StaticFunctionPtr, UnvoidStatic...
function bind (line 1565) | void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Pa...
function const (line 1572) | void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 ...
function bind (line 1581) | inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2...
function RetType (line 1585) | RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p...
type StaticFunctionPtr (line 1593) | typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type;
function StaticFunctionPtr (line 1599) | inline bool operator==(StaticFunctionPtr funcptr) {
function StaticFunctionPtr (line 1601) | inline bool operator!=(StaticFunctionPtr funcptr) {
function clear (line 1607) | void clear() { m_Closure.clear();}
function DelegateMemento (line 1609) | const DelegateMemento & GetMemento() { return m_Closure; }
function SetMemento (line 1610) | void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, a...
type FastDelegate (line 1651) | typedef FastDelegate SelfType;
function BaseType (line 1668) | BaseType(function_to_bind) { }
type FastDelegate (line 1688) | typedef FastDelegate SelfType;
function BaseType (line 1705) | BaseType(function_to_bind) { }
type FastDelegate (line 1725) | typedef FastDelegate SelfType;
function BaseType (line 1742) | BaseType(function_to_bind) { }
type FastDelegate (line 1762) | typedef FastDelegate SelfType;
function BaseType (line 1779) | BaseType(function_to_bind) { }
type FastDelegate (line 1799) | typedef FastDelegate SelfType;
function BaseType (line 1816) | BaseType(function_to_bind) { }
type FastDelegate (line 1836) | typedef FastDelegate SelfType;
function BaseType (line 1853) | BaseType(function_to_bind) { }
type FastDelegate (line 1873) | typedef FastDelegate SelfType;
function BaseType (line 1890) | BaseType(function_to_bind) { }
type FastDelegate (line 1910) | typedef FastDelegate SelfType;
function BaseType (line 1927) | BaseType(function_to_bind) { }
type FastDelegate (line 1947) | typedef FastDelegate SelfType;
function BaseType (line 1964) | BaseType(function_to_bind) { }
FILE: External/ImGui/ImGuizmo.cpp
type IMGUIZMO_NAMESPACE (line 54) | namespace IMGUIZMO_NAMESPACE
function OPERATION (line 64) | static OPERATION operator&(OPERATION lhs, OPERATION rhs)
function Intersects (line 74) | static bool Intersects(OPERATION lhs, OPERATION rhs)
function Contains (line 80) | static bool Contains(OPERATION lhs, OPERATION rhs)
function FPU_MatrixF_x_MatrixF (line 87) | void FPU_MatrixF_x_MatrixF(const float* a, const float* b, float* r)
function Frustum (line 110) | void Frustum(float left, float right, float bottom, float top, float z...
function Perspective (line 135) | void Perspective(float fovyInDegrees, float aspectRatio, float znear, ...
function Cross (line 143) | void Cross(const float* a, const float* b, float* r)
function Dot (line 150) | float Dot(const float* a, const float* b)
function Normalize (line 155) | void Normalize(const float* a, float* r)
function LookAt (line 163) | void LookAt(const float* eye, const float* at, const float* up, float*...
function T (line 195) | T Clamp(T x, T y, T z) { return ((x < y) ? y : ((x > z) ? z : x)); }
function T (line 196) | T max(T x, T y) { return (x > y) ? x : y; }
function T (line 197) | T min(T x, T y) { return (x < y) ? x : y; }
function IsWithin (line 198) | bool IsWithin(T x, T y, T z) { return (x >= y) && (x <= z); }
type matrix_t (line 200) | struct matrix_t
method Translation (line 352) | void Translation(float _x, float _y, float _z) { this->Translation(m...
method Translation (line 354) | void Translation(const vec_t& vt)
method Scale (line 362) | void Scale(float _x, float _y, float _z)
method Scale (line 369) | void Scale(const vec_t& s) { Scale(s.x, s.y, s.z); }
method matrix_t (line 371) | matrix_t& operator *= (const matrix_t& mat)
method matrix_t (line 379) | matrix_t operator * (const matrix_t& mat) const
method Multiply (line 386) | void Multiply(const matrix_t& matrix)
method Multiply (line 394) | void Multiply(const matrix_t& m1, const matrix_t& m2)
method GetDeterminant (line 399) | float GetDeterminant() const
method SetToIdentity (line 406) | void SetToIdentity()
method Transpose (line 413) | void Transpose()
method OrthoNormalize (line 428) | void OrthoNormalize()
type vec_t (line 201) | struct vec_t
method vec_t (line 206) | vec_t() = default;
method vec_t (line 207) | vec_t(float v0, float v1, float v2, float v3)
method vec_t (line 213) | vec_t(const float3& v)
method vec_t (line 219) | vec_t(const float4& v)
method Lerp (line 226) | void Lerp(const vec_t& v, float t)
method Set (line 234) | void Set(float v) { x = y = z = w = v; }
method Set (line 235) | void Set(float _x, float _y, float _z = 0.f, float _w = 0.f) { x = _...
method vec_t (line 237) | vec_t& operator -= (const vec_t& v) { x -= v.x; y -= v.y; z -= v.z; ...
method vec_t (line 238) | vec_t& operator += (const vec_t& v) { x += v.x; y += v.y; z += v.z; ...
method vec_t (line 239) | vec_t& operator *= (const vec_t& v) { x *= v.x; y *= v.y; z *= v.z; ...
method vec_t (line 240) | vec_t& operator *= (float v) { x *= v; y *= v; z *= v; w *=...
method vec_t (line 248) | const vec_t& operator + () const { return (*this); }
method Length (line 249) | float Length() const { return sqrtf(x * x + y * y + z * z); }
method LengthSq (line 250) | float LengthSq() const { return (x * x + y * y + z * z); }
method vec_t (line 251) | vec_t Normalize() { (*this) *= (1.f / ( Length() > FLT_EPSILON ? Len...
method vec_t (line 252) | vec_t Normalize(const vec_t& v) { this->Set(v.x, v.y, v.z, v.w); thi...
method Cross (line 255) | void Cross(const vec_t& v)
method Cross (line 268) | void Cross(const vec_t& v1, const vec_t& v2)
method Dot (line 276) | float Dot(const vec_t& v) const
method Dot3 (line 281) | float Dot3(const vec_t& v) const
method TransformVector (line 291) | void TransformVector(const vec_t& v, const matrix_t& matrix) { (*thi...
method TransformPoint (line 292) | void TransformPoint(const vec_t& v, const matrix_t& matrix) { (*this...
function vec_t (line 299) | vec_t makeVect(float _x, float _y, float _z = 0.f, float _w = 0.f) { v...
method vec_t (line 206) | vec_t() = default;
method vec_t (line 207) | vec_t(float v0, float v1, float v2, float v3)
method vec_t (line 213) | vec_t(const float3& v)
method vec_t (line 219) | vec_t(const float4& v)
method Lerp (line 226) | void Lerp(const vec_t& v, float t)
method Set (line 234) | void Set(float v) { x = y = z = w = v; }
method Set (line 235) | void Set(float _x, float _y, float _z = 0.f, float _w = 0.f) { x = _...
method vec_t (line 237) | vec_t& operator -= (const vec_t& v) { x -= v.x; y -= v.y; z -= v.z; ...
method vec_t (line 238) | vec_t& operator += (const vec_t& v) { x += v.x; y += v.y; z += v.z; ...
method vec_t (line 239) | vec_t& operator *= (const vec_t& v) { x *= v.x; y *= v.y; z *= v.z; ...
method vec_t (line 240) | vec_t& operator *= (float v) { x *= v; y *= v; z *= v; w *=...
method vec_t (line 248) | const vec_t& operator + () const { return (*this); }
method Length (line 249) | float Length() const { return sqrtf(x * x + y * y + z * z); }
method LengthSq (line 250) | float LengthSq() const { return (x * x + y * y + z * z); }
method vec_t (line 251) | vec_t Normalize() { (*this) *= (1.f / ( Length() > FLT_EPSILON ? Len...
method vec_t (line 252) | vec_t Normalize(const vec_t& v) { this->Set(v.x, v.y, v.z, v.w); thi...
method Cross (line 255) | void Cross(const vec_t& v)
method Cross (line 268) | void Cross(const vec_t& v1, const vec_t& v2)
method Dot (line 276) | float Dot(const vec_t& v) const
method Dot3 (line 281) | float Dot3(const vec_t& v) const
method TransformVector (line 291) | void TransformVector(const vec_t& v, const matrix_t& matrix) { (*thi...
method TransformPoint (line 292) | void TransformPoint(const vec_t& v, const matrix_t& matrix) { (*this...
function vec_t (line 300) | vec_t makeVect(ImVec2 v) { vec_t res; res.x = v.x; res.y = v.y; res.z ...
method vec_t (line 206) | vec_t() = default;
method vec_t (line 207) | vec_t(float v0, float v1, float v2, float v3)
method vec_t (line 213) | vec_t(const float3& v)
method vec_t (line 219) | vec_t(const float4& v)
method Lerp (line 226) | void Lerp(const vec_t& v, float t)
method Set (line 234) | void Set(float v) { x = y = z = w = v; }
method Set (line 235) | void Set(float _x, float _y, float _z = 0.f, float _w = 0.f) { x = _...
method vec_t (line 237) | vec_t& operator -= (const vec_t& v) { x -= v.x; y -= v.y; z -= v.z; ...
method vec_t (line 238) | vec_t& operator += (const vec_t& v) { x += v.x; y += v.y; z += v.z; ...
method vec_t (line 239) | vec_t& operator *= (const vec_t& v) { x *= v.x; y *= v.y; z *= v.z; ...
method vec_t (line 240) | vec_t& operator *= (float v) { x *= v; y *= v; z *= v; w *=...
method vec_t (line 248) | const vec_t& operator + () const { return (*this); }
method Length (line 249) | float Length() const { return sqrtf(x * x + y * y + z * z); }
method LengthSq (line 250) | float LengthSq() const { return (x * x + y * y + z * z); }
method vec_t (line 251) | vec_t Normalize() { (*this) *= (1.f / ( Length() > FLT_EPSILON ? Len...
method vec_t (line 252) | vec_t Normalize(const vec_t& v) { this->Set(v.x, v.y, v.z, v.w); thi...
method Cross (line 255) | void Cross(const vec_t& v)
method Cross (line 268) | void Cross(const vec_t& v1, const vec_t& v2)
method Dot (line 276) | float Dot(const vec_t& v) const
method Dot3 (line 281) | float Dot3(const vec_t& v) const
method TransformVector (line 291) | void TransformVector(const vec_t& v, const matrix_t& matrix) { (*thi...
method TransformPoint (line 292) | void TransformPoint(const vec_t& v, const matrix_t& matrix) { (*this...
function vec_t (line 301) | vec_t vec_t::operator * (float f) const { return makeVect(x * f, y * f...
method vec_t (line 206) | vec_t() = default;
method vec_t (line 207) | vec_t(float v0, float v1, float v2, float v3)
method vec_t (line 213) | vec_t(const float3& v)
method vec_t (line 219) | vec_t(const float4& v)
method Lerp (line 226) | void Lerp(const vec_t& v, float t)
method Set (line 234) | void Set(float v) { x = y = z = w = v; }
method Set (line 235) | void Set(float _x, float _y, float _z = 0.f, float _w = 0.f) { x = _...
method vec_t (line 237) | vec_t& operator -= (const vec_t& v) { x -= v.x; y -= v.y; z -= v.z; ...
method vec_t (line 238) | vec_t& operator += (const vec_t& v) { x += v.x; y += v.y; z += v.z; ...
method vec_t (line 239) | vec_t& operator *= (const vec_t& v) { x *= v.x; y *= v.y; z *= v.z; ...
method vec_t (line 240) | vec_t& operator *= (float v) { x *= v; y *= v; z *= v; w *=...
method vec_t (line 248) | const vec_t& operator + () const { return (*this); }
method Length (line 249) | float Length() const { return sqrtf(x * x + y * y + z * z); }
method LengthSq (line 250) | float LengthSq() const { return (x * x + y * y + z * z); }
method vec_t (line 251) | vec_t Normalize() { (*this) *= (1.f / ( Length() > FLT_EPSILON ? Len...
method vec_t (line 252) | vec_t Normalize(const vec_t& v) { this->Set(v.x, v.y, v.z, v.w); thi...
method Cross (line 255) | void Cross(const vec_t& v)
method Cross (line 268) | void Cross(const vec_t& v1, const vec_t& v2)
method Dot (line 276) | float Dot(const vec_t& v) const
method Dot3 (line 281) | float Dot3(const vec_t& v) const
method TransformVector (line 291) | void TransformVector(const vec_t& v, const matrix_t& matrix) { (*thi...
method TransformPoint (line 292) | void TransformPoint(const vec_t& v, const matrix_t& matrix) { (*this...
function vec_t (line 302) | vec_t vec_t::operator - () const { return makeVect(-x, -y, -z, -w); }
method vec_t (line 206) | vec_t() = default;
method vec_t (line 207) | vec_t(float v0, float v1, float v2, float v3)
method vec_t (line 213) | vec_t(const float3& v)
method vec_t (line 219) | vec_t(const float4& v)
method Lerp (line 226) | void Lerp(const vec_t& v, float t)
method Set (line 234) | void Set(float v) { x = y = z = w = v; }
method Set (line 235) | void Set(float _x, float _y, float _z = 0.f, float _w = 0.f) { x = _...
method vec_t (line 237) | vec_t& operator -= (const vec_t& v) { x -= v.x; y -= v.y; z -= v.z; ...
method vec_t (line 238) | vec_t& operator += (const vec_t& v) { x += v.x; y += v.y; z += v.z; ...
method vec_t (line 239) | vec_t& operator *= (const vec_t& v) { x *= v.x; y *= v.y; z *= v.z; ...
method vec_t (line 240) | vec_t& operator *= (float v) { x *= v; y *= v; z *= v; w *=...
method vec_t (line 248) | const vec_t& operator + () const { return (*this); }
method Length (line 249) | float Length() const { return sqrtf(x * x + y * y + z * z); }
method LengthSq (line 250) | float LengthSq() const { return (x * x + y * y + z * z); }
method vec_t (line 251) | vec_t Normalize() { (*this) *= (1.f / ( Length() > FLT_EPSILON ? Len...
method vec_t (line 252) | vec_t Normalize(const vec_t& v) { this->Set(v.x, v.y, v.z, v.w); thi...
method Cross (line 255) | void Cross(const vec_t& v)
method Cross (line 268) | void Cross(const vec_t& v1, const vec_t& v2)
method Dot (line 276) | float Dot(const vec_t& v) const
method Dot3 (line 281) | float Dot3(const vec_t& v) const
method TransformVector (line 291) | void TransformVector(const vec_t& v, const matrix_t& matrix) { (*thi...
method TransformPoint (line 292) | void TransformPoint(const vec_t& v, const matrix_t& matrix) { (*this...
function vec_t (line 303) | vec_t vec_t::operator - (const vec_t& v) const { return makeVect(x - v...
method vec_t (line 206) | vec_t() = default;
method vec_t (line 207) | vec_t(float v0, float v1, float v2, float v3)
method vec_t (line 213) | vec_t(const float3& v)
method vec_t (line 219) | vec_t(const float4& v)
method Lerp (line 226) | void Lerp(const vec_t& v, float t)
method Set (line 234) | void Set(float v) { x = y = z = w = v; }
method Set (line 235) | void Set(float _x, float _y, float _z = 0.f, float _w = 0.f) { x = _...
method vec_t (line 237) | vec_t& operator -= (const vec_t& v) { x -= v.x; y -= v.y; z -= v.z; ...
method vec_t (line 238) | vec_t& operator += (const vec_t& v) { x += v.x; y += v.y; z += v.z; ...
method vec_t (line 239) | vec_t& operator *= (const vec_t& v) { x *= v.x; y *= v.y; z *= v.z; ...
method vec_t (line 240) | vec_t& operator *= (float v) { x *= v; y *= v; z *= v; w *=...
method vec_t (line 248) | const vec_t& operator + () const { return (*this); }
method Length (line 249) | float Length() const { return sqrtf(x * x + y * y + z * z); }
method LengthSq (line 250) | float LengthSq() const { return (x * x + y * y + z * z); }
method vec_t (line 251) | vec_t Normalize() { (*this) *= (1.f / ( Length() > FLT_EPSILON ? Len...
method vec_t (line 252) | vec_t Normalize(const vec_t& v) { this->Set(v.x, v.y, v.z, v.w); thi...
method Cross (line 255) | void Cross(const vec_t& v)
method Cross (line 268) | void Cross(const vec_t& v1, const vec_t& v2)
method Dot (line 276) | float Dot(const vec_t& v) const
method Dot3 (line 281) | float Dot3(const vec_t& v) const
method TransformVector (line 291) | void TransformVector(const vec_t& v, const matrix_t& matrix) { (*thi...
method TransformPoint (line 292) | void TransformPoint(const vec_t& v, const matrix_t& matrix) { (*this...
function vec_t (line 304) | vec_t vec_t::operator + (const vec_t& v) const { return makeVect(x + v...
method vec_t (line 206) | vec_t() = default;
method vec_t (line 207) | vec_t(float v0, float v1, float v2, float v3)
method vec_t (line 213) | vec_t(const float3& v)
method vec_t (line 219) | vec_t(const float4& v)
method Lerp (line 226) | void Lerp(const vec_t& v, float t)
method Set (line 234) | void Set(float v) { x = y = z = w = v; }
method Set (line 235) | void Set(float _x, float _y, float _z = 0.f, float _w = 0.f) { x = _...
method vec_t (line 237) | vec_t& operator -= (const vec_t& v) { x -= v.x; y -= v.y; z -= v.z; ...
method vec_t (line 238) | vec_t& operator += (const vec_t& v) { x += v.x; y += v.y; z += v.z; ...
method vec_t (line 239) | vec_t& operator *= (const vec_t& v) { x *= v.x; y *= v.y; z *= v.z; ...
method vec_t (line 240) | vec_t& operator *= (float v) { x *= v; y *= v; z *= v; w *=...
method vec_t (line 248) | const vec_t& operator + () const { return (*this); }
method Length (line 249) | float Length() const { return sqrtf(x * x + y * y + z * z); }
method LengthSq (line 250) | float LengthSq() const { return (x * x + y * y + z * z); }
method vec_t (line 251) | vec_t Normalize() { (*this) *= (1.f / ( Length() > FLT_EPSILON ? Len...
method vec_t (line 252) | vec_t Normalize(const vec_t& v) { this->Set(v.x, v.y, v.z, v.w); thi...
method Cross (line 255) | void Cross(const vec_t& v)
method Cross (line 268) | void Cross(const vec_t& v1, const vec_t& v2)
method Dot (line 276) | float Dot(const vec_t& v) const
method Dot3 (line 281) | float Dot3(const vec_t& v) const
method TransformVector (line 291) | void TransformVector(const vec_t& v, const matrix_t& matrix) { (*thi...
method TransformPoint (line 292) | void TransformPoint(const vec_t& v, const matrix_t& matrix) { (*this...
function vec_t (line 305) | vec_t vec_t::operator * (const vec_t& v) const { return makeVect(x * v...
method vec_t (line 206) | vec_t() = default;
method vec_t (line 207) | vec_t(float v0, float v1, float v2, float v3)
method vec_t (line 213) | vec_t(const float3& v)
method vec_t (line 219) | vec_t(const float4& v)
method Lerp (line 226) | void Lerp(const vec_t& v, float t)
method Set (line 234) | void Set(float v) { x = y = z = w = v; }
method Set (line 235) | void Set(float _x, float _y, float _z = 0.f, float _w = 0.f) { x = _...
method vec_t (line 237) | vec_t& operator -= (const vec_t& v) { x -= v.x; y -= v.y; z -= v.z; ...
method vec_t (line 238) | vec_t& operator += (const vec_t& v) { x += v.x; y += v.y; z += v.z; ...
method vec_t (line 239) | vec_t& operator *= (const vec_t& v) { x *= v.x; y *= v.y; z *= v.z; ...
method vec_t (line 240) | vec_t& operator *= (float v) { x *= v; y *= v; z *= v; w *=...
method vec_t (line 248) | const vec_t& operator + () const { return (*this); }
method Length (line 249) | float Length() const { return sqrtf(x * x + y * y + z * z); }
method LengthSq (line 250) | float LengthSq() const { return (x * x + y * y + z * z); }
method vec_t (line 251) | vec_t Normalize() { (*this) *= (1.f / ( Length() > FLT_EPSILON ? Len...
method vec_t (line 252) | vec_t Normalize(const vec_t& v) { this->Set(v.x, v.y, v.z, v.w); thi...
method Cross (line 255) | void Cross(const vec_t& v)
method Cross (line 268) | void Cross(const vec_t& v1, const vec_t& v2)
method Dot (line 276) | float Dot(const vec_t& v) const
method Dot3 (line 281) | float Dot3(const vec_t& v) const
method TransformVector (line 291) | void TransformVector(const vec_t& v, const matrix_t& matrix) { (*thi...
method TransformPoint (line 292) | void TransformPoint(const vec_t& v, const matrix_t& matrix) { (*this...
function vec_t (line 306) | vec_t vec_t::Abs() const { return makeVect(fabsf(x), fabsf(y), fabsf(z...
method vec_t (line 206) | vec_t() = default;
method vec_t (line 207) | vec_t(float v0, float v1, float v2, float v3)
method vec_t (line 213) | vec_t(const float3& v)
method vec_t (line 219) | vec_t(const float4& v)
method Lerp (line 226) | void Lerp(const vec_t& v, float t)
method Set (line 234) | void Set(float v) { x = y = z = w = v; }
method Set (line 235) | void Set(float _x, float _y, float _z = 0.f, float _w = 0.f) { x = _...
method vec_t (line 237) | vec_t& operator -= (const vec_t& v) { x -= v.x; y -= v.y; z -= v.z; ...
method vec_t (line 238) | vec_t& operator += (const vec_t& v) { x += v.x; y += v.y; z += v.z; ...
method vec_t (line 239) | vec_t& operator *= (const vec_t& v) { x *= v.x; y *= v.y; z *= v.z; ...
method vec_t (line 240) | vec_t& operator *= (float v) { x *= v; y *= v; z *= v; w *=...
method vec_t (line 248) | const vec_t& operator + () const { return (*this); }
method Length (line 249) | float Length() const { return sqrtf(x * x + y * y + z * z); }
method LengthSq (line 250) | float LengthSq() const { return (x * x + y * y + z * z); }
method vec_t (line 251) | vec_t Normalize() { (*this) *= (1.f / ( Length() > FLT_EPSILON ? Len...
method vec_t (line 252) | vec_t Normalize(const vec_t& v) { this->Set(v.x, v.y, v.z, v.w); thi...
method Cross (line 255) | void Cross(const vec_t& v)
method Cross (line 268) | void Cross(const vec_t& v1, const vec_t& v2)
method Dot (line 276) | float Dot(const vec_t& v) const
method Dot3 (line 281) | float Dot3(const vec_t& v) const
method TransformVector (line 291) | void TransformVector(const vec_t& v, const matrix_t& matrix) { (*thi...
method TransformPoint (line 292) | void TransformPoint(const vec_t& v, const matrix_t& matrix) { (*this...
function vec_t (line 308) | vec_t Normalized(const vec_t& v) { vec_t res; res = v; res.Normalize()...
method vec_t (line 206) | vec_t() = default;
method vec_t (line 207) | vec_t(float v0, float v1, float v2, float v3)
method vec_t (line 213) | vec_t(const float3& v)
method vec_t (line 219) | vec_t(const float4& v)
method Lerp (line 226) | void Lerp(const vec_t& v, float t)
method Set (line 234) | void Set(float v) { x = y = z = w = v; }
method Set (line 235) | void Set(float _x, float _y, float _z = 0.f, float _w = 0.f) { x = _...
method vec_t (line 237) | vec_t& operator -= (const vec_t& v) { x -= v.x; y -= v.y; z -= v.z; ...
method vec_t (line 238) | vec_t& operator += (const vec_t& v) { x += v.x; y += v.y; z += v.z; ...
method vec_t (line 239) | vec_t& operator *= (const vec_t& v) { x *= v.x; y *= v.y; z *= v.z; ...
method vec_t (line 240) | vec_t& operator *= (float v) { x *= v; y *= v; z *= v; w *=...
method vec_t (line 248) | const vec_t& operator + () const { return (*this); }
method Length (line 249) | float Length() const { return sqrtf(x * x + y * y + z * z); }
method LengthSq (line 250) | float LengthSq() const { return (x * x + y * y + z * z); }
method vec_t (line 251) | vec_t Normalize() { (*this) *= (1.f / ( Length() > FLT_EPSILON ? Len...
method vec_t (line 252) | vec_t Normalize(const vec_t& v) { this->Set(v.x, v.y, v.z, v.w); thi...
method Cross (line 255) | void Cross(const vec_t& v)
method Cross (line 268) | void Cross(const vec_t& v1, const vec_t& v2)
method Dot (line 276) | float Dot(const vec_t& v) const
method Dot3 (line 281) | float Dot3(const vec_t& v) const
method TransformVector (line 291) | void TransformVector(const vec_t& v, const matrix_t& matrix) { (*thi...
method TransformPoint (line 292) | void TransformPoint(const vec_t& v, const matrix_t& matrix) { (*this...
function vec_t (line 309) | vec_t Cross(const vec_t& v1, const vec_t& v2)
method vec_t (line 206) | vec_t() = default;
method vec_t (line 207) | vec_t(float v0, float v1, float v2, float v3)
method vec_t (line 213) | vec_t(const float3& v)
method vec_t (line 219) | vec_t(const float4& v)
method Lerp (line 226) | void Lerp(const vec_t& v, float t)
method Set (line 234) | void Set(float v) { x = y = z = w = v; }
method Set (line 235) | void Set(float _x, float _y, float _z = 0.f, float _w = 0.f) { x = _...
method vec_t (line 237) | vec_t& operator -= (const vec_t& v) { x -= v.x; y -= v.y; z -= v.z; ...
method vec_t (line 238) | vec_t& operator += (const vec_t& v) { x += v.x; y += v.y; z += v.z; ...
method vec_t (line 239) | vec_t& operator *= (const vec_t& v) { x *= v.x; y *= v.y; z *= v.z; ...
method vec_t (line 240) | vec_t& operator *= (float v) { x *= v; y *= v; z *= v; w *=...
method vec_t (line 248) | const vec_t& operator + () const { return (*this); }
method Length (line 249) | float Length() const { return sqrtf(x * x + y * y + z * z); }
method LengthSq (line 250) | float LengthSq() const { return (x * x + y * y + z * z); }
method vec_t (line 251) | vec_t Normalize() { (*this) *= (1.f / ( Length() > FLT_EPSILON ? Len...
method vec_t (line 252) | vec_t Normalize(const vec_t& v) { this->Set(v.x, v.y, v.z, v.w); thi...
method Cross (line 255) | void Cross(const vec_t& v)
method Cross (line 268) | void Cross(const vec_t& v1, const vec_t& v2)
method Dot (line 276) | float Dot(const vec_t& v) const
method Dot3 (line 281) | float Dot3(const vec_t& v) const
method TransformVector (line 291) | void TransformVector(const vec_t& v, const matrix_t& matrix) { (*thi...
method TransformPoint (line 292) | void TransformPoint(const vec_t& v, const matrix_t& matrix) { (*this...
function Dot (line 319) | float Dot(const vec_t& v1, const vec_t& v2)
function vec_t (line 324) | vec_t BuildPlane(const vec_t& p_point1, const vec_t& p_normal)
method vec_t (line 206) | vec_t() = default;
method vec_t (line 207) | vec_t(float v0, float v1, float v2, float v3)
method vec_t (line 213) | vec_t(const float3& v)
method vec_t (line 219) | vec_t(const float4& v)
method Lerp (line 226) | void Lerp(const vec_t& v, float t)
method Set (line 234) | void Set(float v) { x = y = z = w = v; }
method Set (line 235) | void Set(float _x, float _y, float _z = 0.f, float _w = 0.f) { x = _...
method vec_t (line 237) | vec_t& operator -= (const vec_t& v) { x -= v.x; y -= v.y; z -= v.z; ...
method vec_t (line 238) | vec_t& operator += (const vec_t& v) { x += v.x; y += v.y; z += v.z; ...
method vec_t (line 239) | vec_t& operator *= (const vec_t& v) { x *= v.x; y *= v.y; z *= v.z; ...
method vec_t (line 240) | vec_t& operator *= (float v) { x *= v; y *= v; z *= v; w *=...
method vec_t (line 248) | const vec_t& operator + () const { return (*this); }
method Length (line 249) | float Length() const { return sqrtf(x * x + y * y + z * z); }
method LengthSq (line 250) | float LengthSq() const { return (x * x + y * y + z * z); }
method vec_t (line 251) | vec_t Normalize() { (*this) *= (1.f / ( Length() > FLT_EPSILON ? Len...
method vec_t (line 252) | vec_t Normalize(const vec_t& v) { this->Set(v.x, v.y, v.z, v.w); thi...
method Cross (line 255) | void Cross(const vec_t& v)
method Cross (line 268) | void Cross(const vec_t& v1, const vec_t& v2)
method Dot (line 276) | float Dot(const vec_t& v) const
method Dot3 (line 281) | float Dot3(const vec_t& v) const
method TransformVector (line 291) | void TransformVector(const vec_t& v, const matrix_t& matrix) { (*thi...
method TransformPoint (line 292) | void TransformPoint(const vec_t& v, const matrix_t& matrix) { (*this...
type matrix_t (line 335) | struct matrix_t
method Translation (line 352) | void Translation(float _x, float _y, float _z) { this->Translation(m...
method Translation (line 354) | void Translation(const vec_t& vt)
method Scale (line 362) | void Scale(float _x, float _y, float _z)
method Scale (line 369) | void Scale(const vec_t& s) { Scale(s.x, s.y, s.z); }
method matrix_t (line 371) | matrix_t& operator *= (const matrix_t& mat)
method matrix_t (line 379) | matrix_t operator * (const matrix_t& mat) const
method Multiply (line 386) | void Multiply(const matrix_t& matrix)
method Multiply (line 394) | void Multiply(const matrix_t& m1, const matrix_t& m2)
method GetDeterminant (line 399) | float GetDeterminant() const
method SetToIdentity (line 406) | void SetToIdentity()
method Transpose (line 413) | void Transpose()
method OrthoNormalize (line 428) | void OrthoNormalize()
type MOVETYPE (line 627) | enum MOVETYPE
function IsTranslateType (line 647) | static bool IsTranslateType(int type)
function IsRotateType (line 652) | static bool IsRotateType(int type)
function IsScaleType (line 657) | static bool IsScaleType(int type)
type Context (line 701) | struct Context
method Context (line 703) | Context() : mbUsing(false), mbUsingViewManipulate(false), mbEnable(t...
method ImGuiID (line 798) | inline ImGuiID GetCurrentID() {return mIDStack.back();}
function Style (line 822) | Style& GetStyle()
function ImU32 (line 827) | static ImU32 GetColorU32(int idx)
function ImVec2 (line 833) | static ImVec2 worldToPos(const vec_t& worldPos, const matrix_t& mat,
function ComputeCameraRay (line 849) | static void ComputeCameraRay(vec_t& rayOrigin, vec_t& rayDir,
function GetSegmentLengthClipSpace (line 876) | static float GetSegmentLengthClipSpace(const vec_t& start, const vec_t...
function GetParallelogram (line 900) | static float GetParallelogram(const vec_t& ptO, const vec_t& ptA, cons...
function vec_t (line 920) | inline vec_t PointOnSegment(const vec_t& point, const vec_t& vertPos1,...
method vec_t (line 206) | vec_t() = default;
method vec_t (line 207) | vec_t(float v0, float v1, float v2, float v3)
method vec_t (line 213) | vec_t(const float3& v)
method vec_t (line 219) | vec_t(const float4& v)
method Lerp (line 226) | void Lerp(const vec_t& v, float t)
method Set (line 234) | void Set(float v) { x = y = z = w = v; }
method Set (line 235) | void Set(float _x, float _y, float _z = 0.f, float _w = 0.f) { x = _...
method vec_t (line 237) | vec_t& operator -= (const vec_t& v) { x -= v.x; y -= v.y; z -= v.z; ...
method vec_t (line 238) | vec_t& operator += (const vec_t& v) { x += v.x; y += v.y; z += v.z; ...
method vec_t (line 239) | vec_t& operator *= (const vec_t& v) { x *= v.x; y *= v.y; z *= v.z; ...
method vec_t (line 240) | vec_t& operator *= (float v) { x *= v; y *= v; z *= v; w *=...
method vec_t (line 248) | const vec_t& operator + () const { return (*this); }
method Length (line 249) | float Length() const { return sqrtf(x * x + y * y + z * z); }
method LengthSq (line 250) | float LengthSq() const { return (x * x + y * y + z * z); }
method vec_t (line 251) | vec_t Normalize() { (*this) *= (1.f / ( Length() > FLT_EPSILON ? Len...
method vec_t (line 252) | vec_t Normalize(const vec_t& v) { this->Set(v.x, v.y, v.z, v.w); thi...
method Cross (line 255) | void Cross(const vec_t& v)
method Cross (line 268) | void Cross(const vec_t& v1, const vec_t& v2)
method Dot (line 276) | float Dot(const vec_t& v) const
method Dot3 (line 281) | float Dot3(const vec_t& v) const
method TransformVector (line 291) | void TransformVector(const vec_t& v, const matrix_t& matrix) { (*thi...
method TransformPoint (line 292) | void TransformPoint(const vec_t& v, const matrix_t& matrix) { (*this...
function IntersectRayPlane (line 938) | static float IntersectRayPlane(const vec_t& rOrigin, const vec_t& rVec...
function IsInContextRect (line 949) | static bool IsInContextRect(ImVec2 p)
function IsHoveringWindow (line 954) | static bool IsHoveringWindow()
function SetRect (line 969) | void SetRect(float x, float y, float width, float height)
function SetDrawlist (line 980) | void SetDrawlist(ImDrawList* drawlist)
function SetImGuiContext (line 985) | void SetImGuiContext(ImGuiContext* ctx)
function BeginFrame (line 990) | void BeginFrame()
function IsUsing (line 1017) | bool IsUsing()
function IsUsingViewManipulate (line 1022) | bool IsUsingViewManipulate()
function IsUsingAny (line 1027) | bool IsUsingAny()
function IsOver (line 1032) | bool IsOver()
function IsOver (line 1039) | bool IsOver(OPERATION op)
function Enable (line 1052) | void Enable(bool enable)
function ComputeContext (line 1062) | static void ComputeContext(float4x4a& matrix, MODE mode)
function ComputeColors (line 1124) | static void ComputeColors(ImU32* colors, int type, OPERATION operation)
function ComputeTripodAxisAndVisibility (line 1165) | static void ComputeTripodAxisAndVisibility(const int axisIndex, vec_t&...
function ComputeSnap (line 1235) | static void ComputeSnap(float* value, float snap)
function ComputeSnap (line 1247) | static void ComputeSnap(vec_t& value, const float* snap)
function ComputeAngleOnPlan (line 1253) | static float ComputeAngleOnPlan()
function DrawRotationGizmo (line 1269) | static void DrawRotationGizmo(OPERATION op, int type)
function DrawHatchedAxis (line 1372) | static void DrawHatchedAxis(const vec_t& axis)
function DrawScaleGizmo (line 1388) | static void DrawScaleGizmo(OPERATION op, int type)
function DrawScaleUniveralGizmo (line 1476) | static void DrawScaleUniveralGizmo(OPERATION op, int type)
function DrawTranslationGizmo (line 1542) | static void DrawTranslationGizmo(OPERATION op, int type)
function CanActivate (line 1649) | static bool CanActivate()
function GetScaleType (line 1658) | static int GetScaleType(OPERATION op)
function GetRotateType (line 1746) | static int GetRotateType(OPERATION op)
function GetMoveType (line 1815) | static int GetMoveType(OPERATION op, vec_t* gizmoHitProportion)
function HandleTranslation (line 1884) | static bool HandleTranslation(float* matrix, float3& dt, OPERATION op,...
function HandleScale (line 1995) | static bool HandleScale(float* matrix, float3& ds, OPERATION op, int& ...
function HandleRotation (line 2117) | static bool HandleRotation(float* matrix, float4x4a& dr, OPERATION op,...
function SetAlternativeWindow (line 2217) | void SetAlternativeWindow(ImGuiWindow* window)
function SetID (line 2222) | void SetID(int id)
function ImGuiID (line 2227) | ImGuiID GetID(const char* str, const char* str_end)
function ImGuiID (line 2234) | ImGuiID GetID(const char* str)
function ImGuiID (line 2239) | ImGuiID GetID(const void* ptr)
function ImGuiID (line 2246) | ImGuiID GetID(int n)
function PushID (line 2253) | void PushID(const char* str_id)
function PushID (line 2259) | void PushID(const char* str_id_begin, const char* str_id_end)
function PushID (line 2265) | void PushID(const void* ptr_id)
function PushID (line 2271) | void PushID(int int_id)
function PopID (line 2277) | void PopID()
function AllowAxisFlip (line 2283) | void AllowAxisFlip(bool value)
function SetAxisLimit (line 2288) | void SetAxisLimit(float value)
function SetAxisMask (line 2293) | void SetAxisMask(bool x, bool y, bool z)
function SetPlaneLimit (line 2298) | void SetPlaneLimit(float value)
function IsOver (line 2303) | bool IsOver(float* position, float pixelRadius)
function Manipulate (line 2312) | bool Manipulate(OPERATION operation, MODE mode, float4x4a& world, floa...
function SetGizmoSizeClipSpace (line 2360) | void SetGizmoSizeClipSpace(float value)
FILE: External/ImGui/ImGuizmo.h
function EditTransform (line 46) | void EditTransform(const Camera& camera, matrix_t& matrix)
type ImGuiWindow (line 119) | struct ImGuiWindow
type ImDrawList (line 120) | struct ImDrawList
type ImGuiContext (line 121) | struct ImGuiContext
function namespace (line 123) | namespace ZetaRay::Math
function namespace (line 129) | namespace IMGUIZMO_NAMESPACE
FILE: External/concurrentqueue/blockingconcurrentqueue.h
function namespace (line 19) | namespace moodycamel
function swap (line 100) | inline void swap(BlockingConcurrentQueue& other) MOODYCAMEL_NOEXCEPT
function enqueue (line 137) | inline bool enqueue(T&& item)
function enqueue (line 150) | inline bool enqueue(producer_token_t const& token, T const& item)
function enqueue (line 163) | inline bool enqueue(producer_token_t const& token, T&& item)
function try_enqueue (line 209) | inline bool try_enqueue(T const& item)
function try_enqueue (line 223) | inline bool try_enqueue(T&& item)
function try_enqueue (line 235) | inline bool try_enqueue(producer_token_t const& token, T const& item)
function try_enqueue (line 247) | inline bool try_enqueue(producer_token_t const& token, T&& item)
function is_lock_free (line 547) | static constexpr bool is_lock_free()
function destroy (line 562) | void destroy(U* p)
FILE: External/concurrentqueue/concurrentqueue.h
function namespace (line 83) | namespace moodycamel { namespace details {
function namespace (line 91) | namespace moodycamel { namespace details {
function namespace (line 101) | namespace moodycamel { namespace details {
function namespace (line 109) | namespace moodycamel { namespace details {
function namespace (line 154) | namespace moodycamel { namespace details {
function namespace (line 237) | namespace moodycamel { namespace details {
function namespace (line 276) | namespace moodycamel { namespace details {
function namespace (line 290) | namespace moodycamel {
type ConsumerToken (line 716) | struct ConsumerToken
function swap (line 955) | inline void swap(ConcurrentQueue& other) MOODYCAMEL_NOEXCEPT
function enqueue (line 1006) | inline bool enqueue(T&& item)
function enqueue (line 1016) | inline bool enqueue(producer_token_t const& token, T const& item)
function enqueue (line 1025) | inline bool enqueue(producer_token_t const& token, T&& item)
function try_enqueue (line 1060) | inline bool try_enqueue(T const& item)
function try_enqueue (line 1071) | inline bool try_enqueue(T&& item)
function try_enqueue (line 1080) | inline bool try_enqueue(producer_token_t const& token, T const& item)
function try_enqueue (line 1088) | inline bool try_enqueue(producer_token_t const& token, T&& item)
function size_approx (line 1325) | size_t size_approx() const
function update_current_producer_after_rotation (line 1392) | inline bool update_current_producer_after_rotation(consumer_token_t& token)
function freeListHead (line 1452) | freeListHead(nullptr) { }
function swap (line 1454) | void swap(FreeList& other) { details::swap_relaxed(freeListHead, other.f...
function add (line 1459) | inline void add(N* node)
function N (line 1473) | inline N* try_get()
function N (line 1513) | N* head_unsafe() const { return freeListHead.load(std::memory_order_rela...
type InnerQueueContext (line 1557) | enum InnerQueueContext { implicit_context = 0, explicit_context = 1 }
function else (line 1559) | struct Block
function T (line 1666) | inline T* operator[](index_t idx) MOODYCAMEL_NOEXCEPT { return static_ca...
function T (line 1667) | inline T const* operator[](index_t idx) const MOODYCAMEL_NOEXCEPT { retu...
type MemStats (line 1690) | struct MemStats
type ProducerBase (line 1698) | struct ProducerBase
function virtual (line 1711) | virtual ~ProducerBase() { }
function ProducerBase (line 1735) | inline ProducerBase* next_prod() const { return static_cast<ProducerBase...
function size_approx (line 1737) | inline size_t size_approx() const
function ProducerBase (line 1769) | struct ExplicitProducer : public ProducerBase
function else (line 1890) | else if (!new_block_index(pr_blockIndexSlotsUsed)) {
type Guard (line 2024) | struct Guard {
function else (line 2101) | else if (full || !new_block_index(originalBlockIndexSlotsUsed)) {
function else (line 2181) | else {
type BlockIndexEntry (line 2341) | struct BlockIndexEntry
type BlockIndexHeader (line 2347) | struct BlockIndexHeader
function new_block_index (line 2356) | bool new_block_index(size_t numberOfFilledSlotsToExpose)
function ProducerBase (line 2421) | struct ImplicitProducer : public ProducerBase
function else (line 2720) | else {
type BlockIndexEntry (line 2885) | struct BlockIndexEntry
type BlockIndexHeader (line 2891) | struct BlockIndexHeader
function else (line 2921) | else if (!new_block_index()) {
function rewind_block_index_tail (line 2935) | inline void rewind_block_index_tail()
function BlockIndexEntry (line 2941) | inline BlockIndexEntry* get_block_index_entry_for_index(index_t index) c...
function get_block_index_index_for_index (line 2948) | inline size_t get_block_index_index_for_index(index_t index, BlockIndexH...
function new_block_index (line 2966) | bool new_block_index()
function populate_initial_block_list (line 3039) | void populate_initial_block_list(size_t blockCount)
function Block (line 3056) | inline Block* try_get_block_from_initial_pool()
function add_block_to_free_list (line 3067) | inline void add_block_to_free_list(Block* block)
function add_blocks_to_free_list (line 3080) | inline void add_blocks_to_free_list(Block* block)
function Block (line 3089) | inline Block* try_get_block_from_free_list()
type MemStats (line 3119) | struct MemStats {
function MemStats (line 3214) | MemStats getMemStats()
function ProducerBase (line 3227) | ProducerBase* recycle_or_create_producer(bool isExplicit)
function ProducerBase (line 3246) | ProducerBase* add_producer(ProducerBase* producer)
function reown_producers (line 3279) | void reown_producers()
type ImplicitProducerKVP (line 3294) | struct ImplicitProducerKVP
function swap (line 3313) | inline void swap(ImplicitProducerKVP& other) MOODYCAMEL_NOEXCEPT
type ImplicitProducerHash (line 3325) | struct ImplicitProducerHash
function populate_initial_implicit_producer_hash (line 3332) | inline void populate_initial_implicit_producer_hash()
function swap_implicit_producer_hashes (line 3350) | void swap_implicit_producer_hashes(ConcurrentQueue& other)
function ImplicitProducer (line 3388) | ImplicitProducer* get_or_add_implicit_producer()
function swap (line 3723) | inline void swap(ProducerToken& a, ProducerToken& b) MOODYCAMEL_NOEXCEPT
function swap (line 3728) | inline void swap(ConsumerToken& a, ConsumerToken& b) MOODYCAMEL_NOEXCEPT
FILE: External/concurrentqueue/lightweightsemaphore.h
type _SECURITY_ATTRIBUTES (line 19) | struct _SECURITY_ATTRIBUTES
function namespace (line 37) | namespace moodycamel
function tryWait (line 355) | bool tryWait()
function wait (line 366) | bool wait()
function wait (line 371) | bool wait(std::int64_t timeout_usecs)
function tryWaitMany (line 377) | ssize_t tryWaitMany(ssize_t max)
function waitMany (line 391) | ssize_t waitMany(ssize_t max, std::int64_t timeout_usecs)
function waitMany (line 400) | ssize_t waitMany(ssize_t max)
FILE: External/stb/stb_image.h
type stbi_uc (line 385) | typedef unsigned char stbi_uc;
type stbi_us (line 386) | typedef unsigned short stbi_us;
type stbi_io_callbacks (line 409) | typedef struct
type stbi__uint16 (line 640) | typedef unsigned short stbi__uint16;
type stbi__int16 (line 641) | typedef signed short stbi__int16;
type stbi__uint32 (line 642) | typedef unsigned int stbi__uint32;
type stbi__int32 (line 643) | typedef signed int stbi__int32;
type stbi__uint16 (line 646) | typedef uint16_t stbi__uint16;
type stbi__int16 (line 647) | typedef int16_t stbi__int16;
type stbi__uint32 (line 648) | typedef uint32_t stbi__uint32;
type stbi__int32 (line 649) | typedef int32_t stbi__int32;
function stbi__cpuid3 (line 730) | static int stbi__cpuid3(void)
function stbi__sse2_available (line 752) | static int stbi__sse2_available(void)
function stbi__sse2_available (line 763) | static int stbi__sse2_available(void)
type stbi__context (line 803) | typedef struct
function stbi__start_mem (line 824) | static void stbi__start_mem(stbi__context *s, stbi_uc const *buffer, int...
function stbi__start_callbacks (line 834) | static void stbi__start_callbacks(stbi__context *s, stbi_io_callbacks *c...
function stbi__stdio_read (line 848) | static int stbi__stdio_read(void *user, char *data, int size)
function stbi__stdio_skip (line 853) | static void stbi__stdio_skip(void *user, int n)
function stbi__stdio_eof (line 863) | static int stbi__stdio_eof(void *user)
function stbi__start_file (line 875) | static void stbi__start_file(stbi__context *s, FILE *f)
function stbi__rewind (line 884) | static void stbi__rewind(stbi__context *s)
type stbi__result_info (line 899) | typedef struct
function STBIDEF (line 970) | STBIDEF const char *stbi_failure_reason(void)
function stbi__err (line 976) | static int stbi__err(const char *str)
function stbi__addsizes_valid (line 1000) | static int stbi__addsizes_valid(int a, int b)
function stbi__mul2sizes_valid (line 1012) | static int stbi__mul2sizes_valid(int a, int b)
function stbi__mad2sizes_valid (line 1022) | static int stbi__mad2sizes_valid(int a, int b, int add)
function stbi__mad3sizes_valid (line 1029) | static int stbi__mad3sizes_valid(int a, int b, int c, int add)
function stbi__mad4sizes_valid (line 1037) | static int stbi__mad4sizes_valid(int a, int b, int c, int d, int add)
function stbi__addints_valid (line 1068) | static int stbi__addints_valid(int a, int b)
function stbi__mul2shorts_valid (line 1076) | static int stbi__mul2shorts_valid(short a, short b)
function STBIDEF (line 1099) | STBIDEF void stbi_image_free(void *retval_from_stbi_load)
function STBIDEF (line 1114) | STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip)
function STBIDEF (line 1124) | STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_sh...
function stbi_uc (line 1188) | static stbi_uc *stbi__convert_16_to_8(stbi__uint16 *orig, int w, int h, ...
function stbi__uint16 (line 1204) | static stbi__uint16 *stbi__convert_8_to_16(stbi_uc *orig, int w, int h, ...
function stbi__vertical_flip (line 1220) | static void stbi__vertical_flip(void *image, int w, int h, int bytes_per...
function stbi__vertical_flip_slices (line 1245) | static void stbi__vertical_flip_slices(void *image, int w, int h, int z,...
function stbi__uint16 (line 1284) | static stbi__uint16 *stbi__load_and_postprocess_16bit(stbi__context *s, ...
function stbi__float_postprocess (line 1312) | static void stbi__float_postprocess(float *result, int *x, int *y, int *...
function STBIDEF (line 1329) | STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, c...
function FILE (line 1335) | static FILE *stbi__fopen(char const *filename, char const *mode)
function STBIDEF (line 1364) | STBIDEF stbi_uc *stbi_load(char const *filename, int *x, int *y, int *co...
function STBIDEF (line 1374) | STBIDEF stbi_uc *stbi_load_from_file(FILE *f, int *x, int *y, int *comp,...
function STBIDEF (line 1387) | STBIDEF stbi__uint16 *stbi_load_from_file_16(FILE *f, int *x, int *y, in...
function STBIDEF (line 1400) | STBIDEF stbi_us *stbi_load_16(char const *filename, int *x, int *y, int ...
function STBIDEF (line 1413) | STBIDEF stbi_us *stbi_load_16_from_memory(stbi_uc const *buffer, int len...
function STBIDEF (line 1420) | STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *cl...
function STBIDEF (line 1427) | STBIDEF stbi_uc *stbi_load_from_memory(stbi_uc const *buffer, int len, i...
function STBIDEF (line 1434) | STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk,...
function STBIDEF (line 1442) | STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int le...
function STBIDEF (line 1476) | STBIDEF float *stbi_loadf_from_memory(stbi_uc const *buffer, int len, in...
function STBIDEF (line 1483) | STBIDEF float *stbi_loadf_from_callbacks(stbi_io_callbacks const *clbk, ...
function STBIDEF (line 1491) | STBIDEF float *stbi_loadf(char const *filename, int *x, int *y, int *com...
function STBIDEF (line 1501) | STBIDEF float *stbi_loadf_from_file(FILE *f, int *x, int *y, int *comp, ...
function STBIDEF (line 1515) | STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len)
function STBIDEF (line 1529) | STBIDEF int stbi_is_hdr (char const *filename)
function STBIDEF (line 1540) | STBIDEF int stbi_is_hdr_from_file(FILE *f)
function STBIDEF (line 1557) | STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clb...
function STBIDEF (line 1573) | STBIDEF void stbi_ldr_to_hdr_gamma(float gamma) { stbi__l2h_gamma = ga...
function STBIDEF (line 1574) | STBIDEF void stbi_ldr_to_hdr_scale(float scale) { stbi__l2h_scale = sc...
function STBIDEF (line 1579) | STBIDEF void stbi_hdr_to_ldr_gamma(float gamma) { stbi__h2l_gamma_i = ...
function STBIDEF (line 1580) | STBIDEF void stbi_hdr_to_ldr_scale(float scale) { stbi__h2l_scale_i = ...
function stbi__refill_buffer (line 1595) | static void stbi__refill_buffer(stbi__context *s)
function stbi_inline (line 1612) | stbi_inline static stbi_uc stbi__get8(stbi__context *s)
function stbi_inline (line 1626) | stbi_inline static int stbi__at_eof(stbi__context *s)
function stbi__skip (line 1642) | static void stbi__skip(stbi__context *s, int n)
function stbi__getn (line 1664) | static int stbi__getn(stbi__context *s, stbi_uc *buffer, int n)
function stbi__get16be (line 1692) | static int stbi__get16be(stbi__context *s)
function stbi__uint32 (line 1702) | static stbi__uint32 stbi__get32be(stbi__context *s)
function stbi__get16le (line 1712) | static int stbi__get16le(stbi__context *s)
function stbi__uint32 (line 1720) | static stbi__uint32 stbi__get32le(stbi__context *s)
function stbi_uc (line 1744) | static stbi_uc stbi__compute_y(int r, int g, int b)
function stbi__uint16 (line 1801) | static stbi__uint16 stbi__compute_y_16(int r, int g, int b)
function stbi__uint16 (line 1810) | static stbi__uint16 *stbi__convert_format16(stbi__uint16 *data, int img_...
function stbi_uc (line 1882) | static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp)
type stbi__huffman (line 1936) | typedef struct
type stbi__jpeg (line 1947) | typedef struct
function stbi__build_huffman (line 2001) | static int stbi__build_huffman(stbi__huffman *h, int *count)
function stbi__build_fast_ac (line 2048) | static void stbi__build_fast_ac(stbi__int16 *fast_ac, stbi__huffman *h)
function stbi__grow_buffer_unsafe (line 2073) | static void stbi__grow_buffer_unsafe(stbi__jpeg *j)
function stbi_inline (line 2095) | stbi_inline static int stbi__jpeg_huff_decode(stbi__jpeg *j, stbi__huffm...
function stbi_inline (line 2151) | stbi_inline static int stbi__extend_receive(stbi__jpeg *j, int n)
function stbi_inline (line 2167) | stbi_inline static int stbi__jpeg_get_bits(stbi__jpeg *j, int n)
function stbi_inline (line 2179) | stbi_inline static int stbi__jpeg_get_bit(stbi__jpeg *j)
function stbi__jpeg_decode_block (line 2208) | static int stbi__jpeg_decode_block(stbi__jpeg *j, short data[64], stbi__...
function stbi__jpeg_decode_block_prog_dc (line 2263) | static int stbi__jpeg_decode_block_prog_dc(stbi__jpeg *j, short data[64]...
function stbi__jpeg_decode_block_prog_ac (line 2293) | static int stbi__jpeg_decode_block_prog_ac(stbi__jpeg *j, short data[64]...
function stbi_inline (line 2414) | stbi_inline static stbi_uc stbi__clamp(int x)
function stbi__idct_block (line 2465) | static void stbi__idct_block(stbi_uc *out, int out_stride, short data[64])
function stbi__idct_simd (line 2528) | static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64])
function stbi__idct_simd (line 2709) | static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64])
function stbi_uc (line 2917) | static stbi_uc stbi__get_marker(stbi__jpeg *j)
function stbi__jpeg_reset (line 2934) | static void stbi__jpeg_reset(stbi__jpeg *j)
function stbi__parse_entropy_coded_data (line 2947) | static int stbi__parse_entropy_coded_data(stbi__jpeg *z)
function stbi__jpeg_dequantize (line 3071) | static void stbi__jpeg_dequantize(short *data, stbi__uint16 *dequant)
function stbi__jpeg_finish (line 3078) | static void stbi__jpeg_finish(stbi__jpeg *z)
function stbi__process_marker (line 3097) | static int stbi__process_marker(stbi__jpeg *z, int m)
function stbi__process_scan_header (line 3201) | static int stbi__process_scan_header(stbi__jpeg *z)
function stbi__free_jpeg_components (line 3240) | static int stbi__free_jpeg_components(stbi__jpeg *z, int ncomp, int why)
function stbi__process_frame_header (line 3262) | static int stbi__process_frame_header(stbi__jpeg *z, int scan)
function stbi__decode_jpeg_header (line 3363) | static int stbi__decode_jpeg_header(stbi__jpeg *z, int scan)
function stbi__skip_jpeg_junk_at_end (line 3387) | static int stbi__skip_jpeg_junk_at_end(stbi__jpeg *j)
function stbi__decode_jpeg_image (line 3410) | static int stbi__decode_jpeg_image(stbi__jpeg *j)
type stbi_uc (line 3449) | typedef stbi_uc *(*resample_row_func)(stbi_uc *out, stbi_uc *in0, stbi_u...
function stbi_uc (line 3454) | static stbi_uc *resample_row_1(stbi_uc *out, stbi_uc *in_near, stbi_uc *...
function stbi_uc (line 3463) | static stbi_uc* stbi__resample_row_v_2(stbi_uc *out, stbi_uc *in_near, s...
function stbi_uc (line 3473) | static stbi_uc* stbi__resample_row_h_2(stbi_uc *out, stbi_uc *in_near, ...
function stbi_uc (line 3503) | static stbi_uc *stbi__resample_row_hv_2(stbi_uc *out, stbi_uc *in_near, ...
function stbi_uc (line 3528) | static stbi_uc *stbi__resample_row_hv_2_simd(stbi_uc *out, stbi_uc *in_n...
function stbi_uc (line 3644) | static stbi_uc *stbi__resample_row_generic(stbi_uc *out, stbi_uc *in_nea...
function stbi__YCbCr_to_RGB_row (line 3658) | static void stbi__YCbCr_to_RGB_row(stbi_uc *out, const stbi_uc *y, const...
function stbi__YCbCr_to_RGB_simd (line 3684) | static void stbi__YCbCr_to_RGB_simd(stbi_uc *out, stbi_uc const *y, stbi...
function stbi__setup_jpeg (line 3819) | static void stbi__setup_jpeg(stbi__jpeg *j)
function stbi__cleanup_jpeg (line 3841) | static void stbi__cleanup_jpeg(stbi__jpeg *j)
type stbi__resample (line 3846) | typedef struct
function stbi_uc (line 3857) | static stbi_uc stbi__blinn_8x8(stbi_uc x, stbi_uc y)
function stbi_uc (line 3863) | static stbi_uc *load_jpeg_image(stbi__jpeg *z, int *out_x, int *out_y, i...
function stbi__jpeg_test (line 4040) | static int stbi__jpeg_test(stbi__context *s)
function stbi__jpeg_info_raw (line 4054) | static int stbi__jpeg_info_raw(stbi__jpeg *j, int *x, int *y, int *comp)
function stbi__jpeg_info (line 4066) | static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp)
type stbi__zhuffman (line 4095) | typedef struct
function stbi_inline (line 4105) | stbi_inline static int stbi__bitreverse16(int n)
function stbi_inline (line 4114) | stbi_inline static int stbi__bit_reverse(int v, int bits)
function stbi__zbuild_huffman (line 4122) | static int stbi__zbuild_huffman(stbi__zhuffman *z, const stbi_uc *sizeli...
type stbi__zbuf (line 4175) | typedef struct
function stbi_inline (line 4189) | stbi_inline static int stbi__zeof(stbi__zbuf *z)
function stbi_inline (line 4194) | stbi_inline static stbi_uc stbi__zget8(stbi__zbuf *z)
function stbi__fill_bits (line 4199) | static void stbi__fill_bits(stbi__zbuf *z)
function stbi__zreceive (line 4211) | int stbi__zreceive(stbi__zbuf *z, int n)
function stbi__zhuffman_decode_slowpath (line 4221) | static int stbi__zhuffman_decode_slowpath(stbi__zbuf *a, stbi__zhuffman *z)
function stbi_inline (line 4240) | stbi_inline static int stbi__zhuffman_decode(stbi__zbuf *a, stbi__zhuffm...
function stbi__zexpand (line 4259) | static int stbi__zexpand(stbi__zbuf *z, char *zout, int n) // need to m...
function stbi__parse_huffman_block (line 4295) | static int stbi__parse_huffman_block(stbi__zbuf *a)
function stbi__compute_huffman_codes (line 4338) | static int stbi__compute_huffman_codes(stbi__zbuf *a)
function stbi__parse_uncompressed_block (line 4388) | static int stbi__parse_uncompressed_block(stbi__zbuf *a)
function stbi__parse_zlib_header (line 4417) | static int stbi__parse_zlib_header(stbi__zbuf *a)
function stbi__parse_zlib (line 4460) | static int stbi__parse_zlib(stbi__zbuf *a, int parse_header)
function stbi__do_zlib (line 4488) | static int stbi__do_zlib(stbi__zbuf *a, char *obuf, int olen, int exp, i...
function STBIDEF (line 4498) | STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int ...
function STBIDEF (line 4514) | STBIDEF char *stbi_zlib_decode_malloc(char const *buffer, int len, int *...
function STBIDEF (line 4519) | STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *b...
function STBIDEF (line 4535) | STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, char const ...
function STBIDEF (line 4546) | STBIDEF char *stbi_zlib_decode_noheader_malloc(char const *buffer, int l...
function STBIDEF (line 4562) | STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, co...
type stbi__pngchunk (line 4585) | typedef struct
function stbi__pngchunk (line 4591) | static stbi__pngchunk stbi__get_chunk_header(stbi__context *s)
function stbi__check_png_header (line 4599) | static int stbi__check_png_header(stbi__context *s)
type stbi__png (line 4608) | typedef struct
function stbi__paeth (line 4636) | static int stbi__paeth(int a, int b, int c)
function stbi__create_png_image_raw (line 4650) | static int stbi__create_png_image_raw(stbi__png *a, stbi_uc *raw, stbi__...
function stbi__create_png_image (line 4862) | static int stbi__create_png_image(stbi__png *a, stbi_uc *image_data, stb...
function stbi__compute_transparency (line 4907) | static int stbi__compute_transparency(stbi__png *z, stbi_uc tc[3], int o...
function stbi__compute_transparency16 (line 4932) | static int stbi__compute_transparency16(stbi__png *z, stbi__uint16 tc[3]...
function stbi__expand_png_palette (line 4957) | static int stbi__expand_png_palette(stbi__png *a, stbi_uc *palette, int ...
function STBIDEF (line 4997) | STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpr...
function STBIDEF (line 5002) | STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_conv...
function STBIDEF (line 5014) | STBIDEF void stbi_set_unpremultiply_on_load_thread(int flag_true_if_shou...
function STBIDEF (line 5020) | STBIDEF void stbi_convert_iphone_png_to_rgb_thread(int flag_true_if_shou...
function stbi__de_iphone (line 5034) | static void stbi__de_iphone(stbi__png *z)
function stbi__parse_png_file (line 5079) | static int stbi__parse_png_file(stbi__png *z, int scan, int req_comp)
function stbi__png_test (line 5301) | static int stbi__png_test(stbi__context *s)
function stbi__png_info_raw (line 5309) | static int stbi__png_info_raw(stbi__png *p, int *x, int *y, int *comp)
function stbi__png_info (line 5321) | static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__png_is16 (line 5328) | static int stbi__png_is16(stbi__context *s)
function stbi__bmp_test_raw (line 5345) | static int stbi__bmp_test_raw(stbi__context *s)
function stbi__bmp_test (line 5360) | static int stbi__bmp_test(stbi__context *s)
function stbi__high_bit (line 5369) | static int stbi__high_bit(unsigned int z)
function stbi__bitcount (line 5381) | static int stbi__bitcount(unsigned int a)
function stbi__shiftsigned (line 5394) | static int stbi__shiftsigned(unsigned int v, int shift, int bits)
type stbi__bmp_data (line 5414) | typedef struct
function stbi__bmp_set_mask_defaults (line 5421) | static int stbi__bmp_set_mask_defaults(stbi__bmp_data *info, int compress)
function stbi__tga_get_comp (line 5738) | static int stbi__tga_get_comp(int bits_per_pixel, int is_grey, int* is_r...
function stbi__tga_info (line 5754) | static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__tga_test (line 5819) | static int stbi__tga_test(stbi__context *s)
function stbi__tga_read_rgb16 (line 5851) | static void stbi__tga_read_rgb16(stbi__context *s, stbi_uc* out)
function stbi__psd_test (line 6080) | static int stbi__psd_test(stbi__context *s)
function stbi__psd_decode_rle (line 6087) | static int stbi__psd_decode_rle(stbi__context *s, stbi_uc *p, int pixelC...
function stbi__pic_is4 (line 6335) | static int stbi__pic_is4(stbi__context *s,const char *str)
function stbi__pic_test_core (line 6345) | static int stbi__pic_test_core(stbi__context *s)
type stbi__pic_packet (line 6361) | typedef struct
function stbi_uc (line 6366) | static stbi_uc *stbi__readval(stbi__context *s, int channel, stbi_uc *dest)
function stbi__copyval (line 6380) | static void stbi__copyval(int channel,stbi_uc *dest,const stbi_uc *src)
function stbi_uc (line 6389) | static stbi_uc *stbi__pic_load_core(stbi__context *s,int width,int heigh...
function stbi__pic_test (line 6540) | static int stbi__pic_test(stbi__context *s)
type stbi__gif_lzw (line 6552) | typedef struct
type stbi__gif (line 6559) | typedef struct
function stbi__gif_test_raw (line 6579) | static int stbi__gif_test_raw(stbi__context *s)
function stbi__gif_test (line 6589) | static int stbi__gif_test(stbi__context *s)
function stbi__gif_parse_colortable (line 6596) | static void stbi__gif_parse_colortable(stbi__context *s, stbi_uc pal[256...
function stbi__gif_header (line 6607) | static int stbi__gif_header(stbi__context *s, stbi__gif *g, int *comp, i...
function stbi__gif_info_raw (line 6638) | static int stbi__gif_info_raw(stbi__context *s, int *x, int *y, int *comp)
function stbi__out_gif_code (line 6653) | static void stbi__out_gif_code(stbi__gif *g, stbi__uint16 code)
function stbi_uc (line 6690) | static stbi_uc *stbi__process_gif_raster(stbi__context *s, stbi__gif *g)
function stbi_uc (line 6777) | static stbi_uc *stbi__gif_load_next(stbi__context *s, stbi__gif *g, int ...
function stbi__gif_info (line 7076) | static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__hdr_test_core (line 7086) | static int stbi__hdr_test_core(stbi__context *s, const char *signature)
function stbi__hdr_test (line 7096) | static int stbi__hdr_test(stbi__context* s)
function stbi__hdr_convert (line 7130) | static void stbi__hdr_convert(float *output, stbi_uc *input, int req_comp)
function stbi__hdr_info (line 7288) | static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__bmp_info (line 7334) | static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__psd_info (line 7358) | static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__psd_is16 (line 7393) | static int stbi__psd_is16(stbi__context *s)
function stbi__pic_info (line 7422) | static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__pnm_test (line 7493) | static int stbi__pnm_test(stbi__context *s)
function stbi__pnm_isspace (line 7542) | static int stbi__pnm_isspace(char c)
function stbi__pnm_skip_whitespace (line 7547) | static void stbi__pnm_skip_whitespace(stbi__context *s, char *c)
function stbi__pnm_isdigit (line 7561) | static int stbi__pnm_isdigit(char c)
function stbi__pnm_getinteger (line 7566) | static int stbi__pnm_getinteger(stbi__context *s, char *c)
function stbi__pnm_info (line 7580) | static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp)
function stbi__pnm_is16 (line 7623) | static int stbi__pnm_is16(stbi__context *s)
function stbi__info_main (line 7631) | static int stbi__info_main(stbi__context *s, int *x, int *y, int *comp)
function stbi__is_16_main (line 7673) | static int stbi__is_16_main(stbi__context *s)
function STBIDEF (line 7690) | STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp)
function STBIDEF (line 7700) | STBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp)
function STBIDEF (line 7711) | STBIDEF int stbi_is_16_bit(char const *filename)
function STBIDEF (line 7721) | STBIDEF int stbi_is_16_bit_from_file(FILE *f)
function STBIDEF (line 7733) | STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x...
function STBIDEF (line 7740) | STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *c, void *u...
function STBIDEF (line 7747) | STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len)
function STBIDEF (line 7754) | STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *c, vo...
FILE: External/stb/stb_image_write.h
function STBIWDEF (line 262) | STBIWDEF void stbi_flip_vertically_on_write(int flag)
type stbi__write_context (line 267) | typedef struct
function stbi__start_write_callbacks (line 276) | static void stbi__start_write_callbacks(stbi__write_context *s, stbi_wri...
function stbi__stdio_write (line 284) | static void stbi__stdio_write(void *context, void *data, int size)
function STBIWDEF (line 298) | STBIWDEF int stbiw_convert_wchar_to_utf8(char *buffer, size_t bufferlen,...
function FILE (line 304) | static FILE *stbiw__fopen(char const *filename, char const *mode)
function stbi__start_write_file (line 332) | static int stbi__start_write_file(stbi__write_context *s, const char *fi...
function stbi__end_write_file (line 339) | static void stbi__end_write_file(stbi__write_context *s)
type stbiw_uint32 (line 346) | typedef unsigned int stbiw_uint32;
function stbiw__writefv (line 349) | static void stbiw__writefv(stbi__write_context *s, const char *fmt, va_l...
function stbiw__writef (line 378) | static void stbiw__writef(stbi__write_context *s, const char *fmt, ...)
function stbiw__write_flush (line 386) | static void stbiw__write_flush(stbi__write_context *s)
function stbiw__putc (line 394) | static void stbiw__putc(stbi__write_context *s, unsigned char c)
function stbiw__write1 (line 399) | static void stbiw__write1(stbi__write_context *s, unsigned char a)
function stbiw__write3 (line 406) | static void stbiw__write3(stbi__write_context *s, unsigned char a, unsig...
function stbiw__write_pixel (line 418) | static void stbiw__write_pixel(stbi__write_context *s, int rgb_dir, int ...
function stbiw__write_pixels (line 451) | static void stbiw__write_pixels(stbi__write_context *s, int rgb_dir, int...
function stbiw__outfile (line 478) | static int stbiw__outfile(stbi__write_context *s, int rgb_dir, int vdir,...
function stbi_write_bmp_core (line 492) | static int stbi_write_bmp_core(stbi__write_context *s, int x, int y, int...
function STBIWDEF (line 512) | STBIWDEF int stbi_write_bmp_to_func(stbi_write_func *func, void *context...
function STBIWDEF (line 520) | STBIWDEF int stbi_write_bmp(char const *filename, int x, int y, int comp...
function stbi_write_tga_core (line 532) | static int stbi_write_tga_core(stbi__write_context *s, int x, int y, int...
function STBIWDEF (line 611) | STBIWDEF int stbi_write_tga_to_func(stbi_write_func *func, void *context...
function STBIWDEF (line 619) | STBIWDEF int stbi_write_tga(char const *filename, int x, int y, int comp...
function stbiw__linear_to_rgbe (line 639) | static void stbiw__linear_to_rgbe(unsigned char *rgbe, float *linear)
function stbiw__write_run_data (line 656) | static void stbiw__write_run_data(stbi__write_context *s, int length, un...
function stbiw__write_dump_data (line 664) | static void stbiw__write_dump_data(stbi__write_context *s, int length, u...
function stbiw__write_hdr_scanline (line 672) | static void stbiw__write_hdr_scanline(stbi__write_context *s, int width,...
function stbi_write_hdr_core (line 761) | static int stbi_write_hdr_core(stbi__write_context *s, int x, int y, int...
function STBIWDEF (line 787) | STBIWDEF int stbi_write_hdr_to_func(stbi_write_func *func, void *context...
function STBIWDEF (line 794) | STBIWDEF int stbi_write_hdr(char const *filename, int x, int y, int comp...
function stbiw__zlib_bitrev (line 849) | static int stbiw__zlib_bitrev(int code, int codebits)
function stbiw__zlib_countm (line 859) | static unsigned int stbiw__zlib_countm(unsigned char *a, unsigned char *...
function stbiw__zhash (line 867) | static unsigned int stbiw__zhash(unsigned char *data)
function stbiw__crc32 (line 1024) | static unsigned int stbiw__crc32(unsigned char *buffer, int len)
function stbiw__wpcrc (line 1077) | static void stbiw__wpcrc(unsigned char **data, int len)
function stbiw__paeth (line 1083) | static unsigned char stbiw__paeth(int a, int b, int c)
function stbiw__encode_png_line (line 1092) | static void stbiw__encode_png_line(unsigned char *pixels, int stride_byt...
function STBIWDEF (line 1215) | STBIWDEF int stbi_write_png(char const *filename, int x, int y, int comp...
function STBIWDEF (line 1231) | STBIWDEF int stbi_write_png_to_func(stbi_write_func *func, void *context...
function stbiw__jpg_writeBits (line 1253) | static void stbiw__jpg_writeBits(stbi__write_context *s, int *bitBufP, i...
function stbiw__jpg_DCT (line 1270) | static void stbiw__jpg_DCT(float *d0p, float *d1p, float *d2p, float *d3...
function stbiw__jpg_calcBits (line 1318) | static void stbiw__jpg_calcBits(int val, unsigned short bits[2]) {
function stbiw__jpg_processDU (line 1328) | static int stbiw__jpg_processDU(stbi__write_context *s, int *bitBuf, int...
function stbi_write_jpg_core (line 1398) | static int stbi_write_jpg_core(stbi__write_context *s, int width, int he...
function STBIWDEF (line 1607) | STBIWDEF int stbi_write_jpg_to_func(stbi_write_func *func, void *context...
function STBIWDEF (line 1616) | STBIWDEF int stbi_write_jpg(char const *filename, int x, int y, int comp...
FILE: External/stb/stb_sprintf.h
function STBSP__PUBLICDEF (line 259) | STBSP__PUBLICDEF void STB_SPRINTF_DECORATE(set_separators)(char pcomma, ...
function stbsp__lead_sign (line 279) | static void stbsp__lead_sign(stbsp__uint32 fl, char *sign)
function STBSP__PUBLICDEF (line 294) | STBSP__PUBLICDEF int STB_SPRINTF_DECORATE(vsprintfcb)(STBSP_SPRINTFCB *c...
function STBSP__PUBLICDEF (line 1349) | STBSP__PUBLICDEF int STB_SPRINTF_DECORATE(sprintf)(char *buf, char const...
type stbsp__context (line 1359) | typedef struct stbsp__context {
function STBSP__PUBLICDEF (line 1403) | STBSP__PUBLICDEF int STB_SPRINTF_DECORATE( vsnprintf )( char * buf, int ...
function STBSP__PUBLICDEF (line 1433) | STBSP__PUBLICDEF int STB_SPRINTF_DECORATE(snprintf)(char *buf, int count...
function STBSP__PUBLICDEF (line 1445) | STBSP__PUBLICDEF int STB_SPRINTF_DECORATE(vsprintf)(char *buf, char cons...
function stbsp__int32 (line 1464) | static stbsp__int32 stbsp__real_to_parts(stbsp__int64 *bits, stbsp__int3...
function stbsp__raise_to_power10 (line 1611) | static void stbsp__raise_to_power10(double *ohi, double *olo, double d, ...
function stbsp__int32 (line 1678) | static stbsp__int32 stbsp__real_to_str(char const **start, stbsp__uint32...
FILE: Source/ZetaCore/App/App.h
function namespace (line 9) | namespace ZetaRay::Support
function namespace (line 20) | namespace ZetaRay::App
function namespace (line 25) | namespace ZetaRay::Util
function namespace (line 48) | namespace ZetaRay::App
function namespace (line 53) | namespace ZetaRay::Core
function namespace (line 58) | namespace ZetaRay::Scene
function namespace (line 64) | namespace ZetaRay::Scene::Renderer
function namespace (line 69) | namespace ZetaRay::App
FILE: Source/ZetaCore/App/Common.h
function namespace (line 5) | namespace ZetaRay::App::Common
FILE: Source/ZetaCore/App/Filesystem.h
function namespace (line 6) | namespace ZetaRay::App::Filesystem
FILE: Source/ZetaCore/App/Path.h
function namespace (line 3) | namespace ZetaRay::App::Filesystem
function ConvertToBackslashes (line 193) | void ConvertToBackslashes()
function ConvertToForwardSlashes (line 205) | void ConvertToForwardSlashes()
FILE: Source/ZetaCore/App/Timer.h
function namespace (line 5) | namespace ZetaRay::App
FILE: Source/ZetaCore/Core/CommandList.h
function namespace (line 9) | namespace ZetaRay::Core
function class (line 147) | class ComputeCmdList : public CopyCmdList
function ZetaInline (line 159) | ZetaInline void ResolveQueryData(ID3D12QueryHeap* queryHeap,
function ZetaInline (line 169) | ZetaInline void EndQuery(ID3D12QueryHeap* queryHeap, D3D12_QUERY_TYPE ty...
function ZetaInline (line 216) | ZetaInline void SetRootSignature(ID3D12RootSignature* rootSigObj)
function ZetaInline (line 222) | ZetaInline void SetRootConstantBufferView(UINT rootParameterIndex, D3D12...
function ZetaInline (line 227) | ZetaInline void SetRootShaderResourceView(UINT rootParameterIndex, D3D12...
function ZetaInline (line 232) | ZetaInline void SetRootDescriptorTable(UINT rootParameterIndex, D3D12_GP...
function ZetaInline (line 237) | ZetaInline void SetRootUnorderedAccessView(UINT rootParameterIndex, D3D1...
function ZetaInline (line 242) | ZetaInline void SetRoot32BitConstants(UINT rootParameterIndex,
function ZetaInline (line 250) | ZetaInline void SetPipelineState(ID3D12PipelineState* pipelineState)
function ZetaInline (line 256) | ZetaInline void SetPipelineState1(ID3D12StateObject* rtPSO)
function ZetaInline (line 262) | ZetaInline void Dispatch(UINT threadGroupCountX, UINT threadGroupCountY,...
function ZetaInline (line 267) | ZetaInline void SetPredication(ID3D12Resource* buffer, UINT64 bufferOffs...
function ZetaInline (line 272) | ZetaInline void BuildRaytracingAccelerationStructure(const D3D12_BUILD_R...
function ZetaInline (line 279) | ZetaInline void CompactAccelerationStructure(D3D12_GPU_VIRTUAL_ADDRESS d...
function ZetaInline (line 284) | ZetaInline void CopyAccelerationStructure(D3D12_GPU_VIRTUAL_ADDRESS dest...
function ZetaInline (line 289) | ZetaInline void ExecuteIndirect(ID3D12CommandSignature* cmdSig,
function ZetaInline (line 344) | ZetaInline void SetRootConstantBufferView(UINT rootParameterIndex, D3D12...
function ZetaInline (line 349) | ZetaInline void SetRootShaderResourceView(UINT rootParameterIndex, D3D12...
function ZetaInline (line 354) | ZetaInline void SetRootDescriptorTable(UINT rootParameterIndex, D3D12_GP...
function ZetaInline (line 359) | ZetaInline void SetRootUnorderedAccessView(UINT rootParameterIndex, D3D1...
function ZetaInline (line 364) | ZetaInline void SetRoot32BitConstants(UINT rootParameterIndex,
function ZetaInline (line 388) | ZetaInline void IASetPrimitiveTopology(D3D12_PRIMITIVE_TOPOLOGY primitiv...
function ZetaInline (line 401) | ZetaInline void IASetIndexBuffer(const D3D12_INDEX_BUFFER_VIEW& ibv)
function ZetaInline (line 406) | ZetaInline void DrawInstanced(UINT vertexCountPerInstance,
function ZetaInline (line 414) | ZetaInline void DrawIndexedInstanced(UINT indexCountPerInstance,
function ZetaInline (line 423) | ZetaInline void OMSetRenderTargets(UINT numRenderTargetDescriptors,
function ZetaInline (line 431) | ZetaInline void RSSetViewports(UINT num, const D3D12_VIEWPORT* viewports)
function ZetaInline (line 444) | ZetaInline void RSSetScissorRects(UINT numRects, const D3D12_RECT* rects)
function ZetaInline (line 449) | ZetaInline void OMSetBlendFactor(float blendFactorR, float blendFactorG,...
function ZetaInline (line 455) | ZetaInline void SetPredication(ID3D12Resource* buffer, UINT64 bufferOffs...
FILE: Source/ZetaCore/Core/CommandQueue.cpp
function ID3D12CommandAllocator (line 75) | ID3D12CommandAllocator* CommandQueue::GetCommandAllocator()
function CommandList (line 125) | CommandList* CommandQueue::GetCommandList()
FILE: Source/ZetaCore/Core/CommandQueue.h
function namespace (line 9) | namespace ZetaRay::Core
FILE: Source/ZetaCore/Core/Config.h
function namespace (line 5) | namespace ZetaRay::Core::Constants
FILE: Source/ZetaCore/Core/DescriptorHeap.cpp
function DescriptorTable (line 47) | DescriptorTable& DescriptorTable::operator=(DescriptorTable&& other)
function DescriptorTable (line 168) | DescriptorTable DescriptorHeap::Allocate(uint32_t count)
FILE: Source/ZetaCore/Core/DescriptorHeap.h
function namespace (line 6) | namespace ZetaRay::Core
type DescriptorTable (line 115) | struct DescriptorTable
function D3D12_CPU_DESCRIPTOR_HANDLE (line 134) | D3D12_CPU_DESCRIPTOR_HANDLE CPUHandle(uint32_t offset) const
function ZetaInline (line 140) | ZetaInline D3D12_GPU_DESCRIPTOR_HANDLE GPUHandle(uint32_t offset) const
FILE: Source/ZetaCore/Core/Device.h
function namespace (line 76) | namespace ZetaRay::Core
FILE: Source/ZetaCore/Core/Direct3DUtil.cpp
function ZetaInline (line 18) | ZetaInline void AdjustPlaneResource(DXGI_FORMAT fmt,
function ZetaInline (line 61) | ZetaInline bool IsDepthStencil(DXGI_FORMAT fmt)
function ZetaInline (line 82) | ZetaInline UINT8 D3D12GetFormatPlaneCount(ID3D12Device* pDevice, DXGI_FO...
function ZetaInline (line 91) | ZetaInline DXGI_FORMAT GetDXGIFormat(const DDS_PIXELFORMAT& ddpf)
function HRESULT (line 270) | HRESULT FillInitData(size_t width, size_t height, size_t depth, size_t m...
function FillSubresourceData (line 353) | void FillSubresourceData(const DDS_HEADER* header, MutableSpan<D3D12_SUB...
function LOAD_DDS_RESULT (line 524) | LOAD_DDS_RESULT LoadTextureDataFromFile(const char* fileName, ArenaAlloc...
function D3D12_RESOURCE_ALLOCATION_INFO (line 641) | D3D12_RESOURCE_ALLOCATION_INFO Direct3DUtil::AllocationInfo(D3D12_RESOUR...
function D3D12_RESOURCE_ALLOCATION_INFO (line 647) | D3D12_RESOURCE_ALLOCATION_INFO Direct3DUtil::AllocationInfo(Span<D3D12_R...
function HRESULT (line 813) | HRESULT Direct3DUtil::GetSurfaceInfo(size_t width,
function UINT64 (line 949) | UINT64 Direct3DUtil::GetRequiredIntermediateSize(ID3D12Resource* destina...
function LOAD_DDS_RESULT (line 962) | LOAD_DDS_RESULT Direct3DUtil::LoadDDSFromFile(const char* path,
function D3D12_GRAPHICS_PIPELINE_STATE_DESC (line 989) | D3D12_GRAPHICS_PIPELINE_STATE_DESC Direct3DUtil::GetPSODesc(const D3D12_...
FILE: Source/ZetaCore/Core/Direct3DUtil.h
function namespace (line 9) | namespace ZetaRay::App
function namespace (line 14) | namespace ZetaRay::Util
function namespace (line 20) | namespace ZetaRay::Core::GpuMemory
function namespace (line 26) | namespace ZetaRay::Support
function namespace (line 31) | namespace ZetaRay::Core::Direct3DUtil
function D3D12_RESOURCE_BARRIER (line 222) | inline D3D12_RESOURCE_BARRIER TransitionBarrier(ID3D12Resource* res,
function D3D12_BUFFER_BARRIER (line 240) | inline D3D12_BUFFER_BARRIER BufferBarrier(ID3D12Resource* res,
function D3D12_TEXTURE_BARRIER (line 255) | inline D3D12_TEXTURE_BARRIER TextureBarrier(ID3D12Resource* res,
function D3D12_BARRIER_GROUP (line 283) | inline D3D12_BARRIER_GROUP BarrierGroup(D3D12_BUFFER_BARRIER& barrier)
function D3D12_BARRIER_GROUP (line 293) | inline D3D12_BARRIER_GROUP BarrierGroup(D3D12_BUFFER_BARRIER* barriers, ...
function D3D12_BARRIER_GROUP (line 303) | inline D3D12_BARRIER_GROUP BarrierGroup(D3D12_TEXTURE_BARRIER& barrier)
function D3D12_BARRIER_GROUP (line 313) | inline D3D12_BARRIER_GROUP BarrierGroup(D3D12_TEXTURE_BARRIER* barriers,...
function D3D12_RESOURCE_BARRIER (line 323) | inline D3D12_RESOURCE_BARRIER UAVBarrier(ID3D12Resource* res)
function D3D12_BLEND_DESC (line 491) | inline D3D12_BLEND_DESC DefaultBlendDesc()
function D3D12_RASTERIZER_DESC (line 515) | inline D3D12_RASTERIZER_DESC DefaultRasterizerDesc()
function D3D12_DEPTH_STENCIL_DESC (line 534) | inline D3D12_DEPTH_STENCIL_DESC DefaultDepthStencilDesc()
function DXGI_FORMAT (line 556) | inline constexpr DXGI_FORMAT NoSRGB(DXGI_FORMAT fmt)
FILE: Source/ZetaCore/Core/GpuMemory.cpp
type ResourceUploadBatch (line 26) | struct ResourceUploadBatch
method ResourceUploadBatch (line 28) | ResourceUploadBatch()
method ResourceUploadBatch (line 34) | ResourceUploadBatch(ResourceUploadBatch&& other) = delete;
method ResourceUploadBatch (line 35) | ResourceUploadBatch& operator=(ResourceUploadBatch&& other) = delete;
method Begin (line 37) | void Begin()
method UploadTexture (line 51) | void UploadTexture(UploadHeapArena& arena, ID3D12Resource* texture,
method UploadTexture (line 102) | void UploadTexture(ID3D12Resource* texture, Span<D3D12_SUBRESOURCE_DAT...
method UploadBuffer (line 153) | void UploadBuffer(ID3D12Resource* buffer, void* data, uint32_t sizeInB...
method UploadTexture (line 187) | void UploadTexture(ID3D12Resource* dstResource, uint8_t* pixels,
method End (line 247) | uint64_t End()
method Recycle (line 263) | void Recycle()
method CopyTextureFromUploadBuffer (line 271) | void CopyTextureFromUploadBuffer(ID3D12Resource* uploadBuffer, void* m...
type GpuMemoryImplData (line 354) | struct GpuMemoryImplData
type PendingResource (line 361) | struct PendingResource
method ZetaInline (line 363) | ZetaInline bool IsUploadHeapBuffer() const
function UploadHeapBuffer (line 418) | UploadHeapBuffer& UploadHeapBuffer::operator=(UploadHeapBuffer&& other)
function Buffer (line 553) | Buffer& Buffer::operator=(Buffer&& other)
function ReadbackHeapBuffer (line 606) | ReadbackHeapBuffer& ReadbackHeapBuffer::operator=(ReadbackHeapBuffer&& o...
function Texture (line 698) | Texture& Texture::operator=(Texture&& other)
function ResourceHeap (line 752) | ResourceHeap& ResourceHeap::operator=(ResourceHeap&& other)
function UploadHeapBuffer (line 915) | UploadHeapBuffer GpuMemory::GetUploadHeapBuffer(uint32_t sizeInBytes, ui...
function ReadbackHeapBuffer (line 1005) | ReadbackHeapBuffer GpuMemory::GetReadbackHeapBuffer(uint32_t sizeInBytes)
function Buffer (line 1040) | Buffer GpuMemory::GetDefaultHeapBuffer(const char* name, uint32_t sizeIn...
function Buffer (line 1065) | Buffer GpuMemory::GetDefaultHeapBuffer(const char* name, uint32_t sizeIn...
function Buffer (line 1095) | Buffer GpuMemory::GetPlacedHeapBuffer(const char* name, uint32_t sizeInB...
function Buffer (line 1118) | Buffer GpuMemory::GetDefaultHeapBufferAndInit(const char* name, uint32_t...
function Buffer (line 1135) | Buffer GpuMemory::GetPlacedHeapBufferAndInit(const char* name, uint32_t ...
function ResourceHeap (line 1163) | ResourceHeap GpuMemory::GetResourceHeap(uint64_t sizeInBytes, uint64_t a...
function Texture (line 1218) | Texture GpuMemory::GetTexture2D(const char* name, uint64_t width, uint32...
function Texture (line 1225) | Texture GpuMemory::GetTexture2D(Texture::ID_TYPE id, uint64_t width, uin...
function Texture (line 1265) | Texture GpuMemory::GetPlacedTexture2D(const char* name, uint64_t width, ...
function Texture (line 1299) | Texture GpuMemory::GetPlacedTexture2D(const char* name, uint64_t width, ...
function Texture (line 1335) | Texture GpuMemory::GetTexture2D(const char* name, uint64_t width, uint32...
function Texture (line 1342) | Texture GpuMemory::GetTexture2D(Texture::ID_TYPE id, uint64_t width, uin...
function Texture (line 1385) | Texture GpuMemory::GetTexture3D(const char* name, uint64_t width, uint32...
function LOAD_DDS_RESULT (line 1420) | LOAD_DDS_RESULT GpuMemory::GetTexture2DFromDisk(const char* texPath, Tex...
function LOAD_DDS_RESULT (line 1444) | LOAD_DDS_RESULT GpuMemory::GetTexture2DFromDisk(const char* texPath,
function LOAD_DDS_RESULT (line 1468) | LOAD_DDS_RESULT GpuMemory::GetDDSDataFromDisk(const char* texPath,
function LOAD_DDS_RESULT (line 1476) | LOAD_DDS_RESULT GpuMemory::GetTexture3DFromDisk(const char* texPath, Tex...
function Texture (line 1503) | Texture GpuMemory::GetPlacedTexture2DAndInit(Texture::ID_TYPE ID, const ...
function Texture (line 1521) | Texture GpuMemory::GetTexture2DAndInit(const char* name, uint64_t width,...
FILE: Source/ZetaCore/Core/GpuMemory.h
function namespace (line 7) | namespace ZetaRay::Core::GpuMemory
type UploadHeapArena (line 98) | struct UploadHeapArena
type ReadbackHeapBuffer (line 126) | struct ReadbackHeapBuffer
function ZetaInline (line 141) | ZetaInline ID3D12Resource* Resource()
function ZetaInline (line 159) | ZetaInline void* MappedMemory()
type Buffer (line 170) | struct Buffer
function ZetaInline (line 188) | ZetaInline ID3D12Resource* Resource()
type Texture (line 210) | struct Texture
function ID3D12Resource (line 225) | ID3D12Resource* Resource()
type ResourceHeap (line 250) | struct ResourceHeap
function ID3D12Heap (line 260) | ID3D12Heap* Heap()
type DDS_Data (line 338) | struct DDS_Data
FILE: Source/ZetaCore/Core/GpuTimer.h
function namespace (line 7) | namespace ZetaRay::Core
FILE: Source/ZetaCore/Core/Material.h
function namespace (line 26) | namespace ZetaRay
FILE: Source/ZetaCore/Core/PipelineStateLibrary.cpp
function ZetaInline (line 19) | ZetaInline void InitPipe(HANDLE& readPipe, HANDLE& writePipe)
function ZetaInline (line 30) | ZetaInline void ReleasePipe(HANDLE readPipe, HANDLE writePipe)
function ID3D12PipelineState (line 293) | ID3D12PipelineState* PipelineStateLibrary::CompileGraphicsPSO(uint32_t idx,
function ID3D12PipelineState (line 341) | ID3D12PipelineState* PipelineStateLibrary::CompileComputePSO(uint32_t idx,
function ID3D12PipelineState (line 387) | ID3D12PipelineState* PipelineStateLibrary::CompileComputePSO_MT(uint32_t...
function ID3D12PipelineState (line 441) | ID3D12PipelineState* PipelineStateLibrary::CompileComputePSO(uint32_t idx,
FILE: Source/ZetaCore/Core/PipelineStateLibrary.h
function namespace (line 7) | namespace ZetaRay::Core
FILE: Source/ZetaCore/Core/RenderGraph.cpp
type Edge (line 64) | struct Edge
function RenderNodeHandle (line 240) | RenderNodeHandle RenderGraph::RegisterRenderPass(const char* name, RENDE...
FILE: Source/ZetaCore/Core/RenderGraph.h
function namespace (line 8) | namespace ZetaRay::Support
function namespace (line 14) | namespace ZetaRay::Core
type AggregateRenderNode (line 281) | struct AggregateRenderNode
FILE: Source/ZetaCore/Core/RendererCore.cpp
function DXGI_OUTPUT_DESC (line 314) | DXGI_OUTPUT_DESC RendererCore::GetOutputMonitorDesc() const
function GraphicsCmdList (line 344) | GraphicsCmdList* RendererCore::GetGraphicsCmdList()
function ComputeCmdList (line 352) | ComputeCmdList* RendererCore::GetComputeCmdList()
FILE: Source/ZetaCore/Core/RendererCore.h
function namespace (line 9) | namespace ZetaRay::Support
function namespace (line 15) | namespace ZetaRay::Core
FILE: Source/ZetaCore/Core/RootSignature.cpp
function End_Internal (line 15) | void End_Internal(T& ctx, uint32_t rootCBVBitMap, uint32_t rootSRVBitMap...
FILE: Source/ZetaCore/Core/RootSignature.h
function namespace (line 5) | namespace ZetaRay::Util
function namespace (line 11) | namespace ZetaRay::Core
FILE: Source/ZetaCore/Core/SharedShaderResources.cpp
function UploadHeapBuffer (line 12) | const UploadHeapBuffer* SharedShaderResources::GetUploadHeapBuffer(uint6...
function UploadHeapBuffer (line 22) | const UploadHeapBuffer* SharedShaderResources::GetUploadHeapBuffer(std::...
function Buffer (line 40) | const Buffer* SharedShaderResources::GetDefaultHeapBuffer(uint64_t id)
function Buffer (line 50) | const Buffer* SharedShaderResources::GetDefaultHeapBuffer(std::string_vi...
function DescriptorTable (line 82) | const DescriptorTable* SharedShaderResources::GetDescriptorTable(uint64_...
function DescriptorTable (line 91) | const DescriptorTable* SharedShaderResources::GetDescriptorTable(std::st...
FILE: Source/ZetaCore/Core/SharedShaderResources.h
function namespace (line 6) | namespace ZetaRay::Core::GpuMemory
function namespace (line 12) | namespace ZetaRay::Core
FILE: Source/ZetaCore/Core/Vertex.h
function namespace (line 5) | namespace ZetaRay::Core
FILE: Source/ZetaCore/Core/dds.h
function namespace (line 33) | namespace ZetaRay::Core::Direct3DUtil
FILE: Source/ZetaCore/Math/BVH.cpp
type Bin (line 13) | struct alignas(16) Bin
method __vectorcall (line 15) | __vectorcall Extend(v_AABB box)
method __vectorcall (line 21) | __vectorcall Extend(Bin bin)
FILE: Source/ZetaCore/Math/BVH.h
function namespace (line 12) | namespace ZetaRay::Math
FILE: Source/ZetaCore/Math/CollisionFuncs.h
function namespace (line 7) | namespace ZetaRay::Math
FILE: Source/ZetaCore/Math/CollisionTypes.h
function namespace (line 8) | namespace ZetaRay::Math
type Plane (line 91) | struct Plane
type alignas (line 116) | struct alignas
function ViewFrustum (line 189) | static ViewFrustum Init()
type v_ViewFrustum (line 210) | struct v_ViewFrustum
type Ray (line 266) | struct Ray
function v_Ray (line 278) | struct v_Ray
FILE: Source/ZetaCore/Math/Color.cpp
function float3 (line 9) | float3 Math::sRGBToLinear(const float3& color)
function float3 (line 27) | float3 Math::ColorTemperatureTosRGB(float temperature)
FILE: Source/ZetaCore/Math/Color.h
function namespace (line 5) | namespace ZetaRay::Math
FILE: Source/ZetaCore/Math/Common.cpp
function float3 (line 37) | float3 Math::SphericalToCartesian(float theta, float phi)
FILE: Source/ZetaCore/Math/Common.h
function namespace (line 9) | namespace ZetaRay::Util
function namespace (line 18) | namespace ZetaRay::Math
function namespace (line 23) | namespace ZetaRay::Math
FILE: Source/ZetaCore/Math/Matrix.h
function namespace (line 6) | namespace ZetaRay::Math
function float3x4 (line 31) | struct float3x4
type alignas (line 52) | struct alignas
function explicit (line 63) | explicit float4x4a(const float* arr)
function explicit (line 70) | explicit float4x4a(const double* arr)
function explicit (line 77) | explicit float4x4a(const float4x3& M)
function float3x3 (line 89) | struct float3x3
function explicit (line 105) | explicit float3x3(const float4x3& M)
type v_float4x4 (line 115) | struct v_float4x4
function float4x3 (line 125) | inline float4x3::float4x3(const float4x4a& M)
function float3x4 (line 133) | inline float3x4::float3x4(const float4x4a& M)
function float4x4a (line 140) | inline float4x4a::float4x4a(const float3x3& M)
type AffineTransformation (line 148) | struct AffineTransformation
FILE: Source/ZetaCore/Math/MatrixFuncs.h
function namespace (line 10) | namespace ZetaRay::Math
FILE: Source/ZetaCore/Math/OctahedralVector.h
function namespace (line 5) | namespace ZetaRay::Math
FILE: Source/ZetaCore/Math/Quaternion.h
function namespace (line 6) | namespace ZetaRay::Math
FILE: Source/ZetaCore/Math/Sampling.cpp
function float3 (line 176) | float3 Math::UniformSampleSphere(float2 u)
FILE: Source/ZetaCore/Math/Sampling.h
function namespace (line 6) | namespace ZetaRay::Util
function namespace (line 11) | namespace ZetaRay::Math
FILE: Source/ZetaCore/Math/Surface.h
function namespace (line 7) | namespace ZetaRay::Math
FILE: Source/ZetaCore/Math/Vector.h
function namespace (line 8) | namespace ZetaRay::Math
function dot (line 71) | constexpr float dot(const float2& other) const
function normalize (line 81) | void normalize()
type float3 (line 96) | struct float3
function dot (line 178) | constexpr float dot(const float3& other) const
function float3 (line 183) | constexpr float3 cross(const float3 other) const
function normalize (line 188) | void normalize()
type float4 (line 205) | struct float4
function length (line 310) | float length() const
function normalize (line 324) | void normalize()
type alignas (line 342) | struct alignas
type half (line 396) | struct half
function half2 (line 414) | struct half2
function explicit (line 440) | explicit half2(const float2& f)
function half3 (line 458) | struct half3
function half4 (line 522) | struct half4
function explicit (line 550) | explicit half4(const float4& f)
type uint3 (line 571) | struct uint3
function FromNormalized (line 588) | struct unorm2
function FromNormalized (line 653) | struct unorm3
type unorm4 (line 728) | struct unorm4
function float2 (line 777) | inline float2::float2(const half2& h)
FILE: Source/ZetaCore/Math/VectorFuncs.h
function namespace (line 9) | namespace ZetaRay::Math
FILE: Source/ZetaCore/Model/Mesh.cpp
type TeapotPatch (line 581) | struct TeapotPatch
function float3 (line 612) | float3 CubicInterpolate(float3 p1, float3 p2, float3 p3, float3 p4, floa...
function float3 (line 624) | float3 CubicTangent(float3 p1, float3 p2, float3 p3, float3 p4, float t)
function CreatePatchVertices (line 632) | void CreatePatchVertices(Vector<Vertex>& vertices, float3 patch[16],
function CreatePatchIndices (line 713) | void CreatePatchIndices(Vector<uint32_t>& indices, size_t vbase, size_t ...
function TessellatePatch (line 757) | void TessellatePatch(Vector<Vertex>& vertices, Vector<uint32_t>& indices,
FILE: Source/ZetaCore/Model/Mesh.h
function namespace (line 7) | namespace ZetaRay::Model
function namespace (line 54) | namespace PrimitiveMesh
FILE: Source/ZetaCore/Model/glTF.cpp
function ZetaInline (line 34) | ZetaInline const char* GetErrorMsg(cgltf_result r)
function ZetaInline (line 75) | ZetaInline Texture::ID_TYPE IDFromTexturePath(const Filesystem::Path& te...
type EmissiveMeshPrim (line 81) | struct EmissiveMeshPrim
type ThreadContext (line 90) | struct ThreadContext
function ResetEmissiveSubsets (line 121) | void ResetEmissiveSubsets(MutableSpan<EmissiveMeshPrim> subsets)
function ProcessPositions (line 145) | void ProcessPositions(const cgltf_data& model, const cgltf_accessor& acc...
function ProcessNormals (line 168) | void ProcessNormals(const cgltf_data& model, const cgltf_accessor& acces...
function ProcessTexCoords (line 191) | void ProcessTexCoords(const cgltf_data& model, const cgltf_accessor& acc...
function ProcessTangents (line 212) | void ProcessTangents(const cgltf_data& model, const cgltf_accessor& acce...
function ProcessIndices (line 234) | void ProcessIndices(const cgltf_data& model, const cgltf_accessor& acces...
function ProcessMeshes (line 270) | void ProcessMeshes(const cgltf_data& model, uint32_t sceneID, size_t off...
function LoadDDSImages (line 433) | void LoadDDSImages(uint32_t sceneID, const Filesystem::Path& modelDir, c...
function ProcessMaterials (line 523) | void ProcessMaterials(uint32_t sceneID, const Filesystem::Path& modelDir...
function NumEmissiveInstancesAndTrianglesSubtree (line 645) | void NumEmissiveInstancesAndTrianglesSubtree(const cgltf_node& node, Thr...
function NumEmissiveInstancesAndTriangles (line 683) | void NumEmissiveInstancesAndTriangles(ThreadContext& context)
function ProcessEmissiveSubtree (line 692) | void ProcessEmissiveSubtree(const cgltf_node& node, ThreadContext& conte...
function ProcessEmissives (line 769) | void ProcessEmissives(ThreadContext& context)
function ProcessNodeSubtree (line 784) | void ProcessNodeSubtree(const cgltf_node& node, uint32_t sceneID, const ...
function ProcessNodes (line 954) | void ProcessNodes(const cgltf_data& model, uint32_t sceneID)
function DescendTree (line 963) | void DescendTree(const cgltf_node& node, int height, Vector<int>& treeLe...
function PrecomputeNodeHierarchy (line 976) | void PrecomputeNodeHierarchy(const cgltf_data& model, Vector<int>& treeL...
function TreeHeight (line 999) | int TreeHeight(const cgltf_node& node)
function ComputeNodeHierarchyHeight (line 1012) | int ComputeNodeHierarchyHeight(const cgltf_data& model)
function TotalNumVerticesAndIndices (line 1025) | void TotalNumVerticesAndIndices(cgltf_data* model, size_t& numVertices, ...
FILE: Source/ZetaCore/Model/glTF.h
function namespace (line 5) | namespace ZetaRay::Model::glTF
FILE: Source/ZetaCore/Model/glTFAsset.h
function namespace (line 11) | namespace ZetaRay::Model::glTF::Asset
FILE: Source/ZetaCore/RayTracing/RtAccelerationStructure.cpp
type BLASTransform (line 24) | struct BLASTransform
type DynamicBlasBuild (line 29) | struct DynamicBlasBuild
function ZetaInline (line 39) | ZetaInline D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS BuildFlag...
type TreePosAndIdx (line 558) | struct TreePosAndIdx
FILE: Source/ZetaCore/RayTracing/RtAccelerationStructure.h
function namespace (line 8) | namespace ZetaRay::Core
function namespace (line 14) | namespace ZetaRay::Util
function namespace (line 20) | namespace ZetaRay::RT
type TLAS (line 58) | struct TLAS
type ArenaPage (line 68) | struct ArenaPage
type DynamicBLAS (line 74) | struct DynamicBLAS
function UPDATE_TYPE (line 83) | enum class UPDATE_TYPE
FILE: Source/ZetaCore/RayTracing/RtCommon.h
function namespace (line 34) | namespace RT_AS_SUBGROUP
function namespace (line 42) | namespace ZetaRay
FILE: Source/ZetaCore/Scene/Asset.h
function namespace (line 9) | namespace ZetaRay::Scene::Internal
type MaterialBuffer (line 66) | struct MaterialBuffer
type Entry (line 103) | struct Entry
function GetVB (line 123) | struct MeshContainer
type EmissiveBuffer (line 162) | struct EmissiveBuffer
function ZetaInline (line 186) | ZetaInline Util::Span<Instance> Instances() { return m_instances; }
function ZetaInline (line 187) | ZetaInline Util::MutableSpan<RT::EmissiveTriangle> Triagnles() { return ...
function ZetaInline (line 188) | ZetaInline Util::MutableSpan<Triangle> InitialTriPositions() { return m_...
function ZetaInline (line 190) | ZetaInline Util::Optional<const Instance*> FindInstance(uint64_t ID)
FILE: Source/ZetaCore/Scene/Camera.cpp
function ZetaInline (line 16) | ZetaInline void __vectorcall setCamPos(const __m128 vNewCamPos, float4x4...
function ZetaInline (line 33) | ZetaInline v_float4x4 __vectorcall resetViewMatrix(const __m128 vBasisX,...
FILE: Source/ZetaCore/Scene/Camera.h
function namespace (line 6) | namespace ZetaRay::Support
function class (line 29) | class Camera
FILE: Source/ZetaCore/Scene/SceneCommon.h
function namespace (line 5) | namespace ZetaRay::Scene
FILE: Source/ZetaCore/Scene/SceneCore.cpp
function ZetaInline (line 25) | ZetaInline uint3 Pcg3d(uint3 v)
type Entry (line 768) | struct Entry
FILE: Source/ZetaCore/Scene/SceneCore.h
function namespace (line 12) | namespace ZetaRay::Model
function namespace (line 17) | namespace ZetaRay::RT
function namespace (line 23) | namespace ZetaRay::Support
function namespace (line 28) | namespace ZetaRay::Scene
function Encode (line 44) | struct RT_Flags
type RT_AS_Info (line 73) | struct RT_AS_Info
function ZetaInline (line 79) | ZetaInline uint64_t InstanceID(uint32_t sceneID, int nodeIdx, int mesh, ...
function ZetaInline (line 87) | ZetaInline uint32_t MaterialID(uint32_t sceneID, int matIdx)
function ZetaInline (line 95) | ZetaInline uint64_t MeshID(uint32_t sceneID, int meshIdx, int meshPrimIdx)
function namespace (line 104) | namespace ZetaRay::Scene
function ZetaInline (line 255) | ZetaInline Core::RenderGraph* GetRenderGraph() { return m_rendererInterf...
function ZetaInline (line 256) | ZetaInline void SceneModified() { m_rendererInterface.SceneModified(); }
function ZetaInline (line 257) | ZetaInline void DebugDrawRenderGraph() { m_rendererInterface.DebugDrawRe...
function ZetaInline (line 262) | ZetaInline void Pick(uint16 screenPosX, uint16 screenPosY)
function ZetaInline (line 267) | ZetaInline void MultiPick(uint16 screenPosX, uint16 screenPosY)
function ZetaInline (line 274) | ZetaInline Util::SynchronizedSpan<uint64_t> GetPickedInstances()
function ZetaInline (line 278) | ZetaInline void CaptureScreen() { m_rendererInterface.CaptureScreen(); }
type TreePos (line 286) | struct TreePos
type AnimationUpdate (line 292) | struct AnimationUpdate
type Range (line 298) | struct Range
type TreeLevel (line 310) | struct TreeLevel
type AnimationMetadata (line 323) | struct AnimationMetadata
function ZetaInline (line 332) | ZetaInline Util::Optional<TreePos> FindTreePosFromID(uint64_t id) const
type TransformUpdate (line 378) | struct TransformUpdate
FILE: Source/ZetaCore/Scene/SceneRenderer.h
function namespace (line 5) | namespace ZetaRay::Support
function namespace (line 10) | namespace ZetaRay::Core
function namespace (line 15) | namespace ZetaRay::Scene::GlobalResource
function namespace (line 35) | namespace ZetaRay::Scene::Renderer
FILE: Source/ZetaCore/Support/FrameMemory.h
function namespace (line 6) | namespace ZetaRay::Support
FILE: Source/ZetaCore/Support/Memory.h
function namespace (line 7) | namespace ZetaRay::Support
FILE: Source/ZetaCore/Support/MemoryArena.cpp
function MemoryArena (line 24) | MemoryArena& MemoryArena::operator=(MemoryArena&& other)
FILE: Source/ZetaCore/Support/MemoryArena.h
function namespace (line 5) | namespace ZetaRay::Support
function ArenaAllocator (line 73) | struct ArenaAllocator
FILE: Source/ZetaCore/Support/MemoryPool.cpp
function Length (line 18) | int Length(void* head)
FILE: Source/ZetaCore/Support/MemoryPool.h
function namespace (line 5) | namespace ZetaRay::Support
FILE: Source/ZetaCore/Support/OffsetAllocator.cpp
type SmallFloat (line 10) | namespace SmallFloat
function uintToFloatRoundUp (line 18) | uint32_t uintToFloatRoundUp(uint32_t size)
function uintToFloatRoundDown (line 50) | uint32_t uintToFloatRoundDown(uint32_t size)
function floatToUint (line 76) | uint32_t floatToUint(uint32_t floatValue)
function ZetaInline (line 93) | ZetaInline uint32_t LowestSetBitGeIndex(uint32_t mask, uint32_t idx)
function OffsetAllocator (line 137) | OffsetAllocator& OffsetAllocator::operator=(OffsetAllocator&& rhs)
FILE: Source/ZetaCore/Support/OffsetAllocator.h
function namespace (line 5) | namespace ZetaRay::Support
type StorageReport (line 30) | struct StorageReport
type Node (line 56) | struct Node
FILE: Source/ZetaCore/Support/Param.cpp
function FloatParam (line 164) | const FloatParam& ParamVariant::GetFloat() const
function Float2Param (line 177) | const Float2Param& ParamVariant::GetFloat2() const
function Float3Param (line 194) | const Float3Param& ParamVariant::GetFloat3() const
function UnitDirParam (line 211) | const UnitDirParam& ParamVariant::GetUnitDir() const
function Float3Param (line 225) | const Float3Param& ParamVariant::GetColor() const
function IntParam (line 238) | const IntParam& ParamVariant::GetInt() const
function EnumParam (line 264) | const EnumParam& ParamVariant::GetEnum() const
function float3 (line 278) | float3 UnitDirParam::GetDir() const
FILE: Source/ZetaCore/Support/Param.h
function namespace (line 7) | namespace ZetaRay::Support
type Float2Param (line 34) | struct Float2Param
type Float3Param (line 56) | struct Float3Param
type UnitDirParam (line 78) | struct UnitDirParam
type ColorParam (line 96) | struct ColorParam
type EnumParam (line 137) | struct EnumParam
function PARAM_TYPE (line 163) | enum class PARAM_TYPE
FILE: Source/ZetaCore/Support/Stat.h
function namespace (line 6) | namespace ZetaRay::Support
function ST_TYPE (line 53) | ST_TYPE GetType() { return m_type; }
function GetInt (line 55) | int GetInt()
function GetUInt (line 61) | uint32_t GetUInt()
function GetFloat (line 67) | float GetFloat()
function GetUInt64 (line 73) | uint64_t GetUInt64()
function GetRatio (line 79) | void GetRatio(uint32_t& num, uint32_t& total)
FILE: Source/ZetaCore/Support/Task.cpp
function Task (line 35) | Task& Task::operator=(Task&& other)
FILE: Source/ZetaCore/Support/Task.h
function namespace (line 8) | namespace ZetaRay::Support
function ZetaInline (line 122) | ZetaInline bool IsFinalized() { return m_isFinalized; }
function ZetaInline (line 125) | ZetaInline int GetSize() { return m_currSize; }
function ZetaInline (line 126) | ZetaInline Util::MutableSpan<Task> GetTasks() { return Util::MutableSpan...
type TaskMetadata (line 129) | struct TaskMetadata
FILE: Source/ZetaCore/Support/ThreadPool.h
function namespace (line 6) | namespace ZetaRay::Support
FILE: Source/ZetaCore/Utility/Error.cpp
type dbg (line 47) | namespace dbg
function basename (line 62) | std::string basename(const std::string& file)
type StackFrame (line 71) | struct StackFrame
function stack_trace (line 80) | void stack_trace(Vector<StackFrame, ArenaAllocator>& frames)
function fail (line 167) | void fail(MutableSpan<char> buff, const char* msg)
FILE: Source/ZetaCore/Utility/Error.h
function namespace (line 26) | namespace ZetaRay::Util
FILE: Source/ZetaCore/Utility/Function.h
function ZetaInline (line 66) | ZetaInline void Run()
type LambdaFuncPtrs (line 79) | struct LambdaFuncPtrs
FILE: Source/ZetaCore/Utility/HashTable.h
function namespace (line 7) | namespace ZetaRay::Util
function ZetaInline (line 187) | ZetaInline size_t erase(KeyType key)
function clear (line 224) | void clear()
function free_memory (line 247) | void free_memory()
function swap (line 272) | void swap(HashTable& other)
function ZetaInline (line 314) | ZetaInline Entry* begin_it()
function ZetaInline (line 328) | ZetaInline Entry* next_it(Entry* curr)
function ZetaInline (line 337) | ZetaInline Entry* end_it()
function relocate (line 373) | void relocate(size_t n)
FILE: Source/ZetaCore/Utility/Optional.h
function namespace (line 6) | namespace ZetaRay::Util
function reset (line 109) | void reset()
function ZetaInline (line 121) | ZetaInline T& value()
function ZetaInline (line 126) | ZetaInline const T& value() const
FILE: Source/ZetaCore/Utility/RNG.h
function namespace (line 6) | namespace ZetaRay::Util
FILE: Source/ZetaCore/Utility/SmallVector.h
function namespace (line 7) | namespace ZetaRay::Util
function free_memory (line 797) | void free_memory()
function init_storage (line 829) | void init_storage(const T& t)
function reset_storage (line 842) | void reset_storage()
FILE: Source/ZetaCore/Utility/Span.h
function namespace (line 5) | namespace ZetaRay::Util
type StrView (line 123) | struct StrView
function ZetaInline (line 143) | ZetaInline const char* end() const
function ZetaInline (line 147) | ZetaInline const char& operator[](size_t pos) const
function ZetaInline (line 157) | ZetaInline const char* data() const
type MemoryRegion (line 167) | struct MemoryRegion
FILE: Source/ZetaCore/Utility/SynchronizedView.h
function namespace (line 6) | namespace ZetaRay::Util
FILE: Source/ZetaCore/Utility/Utility.h
function namespace (line 5) | namespace ZetaRay::Util
function ZetaInline (line 104) | ZetaInline uint32_t XXH3_64_To_32(uint64_t hash)
FILE: Source/ZetaCore/Win32/Win32App.cpp
type FrameTime (line 35) | struct FrameTime
type ParamUpdate (line 42) | struct ParamUpdate
type OP_TYPE (line 44) | enum OP_TYPE
type PreferredAppMode (line 55) | enum PreferredAppMode
type WINDOWCOMPOSITIONATTRIB (line 64) | enum WINDOWCOMPOSITIONATTRIB
type WINDOWCOMPOSITIONATTRIBDATA (line 96) | struct WINDOWCOMPOSITIONATTRIBDATA
type FrameMemoryContext (line 118) | struct FrameMemoryContext
type AppData (line 124) | struct AppData
type TaskSignal (line 137) | struct alignas(64) TaskSignal
function ImGuiMouseSource (line 214) | ImGuiMouseSource ImGui_GetMouseSourceFromMessageExtraInfo()
function ImGui_UpdateMouseCursor (line 224) | bool ImGui_UpdateMouseCursor()
function ImGui_UpdateMouse (line 259) | void ImGui_UpdateMouse()
function ImGuiKey (line 287) | ImGuiKey ImGui_VirtualKeyToImGuiKey(WPARAM wParam, LPARAM lParam)
function ImGui_IsVkDown (line 416) | bool ImGui_IsVkDown(int vk)
function ImGui_AddKeyEvent (line 421) | void ImGui_AddKeyEvent(ImGuiKey key, bool down, int native_keycode, int ...
function ImGui_UpdateKeyModifiers (line 430) | void ImGui_UpdateKeyModifiers()
function ImGui_ProcessKeyEventsWorkarounds (line 439) | void ImGui_ProcessKeyEventsWorkarounds()
type ZetaRay::AppImpl (line 457) | namespace ZetaRay::AppImpl
function LoadFont (line 459) | void LoadFont()
function OnActivated (line 529) | void OnActivated()
function OnDeactivated (line 536) | void OnDeactivated()
function OnDPIChanged (line 543) | void OnDPIChanged(uint16_t newDPI, const RECT* newRect)
function InitImGui (line 550) | void InitImGui()
function UpdateStats (line 609) | void UpdateStats(size_t tempMemoryUsage)
function Update (line 648) | void Update(TaskSet& sceneTS, TaskSet& sceneRendererTS, size_t tempMem...
function OnWindowSizeChanged (line 709) | void OnWindowSizeChanged()
function OnKeyboard (line 739) | void OnKeyboard(UINT message, WPARAM wParam, LPARAM lParam)
function OnMouseDown (line 810) | void OnMouseDown(UINT message, WPARAM btnState, LPARAM lParam)
function OnMouseUp (line 850) | void OnMouseUp(UINT message, WPARAM btnState, LPARAM lParam)
function OnMouseMove (line 886) | void OnMouseMove(UINT message, WPARAM btnState, LPARAM lParam, HWND hwnd)
function OnMouseWheel (line 936) | void OnMouseWheel(UINT message, WPARAM btnState, LPARAM lParam)
function OnDestroy (line 955) | void OnDestroy()
function ApplyParamUpdates (line 979) | void ApplyParamUpdates()
function TryInitDarkMode (line 1015) | bool TryInitDarkMode(HMODULE* uxthemeLib, HWND hWnd)
function LRESULT (line 1064) | LRESULT WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
function CreateAppWindow (line 1213) | void CreateAppWindow(HINSTANCE instance)
function SetCameraAcceleration (line 1255) | void SetCameraAcceleration(const ParamVariant& p)
function ResizeIfQueued (line 1260) | void ResizeIfQueued()
function ChangeDPIIfQueued (line 1278) | void ChangeDPIIfQueued()
function ZetaInline (line 1300) | ZetaInline void* AllocateFrameAllocator(FrameMemory<blockSize>& frameM...
type ZetaRay (line 1345) | namespace ZetaRay
function CpuInfo (line 1347) | CpuInfo App::GetProcessorInfo()
function RendererCore (line 1787) | RendererCore& App::GetRenderer() { return g_app->m_renderer; }
function SceneCore (line 1788) | SceneCore& App::GetScene() { return g_app->m_scene; }
function Camera (line 1789) | const Camera& App::GetCamera() { return g_app->m_camera; }
FILE: Source/ZetaLab/ZetaLab.cpp
function WinMain (line 33) | int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevIns...
FILE: Source/ZetaRenderPass/AutoExposure/AutoExposure.h
function namespace (line 7) | namespace ZetaRay::Core
type class (line 14) | enum class
type AutoExposure (line 21) | struct AutoExposure
type class (line 23) | enum class
function SHADER_OUT_RES (line 29) | enum class SHADER_OUT_RES
FILE: Source/ZetaRenderPass/AutoExposure/AutoExposure_Common.h
type cbAutoExposureHist (line 11) | struct cbAutoExposureHist
FILE: Source/ZetaRenderPass/Common/FrameConstants.h
type cbFrameConstants (line 10) | struct cbFrameConstants
FILE: Source/ZetaRenderPass/Compositing/Compositing.h
function namespace (line 7) | namespace ZetaRay::Core
function namespace (line 12) | namespace ZetaRay::Support
type class (line 19) | enum class
type Compositing (line 26) | struct Compositing
type class (line 28) | enum class
function SHADER_OUT_RES (line 37) | enum class SHADER_OUT_RES
FILE: Source/ZetaRenderPass/Compositing/Compositing_Common.h
function namespace (line 12) | namespace CB_COMPOSIT_FLAGS
type cbCompositing (line 21) | struct cbCompositing
type cbFireflyFilter (line 36) | struct cbFireflyFilter
FILE: Source/ZetaRenderPass/DirectLighting/Emissive/DirectLighting.h
function namespace (line 7) | namespace ZetaRay::Core
function namespace (line 13) | namespace ZetaRay::Support
type class (line 20) | enum class
type DirectLighting (line 28) | struct DirectLighting
function SHADER_OUT_RES (line 30) | enum class SHADER_OUT_RES
FILE: Source/ZetaRenderPass/DirectLighting/Emissive/DirectLighting_Common.h
function namespace (line 12) | namespace CB_RDI_FLAGS
type cb_ReSTIR_DI (line 21) | struct cb_ReSTIR_DI
FILE: Source/ZetaRenderPass/DirectLighting/Sky/SkyDI.h
function namespace (line 7) | namespace ZetaRay::Core
function namespace (line 12) | namespace ZetaRay::Support
type class (line 19) | enum class
type SkyDI (line 26) | struct SkyDI
function SHADER_OUT_RES (line 28) | enum class SHADER_OUT_RES
FILE: Source/ZetaRenderPass/DirectLighting/Sky/SkyDI_Common.h
function namespace (line 12) | namespace CB_SKY_DI_FLAGS
type cb_SkyDI (line 19) | struct cb_SkyDI
FILE: Source/ZetaRenderPass/Display/Display.h
function namespace (line 8) | namespace ZetaRay::Core
function namespace (line 15) | namespace ZetaRay::Core::GpuMemory
function namespace (line 20) | namespace ZetaRay::Support
type class (line 27) | enum class
type DisplayPass (line 36) | struct DisplayPass
function SHADER_IN_CPU_DESC (line 38) | enum class SHADER_IN_CPU_DESC
FILE: Source/ZetaRenderPass/Display/Display_Common.h
type class (line 6) | enum class
type class (line 21) | enum class
type cbDisplayPass (line 32) | struct cbDisplayPass
type cbDrawPicked (line 48) | struct cbDrawPicked
type cbSobel (line 56) | struct cbSobel
FILE: Source/ZetaRenderPass/FSR2/FSR2.cpp
type ResourceData (line 29) | struct ResourceData
type RenderPassData (line 39) | struct RenderPassData
type PsoMap (line 50) | struct PsoMap
type DllWrapper (line 56) | struct DllWrapper
method Load (line 63) | void Load()
method Free (line 87) | void Free()
type FSR2_Data (line 112) | struct FSR2_Data
method FSR2_Data (line 114) | FSR2_Data()
function D3D12_RESOURCE_STATES (line 170) | D3D12_RESOURCE_STATES GetD3D12State(FfxResourceStates fsrState)
function DXGI_FORMAT (line 226) | DXGI_FORMAT ToDXGIFormat(FfxSurfaceFormat surfaceFormat)
function RecordClearJob (line 273) | void RecordClearJob(const FfxClearFloatJobDescription& job)
function RecordComputeJob (line 334) | void RecordComputeJob(const FfxComputeJobDescription& job)
function FfxErrorCode (line 472) | FfxErrorCode Fsr2CreateBackendContext(FfxFsr2Interface* backendInterface...
function FfxErrorCode (line 477) | FfxErrorCode Fsr2DestroyBackendContext(FfxFsr2Interface* backendInterface)
function FfxErrorCode (line 482) | FfxErrorCode Fsr2GetDeviceCapabilities(FfxFsr2Interface* backendInterface,
function FfxErrorCode (line 502) | FfxErrorCode Fsr2CreateResource(FfxFsr2Interface* backendInterface,
function FfxErrorCode (line 609) | FfxErrorCode Fsr2RegisterResource(FfxFsr2Interface* backendInterface, co...
function FfxErrorCode (line 628) | FfxErrorCode Fsr2UnregisterResources(FfxFsr2Interface* backendInterface)
function FfxResourceDescription (line 633) | FfxResourceDescription Fsr2GetResourceDescription(FfxFsr2Interface* back...
function FfxErrorCode (line 725) | FfxErrorCode Fsr2DestroyResource(FfxFsr2Interface* backendInterface, Ffx...
function FfxErrorCode (line 739) | FfxErrorCode Fsr2CreatePipeline(FfxFsr2Interface* backendInterface, FfxF...
function FfxErrorCode (line 935) | FfxErrorCode Fsr2DestroyPipeline(FfxFsr2Interface* backendInterface, Ffx...
function FfxErrorCode (line 940) | FfxErrorCode Fsr2ScheduleGpuJob(FfxFsr2Interface* backendInterface,
function FfxErrorCode (line 959) | FfxErrorCode Fsr2ExecuteGpuJobs(FfxFsr2Interface* backendInterface, FfxC...
function Texture (line 1273) | const Texture& FSR2Pass::GetOutput(SHADER_OUT_RES res)
FILE: Source/ZetaRenderPass/FSR2/FSR2.h
function namespace (line 6) | namespace ZetaRay::Core
function namespace (line 11) | namespace ZetaRay::RenderPass
FILE: Source/ZetaRenderPass/GBuffer/GBufferRT.h
function namespace (line 7) | namespace ZetaRay::Core
function namespace (line 12) | namespace ZetaRay::Support
function namespace (line 17) | namespace ZetaRay::RenderPass
FILE: Source/ZetaRenderPass/GBuffer/GBufferRT_Common.h
type class (line 12) | enum class
type cbGBufferRt (line 27) | struct cbGBufferRt
FILE: Source/ZetaRenderPass/GBuffer/GenerateDepthBuffer.h
function namespace (line 7) | namespace ZetaRay::Core
function namespace (line 12) | namespace ZetaRay::RenderPass
FILE: Source/ZetaRenderPass/GUI/GuiPass.cpp
function AddParamRange (line 32) | void AddParamRange(MutableSpan<ParamVariant> params, int offset, int count)
function DrawAxis (line 124) | void DrawAxis(const float3& pos, const float3& xAxis, const float3& zAxi...
function ShowStyles (line 200) | void ShowStyles()
FILE: Source/ZetaRenderPass/GUI/GuiPass.h
function namespace (line 9) | namespace ZetaRay::Core
function namespace (line 14) | namespace ZetaRay::Model
function namespace (line 19) | namespace ZetaRay::RenderPass
function EMISSIVE_COLOR_MODE (line 112) | enum class EMISSIVE_COLOR_MODE
FILE: Source/ZetaRenderPass/GUI/GuiPass_Common.h
type cbGuiPass (line 6) | struct cbGuiPass
FILE: Source/ZetaRenderPass/IndirectLighting/IndirectLighting.cpp
function EnumToSamplerIdx (line 21) | constexpr int EnumToSamplerIdx(TEXTURE_FILTER f)
FILE: Source/ZetaRenderPass/IndirectLighting/IndirectLighting.h
function namespace (line 7) | namespace ZetaRay::Core
function namespace (line 13) | namespace ZetaRay::Support
type class (line 20) | enum class
type IndirectLighting (line 56) | struct IndirectLighting
type class (line 58) | enum class
type class (line 64) | enum class
function SetLightPresamplingParams (line 80) | void SetLightPresamplingParams(bool enable, int numSampleSets, int sampl...
function SetLightVoxelGridParams (line 88) | void SetLightVoxelGridParams(bool enabled, const Math::uint3& dim,
function Core (line 103) | const Core::GpuMemory::Texture& GetOutput(SHADER_OUT_RES i) const
type ResourceFormats_RGI (line 120) | struct ResourceFormats_RGI
type ResourceFormats_RPT (line 128) | struct ResourceFormats_RPT
function DESC_TABLE_RGI (line 146) | enum class DESC_TABLE_RGI
FILE: Source/ZetaRenderPass/IndirectLighting/IndirectLighting_Common.h
function namespace (line 34) | namespace CB_IND_FLAGS
function namespace (line 47) | namespace PACKED_INDEX
type class (line 58) | enum class
type class (line 69) | enum class
type cb_ReSTIR_GI (line 79) | struct cb_ReSTIR_GI
type cb_ReSTIR_PT_PathTrace (line 104) | struct cb_ReSTIR_PT_PathTrace
type cb_ReSTIR_PT_Reuse (line 119) | struct cb_ReSTIR_PT_Reuse
type cb_ReSTIR_PT_Sort (line 145) | struct cb_ReSTIR_PT_Sort
type cb_ReSTIR_PT_SpatialSearch (line 156) | struct cb_ReSTIR_PT_SpatialSearch
FILE: Source/ZetaRenderPass/PreLighting/PreLighting.cpp
function BuildAliasTable (line 27) | void BuildAliasTable(MutableSpan<float> probs, MutableSpan<RT::EmissiveL...
FILE: Source/ZetaRenderPass/PreLighting/PreLighting.h
function namespace (line 7) | namespace ZetaRay::Core
function namespace (line 13) | namespace ZetaRay::Support
function namespace (line 18) | namespace ZetaRay::RenderPass
FILE: Source/ZetaRenderPass/PreLighting/PreLighting_Common.h
type cbPresampling (line 16) | struct cbPresampling
type cbCurvature (line 21) | struct cbCurvature
type cbLVG (line 26) | struct cbLVG
FILE: Source/ZetaRenderPass/RenderPass.h
function namespace (line 7) | namespace ZetaRay::RenderPass
FILE: Source/ZetaRenderPass/Sky/Sky.h
function namespace (line 7) | namespace ZetaRay::Core
function namespace (line 12) | namespace ZetaRay::Support
type class (line 19) | enum class
type Sky (line 26) | struct Sky
function SHADER_OUT_RES (line 28) | enum class SHADER_OUT_RES
FILE: Source/ZetaRenderPass/Sky/Sky_Common.h
type cbSky (line 13) | struct cbSky
FILE: Source/ZetaRenderPass/TAA/TAA.h
function namespace (line 7) | namespace ZetaRay::Core
function namespace (line 12) | namespace ZetaRay::Support
type TAA (line 19) | struct TAA
type class (line 21) | enum class
function SHADER_OUT_RES (line 27) | enum class SHADER_OUT_RES
FILE: Source/ZetaRenderPass/TAA/TAA_Common.h
type cbTAA (line 8) | struct cbTAA
FILE: Source/ZetaRenderer/Default/DefaultRenderer.cpp
type ZetaRay::DefaultRenderer (line 131) | namespace ZetaRay::DefaultRenderer
function SetInscatteringEnablement (line 133) | void SetInscatteringEnablement(const ParamVariant& p)
function SetAA (line 138) | void SetAA(const ParamVariant& p)
function SetSunDir (line 170) | void SetSunDir(const ParamVariant& p)
function SetSunLux (line 178) | void SetSunLux(const ParamVariant& p)
function SetSunAngularDiameter (line 184) | void SetSunAngularDiameter(const ParamVariant& p)
function SetRayleighSigmaSColor (line 191) | void SetRayleighSigmaSColor(const ParamVariant& p)
function SetRayleighSigmaSScale (line 197) | void SetRayleighSigmaSScale(const ParamVariant& p)
function SetMieSigmaS (line 203) | void SetMieSigmaS(const ParamVariant& p)
function SetMieSigmaA (line 209) | void SetMieSigmaA(const ParamVariant& p)
function SetOzoneSigmaAColor (line 215) | void SetOzoneSigmaAColor(const ParamVariant& p)
function SetOzoneSigmaAScale (line 221) | void SetOzoneSigmaAScale(const ParamVariant& p)
function SetgForPhaseHG (line 227) | void SetgForPhaseHG(const ParamVariant& p)
function SetAccumulation (line 233) | void SetAccumulation(const ParamVariant& p)
function SetIndirect (line 238) | void SetIndirect(const ParamVariant& p)
function SetLensType (line 248) | void SetLensType(const Support::ParamVariant& p)
function Init (line 257) | void Init()
function Update (line 433) | void Update(TaskSet& ts)
function Render (line 514) | void Render(TaskSet& ts)
function Shutdown (line 519) | void Shutdown()
function OnWindowSizeChanged (line 527) | void OnWindowSizeChanged()
function DebugDrawRenderGraph (line 543) | void DebugDrawRenderGraph()
function IsRTASBuilt (line 548) | bool IsRTASBuilt()
function SceneModified (line 553) | void SceneModified()
function Pick (line 558) | void Pick(uint16 screenPosX, uint16 screenPosY)
function ClearPick (line 566) | void ClearPick()
function CaptureScreen (line 571) | void CaptureScreen()
function ToggleEmissives (line 576) | void ToggleEmissives()
type ZetaRay::DefaultRenderer (line 255) | namespace ZetaRay::DefaultRenderer
function SetInscatteringEnablement (line 133) | void SetInscatteringEnablement(const ParamVariant& p)
function SetAA (line 138) | void SetAA(const ParamVariant& p)
function SetSunDir (line 170) | void SetSunDir(const ParamVariant& p)
function SetSunLux (line 178) | void SetSunLux(const ParamVariant& p)
function SetSunAngularDiameter (line 184) | void SetSunAngularDiameter(const ParamVariant& p)
function SetRayleighSigmaSColor (line 191) | void SetRayleighSigmaSColor(const ParamVariant& p)
function SetRayleighSigmaSScale (line 197) | void SetRayleighSigmaSScale(const ParamVariant& p)
function SetMieSigmaS (line 203) | void SetMieSigmaS(const ParamVariant& p)
function SetMieSigmaA (line 209) | void SetMieSigmaA(const ParamVariant& p)
function SetOzoneSigmaAColor (line 215) | void SetOzoneSigmaAColor(const ParamVariant& p)
function SetOzoneSigmaAScale (line 221) | void SetOzoneSigmaAScale(const ParamVariant& p)
function SetgForPhaseHG (line 227) | void SetgForPhaseHG(const ParamVariant& p)
function SetAccumulation (line 233) | void SetAccumulation(const ParamVariant& p)
function SetIndirect (line 238) | void SetIndirect(const ParamVariant& p)
function SetLensType (line 248) | void SetLensType(const Support::ParamVariant& p)
function Init (line 257) | void Init()
function Update (line 433) | void Update(TaskSet& ts)
function Render (line 514) | void Render(TaskSet& ts)
function Shutdown (line 519) | void Shutdown()
function OnWindowSizeChanged (line 527) | void OnWindowSizeChanged()
function DebugDrawRenderGraph (line 543) | void DebugDrawRenderGraph()
function IsRTASBuilt (line 548) | bool IsRTASBuilt()
function SceneModified (line 553) | void SceneModified()
function Pick (line 558) | void Pick(uint16 screenPosX, uint16 screenPosY)
function ClearPick (line 566) | void ClearPick()
function CaptureScreen (line 571) | void CaptureScreen()
function ToggleEmissives (line 576) | void ToggleEmissives()
FILE: Source/ZetaRenderer/Default/DefaultRenderer.h
function namespace (line 5) | namespace ZetaRay::DefaultRenderer
FILE: Source/ZetaRenderer/Default/DefaultRendererImpl.h
type Defaults (line 26) | struct Defaults
type class (line 46) | enum class
type alignas (line 64) | struct alignas
type alignas (line 80) | struct alignas
type GBUFFER (line 82) | enum GBUFFER
type alignas (line 131) | struct alignas
function DESC_TABLE_CONST (line 152) | enum class DESC_TABLE_CONST
type alignas (line 163) | struct alignas
function DESC_TABLE_WND_SIZE_CONST (line 196) | enum class DESC_TABLE_WND_SIZE_CONST
function namespace (line 239) | namespace ZetaRay::DefaultRenderer::Common
function namespace (line 249) | namespace ZetaRay::DefaultRenderer::GBuffer
function namespace (line 265) | namespace ZetaRay::DefaultRenderer::PathTracer
function namespace (line 280) | namespace ZetaRay::DefaultRenderer::PostProcessor
FILE: Tests/TestContainer.cpp
type A (line 150) | struct A
method A (line 152) | A()
type Temp (line 257) | struct Temp
method Temp (line 259) | Temp() = default;
method Temp (line 260) | Temp(float unused, int* p)
FILE: Tests/TestOptional.cpp
type NonTrivial (line 10) | struct NonTrivial
method NonTrivial (line 12) | NonTrivial()
method NonTrivial (line 15) | NonTrivial(int v)
method NonTrivial (line 22) | NonTrivial(const NonTrivial& other)
method NonTrivial (line 25) | NonTrivial& operator=(NonTrivial&& other)
FILE: Tools/BCnCompressglTF/BCnCompressglTF.cpp
type TEX_CONV_ARGV_NO_OVERWRITE_SRGB (line 32) | namespace TEX_CONV_ARGV_NO_OVERWRITE_SRGB
type TEX_CONV_ARGV_OVERWRITE_SRGB (line 38) | namespace TEX_CONV_ARGV_OVERWRITE_SRGB
type TEX_CONV_ARGV_NO_OVERWRITE (line 44) | namespace TEX_CONV_ARGV_NO_OVERWRITE
type TEX_CONV_ARGV_OVERWRITE (line 50) | namespace TEX_CONV_ARGV_OVERWRITE
type TEX_CONV_ARGV_NO_OVERWRITE_SWIZZLE (line 56) | namespace TEX_CONV_ARGV_NO_OVERWRITE_SWIZZLE
type TEX_CONV_ARGV_OVERWRITE_SWIZZLE (line 62) | namespace TEX_CONV_ARGV_OVERWRITE_SWIZZLE
type TEXTURE_TYPE (line 73) | enum TEXTURE_TYPE
function ZetaInline (line 99) | ZetaInline void DecodeURI_Inplace(ArenaPathNoInline& str, MemoryArena& a...
function ZetaInline (line 159) | ZetaInline bool IsASCII(const ArenaPathNoInline& path)
function DecodeImageURIs (line 172) | void DecodeImageURIs(const ArenaPath& gltfPath, cgltf_data& model, Memor...
function CreateDevice (line 192) | void CreateDevice(ID3D11Device** pDevice)
function ConvertTextures (line 231) | bool ConvertTextures(TEXTURE_TYPE texType, const ArenaPath& glTFPath,
function WriteModifiedglTF (line 351) | void WriteModifiedglTF(cgltf_data& model, const ArenaPath& gltfPath, Mem...
function ZetaInline (line 385) | ZetaInline void ReportUsageError()
function main (line 391) | int main(int argc, char* argv[])
FILE: Tools/BCnCompressglTF/DirectXTex/BC.cpp
function Decode565 (line 36) | inline void Decode565(_Out_ HDRColorA *pColor, _In_ const uint16_t w565)...
function Encode565 (line 44) | inline uint16_t Encode565(_In_ const HDRColorA *pColor) noexcept
function OptimizeRGB (line 65) | void OptimizeRGB(
function DecodeBC1 (line 318) | inline void DecodeBC1(
function EncodeBC1 (line 370) | void EncodeBC1(
function EncodeSolidBC1 (line 689) | void EncodeSolidBC1(_Out_ D3DX_BC1 *pBC, _In_reads_(NUM_PIXELS_PER_BLOCK...
function _Use_decl_annotations_ (line 730) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 737) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 801) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 827) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 901) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 943) | _Use_decl_annotations_
FILE: Tools/BCnCompressglTF/DirectXTex/BC.h
function namespace (line 17) | namespace DirectX
function HDRColorA (line 153) | inline HDRColorA* HDRColorALerp(_Out_ HDRColorA *pOut, _In_ const HDRCol...
type D3DX_BC1 (line 164) | struct D3DX_BC1
type D3DX_BC2 (line 171) | struct D3DX_BC2
type D3DX_BC3 (line 178) | struct D3DX_BC3
FILE: Tools/BCnCompressglTF/DirectXTex/BC4BC5.cpp
type BC4_UNORM (line 39) | struct BC4_UNORM
method R (line 41) | float R(size_t uOffset) const noexcept
method DecodeFromIndex (line 47) | float DecodeFromIndex(size_t uIndex) const noexcept
method GetIndex (line 71) | size_t GetIndex(size_t uOffset) const noexcept
method SetIndex (line 76) | void SetIndex(size_t uOffset, size_t uIndex) noexcept
type BC4_SNORM (line 95) | struct BC4_SNORM
method R (line 97) | float R(size_t uOffset) const noexcept
method DecodeFromIndex (line 103) | float DecodeFromIndex(size_t uIndex) const noexcept
method GetIndex (line 130) | size_t GetIndex(size_t uOffset) const noexcept
method SetIndex (line 135) | void SetIndex(size_t uOffset, size_t uIndex) noexcept
function FloatToSNorm (line 158) | void inline FloatToSNorm(_In_ float fVal, _Out_ int8_t *piSNorm) noexcept
function FindEndPointsBC4U (line 183) | void FindEndPointsBC4U(
function FindEndPointsBC4S (line 238) | void FindEndPointsBC4S(
function FindEndPointsBC5U (line 297) | inline void FindEndPointsBC5U(
function FindEndPointsBC5S (line 310) | inline void FindEndPointsBC5S(
function FindClosestUNORM (line 325) | void FindClosestUNORM(
function FindClosestSNORM (line 352) | void FindClosestSNORM(
function _Use_decl_annotations_ (line 388) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 403) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 418) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 439) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 464) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 480) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 496) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 530) | _Use_decl_annotations_
FILE: Tools/BCnCompressglTF/DirectXTex/BC6HBC7.cpp
type DirectX (line 332) | namespace DirectX
class LDRColorA (line 334) | class LDRColorA
method LDRColorA (line 339) | LDRColorA() = default;
method LDRColorA (line 340) | LDRColorA(uint8_t _r, uint8_t _g, uint8_t _b, uint8_t _a) noexcept :...
method LDRColorA (line 366) | LDRColorA operator = (_In_ const HDRColorA& c) noexcept
method InterpolateRGB (line 378) | static void InterpolateRGB(_In_ const LDRColorA& c0, _In_ const LDRC...
method InterpolateA (line 393) | static void InterpolateA(_In_ const LDRColorA& c0, _In_ const LDRCol...
method Interpolate (line 406) | static void Interpolate(_In_ const LDRColorA& c0, _In_ const LDRColo...
type LDREndPntPair (line 415) | struct LDREndPntPair
function HDRColorA (line 429) | inline HDRColorA& HDRColorA::operator = (const LDRColorA& c) noexcept
function LDRColorA (line 438) | inline LDRColorA HDRColorA::ToLDRColorA() const noexcept
method LDRColorA (line 339) | LDRColorA() = default;
method LDRColorA (line 340) | LDRColorA(uint8_t _r, uint8_t _g, uint8_t _b, uint8_t _a) noexcept :...
method LDRColorA (line 366) | LDRColorA operator = (_In_ const HDRColorA& c) noexcept
method InterpolateRGB (line 378) | static void InterpolateRGB(_In_ const LDRColorA& c0, _In_ const LDRC...
method InterpolateA (line 393) | static void InterpolateA(_In_ const LDRColorA& c0, _In_ const LDRCol...
method Interpolate (line 406) | static void Interpolate(_In_ const LDRColorA& c0, _In_ const LDRColo...
class INTColor (line 446) | class INTColor
method INTColor (line 453) | INTColor() = default;
method INTColor (line 454) | INTColor(int nr, int ng, int nb) noexcept : r(nr), g(ng), b(nb), pad(0...
method INTColor (line 455) | INTColor(const INTColor& c) noexcept : r(c.r), g(c.g), b(c.b), pad(0) {}
method INTColor (line 456) | INTColor& operator=(const INTColor& c) noexcept
method INTColor (line 466) | INTColor& operator += (_In_ const INTColor& c) noexcept
method INTColor (line 474) | INTColor& operator -= (_In_ const INTColor& c) noexcept
method INTColor (line 482) | INTColor& operator &= (_In_ const INTColor& c) noexcept
method Set (line 497) | void Set(_In_ const HDRColorA& c, _In_ bool bSigned) noexcept
method INTColor (line 509) | INTColor& Clamp(_In_ int iMin, _In_ int iMax) noexcept
method INTColor (line 517) | INTColor& SignExtend(_In_ const LDRColorA& Prec) noexcept
method ToF16 (line 525) | void ToF16(_Out_writes_(3) PackedVector::HALF aF16[3], _In_ bool bSign...
method F16ToINT (line 533) | static int F16ToINT(_In_ const PackedVector::HALF& f, _In_ bool bSigne...
method INT2F16 (line 553) | static PackedVector::HALF INT2F16(_In_ int input, _In_ bool bSigned) n...
type INTEndPntPair (line 580) | struct INTEndPntPair
class CBits (line 587) | class CBits
method GetBit (line 590) | uint8_t GetBit(_Inout_ size_t& uStartBit) const noexcept
method GetBits (line 600) | uint8_t GetBits(_Inout_ size_t& uStartBit, _In_ size_t uNumBits) const...
method SetBit (line 623) | void SetBit(_Inout_ size_t& uStartBit, _In_ uint8_t uValue) noexcept
method SetBits (line 634) | void SetBits(_Inout_ size_t& uStartBit, _In_ size_t uNumBits, _In_ uin...
class D3DX_BC6H (line 665) | class D3DX_BC6H : private CBits< 16 >
type EField (line 674) | enum EField : uint8_t
type ModeDescriptor (line 694) | struct ModeDescriptor
type ModeInfo (line 700) | struct ModeInfo
type EncodeParams (line 711) | struct EncodeParams
method EncodeParams (line 721) | EncodeParams(const HDRColorA* const aOriginal, bool bSignedFormat) n...
class D3DX_BC7 (line 769) | class D3DX_BC7 : private CBits< 16 >
type ModeInfo (line 776) | struct ModeInfo
type EncodeParams (line 791) | struct EncodeParams
method EncodeParams (line 798) | EncodeParams(const HDRColorA* const aOriginal) noexcept : uMode(0), ...
method Quantize (line 802) | static uint8_t Quantize(_In_ uint8_t comp, _In_ uint8_t uPrec) noexcept
method LDRColorA (line 809) | static LDRColorA Quantize(_In_ const LDRColorA& c, _In_ const LDRColor...
method Unquantize (line 822) | static uint8_t Unquantize(_In_ uint8_t comp, _In_ size_t uPrec) noexcept
method LDRColorA (line 829) | static LDRColorA Unquantize(_In_ const LDRColorA& c, _In_ const LDRCol...
function TransformForward (line 1140) | inline void TransformForward(_Inout_updates_all_(BC6H_MAX_REGIONS) INTEn...
function TransformInverse (line 1147) | inline void TransformInverse(_Inout_updates_all_(BC6H_MAX_REGIONS) INTEn...
function Norm (line 1161) | inline float Norm(_In_ const INTColor& a, _In_ const INTColor& b) noexcept
function NBits (line 1170) | inline int NBits(_In_ int n, _In_ bool bIsSigned) noexcept
function OptimizeRGB (line 1192) | float OptimizeRGB(
function OptimizeRGBA (line 1388) | float OptimizeRGBA(
function ComputeError (line 1557) | float ComputeError(
function FillWithErrorColors (line 1636) | void FillWithErrorColors(_Out_writes_(NUM_PIXELS_PER_BLOCK) HDRColorA* p...
function _Use_decl_annotations_ (line 1655) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1816) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1863) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1892) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1929) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1944) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1986) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2037) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2072) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2133) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2186) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2213) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2242) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2284) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2306) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2350) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2400) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2436) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2461) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2528) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2737) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2846) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2875) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2917) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2988) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3054) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3077) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3157) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3244) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3329) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3387) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3410) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3523) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3531) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3539) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3548) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3561) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3569) | _Use_decl_annotations_
FILE: Tools/BCnCompressglTF/DirectXTex/BCDirectCompute.cpp
type BufferBC6HBC7 (line 31) | struct BufferBC6HBC7
type ConstantsBC6HBC7 (line 36) | struct ConstantsBC6HBC7
function RunComputeShader (line 50) | inline void RunComputeShader(ID3D11DeviceContext* pContext,
function ResetContext (line 69) | inline void ResetContext(ID3D11DeviceContext* pContext)
function _Use_decl_annotations_ (line 95) | _Use_decl_annotations_
function HRESULT (line 176) | HRESULT GPUCompressBC::Prepare(size_t width, size_t height, uint32_t fla...
function HRESULT (line 346) | HRESULT GPUCompressBC::Compress(const Image& srcImage, const Image& dest...
FILE: Tools/BCnCompressglTF/DirectXTex/BCDirectCompute.h
function namespace (line 12) | namespace DirectX
FILE: Tools/BCnCompressglTF/DirectXTex/DDS.h
function namespace (line 23) | namespace DirectX
FILE: Tools/BCnCompressglTF/DirectXTex/DirectXTex.h
type IWICImagingFactory (line 26) | struct IWICImagingFactory
type IWICMetadataQueryReader (line 27) | struct IWICMetadataQueryReader
function namespace (line 36) | namespace DirectX
type DDS_FLAGS (line 172) | enum DDS_FLAGS : unsigned long
type TGA_FLAGS (line 210) | enum TGA_FLAGS : unsigned long
type WIC_FLAGS (line 233) | enum WIC_FLAGS : unsigned long
type Image (line 318) | struct Image
function class (line 328) | class ScratchImage
function TexMetadata (line 358) | const TexMetadata& __cdecl GetMetadata() const noexcept { return m_metad...
function Image (line 361) | const Image* __cdecl GetImages() const noexcept { return m_image; }
function GetImageCount (line 362) | size_t __cdecl GetImageCount() const noexcept { return m_nimages; }
function GetPixelsSize (line 365) | size_t __cdecl GetPixelsSize() const noexcept { return m_size; }
function class (line 379) | class Blob
function GetBufferSize (line 396) | size_t __cdecl GetBufferSize() const noexcept { return m_size; }
type TEX_FR_FLAGS (line 500) | enum TEX_FR_FLAGS : unsigned long
type TEX_FILTER_FLAGS (line 518) | enum TEX_FILTER_FLAGS : unsigned long
type TEX_COMPRESS_FLAGS (line 648) | enum TEX_COMPRESS_FLAGS : unsigned long
type CNMAP_FLAGS (line 706) | enum CNMAP_FLAGS : unsigned long
type Rect (line 740) | struct Rect
FILE: Tools/BCnCompressglTF/DirectXTex/DirectXTexCompress.cpp
function GetBCFlags (line 26) | constexpr uint32_t GetBCFlags(_In_ TEX_COMPRESS_FLAGS compress) noexcept
function TEX_FILTER_FLAGS (line 37) | constexpr TEX_FILTER_FLAGS GetSRGBFlags(_In_ TEX_COMPRESS_FLAGS compress...
function DetermineEncoderSettings (line 46) | inline bool DetermineEncoderSettings(_In_ DXGI_FORMAT format, _Out_ BC_E...
function HRESULT (line 72) | HRESULT CompressBC(
function HRESULT (line 201) | HRESULT CompressBC_Parallel(
function DXGI_FORMAT (line 334) | DXGI_FORMAT DefaultDecompress(_In_ DXGI_FORMAT format) noexcept
function HRESULT (line 382) | HRESULT DecompressBC(_In_ const Image& cImage, _In_ const Image& result)...
function _Use_decl_annotations_ (line 588) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 635) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 722) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 770) | _Use_decl_annotations_
FILE: Tools/BCnCompressglTF/DirectXTex/DirectXTexCompressGPU.cpp
function TEX_FILTER_FLAGS (line 21) | constexpr TEX_FILTER_FLAGS GetSRGBFlags(_In_ TEX_COMPRESS_FLAGS compress...
function HRESULT (line 34) | HRESULT ConvertToRGBA32(
function HRESULT (line 98) | HRESULT ConvertToRGBAF32(
function HRESULT (line 146) | inline HRESULT GPUCompress(
function _Use_decl_annotations_ (line 209) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 257) | _Use_decl_annotations_
FILE: Tools/BCnCompressglTF/DirectXTex/DirectXTexConvert.cpp
function FloatTo7e3 (line 21) | inline uint32_t FloatTo7e3(float Value) noexcept
function FloatFrom7e3 (line 54) | inline float FloatFrom7e3(uint32_t Value) noexcept
function FloatTo6e4 (line 88) | inline uint32_t FloatTo6e4(float Value) noexcept
function FloatFrom6e4 (line 121) | inline float FloatFrom6e4(uint32_t Value) noexcept
function _Use_decl_annotations_ (line 204) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 449) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 619) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 761) | _Use_decl_annotations_ bool DirectX::Internal::LoadScanline(
function _Use_decl_annotations_ (line 1608) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2463) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2503) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2529) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2559) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2635) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2687) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2730) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2807) | _Use_decl_annotations_
type ConvertData (line 2879) | struct ConvertData
function ConvertCompare (line 2975) | int __cdecl ConvertCompare(const void* ptr1, const void *ptr2) noexcept
function _Use_decl_annotations_ (line 2984) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3004) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3902) | _Use_decl_annotations_
function UseWICConversion (line 4378) | inline bool UseWICConversion(
function HRESULT (line 4540) | HRESULT ConvertUsingWIC(
function HRESULT (line 4608) | HRESULT ConvertCustom(
function DXGI_FORMAT (line 4695) | DXGI_FORMAT PlanarToSingle(_In_ DXGI_FORMAT format) noexcept
function HRESULT (line 4770) | HRESULT ConvertToSinglePlane_(_In_ const Image& srcImage, _In_ const Ima...
function _Use_decl_annotations_ (line 4857) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 4914) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 5073) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 5114) | _Use_decl_annotations_
FILE: Tools/BCnCompressglTF/DirectXTex/DirectXTexD3D11.cpp
function HRESULT (line 33) | HRESULT Capture(
function _Use_decl_annotations_ (line 206) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 406) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 420) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 615) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 629) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 733) | _Use_decl_annotations_
FILE: Tools/BCnCompressglTF/DirectXTex/DirectXTexDDS.cpp
type CONVERSION_FLAGS (line 30) | enum CONVERSION_FLAGS : uint32_t
type LegacyDDS (line 52) | struct LegacyDDS
function DXGI_FORMAT (line 166) | DXGI_FORMAT GetDXGIFormat(const DDS_HEADER& hdr, const DDS_PIXELFORMAT& ...
function HRESULT (line 281) | HRESULT DecodeDDSHeader(
function _Use_decl_annotations_ (line 563) | _Use_decl_annotations_
type TEXP_LEGACY_FORMAT (line 880) | enum TEXP_LEGACY_FORMAT
function TEXP_LEGACY_FORMAT (line 895) | constexpr TEXP_LEGACY_FORMAT FindLegacyFormat(uint32_t flags) noexcept
function LegacyExpandScanline (line 924) | bool LegacyExpandScanline(
function HRESULT (line 1233) | HRESULT CopyImage(
function HRESULT (line 1508) | HRESULT CopyImageInPlace(uint32_t convFlags, _In_ const ScratchImage& im...
function _Use_decl_annotations_ (line 1563) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1577) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1664) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1737) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1990) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2214) | _Use_decl_annotations_
FILE: Tools/BCnCompressglTF/DirectXTex/DirectXTexFlipRotate.cpp
function HRESULT (line 23) | HRESULT PerformFlipRotateUsingWIC(
function HRESULT (line 92) | HRESULT PerformFlipRotateViaF16(
function HRESULT (line 134) | HRESULT PerformFlipRotateViaF32(
function _Use_decl_annotations_ (line 185) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 282) | _Use_decl_annotations_
FILE: Tools/BCnCompressglTF/DirectXTex/DirectXTexImage.cpp
function _Use_decl_annotations_ (line 33) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 136) | _Use_decl_annotations_
function ScratchImage (line 267) | ScratchImage& ScratchImage::operator= (ScratchImage&& moveFrom) noexcept
function _Use_decl_annotations_ (line 291) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 377) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 393) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 444) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 498) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 514) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 551) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 611) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 630) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 707) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 726) | _Use_decl_annotations_
FILE: Tools/BCnCompressglTF/DirectXTex/DirectXTexMipmaps.cpp
function ispow2 (line 22) | constexpr bool ispow2(_In_ size_t x) noexcept
function CountMips (line 28) | size_t CountMips(_In_ size_t width, _In_ size_t height) noexcept
function CountMips3D (line 47) | size_t CountMips3D(_In_ size_t width, _In_ size_t height, _In_ size_t de...
function HRESULT (line 69) | HRESULT EnsureWicBitmapPixelFormat(
function XMVECTOR (line 127) | inline XMVECTOR XM_CALLCONV VectorSum
function HRESULT (line 140) | HRESULT ScaleAlpha(
function GenerateAlphaCoverageConvolutionVectors (line 191) | void GenerateAlphaCoverageConvolutionVectors(
function HRESULT (line 212) | HRESULT CalculateAlphaCoverage(
function HRESULT (line 307) | HRESULT EstimateAlphaScaleForCoverage(
function _Use_decl_annotations_ (line 355) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 378) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 404) | _Use_decl_annotations_
function UseWICFiltering (line 625) | bool UseWICFiltering(_In_ DXGI_FORMAT format, _In_ TEX_FILTER_FLAGS filt...
function HRESULT (line 704) | HRESULT GenerateMipMapsUsingWIC(
function HRESULT (line 852) | HRESULT Setup2DMips(
function HRESULT (line 908) | HRESULT Generate2DMipsPointFilter(size_t levels, const ScratchImage& mip...
function HRESULT (line 992) | HRESULT Generate2DMipsBoxFilter(size_t levels, TEX_FILTER_FLAGS filter, ...
function HRESULT (line 1088) | HRESULT Generate2DMipsLinearFilter(size_t levels, TEX_FILTER_FLAGS filte...
function HRESULT (line 1205) | HRESULT Generate2DMipsCubicFilter(size_t levels, TEX_FILTER_FLAGS filter...
function HRESULT (line 1393) | HRESULT Generate2DMipsTriangleFilter(size_t levels, TEX_FILTER_FLAGS fil...
function HRESULT (line 1609) | HRESULT Setup3DMips(
function HRESULT (line 1664) | HRESULT Generate3DMipsPointFilter(size_t depth, size_t levels, const Scr...
function HRESULT (line 1810) | HRESULT Generate3DMipsBoxFilter(size_t depth, size_t levels, TEX_FILTER_...
function HRESULT (line 1984) | HRESULT Generate3DMipsLinearFilter(size_t depth, size_t levels, TEX_FILT...
function HRESULT (line 2179) | HRESULT Generate3DMipsCubicFilter(size_t depth, size_t levels, TEX_FILTE...
function HRESULT (line 2560) | HRESULT Generate3DMipsTriangleFilter(size_t depth, size_t levels, TEX_FI...
function _Use_decl_annotations_ (line 2810) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3002) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3236) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3343) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3459) | _Use_decl_annotations_
FILE: Tools/BCnCompressglTF/DirectXTex/DirectXTexMisc.cpp
function HRESULT (line 27) | HRESULT ComputeMSE_(
function HRESULT (line 179) | HRESULT EvaluateImage_(
function HRESULT (line 215) | HRESULT TransformImage_(
function _Use_decl_annotations_ (line 274) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 387) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 474) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 508) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 605) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 639) | _Use_decl_annotations_
FILE: Tools/BCnCompressglTF/DirectXTex/DirectXTexP.h
function namespace (line 157) | namespace DirectX
FILE: Tools/BCnCompressglTF/DirectXTex/DirectXTexResize.cpp
function HRESULT (line 24) | HRESULT PerformResizeUsingWIC(
function HRESULT (line 128) | HRESULT PerformResizeViaF32(
function UseWICFiltering (line 172) | bool UseWICFiltering(_In_ DXGI_FORMAT format, _In_ TEX_FILTER_FLAGS filt...
function HRESULT (line 255) | HRESULT ResizePointFilter(const Image& srcImage, const Image& destImage)...
function HRESULT (line 312) | HRESULT ResizeBoxFilter(const Image& srcImage, TEX_FILTER_FLAGS filter, ...
function HRESULT (line 375) | HRESULT ResizeLinearFilter(const Image& srcImage, TEX_FILTER_FLAGS filte...
function HRESULT (line 466) | HRESULT ResizeCubicFilter(const Image& srcImage, TEX_FILTER_FLAGS filter...
function HRESULT (line 627) | HRESULT ResizeTriangleFilter(const Image& srcImage, TEX_FILTER_FLAGS fil...
function HRESULT (line 807) | HRESULT PerformResizeUsingCustomFilters(const Image& srcImage, TEX_FILTE...
function _Use_decl_annotations_ (line 853) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 942) | _Use_decl_annotations_
FILE: Tools/BCnCompressglTF/DirectXTex/DirectXTexUtil.cpp
type WICTranslate (line 39) | struct WICTranslate
function BOOL (line 76) | BOOL WINAPI InitializeWICFactory(PINIT_ONCE, PVOID, PVOID *ifactory) noe...
function _Use_decl_annotations_ (line 135) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 155) | _Use_decl_annotations_
function TEX_FILTER_FLAGS (line 216) | TEX_FILTER_FLAGS DirectX::Internal::CheckWICColorSpace(_In_ const GUID& ...
function _Use_decl_annotations_ (line 247) | _Use_decl_annotations_
function IWICImagingFactory (line 288) | IWICImagingFactory* DirectX::GetWICFactory(bool& iswic2) noexcept
function _Use_decl_annotations_ (line 346) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 365) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 402) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 431) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 458) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 502) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 565) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 725) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 891) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1091) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1154) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1189) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1309) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1368) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1404) | _Use_decl_annotations_
function Blob (line 1458) | Blob& Blob::operator= (Blob&& moveFrom) noexcept
function _Use_decl_annotations_ (line 1484) | _Use_decl_annotations_
function HRESULT (line 1504) | HRESULT Blob::Trim(size_t size) noexcept
function HRESULT (line 1520) | HRESULT Blob::Resize(size_t size) noexcept
FILE: Tools/BCnCompressglTF/DirectXTex/DirectXTexWIC.cpp
type WICConvert (line 23) | struct WICConvert
function DXGI_FORMAT (line 91) | DXGI_FORMAT DetermineFormat(
class MemoryStreamOnBlob (line 198) | class MemoryStreamOnBlob : public IStream
method MemoryStreamOnBlob (line 200) | MemoryStreamOnBlob(Blob& blob) noexcept :
method MemoryStreamOnBlob (line 212) | MemoryStreamOnBlob(MemoryStreamOnBlob&&) = delete;
method MemoryStreamOnBlob (line 213) | MemoryStreamOnBlob& operator= (MemoryStreamOnBlob&&) = delete;
method MemoryStreamOnBlob (line 215) | MemoryStreamOnBlob(MemoryStreamOnBlob const&) = delete;
method MemoryStreamOnBlob (line 216) | MemoryStreamOnBlob& operator= (MemoryStreamOnBlob const&) = delete;
method QueryInterface (line 219) | QueryInterface(REFIID iid, void** ppvObject) override
method AddRef (line 233) | AddRef() override
method Release (line 238) | Release() override
method Read (line 249) | Read(void* pv, ULONG cb, ULONG* pcbRead) override
method Write (line 287) | Write(void const* pv, ULONG cb, ULONG* pcbWritten) override
method SetSize (line 336) | SetSize(ULARGE_INTEGER size) override
method CopyTo (line 382) | CopyTo(IStream*, ULARGE_INTEGER, ULARGE_INTEGER*, ULARGE_INTEGER*) ove...
method Commit (line 387) | Commit(DWORD) override
method Revert (line 392) | Revert() override
method LockRegion (line 397) | LockRegion(ULARGE_INTEGER, ULARGE_INTEGER, DWORD) override
method UnlockRegion (line 402) | UnlockRegion(ULARGE_INTEGER, ULARGE_INTEGER, DWORD) override
method Clone (line 407) | Clone(IStream**) override
method Seek (line 412) | Seek(LARGE_INTEGER liDistanceToMove, DWORD dwOrigin, ULARGE_INTEGER* l...
method Stat (line 459) | Stat(STATSTG* pStatstg, DWORD) override
method HRESULT (line 467) | HRESULT Finialize() noexcept
method HRESULT (line 475) | static HRESULT CreateMemoryStream(_Outptr_ MemoryStreamOnBlob** stream...
method HRESULT (line 497) | static HRESULT ComputeGrowSize(uint64_t& newSize, const uint64_t targe...
function HRESULT (line 521) | HRESULT DecodeMetadata(
function HRESULT (line 665) | HRESULT DecodeSingleFrame(
function HRESULT (line 733) | HRESULT DecodeMultiframe(
function HRESULT (line 872) | HRESULT EncodeMetadata(
function HRESULT (line 972) | HRESULT EncodeImage(
function HRESULT (line 1076) | HRESULT EncodeSingleFrame(
function HRESULT (line 1140) | HRESULT EncodeMultiframe(
function _Use_decl_annotations_ (line 1217) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1270) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1308) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1383) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1444) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1487) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1539) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1579) | _Use_decl_annotations_
FILE: Tools/BCnCompressglTF/DirectXTex/filters.h
function namespace (line 20) | namespace DirectX
FILE: Tools/BCnCompressglTF/DirectXTex/scoped.h
type aligned_deleter (line 21) | struct aligned_deleter { void operator()(void* p) noexcept { free(p); }
function ScopedAlignedArrayFloat (line 25) | inline ScopedAlignedArrayFloat make_AlignedArrayFloat(uint64_t count)
function ScopedAlignedArrayXMVECTOR (line 38) | inline ScopedAlignedArrayXMVECTOR make_AlignedArrayXMVECTOR(uint64_t count)
type aligned_deleter (line 51) | struct aligned_deleter { void operator()(void* p) noexcept { _aligned_fr...
function ScopedAlignedArrayFloat (line 55) | inline ScopedAlignedArrayFloat make_AlignedArrayFloat(uint64_t count)
function ScopedAlignedArrayXMVECTOR (line 66) | inline ScopedAlignedArrayXMVECTOR make_AlignedArrayXMVECTOR(uint64_t count)
type handle_closer (line 76) | struct handle_closer { void operator()(HANDLE h) noexcept { assert(h != ...
function HANDLE (line 80) | inline HANDLE safe_handle(HANDLE h) noexcept { return (h == INVALID_HAND...
type find_closer (line 83) | struct find_closer { void operator()(HANDLE h) noexcept { assert(h != IN...
function class (line 88) | class auto_delete_file
FILE: Tools/BCnCompressglTF/TexConv/texconv.cpp
type OPTIONS (line 39) | enum OPTIONS : uint64_t
type SConversion (line 115) | struct SConversion
type SValue (line 122) | struct SValue
function HANDLE (line 445) | inline HANDLE safe_handle(HANDLE h) noexcept { return (h == INVALID_HAND...
type find_closer (line 447) | struct find_closer { void operator()(HANDLE h) noexcept { assert(h != IN...
function ispow2 (line 451) | constexpr static bool ispow2(size_t x)
function T (line 461) | T LookupByName(const wchar_t *pName, const SValue<T> *pArray)
function wchar_t (line 475) | const wchar_t* LookupByValue(T value, const SValue<T> *pArray)
function SearchForFiles (line 488) | void SearchForFiles(const wchar_t* path, std::list<SConversion>& files, ...
function ProcessFileList (line 568) | void ProcessFileList(std::wifstream& inFile, std::list<SConversion>& files)
function PrintFormat (line 652) | void PrintFormat(DXGI_FORMAT Format)
function PrintInfo (line 675) | void PrintInfo(const TexMetadata& info)
function PrintList (line 734) | void PrintList(size_t cch, const SValue<uint32_t> *pValue)
function PrintLogo (line 754) | void PrintLogo()
function GetDXGIFactory (line 791) | bool GetDXGIFactory(_Outptr_ IDXGIFactory1** pFactory)
function PrintUsage (line 816) | void PrintUsage()
function wchar_t (line 930) | const wchar_t* GetErrorDesc(HRESULT hr)
function FitPowerOf2 (line 959) | void FitPowerOf2(size_t origx, size_t origy, _Inout_ size_t& targetx, _I...
function CountMips (line 999) | constexpr size_t CountMips(_In_ size_t width, _In_ size_t height) noexcept
function CountMips3D (line 1017) | constexpr size_t CountMips3D(_In_ size_t width, _In_ size_t height, _In_...
function LinearToST2084 (line 1085) | inline float LinearToST2084(float normalizedLinearValue)
function ST2084ToLinear (line 1091) | inline float ST2084ToLinear(float ST2084)
function TexConv (line 1199) | int TexConv(int argc, wchar_t* argv[], ID3D11Device* device)
FILE: Tools/PrecompileShaders/PrecompileShaders.cpp
type Data (line 20) | struct Data
function main (line 45) | int main(int argc, char* argv[])
Condensed preview — 358 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (6,576K chars).
[
{
"path": ".gitattributes",
"chars": 232,
"preview": "Tools/BCnCompressglTF/DirectXTex/Shaders/Compiled/* linguist-vendored\nTools/BCnCompressglTF/DirectXTex/** linguist-vendo"
},
{
"path": ".github/workflows/build.yml",
"chars": 1095,
"preview": "name: build-and-test\n\non:\n push:\n branches:\n - master\n paths:\n - 'Source/**'\n - 'Tests/**'\n -"
},
{
"path": ".gitignore",
"chars": 426,
"preview": "# build files\n/.vs\n/.vscode\nbuild/\nbin/\n\n# assets\nAssets/*\n!Assets/CornellBox\n!Assets/Font\n!Assets/LUT\n!Assets/Samplers\n"
},
{
"path": "Assets/CornellBox/cornell.gltf",
"chars": 16077,
"preview": "{\n \"accessors\": [\n {\n \"bufferView\": 0,\n \"componentType\": 5126,\n \"type\": \"VEC3\",\n \"count\": 54,\n "
},
{
"path": "Assets/CornellBox/cornell_emissive.gltf",
"chars": 16316,
"preview": "{\n \"accessors\": [\n {\n \"bufferView\": 0,\n \"componentType\": 5126,\n \"type\": \"VEC3\",\n \"count\": 54,\n "
},
{
"path": "Assets/CornellBox/license.txt",
"chars": 686,
"preview": "Model Information:\n* title:\tCornell Box- Original\n* source:\thttps://sketchfab.com/3d-models/cornell-box-original-0d18de8"
},
{
"path": "Assets/Font/Font.h",
"chars": 287,
"preview": "#pragma once\n\n#if defined(__cplusplus)\nextern \"C\" {\n#endif\n\nstruct FontSpan\n{\n const void* Data;\n size_t N;\n};\n\nen"
},
{
"path": "Assets/Font/IconsFontAwesome6.h",
"chars": 73834,
"preview": "// Generated by https://github.com/juliettef/IconFontCppHeaders script GenerateIconFontCppHeaders.py for languages C and"
},
{
"path": "Assets/Font/LICENSE-bfont.ttf.txt",
"chars": 4947,
"preview": "Fonts are (c) Bitstream (see below). DejaVu changes are in public domain. Glyphs imported from Arev fonts are (c) Tavmju"
},
{
"path": "Assets/LUT/LICENSE-MIT",
"chars": 1061,
"preview": "Copyright (c) 2023 Tomasz Stachowiak\n\nPermission is hereby granted, free of charge, to any\nperson obtaining a copy of th"
},
{
"path": "CMake/CompileHLSL.cmake",
"chars": 5475,
"preview": "# Returns a list of included paths (if any)\nfunction(ParseIncludes DATA DIR RET)\n string(REGEX MATCHALL \"#include[ \\t"
},
{
"path": "CMake/Copy.cmake",
"chars": 656,
"preview": "function(Copy FILES DEST TARGET_NAME)\n foreach(FULL_FILENAME ${FILES})\n get_filename_component(FILE ${FULL_FIL"
},
{
"path": "CMake/SetBuildConfigurations.cmake",
"chars": 170,
"preview": "get_property(isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)\nif(isMultiConfig)\n set(CMAKE_CONFIGURATION_TYPE"
},
{
"path": "CMake/SetupAgilitySDK.cmake",
"chars": 1417,
"preview": "function(SetupAgilitySDK SDK_VERSION)\n set(VER \"1.615.0\")\n set(SDK_DIR \"${EXTERNAL_DIR}/D3D12/${VER}\")\n\n file(G"
},
{
"path": "CMake/SetupDXC.cmake",
"chars": 1121,
"preview": "function(SetupDXC DXC_BIN_DIR)\n set(DXC_DIR \"${TOOLS_DIR}/dxc\")\n file(GLOB_RECURSE DXC_BIN_PATH \"${DXC_DIR}/*dxc.e"
},
{
"path": "CMake/SetupDoctest.cmake",
"chars": 465,
"preview": "function(SetupDoctest)\n set(DOCTEST_DIR \"${EXTERNAL_DIR}/doctest\")\n file(GLOB_RECURSE HEADER_PATH \"${DOCTEST_DIR}/"
},
{
"path": "CMake/SetupImGui.cmake",
"chars": 3416,
"preview": "function(SetupImGui)\n set(IMGUI_VER \"1.91.6\")\n set(IMPLOT_COMMIT \"47522f47054d33178e7defa780042bd2a06b09f9\")\n s"
},
{
"path": "CMake/SetupWinPIX.cmake",
"chars": 1204,
"preview": "function(SetupWinPIX)\n set(PIX_DIR \"${EXTERNAL_DIR}/WinPixEventRuntime\")\n file(GLOB_RECURSE DLL_PATH \"${PIX_DIR}/*"
},
{
"path": "CMake/Setupcgltf.cmake",
"chars": 1070,
"preview": "function(Setupcgltf)\n set(CGLTF_DIR \"${EXTERNAL_DIR}/cgltf\")\n file(GLOB_RECURSE HEADER_PATH \"${CGLTF_DIR}/cgltf.h\""
},
{
"path": "CMake/SetupxxHash.cmake",
"chars": 936,
"preview": "function(SetupxxHash)\n set(XXHASH_DIR \"${EXTERNAL_DIR}/xxHash\")\n file(GLOB_RECURSE HEADER_PATH \"${XXHASH_DIR}/xxHa"
},
{
"path": "CMakeLists.txt",
"chars": 4908,
"preview": "cmake_minimum_required(VERSION 3.21)\n\n# Enable building custom commands by Visual Studio in parallel. Introduced in CMak"
},
{
"path": "External/FSR2/Include/dx12/shaders/ffx_fsr2_shaders_dx12.h",
"chars": 3411,
"preview": "// This file is part of the FidelityFX SDK.\n//\n// Copyright (c) 2022-2023 Advanced Micro Devices, Inc. All rights reserv"
},
{
"path": "External/FSR2/Include/ffx_assert.h",
"chars": 5013,
"preview": "// This file is part of the FidelityFX SDK.\n//\n// Copyright (c) 2022-2023 Advanced Micro Devices, Inc. All rights reserv"
},
{
"path": "External/FSR2/Include/ffx_error.h",
"chars": 4094,
"preview": "// This file is part of the FidelityFX SDK.\n//\n// Copyright (c) 2022-2023 Advanced Micro Devices, Inc. All rights reserv"
},
{
"path": "External/FSR2/Include/ffx_fsr2.h",
"chars": 26952,
"preview": "// This file is part of the FidelityFX SDK.\n//\n// Copyright (c) 2022-2023 Advanced Micro Devices, Inc. All rights reserv"
},
{
"path": "External/FSR2/Include/ffx_fsr2_interface.h",
"chars": 19314,
"preview": "// This file is part of the FidelityFX SDK.\n//\n// Copyright (c) 2022-2023 Advanced Micro Devices, Inc. All rights reserv"
},
{
"path": "External/FSR2/Include/ffx_types.h",
"chars": 20255,
"preview": "// This file is part of the FidelityFX SDK.\n//\n// Copyright (c) 2022-2023 Advanced Micro Devices, Inc. All rights reserv"
},
{
"path": "External/FSR2/Include/ffx_util.h",
"chars": 3224,
"preview": "// This file is part of the FidelityFX SDK.\n//\n// Copyright (c) 2022-2023 Advanced Micro Devices, Inc. All rights reserv"
},
{
"path": "External/FSR2/Include/shaders/ffx_fsr2_common.h",
"chars": 18791,
"preview": "// This file is part of the FidelityFX SDK.\n//\n// Copyright (c) 2022-2023 Advanced Micro Devices, Inc. All rights reserv"
},
{
"path": "External/FSR2/Include/shaders/ffx_fsr2_resources.h",
"chars": 7884,
"preview": "// This file is part of the FidelityFX SDK.\n//\n// Copyright (c) 2022-2023 Advanced Micro Devices, Inc. All rights reserv"
},
{
"path": "External/FastDelegate/FastDelegate.h",
"chars": 97393,
"preview": "//\t\t\t\t\t\tFastDelegate.h \n//\tEfficient delegates in C++ that generate only two lines of asm code!\n// Documentation is fou"
},
{
"path": "External/FastDelegate/FastDelegateBind.h",
"chars": 8443,
"preview": "//\t\t\t\t\t\tFastDelegateBind.h \n// Helper file for FastDelegates. Provides bind() function, enabling\n// FastDelegates to b"
},
{
"path": "External/ImGui/ImGuizmo.cpp",
"chars": 89578,
"preview": "// https://github.com/CedricGuillemet/ImGuizmo\n// v1.91.3 WIP\n//\n// The MIT License(MIT)\n//\n// Copyright(c) 2021 Cedric "
},
{
"path": "External/ImGui/ImGuizmo.h",
"chars": 12999,
"preview": "// https://github.com/CedricGuillemet/ImGuizmo\n// v1.91.3 WIP\n//\n// The MIT License(MIT)\n//\n// Copyright(c) 2021 Cedric "
},
{
"path": "External/ImGui/imconfig.h",
"chars": 11691,
"preview": "//-----------------------------------------------------------------------------\n// DEAR IMGUI COMPILE-TIME OPTIONS\n// Ru"
},
{
"path": "External/concurrentqueue/blockingconcurrentqueue.h",
"chars": 21515,
"preview": "// Provides an efficient blocking version of moodycamel::ConcurrentQueue.\n// ©2015-2020 Cameron Desrochers. Distributed "
},
{
"path": "External/concurrentqueue/concurrentqueue.h",
"chars": 152838,
"preview": "// Provides a C++11 implementation of a multi-producer, multi-consumer lock-free queue.\n// An overview, including benchm"
},
{
"path": "External/concurrentqueue/lightweightsemaphore.h",
"chars": 11756,
"preview": "// Provides an efficient implementation of a semaphore (LightweightSemaphore).\n// This is an extension of Jeff Preshing'"
},
{
"path": "External/stb/stb_image.h",
"chars": 284762,
"preview": "/* stb_image - v2.28 - public domain image loader - http://nothings.org/stb\n no warrant"
},
{
"path": "External/stb/stb_image_write.h",
"chars": 71221,
"preview": "/* stb_image_write - v1.16 - public domain - http://nothings.org/stb\n writes out PNG/BMP/TGA/JPEG/HDR images to C stdi"
},
{
"path": "External/stb/stb_sprintf.h",
"chars": 57354,
"preview": "// stb_sprintf - v1.09 - public domain snprintf() implementation\n// originally by Jeff Roberts / RAD Game Tools, 2015/10"
},
{
"path": "LICENSE",
"chars": 1076,
"preview": "MIT License\n\nCopyright (c) 2023-2024 Ali Behnoudfar\n\nPermission is hereby granted, free of charge, to any person obtaini"
},
{
"path": "README.md",
"chars": 10062,
"preview": "# ZetaRay\n\n[](https://opensource.org/licenses/MIT)\n[![build-and"
},
{
"path": "Source/CMakeLists.txt",
"chars": 116,
"preview": "add_subdirectory(ZetaCore)\nadd_subdirectory(ZetaRenderPass)\nadd_subdirectory(ZetaRenderer)\nadd_subdirectory(ZetaLab)"
},
{
"path": "Source/ZetaCore/App/App.h",
"chars": 5950,
"preview": "#pragma once\n\n#include \"../Support/Memory.h\"\n#ifndef NDEBUG\n#include \"../Utility/Error.h\"\n#endif\n#include \"FastDelegate/"
},
{
"path": "Source/ZetaCore/App/CMakeLists.txt",
"chars": 260,
"preview": "set(APP_DIR \"${ZETA_CORE_DIR}/App\")\nset(APP_SRC\n\t\"${APP_DIR}/ZetaRay.h\"\n \"${APP_DIR}/App.h\"\n \"${APP_DIR}/Filesyste"
},
{
"path": "Source/ZetaCore/App/Common.h",
"chars": 589,
"preview": "#pragma once\n\n#include \"../Utility/Span.h\"\n\nnamespace ZetaRay::App::Common\n{\n namespace CPU_Intrinsic\n {\n c"
},
{
"path": "Source/ZetaCore/App/Filesystem.h",
"chars": 901,
"preview": "#pragma once\n\n#include \"../Utility/Span.h\"\n#include \"../Support/MemoryArena.h\"\n\nnamespace ZetaRay::App::Filesystem\n{\n "
},
{
"path": "Source/ZetaCore/App/Log.h",
"chars": 918,
"preview": "#pragma once\n\n#include \"App.h\"\n#include \"../Utility/Error.h\"\n\n#ifndef NDEBUG\n#define LOG_CONSOLE(formatStr, ...) "
},
{
"path": "Source/ZetaCore/App/Path.h",
"chars": 6619,
"preview": "#include \"../App/Filesystem.h\"\n\nnamespace ZetaRay::App::Filesystem\n{\n template<Support::AllocatorType Allocator, uint"
},
{
"path": "Source/ZetaCore/App/Timer.h",
"chars": 2543,
"preview": "#pragma once\n\n#include \"../Utility/Error.h\"\n\nnamespace ZetaRay::App\n{\n struct Timer\n {\n Timer();\n ~T"
},
{
"path": "Source/ZetaCore/App/ZetaRay.h",
"chars": 508,
"preview": "#pragma once\n\n#define _HAS_EXCEPTIONS 0\n\n#include <cstdint>\n\n// Ref: https://www.foonathan.net/2020/09/move-forward/\n#de"
},
{
"path": "Source/ZetaCore/CMakeLists.txt",
"chars": 3177,
"preview": "include(\"${CMAKE_INCLUDE_DIR}/Copy.cmake\")\ninclude(\"${CMAKE_INCLUDE_DIR}/SetupAgilitySDK.cmake\")\ninclude(\"${CMAKE_INCLUD"
},
{
"path": "Source/ZetaCore/Core/CMakeLists.txt",
"chars": 1054,
"preview": "set(CORE_DIR \"${ZETA_CORE_DIR}/Core\")\nset(CORE_SRC\n \"${CORE_DIR}/CommandList.cpp\"\n \"${CORE_DIR}/CommandList.h\"\n "
},
{
"path": "Source/ZetaCore/Core/CommandList.cpp",
"chars": 1579,
"preview": "#include \"CommandList.h\"\n#include \"RendererCore.h\"\n\nusing namespace ZetaRay::Core;\n\n//----------------------------------"
},
{
"path": "Source/ZetaCore/Core/CommandList.h",
"chars": 18111,
"preview": "#pragma once\n\n#include \"Direct3DUtil.h\"\n#include \"RootSignature.h\"\n#include \"../Utility/Error.h\"\n#define USE_PIX\n#includ"
},
{
"path": "Source/ZetaCore/Core/CommandQueue.cpp",
"chars": 4825,
"preview": "#include \"CommandQueue.h\"\n#include \"RendererCore.h\"\n#include \"CommandList.h\"\n\nusing namespace ZetaRay;\nusing namespace Z"
},
{
"path": "Source/ZetaCore/Core/CommandQueue.h",
"chars": 2226,
"preview": "#pragma once\n\n#include \"../Core/Device.h\"\n#include \"../Utility/SmallVector.h\"\n#include \"../App/App.h\"\n#include <shared_m"
},
{
"path": "Source/ZetaCore/Core/Config.h",
"chars": 2513,
"preview": "#pragma once\n\n#include \"Device.h\"\n\nnamespace ZetaRay::Core::Constants\n{\n static constexpr int NUM_BACK_BUFFERS = 3;\n "
},
{
"path": "Source/ZetaCore/Core/DescriptorHeap.cpp",
"chars": 10492,
"preview": "#include \"DescriptorHeap.h\"\n#include \"RendererCore.h\"\n#include \"../Utility/Error.h\"\n\nusing namespace ZetaRay;\nusing name"
},
{
"path": "Source/ZetaCore/Core/DescriptorHeap.h",
"chars": 5697,
"preview": "#pragma once\n\n#include \"../Utility/SmallVector.h\"\n#include \"Device.h\"\n\nnamespace ZetaRay::Core\n{\n struct DescriptorTa"
},
{
"path": "Source/ZetaCore/Core/Device.cpp",
"chars": 6844,
"preview": "#include \"Device.h\"\n#include \"Config.h\"\n#include \"../App/Common.h\"\n\n// PIX crashes & NSight doesn't work when the debug "
},
{
"path": "Source/ZetaCore/Core/Device.h",
"chars": 5185,
"preview": "#pragma once\n\n#include \"../App/ZetaRay.h\"\n#include \"../Win32/Win32.h\"\n#include <D3D12/1.615.0/d3d12.h>\n#include <D3D12/1"
},
{
"path": "Source/ZetaCore/Core/Direct3DUtil.cpp",
"chars": 42967,
"preview": "#include \"Direct3DUtil.h\"\n#include \"dds.h\"\n#include \"RendererCore.h\"\n#include \"../Support/MemoryArena.h\"\n#include <xxHas"
},
{
"path": "Source/ZetaCore/Core/Direct3DUtil.h",
"chars": 23446,
"preview": "// Ref: Some of the following functions are from DirectXTK12 (MIT License):\n// https://github.com/microsoft/DirectXTK12\n"
},
{
"path": "Source/ZetaCore/Core/GpuMemory.cpp",
"chars": 55509,
"preview": "#include \"../App/Timer.h\"\n#include \"RendererCore.h\"\n#include \"CommandList.h\"\n#include \"../Support/Task.h\"\n#include \"../A"
},
{
"path": "Source/ZetaCore/Core/GpuMemory.h",
"chars": 14481,
"preview": "#pragma once\n\n#include \"Direct3DUtil.h\"\n#include \"../Utility/Span.h\"\n#include \"../Support/OffsetAllocator.h\"\n\nnamespace "
},
{
"path": "Source/ZetaCore/Core/GpuTimer.cpp",
"chars": 6752,
"preview": "#include \"RendererCore.h\"\n#include \"CommandList.h\"\n#include \"../App/Timer.h\"\n\nusing namespace ZetaRay;\nusing namespace Z"
},
{
"path": "Source/ZetaCore/Core/GpuTimer.h",
"chars": 1823,
"preview": "#pragma once\n\n#include <Core/Config.h>\n#include \"GpuMemory.h\"\n#include <atomic>\n\nnamespace ZetaRay::Core\n{\n class Com"
},
{
"path": "Source/ZetaCore/Core/HLSLCompat.h",
"chars": 1670,
"preview": "#ifndef HLSL_COMPAT\n#define HLSL_COMPAT\n\n#ifdef __cplusplus\n #include <cstdint>\n #include \"../Math/Matrix.h\"\n\n "
},
{
"path": "Source/ZetaCore/Core/Material.h",
"chars": 14062,
"preview": "#ifndef MATERIAL_H\n#define MATERIAL_H\n\n#include \"HLSLCompat.h\"\n\n// Metallic is treated as a binary parameter - everythin"
},
{
"path": "Source/ZetaCore/Core/PipelineStateLibrary.cpp",
"chars": 15216,
"preview": "#include \"PipelineStateLibrary.h\"\n#include \"RendererCore.h\"\n#include \"../App/Log.h\"\n#include <App/Common.h>\n#include <Ap"
},
{
"path": "Source/ZetaCore/Core/PipelineStateLibrary.h",
"chars": 1894,
"preview": "#pragma once\n\n#include \"../Core/Device.h\"\n#include \"../App/Path.h\"\n#include <atomic>\n\nnamespace ZetaRay::Core\n{\n clas"
},
{
"path": "Source/ZetaCore/Core/RenderGraph.cpp",
"chars": 47285,
"preview": "// Some of the ideas in this implementation were inspired by the following: \n// https://levelup.gitconnected.com/organiz"
},
{
"path": "Source/ZetaCore/Core/RenderGraph.h",
"chars": 11793,
"preview": "#pragma once\n\n#include \"Direct3DUtil.h\"\n#include \"../Utility/Span.h\"\n#include <FastDelegate/FastDelegate.h>\n#include <at"
},
{
"path": "Source/ZetaCore/Core/RendererCore.cpp",
"chars": 21466,
"preview": "#include \"RendererCore.h\"\n#include \"CommandList.h\"\n#include \"Direct3DUtil.h\"\n#include \"../Support/Task.h\"\n#include \"../S"
},
{
"path": "Source/ZetaCore/Core/RendererCore.h",
"chars": 7170,
"preview": "#pragma once\n\n#include \"Config.h\"\n#include \"DescriptorHeap.h\"\n#include \"GpuTimer.h\"\n#include \"CommandQueue.h\"\n#include \""
},
{
"path": "Source/ZetaCore/Core/RootSignature.cpp",
"chars": 14580,
"preview": "#include \"RootSignature.h\"\n#include \"RendererCore.h\"\n#include \"CommandList.h\"\n#include \"SharedShaderResources.h\"\n#includ"
},
{
"path": "Source/ZetaCore/Core/RootSignature.h",
"chars": 5688,
"preview": "#pragma once\n\n#include \"Device.h\"\n\nnamespace ZetaRay::Util\n{\n template<typename T>\n struct Span;\n}\n\nnamespace Zeta"
},
{
"path": "Source/ZetaCore/Core/SharedShaderResources.cpp",
"chars": 3379,
"preview": "#include \"SharedShaderResources.h\"\n#include <xxHash/xxhash.h>\n\nusing namespace ZetaRay;\nusing namespace ZetaRay::Core;\nu"
},
{
"path": "Source/ZetaCore/Core/SharedShaderResources.h",
"chars": 2328,
"preview": "#pragma once\n\n#include \"../Utility/HashTable.h\"\n#include <shared_mutex>\n\nnamespace ZetaRay::Core::GpuMemory\n{\n struct"
},
{
"path": "Source/ZetaCore/Core/Vertex.h",
"chars": 243,
"preview": "#pragma once\n\n#include \"../Math/OctahedralVector.h\"\n\nnamespace ZetaRay::Core\n{\n // 28 bytes\n struct Vertex\n {\n "
},
{
"path": "Source/ZetaCore/Core/dds.h",
"chars": 10500,
"preview": "//--------------------------------------------------------------------------------------\n// dds.h\n//\n// This header defi"
},
{
"path": "Source/ZetaCore/Math/BVH.cpp",
"chars": 20762,
"preview": "#include \"BVH.h\"\n#include \"../Math/CollisionFuncs.h\"\n#include \"../Utility/Error.h\"\n#include \"../App/Log.h\"\n#include \"../"
},
{
"path": "Source/ZetaCore/Math/BVH.h",
"chars": 4046,
"preview": "// References:\n// 1. M. Pharr, W. Jakob, and G. Humphreys, Physically Based Rendering: From theory to implementation, Mo"
},
{
"path": "Source/ZetaCore/Math/CMakeLists.txt",
"chars": 624,
"preview": "set(MATH_DIR \"${ZETA_CORE_DIR}/Math\")\nset(MATH_SRC\n \"${MATH_DIR}/BVH.cpp\"\n \"${MATH_DIR}/BVH.h\"\n \"${MATH_DIR}/Co"
},
{
"path": "Source/ZetaCore/Math/CollisionFuncs.h",
"chars": 22057,
"preview": "#pragma once\n\n#include \"CollisionTypes.h\"\n#include \"VectorFuncs.h\"\n#include \"MatrixFuncs.h\"\n\nnamespace ZetaRay::Math\n{\n "
},
{
"path": "Source/ZetaCore/Math/CollisionTypes.h",
"chars": 9695,
"preview": "#pragma once\n\n#include \"Vector.h\"\n#ifndef NDEBUG\n#include <type_traits>\n#endif\n\nnamespace ZetaRay::Math\n{\n enum class"
},
{
"path": "Source/ZetaCore/Math/Color.cpp",
"chars": 1570,
"preview": "#include \"Color.h\"\n#include \"Color.h\"\n#include \"Common.h\"\n\nusing namespace ZetaRay;\nusing namespace ZetaRay::Math;\nusing"
},
{
"path": "Source/ZetaCore/Math/Color.h",
"chars": 2329,
"preview": "#pragma once\n\n#include \"VectorFuncs.h\"\n\nnamespace ZetaRay::Math\n{\n ZetaInline uint16_t __vectorcall Float2ToRG8(Math:"
},
{
"path": "Source/ZetaCore/Math/Common.cpp",
"chars": 4265,
"preview": "#include \"Vector.h\"\n#include \"../Utility/Span.h\"\n\nusing namespace ZetaRay;\nusing namespace ZetaRay::Math;\nusing namespac"
},
{
"path": "Source/ZetaCore/Math/Common.h",
"chars": 4730,
"preview": "#pragma once\n\n#include \"../Utility/Error.h\"\n#include <float.h>\n#include <string.h>\n#include <immintrin.h> // AVX intr"
},
{
"path": "Source/ZetaCore/Math/Matrix.h",
"chars": 4760,
"preview": "#pragma once\n\n#include \"Vector.h\"\n#include <math.h>\n\nnamespace ZetaRay::Math\n{\n struct float4x4a;\n struct float3x3"
},
{
"path": "Source/ZetaCore/Math/MatrixFuncs.h",
"chars": 33983,
"preview": "#pragma once\n\n#include \"Matrix.h\"\n#include \"VectorFuncs.h\"\n\n//----------------------------------------------------------"
},
{
"path": "Source/ZetaCore/Math/OctahedralVector.h",
"chars": 961,
"preview": "#pragma once\n\n#include \"VectorFuncs.h\"\n\nnamespace ZetaRay::Math\n{\n // 3D unit vector encoded using octahedral encodin"
},
{
"path": "Source/ZetaCore/Math/Quaternion.h",
"chars": 5418,
"preview": "#pragma once\n\n#include \"VectorFuncs.h\"\n#include \"Matrix.h\"\n\nnamespace ZetaRay::Math\n{\n // Returns a roations quaterni"
},
{
"path": "Source/ZetaCore/Math/Sampling.cpp",
"chars": 4702,
"preview": "#include \"Sampling.h\"\n#include <Utility/RNG.h>\n#include <cmath>\n\nusing namespace ZetaRay;\nusing namespace ZetaRay::Util;"
},
{
"path": "Source/ZetaCore/Math/Sampling.h",
"chars": 997,
"preview": "#pragma once\n\n#include <Utility/Span.h>\n#include <Math/Vector.h>\n\nnamespace ZetaRay::Util\n{\n struct RNG;\n}\n\nnamespace"
},
{
"path": "Source/ZetaCore/Math/Surface.cpp",
"chars": 3373,
"preview": "#include \"Surface.h\"\n#include \"../App/Log.h\"\n#include <Math/VectorFuncs.h>\n\nusing namespace ZetaRay::Core;\nusing namespa"
},
{
"path": "Source/ZetaCore/Math/Surface.h",
"chars": 4473,
"preview": "#pragma once\n\n#include \"Common.h\"\n#include \"../Core/Vertex.h\"\n#include \"../Utility/Span.h\"\n\nnamespace ZetaRay::Math\n{\n "
},
{
"path": "Source/ZetaCore/Math/Vector.h",
"chars": 26404,
"preview": "#pragma once\n\n#include \"Common.h\"\n\n#define V_SHUFFLE_XYZW(fp0, fp1, fp2, fp3) (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2"
},
{
"path": "Source/ZetaCore/Math/VectorFuncs.h",
"chars": 11871,
"preview": "#pragma once\n\n#include \"Vector.h\"\n\n//-----------------------------------------------------------------------------------"
},
{
"path": "Source/ZetaCore/Model/CMakeLists.txt",
"chars": 234,
"preview": "set(MODEL_DIR \"${ZETA_CORE_DIR}/Model\")\nset(MODEL_SRC\n \"${MODEL_DIR}/glTF.cpp\"\n \"${MODEL_DIR}/glTF.h\"\n \"${MODEL"
},
{
"path": "Source/ZetaCore/Model/Mesh.cpp",
"chars": 28907,
"preview": "#include \"Mesh.h\"\n#include \"../Math/Surface.h\"\n#include \"../Math/MatrixFuncs.h\"\n\nusing namespace ZetaRay;\nusing namespac"
},
{
"path": "Source/ZetaCore/Model/Mesh.h",
"chars": 3128,
"preview": "#pragma once\n\n#include \"../Math/CollisionFuncs.h\"\n#include \"../Core/Vertex.h\"\n#include \"../Utility/Span.h\"\n\nnamespace Ze"
},
{
"path": "Source/ZetaCore/Model/glTF.cpp",
"chars": 51063,
"preview": "#include \"glTF.h\"\n#include \"../Math/MatrixFuncs.h\"\n#include \"../Math/Surface.h\"\n#include \"../Math/Quaternion.h\"\n#include"
},
{
"path": "Source/ZetaCore/Model/glTF.h",
"chars": 121,
"preview": "#pragma once\n\n#include \"../App/Path.h\"\n\nnamespace ZetaRay::Model::glTF\n{\n void Load(const App::Filesystem::Path& p);\n"
},
{
"path": "Source/ZetaCore/Model/glTFAsset.h",
"chars": 2434,
"preview": "#pragma once\n\n#include \"../Core/Vertex.h\"\n#include \"../Core/GpuMemory.h\"\n#include \"../Math/Matrix.h\"\n#include \"../App/Fi"
},
{
"path": "Source/ZetaCore/RayTracing/CMakeLists.txt",
"chars": 201,
"preview": "set(RT_DIR \"${ZETA_CORE_DIR}/RayTracing\")\nset(RT_SRC\n \"${RT_DIR}/RtAccelerationStructure.cpp\"\n \"${RT_DIR}/RtAccele"
},
{
"path": "Source/ZetaCore/RayTracing/RtAccelerationStructure.cpp",
"chars": 67987,
"preview": "#include \"RtAccelerationStructure.h\"\n#include \"../Core/RendererCore.h\"\n#include \"../Core/CommandList.h\"\n#include \"../Sce"
},
{
"path": "Source/ZetaCore/RayTracing/RtAccelerationStructure.h",
"chars": 4511,
"preview": "#pragma once\n\n#include \"../Core/GpuMemory.h\"\n#include \"RtCommon.h\"\n#include \"../Scene/SceneCommon.h\"\n#include \"../Suppor"
},
{
"path": "Source/ZetaCore/RayTracing/RtCommon.h",
"chars": 12158,
"preview": "#ifndef RTCOMMON_H\n#define RTCOMMON_H\n\n#include \"../Core/Material.h\"\n\n#ifdef __cplusplus\n#include \"../Math/VectorFuncs.h"
},
{
"path": "Source/ZetaCore/Scene/Asset.cpp",
"chars": 14573,
"preview": "#include \"Asset.h\"\n#include \"../Core/RendererCore.h\"\n#include \"../Core/SharedShaderResources.h\"\n#include \"SceneCore.h\"\n#"
},
{
"path": "Source/ZetaCore/Scene/Asset.h",
"chars": 8310,
"preview": "#pragma once\n\n#include \"../Utility/HashTable.h\"\n#include \"../Core/DescriptorHeap.h\"\n#include \"../Model/glTFAsset.h\"\n#inc"
},
{
"path": "Source/ZetaCore/Scene/CMakeLists.txt",
"chars": 342,
"preview": "set(SCENE_DIR \"${ZETA_CORE_DIR}/Scene\")\nset(SCENE_SRC\n \"${SCENE_DIR}/Asset.cpp\"\n \"${SCENE_DIR}/Asset.h\"\n \"${SCE"
},
{
"path": "Source/ZetaCore/Scene/Camera.cpp",
"chars": 11630,
"preview": "#include \"Camera.h\"\n#include \"../App/Timer.h\"\n#include \"../Core/RendererCore.h\"\n#include \"../Math/CollisionFuncs.h\"\n#inc"
},
{
"path": "Source/ZetaCore/Scene/Camera.h",
"chars": 5083,
"preview": "#pragma once\n\n#include \"../Math/Matrix.h\"\n#include \"../Math/CollisionTypes.h\"\n\nnamespace ZetaRay::Support\n{\n struct P"
},
{
"path": "Source/ZetaCore/Scene/SceneCommon.h",
"chars": 294,
"preview": "#pragma once\n\n#include <App/ZetaRay.h>\n\nnamespace ZetaRay::Scene\n{\n static constexpr uint64_t INVALID_INSTANCE = UINT"
},
{
"path": "Source/ZetaCore/Scene/SceneCore.cpp",
"chars": 39948,
"preview": "#include \"SceneCore.h\"\n#include \"../Math/CollisionFuncs.h\"\n#include \"../Math/Quaternion.h\"\n#include \"../Support/Task.h\"\n"
},
{
"path": "Source/ZetaCore/Scene/SceneCore.h",
"chars": 15956,
"preview": "#pragma once\n\n#include \"../Math/BVH.h\"\n#include \"Asset.h\"\n#include \"SceneRenderer.h\"\n#include \"SceneCommon.h\"\n#include \""
},
{
"path": "Source/ZetaCore/Scene/SceneRenderer.h",
"chars": 2670,
"preview": "#pragma once\n\n#include \"../App/ZetaRay.h\"\n\nnamespace ZetaRay::Support\n{\n struct TaskSet;\n}\n\nnamespace ZetaRay::Core\n{"
},
{
"path": "Source/ZetaCore/Support/CMakeLists.txt",
"chars": 608,
"preview": "set(SUPPORT_DIR \"${ZETA_CORE_DIR}/Support\")\nset(SUPPORT_SRC\n \"${SUPPORT_DIR}/FrameMemory.h\"\n \"${SUPPORT_DIR}/Memor"
},
{
"path": "Source/ZetaCore/Support/FrameMemory.h",
"chars": 2132,
"preview": "#pragma once\n\n#include \"../App/App.h\"\n#include <string.h>\n\nnamespace ZetaRay::Support\n{\n template<size_t BlockSize>\n "
},
{
"path": "Source/ZetaCore/Support/Memory.h",
"chars": 771,
"preview": "#pragma once\n\n#include \"../App/ZetaRay.h\"\n#include <malloc.h>\n#include <concepts>\n\nnamespace ZetaRay::Support\n{\n temp"
},
{
"path": "Source/ZetaCore/Support/MemoryArena.cpp",
"chars": 2477,
"preview": "#include \"MemoryArena.h\"\n\nusing namespace ZetaRay::Support;\nusing namespace ZetaRay::Math;\n\n//--------------------------"
},
{
"path": "Source/ZetaCore/Support/MemoryArena.h",
"chars": 2661,
"preview": "#pragma once\n\n#include \"../Utility/SmallVector.h\"\n\nnamespace ZetaRay::Support\n{\n class MemoryArena\n {\n public:\n"
},
{
"path": "Source/ZetaCore/Support/MemoryPool.cpp",
"chars": 10196,
"preview": "#include \"MemoryPool.h\"\n#include \"../Utility/Error.h\"\n#include \"../Math/Common.h\"\n#include <intrin.h>\n#include <cstdio>\n"
},
{
"path": "Source/ZetaCore/Support/MemoryPool.h",
"chars": 4127,
"preview": "#pragma once\n\n#include \"Memory.h\"\n\nnamespace ZetaRay::Support\n{\n // Pool-based memory allocator\n // - A col"
},
{
"path": "Source/ZetaCore/Support/OffsetAllocator.cpp",
"chars": 14256,
"preview": "#include \"OffsetAllocator.h\"\n#include \"../Utility/Error.h\"\n#include \"../Math/Common.h\"\n#include <intrin.h>\n#include <con"
},
{
"path": "Source/ZetaCore/Support/OffsetAllocator.h",
"chars": 2949,
"preview": "#pragma once\n\n#include \"../App/ZetaRay.h\"\n\nnamespace ZetaRay::Support\n{\n // Ref: https://github.com/sebbbi/OffsetAllo"
},
{
"path": "Source/ZetaCore/Support/Param.cpp",
"chars": 8289,
"preview": "#include \"Param.h\"\n#include <xxHash/xxhash.h>\n#include <string.h>\n\nusing namespace ZetaRay::Support;\nusing namespace Zet"
},
{
"path": "Source/ZetaCore/Support/Param.h",
"chars": 9133,
"preview": "#pragma once\n\n#include \"../Math/Vector.h\"\n#include <type_traits>\n#include <FastDelegate/FastDelegate.h>\n\nnamespace ZetaR"
},
{
"path": "Source/ZetaCore/Support/Stat.h",
"chars": 3193,
"preview": "#pragma once\n\n#include \"../Utility/Error.h\"\n#include \"../Math/Common.h\"\n\nnamespace ZetaRay::Support\n{\n struct Stat\n "
},
{
"path": "Source/ZetaCore/Support/Task.cpp",
"chars": 9752,
"preview": "#include \"Task.h\"\n#include \"../App/Timer.h\"\n#include <intrin.h>\n\nusing namespace ZetaRay::Support;\nusing namespace ZetaR"
},
{
"path": "Source/ZetaCore/Support/Task.h",
"chars": 5002,
"preview": "#pragma once\n\n#include \"../Utility/Span.h\"\n#include \"../Utility/Function.h\"\n#include \"../App/App.h\"\n#include <atomic>\n\nn"
},
{
"path": "Source/ZetaCore/Support/ThreadPool.cpp",
"chars": 6232,
"preview": "#include \"ThreadPool.h\"\n#include \"../App/Log.h\"\n\nusing namespace ZetaRay::Support;\nusing namespace ZetaRay::App;\nusing n"
},
{
"path": "Source/ZetaCore/Support/ThreadPool.h",
"chars": 2271,
"preview": "#pragma once\n\n#include \"Task.h\"\n#include \"concurrentqueue/blockingconcurrentqueue.h\"\n\nnamespace ZetaRay::Support\n{\n c"
},
{
"path": "Source/ZetaCore/Utility/CMakeLists.txt",
"chars": 381,
"preview": "set(UTIL_DIR \"${ZETA_CORE_DIR}/Utility\")\nset(UTIL_SRC\n \"${UTIL_DIR}/Error.cpp\"\n \"${UTIL_DIR}/Error.h\"\n \"${UTIL_"
},
{
"path": "Source/ZetaCore/Utility/Error.cpp",
"chars": 7138,
"preview": "#define STB_SPRINTF_IMPLEMENTATION\n\n#include \"Error.h\"\n#include \"Span.h\"\n#include \"../Win32/Win32.h\"\n#include \"../Suppor"
},
{
"path": "Source/ZetaCore/Utility/Error.h",
"chars": 4780,
"preview": "#pragma once\n\n#include \"../App/ZetaRay.h\"\n#include <stb/stb_sprintf.h>\n\n//----------------------------------------------"
},
{
"path": "Source/ZetaCore/Utility/Function.h",
"chars": 2800,
"preview": "#pragma once\n\n#include \"../App/ZetaRay.h\"\n\nnamespace ZetaRay::Util\n{\n // Ref: https://stackoverflow.com/questions/186"
},
{
"path": "Source/ZetaCore/Utility/HashTable.h",
"chars": 15316,
"preview": "#pragma once\n\n#include \"../Math/Common.h\"\n#include \"../Support/Memory.h\"\n#include \"../Utility/Optional.h\"\n\nnamespace Zet"
},
{
"path": "Source/ZetaCore/Utility/Optional.h",
"chars": 3926,
"preview": "#pragma once\n\n#include <Utility/Error.h>\n#include <type_traits>\n\nnamespace ZetaRay::Util\n{\n template<typename T>\n "
},
{
"path": "Source/ZetaCore/Utility/RNG.h",
"chars": 3494,
"preview": "#pragma once\n\n#include \"../Math/Vector.h\"\n#include <float.h>\n\nnamespace ZetaRay::Util\n{\n // Following is based on: ht"
},
{
"path": "Source/ZetaCore/Utility/SmallVector.h",
"chars": 28732,
"preview": "#pragma once\n\n#include \"../Math/Common.h\"\n#include \"../Support/Memory.h\"\n#include <utility> // std::swap\n\nnamespace Z"
},
{
"path": "Source/ZetaCore/Utility/Span.h",
"chars": 4288,
"preview": "#pragma once\n\n#include \"SmallVector.h\"\n\nnamespace ZetaRay::Util\n{\n // Doesn't own the data -- just a pointer and a si"
},
{
"path": "Source/ZetaCore/Utility/SynchronizedView.h",
"chars": 2337,
"preview": "#pragma once\n\n#include \"../Win32/Win32.h\"\n#include \"Span.h\"\n\nnamespace ZetaRay::Util\n{\n template<typename T>\n stru"
},
{
"path": "Source/ZetaCore/Utility/Utility.h",
"chars": 3020,
"preview": "#pragma once\n\n#include \"Span.h\"\n\nnamespace ZetaRay::Util\n{\n // Callable type Accessor that accepts type T and returns"
},
{
"path": "Source/ZetaCore/Win32/CMakeLists.txt",
"chars": 262,
"preview": "set(WIN32_DIR \"${ZETA_CORE_DIR}/Win32\")\nset(WIN32_SRC\n \"${WIN32_DIR}/Win32App.cpp\"\n \"${WIN32_DIR}/Win32Filesystem."
},
{
"path": "Source/ZetaCore/Win32/Win32.h",
"chars": 334,
"preview": "#pragma once\n\n#define NOMINMAX\n#define NODRAWTEXT\n//#define NOGDI\n#define NOBITMAP\n#define NOMCX\n#define NOSERVICE\n#defi"
},
{
"path": "Source/ZetaCore/Win32/Win32App.cpp",
"chars": 73195,
"preview": "#include \"../App/Log.h\"\n#include \"../Support/FrameMemory.h\"\n#include \"../App/Timer.h\"\n#include \"../App/Common.h\"\n#includ"
},
{
"path": "Source/ZetaCore/Win32/Win32Common.cpp",
"chars": 1887,
"preview": "#include \"../App/Common.h\"\n#include \"Win32.h\"\n#include <intrin.h>\n\nusing namespace ZetaRay;\nusing namespace ZetaRay::Uti"
},
{
"path": "Source/ZetaCore/Win32/Win32Filesystem.cpp",
"chars": 5506,
"preview": "#include \"../App/Filesystem.h\"\n#include \"../Support/MemoryArena.h\"\n#include \"Win32.h\"\n\nusing namespace ZetaRay::Util;\nus"
},
{
"path": "Source/ZetaCore/Win32/Win32Timer.cpp",
"chars": 3607,
"preview": "#include \"../App/Timer.h\"\n#include \"Win32.h\"\n\nusing namespace ZetaRay::App;\n\n//-----------------------------------------"
},
{
"path": "Source/ZetaLab/CMakeLists.txt",
"chars": 505,
"preview": "add_executable(ZetaLab WIN32 \"${CMAKE_SOURCE_DIR}/Source/ZetaLab/ZetaLab.cpp\")\ntarget_link_libraries(ZetaLab ZetaCore Ze"
},
{
"path": "Source/ZetaLab/ZetaLab.cpp",
"chars": 1902,
"preview": "//\n// Main.cpp\n//\n\n#define OPEN_CONSOLE 0\n\n#include <App/Log.h>\n#include <App/Timer.h>\n#include <Scene/SceneCore.h>\n#inc"
},
{
"path": "Source/ZetaRenderPass/AutoExposure/AutoExposure.cpp",
"chars": 7662,
"preview": "#include \"AutoExposure.h\"\n#include <Core/CommandList.h>\n#include <Scene/SceneRenderer.h>\n#include <Support/Param.h>\n#inc"
},
{
"path": "Source/ZetaRenderPass/AutoExposure/AutoExposure.h",
"chars": 3008,
"preview": "#pragma once\n\n#include \"../RenderPass.h\"\n#include <Core/GpuMemory.h>\n#include \"AutoExposure_Common.h\"\n\nnamespace ZetaRay"
},
{
"path": "Source/ZetaRenderPass/AutoExposure/AutoExposure_Common.h",
"chars": 458,
"preview": "#ifndef AUTO_EXPOSURE_H\n#define AUTO_EXPOSURE_H\n\n#include \"../../ZetaCore/Core/HLSLCompat.h\"\n\n#define THREAD_GROUP_SIZE_"
},
{
"path": "Source/ZetaRenderPass/AutoExposure/AutoExposure_Histogram.hlsl",
"chars": 2798,
"preview": "// Ref: https://alextardif.com/HistogramLuminance.html\n\n#include \"AutoExposure_Common.h\"\n#include \"../Common/Math.hlsli\""
},
{
"path": "Source/ZetaRenderPass/AutoExposure/AutoExposure_WeightedAvg.hlsl",
"chars": 4050,
"preview": "#include \"AutoExposure_Common.h\"\n#include \"../Common/Math.hlsli\"\n#include \"../Common/FrameConstants.h\"\n#include \"../Comm"
},
{
"path": "Source/ZetaRenderPass/AutoExposure/CMakeLists.txt",
"chars": 403,
"preview": "set(RP_AUTO_EXPOSURE_DIR ${ZETA_RENDER_PASS_DIR}/AutoExposure)\nset(RP_AUTO_EXPOSURE_SRC\n ${RP_AUTO_EXPOSURE_DIR}/Auto"
},
{
"path": "Source/ZetaRenderPass/CMakeLists.txt",
"chars": 2117,
"preview": "include(\"${CMAKE_INCLUDE_DIR}/CompileHLSL.cmake\")\n\nadd_subdirectory(AutoExposure)\nadd_subdirectory(Common)\nadd_subdirect"
},
{
"path": "Source/ZetaRenderPass/Common/BSDF.hlsli",
"chars": 46906,
"preview": "// Refs:\n//\n// 1. M. Pharr, W. Jakob, and G. Humphreys, Physically Based Rendering: From theory to implementation, Morga"
},
{
"path": "Source/ZetaRenderPass/Common/BSDFSampling.hlsli",
"chars": 26993,
"preview": "#ifndef BSDF_SAMPLING_H\n#define BSDF_SAMPLING_H\n\n#include \"BSDF.hlsli\"\n#include \"RT.hlsli\"\n\nnamespace BSDF\n{\n //-----"
},
{
"path": "Source/ZetaRenderPass/Common/CMakeLists.txt",
"chars": 629,
"preview": "set(RP_COMMON_DIR ${ZETA_RENDER_PASS_DIR}/Common)\nset(RP_COMMON_SRC\n ${RP_COMMON_DIR}/BSDF.hlsli\n ${RP_COMMON_DIR}"
},
{
"path": "Source/ZetaRenderPass/Common/Common.hlsli",
"chars": 7665,
"preview": "#ifndef COMMON_H\n#define COMMON_H\n\n// 28 bytes\nstruct Vertex\n{\n float3 PosL;\n float2 TexUV;\n uint16_t2 NormalL;"
},
{
"path": "Source/ZetaRenderPass/Common/FrameConstants.h",
"chars": 2986,
"preview": "#ifndef FRAME_CONSTANTS\n#define FRAME_CONSTANTS\n\n#include \"../../ZetaCore/Core/HLSLCompat.h\"\n\n#ifdef __cplusplus\nnamespa"
},
{
"path": "Source/ZetaRenderPass/Common/GBuffers.hlsli",
"chars": 3091,
"preview": "#ifndef GBUFFERS_H\n#define GBUFFERS_H\n\n#include \"../../ZetaCore/Core/Material.h\"\n\nenum GBUFFER_OFFSET\n{\n BASE_COLOR ="
},
{
"path": "Source/ZetaRenderPass/Common/LightSource.hlsli",
"chars": 8833,
"preview": "#ifndef LIGHT_SOURCE_H\n#define LIGHT_SOURCE_H\n\n#include \"FrameConstants.h\"\n#include \"StaticTextureSamplers.hlsli\"\n#inclu"
},
{
"path": "Source/ZetaRenderPass/Common/LightVoxelGrid.hlsli",
"chars": 2337,
"preview": "#ifndef LVG_H\n#define LVG_H\n\n#include \"LightSource.hlsli\"\n\nnamespace LVG\n{\n uint FlattenVoxelIndex(uint3 voxelIdx, ui"
},
{
"path": "Source/ZetaRenderPass/Common/Math.hlsli",
"chars": 22328,
"preview": "#ifndef MATH_H\n#define MATH_H\n\n#define PI 3.141592654f\n#define TWO_PI 6.283185307f\n#defi"
},
{
"path": "Source/ZetaRenderPass/Common/RT.hlsli",
"chars": 18991,
"preview": "#ifndef RT_H\n#define RT_H\n\n#include \"../../ZetaCore/RayTracing/RtCommon.h\"\n#include \"Math.hlsli\"\n#include \"Sampling.hlsl"
},
{
"path": "Source/ZetaRenderPass/Common/RayQuery.hlsli",
"chars": 19617,
"preview": "#ifndef RAY_QUERY_H\n#define RAY_QUERY_H\n\n#include \"RT.hlsli\"\n#include \"Common.hlsli\"\n#include \"FrameConstants.h\"\n#includ"
},
{
"path": "Source/ZetaRenderPass/Common/SH.hlsli",
"chars": 2034,
"preview": "//--------------------------------------------------------------------------------------\n// Constants\n//----------------"
},
{
"path": "Source/ZetaRenderPass/Common/Sampling.hlsli",
"chars": 7633,
"preview": "#ifndef SAMPLING_H\n#define SAMPLING_H\n\n#include \"Math.hlsli\"\n\n// Refs: \n// 1. https://www.reedbeta.com/blog/hash-functio"
},
{
"path": "Source/ZetaRenderPass/Common/StaticTextureSamplers.hlsli",
"chars": 461,
"preview": "#ifndef SAMPLERS_H\n#define SAMPLERS_H\n\nSamplerState g_samMip0 : register(s0);\nSamplerState g_samPointWrap : register(s1)"
},
{
"path": "Source/ZetaRenderPass/Common/Volumetric.hlsli",
"chars": 8820,
"preview": "#ifndef VOLUMETRIC_H\n#define VOLUMETRIC_H\n\n// Refs:\n// 1. M. Pharr and G. Humphreys, Physically Based Rendering: From th"
},
{
"path": "Source/ZetaRenderPass/Compositing/CMakeLists.txt",
"chars": 359,
"preview": "set(RP_COMPOSITING_DIR ${ZETA_RENDER_PASS_DIR}/Compositing)\nset(RP_COMPOSITING_SRC\n ${RP_COMPOSITING_DIR}/Compositing"
},
{
"path": "Source/ZetaRenderPass/Compositing/Compositing.cpp",
"chars": 6905,
"preview": "#include \"Compositing.h\"\n#include <Core/CommandList.h>\n#include <Scene/SceneRenderer.h>\n#include <Scene/SceneCore.h>\n#in"
},
{
"path": "Source/ZetaRenderPass/Compositing/Compositing.h",
"chars": 3931,
"preview": "#pragma once\n\n#include \"../RenderPass.h\"\n#include <Core/GpuMemory.h>\n#include \"Compositing_Common.h\"\n\nnamespace ZetaRay:"
},
{
"path": "Source/ZetaRenderPass/Compositing/Compositing.hlsl",
"chars": 5222,
"preview": "#include \"Compositing_Common.h\"\n#include \"../Common/Common.hlsli\"\n#include \"../Common/GBuffers.hlsli\"\n#include \"../Commo"
},
{
"path": "Source/ZetaRenderPass/Compositing/Compositing_Common.h",
"chars": 931,
"preview": "#ifndef COMPOSITING_H\n#define COMPOSITING_H\n\n#include \"../../ZetaCore/Core/HLSLCompat.h\"\n\n#define COMPOSITING_THREAD_GRO"
},
{
"path": "Source/ZetaRenderPass/Compositing/FireflyFilter.hlsl",
"chars": 4711,
"preview": "#include \"Compositing_Common.h\"\n#include \"../Common/FrameConstants.h\"\n#include \"../Common/StaticTextureSamplers.hlsli\"\n#"
},
{
"path": "Source/ZetaRenderPass/DirectLighting/CMakeLists.txt",
"chars": 1007,
"preview": "set(RP_SKY_DI_DIR ${ZETA_RENDER_PASS_DIR}/DirectLighting/Sky)\nset(RP_EMISSIVE_DI_DIR ${ZETA_RENDER_PASS_DIR}/DirectLight"
},
{
"path": "Source/ZetaRenderPass/DirectLighting/Emissive/DirectLighting.cpp",
"chars": 16864,
"preview": "#include \"DirectLighting.h\"\n#include <Core/CommandList.h>\n#include <Scene/SceneCore.h>\n#include <Support/Param.h>\n#inclu"
},
{
"path": "Source/ZetaRenderPass/DirectLighting/Emissive/DirectLighting.h",
"chars": 4378,
"preview": "#pragma once\n\n#include \"../../RenderPass.h\"\n#include <Core/GpuMemory.h>\n#include \"DirectLighting_Common.h\"\n\nnamespace Ze"
},
{
"path": "Source/ZetaRenderPass/DirectLighting/Emissive/DirectLighting_Common.h",
"chars": 1009,
"preview": "#ifndef DIRECT_LIGHTING_COMMON_H\n#define DIRECT_LIGHTING_COMMON_H\n\n#include \"../../../ZetaCore/RayTracing/RtCommon.h\"\n\n#"
},
{
"path": "Source/ZetaRenderPass/DirectLighting/Emissive/PairwiseMIS.hlsli",
"chars": 10332,
"preview": "#ifndef RESTIR_DI_PAIRWISE_MIS_H\n#define RESTIR_DI_PAIRWISE_MIS_H\n\n#include \"Util.hlsli\"\n\nnamespace RDI_Util\n{\n // Re"
},
{
"path": "Source/ZetaRenderPass/DirectLighting/Emissive/Params.hlsli",
"chars": 634,
"preview": "#ifndef RESTIR_DI_PARAMS_H\n#define RESTIR_DI_PARAMS_H\n\n#define NUM_LIGHT_CANDIDATES 3\n#define EXTRA_BSDF_SAMPLE_HIGHLY_G"
},
{
"path": "Source/ZetaRenderPass/DirectLighting/Emissive/ReSTIR_DI_Spatial.hlsl",
"chars": 7540,
"preview": "#include \"Resampling.hlsli\"\n#include \"../../Common/Common.hlsli\"\n#include \"../../Common/BSDFSampling.hlsli\"\n\n#define THR"
},
{
"path": "Source/ZetaRenderPass/DirectLighting/Emissive/ReSTIR_DI_Temporal.hlsl",
"chars": 15562,
"preview": "#include \"Resampling.hlsli\"\n#include \"../../Common/Common.hlsli\"\n#include \"../../Common/BSDFSampling.hlsli\"\n\n#define THR"
},
{
"path": "Source/ZetaRenderPass/DirectLighting/Emissive/ReSTIR_DI_Temporal_WPS.hlsl",
"chars": 62,
"preview": "#define USE_PRESAMPLED_SETS\n#include \"ReSTIR_DI_Temporal.hlsl\""
},
{
"path": "Source/ZetaRenderPass/DirectLighting/Emissive/Resampling.hlsli",
"chars": 21878,
"preview": "#ifndef RESTIR_DI_RESAMPLING_H\n#define RESTIR_DI_RESAMPLING_H\n\n#include \"Params.hlsli\"\n#include \"PairwiseMIS.hlsli\"\n#inc"
},
{
"path": "Source/ZetaRenderPass/DirectLighting/Emissive/Reservoir.hlsli",
"chars": 6776,
"preview": "#ifndef RESTIR_DI_RESERVOIR_H\n#define RESTIR_DI_RESERVOIR_H\n\n#include \"DirectLighting_Common.h\"\n#include \"../../Common/S"
},
{
"path": "Source/ZetaRenderPass/DirectLighting/Emissive/Util.hlsli",
"chars": 3808,
"preview": "#ifndef RESTIR_DI_UTIL_H\n#define RESTIR_DI_UTIL_H\n\n#include \"DirectLighting_Common.h\"\n#include \"Reservoir.hlsli\"\n#includ"
},
{
"path": "Source/ZetaRenderPass/DirectLighting/Sky/PairwiseMIS.hlsli",
"chars": 6112,
"preview": "#ifndef SKY_DI_PAIRWISE_MIS_H\n#define SKY_DI_PAIRWISE_MIS_H\n\n#include \"Reservoir.hlsli\"\n#include \"../../Common/RayQuery."
},
{
"path": "Source/ZetaRenderPass/DirectLighting/Sky/Params.hlsli",
"chars": 305,
"preview": "#ifndef SKY_DI_PARAMS_H\n#define SKY_DI_PARAMS_H\n\n#define MAX_PLANE_DIST_REUSE 5e-1\n#define MIN_NORMAL_SIMILARITY_REUSE 0"
},
{
"path": "Source/ZetaRenderPass/DirectLighting/Sky/Resampling.hlsli",
"chars": 17271,
"preview": "#ifndef SKY_DI_RESAMPLING_H\n#define SKY_DI_RESAMPLING_H\n\n#include \"Params.hlsli\"\n#include \"PairwiseMIS.hlsli\"\n#include \""
},
{
"path": "Source/ZetaRenderPass/DirectLighting/Sky/Reservoir.hlsli",
"chars": 5746,
"preview": "#ifndef SKY_DI_RESERVOIR_H\n#define SKY_DI_RESERVOIR_H\n\n#include \"SkyDI_Common.h\"\n#include \"Util.hlsli\"\n\nnamespace SkyDI_"
}
]
// ... and 158 more files (download for full content)
About this extraction
This page contains the full source code of the alipbcs/ZetaRay GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 358 files (6.0 MB), approximately 1.6M tokens, and a symbol index with 1791 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.