LkEngine 0.1.2
 
Loading...
Searching...
No Matches
OpenGLPipeline.h
1#pragma once
2
4
5
6namespace LkEngine {
7
10 {
11 public:
12 LOpenGLPipeline(const FPipelineSpecification& InPipelineSpecification);
13 ~LOpenGLPipeline() = default;
14
15 virtual void Invalidate() override;
16
17 virtual void SetLayout(const FVertexBufferLayout& InLayout) override;
18
19 FORCEINLINE virtual TObjectPtr<LShader> GetShader() const override
20 {
21 return PipelineSpecification.Shader;
22 }
23
24 FORCEINLINE virtual FPipelineSpecification& GetSpecification() override
25 {
26 return PipelineSpecification;
27 }
28
29 FORCEINLINE virtual const FPipelineSpecification& GetSpecification() const override
30 {
31 return PipelineSpecification;
32 }
33
34 virtual void BindTextureArray(const LRendererID TextureArrayID) override;
35
36 FORCEINLINE std::deque<LRendererID>& GetBoundArrayTextures()
37 {
38 return BoundTextureArrays;
39 }
40
41 FORCEINLINE const std::deque<LRendererID>& GetBoundArrayTextures() const
42 {
43 return BoundTextureArrays;
44 }
45
46 private:
47 FPipelineSpecification PipelineSpecification;
48 std::deque<LRendererID> BoundTextureArrays{};
49
51 };
52
53}
Pipeline.
Definition OpenGLPipeline.h:10
Definition Pipeline.h:37
Definition ObjectPtr.h:102
#define LCLASS(Class)
Definition CoreMacros.h:226
uint32_t LRendererID
Definition CoreTypes.h:30
Definition Asset.h:11
Definition PipelineSpecification.h:21
Definition VertexBufferLayout.h:124