get pointers instead of copying data
parent
b92b8da6e4
commit
e93662f231
|
@ -103,14 +103,13 @@ WELLSPRINGAPI uint32_t Wellspring_PackFontRanges(
|
|||
uint32_t numRanges
|
||||
);
|
||||
|
||||
/* Copies pixel data into the given byte array.
|
||||
/* Returns a pointer to an array of rasterized pixels of the packed font.
|
||||
* This data must be uploaded to a texture before you render!
|
||||
* The pixel data also becomes outdated if you call PackFontRanges.
|
||||
* The pixel data becomes outdated if you call PackFontRanges.
|
||||
* Length is width * height.
|
||||
*/
|
||||
WELLSPRINGAPI void Wellspring_GetPixels(
|
||||
Wellspring_Packer *packer,
|
||||
uint8_t *pData
|
||||
WELLSPRINGAPI uint8_t* Wellspring_GetPixelDataPointer(
|
||||
Wellspring_Packer *packer
|
||||
);
|
||||
|
||||
/* Batches are not thread-safe, recommend one batch per thread. */
|
||||
|
@ -138,8 +137,10 @@ WELLSPRINGAPI void Wellspring_GetBufferLengths(
|
|||
|
||||
WELLSPRINGAPI void Wellspring_GetBufferData(
|
||||
Wellspring_TextBatch *textBatch,
|
||||
Wellspring_Vertex *pVertexBuffer,
|
||||
uint32_t *pIndexBuffer
|
||||
Wellspring_Vertex **pVertexBuffer,
|
||||
uint32_t *pVertexBufferLengthInBytes,
|
||||
uint32_t **pIndexBuffer,
|
||||
uint32_t *pIndexBufferLengthInBytes
|
||||
);
|
||||
|
||||
WELLSPRINGAPI void Wellspring_DestroyTextBatch(Wellspring_TextBatch *textBatch);
|
||||
|
|
|
@ -214,16 +214,11 @@ uint32_t Wellspring_PackFontRanges(
|
|||
return 1;
|
||||
}
|
||||
|
||||
void Wellspring_GetPixels(
|
||||
Wellspring_Packer *packer,
|
||||
uint8_t *pData
|
||||
uint8_t* Wellspring_GetPixelDataPointer(
|
||||
Wellspring_Packer *packer
|
||||
) {
|
||||
Packer* myPacker = (Packer*) packer;
|
||||
Wellspring_memcpy(
|
||||
pData,
|
||||
myPacker->pixels,
|
||||
sizeof(uint8_t) * myPacker->width * myPacker->height
|
||||
);
|
||||
return myPacker->pixels;
|
||||
}
|
||||
|
||||
Wellspring_TextBatch* Wellspring_CreateTextBatch()
|
||||
|
@ -389,20 +384,16 @@ void Wellspring_GetBufferLengths(
|
|||
|
||||
void Wellspring_GetBufferData(
|
||||
Wellspring_TextBatch *textBatch,
|
||||
Wellspring_Vertex *pVertexBuffer,
|
||||
uint32_t *pIndexBuffer
|
||||
Wellspring_Vertex **pVertexBuffer,
|
||||
uint32_t *pVertexBufferLengthInBytes,
|
||||
uint32_t **pIndexBuffer,
|
||||
uint32_t *pIndexBufferLengthInBytes
|
||||
) {
|
||||
Batch *batch = (Batch*) textBatch;
|
||||
Wellspring_memcpy(
|
||||
pVertexBuffer,
|
||||
batch->vertices,
|
||||
sizeof(Wellspring_Vertex) * batch->vertexCount
|
||||
);
|
||||
Wellspring_memcpy(
|
||||
pIndexBuffer,
|
||||
batch->indices,
|
||||
sizeof(uint32_t) * batch->indexCount
|
||||
);
|
||||
*pVertexBuffer = batch->vertices;
|
||||
*pVertexBufferLengthInBytes = batch->vertexCount * sizeof(Wellspring_Vertex);
|
||||
*pIndexBuffer = batch->indices;
|
||||
*pIndexBufferLengthInBytes = batch->indexCount * sizeof(uint32_t);
|
||||
}
|
||||
|
||||
void Wellspring_DestroyTextBatch(Wellspring_TextBatch *textBatch)
|
||||
|
|
Loading…
Reference in New Issue