LkEngine 0.1.2
 
Loading...
Searching...
No Matches
RenderCommandBuffer.h
1#pragma once
2
3#include "Pipeline.h"
4#include "RenderCommandQueue.h"
5
6namespace LkEngine {
7
12 {
13 public:
14 virtual ~LRenderCommandBuffer() = default;
15
16 virtual void Begin() = 0;
17 virtual void End() = 0;
18 virtual void Submit() = 0;
19
20 virtual float GetExecutionGpuTime(const uint32_t FrameIndex, const uint32_t QueryIndex = 0) const = 0;
21 virtual const FPipelineStatistics& GetPipelineStatistics(const uint32_t FrameIndex) const = 0;
22
23 virtual uint32_t BeginTimestampQuery() = 0;
24 virtual void EndTimestampQuery(const uint32_t QueryID) = 0;
25
26 static TObjectPtr<LRenderCommandBuffer> Create(const uint32_t Count = 0, const std::string& InDebugName = "");
27 static TObjectPtr<LRenderCommandBuffer> CreateFromSwapChain(const std::string& InDebugName = "");
28
29 private:
31 };
32
33
34}
Pipeline.
Definition Object.h:46
Definition RenderCommandBuffer.h:12
Definition ObjectPtr.h:102
#define LCLASS(Class)
Definition CoreMacros.h:226
Definition Asset.h:11
Definition Pipeline.h:21