// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved. #pragma once #if USE_EDITOR #include "Engine/Content/AssetReference.h" #include "Engine/Content/Assets/Shader.h" #include "Engine/Content/Assets/Texture.h" #include "Engine/Graphics/Materials/IMaterial.h" class GPUPipelineState; /// /// Lightmap UVs Density rendering for profiling and debugging in editor. /// class LightmapUVsDensityMaterialShader : public IMaterial { private: AssetReference _shader; AssetReference _gridTexture; GPUPipelineState* _ps = nullptr; MaterialInfo _info; public: LightmapUVsDensityMaterialShader(); virtual ~LightmapUVsDensityMaterialShader() { } private: #if COMPILE_WITH_DEV_ENV void OnShaderReloading(Asset* obj); #endif public: // [IMaterial] const MaterialInfo& GetInfo() const override; GPUShader* GetShader() const override; bool IsReady() const override; DrawPass GetDrawModes() const override; void Bind(BindParameters& params) override; }; #endif