// Copyright (C) 2017 Jérôme Leclercq // This file is part of the "Nazara Engine - Renderer module" // For conditions of distribution and use, see copyright notice in Config.hpp #include #include #include #include #include namespace Nz { void RenderWindow::Display() { if (m_framerateLimit > 0) { int remainingTime = 1000/static_cast(m_framerateLimit) - static_cast(m_clock.GetMilliseconds()); if (remainingTime > 0) Thread::Sleep(remainingTime); m_clock.Restart(); } } void RenderWindow::EnableVerticalSync(bool enabled) { ///TODO } bool RenderWindow::OnWindowCreated() { RendererImpl* rendererImpl = Renderer::GetRendererImpl(); auto surface = rendererImpl->CreateRenderSurfaceImpl(); if (!surface->Create(GetHandle())) { NazaraError("Failed to create render surface: " + Error::GetLastError()); return false; } auto impl = rendererImpl->CreateRenderWindowImpl(); if (!impl->Create(rendererImpl, surface.get(), GetSize(), m_parameters)) { NazaraError("Failed to create render window implementation: " + Error::GetLastError()); return false; } m_impl = std::move(impl); m_surface = std::move(surface); m_clock.Restart(); return true; } void RenderWindow::OnWindowDestroy() { m_impl.reset(); m_surface.reset(); } void RenderWindow::OnWindowResized() { } }