| 111 | } |
| 112 | |
| 113 | SceneDebugger::SceneDebugger(ref<Device> pDevice, const Properties& props) : RenderPass(pDevice) |
| 114 | { |
| 115 | if (!mpDevice->isShaderModelSupported(ShaderModel::SM6_5)) |
| 116 | FALCOR_THROW("SceneDebugger requires Shader Model 6.5 support."); |
| 117 | if (!mpDevice->isFeatureSupported(Device::SupportedFeatures::RaytracingTier1_1)) |
| 118 | FALCOR_THROW("SceneDebugger requires Raytracing Tier 1.1 support."); |
| 119 | |
| 120 | // Parse dictionary. |
| 121 | for (const auto& [key, value] : props) |
| 122 | { |
| 123 | if (key == kMode) |
| 124 | mParams.mode = (uint32_t)value.operator SceneDebuggerMode(); |
| 125 | else if (key == kShowVolumes) |
| 126 | mParams.showVolumes = value; |
| 127 | else if (key == kUseVBuffer) |
| 128 | mParams.useVBuffer = static_cast<bool>(value); |
| 129 | else |
| 130 | logWarning("Unknown property '{}' in a SceneDebugger properties.", key); |
| 131 | } |
| 132 | |
| 133 | mpFence = mpDevice->createFence(); |
| 134 | |
| 135 | mpPixelDebug = std::make_unique<PixelDebug>(mpDevice); |
| 136 | mpSampleGenerator = SampleGenerator::create(mpDevice, SAMPLE_GENERATOR_TINY_UNIFORM); |
| 137 | } |
| 138 | |
| 139 | Properties SceneDebugger::getProperties() const |
| 140 | { |
nothing calls this directly
no test coverage detected