Widgets: Reuse materials to improve performance

This commit is contained in:
Jérôme Leclercq
2021-11-21 19:07:06 +01:00
parent a1b5e5b4f4
commit d0f55df3ca
6 changed files with 90 additions and 47 deletions

View File

@@ -15,6 +15,9 @@
namespace Nz
{
class Material;
class MaterialPass;
class NAZARA_WIDGETS_API Widgets : public ModuleBase<Widgets>
{
friend ModuleBase;
@@ -27,9 +30,22 @@ namespace Nz
Widgets(Config config);
~Widgets() = default;
inline const std::shared_ptr<Material>& GetOpaqueMaterial() const;
inline const std::shared_ptr<MaterialPass>& GetOpaqueMaterialPass() const;
inline const std::shared_ptr<Material>& GetTransparentMaterial() const;
inline const std::shared_ptr<MaterialPass>& GetTransparentMaterialPass() const;
struct Config {};
private:
void CreateDefaultMaterials();
std::shared_ptr<Material> m_opaqueMaterial;
std::shared_ptr<Material> m_transparentMaterial;
std::shared_ptr<MaterialPass> m_opaqueMaterialPass;
std::shared_ptr<MaterialPass> m_transparentMaterialPass;
static Widgets* s_instance;
};
}