Fix crash when CAS shader is missing
This commit is contained in:
@@ -35,16 +35,17 @@ void ContrastAdaptiveSharpeningPass::Dispose()
|
||||
bool ContrastAdaptiveSharpeningPass::setupResources()
|
||||
{
|
||||
// Lazy-load shader
|
||||
if (!_shader)
|
||||
if (_lazyInit && !_shader)
|
||||
{
|
||||
_lazyInit = false;
|
||||
_shader = Content::LoadAsyncInternal<Shader>(TEXT("Shaders/CAS"));
|
||||
if (!_shader)
|
||||
return false;
|
||||
return true;
|
||||
#if COMPILE_WITH_DEV_ENV
|
||||
_shader.Get()->OnReloading.Bind<ContrastAdaptiveSharpeningPass, &ContrastAdaptiveSharpeningPass::OnShaderReloading>(this);
|
||||
#endif
|
||||
}
|
||||
if (!_shader->IsLoaded())
|
||||
if (!_shader || !_shader->IsLoaded())
|
||||
return true;
|
||||
const auto shader = _shader->GetShader();
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ class ContrastAdaptiveSharpeningPass : public RendererPass<ContrastAdaptiveSharp
|
||||
private:
|
||||
AssetReference<Shader> _shader;
|
||||
GPUPipelineState* _psCAS = nullptr;
|
||||
bool _lazyInit = true;
|
||||
|
||||
public:
|
||||
bool CanRender(const RenderContext& renderContext);
|
||||
|
||||
Reference in New Issue
Block a user