Renderer/RenderWindow: Remove Display and GetImpl methods
This commit is contained in:
parent
3653e9136d
commit
120d8f5427
|
|
@ -236,8 +236,6 @@ int main()
|
||||||
|
|
||||||
Nz::WorldInstance planeInstance;
|
Nz::WorldInstance planeInstance;
|
||||||
|
|
||||||
Nz::RenderWindowImpl* windowImpl = window.GetImpl();
|
|
||||||
|
|
||||||
|
|
||||||
Nz::RenderPipelineLayoutInfo lightingPipelineLayoutInfo;
|
Nz::RenderPipelineLayoutInfo lightingPipelineLayoutInfo;
|
||||||
Nz::Graphics::FillViewerPipelineLayout(lightingPipelineLayoutInfo);
|
Nz::Graphics::FillViewerPipelineLayout(lightingPipelineLayoutInfo);
|
||||||
|
|
@ -330,8 +328,8 @@ int main()
|
||||||
const std::shared_ptr<const Nz::VertexDeclaration>& fullscreenVertexDeclaration = Nz::VertexDeclaration::Get(Nz::VertexLayout::XYZ_UV);
|
const std::shared_ptr<const Nz::VertexDeclaration>& fullscreenVertexDeclaration = Nz::VertexDeclaration::Get(Nz::VertexLayout::XYZ_UV);
|
||||||
|
|
||||||
|
|
||||||
unsigned int offscreenWidth = window.GetSize().x;
|
unsigned int offscreenWidth = windowSize.x;
|
||||||
unsigned int offscreenHeight = window.GetSize().y;
|
unsigned int offscreenHeight = windowSize.y;
|
||||||
|
|
||||||
// Bloom data
|
// Bloom data
|
||||||
|
|
||||||
|
|
@ -929,7 +927,7 @@ int main()
|
||||||
viewerInstance.UpdateViewMatrix(Nz::Matrix4f::ViewMatrix(viewerPos, camQuat));
|
viewerInstance.UpdateViewMatrix(Nz::Matrix4f::ViewMatrix(viewerPos, camQuat));
|
||||||
}
|
}
|
||||||
|
|
||||||
Nz::RenderFrame frame = windowImpl->Acquire();
|
Nz::RenderFrame frame = window.AcquireFrame();
|
||||||
if (!frame)
|
if (!frame)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
@ -1108,6 +1106,7 @@ int main()
|
||||||
|
|
||||||
bakedGraph.Execute(frame);
|
bakedGraph.Execute(frame);
|
||||||
|
|
||||||
|
const Nz::RenderTarget* windowRT = window.GetRenderTarget();
|
||||||
frame.Execute([&](Nz::CommandBufferBuilder& builder)
|
frame.Execute([&](Nz::CommandBufferBuilder& builder)
|
||||||
{
|
{
|
||||||
Nz::Recti windowRenderRect(0, 0, window.GetSize().x, window.GetSize().y);
|
Nz::Recti windowRenderRect(0, 0, window.GetSize().x, window.GetSize().y);
|
||||||
|
|
@ -1116,7 +1115,7 @@ int main()
|
||||||
|
|
||||||
builder.BeginDebugRegion("Main window rendering", Nz::Color::Green);
|
builder.BeginDebugRegion("Main window rendering", Nz::Color::Green);
|
||||||
{
|
{
|
||||||
builder.BeginRenderPass(windowImpl->GetFramebuffer(frame.GetFramebufferIndex()), windowImpl->GetRenderPass(), windowRenderRect);
|
builder.BeginRenderPass(windowRT->GetFramebuffer(frame.GetFramebufferIndex()), windowRT->GetRenderPass(), windowRenderRect);
|
||||||
{
|
{
|
||||||
builder.SetScissor(Nz::Recti{ 0, 0, int(windowSize.x), int(windowSize.y) });
|
builder.SetScissor(Nz::Recti{ 0, 0, int(windowSize.x), int(windowSize.y) });
|
||||||
builder.SetViewport(Nz::Recti{ 0, 0, int(windowSize.x), int(windowSize.y) });
|
builder.SetViewport(Nz::Recti{ 0, 0, int(windowSize.x), int(windowSize.y) });
|
||||||
|
|
@ -1133,8 +1132,6 @@ int main()
|
||||||
|
|
||||||
frame.Present();
|
frame.Present();
|
||||||
|
|
||||||
window.Display();
|
|
||||||
|
|
||||||
matUpdate = false;
|
matUpdate = false;
|
||||||
lightUpdate = false;
|
lightUpdate = false;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,7 @@ int main()
|
||||||
|
|
||||||
Nz::Vector2ui windowSize = window.GetSize();
|
Nz::Vector2ui windowSize = window.GetSize();
|
||||||
|
|
||||||
Nz::Camera camera(window.GetImpl());
|
Nz::Camera camera(window.GetRenderTarget());
|
||||||
|
|
||||||
Nz::ViewerInstance& viewerInstance = camera.GetViewerInstance();
|
Nz::ViewerInstance& viewerInstance = camera.GetViewerInstance();
|
||||||
viewerInstance.UpdateTargetSize(Nz::Vector2f(window.GetSize()));
|
viewerInstance.UpdateTargetSize(Nz::Vector2f(window.GetSize()));
|
||||||
|
|
@ -98,8 +98,6 @@ int main()
|
||||||
framePipeline.RegisterInstancedDrawable(modelInstance, &model);
|
framePipeline.RegisterInstancedDrawable(modelInstance, &model);
|
||||||
framePipeline.RegisterInstancedDrawable(modelInstance2, &model);
|
framePipeline.RegisterInstancedDrawable(modelInstance2, &model);
|
||||||
|
|
||||||
Nz::RenderWindowImpl* windowImpl = window.GetImpl();
|
|
||||||
|
|
||||||
Nz::Vector3f viewerPos = Nz::Vector3f::Zero();
|
Nz::Vector3f viewerPos = Nz::Vector3f::Zero();
|
||||||
|
|
||||||
Nz::EulerAnglesf camAngles(0.f, 0.f, 0.f);
|
Nz::EulerAnglesf camAngles(0.f, 0.f, 0.f);
|
||||||
|
|
@ -188,7 +186,7 @@ int main()
|
||||||
viewerPos += Nz::Vector3f::Down() * cameraSpeed;
|
viewerPos += Nz::Vector3f::Down() * cameraSpeed;
|
||||||
}
|
}
|
||||||
|
|
||||||
Nz::RenderFrame frame = windowImpl->Acquire();
|
Nz::RenderFrame frame = window.AcquireFrame();
|
||||||
if (!frame)
|
if (!frame)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
@ -201,8 +199,6 @@ int main()
|
||||||
|
|
||||||
frame.Present();
|
frame.Present();
|
||||||
|
|
||||||
window.Display();
|
|
||||||
|
|
||||||
// On incrémente le compteur de FPS improvisé
|
// On incrémente le compteur de FPS improvisé
|
||||||
fps++;
|
fps++;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,12 +37,6 @@ int main()
|
||||||
|
|
||||||
Nz::RenderWindow window;
|
Nz::RenderWindow window;
|
||||||
|
|
||||||
Nz::MeshParams meshParams;
|
|
||||||
meshParams.center = true;
|
|
||||||
meshParams.storage = Nz::DataStorage::Software;
|
|
||||||
meshParams.matrix = Nz::Matrix4f::Rotate(Nz::EulerAnglesf(0.f, 90.f, 0.f)) * Nz::Matrix4f::Scale(Nz::Vector3f(0.002f));
|
|
||||||
meshParams.vertexDeclaration = Nz::VertexDeclaration::Get(Nz::VertexLayout::XYZ_UV);
|
|
||||||
|
|
||||||
std::shared_ptr<Nz::RenderDevice> device = Nz::Graphics::Instance()->GetRenderDevice();
|
std::shared_ptr<Nz::RenderDevice> device = Nz::Graphics::Instance()->GetRenderDevice();
|
||||||
|
|
||||||
std::string windowTitle = "Graphics Test";
|
std::string windowTitle = "Graphics Test";
|
||||||
|
|
@ -52,7 +46,11 @@ int main()
|
||||||
return __LINE__;
|
return __LINE__;
|
||||||
}
|
}
|
||||||
|
|
||||||
Nz::RenderWindowImpl* windowImpl = window.GetImpl();
|
Nz::MeshParams meshParams;
|
||||||
|
meshParams.center = true;
|
||||||
|
meshParams.storage = Nz::DataStorage::Software;
|
||||||
|
meshParams.matrix = Nz::Matrix4f::Rotate(Nz::EulerAnglesf(0.f, 90.f, 0.f)) * Nz::Matrix4f::Scale(Nz::Vector3f(0.002f));
|
||||||
|
meshParams.vertexDeclaration = Nz::VertexDeclaration::Get(Nz::VertexLayout::XYZ_UV);
|
||||||
|
|
||||||
std::shared_ptr<Nz::Mesh> spaceshipMesh = Nz::Mesh::LoadFromFile(resourceDir / "Spaceship/spaceship.obj", meshParams);
|
std::shared_ptr<Nz::Mesh> spaceshipMesh = Nz::Mesh::LoadFromFile(resourceDir / "Spaceship/spaceship.obj", meshParams);
|
||||||
if (!spaceshipMesh)
|
if (!spaceshipMesh)
|
||||||
|
|
@ -65,17 +63,6 @@ int main()
|
||||||
std::shared_ptr<Nz::GraphicalMesh> gfxMesh = std::make_shared<Nz::GraphicalMesh>(*spaceshipMesh);
|
std::shared_ptr<Nz::GraphicalMesh> gfxMesh = std::make_shared<Nz::GraphicalMesh>(*spaceshipMesh);
|
||||||
|
|
||||||
// Texture
|
// Texture
|
||||||
std::shared_ptr<Nz::Image> diffuseImage = Nz::Image::LoadFromFile(resourceDir / "Spaceship/Texture/diffuse.png");
|
|
||||||
if (!diffuseImage || !diffuseImage->Convert(Nz::PixelFormat::RGBA8_SRGB))
|
|
||||||
{
|
|
||||||
NazaraError("Failed to load image");
|
|
||||||
return __LINE__;
|
|
||||||
}
|
|
||||||
|
|
||||||
Nz::TextureParams texParams;
|
|
||||||
texParams.renderDevice = device;
|
|
||||||
texParams.loadFormat = Nz::PixelFormat::RGBA8_SRGB;
|
|
||||||
|
|
||||||
std::shared_ptr<Nz::Material> material = std::make_shared<Nz::Material>();
|
std::shared_ptr<Nz::Material> material = std::make_shared<Nz::Material>();
|
||||||
|
|
||||||
std::shared_ptr<Nz::MaterialPass> depthPass = std::make_shared<Nz::MaterialPass>(Nz::DepthMaterial::GetSettings());
|
std::shared_ptr<Nz::MaterialPass> depthPass = std::make_shared<Nz::MaterialPass>(Nz::DepthMaterial::GetSettings());
|
||||||
|
|
@ -94,6 +81,10 @@ int main()
|
||||||
Nz::TextureSamplerInfo samplerInfo;
|
Nz::TextureSamplerInfo samplerInfo;
|
||||||
samplerInfo.anisotropyLevel = 8;
|
samplerInfo.anisotropyLevel = 8;
|
||||||
|
|
||||||
|
Nz::TextureParams texParams;
|
||||||
|
texParams.renderDevice = device;
|
||||||
|
texParams.loadFormat = Nz::PixelFormat::RGBA8_SRGB;
|
||||||
|
|
||||||
Nz::BasicMaterial basicMat(*materialPass);
|
Nz::BasicMaterial basicMat(*materialPass);
|
||||||
basicMat.EnableAlphaTest(false);
|
basicMat.EnableAlphaTest(false);
|
||||||
basicMat.SetAlphaMap(Nz::Texture::LoadFromFile(resourceDir / "alphatile.png", texParams));
|
basicMat.SetAlphaMap(Nz::Texture::LoadFromFile(resourceDir / "alphatile.png", texParams));
|
||||||
|
|
@ -121,7 +112,7 @@ int main()
|
||||||
|
|
||||||
entt::entity viewer = registry.create();
|
entt::entity viewer = registry.create();
|
||||||
registry.emplace<Nz::NodeComponent>(viewer);
|
registry.emplace<Nz::NodeComponent>(viewer);
|
||||||
registry.emplace<Nz::CameraComponent>(viewer, windowImpl);
|
registry.emplace<Nz::CameraComponent>(viewer, window.GetRenderTarget());
|
||||||
|
|
||||||
auto shipCollider = std::make_shared<Nz::ConvexCollider3D>(vertices, vertexMapper.GetVertexCount(), 0.01f);
|
auto shipCollider = std::make_shared<Nz::ConvexCollider3D>(vertices, vertexMapper.GetVertexCount(), 0.01f);
|
||||||
|
|
||||||
|
|
@ -337,7 +328,7 @@ int main()
|
||||||
playerShipBody.AddForce(Nz::Vector3f::Down() * 3.f * mass, Nz::CoordSys::Local);
|
playerShipBody.AddForce(Nz::Vector3f::Down() * 3.f * mass, Nz::CoordSys::Local);
|
||||||
}
|
}
|
||||||
|
|
||||||
Nz::RenderFrame frame = windowImpl->Acquire();
|
Nz::RenderFrame frame = window.AcquireFrame();
|
||||||
if (!frame)
|
if (!frame)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
@ -345,8 +336,6 @@ int main()
|
||||||
|
|
||||||
frame.Present();
|
frame.Present();
|
||||||
|
|
||||||
window.Display();
|
|
||||||
|
|
||||||
fps++;
|
fps++;
|
||||||
|
|
||||||
if (secondClock.GetMilliseconds() >= 1000)
|
if (secondClock.GetMilliseconds() >= 1000)
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,8 @@
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
|
std::cout << u8"Héhéhé" << std::endl;
|
||||||
|
return 0;
|
||||||
std::filesystem::path resourceDir = "resources";
|
std::filesystem::path resourceDir = "resources";
|
||||||
if (!std::filesystem::is_directory(resourceDir) && std::filesystem::is_directory(".." / resourceDir))
|
if (!std::filesystem::is_directory(resourceDir) && std::filesystem::is_directory(".." / resourceDir))
|
||||||
resourceDir = ".." / resourceDir;
|
resourceDir = ".." / resourceDir;
|
||||||
|
|
|
||||||
|
|
@ -221,8 +221,7 @@ int main()
|
||||||
|
|
||||||
Nz::RenderDevice* renderDevice = window.GetRenderDevice().get();
|
Nz::RenderDevice* renderDevice = window.GetRenderDevice().get();
|
||||||
|
|
||||||
Nz::RenderWindowImpl* windowImpl = window.GetImpl();
|
std::shared_ptr<Nz::CommandPool> commandPool = renderDevice->InstantiateCommandPool(Nz::QueueType::Graphics);
|
||||||
std::shared_ptr<Nz::CommandPool> commandPool = windowImpl->CreateCommandPool(Nz::QueueType::Graphics);
|
|
||||||
|
|
||||||
Nz::RenderBuffer* renderBufferIB = static_cast<Nz::RenderBuffer*>(meshIB->GetBuffer()->GetImpl());
|
Nz::RenderBuffer* renderBufferIB = static_cast<Nz::RenderBuffer*>(meshIB->GetBuffer()->GetImpl());
|
||||||
Nz::RenderBuffer* renderBufferVB = static_cast<Nz::RenderBuffer*>(meshVB->GetBuffer()->GetImpl());
|
Nz::RenderBuffer* renderBufferVB = static_cast<Nz::RenderBuffer*>(meshVB->GetBuffer()->GetImpl());
|
||||||
|
|
@ -329,7 +328,7 @@ int main()
|
||||||
uboUpdate = true;
|
uboUpdate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Nz::RenderFrame frame = windowImpl->Acquire();
|
Nz::RenderFrame frame = window.AcquireFrame();
|
||||||
if (!frame)
|
if (!frame)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
@ -355,6 +354,7 @@ int main()
|
||||||
uboUpdate = false;
|
uboUpdate = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const Nz::RenderTarget* windowRT = window.GetRenderTarget();
|
||||||
frame.Execute([&](Nz::CommandBufferBuilder& builder)
|
frame.Execute([&](Nz::CommandBufferBuilder& builder)
|
||||||
{
|
{
|
||||||
Nz::Recti renderRect(0, 0, window.GetSize().x, window.GetSize().y);
|
Nz::Recti renderRect(0, 0, window.GetSize().x, window.GetSize().y);
|
||||||
|
|
@ -366,7 +366,7 @@ int main()
|
||||||
|
|
||||||
builder.BeginDebugRegion("Main window rendering", Nz::Color::Green);
|
builder.BeginDebugRegion("Main window rendering", Nz::Color::Green);
|
||||||
{
|
{
|
||||||
builder.BeginRenderPass(windowImpl->GetFramebuffer(frame.GetFramebufferIndex()), windowImpl->GetRenderPass(), renderRect, { clearValues[0], clearValues[1] });
|
builder.BeginRenderPass(windowRT->GetFramebuffer(frame.GetFramebufferIndex()), windowRT->GetRenderPass(), renderRect, { clearValues[0], clearValues[1] });
|
||||||
{
|
{
|
||||||
builder.BindIndexBuffer(*indexBufferImpl);
|
builder.BindIndexBuffer(*indexBufferImpl);
|
||||||
builder.BindPipeline(*pipeline);
|
builder.BindPipeline(*pipeline);
|
||||||
|
|
@ -387,8 +387,6 @@ int main()
|
||||||
|
|
||||||
frame.Present();
|
frame.Present();
|
||||||
|
|
||||||
window.Display();
|
|
||||||
|
|
||||||
// On incrémente le compteur de FPS improvisé
|
// On incrémente le compteur de FPS improvisé
|
||||||
fps++;
|
fps++;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,15 +29,15 @@ namespace Nz
|
||||||
inline RenderWindow(std::shared_ptr<RenderDevice> renderDevice, void* handle, const RenderWindowParameters& parameters = RenderWindowParameters());
|
inline RenderWindow(std::shared_ptr<RenderDevice> renderDevice, void* handle, const RenderWindowParameters& parameters = RenderWindowParameters());
|
||||||
inline ~RenderWindow();
|
inline ~RenderWindow();
|
||||||
|
|
||||||
|
RenderFrame AcquireFrame();
|
||||||
|
|
||||||
bool Create(std::shared_ptr<RenderDevice> renderDevice, VideoMode mode, const std::string& title, WindowStyleFlags style = WindowStyle_Default, const RenderWindowParameters& parameters = RenderWindowParameters());
|
bool Create(std::shared_ptr<RenderDevice> renderDevice, VideoMode mode, const std::string& title, WindowStyleFlags style = WindowStyle_Default, const RenderWindowParameters& parameters = RenderWindowParameters());
|
||||||
bool Create(std::shared_ptr<RenderDevice> renderDevice, void* handle, const RenderWindowParameters ¶meters = RenderWindowParameters());
|
bool Create(std::shared_ptr<RenderDevice> renderDevice, void* handle, const RenderWindowParameters ¶meters = RenderWindowParameters());
|
||||||
|
|
||||||
void Display();
|
|
||||||
|
|
||||||
void EnableVerticalSync(bool enabled);
|
void EnableVerticalSync(bool enabled);
|
||||||
|
|
||||||
inline RenderWindowImpl* GetImpl();
|
|
||||||
inline const std::shared_ptr<RenderDevice>& GetRenderDevice() const;
|
inline const std::shared_ptr<RenderDevice>& GetRenderDevice() const;
|
||||||
|
inline const RenderTarget* GetRenderTarget() const;
|
||||||
inline RenderSurface* GetSurface();
|
inline RenderSurface* GetSurface();
|
||||||
|
|
||||||
inline bool IsValid() const;
|
inline bool IsValid() const;
|
||||||
|
|
|
||||||
|
|
@ -32,16 +32,16 @@ namespace Nz
|
||||||
Destroy();
|
Destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
inline RenderWindowImpl* RenderWindow::GetImpl()
|
|
||||||
{
|
|
||||||
return m_impl.get();
|
|
||||||
}
|
|
||||||
|
|
||||||
inline const std::shared_ptr<RenderDevice>& RenderWindow::GetRenderDevice() const
|
inline const std::shared_ptr<RenderDevice>& RenderWindow::GetRenderDevice() const
|
||||||
{
|
{
|
||||||
return m_renderDevice;
|
return m_renderDevice;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline const RenderTarget* RenderWindow::GetRenderTarget() const
|
||||||
|
{
|
||||||
|
return m_impl.get();
|
||||||
|
}
|
||||||
|
|
||||||
inline RenderSurface* RenderWindow::GetSurface()
|
inline RenderSurface* RenderWindow::GetSurface()
|
||||||
{
|
{
|
||||||
return m_surface.get();
|
return m_surface.get();
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,26 @@
|
||||||
|
|
||||||
namespace Nz
|
namespace Nz
|
||||||
{
|
{
|
||||||
|
RenderFrame RenderWindow::AcquireFrame()
|
||||||
|
{
|
||||||
|
if (!m_impl)
|
||||||
|
{
|
||||||
|
NazaraError("window is not created");
|
||||||
|
return RenderFrame{};
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_framerateLimit > 0)
|
||||||
|
{
|
||||||
|
int remainingTime = 1000 / static_cast<int>(m_framerateLimit) - static_cast<int>(m_clock.GetMilliseconds());
|
||||||
|
if (remainingTime > 0)
|
||||||
|
std::this_thread::sleep_for(std::chrono::milliseconds(remainingTime));
|
||||||
|
|
||||||
|
m_clock.Restart();
|
||||||
|
}
|
||||||
|
|
||||||
|
return m_impl->Acquire();
|
||||||
|
}
|
||||||
|
|
||||||
bool RenderWindow::Create(std::shared_ptr<RenderDevice> renderDevice, VideoMode mode, const std::string& title, WindowStyleFlags style, const RenderWindowParameters& parameters)
|
bool RenderWindow::Create(std::shared_ptr<RenderDevice> renderDevice, VideoMode mode, const std::string& title, WindowStyleFlags style, const RenderWindowParameters& parameters)
|
||||||
{
|
{
|
||||||
m_parameters = parameters;
|
m_parameters = parameters;
|
||||||
|
|
@ -27,18 +47,6 @@ namespace Nz
|
||||||
return Window::Create(handle);
|
return Window::Create(handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RenderWindow::Display()
|
|
||||||
{
|
|
||||||
if (m_framerateLimit > 0)
|
|
||||||
{
|
|
||||||
int remainingTime = 1000 / static_cast<int>(m_framerateLimit) - static_cast<int>(m_clock.GetMilliseconds());
|
|
||||||
if (remainingTime > 0)
|
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(remainingTime));
|
|
||||||
|
|
||||||
m_clock.Restart();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void RenderWindow::EnableVerticalSync(bool enabled)
|
void RenderWindow::EnableVerticalSync(bool enabled)
|
||||||
{
|
{
|
||||||
///TODO
|
///TODO
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue