lovr/src/modules/graphics/font.h

42 lines
1.4 KiB
C
Raw Normal View History

#include <stdbool.h>
#include <stdint.h>
2019-09-07 22:07:07 +00:00
#include <stddef.h>
2017-02-03 23:16:30 +00:00
2017-01-30 02:37:56 +00:00
#pragma once
2019-04-05 11:58:29 +00:00
struct Rasterizer;
struct Texture;
2017-03-16 03:12:56 +00:00
typedef enum {
ALIGN_LEFT,
ALIGN_CENTER,
ALIGN_RIGHT
2017-03-16 03:12:56 +00:00
} HorizontalAlign;
typedef enum {
ALIGN_TOP,
ALIGN_MIDDLE,
ALIGN_BOTTOM
2017-03-16 03:12:56 +00:00
} VerticalAlign;
2019-09-07 22:07:07 +00:00
typedef struct Font Font;
Font* lovrFontCreate(struct Rasterizer* rasterizer, uint32_t padding, double spread);
2018-02-26 08:59:03 +00:00
void lovrFontDestroy(void* ref);
2019-04-05 11:58:29 +00:00
struct Rasterizer* lovrFontGetRasterizer(Font* font);
2019-09-07 22:07:07 +00:00
struct Texture* lovrFontGetTexture(Font* font);
void lovrFontRender(Font* font, const char* str, size_t length, float wrap, HorizontalAlign halign, float* vertices, uint16_t* indices, uint16_t baseVertex);
2019-09-07 22:07:07 +00:00
void lovrFontMeasure(Font* font, const char* string, size_t length, float wrap, float* width, float* height, uint32_t* lineCount, uint32_t* glyphCount);
uint32_t lovrFontGetPadding(Font* font);
double lovrFontGetSpread(Font* font);
2017-03-16 08:12:32 +00:00
float lovrFontGetHeight(Font* font);
float lovrFontGetAscent(Font* font);
float lovrFontGetDescent(Font* font);
float lovrFontGetBaseline(Font* font);
2017-02-12 11:14:10 +00:00
float lovrFontGetLineHeight(Font* font);
void lovrFontSetLineHeight(Font* font, float lineHeight);
bool lovrFontIsFlipEnabled(Font* font);
void lovrFontSetFlipEnabled(Font* font, bool flip);
2019-05-21 03:35:07 +00:00
int32_t lovrFontGetKerning(Font* font, unsigned int a, unsigned int b);
2017-03-16 03:51:16 +00:00
float lovrFontGetPixelDensity(Font* font);
void lovrFontSetPixelDensity(Font* font, float pixelDensity);