-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtex.h
More file actions
62 lines (42 loc) · 1.76 KB
/
tex.h
File metadata and controls
62 lines (42 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#ifndef TEX_TEX_H
#define TEX_TEX_H
#include <stddef.h>
#include "tex_types.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct TeX_Layout TeX_Layout;
typedef struct TeX_Renderer TeX_Renderer;
// Parse input, calculate layout, return handle
// Input string is modified during parsing
// Returns NULL only on catastrophic failure; check tex_get_last_error() for errors
TeX_Layout* tex_format(char* input, int width, TeX_Config* config);
// Total rendered height in pixels (for scrollbar sizing)
int tex_get_total_height(TeX_Layout* layout);
// Create a renderer with default slab size (40KB)
TeX_Renderer* tex_renderer_create(void);
// Create a renderer with custom slab size
TeX_Renderer* tex_renderer_create_sized(size_t slab_size);
// Destroy renderer and free slab
void tex_renderer_destroy(TeX_Renderer* r);
// Draw document slice to current draw buffer
// Uses windowed rendering: only parses visible portion + padding
void tex_draw(TeX_Renderer* r, TeX_Layout* layout, int x, int y, int scroll_y);
// Free all resources
void tex_free(TeX_Layout* layout);
// Get renderer pool statistics (pass NULL for any stat you dont need)
void tex_renderer_get_stats(TeX_Renderer* r, size_t* peak_used, size_t* capacity, size_t* alloc_count,
size_t* reset_count);
// Get error code from last operation
TeX_Error tex_get_last_error(TeX_Layout* layout);
// Get human-readable error message (static string, never NULL)
const char* tex_get_error_message(TeX_Layout* layout);
// Get error detail value (offset, depth, count, etc.)
int tex_get_error_value(TeX_Layout* layout);
struct fontlib_font_t;
typedef struct fontlib_font_t fontlib_font_t;
void tex_draw_set_fonts(fontlib_font_t* main, fontlib_font_t* script);
#ifdef __cplusplus
}
#endif
#endif // TEX_TEX_H