libwebsockets
Lightweight C library for HTML5 websockets
Loading...
Searching...
No Matches
lws-dlo.h
Go to the documentation of this file.
1/*
2 * lws abstract display
3 *
4 * Copyright (C) 2019 - 2022 Andy Green <andy@warmcat.com>
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to
8 * deal in the Software without restriction, including without limitation the
9 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10 * sell copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in
14 * all copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
22 * IN THE SOFTWARE.
23 *
24 * lws display_list and display_list objects (dlo)
25 */
26
27#if !defined(__LWS_DLO_H__)
28#define __LWS_DLO_H__
29
30#include <stdint.h>
31
33struct lws_surface_info;
35struct lws_display_font;
36struct lws_dlo_text;
37struct lws_display;
38struct lws_dlo_text;
39struct lws_dlo;
40
41#define LWSDC_RGBA(_r, _g, _b, _a) (((uint32_t)(_r) & 0xff) | \
42 (((uint32_t)(_g) & 0xff) << 8) | \
43 (((uint32_t)(_b) & 0xff) << 16) | \
44 (((uint32_t)(_a) & 0xff) << 24))
45
46#define LWSDC_R(_c) ((_c) & 0xff)
47#define LWSDC_G(_c) ((_c >> 8) & 0xff)
48#define LWSDC_B(_c) ((_c >> 16) & 0xff)
49#define LWSDC_ALPHA(_c) ((_c >> 24) & 0xff)
50
51#define RGB_TO_Y(_r, _g, _b) ((((_r) * 299) + ((_g) * 587) + ((_b) * 114)) / 1000)
52/* stores Y in RGBY */
53#define PALETTE_RGBY(_r, _g, _b) LWSDC_RGBA(_r, _g, _b, (RGB_TO_Y(_r, _g, _b)))
54
55typedef struct {
59
60/*
61 * When using RGBA to describe native greyscale, R is Y and A is A, GB is ignored
62 */
63
64/* composed at start of larger, font-specific glyph struct */
65
66typedef struct lws_font_glyph {
68
73
74 int8_t x; /* x offset inside the glyph */
75
77
79typedef lws_font_glyph_t * (*lws_dlo_image_glyph_t)(
80 struct lws_dlo_text *text,
81 uint32_t unicode, char attach);
82typedef void (*lws_dlo_destroy_t)(struct lws_dlo *dlo);
83
84typedef struct lws_display_id {
86
87 char id[16];
88 lws_box_t box; /* taken from DLO after layout */
89
90 void *priv_user;
92
93 char exists;
94 char iframe; /* 1 = render html as if partial
95 * is the origin, otherwise
96 * render html with surface
97 * (0,0) as origin and rs->box
98 * is a viewport on to that */
100
101/*
102 * Common dlo object that joins the display list, composed into a subclass
103 * object like lws_dlo_rect_t etc
104 */
105
106typedef struct lws_dlo {
108
109 lws_dll2_t col_list; /* lws_dlo_t: column-mates */
110 lws_dll2_t row_list; /* lws_dlo_t: row-mates */
111
112 /* children are rendered "inside" the parent DLO box after allowing
113 * for parent padding */
115
116 /* only used for dlo rect representing whole table */
117
118 lws_dll2_owner_t table_cols; /* lhp_table_col_t */
119 lws_dll2_owner_t table_rows; /* lhp_table_row_t */
120
121 /* may point to dlo whose width or height decides our x or y */
122
125
126 lws_dlo_destroy_t _destroy; /* dlo-type specific cb */
127 lws_dlo_renderer_t render; /* dlo-type specific cb */
128
130 lws_fx_t padding[4]; /* child origin */
131
132 lws_display_id_t *id; /* only valid until ids destroyed */
133
136
137 uint8_t budget; /* limit spinning */
138
139 uint8_t flag_runon:1; /* continues same line */
141 uint8_t flag_toplevel:1; /* don't scan up with me (different owner) */
142
143 /* render-specific members ... */
145
146typedef struct lws_circle {
148
149 /* rasterization temps */
150 lws_fx_t orx; /* abs pixel x for centre */
151 lws_fx_t ory; /* abs pixel y for centre */
155
156typedef struct lws_dlo_rect {
158 lws_circle_t c[4]; /* t-l, t-r, b-l, b-r */
159 lws_fx_t b[4]; /* border width on t/r/b/l */
160 lws_display_colour_t dcb; /* border colour */
161
162 /* rasterization temps */
163
167
171
175
176typedef struct lws_font_choice {
177 const char *family_name;
178 const char *generic_name;
180 uint16_t style; /* normal, italic, oblique */
183
184typedef struct lws_display_font {
186
188
189 const uint8_t *data; /* may be cast to imp struct */
190 uint8_t *priv; /* only used by implementation */
191 size_t data_len;
194
195 lws_fx_t em; /* 1 em in pixels */
196 lws_fx_t ex; /* 1 ex in pixels */
198
199typedef struct lws_dlo_filesystem {
201
202 const char *name;
203 const void *data;
204 size_t len;
206
207#define LWSDLO_TEXT_FLAG_WRAP (1 << 0)
208
209typedef struct lws_dlo_text {
213 lws_box_t bounding_box; /* { 0, 0, w, h } relative
214 * to and subject to
215 * clipping by .dlo.box */
216
217 /* referred to by glyphs */
218 const struct lws_surface_info *ic;
219 struct lwsac *ac_glyphs;
222
223 char *text;
225 size_t text_len;
228
230
233 int16_t font_height;
235
238
241
247
248typedef struct lws_dlo_png {
249 lws_dlo_t dlo; /* ordering: first */
250 lws_flow_t flow; /* ordering: second */
251 char name[25];
254
255typedef struct lws_dlo_jpeg {
256 lws_dlo_t dlo; /* ordering: first */
257 lws_flow_t flow; /* ordering: second */
258 char name[25];
261
267
276
281
287
289 lws_dlo_t *dlo; /* position in dlo owner */
290 lws_box_t co; /* our origin as parent */
292
294 lws_sorted_usec_list_t sul; /* return to event loop statefully */
295 struct lws_display_state *lds; /* optional, if using lws_display */
296
298
299 const struct lws_surface_info *ic; /* display dimensions, palette */
300
301#if defined(LWS_ESP_PLATFORM)
302 lws_display_render_stack_t st[16]; /* DLO child stack */
303#else
304 lws_display_render_stack_t st[64]; /* DLO child stack */
305#endif
306 int sp; /* DLO child stack level */
307
308 uint8_t *line; /* Y or RGB line comp buffer */
309
311
314
315 char html;
316
318
319
322
325
328
331
334
337
348
349//#if defined(_DEBUG)
352//#endif
353
363lws_display_list_destroy(struct lws_context *cx, lws_displaylist_t *dl);
364
367
370
373
374/*
375 * lws_display_list_render_line() - render a single raster line of the list
376 *
377 * \param rs: prepared render state object
378 *
379 * Allocates a line pair buffer into ds->line if necessary, and renders the
380 * current line (set by ds->curr) of the display list rasterization into it
381 */
384
387
388/*
389 * rect
390 */
391
394 lws_box_t *box, const lws_fx_t *radii,
396
399
400/*
401 * dlo text
402 */
403
406 lws_box_t *box, const lws_display_font_t *font);
407
410 lws_fx_t indent, const char *utf8, size_t text_len);
411
414
415/*
416 * PNG
417 */
418
421 lws_box_t *box, const char *name, size_t len);
422
425
428
431
432/*
433 * JPEG
434 */
435
438 lws_box_t *box, const char *name, size_t len);
439
442
445
448
449/*
450 * SS / dlo images
451 */
452
453struct lhp_ctx;
454
469
472
474lws_dlo_ss_find(struct lws_context *cx, const char *url, lws_dlo_image_t *u);
475
477lhp_displaylist_layout(struct lhp_ctx *ctx, char reason);
478
479#define lws_dlo_image_width(_u) ((_u)->failed ? -1 : \
480 ((_u)->type == LWSDLOSS_TYPE_JPEG ? \
481 (int)lws_jpeg_get_width((_u)->u.dlo_jpeg->j) : \
482 (int)lws_upng_get_width((_u)->u.dlo_png->png)))
483#define lws_dlo_image_height(_u) ((_u)->failed ? -1 : \
484 ((_u)->type == LWSDLOSS_TYPE_JPEG ? \
485 (int)lws_jpeg_get_height((_u)->u.dlo_jpeg->j) : \
486 (int)lws_upng_get_height((_u)->u.dlo_png->png)))
487
488#define lws_dlo_image_metadata_scan(_u) ((_u)->failed ? LWS_SRET_FATAL : \
489 ((_u)->type == LWSDLOSS_TYPE_JPEG ? \
490 lws_display_dlo_jpeg_metadata_scan((_u)->u.dlo_jpeg) : \
491 lws_display_dlo_png_metadata_scan((_u)->u.dlo_png)))
492
493/*
494 * Font registry
495 *
496 * Register fonts (currently, psfu) to the lws_context, and select the closest
497 * matching. Used to pick fonts from whatever CSS information is available.
498 */
499
501lws_font_register(struct lws_context *cx, const uint8_t *data, size_t data_len);
502
504lws_font_choose(struct lws_context *cx, const lws_font_choice_t *hints);
505
507lws_fonts_destroy(struct lws_context *cx);
508
509/*
510 * Static blob registry (built-in, name-accessible blobs)
511 */
512
514lws_dlo_file_register(struct lws_context *cx, const lws_dlo_filesystem_t *f);
515
516/* only needed if f dynamically heap-allocated... doesn't free data; data
517 * is typically overallocated after the lws_dlo_filesystem_t and freed when
518 * that is freed by this. */
519
522
524lws_dlo_file_unregister_by_name(struct lws_context *cx, const char *name);
525
527lws_dlo_file_choose(struct lws_context *cx, const char *name);
528
530lws_dlo_file_destroy(struct lws_context *cx);
531
532LWS_VISIBLE extern const struct lws_plat_file_ops lws_dlo_fops;
533#endif
struct lws_dll2 lws_dll2_t
struct lws_dll2_owner lws_dll2_owner_t
struct lws_flow lws_flow_t
unsigned short uint16_t
unsigned int uint32_t
#define LWS_EXTERN
unsigned char uint8_t
struct lws_fixed3232 lws_fx_t
lws_stateful_ret_t
#define LWS_VISIBLE
uint32_t lws_display_colour_t
Definition lws-display.h:31
int16_t lws_display_list_coord_t
Definition lws-display.h:28
uint16_t lws_display_scalar
Definition lws-display.h:29
struct lws_box lws_box_t
lws_flow_t flow
Definition lws-dlo.h:257
uint8_t init
Definition lws-dlo.h:168
LWS_VISIBLE LWS_EXTERN int lws_display_dlo_text_update(lws_dlo_text_t *text, lws_display_colour_t dc, lws_fx_t indent, const char *utf8, size_t text_len)
int16_t font_line_height
Definition lws-dlo.h:234
lws_display_colour_t dc
Definition lws-dlo.h:135
LWS_VISIBLE LWS_EXTERN lws_dlo_filesystem_t * lws_dlo_file_register(struct lws_context *cx, const lws_dlo_filesystem_t *f)
uint8_t * kern
Definition lws-dlo.h:224
LWS_VISIBLE LWS_EXTERN const lws_display_font_t * lws_font_choose(struct lws_context *cx, const lws_font_choice_t *hints)
lws_font_glyph_t *(* lws_dlo_image_glyph_t)(struct lws_dlo_text *text, uint32_t unicode, char attach)
Definition lws-dlo.h:79
LWS_VISIBLE LWS_EXTERN int lws_dlo_ss_find(struct lws_context *cx, const char *url, lws_dlo_image_t *u)
lws_fx_t em
Definition lws-dlo.h:195
lws_displaylist_t * dl
Definition lws-dlo.h:283
uint16_t curr
Definition lws-dlo.h:221
LWS_VISIBLE LWS_EXTERN void lws_display_dl_init(lws_displaylist_t *dl, struct lws_display_state *ds)
lws_display_render_stack_t st[64]
Definition lws-dlo.h:304
void * priv_user
Definition lws-dlo.h:90
LWS_VISIBLE LWS_EXTERN void lws_dlo_contents(lws_dlo_t *parent, lws_dlo_dim_t *dim)
lws_displaylist_t displaylist
Definition lws-dlo.h:310
size_t text_len
Definition lws-dlo.h:225
struct lws_dlo * abut_x
Definition lws-dlo.h:123
LWS_VISIBLE LWS_EXTERN void lws_display_dl_dump(lws_displaylist_t *dl)
const char * name
Definition lws-dlo.h:202
lws_box_t box
Definition lws-dlo.h:88
LWS_VISIBLE LWS_EXTERN lws_dlo_png_t * lws_display_dlo_png_new(lws_displaylist_t *dl, lws_dlo_t *dlo_parent, lws_box_t *box, const char *name, size_t len)
struct lhp_ctx * lhp
Definition lws-dlo.h:463
LWS_VISIBLE const struct lws_plat_file_ops lws_dlo_fops
struct lws_dlo_jpeg lws_dlo_jpeg_t
lws_upng_t * png
Definition lws-dlo.h:252
lws_display_scalar lowest_id_y
Definition lws-dlo.h:313
lws_fx_t height
Definition lws-dlo.h:71
lws_fx_t indent
Definition lws-dlo.h:229
struct lwsac * ac_glyphs
Definition lws-dlo.h:219
lws_dlo_image_type_t
Definition lws-dlo.h:262
@ LWSDLOSS_TYPE_JPEG
Definition lws-dlo.h:263
@ LWSDLOSS_TYPE_CSS
Definition lws-dlo.h:265
@ LWSDLOSS_TYPE_PNG
Definition lws-dlo.h:264
uint16_t style
Definition lws-dlo.h:180
lws_dll2_t list
Definition lws-dlo.h:200
LWS_VISIBLE LWS_EXTERN void lws_display_dlo_jpeg_destroy(struct lws_dlo *dlo)
lws_sorted_usec_list_t sul
Definition lws-dlo.h:294
lws_fx_t btm
Definition lws-dlo.h:164
LWS_VISIBLE LWS_EXTERN lws_stateful_ret_t lws_display_get_ids_boxes(lws_display_render_state_t *rs)
lws_dll2_t list
Definition lws-dlo.h:185
LWS_VISIBLE LWS_EXTERN int lws_dlo_ensure_err_diff(lws_dlo_t *dlo)
lws_fx_t r
Definition lws-dlo.h:147
int16_t group_height
Definition lws-dlo.h:236
lws_dlo_renderer_t render
Definition lws-dlo.h:127
int16_t font_height
Definition lws-dlo.h:233
uint8_t flag_toplevel
Definition lws-dlo.h:141
LWS_VISIBLE LWS_EXTERN void lws_display_dlo_text_destroy(struct lws_dlo *dlo)
lws_display_list_coord_t clkernpx
Definition lws-dlo.h:226
lws_dlo_t dlo
Definition lws-dlo.h:157
lws_dll2_owner_t dl
Definition lws-dlo.h:278
lws_dll2_owner_t glyphs
Definition lws-dlo.h:212
lws_display_id_t * id
Definition lws-dlo.h:132
const void * data
Definition lws-dlo.h:203
const struct lws_surface_info * ic
Definition lws-dlo.h:299
struct lws_display_id lws_display_id_t
LWS_VISIBLE LWS_EXTERN void lws_display_render_dump_ids(lws_dll2_owner_t *ids)
struct lws_context * cx
Definition lws-dlo.h:456
LWS_VISIBLE LWS_EXTERN lws_dlo_rect_t * lws_display_dlo_rect_new(lws_displaylist_t *dl, lws_dlo_t *dlo_parent, lws_box_t *box, const lws_fx_t *radii, lws_display_colour_t dc)
lws_jpeg_t * j
Definition lws-dlo.h:259
void(* lws_dlo_destroy_t)(struct lws_dlo *dlo)
Definition lws-dlo.h:82
lws_fx_t ex
Definition lws-dlo.h:196
const char * generic_name
Definition lws-dlo.h:178
size_t data_len
Definition lws-dlo.h:191
LWS_VISIBLE LWS_EXTERN int lws_font_register(struct lws_context *cx, const uint8_t *data, size_t data_len)
const uint8_t * data
Definition lws-dlo.h:189
lws_dlo_jpeg_t * dlo_jpeg
struct lws_font_choice lws_font_choice_t
uint16_t fixed_height
Definition lws-dlo.h:181
LWS_VISIBLE LWS_EXTERN void lws_display_dlo_destroy(lws_dlo_t **r)
lws_displaylist_t * dl
Definition lws-dlo.h:457
lws_dlo_t * dlo_parent
Definition lws-dlo.h:458
lws_dlo_t dlo
Definition lws-dlo.h:256
lws_sorted_usec_list_t sul
Definition lws-dlo.h:244
lws_dll2_t col_list
Definition lws-dlo.h:109
lws_dll2_owner_t table_rows
Definition lws-dlo.h:119
lws_sorted_usec_list_t * on_rx_sul
Definition lws-dlo.h:461
lws_fx_t rsq
Definition lws-dlo.h:152
struct lws_dlo_filesystem lws_dlo_filesystem_t
struct lws_display_font lws_display_font_t
int16_t group_y_baseline
Definition lws-dlo.h:237
LWS_VISIBLE LWS_EXTERN lws_display_id_t * lws_display_render_get_id(lws_display_render_state_t *rs, const char *id)
LWS_VISIBLE LWS_EXTERN void lws_dlo_file_unregister(lws_dlo_filesystem_t **f)
lws_fx_t cwidth
Definition lws-dlo.h:72
struct lws_dlo_png lws_dlo_png_t
LWS_VISIBLE LWS_EXTERN lws_stateful_ret_t lws_display_list_render_line(lws_display_render_state_t *rs)
lws_fx_t _cwidth
Definition lws-dlo.h:239
LWS_VISIBLE LWS_EXTERN lws_dlo_text_t * lws_display_dlo_text_new(lws_displaylist_t *dl, lws_dlo_t *dlo_parent, lws_box_t *box, const lws_display_font_t *font)
uint32_t flags
Definition lws-dlo.h:231
struct lws_dlo_rect lws_dlo_rect_t
lws_dll2_owner_t ids
Definition lws-dlo.h:297
uint16_t weight
Definition lws-dlo.h:179
lws_dlo_t dlo
Definition lws-dlo.h:173
LWS_VISIBLE LWS_EXTERN void lws_dlo_file_unregister_by_name(struct lws_context *cx, const char *name)
lws_dll2_t list
Definition lws-dlo.h:67
const struct lws_surface_info * ic
Definition lws-dlo.h:218
struct lws_display_state * ds
Definition lws-dlo.h:279
LWS_VISIBLE LWS_EXTERN lws_stateful_ret_t lws_display_dlo_png_metadata_scan(lws_dlo_png_t *dp)
uint8_t alt
Definition lws-dlo.h:169
lws_dlo_t dlo
Definition lws-dlo.h:210
lws_fx_t w
Definition lws-dlo.h:56
lws_dlo_image_t * u
Definition lws-dlo.h:464
LWS_VISIBLE LWS_EXTERN int lws_dlo_ss_create(lws_dlo_ss_create_info_t *i, lws_dlo_t **pdlo)
lws_box_t bounding_box
Definition lws-dlo.h:213
lws_fx_t right
Definition lws-dlo.h:165
lws_dlo_image_type_t type
Definition lws-dlo.h:273
lws_fx_t b[4]
Definition lws-dlo.h:159
lws_box_t db
Definition lws-dlo.h:166
lws_display_list_coord_t cwidth
Definition lws-dlo.h:227
const lws_display_font_t * font
Definition lws-dlo.h:211
lws_fx_t padding[4]
Definition lws-dlo.h:130
LWS_VISIBLE LWS_EXTERN const lws_dlo_filesystem_t * lws_dlo_file_choose(struct lws_context *cx, const char *name)
LWS_VISIBLE LWS_EXTERN void lws_display_dlo_adjust_dims(lws_dlo_t *dlo, lws_dlo_dim_t *dim)
lws_display_scalar curr
Definition lws-dlo.h:312
lws_circle_t c[4]
Definition lws-dlo.h:158
lws_dlo_destroy_t _destroy
Definition lws-dlo.h:126
struct lws_display_state * lds
Definition lws-dlo.h:295
lws_fx_t xpx
Definition lws-dlo.h:70
LWS_VISIBLE LWS_EXTERN int lws_display_dlo_add(lws_displaylist_t *dl, lws_dlo_t *dlo_parent, lws_dlo_t *dlo)
LWS_VISIBLE LWS_EXTERN lws_stateful_ret_t lws_display_render_png(struct lws_display_render_state *rs)
lws_dlo_renderer_t renderer
Definition lws-dlo.h:192
LWS_VISIBLE LWS_EXTERN void lws_fonts_destroy(struct lws_context *cx)
struct lws_dlo_circle lws_dlo_circle_t
lws_dlo_t dlo
Definition lws-dlo.h:249
uint8_t budget
Definition lws-dlo.h:137
LWS_VISIBLE LWS_EXTERN void lws_display_dlo_png_destroy(struct lws_dlo *dlo)
LWS_VISIBLE LWS_EXTERN lws_dlo_jpeg_t * lws_display_dlo_jpeg_new(lws_displaylist_t *dl, lws_dlo_t *dlo_parent, lws_box_t *box, const char *name, size_t len)
lws_dlo_image_glyph_t image_glyph
Definition lws-dlo.h:193
uint8_t flag_done_align
Definition lws-dlo.h:140
lws_font_choice_t choice
Definition lws-dlo.h:187
int16_t font_y_baseline
Definition lws-dlo.h:232
LWS_VISIBLE LWS_EXTERN lws_stateful_ret_t lws_display_dlo_jpeg_metadata_scan(lws_dlo_jpeg_t *dj)
char name[25]
Definition lws-dlo.h:258
lws_flow_t flow
Definition lws-dlo.h:250
lws_display_colour_t dcb
Definition lws-dlo.h:160
struct lws_circle lws_circle_t
lws_dll2_owner_t children
Definition lws-dlo.h:114
lws_stateful_ret_t(* lws_dlo_renderer_t)(struct lws_display_render_state *rs)
Definition lws-dlo.h:78
lws_fx_t margin[4]
Definition lws-dlo.h:129
char * text
Definition lws-dlo.h:223
LWS_VISIBLE LWS_EXTERN lws_stateful_ret_t lws_display_render_jpeg(struct lws_display_render_state *rs)
lws_dll2_t list
Definition lws-dlo.h:107
lws_fx_t orx
Definition lws-dlo.h:150
void * priv_driver
Definition lws-dlo.h:91
lws_dll2_owner_t owner
Definition lws-dlo.h:243
char name[25]
Definition lws-dlo.h:251
lws_dlo_png_t * dlo_png
lws_dll2_t row_list
Definition lws-dlo.h:110
struct lws_dl_rend lws_dl_rend_t
lws_fx_t ys
Definition lws-dlo.h:153
LWS_VISIBLE LWS_EXTERN lws_stateful_ret_t lws_display_render_rect(struct lws_display_render_state *rs)
uint8_t flag_runon
Definition lws-dlo.h:139
const char * family_name
Definition lws-dlo.h:177
LWS_VISIBLE LWS_EXTERN void lws_display_list_destroy(struct lws_context *cx, lws_displaylist_t *dl)
struct lws_font_glyph lws_font_glyph_t
lws_fx_t ory
Definition lws-dlo.h:151
LWS_VISIBLE LWS_EXTERN lws_display_id_t * lws_display_render_add_id(lws_display_render_state_t *rs, const char *id, void *priv)
lws_box_t box
Definition lws-dlo.h:134
struct lws_dlo lws_dlo_t
struct lws_dlo_rasterize lws_dlo_rasterize_t
lws_dll2_owner_t table_cols
Definition lws-dlo.h:118
lws_dll2_t list
Definition lws-dlo.h:85
uint8_t * priv
Definition lws-dlo.h:190
LWS_VISIBLE LWS_EXTERN lws_stateful_ret_t lhp_displaylist_layout(struct lhp_ctx *ctx, char reason)
lws_fx_t h
Definition lws-dlo.h:57
struct lws_dlo * abut_y
Definition lws-dlo.h:124
LWS_VISIBLE LWS_EXTERN void lws_display_render_free_ids(lws_display_render_state_t *rs)
struct lws_dlo_text lws_dlo_text_t
struct lws_displaylist lws_displaylist_t
struct lws_display_render_stack lws_display_render_stack_t
uint8_t * line
Definition lws-dlo.h:220
LWS_VISIBLE LWS_EXTERN void lws_dlo_file_destroy(struct lws_context *cx)
struct lws_display_render_state lws_display_render_state_t
lws_fx_t xorg
Definition lws-dlo.h:69
union lhp_ctx::@177372350175354365242210324107053033053136025331 u
struct lws_jpeg lws_jpeg_t
Definition lws-jpeg.h:36
void(* sul_cb_t)(struct lws_sorted_usec_list *sul)
struct lws_sorted_usec_list lws_sorted_usec_list_t
struct lws_upng_t lws_upng_t
Definition lws-upng.h:51