Files
UnrealEngineUWP/Engine/Source/Runtime/Renderer/Public/AtmosphereTextureParameters.h
Ben Marsh 20bf0eb6a1 Updating copyright notices to 2017 (copying from //Tasks/UE4/Dev-Copyright-2017).
#rb none
#lockdown Nick.Penwarden

[CL 3226823 by Ben Marsh in Main branch]
2016-12-08 08:52:44 -05:00

46 lines
1.7 KiB
C++

// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
/*=============================================================================
AtmosphereTextureParameters.h: Shader base classes
=============================================================================*/
#pragma once
#include "CoreMinimal.h"
#include "ShaderParameters.h"
#include "RHIStaticStates.h"
#include "SceneView.h"
class FShaderParameterMap;
/** Shader parameters needed for atmosphere passes. */
class FAtmosphereShaderTextureParameters
{
public:
void Bind(const FShaderParameterMap& ParameterMap);
template< typename ShaderRHIParamRef >
FORCEINLINE_DEBUGGABLE void Set( FRHICommandList& RHICmdList, const ShaderRHIParamRef ShaderRHI, const FSceneView& View ) const
{
if (TransmittanceTexture.IsBound() || IrradianceTexture.IsBound() || InscatterTexture.IsBound())
{
SetTextureParameter(RHICmdList, ShaderRHI, TransmittanceTexture, TransmittanceTextureSampler,
TStaticSamplerState<SF_Bilinear>::GetRHI(), View.AtmosphereTransmittanceTexture);
SetTextureParameter(RHICmdList, ShaderRHI, IrradianceTexture, IrradianceTextureSampler,
TStaticSamplerState<SF_Bilinear>::GetRHI(), View.AtmosphereIrradianceTexture);
SetTextureParameter(RHICmdList, ShaderRHI, InscatterTexture, InscatterTextureSampler,
TStaticSamplerState<SF_Bilinear>::GetRHI(), View.AtmosphereInscatterTexture);
}
}
friend FArchive& operator<<(FArchive& Ar,FAtmosphereShaderTextureParameters& P);
private:
FShaderResourceParameter TransmittanceTexture;
FShaderResourceParameter TransmittanceTextureSampler;
FShaderResourceParameter IrradianceTexture;
FShaderResourceParameter IrradianceTextureSampler;
FShaderResourceParameter InscatterTexture;
FShaderResourceParameter InscatterTextureSampler;
};