more API revisions
parent
a48c3f5b6b
commit
b92b8da6e4
|
@ -74,12 +74,6 @@ typedef struct Wellspring_FontRange
|
||||||
uint8_t oversampleV;
|
uint8_t oversampleV;
|
||||||
} Wellspring_FontRange;
|
} Wellspring_FontRange;
|
||||||
|
|
||||||
typedef struct Wellspring_GlyphQuad
|
|
||||||
{
|
|
||||||
float x0, y0, s0, t0; // top-left
|
|
||||||
float x1, y1, s1, t1; // bottom-right;
|
|
||||||
} Wellspring_GlyphQuad;
|
|
||||||
|
|
||||||
typedef struct Wellspring_Color
|
typedef struct Wellspring_Color
|
||||||
{
|
{
|
||||||
uint8_t r, g, b, a;
|
uint8_t r, g, b, a;
|
||||||
|
@ -95,7 +89,7 @@ typedef struct Wellspring_Vertex
|
||||||
/* API definition */
|
/* API definition */
|
||||||
|
|
||||||
WELLSPRINGAPI Wellspring_Packer* Wellspring_CreatePacker(
|
WELLSPRINGAPI Wellspring_Packer* Wellspring_CreatePacker(
|
||||||
uint8_t *fontBytes,
|
const uint8_t *fontBytes,
|
||||||
uint32_t fontBytesLength,
|
uint32_t fontBytesLength,
|
||||||
uint32_t width,
|
uint32_t width,
|
||||||
uint32_t height,
|
uint32_t height,
|
||||||
|
@ -109,22 +103,23 @@ WELLSPRINGAPI uint32_t Wellspring_PackFontRanges(
|
||||||
uint32_t numRanges
|
uint32_t numRanges
|
||||||
);
|
);
|
||||||
|
|
||||||
/* This data must be uploaded to a texture before you render!
|
/* Copies pixel data into the given byte array.
|
||||||
|
* This data must be uploaded to a texture before you render!
|
||||||
* The pixel data also becomes outdated if you call PackFontRanges.
|
* The pixel data also becomes outdated if you call PackFontRanges.
|
||||||
* Length is width * height.
|
* Length is width * height.
|
||||||
*/
|
*/
|
||||||
WELLSPRINGAPI void Wellspring_GetPixels(
|
WELLSPRINGAPI void Wellspring_GetPixels(
|
||||||
Wellspring_Packer *packer,
|
Wellspring_Packer *packer,
|
||||||
uint8_t **pData
|
uint8_t *pData
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Batches are not thread-safe, recommend one batch per thread. */
|
/* Batches are not thread-safe, recommend one batch per thread. */
|
||||||
WELLSPRINGAPI Wellspring_TextBatch* Wellspring_TextBatchCreate();
|
WELLSPRINGAPI Wellspring_TextBatch* Wellspring_CreateTextBatch();
|
||||||
|
|
||||||
/* Also restarts the batch */
|
/* Also restarts the batch */
|
||||||
WELLSPRINGAPI void Wellspring_TextBatchStart(Wellspring_TextBatch *textBatch);
|
WELLSPRINGAPI void Wellspring_StartTextBatch(Wellspring_TextBatch *textBatch);
|
||||||
|
|
||||||
WELLSPRINGAPI uint8_t Wellspring_DrawTextBatched(
|
WELLSPRINGAPI uint8_t Wellspring_Draw(
|
||||||
Wellspring_TextBatch *textBatch,
|
Wellspring_TextBatch *textBatch,
|
||||||
Wellspring_Packer *packer,
|
Wellspring_Packer *packer,
|
||||||
float x,
|
float x,
|
||||||
|
@ -135,20 +130,19 @@ WELLSPRINGAPI uint8_t Wellspring_DrawTextBatched(
|
||||||
uint32_t strLengthInBytes
|
uint32_t strLengthInBytes
|
||||||
);
|
);
|
||||||
|
|
||||||
WELLSPRINGAPI void Wellspring_TextBatchGetBufferLengths(
|
WELLSPRINGAPI void Wellspring_GetBufferLengths(
|
||||||
Wellspring_TextBatch *textBatch,
|
Wellspring_TextBatch *textBatch,
|
||||||
uint32_t *pVertexLength,
|
uint32_t *pVertexCount,
|
||||||
uint32_t *pIndexLength
|
uint32_t *pIndexCount
|
||||||
);
|
);
|
||||||
|
|
||||||
WELLSPRINGAPI void Wellspring_TextBatchGetBuffers(
|
WELLSPRINGAPI void Wellspring_GetBufferData(
|
||||||
Wellspring_TextBatch *textBatch,
|
Wellspring_TextBatch *textBatch,
|
||||||
Wellspring_Vertex **pVertexBuffer,
|
Wellspring_Vertex *pVertexBuffer,
|
||||||
uint32_t **pIndexBuffer
|
uint32_t *pIndexBuffer
|
||||||
);
|
);
|
||||||
|
|
||||||
WELLSPRINGAPI void Wellspring_TextBatchDestroy(Wellspring_TextBatch *textBatch);
|
WELLSPRINGAPI void Wellspring_DestroyTextBatch(Wellspring_TextBatch *textBatch);
|
||||||
|
|
||||||
WELLSPRINGAPI void Wellspring_DestroyPacker(Wellspring_Packer *packer);
|
WELLSPRINGAPI void Wellspring_DestroyPacker(Wellspring_Packer *packer);
|
||||||
|
|
||||||
/* Function defines */
|
/* Function defines */
|
||||||
|
|
|
@ -137,7 +137,7 @@ uint32_t Wellspring_LinkedVersion(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
Wellspring_Packer* Wellspring_CreatePacker(
|
Wellspring_Packer* Wellspring_CreatePacker(
|
||||||
uint8_t *fontBytes,
|
const uint8_t *fontBytes,
|
||||||
uint32_t fontBytesLength,
|
uint32_t fontBytesLength,
|
||||||
uint32_t width,
|
uint32_t width,
|
||||||
uint32_t height,
|
uint32_t height,
|
||||||
|
@ -216,13 +216,17 @@ uint32_t Wellspring_PackFontRanges(
|
||||||
|
|
||||||
void Wellspring_GetPixels(
|
void Wellspring_GetPixels(
|
||||||
Wellspring_Packer *packer,
|
Wellspring_Packer *packer,
|
||||||
uint8_t **pData
|
uint8_t *pData
|
||||||
) {
|
) {
|
||||||
Packer* myPacker = (Packer*) packer;
|
Packer* myPacker = (Packer*) packer;
|
||||||
*pData = myPacker->pixels;
|
Wellspring_memcpy(
|
||||||
|
pData,
|
||||||
|
myPacker->pixels,
|
||||||
|
sizeof(uint8_t) * myPacker->width * myPacker->height
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Wellspring_TextBatch* Wellspring_TextBatchCreate()
|
Wellspring_TextBatch* Wellspring_CreateTextBatch()
|
||||||
{
|
{
|
||||||
Batch *batch = Wellspring_malloc(sizeof(Batch));
|
Batch *batch = Wellspring_malloc(sizeof(Batch));
|
||||||
|
|
||||||
|
@ -237,14 +241,14 @@ Wellspring_TextBatch* Wellspring_TextBatchCreate()
|
||||||
return (Wellspring_TextBatch*) batch;
|
return (Wellspring_TextBatch*) batch;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Wellspring_TextBatchStart(Wellspring_TextBatch *textBatch)
|
void Wellspring_StartTextBatch(Wellspring_TextBatch *textBatch)
|
||||||
{
|
{
|
||||||
Batch *batch = (Batch*) textBatch;
|
Batch *batch = (Batch*) textBatch;
|
||||||
batch->vertexCount = 0;
|
batch->vertexCount = 0;
|
||||||
batch->indexCount = 0;
|
batch->indexCount = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t Wellspring_DrawTextBatched(
|
uint8_t Wellspring_Draw(
|
||||||
Wellspring_TextBatch *textBatch,
|
Wellspring_TextBatch *textBatch,
|
||||||
Wellspring_Packer *packer,
|
Wellspring_Packer *packer,
|
||||||
float x,
|
float x,
|
||||||
|
@ -373,27 +377,35 @@ uint8_t Wellspring_DrawTextBatched(
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Wellspring_TextBatchGetBufferLengths(
|
void Wellspring_GetBufferLengths(
|
||||||
Wellspring_TextBatch *textBatch,
|
Wellspring_TextBatch *textBatch,
|
||||||
uint32_t *pVertexLength,
|
uint32_t *pVertexCount,
|
||||||
uint32_t *pIndexLength
|
uint32_t *pIndexCount
|
||||||
) {
|
) {
|
||||||
Batch *batch = (Batch*) textBatch;
|
Batch *batch = (Batch*) textBatch;
|
||||||
*pVertexLength = batch->vertexCount;
|
*pVertexCount = batch->vertexCount;
|
||||||
*pIndexLength = batch->indexCount;
|
*pIndexCount = batch->indexCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Wellspring_TextBatchGetBuffers(
|
void Wellspring_GetBufferData(
|
||||||
Wellspring_TextBatch *textBatch,
|
Wellspring_TextBatch *textBatch,
|
||||||
Wellspring_Vertex **pVertexBuffer,
|
Wellspring_Vertex *pVertexBuffer,
|
||||||
uint32_t **pIndexBuffer
|
uint32_t *pIndexBuffer
|
||||||
) {
|
) {
|
||||||
Batch *batch = (Batch*) textBatch;
|
Batch *batch = (Batch*) textBatch;
|
||||||
*pVertexBuffer = batch->vertices;
|
Wellspring_memcpy(
|
||||||
*pIndexBuffer = batch->indices;
|
pVertexBuffer,
|
||||||
|
batch->vertices,
|
||||||
|
sizeof(Wellspring_Vertex) * batch->vertexCount
|
||||||
|
);
|
||||||
|
Wellspring_memcpy(
|
||||||
|
pIndexBuffer,
|
||||||
|
batch->indices,
|
||||||
|
sizeof(uint32_t) * batch->indexCount
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Wellspring_TextBatchDestroy(Wellspring_TextBatch *textBatch)
|
void Wellspring_DestroyTextBatch(Wellspring_TextBatch *textBatch)
|
||||||
{
|
{
|
||||||
Batch *batch = (Batch*) textBatch;
|
Batch *batch = (Batch*) textBatch;
|
||||||
Wellspring_free(batch->vertices);
|
Wellspring_free(batch->vertices);
|
||||||
|
|
Loading…
Reference in New Issue