// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Textures/SlateShaderResource.h" #include "Rendering/SlateRenderer.h" class FSlateDrawBuffer; class FSlateFontServices; class FSlateShaderResourceManager; class FSlateUpdatableTexture; class SWindow; struct Rect; /** A slate null rendering implementation */ class FSlateNullRenderer : public FSlateRenderer { public: FSlateNullRenderer(const TSharedRef& InSlateFontServices, const TSharedRef& InResourceManager); /** FSlateRenderer interface */ virtual bool Initialize() override; virtual void Destroy() override; virtual FSlateDrawBuffer& AcquireDrawBuffer() override; virtual void ReleaseDrawBuffer(FSlateDrawBuffer& InWindowDrawBuffer) override; virtual void OnWindowDestroyed( const TSharedRef& InWindow ) override; virtual void RequestResize( const TSharedPtr& Window, uint32 NewWidth, uint32 NewHeight ) override; virtual void CreateViewport( const TSharedRef Window ) override; virtual void UpdateFullscreenState( const TSharedRef Window, uint32 OverrideResX, uint32 OverrideResY ) override; virtual void SetSystemResolution(uint32 Width, uint32 Height) override {} virtual void RestoreSystemResolution(const TSharedRef InWindow) override; virtual void DrawWindows( FSlateDrawBuffer& InWindowDrawBuffer ) override; virtual void ReleaseDynamicResource( const FSlateBrush& InBrush ) override; virtual void RemoveDynamicBrushResource( TSharedPtr BrushToRemove ) override; virtual FIntPoint GenerateDynamicImageResource(const FName InTextureName) override; virtual bool GenerateDynamicImageResource( FName ResourceName, uint32 Width, uint32 Height, const TArray< uint8 >& Bytes ) override; virtual void PrepareToTakeScreenshot(const FIntRect& Rect, TArray* OutColorData, SWindow* InScreenshotWindow) override; virtual FSlateResourceHandle GetResourceHandle(const FSlateBrush& Brush, FVector2f LocalSize, float DrawScale) override; virtual FSlateUpdatableTexture* CreateUpdatableTexture(uint32 Width, uint32 Height) override; virtual FSlateUpdatableTexture* CreateSharedHandleTexture(void* SharedHandle) override; virtual void ReleaseUpdatableTexture(FSlateUpdatableTexture* Texture) override; virtual FCriticalSection* GetResourceCriticalSection() override; virtual int32 RegisterCurrentScene(FSceneInterface* Scene) override; virtual int32 GetCurrentSceneIndex() const override; virtual void SetCurrentSceneIndex(int32 InIndex) override; virtual void ClearScenes() override; virtual void Sync() const override; private: TSharedPtr ResourceManager; TUniquePtr DrawBuffer; FCriticalSection ResourceCriticalSection; };