|
srp
software rendering pipeline
|
#include <stdio.h>#include <string.h>#include "buffer_p.h"#include "message_callback_p.h"#include "triangle.h"#include "type.h"#include "utils.h"#include "defines.h"#include "vertex.h"
Functions | |
| SRPVertexBuffer * | srpNewVertexBuffer () |
| void | srpVertexBufferCopyData (SRPVertexBuffer *this, size_t nBytesPerVertex, size_t nBytesData, const void *data) |
| void | srpFreeVertexBuffer (SRPVertexBuffer *this) |
| void | srpDrawVertexBuffer (const SRPVertexBuffer *this, const SRPFramebuffer *fb, const SRPShaderProgram *sp, SRPPrimitive primitive, size_t startIndex, size_t count) |
| SRPIndexBuffer * | srpNewIndexBuffer () |
| void | srpIndexBufferCopyData (SRPIndexBuffer *this, SRPType indicesType, size_t nBytesData, const void *data) |
| void | srpFreeIndexBuffer (SRPIndexBuffer *this) |
| void | srpDrawIndexBuffer (const SRPIndexBuffer *this, const SRPVertexBuffer *vb, const SRPFramebuffer *fb, const SRPShaderProgram *sp, SRPPrimitive primitive, size_t startIndex, size_t count) |
| 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 SRPVertex * | indexVertexBuffer (const SRPVertexBuffer *this, size_t index) |
Buffer implementation
| void srpDrawIndexBuffer | ( | const SRPIndexBuffer * | this, |
| const SRPVertexBuffer * | vb, | ||
| const SRPFramebuffer * | fb, | ||
| const SRPShaderProgram * | sp, | ||
| SRPPrimitive | primitive, | ||
| size_t | startIndex, | ||
| size_t | count | ||
| ) |
Draw vertices using both vertex and index buffers
| [in] | this | The index buffer to read the indices from |
| [in] | vb | The vertex buffer to read the vertex data from |
| [in] | fb | The framebuffer to draw to |
| [in] | sp | The shader program to use |
| [in] | primitive | Specifies the primitive to draw |
| [in] | startIndex | Specifies from what index buffer's index to start drawing |
| [in] | count | Specifies how many indices to draw |
| void srpDrawVertexBuffer | ( | const SRPVertexBuffer * | this, |
| const SRPFramebuffer * | fb, | ||
| const SRPShaderProgram * | sp, | ||
| SRPPrimitive | primitive, | ||
| size_t | startIndex, | ||
| size_t | count | ||
| ) |
Draw vertices from vertex buffer
| [in] | this | The pointer to vertex buffer to read the vertex data from |
| [in] | fb | The framebuffer to draw to |
| [in] | sp | The shader program to use |
| [in] | primitive | Specifies the primitive to draw |
| [in] | startIndex | Specifies from what index to start drawing |
| [in] | count | Specifies how many vertices to draw |
| void srpFreeIndexBuffer | ( | SRPIndexBuffer * | this | ) |
Free the index buffer
| [in] | this | The pointer to index buffer, as returned from srpNewIndexBuffer() |
| void srpFreeVertexBuffer | ( | SRPVertexBuffer * | this | ) |
Free the vertex buffer
| [in] | this | The pointer to vertex buffer, as returned from srpNewVertexBuffer() |
| void srpIndexBufferCopyData | ( | SRPIndexBuffer * | this, |
| SRPType | indicesType, | ||
| size_t | nBytesData, | ||
| const void * | data | ||
| ) |
Copy the vertex data over to vertex buffer
| [in] | this | The pointer to index buffer |
| [in] | indicesType | The type of indices passed by data. Must be one of TYPE_UINT8, TYPE_UINT16, TYPE_UINT32, TYPE_UIN64 |
| [in] | nBytesData | The size of index data |
| [in] | data | The pointer to an array of indices of type indicesType |
| SRPIndexBuffer * srpNewIndexBuffer | ( | ) |
Construct the index buffer
| SRPVertexBuffer * srpNewVertexBuffer | ( | ) |
Construct the vertex buffer.
| void srpVertexBufferCopyData | ( | SRPVertexBuffer * | this, |
| size_t | nBytesPerVertex, | ||
| size_t | nBytesData, | ||
| const void * | data | ||
| ) |
Copy the vertex data over to vertex buffer
| [in] | this | The pointer to vertex buffer |
| [in] | nBytesPerVertex | The size of one vertex, in bytes |
| [in] | nBytesData | The size of vertex data, in bytes |
| [in] | data | The pointer to vertex data |