33#ifndef DVD_RENDER_API_H_
34#define DVD_RENDER_API_H_
52template <
typename T>
class vec4;
60struct TextElementBatch;
61struct RenderTargetDescriptor;
62struct ShaderBufferDescriptor;
164 virtual void idle(
bool fast) = 0;
176 virtual void onThreadCreated(
const std::thread::id& threadID,
bool isMainRenderThread ) = 0;
183 virtual GenericVertexData_ptr
newGVD(
U32 ringBufferLength, std::string_view name )
const = 0;
Rough around the edges Adapter pattern abstracting the actual rendering API and access to the GPU.
Renderer Programming Interface.
virtual void prepareFlushWindow(DisplayWindow &window)=0
virtual bool frameEnded()=0
virtual ~RenderAPIWrapper()=default
virtual ErrorCode initRenderingAPI(I32 argc, char **argv, Configuration &config)=0
virtual void onRenderThreadLoopEnd()=0
virtual bool setScissorInternal(const Rect< I32 > &newScissor)=0
virtual void flushWindow(DisplayWindow &window)=0
virtual bool setViewportInternal(const Rect< I32 > &newViewport)=0
virtual void idle(bool fast)=0
virtual bool frameStarted()=0
virtual bool bindShaderResources(const DescriptorSetEntries &descriptorSetEntries)=0
virtual void initDescriptorSets()=0
virtual RenderTarget_uptr newRT(const RenderTargetDescriptor &descriptor) const =0
virtual void postFlushCommandBuffer(Handle< GFX::CommandBuffer > commandBuffer)=0
virtual void onThreadCreated(const std::thread::id &threadID, bool isMainRenderThread)=0
virtual bool drawToWindow(DisplayWindow &window)=0
virtual ShaderBuffer_uptr newSB(const ShaderBufferDescriptor &descriptor) const =0
virtual void flushCommand(GFX::CommandBase *cmd)=0
virtual GenericVertexData_ptr newGVD(U32 ringBufferLength, std::string_view name) const =0
virtual void onRenderThreadLoopStart()=0
virtual void closeRenderingAPI()=0
virtual void preFlushCommandBuffer(Handle< GFX::CommandBuffer > commandBuffer)=0
constexpr U8 MAX_CULL_DISTANCES
constexpr U8 MAX_CLIP_DISTANCES
Handle console commands that start with a forward slash.
std::array< DescriptorSetEntry, to_base(DescriptorSetUsage::COUNT)> DescriptorSetEntries