1#pragma once
2
3namespace al {
4class GraphicsCopyInfo;
5class GraphicsComputeInfo;
6class GraphicsUpdateInfo;
7class GraphicsRenderInfo;
8class GraphicsCalcGpuInfo;
9class RenderVariables;
10
11class IUsePartsGraphics {
12public:
13 virtual void finalize() = 0;
14 virtual void endInit();
15 virtual void doCommandBufferCopy(const GraphicsCopyInfo*) const;
16 virtual void doComputeShader(const GraphicsComputeInfo*) const;
17 virtual void drawSystem(const GraphicsRenderInfo*) const;
18 virtual void update(const GraphicsUpdateInfo&) = 0;
19 virtual void calcGpu(const GraphicsCalcGpuInfo&) = 0;
20 virtual void drawGBufferAfterSky(const GraphicsRenderInfo&) const;
21 virtual void drawForward(const GraphicsRenderInfo&, const RenderVariables&) const;
22 virtual void drawDeferred(const GraphicsRenderInfo&) const;
23 virtual void drawLdr(const GraphicsRenderInfo&) const;
24 virtual void drawIndirect(const GraphicsRenderInfo&, const RenderVariables&) const;
25 virtual void drawCubemap(const GraphicsRenderInfo&) const;
26 virtual const char* getName() const = 0;
27};
28} // namespace al
29