26#include <Objectively/Object.h>
39typedef struct RenderPassInterface RenderPassInterface;
86 SDL_GPURenderPass *pass;
117struct RenderPassInterface {
122 ObjectInterface objectInterface;
129 void (*bindFragmentSamplers)(
const RenderPass *self, Uint32 firstSlot,
const SDL_GPUTextureSamplerBinding *bindings, Uint32 num);
136 void (*bindFragmentStorageBuffers)(
const RenderPass *self, Uint32 firstSlot, SDL_GPUBuffer *
const *buffers, Uint32 num);
143 void (*bindFragmentStorageTextures)(
const RenderPass *self, Uint32 firstSlot, SDL_GPUTexture *
const *textures, Uint32 num);
157 void (*bindIndexBuffer)(
const RenderPass *self,
const SDL_GPUBufferBinding *binding, SDL_GPUIndexElementSize indexElementSize);
164 void (*bindVertexBuffers)(
const RenderPass *self, Uint32 firstSlot,
const SDL_GPUBufferBinding *bindings, Uint32 num);
171 void (*bindVertexSamplers)(
const RenderPass *self, Uint32 firstSlot,
const SDL_GPUTextureSamplerBinding *bindings, Uint32 num);
178 void (*bindVertexStorageBuffers)(
const RenderPass *self, Uint32 firstSlot, SDL_GPUBuffer *
const *buffers, Uint32 num);
185 void (*bindVertexStorageTextures)(
const RenderPass *self, Uint32 firstSlot, SDL_GPUTexture *
const *textures, Uint32 num);
208 void (*drawIndexedPrimitives)(
const RenderPass *self, Uint32 numIndices, Uint32 numInstances, Uint32 firstIndex, Sint32 vertexOffset, Uint32 firstInstance);
215 void (*drawIndexedPrimitivesIndirect)(
const RenderPass *self, SDL_GPUBuffer *buffer, Uint32 offset, Uint32 drawCount);
222 void (*drawPrimitives)(
const RenderPass *self, Uint32 numVertices, Uint32 numInstances, Uint32 firstVertex, Uint32 firstInstance);
229 void (*drawPrimitivesIndirect)(
const RenderPass *self, SDL_GPUBuffer *buffer, Uint32 offset, Uint32 drawCount);
247 void (*setBlendConstants)(
RenderPass *self, SDL_FColor blendConstants);
254 void (*setScissor)(
RenderPass *self,
const SDL_Rect *scissor);
261 void (*setStencilReference)(
RenderPass *self, Uint8 reference);
268 void (*setViewport)(
RenderPass *self,
const SDL_GPUViewport *viewport);
OBJECTIVELYGPU_EXPORT Class * _RenderPass(void)
Definition RenderPass.c:322
#define OBJECTIVELYGPU_EXPORT
Definition Types.h:35
A recorded sequence of GPU commands for a single frame.
Definition CommandBuffer.h:80
An SDL_GPUGraphicsPipeline: the compiled vertex/fragment program plus all fixed-function render state...
Definition GraphicsPipeline.h:51
An SDL_GPUQueryPool and its metadata.
Definition QueryPool.h:96
A scoped render pass for recording draw commands into a CommandBuffer.
Definition RenderPass.h:57
GraphicsPipeline * pipeline
The currently bound pipeline, or NULL.
Definition RenderPass.h:91
SDL_Rect scissor
The current scissor.
Definition RenderPass.h:96
Object object
The superclass.
Definition RenderPass.h:62
SDL_FColor blendConstants
The current blend constants.
Definition RenderPass.h:73
ident data
User data.
Definition RenderPass.h:111
RenderPassInterface * interface
The interface.
Definition RenderPass.h:68
SDL_GPUViewport viewport
The current viewport.
Definition RenderPass.h:106
Uint8 stencilReference
The current stencil reference.
Definition RenderPass.h:101