| 81 | } |
| 82 | |
| 83 | SimplePostFX::SimplePostFX(ref<Device> pDevice, const Properties& props) : RenderPass(pDevice) |
| 84 | { |
| 85 | // Deserialize pass from dictionary. |
| 86 | for (const auto& [key, value] : props) |
| 87 | { |
| 88 | if (key == kEnabled) |
| 89 | setEnabled(value); |
| 90 | else if (key == kOutputSize) |
| 91 | mOutputSizeSelection = value; |
| 92 | else if (key == kFixedOutputSize) |
| 93 | mFixedOutputSize = value; |
| 94 | else if (key == kWipe) |
| 95 | setWipe(value); |
| 96 | else if (key == kBloomAmount) |
| 97 | setBloomAmount(value); |
| 98 | else if (key == kStarAmount) |
| 99 | setStarAmount(value); |
| 100 | else if (key == kStarAngle) |
| 101 | setStarAngle(value); |
| 102 | else if (key == kVignetteAmount) |
| 103 | setVignetteAmount(value); |
| 104 | else if (key == kChromaticAberrationAmount) |
| 105 | setChromaticAberrationAmount(value); |
| 106 | else if (key == kBarrelDistortAmount) |
| 107 | setBarrelDistortAmount(value); |
| 108 | else if (key == kSaturationCurve) |
| 109 | setSaturationCurve(value); |
| 110 | else if (key == kColorOffset) |
| 111 | setColorOffset(value); |
| 112 | else if (key == kColorScale) |
| 113 | setColorScale(value); |
| 114 | else if (key == kColorPower) |
| 115 | setColorPower(value); |
| 116 | else if (key == kColorOffsetScalar) |
| 117 | setColorOffsetScalar(value); |
| 118 | else if (key == kColorScaleScalar) |
| 119 | setColorScaleScalar(value); |
| 120 | else if (key == kColorPowerScalar) |
| 121 | setColorPowerScalar(value); |
| 122 | else |
| 123 | logWarning("Unknown property '{}' in SimplePostFX properties.", key); |
| 124 | } |
| 125 | |
| 126 | Sampler::Desc samplerDesc; |
| 127 | samplerDesc.setFilterMode(TextureFilteringMode::Linear, TextureFilteringMode::Linear, TextureFilteringMode::Point); |
| 128 | samplerDesc.setAddressingMode(TextureAddressingMode::Border, TextureAddressingMode::Border, TextureAddressingMode::Border); |
| 129 | mpLinearSampler = mpDevice->createSampler(samplerDesc); |
| 130 | |
| 131 | DefineList defines; |
| 132 | mpDownsamplePass = ComputePass::create(mpDevice, kShaderFile, "downsample", defines); |
| 133 | mpUpsamplePass = ComputePass::create(mpDevice, kShaderFile, "upsample", defines); |
| 134 | mpPostFXPass = ComputePass::create(mpDevice, kShaderFile, "runPostFX", defines); |
| 135 | } |
| 136 | |
| 137 | Properties SimplePostFX::getProperties() const |
| 138 | { |
nothing calls this directly
no test coverage detected