// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Rendering/DrawElements.h" #include "Rendering/RenderingPolicy.h" #include "SlateD3DVertexBuffer.h" #include "SlateD3DIndexBuffer.h" #include "SlateD3DTextureManager.h" #include "SlateD3DShaders.h" #include "StandaloneRendererPlatformHeaders.h" class FSlateD3D11RenderingPolicy : public FSlateRenderingPolicy { public: FSlateD3D11RenderingPolicy( TSharedRef InSlateFontServices, TSharedRef InTextureManager ); ~FSlateD3D11RenderingPolicy(); void BuildRenderingBuffers( FSlateBatchData& InBatchData ); void DrawElements(const FMatrix& ViewProjectionMatrix, int32 FirstBatchIndex, const TArray& RenderBatches); virtual TSharedRef GetResourceManager() const override; virtual bool IsVertexColorInLinearSpace() const override { return false; } private: void InitResources(); void ReleaseResources(); private: FSlateD3DVertexBuffer VertexBuffer; FSlateD3DIndexBuffer IndexBuffer; FSlateDefaultVS* VertexShader; FSlateDefaultPS* PixelShader; FSlateShaderResource* WhiteTexture; TRefCountPtr NormalRasterState; TRefCountPtr WireframeRasterState; TRefCountPtr ScissorRasterState; TRefCountPtr AlphaBlendState; TRefCountPtr NoBlendState; TRefCountPtr DSStateOff; TRefCountPtr PointSamplerState_Wrap; TRefCountPtr PointSamplerState_Clamp; TRefCountPtr BilinearSamplerState_Wrap; TRefCountPtr BilinearSamplerState_Clamp; TSharedRef TextureManager; };