srp
software rendering pipeline
Loading...
Searching...
No Matches

Internals of the Buffer module. More...

Collaboration diagram for Buffer:

Classes

struct  SRPVertexBuffer
 
static void drawBuffer (const SRPIndexBuffer *ib, const SRPVertexBuffer *vb, const SRPFramebuffer *fb, const SRPShaderProgram *sp, SRPPrimitive primitive, size_t startIndex, size_t count)
 
static uint64_t indexIndexBuffer (const SRPIndexBuffer *this, size_t ibIndex)
 
static SRPVertexindexVertexBuffer (const SRPVertexBuffer *this, size_t index)
 

Detailed Description

Internals of the Buffer module.

Function Documentation

◆ drawBuffer()

static void drawBuffer ( const SRPIndexBuffer ib,
const SRPVertexBuffer vb,
const SRPFramebuffer fb,
const SRPShaderProgram sp,
SRPPrimitive  primitive,
size_t  startIndex,
size_t  count 
)
static

Draw either SRPIndexBuffer or SRPVertexBuffer. If ib == NULL, draws the vertex buffer, else draws index buffer. Created because vertex and index buffer drawing are very similar, with an intent to avoid code duplication

See also
srpDrawVertexBuffer() srpDrawIndexBuffer() for parameter documentation

◆ indexIndexBuffer()

static uint64_t indexIndexBuffer ( const SRPIndexBuffer this,
size_t  ibIndex 
)
static

Get an element stored in SRPIndexBuffer. Needed because SRPIndexBuffer stores opaque index types.

Parameters
[in]thisPointer to SRPIndexBuffer
[in]ibIndexIndex of the element in the SRPIndexBuffer
Returns
Element upcasted to uint64_t

◆ indexVertexBuffer()

static SRPVertex * indexVertexBuffer ( const SRPVertexBuffer this,
size_t  index 
)
static

Get a vertex stored in SRPVertexBuffer.

Parameters
[in]thisPointer to SRPVertexBuffer
[in]indexIndex of the vertex to get
Returns
Requested vertex