// Copyright (C) 2021 Jérôme "Lynix" Leclercq (lynix680@gmail.com) // This file is part of the "Nazara Engine - Widgets module" // For conditions of distribution and use, see copyright notice in Config.hpp #include #include #include #include #include namespace Nz { /*! * \ingroup widgets * \class Nz::Widgets * \brief Widgets class that represents the module initializer of Widgets */ Widgets::Widgets(Config config) : ModuleBase("Widgets", this) { ECS::RegisterComponents(); CreateDefaultMaterials(); } void Widgets::CreateDefaultMaterials() { m_opaqueMaterialPass = std::make_shared(BasicMaterial::GetSettings()); m_opaqueMaterialPass->EnableDepthBuffer(true); m_opaqueMaterialPass->EnableDepthWrite(false); m_opaqueMaterial = std::make_shared(); m_opaqueMaterial->AddPass("ForwardPass", m_opaqueMaterialPass); m_transparentMaterialPass = std::make_shared(BasicMaterial::GetSettings()); m_transparentMaterialPass->EnableFlag(MaterialPassFlag::Transparent); m_transparentMaterialPass->EnableDepthBuffer(true); m_transparentMaterialPass->EnableDepthWrite(false); m_transparentMaterialPass->EnableBlending(true); m_transparentMaterialPass->SetBlendEquation(BlendEquation::Add, BlendEquation::Add); m_transparentMaterialPass->SetBlendFunc(BlendFunc::SrcAlpha, BlendFunc::InvSrcAlpha, BlendFunc::One, BlendFunc::Zero); m_transparentMaterial = std::make_shared(); m_transparentMaterial->AddPass("ForwardPass", m_transparentMaterialPass); } Widgets* Widgets::s_instance = nullptr; }