53 lines
957 B
C
53 lines
957 B
C
#pragma once
|
|
|
|
#include <stdbool.h>
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
#include "./cache.h"
|
|
|
|
typedef enum {
|
|
GLYPHAS_ALIGNER_DIRECTION_HORIZONTAL,
|
|
GLYPHAS_ALIGNER_DIRECTION_VERTICAL,
|
|
} glyphas_aligner_direction_t;
|
|
|
|
typedef struct {
|
|
glyphas_aligner_direction_t dir;
|
|
int32_t lineheight;
|
|
int32_t maxpos;
|
|
|
|
int32_t pos;
|
|
int32_t line;
|
|
} glyphas_aligner_t;
|
|
|
|
void
|
|
glyphas_aligner_initialize(
|
|
glyphas_aligner_t* aligner,
|
|
glyphas_aligner_direction_t dir,
|
|
int32_t lineheight,
|
|
int32_t maxpos
|
|
);
|
|
|
|
void
|
|
glyphas_aligner_deinitialize(
|
|
glyphas_aligner_t* aligner
|
|
);
|
|
|
|
void
|
|
glyphas_aligner_reset(
|
|
glyphas_aligner_t* aligner
|
|
);
|
|
|
|
void
|
|
glyphas_aligner_push_character(
|
|
glyphas_aligner_t* aligner,
|
|
int32_t* x,
|
|
int32_t* y,
|
|
const glyphas_cache_glyph_t* g
|
|
);
|
|
|
|
void
|
|
glyphas_aligner_break_line(
|
|
glyphas_aligner_t* aligner
|
|
);
|