21 void (*DoConstruct)();
53template<
typename InitializerType,
typename RHIRefType,
typename RHIParamRefType>
60 return StaticResource.StateRHI;
69 FStaticStateResource()
73 StateRHI = InitializerType::CreateRHI();
85 StateRHI = InitializerType::CreateRHI();
87 virtual void ReleaseRHI()
override final
90 StateRHI.SafeRelease();
92 virtual void ReleaseResource()
override final
97 ~FStaticStateResource()
104 static FStaticStateResource StaticResource;
107template<
typename InitializerType,
typename RHIRefType,
typename RHIParamRefType>
122 int32 MaxAnisotropy = 1,
126class TStaticSamplerState :
public TStaticStateRHI<TStaticSamplerState<Filter,AddressU,AddressV,AddressW,MipBias,MaxAnisotropy,BorderColor,SamplerComparisonFunction>,FSamplerStateRHIRef, FRHISamplerState*>
142template<ERasterizerFillMode FillMode = FM_Sol
id, ERasterizerCullMode CullMode = CM_None, ERasterizerDepthClipMode DepthClipMode = ERasterizerDepthClipMode::DepthClip,
bool bEnableMSAA = true>
154template<
bool bEnableMSAA>
198 bool bEnableDepthWrite =
true,
200 bool bEnableFrontFaceStencil =
false,
205 bool bEnableBackFaceStencil =
false,
210 uint8 StencilReadMask = 0xFF,
211 uint8 StencilWriteMask = 0xFF
214 TStaticDepthStencilState<
217 bEnableFrontFaceStencil,
218 FrontFaceStencilTest,
219 FrontFaceStencilFailStencilOp,
220 FrontFaceDepthFailStencilOp,
221 FrontFacePassStencilOp,
222 bEnableBackFaceStencil,
224 BackFaceStencilFailStencilOp,
225 BackFaceDepthFailStencilOp,
226 BackFacePassStencilOp,
230 FDepthStencilStateRHIRef,
231 FRHIDepthStencilState*
240 bEnableFrontFaceStencil,
241 FrontFaceStencilTest,
242 FrontFaceStencilFailStencilOp,
243 FrontFaceDepthFailStencilOp,
244 FrontFacePassStencilOp,
245 bEnableBackFaceStencil,
247 BackFaceStencilFailStencilOp,
248 BackFaceDepthFailStencilOp,
249 BackFacePassStencilOp,
332 bool bUseAlphaToCoverage =
false
336 RT0ColorWriteMask,RT0ColorBlendOp,RT0ColorSrcBlend,RT0ColorDestBlend,RT0AlphaBlendOp,RT0AlphaSrcBlend,RT0AlphaDestBlend,
337 RT1ColorWriteMask,RT1ColorBlendOp,RT1ColorSrcBlend,RT1ColorDestBlend,RT1AlphaBlendOp,RT1AlphaSrcBlend,RT1AlphaDestBlend,
338 RT2ColorWriteMask,RT2ColorBlendOp,RT2ColorSrcBlend,RT2ColorDestBlend,RT2AlphaBlendOp,RT2AlphaSrcBlend,RT2AlphaDestBlend,
339 RT3ColorWriteMask,RT3ColorBlendOp,RT3ColorSrcBlend,RT3ColorDestBlend,RT3AlphaBlendOp,RT3AlphaSrcBlend,RT3AlphaDestBlend,
340 RT4ColorWriteMask,RT4ColorBlendOp,RT4ColorSrcBlend,RT4ColorDestBlend,RT4AlphaBlendOp,RT4AlphaSrcBlend,RT4AlphaDestBlend,
341 RT5ColorWriteMask,RT5ColorBlendOp,RT5ColorSrcBlend,RT5ColorDestBlend,RT5AlphaBlendOp,RT5AlphaSrcBlend,RT5AlphaDestBlend,
342 RT6ColorWriteMask,RT6ColorBlendOp,RT6ColorSrcBlend,RT6ColorDestBlend,RT6AlphaBlendOp,RT6AlphaSrcBlend,RT6AlphaDestBlend,
343 RT7ColorWriteMask,RT7ColorBlendOp,RT7ColorSrcBlend,RT7ColorDestBlend,RT7AlphaBlendOp,RT7AlphaSrcBlend,RT7AlphaDestBlend,
380 bool bUseAlphaToCoverage =
false
383 RT0ColorWriteMask,BO_Add,BF_One,BF_Zero,BO_Add,BF_One,BF_Zero,
384 RT1ColorWriteMask,BO_Add,BF_One,BF_Zero,BO_Add,BF_One,BF_Zero,
385 RT2ColorWriteMask,BO_Add,BF_One,BF_Zero,BO_Add,BF_One,BF_Zero,
386 RT3ColorWriteMask,BO_Add,BF_One,BF_Zero,BO_Add,BF_One,BF_Zero,
387 RT4ColorWriteMask,BO_Add,BF_One,BF_Zero,BO_Add,BF_One,BF_Zero,
388 RT5ColorWriteMask,BO_Add,BF_One,BF_Zero,BO_Add,BF_One,BF_Zero,
389 RT6ColorWriteMask,BO_Add,BF_One,BF_Zero,BO_Add,BF_One,BF_Zero,
390 RT7ColorWriteMask,BO_Add,BF_One,BF_Zero,BO_Add,BF_One,BF_Zero,
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
#define RETURN_QUICK_DECLARE_CYCLE_STAT(StatId, GroupId)
Definition Stats.h:655
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
FSamplerStateRHIRef RHICreateSamplerState(const FSamplerStateInitializerRHI &Initializer)
Definition DynamicRHI.h:1145
FBlendStateRHIRef RHICreateBlendState(const FBlendStateInitializerRHI &Initializer)
Definition DynamicRHI.h:1163
FDepthStencilStateRHIRef RHICreateDepthStencilState(const FDepthStencilStateInitializerRHI &Initializer)
Definition DynamicRHI.h:1157
FRasterizerStateRHIRef RHICreateRasterizerState(const FRasterizerStateInitializerRHI &Initializer)
Definition DynamicRHI.h:1151
ESamplerAddressMode
Definition RHIDefinitions.h:339
@ AM_Clamp
Definition RHIDefinitions.h:341
EBlendOperation
Definition RHIDefinitions.h:459
@ BO_Add
Definition RHIDefinitions.h:460
EStencilOp
Definition RHIDefinitions.h:443
@ SO_Keep
Definition RHIDefinitions.h:444
ERasterizerCullMode
Definition RHIDefinitions.h:369
@ CM_CCW
Definition RHIDefinitions.h:372
@ CM_CW
Definition RHIDefinitions.h:371
@ CM_None
Definition RHIDefinitions.h:370
ECompareFunction
Definition RHIDefinitions.h:406
@ CF_DepthNearOrEqual
Definition RHIDefinitions.h:420
@ CF_Always
Definition RHIDefinitions.h:414
ERasterizerDepthClipMode
Definition RHIDefinitions.h:380
ESamplerFilter
Definition RHIDefinitions.h:326
@ SF_Point
Definition RHIDefinitions.h:327
ESamplerCompareFunction
Definition RHIDefinitions.h:352
@ SCF_Never
Definition RHIDefinitions.h:353
EBlendFactor
Definition RHIDefinitions.h:472
@ BF_One
Definition RHIDefinitions.h:474
@ BF_Zero
Definition RHIDefinitions.h:473
EColorWriteMask
Definition RHIDefinitions.h:390
@ CW_RGBA
Definition RHIDefinitions.h:398
ERasterizerFillMode
Definition RHIDefinitions.h:358
@ FM_Point
Definition RHIDefinitions.h:359
@ FM_Solid
Definition RHIDefinitions.h:361
@ FM_Wireframe
Definition RHIDefinitions.h:360
#define GRHISupportsRHIThread
Definition RHIGlobals.h:870
#define GIsRHIInitialized
Definition RHIGlobals.h:756
FRHIRasterizerState * GetStaticRasterizerState(ERasterizerFillMode FillMode, ERasterizerCullMode CullMode)
Definition RHIStaticStates.h:155
void BeginInitResource(FRenderResource *Resource, FRenderCommandPipe *RenderCommandPipe)
Definition RenderResource.cpp:293
Definition RHIStaticStates.h:20
TStatId GetStatId() const
Definition RHIStaticStates.h:31
void DoTask(ENamedThreads::Type CurrentThread, const FGraphEventRef &MyCompletionGraphEvent)
Definition RHIStaticStates.h:43
static ESubsequentsMode::Type GetSubsequentsMode()
Definition RHIStaticStates.h:41
FInitStaticResourceRenderThreadTask(void(*InDoConstruct)(), FScopedEvent &InEvent)
Definition RHIStaticStates.h:25
ENamedThreads::Type GetDesiredThread()
Definition RHIStaticStates.h:36
Definition RHICommandList.h:455
Definition RHIResources.h:679
Definition RenderResource.h:37
virtual RENDERCORE_API void ReleaseResource()
Definition RenderResource.cpp:206
Definition ScopedEvent.h:19
Definition StaticArray.h:26
Definition RHIStaticStates.h:393
static FBlendStateRHIRef CreateRHI()
Definition RHIStaticStates.h:395
Definition RHIStaticStates.h:349
static FBlendStateRHIRef CreateRHI()
Definition RHIStaticStates.h:351
Definition RHIStaticStates.h:233
static FDepthStencilStateRHIRef CreateRHI()
Definition RHIStaticStates.h:235
Definition RHIStaticStates.h:144
static FRasterizerStateRHIRef CreateRHI()
Definition RHIStaticStates.h:146
Definition RHIStaticStates.h:127
static FSamplerStateRHIRef CreateRHI()
Definition RHIStaticStates.h:129
Definition RHIStaticStates.h:55
static RHIParamRefType GetRHI()
Definition RHIStaticStates.h:57
Type
Definition TaskGraphInterfaces.h:57
UE_FORCEINLINE_HINT Type GetRenderThread_Local()
Definition TaskGraphInterfaces.h:128
Type
Definition TaskGraphInterfaces.h:249
@ FireAndForget
Definition TaskGraphInterfaces.h:253
Definition LightweightStats.h:416