VenomEngine
Cross-Platform Modern Graphics Engine
Loading...
Searching...
No Matches
RenderingPipeline.h
Go to the documentation of this file.
1
8#pragma once
10
11namespace venom
12{
13namespace common
14{
15typedef vc::Vector<ShaderPipeline> ShaderPipelineList;
16
17class VENOM_COMMON_API RenderingPipelineImpl : public PluginObjectImpl, public GraphicsPluginObject
18{
19public:
20 RenderingPipelineImpl(const RenderingPipelineType type = RenderingPipelineType::None) : __type(type) {}
21 ~RenderingPipelineImpl() = default;
22
23 inline void SetShaderType(const RenderingPipelineType type) { __type = type; }
24 inline RenderingPipelineType GetShaderType() const { return __type; }
25 inline const ShaderPipelineList & GetRenderingPipelineCache() const { return GetRenderingPipelineCache(__type); }
26
27 static const ShaderPipelineList & GetRenderingPipelineCache(const RenderingPipelineType type);
34 static void SetRenderingPipelineCache(const ShaderPipelineList & list, const RenderingPipelineType type);
35private:
36 RenderingPipelineType __type;
37};
38
42class VENOM_COMMON_API RenderingPipeline : public PluginObjectImplWrapper
43{
44public:
46 RenderingPipeline(const RenderingPipelineType type);
47 ~RenderingPipeline() = default;
48
49 inline void SetShaderType(const RenderingPipelineType type) { _impl->As<RenderingPipelineImpl>()->SetShaderType(type); }
50 inline RenderingPipelineType GetShaderType() const { return _impl->As<RenderingPipelineImpl>()->GetShaderType(); }
51 inline const ShaderPipelineList & GetRenderingPipelineCache() const { return _impl->As<RenderingPipelineImpl>()->GetRenderingPipelineCache(); }
52 inline static const ShaderPipelineList & GetRenderingPipelineCache(const RenderingPipelineType type) { return RenderingPipelineImpl::GetRenderingPipelineCache(type); }
53};
54
55}
56}
Base class for graphics plugin objects.
Definition GraphicsPluginObject.h:80
Interface for the PluginObject different implementations.
Definition PluginObject.h:56
Wrapper for the PluginObjectImpl, inherited by classes like Model or Mesh to make them usable as comp...
Definition PluginObject.h:76
Interface with shader pipelines and shader settings.
Definition RenderingPipeline.h:43
Definition RenderingPipeline.h:18
Contains the entirety of the code of the VenomEngine project.
Definition Config.h:13