VenomEngine
Cross-Platform Modern Graphics Engine
Loading...
Searching...
No Matches
RenderPass.h
Go to the documentation of this file.
1
8#pragma once
9
14
16
17namespace venom
18{
19namespace common
20{
21class VENOM_COMMON_API RenderPassImpl : public GraphicsPluginObject
22{
23public:
24 RenderPassImpl();
25 ~RenderPassImpl();
26 RenderPassImpl(const RenderPassImpl&) = delete;
27 RenderPassImpl& operator=(const RenderPassImpl&) = delete;
28 RenderPassImpl(RenderPassImpl&& other);
29 RenderPassImpl& operator=(RenderPassImpl&& other);
30
31 void Destroy() override;
32 inline vc::Error Init() { return _Init(); }
33 vc::Error SetMultiSampling(const vc::GraphicsSettings::MultiSamplingModeOption mode, const vc::GraphicsSettings::MultiSamplingCountOption samples);
34
35 void SetRenderingType(const vc::RenderingPipelineType type);
36 static RenderPassImpl * GetRenderPass(const vc::RenderingPipelineType type);
37 static vc::Array<RenderPassImpl *, static_cast<int>(vc::RenderingPipelineType::Count)> GetRenderPasses();
38 RenderingPipelineType GetRenderingType() const;
39
40 virtual vc::Error _Init() = 0;
41 virtual vc::Error _SetMultiSampling(const vc::GraphicsSettings::MultiSamplingModeOption mode, const vc::GraphicsSettings::MultiSamplingCountOption samples) = 0;
42
43protected:
44 vc::RenderingPipelineType _type;
45 vc::Vector<vc::Vector<vc::Texture>> _attachments;
46};
47
48class VENOM_COMMON_API RenderPass : public PluginObjectWrapper
49{
50public:
51 RenderPass();
52 ~RenderPass();
53
54 inline void SetRenderingType(const vc::RenderingPipelineType type) { _impl->As<RenderPassImpl>()->SetRenderingType(type); }
55};
56}
57}
MultiSamplingModeOption
Definition GraphicsSettings.h:46
Definition RenderPass.h:22
void Destroy() override
/!\ THIS FUNCTION MUST BE CALLED FOR DESTRUCTION, DO NOT USE delete
Definition RenderPass.cc:54
High-Level Frontend of the VenomEngine project. It also contains all the code shared between every AP...
Definition Callback.h:15
Contains the entirety of the code of the VenomEngine project.
Definition Callback.h:13