18 #ifndef INCLUDED_RENDERER_BACKEND_IDEVICECOMMANDCONTEXT 19 #define INCLUDED_RENDERER_BACKEND_IDEVICECOMMANDCONTEXT 69 virtual void ClearFramebuffer(
const bool color,
const bool depth,
const bool stencil) = 0;
76 const void* data,
const size_t dataSize,
79 const void* data,
const size_t dataSize,
123 const uint32_t firstIndex,
const uint32_t indexCount,
const int32_t vertexOffset) = 0;
130 const int32_t vertexOffset) = 0;
139 const int32_t bindingSlot,
140 const float value) = 0;
142 const int32_t bindingSlot,
143 const float valueX,
const float valueY) = 0;
145 const int32_t bindingSlot,
146 const float valueX,
const float valueY,
147 const float valueZ) = 0;
149 const int32_t bindingSlot,
150 const float valueX,
const float valueY,
151 const float valueZ,
const float valueW) = 0;
158 virtual void Flush() = 0;
165 #define GPU_SCOPED_LABEL(deviceCommandContext, name) \ 166 GPUScopedLabel scopedLabel((deviceCommandContext), (name)); 174 : m_DeviceCommandContext(deviceCommandContext)
176 m_DeviceCommandContext->BeginScopedLabel(name);
181 m_DeviceCommandContext->EndScopedLabel();
188 #endif // INCLUDED_RENDERER_BACKEND_IDEVICECOMMANDCONTEXT virtual void ClearFramebuffer(const bool color, const bool depth, const bool stencil)=0
Clears all mentioned attachments.
virtual void BeginPass()=0
virtual void SetVertexInputLayout(IVertexInputLayout *vertexInputLayout)=0
Binds the vertex input layout.
int32_t x
Definition: IDeviceCommandContext.h:96
virtual void UploadTextureRegion(ITexture *texture, const Format dataFormat, const void *data, const size_t dataSize, const uint32_t xOffset, const uint32_t yOffset, const uint32_t width, const uint32_t height, const uint32_t level=0, const uint32_t layer=0)=0
virtual void DrawIndexedInstanced(const uint32_t firstIndex, const uint32_t indexCount, const uint32_t firstInstance, const uint32_t instanceCount, const int32_t vertexOffset)=0
std::function< void(u8 *)> UploadBufferFunction
Definition: IDeviceCommandContext.h:84
Definition: ITexture.h:33
virtual void Draw(const uint32_t firstVertex, const uint32_t vertexCount)=0
virtual void BeginFramebufferPass(IFramebuffer *framebuffer)=0
Starts a framebuffer pass, performs attachment load operations.
virtual void SetScissors(const uint32_t scissorCount, const Rect *scissors)=0
virtual void DrawIndexed(const uint32_t firstIndex, const uint32_t indexCount, const int32_t vertexOffset)=0
Format
Definition: Format.h:27
virtual void SetIndexBufferData(const void *data, const uint32_t dataSize)=0
int32_t width
Definition: IDeviceCommandContext.h:97
Definition: IDeviceCommandContext.h:168
virtual void SetViewports(const uint32_t viewportCount, const Rect *viewports)=0
GPUScopedLabel(Renderer::Backend::IDeviceCommandContext *deviceCommandContext, const char *name)
Definition: IDeviceCommandContext.h:171
A holder for precompiled graphics pipeline description.
Definition: PipelineState.h:190
virtual void UploadTexture(ITexture *texture, const Format dataFormat, const void *data, const size_t dataSize, const uint32_t level=0, const uint32_t layer=0)=0
Backend
Definition: Backend.h:27
virtual void BlitFramebuffer(IFramebuffer *destinationFramebuffer, IFramebuffer *sourceFramebuffer)=0
virtual void SetVertexBufferData(const uint32_t bindingSlot, const void *data, const uint32_t dataSize)=0
virtual void SetIndexBuffer(IBuffer *buffer)=0
~GPUScopedLabel()
Definition: IDeviceCommandContext.h:179
virtual void UploadBufferRegion(IBuffer *buffer, const void *data, const uint32_t dataOffset, const uint32_t dataSize)=0
unsigned int uint32_t
Definition: wposix_types.h:53
Definition: VideoMode.h:28
virtual void ReadbackFramebufferSync(const uint32_t x, const uint32_t y, const uint32_t width, const uint32_t height, void *data)=0
virtual void BeginScopedLabel(const char *name)=0
virtual void SetTexture(const int32_t bindingSlot, ITexture *texture)=0
virtual void SetGraphicsPipelineState(IGraphicsPipelineState *pipelineState)=0
Binds the graphics pipeline state.
virtual void DrawInstanced(const uint32_t firstVertex, const uint32_t vertexCount, const uint32_t firstInstance, const uint32_t instanceCount)=0
Definition: IDeviceObject.h:32
virtual void DrawIndexedInRange(const uint32_t firstIndex, const uint32_t indexCount, const uint32_t start, const uint32_t end)=0
Definition: IDeviceCommandContext.h:94
virtual void EndFramebufferPass()=0
Finishes a framebuffer pass, performs attachment store operations.
virtual void SetUniform(const int32_t bindingSlot, const float value)=0
int32_t height
Definition: IDeviceCommandContext.h:97
Definition: IDeviceCommandContext.h:40
IFramebuffer stores attachments which should be used by backend as rendering destinations.
Definition: IFramebuffer.h:84
virtual void UploadBuffer(IBuffer *buffer, const void *data, const uint32_t dataSize)=0
Simplifed version of std::span (C++20) as we don't support the original one yet.
Definition: Span.h:36
int32_t y
Definition: IDeviceCommandContext.h:96
virtual void SetVertexBuffer(const uint32_t bindingSlot, IBuffer *buffer, const uint32_t offset)=0
virtual void EndScopedLabel()=0