PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
render_device.h
1#pragma once
2
3#include <cstdint>
4#include <string_view>
5
6namespace pixelbullet
7{
8class Descriptor;
9class Graphics;
10class RenderStage;
11class RenderTarget2D;
12class Window;
13
15{
16public:
17 class InternalAccess;
18
19 RenderDevice() = delete;
20
21 void WaitIdle() const;
22
23 const RenderStage* GetRenderStage(uint32_t index) const;
24 const Descriptor* GetAttachment(std::string_view name) const;
25 const RenderTarget2D* GetRenderTarget(std::string_view name) const;
26 uint32_t GetFrameImageCount() const;
27
28 const Window& GetWindow() const;
29 Window& GetWindow();
30
31private:
32 friend class Graphics;
33 friend class InternalAccess;
34
35 explicit RenderDevice(Graphics& graphics) noexcept;
36
37 Graphics* graphics_ = nullptr;
38};
39} // namespace pixelbullet
Definition descriptor.h:75
Module that manages the Vulkan instance_, Surface, Window and the renderpass structure.
Definition graphics.h:36
Definition render_device_internal.h:19
Definition render_device.h:15
Definition render_stage.h:217
Definition render_target.h:37
Definition window.h:23