mirror of https://github.com/bjornbytes/lovr.git
37 lines
1.3 KiB
C
37 lines
1.3 KiB
C
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
#include <stddef.h>
|
|
|
|
#pragma once
|
|
|
|
struct Blob;
|
|
struct Image;
|
|
|
|
typedef struct {
|
|
uint32_t x;
|
|
uint32_t y;
|
|
uint32_t w;
|
|
uint32_t h;
|
|
uint32_t tw;
|
|
uint32_t th;
|
|
int32_t dx;
|
|
int32_t dy;
|
|
int32_t advance;
|
|
struct Image* data;
|
|
} Glyph;
|
|
|
|
typedef struct Rasterizer Rasterizer;
|
|
Rasterizer* lovrRasterizerCreate(struct Blob* blob, float size);
|
|
void lovrRasterizerDestroy(void* ref);
|
|
float lovrRasterizerGetSize(Rasterizer* rasterizer);
|
|
int lovrRasterizerGetGlyphCount(Rasterizer* rasterizer);
|
|
int lovrRasterizerGetHeight(Rasterizer* rasterizer);
|
|
int lovrRasterizerGetAdvance(Rasterizer* rasterizer);
|
|
int lovrRasterizerGetAscent(Rasterizer* rasterizer);
|
|
int lovrRasterizerGetDescent(Rasterizer* rasterizer);
|
|
bool lovrRasterizerHasGlyph(Rasterizer* fontData, uint32_t character);
|
|
bool lovrRasterizerHasGlyphs(Rasterizer* fontData, const char* str);
|
|
void lovrRasterizerLoadGlyph(Rasterizer* fontData, uint32_t character, uint32_t padding, double spread, Glyph* glyph);
|
|
int32_t lovrRasterizerGetKerning(Rasterizer* fontData, uint32_t left, uint32_t right);
|
|
void lovrRasterizerMeasure(Rasterizer* rasterizer, const char* str, size_t length, float wrap, float* width, float* lastLineWidth, float* height, uint32_t* lineCount, uint32_t* glyphCount);
|