Renderer: RenderWindow now requires a RenderDevice
This commit is contained in:
@@ -11,6 +11,22 @@
|
||||
|
||||
namespace Nz
|
||||
{
|
||||
bool RenderWindow::Create(std::shared_ptr<RenderDevice> renderDevice, VideoMode mode, const std::string& title, WindowStyleFlags style, const RenderWindowParameters& parameters)
|
||||
{
|
||||
m_parameters = parameters;
|
||||
m_renderDevice = std::move(renderDevice);
|
||||
|
||||
return Window::Create(mode, title, style);
|
||||
}
|
||||
|
||||
bool RenderWindow::Create(std::shared_ptr<RenderDevice> renderDevice, void* handle, const RenderWindowParameters& parameters)
|
||||
{
|
||||
m_parameters = parameters;
|
||||
m_renderDevice = std::move(renderDevice);
|
||||
|
||||
return Window::Create(handle);
|
||||
}
|
||||
|
||||
void RenderWindow::Display()
|
||||
{
|
||||
if (m_framerateLimit > 0)
|
||||
@@ -28,17 +44,9 @@ namespace Nz
|
||||
///TODO
|
||||
}
|
||||
|
||||
std::shared_ptr<RenderDevice> RenderWindow::GetRenderDevice()
|
||||
{
|
||||
if (!m_impl)
|
||||
return std::shared_ptr<RenderDevice>();
|
||||
|
||||
return m_impl->GetRenderDevice();
|
||||
}
|
||||
|
||||
bool RenderWindow::OnWindowCreated()
|
||||
{
|
||||
RendererImpl *rendererImpl = Renderer::Instance()->GetRendererImpl();
|
||||
RendererImpl* rendererImpl = Renderer::Instance()->GetRendererImpl();
|
||||
auto surface = rendererImpl->CreateRenderSurfaceImpl();
|
||||
if (!surface->Create(GetSystemHandle()))
|
||||
{
|
||||
@@ -64,6 +72,7 @@ namespace Nz
|
||||
void RenderWindow::OnWindowDestroy()
|
||||
{
|
||||
m_impl.reset();
|
||||
m_renderDevice.reset();
|
||||
m_surface.reset();
|
||||
}
|
||||
|
||||
|
||||
@@ -134,5 +134,30 @@ namespace Nz
|
||||
m_rendererImpl.reset();
|
||||
}
|
||||
|
||||
std::shared_ptr<RenderDevice> Renderer::InstanciateRenderDevice(std::size_t deviceIndex)
|
||||
{
|
||||
return m_rendererImpl->InstanciateRenderDevice(deviceIndex);
|
||||
}
|
||||
|
||||
RenderAPI Renderer::QueryAPI() const
|
||||
{
|
||||
return m_rendererImpl->QueryAPI();
|
||||
}
|
||||
|
||||
std::string Renderer::QueryAPIString() const
|
||||
{
|
||||
return m_rendererImpl->QueryAPIString();
|
||||
}
|
||||
|
||||
UInt32 Renderer::QueryAPIVersion() const
|
||||
{
|
||||
return m_rendererImpl->QueryAPIVersion();
|
||||
}
|
||||
|
||||
const std::vector<RenderDeviceInfo>& Renderer::QueryRenderDevices() const
|
||||
{
|
||||
return m_rendererImpl->QueryRenderDevices();
|
||||
}
|
||||
|
||||
Renderer* Renderer::s_instance = nullptr;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user