mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-07-19 07:31:30 -07:00
62 lines
1.3 KiB
C
62 lines
1.3 KiB
C
// Copyright (c) 2024 Epic Games Tools
|
|
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
|
|
|
#ifndef FONT_PROVIDER_H
|
|
#define FONT_PROVIDER_H
|
|
|
|
#define fp_hook C_LINKAGE
|
|
|
|
////////////////////////////////
|
|
//~ rjf: Types
|
|
|
|
typedef enum FP_RasterMode
|
|
{
|
|
FP_RasterMode_Sharp,
|
|
FP_RasterMode_Smooth,
|
|
FP_RasterMode_COUNT
|
|
}
|
|
FP_RasterMode;
|
|
|
|
typedef struct FP_Handle FP_Handle;
|
|
struct FP_Handle
|
|
{
|
|
U64 u64[2];
|
|
};
|
|
|
|
typedef struct FP_Metrics FP_Metrics;
|
|
struct FP_Metrics
|
|
{
|
|
F32 design_units_per_em;
|
|
F32 ascent;
|
|
F32 descent;
|
|
F32 line_gap;
|
|
F32 capital_height;
|
|
};
|
|
|
|
typedef struct FP_RasterResult FP_RasterResult;
|
|
struct FP_RasterResult
|
|
{
|
|
Vec2S16 atlas_dim;
|
|
void *atlas;
|
|
F32 advance;
|
|
S16 height;
|
|
};
|
|
|
|
////////////////////////////////
|
|
//~ rjf: Basic Type Functions
|
|
|
|
internal FP_Handle fp_handle_zero(void);
|
|
internal B32 fp_handle_match(FP_Handle a, FP_Handle b);
|
|
|
|
////////////////////////////////
|
|
//~ rjf: Backend Hooks
|
|
|
|
fp_hook void fp_init(void);
|
|
fp_hook FP_Handle fp_font_open(String8 path);
|
|
fp_hook FP_Handle fp_font_open_from_static_data_string(String8 *data_ptr);
|
|
fp_hook void fp_font_close(FP_Handle handle);
|
|
fp_hook FP_Metrics fp_metrics_from_font(FP_Handle font);
|
|
fp_hook NO_ASAN FP_RasterResult fp_raster(Arena *arena, FP_Handle font, F32 size, FP_RasterMode mode, String8 string);
|
|
|
|
#endif // FONT_PROVIDER_H
|