Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
WindowGraphicsBinding.hpp
1#pragma once
2
3#include <Common/Graphics/Formats.hpp>
4
5namespace Grindstone {
6 class Window;
7}
8
9namespace Grindstone::GraphicsAPI {
10 class CommandBuffer;
11 class RenderPass;
12 class Framebuffer;
13
19 public:
21 virtual bool Initialize(Window *window) = 0;
22 virtual void ImmediateSetContext() = 0;
23 virtual void ImmediateSwapBuffers() = 0;
24 virtual bool AcquireNextImage() = 0;
25 virtual void SubmitCommandBufferNoSynchronization(GraphicsAPI::CommandBuffer* buffer) = 0;
26 virtual void SubmitCommandBufferForCurrentFrame(GraphicsAPI::CommandBuffer* buffer) = 0;
27 virtual bool PresentSwapchain() = 0;
28 virtual RenderPass* GetRenderPass() = 0;
29 virtual Framebuffer* GetCurrentFramebuffer() = 0;
30 virtual uint32_t GetCurrentImageIndex() = 0;
31 virtual uint32_t GetMaxFramesInFlight() = 0;
32 virtual void Resize(uint32_t width, uint32_t height) = 0;
33 virtual GraphicsAPI::Format GetSwapchainFormat() const = 0;
34 };
35};
Definition CommandBuffer.hpp:90
Definition Framebuffer.hpp:16
Definition RenderPass.hpp:10
Definition WindowGraphicsBinding.hpp:18
Definition Window.hpp:12