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 class Image;
14
20 public:
22 virtual bool Initialize(Window *window) = 0;
23 virtual void WaitForRenderingFence() = 0;
24 virtual void ImmediateSetContext() = 0;
25 virtual void ImmediateSwapBuffers() = 0;
26 virtual bool AcquireNextImage() = 0;
27 virtual void SubmitCommandBufferNoSynchronization(GraphicsAPI::CommandBuffer* buffer) = 0;
28 virtual void SubmitCommandBufferForCurrentFrame(GraphicsAPI::CommandBuffer* buffer) = 0;
29 virtual bool PresentSwapchain() = 0;
30 virtual RenderPass* GetRenderPass() const = 0;
31 virtual Framebuffer* GetCurrentFramebuffer() const = 0;
32 virtual Image* GetCurrentSwapchainImage() const = 0;
33 virtual Image* GetSwapchainImage(uint32_t index) const = 0;
34 virtual uint32_t GetCurrentSwapchainIndex() const = 0;
35 virtual uint32_t GetCurrentImageIndex() const = 0;
36 virtual uint32_t GetCurrentFrame() const = 0;
37 virtual uint32_t GetMaxFramesInFlight() const = 0;
38 virtual void Resize(uint32_t width, uint32_t height) = 0;
39 virtual GraphicsAPI::Format GetSwapchainFormat() const = 0;
40 };
41};
Definition CommandBuffer.hpp:109
Definition Framebuffer.hpp:16
Definition Image.hpp:49
Definition RenderPass.hpp:10
Definition WindowGraphicsBinding.hpp:19
Definition Window.hpp:12