// Sources pour https://github.com/DigitalPulseSoftware/NazaraEngine/wiki/(FR)-Tutoriel:-%5B01%5D-Hello-World #include #include #include #include #include #include #include #include int main() { Nz::Modules nazara; Nz::RenderWindow mainWindow(Nz::Graphics::Instance()->GetRenderDevice(), Nz::VideoMode(1280, 720, 32), "Test"); entt::registry registry; Nz::RenderSystem renderSystem(registry); entt::entity cameraEntity = registry.create(); { registry.emplace(cameraEntity); auto& cameraComponent = registry.emplace(cameraEntity, mainWindow.GetRenderTarget(), Nz::ProjectionType::Orthographic); cameraComponent.UpdateClearColor(Nz::Color(117, 122, 214, 255)); } Nz::SimpleTextDrawer textDrawer; textDrawer.SetCharacterSize(72); textDrawer.SetOutlineThickness(4.f); textDrawer.SetText("Hello world !"); std::shared_ptr material = std::make_shared(); std::shared_ptr materialPass = std::make_shared(Nz::BasicMaterial::GetSettings()); materialPass->EnableDepthBuffer(true); materialPass->EnableDepthWrite(false); materialPass->EnableScissorTest(true); materialPass->EnableBlending(true); materialPass->SetBlendEquation(Nz::BlendEquation::Add, Nz::BlendEquation::Add); materialPass->SetBlendFunc(Nz::BlendFunc::SrcAlpha, Nz::BlendFunc::InvSrcAlpha, Nz::BlendFunc::One, Nz::BlendFunc::One); material = std::make_shared(); material->AddPass("ForwardPass", materialPass); std::shared_ptr textSprite = std::make_shared(material); textSprite->Update(textDrawer); entt::entity textEntity = registry.create(); { auto& nodeComponent = registry.emplace(textEntity); auto& gfxComponent = registry.emplace(textEntity); gfxComponent.AttachRenderable(textSprite, 0xFFFFFFFF); Nz::Boxf textBox = textSprite->GetAABB(); Nz::Vector2ui windowSize = mainWindow.GetSize(); nodeComponent.SetPosition(windowSize.x / 2 - textBox.width / 2, windowSize.y / 2 - textBox.height / 2); } while (mainWindow.IsOpen()) { mainWindow.ProcessEvents(); Nz::RenderFrame renderFrame = mainWindow.AcquireFrame(); renderSystem.Render(registry, renderFrame); renderFrame.Present(); } return EXIT_SUCCESS; }