Renderer: RenderWindow now requires a RenderDevice
This commit is contained in:
@@ -25,19 +25,19 @@ namespace Nz
|
||||
{
|
||||
public:
|
||||
inline RenderWindow();
|
||||
inline RenderWindow(VideoMode mode, const std::string& title, WindowStyleFlags style = WindowStyle_Default, const RenderWindowParameters& parameters = RenderWindowParameters());
|
||||
inline explicit RenderWindow(void* handle, const RenderWindowParameters ¶meters = RenderWindowParameters());
|
||||
inline RenderWindow(std::shared_ptr<RenderDevice> renderDevice, VideoMode mode, const std::string& title, WindowStyleFlags style = WindowStyle_Default, const RenderWindowParameters& parameters = RenderWindowParameters());
|
||||
inline RenderWindow(std::shared_ptr<RenderDevice> renderDevice, void* handle, const RenderWindowParameters& parameters = RenderWindowParameters());
|
||||
inline ~RenderWindow();
|
||||
|
||||
inline bool Create(VideoMode mode, const std::string& title, WindowStyleFlags style = WindowStyle_Default, const RenderWindowParameters& parameters = RenderWindowParameters());
|
||||
inline bool Create(void* handle, const RenderWindowParameters ¶meters = 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());
|
||||
|
||||
void Display();
|
||||
|
||||
void EnableVerticalSync(bool enabled);
|
||||
|
||||
inline RenderWindowImpl* GetImpl();
|
||||
std::shared_ptr<RenderDevice> GetRenderDevice();
|
||||
inline const std::shared_ptr<RenderDevice>& GetRenderDevice() const;
|
||||
inline RenderSurface* GetSurface();
|
||||
|
||||
inline bool IsValid() const;
|
||||
@@ -53,9 +53,10 @@ namespace Nz
|
||||
void OnWindowResized() override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<RenderDevice> m_renderDevice;
|
||||
std::unique_ptr<RenderSurface> m_surface;
|
||||
std::unique_ptr<RenderWindowImpl> m_impl;
|
||||
Clock m_clock;
|
||||
std::unique_ptr<RenderSurface> m_surface;
|
||||
RenderWindowParameters m_parameters;
|
||||
unsigned int m_framerateLimit;
|
||||
};
|
||||
|
||||
@@ -12,19 +12,19 @@ namespace Nz
|
||||
{
|
||||
}
|
||||
|
||||
inline RenderWindow::RenderWindow(VideoMode mode, const std::string& title, WindowStyleFlags style, const RenderWindowParameters& parameters) :
|
||||
inline RenderWindow::RenderWindow(std::shared_ptr<RenderDevice> renderDevice, VideoMode mode, const std::string& title, WindowStyleFlags style, const RenderWindowParameters& parameters) :
|
||||
RenderWindow()
|
||||
{
|
||||
ErrorFlags errFlags(ErrorFlag_ThrowException, true);
|
||||
|
||||
Create(mode, title, style, parameters);
|
||||
Create(std::move(renderDevice), mode, title, style, parameters);
|
||||
}
|
||||
|
||||
inline RenderWindow::RenderWindow(void* handle, const RenderWindowParameters& parameters)
|
||||
inline RenderWindow::RenderWindow(std::shared_ptr<RenderDevice> renderDevice, void* handle, const RenderWindowParameters& parameters)
|
||||
{
|
||||
ErrorFlags errFlags(ErrorFlag_ThrowException, true);
|
||||
|
||||
Create(handle, parameters);
|
||||
Create(std::move(renderDevice), handle, parameters);
|
||||
}
|
||||
|
||||
inline RenderWindow::~RenderWindow()
|
||||
@@ -32,25 +32,16 @@ namespace Nz
|
||||
Destroy();
|
||||
}
|
||||
|
||||
inline bool RenderWindow::Create(VideoMode mode, const std::string& title, WindowStyleFlags style, const RenderWindowParameters& parameters)
|
||||
{
|
||||
m_parameters = parameters;
|
||||
|
||||
return Window::Create(mode, title, style);
|
||||
}
|
||||
|
||||
inline bool RenderWindow::Create(void* handle, const RenderWindowParameters& parameters)
|
||||
{
|
||||
m_parameters = parameters;
|
||||
|
||||
return Window::Create(handle);
|
||||
}
|
||||
|
||||
inline RenderWindowImpl* RenderWindow::GetImpl()
|
||||
{
|
||||
return m_impl.get();
|
||||
}
|
||||
|
||||
inline const std::shared_ptr<RenderDevice>& RenderWindow::GetRenderDevice() const
|
||||
{
|
||||
return m_renderDevice;
|
||||
}
|
||||
|
||||
inline RenderSurface* RenderWindow::GetSurface()
|
||||
{
|
||||
return m_surface.get();
|
||||
|
||||
@@ -20,6 +20,7 @@ namespace Nz
|
||||
class CommandPool;
|
||||
class Framebuffer;
|
||||
class RendererImpl;
|
||||
class RenderDevice;
|
||||
class RenderPass;
|
||||
class RenderSurface;
|
||||
|
||||
@@ -35,7 +36,6 @@ namespace Nz
|
||||
virtual std::shared_ptr<CommandPool> CreateCommandPool(QueueType queueType) = 0;
|
||||
|
||||
virtual const Framebuffer& GetFramebuffer() const = 0;
|
||||
virtual std::shared_ptr<RenderDevice> GetRenderDevice() = 0;
|
||||
virtual const RenderPass& GetRenderPass() const = 0;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -34,6 +34,14 @@ namespace Nz
|
||||
|
||||
inline RendererImpl* GetRendererImpl();
|
||||
|
||||
std::shared_ptr<RenderDevice> InstanciateRenderDevice(std::size_t deviceIndex);
|
||||
|
||||
RenderAPI QueryAPI() const;
|
||||
std::string QueryAPIString() const;
|
||||
UInt32 QueryAPIVersion() const;
|
||||
|
||||
const std::vector<RenderDeviceInfo>& QueryRenderDevices() const;
|
||||
|
||||
struct Config
|
||||
{
|
||||
Nz::RenderAPI preferredAPI = Nz::RenderAPI::Unknown;
|
||||
|
||||
@@ -43,7 +43,7 @@ namespace Nz
|
||||
virtual std::string QueryAPIString() const = 0;
|
||||
virtual UInt32 QueryAPIVersion() const = 0;
|
||||
|
||||
virtual std::vector<RenderDeviceInfo> QueryRenderDevices() const = 0;
|
||||
virtual const std::vector<RenderDeviceInfo>& QueryRenderDevices() const = 0;
|
||||
|
||||
virtual bool Prepare(const ParameterList& parameters) = 0;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user