VenomEngine
Cross-Platform Modern Graphics Engine
Loading...
Searching...
No Matches
RenderingPipeline.h
Go to the documentation of this file.
1
8#pragma once
10
11#include <venom/common/ECS.h>
12
13namespace venom
14{
15namespace common
16{
17typedef vc::Vector<ShaderPipeline> ShaderPipelineList;
18
19class VENOM_COMMON_API RenderingPipelineImpl : public PluginObjectImpl, public GraphicsPluginObject
20{
21public:
22 RenderingPipelineImpl(const RenderingPipelineType type = RenderingPipelineType::None) : __type(type) {}
23 virtual ~RenderingPipelineImpl();
24
25 inline void SetShaderType(const RenderingPipelineType type) { __type = type; }
26 inline RenderingPipelineType GetShaderType() const { return __type; }
27 inline const ShaderPipelineList & GetRenderingPipelineCache() const { return GetRenderingPipelineCache(__type); }
28
29 static const ShaderPipelineList & GetRenderingPipelineCache(const RenderingPipelineType type);
36 static void SetRenderingPipelineCache(const ShaderPipelineList & list, const RenderingPipelineType type);
37private:
38 RenderingPipelineType __type;
39};
40
44class VENOM_COMMON_API RenderingPipeline : public PluginObjectImplWrapper
45{
46public:
47 RenderingPipeline();
48 RenderingPipeline(const RenderingPipelineType type);
49 ~RenderingPipeline() = default;
50
51 inline void SetShaderType(const RenderingPipelineType type) { _impl->As<RenderingPipelineImpl>()->SetShaderType(type); }
52 inline RenderingPipelineType GetShaderType() const { return _impl->As<RenderingPipelineImpl>()->GetShaderType(); }
53 inline const ShaderPipelineList & GetRenderingPipelineCache() const { return _impl->As<RenderingPipelineImpl>()->GetRenderingPipelineCache(); }
54 inline static const ShaderPipelineList & GetRenderingPipelineCache(const RenderingPipelineType type) { return RenderingPipelineImpl::GetRenderingPipelineCache(type); }
55};
56
57}
58}
Definition RenderingPipeline.h:20
static void SetRenderingPipelineCache(const ShaderPipelineList &list, const RenderingPipelineType type)
Sets the list of shader pipelines in cache.
Definition RenderingPipeline.cc:30
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