| Flutter Impeller |

impeller.h
Go to the documentation of this file.
1 // Copyright 2013 The Flutter Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef FLUTTER_IMPELLER_TOOLKIT_INTEROP_IMPELLER_H_
6 #define FLUTTER_IMPELLER_TOOLKIT_INTEROP_IMPELLER_H_
7
8 #include <stdbool.h>
9 #include <stddef.h>
10 #include <stdint.h>
11
12 #if defined(__cplusplus)
13 #define IMPELLER_EXTERN_C extern "C"
14 #define IMPELLER_EXTERN_C_BEGIN IMPELLER_EXTERN_C {
15 #define IMPELLER_EXTERN_C_END }
16 #else // defined(__cplusplus)
17 #define IMPELLER_EXTERN_C
18 #define IMPELLER_EXTERN_C_BEGIN
19 #define IMPELLER_EXTERN_C_END
20 #endif // defined(__cplusplus)
21
22 #ifdef _WIN32
23 #define IMPELLER_EXPORT_DECORATION __declspec(dllexport)
24 #else
25 #define IMPELLER_EXPORT_DECORATION __attribute__((visibility("default")))
26 #endif
27
28 #ifndef IMPELLER_NO_EXPORT
29 #define IMPELLER_EXPORT IMPELLER_EXPORT_DECORATION
30 #else // IMPELLER_NO_EXPORT
31 #define IMPELLER_EXPORT
32 #endif // IMPELLER_NO_EXPORT
33
34 #ifdef __clang__
35 #define IMPELLER_NULLABLE _Nullable
36 #define IMPELLER_NONNULL _Nonnull
37 #else // __clang__
38 #define IMPELLER_NULLABLE
39 #define IMPELLER_NONNULL
40 #endif // __clang__
41
42 #if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 202000L)
43 #define IMPELLER_NODISCARD [[nodiscard]]
44 #else // defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 202000L)
45 #define IMPELLER_NODISCARD
46 #endif // defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 202000L)
47
48 IMPELLER_EXTERN_C_BEGIN
49
50 //------------------------------------------------------------------------------
51 // Versioning
52 //------------------------------------------------------------------------------
53
54 #define IMPELLER_MAKE_VERSION(variant, major, minor, patch) \
55 ((((uint32_t)(variant)) << 29U) | (((uint32_t)(major)) << 22U) | \
56 (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
57
58 #define IMPELLER_VERSION_VARIANT 1
59 #define IMPELLER_VERSION_MAJOR 1
60 #define IMPELLER_VERSION_MINOR 2
61 #define IMPELLER_VERSION_PATCH 0
62
63 #define IMPELLER_VERSION \
64 IMPELLER_MAKE_VERSION(IMPELLER_VERSION_VARIANT, IMPELLER_VERSION_MAJOR, \
65 IMPELLER_VERSION_MINOR, IMPELLER_VERSION_PATCH)
66
67 #define IMPELLER_VERSION_GET_VARIANT(version) ((uint32_t)(version) >> 29U)
68 #define IMPELLER_VERSION_GET_MAJOR(version) \
69 (((uint32_t)(version) >> 22U) & 0x7FU)
70 #define IMPELLER_VERSION_GET_MINOR(version) \
71 (((uint32_t)(version) >> 12U) & 0x3FFU)
72 #define IMPELLER_VERSION_GET_PATCH(version) ((uint32_t)(version) & 0xFFFU)
73
74 //------------------------------------------------------------------------------
75 // Handles
76 //------------------------------------------------------------------------------
77
78 #define IMPELLER_INTERNAL_HANDLE_NAME(handle) handle##_
79 #define IMPELLER_DEFINE_HANDLE(handle) \
80 typedef struct IMPELLER_INTERNAL_HANDLE_NAME(handle) * handle;
81
82 IMPELLER_DEFINE_HANDLE(ImpellerColorFilter);
83 IMPELLER_DEFINE_HANDLE(ImpellerColorSource);
84 IMPELLER_DEFINE_HANDLE(ImpellerContext);
85 IMPELLER_DEFINE_HANDLE(ImpellerDisplayList);
86 IMPELLER_DEFINE_HANDLE(ImpellerDisplayListBuilder);
87 IMPELLER_DEFINE_HANDLE(ImpellerImageFilter);
88 IMPELLER_DEFINE_HANDLE(ImpellerMaskFilter);
89 IMPELLER_DEFINE_HANDLE(ImpellerPaint);
90 IMPELLER_DEFINE_HANDLE(ImpellerParagraph);
91 IMPELLER_DEFINE_HANDLE(ImpellerParagraphBuilder);
92 IMPELLER_DEFINE_HANDLE(ImpellerParagraphStyle);
93 IMPELLER_DEFINE_HANDLE(ImpellerPath);
94 IMPELLER_DEFINE_HANDLE(ImpellerPathBuilder);
95 IMPELLER_DEFINE_HANDLE(ImpellerSurface);
96 IMPELLER_DEFINE_HANDLE(ImpellerTexture);
97 IMPELLER_DEFINE_HANDLE(ImpellerTypographyContext);
98
99 //------------------------------------------------------------------------------
100 // Signatures
101 //------------------------------------------------------------------------------
102
103 typedef void (*ImpellerCallback)(void* IMPELLER_NULLABLE user_data);
104 typedef void* IMPELLER_NULLABLE (*ImpellerProcAddressCallback)(
105 const char* IMPELLER_NONNULL proc_name,
106 void* IMPELLER_NULLABLE user_data);
107
108 //------------------------------------------------------------------------------
109 // Enumerations
110 //------------------------------------------------------------------------------
111 typedef enum ImpellerFillType {
112 kImpellerFillTypeNonZero,
113 kImpellerFillTypeOdd,
114 } ImpellerFillType;
115
116 typedef enum ImpellerClipOperation {
117 kImpellerClipOperationDifference,
118 kImpellerClipOperationIntersect,
119 } ImpellerClipOperation;
120
121 typedef enum ImpellerBlendMode {
122 kImpellerBlendModeClear,
123 kImpellerBlendModeSource,
124 kImpellerBlendModeDestination,
125 kImpellerBlendModeSourceOver,
126 kImpellerBlendModeDestinationOver,
127 kImpellerBlendModeSourceIn,
128 kImpellerBlendModeDestinationIn,
129 kImpellerBlendModeSourceOut,
130 kImpellerBlendModeDestinationOut,
131 kImpellerBlendModeSourceATop,
132 kImpellerBlendModeDestinationATop,
133 kImpellerBlendModeXor,
134 kImpellerBlendModePlus,
135 kImpellerBlendModeModulate,
136 kImpellerBlendModeScreen,
137 kImpellerBlendModeOverlay,
138 kImpellerBlendModeDarken,
139 kImpellerBlendModeLighten,
140 kImpellerBlendModeColorDodge,
141 kImpellerBlendModeColorBurn,
142 kImpellerBlendModeHardLight,
143 kImpellerBlendModeSoftLight,
144 kImpellerBlendModeDifference,
145 kImpellerBlendModeExclusion,
146 kImpellerBlendModeMultiply,
147 kImpellerBlendModeHue,
148 kImpellerBlendModeSaturation,
149 kImpellerBlendModeColor,
150 kImpellerBlendModeLuminosity,
151 } ImpellerBlendMode;
152
153 typedef enum ImpellerDrawStyle {
154 kImpellerDrawStyleFill,
155 kImpellerDrawStyleStroke,
156 kImpellerDrawStyleStrokeAndFill,
157 } ImpellerDrawStyle;
158
159 typedef enum ImpellerStrokeCap {
160 kImpellerStrokeCapButt,
161 kImpellerStrokeCapRound,
162 kImpellerStrokeCapSquare,
163 } ImpellerStrokeCap;
164
165 typedef enum ImpellerStrokeJoin {
166 kImpellerStrokeJoinMiter,
167 kImpellerStrokeJoinRound,
168 kImpellerStrokeJoinBevel,
169 } ImpellerStrokeJoin;
170
171 typedef enum ImpellerPixelFormat {
172 kImpellerPixelFormatRGBA8888,
173 } ImpellerPixelFormat;
174
175 typedef enum ImpellerTextureSampling {
176 kImpellerTextureSamplingNearestNeighbor,
177 kImpellerTextureSamplingLinear,
178 } ImpellerTextureSampling;
179
180 typedef enum ImpellerTileMode {
181 kImpellerTileModeClamp,
182 kImpellerTileModeRepeat,
183 kImpellerTileModeMirror,
184 kImpellerTileModeDecal,
185 } ImpellerTileMode;
186
187 typedef enum ImpellerBlurStyle {
188 kImpellerBlurStyleNormal,
189 kImpellerBlurStyleSolid,
190 kImpellerBlurStyleOuter,
191 kImpellerBlurStyleInner,
192 } ImpellerBlurStyle;
193
194 typedef enum ImpellerColorSpace {
195 kImpellerColorSpaceSRGB,
196 kImpellerColorSpaceExtendedSRGB,
197 kImpellerColorSpaceDisplayP3,
198 } ImpellerColorSpace;
199
200 typedef enum ImpellerFontWeight {
201 kImpellerFontWeight100, // Thin
202 kImpellerFontWeight200, // Extra-Light
203 kImpellerFontWeight300, // Light
204 kImpellerFontWeight400, // Normal/Regular
205 kImpellerFontWeight500, // Medium
206 kImpellerFontWeight600, // Semi-bold
207 kImpellerFontWeight700, // Bold
208 kImpellerFontWeight800, // Extra-Bold
209 kImpellerFontWeight900, // Black
210 } ImpellerFontWeight;
211
212 typedef enum ImpellerFontStyle {
213 kImpellerFontStyleNormal,
214 kImpellerFontStyleItalic,
215 } ImpellerFontStyle;
216
217 typedef enum ImpellerTextAlignment {
218 kImpellerTextAlignmentLeft,
219 kImpellerTextAlignmentRight,
220 kImpellerTextAlignmentCenter,
221 kImpellerTextAlignmentJustify,
222 kImpellerTextAlignmentStart,
223 kImpellerTextAlignmentEnd,
224 } ImpellerTextAlignment;
225
226 typedef enum ImpellerTextDirection {
227 kImpellerTextDirectionRTL,
228 kImpellerTextDirectionLTR,
229 } ImpellerTextDirection;
230
231 //------------------------------------------------------------------------------
232 // Non-opaque structs
233 //------------------------------------------------------------------------------
234 typedef struct ImpellerRect {
235 float x;
236 float y;
237 float width;
238 float height;
239 } ImpellerRect;
240
241 typedef struct ImpellerPoint {
242 float x;
243 float y;
244 } ImpellerPoint;
245
246 typedef struct ImpellerSize {
247 float width;
248 float height;
249 } ImpellerSize;
250
251 typedef struct ImpellerISize {
252 int64_t width;
253 int64_t height;
254 } ImpellerISize;
255
256 typedef struct ImpellerMatrix {
257 float m[16];
258 } ImpellerMatrix;
259
260 typedef struct ImpellerColorMatrix {
261 float m[20];
262 } ImpellerColorMatrix;
263
264 typedef struct ImpellerRoundingRadii {
265 ImpellerPoint top_left;
266 ImpellerPoint bottom_left;
267 ImpellerPoint top_right;
268 ImpellerPoint bottom_right;
269 } ImpellerRoundingRadii;
270
271 typedef struct ImpellerColor {
272 float red;
273 float green;
274 float blue;
275 float alpha;
276 ImpellerColorSpace color_space;
277 } ImpellerColor;
278
279 typedef struct ImpellerTextureDescriptor {
280 ImpellerPixelFormat pixel_format;
281 ImpellerISize size;
282 uint32_t mip_count;
283 } ImpellerTextureDescriptor;
284
285 typedef struct ImpellerMapping {
286 const uint8_t* IMPELLER_NONNULL data;
287 uint64_t length;
288 ImpellerCallback IMPELLER_NULLABLE on_release;
289 } ImpellerMapping;
290
291 //------------------------------------------------------------------------------
292 // Version
293 //------------------------------------------------------------------------------
294
295 IMPELLER_EXPORT
296 uint32_t ImpellerGetVersion();
297
298 //------------------------------------------------------------------------------
299 // Context
300 //------------------------------------------------------------------------------
301
302 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerContext IMPELLER_NULLABLE
303 ImpellerContextCreateOpenGLESNew(
304 uint32_t version,
305 ImpellerProcAddressCallback IMPELLER_NONNULL gl_proc_address_callback,
306 void* IMPELLER_NULLABLE gl_proc_address_callback_user_data);
307
308 IMPELLER_EXPORT
309 void ImpellerContextRetain(ImpellerContext IMPELLER_NULLABLE context);
310
311 IMPELLER_EXPORT
312 void ImpellerContextRelease(ImpellerContext IMPELLER_NULLABLE context);
313
314 //------------------------------------------------------------------------------
315 // Surface
316 //------------------------------------------------------------------------------
317
318 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerSurface IMPELLER_NULLABLE
319 ImpellerSurfaceCreateWrappedFBONew(ImpellerContext IMPELLER_NULLABLE context,
320 uint64_t fbo,
321 ImpellerPixelFormat format,
322 const ImpellerISize* IMPELLER_NULLABLE size);
323
324 IMPELLER_EXPORT
325 void ImpellerSurfaceRetain(ImpellerSurface IMPELLER_NULLABLE surface);
326
327 IMPELLER_EXPORT
328 void ImpellerSurfaceRelease(ImpellerSurface IMPELLER_NULLABLE surface);
329
330 IMPELLER_EXPORT
331 bool ImpellerSurfaceDrawDisplayList(
332 ImpellerSurface IMPELLER_NULLABLE surface,
333 ImpellerDisplayList IMPELLER_NONNULL display_list);
334
335 //------------------------------------------------------------------------------
336 // Path
337 //------------------------------------------------------------------------------
338
339 IMPELLER_EXPORT
340 void ImpellerPathRetain(ImpellerPath IMPELLER_NULLABLE path);
341
342 IMPELLER_EXPORT
343 void ImpellerPathRelease(ImpellerPath IMPELLER_NULLABLE path);
344
345 //------------------------------------------------------------------------------
346 // Path Builder
347 //------------------------------------------------------------------------------
348
349 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerPathBuilder IMPELLER_NULLABLE
350 ImpellerPathBuilderNew();
351
352 IMPELLER_EXPORT
353 void ImpellerPathBuilderRetain(ImpellerPathBuilder IMPELLER_NULLABLE builder);
354
355 IMPELLER_EXPORT
356 void ImpellerPathBuilderRelease(ImpellerPathBuilder IMPELLER_NULLABLE builder);
357
358 IMPELLER_EXPORT
359 void ImpellerPathBuilderMoveTo(ImpellerPathBuilder IMPELLER_NONNULL builder,
360 const ImpellerPoint* IMPELLER_NONNULL location);
361
362 IMPELLER_EXPORT
363 void ImpellerPathBuilderLineTo(ImpellerPathBuilder IMPELLER_NONNULL builder,
364 const ImpellerPoint* IMPELLER_NONNULL location);
365
366 IMPELLER_EXPORT
367 void ImpellerPathBuilderQuadraticCurveTo(
368 ImpellerPathBuilder IMPELLER_NONNULL builder,
369 const ImpellerPoint* IMPELLER_NONNULL control_point,
370 const ImpellerPoint* IMPELLER_NONNULL end_point);
371
372 IMPELLER_EXPORT
373 void ImpellerPathBuilderCubicCurveTo(
374 ImpellerPathBuilder IMPELLER_NONNULL builder,
375 const ImpellerPoint* IMPELLER_NONNULL control_point_1,
376 const ImpellerPoint* IMPELLER_NONNULL control_point_2,
377 const ImpellerPoint* IMPELLER_NONNULL end_point);
378
379 IMPELLER_EXPORT
380 void ImpellerPathBuilderAddRect(ImpellerPathBuilder IMPELLER_NONNULL builder,
381 const ImpellerRect* IMPELLER_NONNULL rect);
382
383 IMPELLER_EXPORT
384 void ImpellerPathBuilderAddArc(ImpellerPathBuilder IMPELLER_NONNULL builder,
385 const ImpellerRect* IMPELLER_NONNULL oval_bounds,
386 float start_angle_degrees,
387 float end_angle_degrees);
388
389 IMPELLER_EXPORT
390 void ImpellerPathBuilderAddOval(
391 ImpellerPathBuilder IMPELLER_NONNULL builder,
392 const ImpellerRect* IMPELLER_NONNULL oval_bounds);
393
394 IMPELLER_EXPORT
395 void ImpellerPathBuilderAddRoundedRect(
396 ImpellerPathBuilder IMPELLER_NONNULL builder,
397 const ImpellerRect* IMPELLER_NONNULL rect,
398 const ImpellerRoundingRadii* IMPELLER_NONNULL rounding_radii);
399
400 IMPELLER_EXPORT
401 void ImpellerPathBuilderClose(ImpellerPathBuilder IMPELLER_NONNULL builder);
402
403 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerPath IMPELLER_NULLABLE
404 ImpellerPathBuilderCopyPathNew(ImpellerPathBuilder IMPELLER_NONNULL builder,
405 ImpellerFillType fill);
406
407 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerPath IMPELLER_NULLABLE
408 ImpellerPathBuilderTakePathNew(ImpellerPathBuilder IMPELLER_NONNULL builder,
409 ImpellerFillType fill);
410
411 //------------------------------------------------------------------------------
412 // Paint
413 //------------------------------------------------------------------------------
414
415 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerPaint IMPELLER_NULLABLE
416 ImpellerPaintNew();
417
418 IMPELLER_EXPORT
419 void ImpellerPaintRetain(ImpellerPaint IMPELLER_NULLABLE paint);
420
421 IMPELLER_EXPORT
422 void ImpellerPaintRelease(ImpellerPaint IMPELLER_NULLABLE paint);
423
424 IMPELLER_EXPORT
425 void ImpellerPaintSetColor(ImpellerPaint IMPELLER_NONNULL paint,
426 const ImpellerColor* IMPELLER_NONNULL color);
427
428 IMPELLER_EXPORT
429 void ImpellerPaintSetBlendMode(ImpellerPaint IMPELLER_NONNULL paint,
430 ImpellerBlendMode mode);
431
432 IMPELLER_EXPORT
433 void ImpellerPaintSetDrawStyle(ImpellerPaint IMPELLER_NONNULL paint,
434 ImpellerDrawStyle style);
435
436 IMPELLER_EXPORT
437 void ImpellerPaintSetStrokeCap(ImpellerPaint IMPELLER_NONNULL paint,
438 ImpellerStrokeCap cap);
439
440 IMPELLER_EXPORT
441 void ImpellerPaintSetStrokeJoin(ImpellerPaint IMPELLER_NONNULL paint,
442 ImpellerStrokeJoin join);
443
444 IMPELLER_EXPORT
445 void ImpellerPaintSetStrokeWidth(ImpellerPaint IMPELLER_NONNULL paint,
446 float width);
447
448 IMPELLER_EXPORT
449 void ImpellerPaintSetStrokeMiter(ImpellerPaint IMPELLER_NONNULL paint,
450 float miter);
451
452 IMPELLER_EXPORT
453 void ImpellerPaintSetColorFilter(
454 ImpellerPaint IMPELLER_NONNULL paint,
455 ImpellerColorFilter IMPELLER_NONNULL color_filter);
456
457 IMPELLER_EXPORT
458 void ImpellerPaintSetColorSource(
459 ImpellerPaint IMPELLER_NONNULL paint,
460 ImpellerColorSource IMPELLER_NONNULL color_source);
461
462 IMPELLER_EXPORT
463 void ImpellerPaintSetImageFilter(
464 ImpellerPaint IMPELLER_NONNULL paint,
465 ImpellerImageFilter IMPELLER_NONNULL image_filter);
466
467 IMPELLER_EXPORT
468 void ImpellerPaintSetMaskFilter(
469 ImpellerPaint IMPELLER_NONNULL paint,
470 ImpellerMaskFilter IMPELLER_NONNULL mask_filter);
471
472 //------------------------------------------------------------------------------
473 // Texture
474 //------------------------------------------------------------------------------
475
476 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerTexture IMPELLER_NULLABLE
477 ImpellerTextureCreateWithContentsNew(
478 ImpellerContext IMPELLER_NONNULL context,
479 const ImpellerTextureDescriptor* IMPELLER_NONNULL descriptor,
480 const ImpellerMapping* IMPELLER_NONNULL contents,
481 void* IMPELLER_NULLABLE contents_on_release_user_data);
482
483 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerTexture IMPELLER_NULLABLE
484 ImpellerTextureCreateWithOpenGLTextureHandleNew(
485 ImpellerContext IMPELLER_NONNULL context,
486 const ImpellerTextureDescriptor* IMPELLER_NONNULL descriptor,
487 uint64_t handle // transfer-in ownership
488 );
489
490 IMPELLER_EXPORT
491 void ImpellerTextureRetain(ImpellerTexture IMPELLER_NULLABLE texture);
492
493 IMPELLER_EXPORT
494 void ImpellerTextureRelease(ImpellerTexture IMPELLER_NULLABLE texture);
495
496 IMPELLER_EXPORT
497 uint64_t ImpellerTextureGetOpenGLHandle(
498 ImpellerTexture IMPELLER_NONNULL texture);
499
500 //------------------------------------------------------------------------------
501 // Color Sources
502 //------------------------------------------------------------------------------
503
504 IMPELLER_EXPORT
505 void ImpellerColorSourceRetain(
506 ImpellerColorSource IMPELLER_NULLABLE color_source);
507
508 IMPELLER_EXPORT
509 void ImpellerColorSourceRelease(
510 ImpellerColorSource IMPELLER_NULLABLE color_source);
511
512 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerColorSource IMPELLER_NULLABLE
513 ImpellerColorSourceCreateLinearGradientNew(
514 const ImpellerPoint* IMPELLER_NONNULL start_point,
515 const ImpellerPoint* IMPELLER_NONNULL end_point,
516 uint32_t stop_count,
517 const ImpellerColor* IMPELLER_NONNULL colors,
518 const float* IMPELLER_NONNULL stops,
519 ImpellerTileMode tile_mode,
520 const ImpellerMatrix* IMPELLER_NULLABLE transformation);
521
522 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerColorSource IMPELLER_NULLABLE
523 ImpellerColorSourceCreateRadialGradientNew(
524 const ImpellerPoint* IMPELLER_NONNULL center,
525 float radius,
526 uint32_t stop_count,
527 const ImpellerColor* IMPELLER_NONNULL colors,
528 const float* IMPELLER_NONNULL stops,
529 ImpellerTileMode tile_mode,
530 const ImpellerMatrix* IMPELLER_NULLABLE transformation);
531
532 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerColorSource IMPELLER_NULLABLE
533 ImpellerColorSourceCreateConicalGradientNew(
534 const ImpellerPoint* IMPELLER_NONNULL start_center,
535 float start_radius,
536 const ImpellerPoint* IMPELLER_NONNULL end_center,
537 float end_radius,
538 uint32_t stop_count,
539 const ImpellerColor* IMPELLER_NONNULL colors,
540 const float* IMPELLER_NONNULL stops,
541 ImpellerTileMode tile_mode,
542 const ImpellerMatrix* IMPELLER_NULLABLE transformation);
543
544 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerColorSource IMPELLER_NULLABLE
545 ImpellerColorSourceCreateSweepGradientNew(
546 const ImpellerPoint* IMPELLER_NONNULL center,
547 float start,
548 float end,
549 uint32_t stop_count,
550 const ImpellerColor* IMPELLER_NONNULL colors,
551 const float* IMPELLER_NONNULL stops,
552 ImpellerTileMode tile_mode,
553 const ImpellerMatrix* IMPELLER_NULLABLE transformation);
554
555 //------------------------------------------------------------------------------
556 // Color Filters
557 //------------------------------------------------------------------------------
558
559 IMPELLER_EXPORT
560 void ImpellerColorFilterRetain(
561 ImpellerColorFilter IMPELLER_NULLABLE color_filter);
562
563 IMPELLER_EXPORT
564 void ImpellerColorFilterRelease(
565 ImpellerColorFilter IMPELLER_NULLABLE color_filter);
566
567 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerColorFilter IMPELLER_NULLABLE
568 ImpellerColorFilterCreateBlendNew(const ImpellerColor* IMPELLER_NONNULL color,
569 ImpellerBlendMode blend_mode);
570
571 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerColorFilter IMPELLER_NULLABLE
572 ImpellerColorFilterCreateColorMatrixNew(
573 const ImpellerColorMatrix* IMPELLER_NONNULL color_matrix);
574
575 //------------------------------------------------------------------------------
576 // Mask Filters
577 //------------------------------------------------------------------------------
578
579 IMPELLER_EXPORT
580 void ImpellerMaskFilterRetain(ImpellerMaskFilter IMPELLER_NULLABLE mask_filter);
581
582 IMPELLER_EXPORT
583 void ImpellerMaskFilterRelease(
584 ImpellerMaskFilter IMPELLER_NULLABLE mask_filter);
585
586 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerMaskFilter IMPELLER_NULLABLE
587 ImpellerMaskFilterCreateBlurNew(ImpellerBlurStyle style, float sigma);
588
589 //------------------------------------------------------------------------------
590 // Image Filters
591 //------------------------------------------------------------------------------
592
593 IMPELLER_EXPORT
594 void ImpellerImageFilterRetain(
595 ImpellerImageFilter IMPELLER_NULLABLE image_filter);
596
597 IMPELLER_EXPORT
598 void ImpellerImageFilterRelease(
599 ImpellerImageFilter IMPELLER_NULLABLE image_filter);
600
601 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerImageFilter IMPELLER_NULLABLE
602 ImpellerImageFilterCreateBlurNew(float x_sigma,
603 float y_sigma,
604 ImpellerTileMode tile_mode);
605
606 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerImageFilter IMPELLER_NULLABLE
607 ImpellerImageFilterCreateDilateNew(float x_radius, float y_radius);
608
609 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerImageFilter IMPELLER_NULLABLE
610 ImpellerImageFilterCreateErodeNew(float x_radius, float y_radius);
611
612 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerImageFilter IMPELLER_NULLABLE
613 ImpellerImageFilterCreateMatrixNew(
614 const ImpellerMatrix* IMPELLER_NONNULL matrix,
615 ImpellerTextureSampling sampling);
616
617 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerImageFilter IMPELLER_NULLABLE
618 ImpellerImageFilterCreateComposeNew(ImpellerImageFilter IMPELLER_NONNULL outer,
619 ImpellerImageFilter IMPELLER_NONNULL inner);
620
621 //------------------------------------------------------------------------------
622 // Display List
623 //------------------------------------------------------------------------------
624
625 IMPELLER_EXPORT
626 void ImpellerDisplayListRetain(
627 ImpellerDisplayList IMPELLER_NULLABLE display_list);
628
629 IMPELLER_EXPORT
630 void ImpellerDisplayListRelease(
631 ImpellerDisplayList IMPELLER_NULLABLE display_list);
632
633 //------------------------------------------------------------------------------
634 // Display List Builder
635 //------------------------------------------------------------------------------
636
637 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerDisplayListBuilder IMPELLER_NULLABLE
638 ImpellerDisplayListBuilderNew(const ImpellerRect* IMPELLER_NULLABLE cull_rect);
639
640 IMPELLER_EXPORT
641 void ImpellerDisplayListBuilderRetain(
642 ImpellerDisplayListBuilder IMPELLER_NULLABLE builder);
643
644 IMPELLER_EXPORT
645 void ImpellerDisplayListBuilderRelease(
646 ImpellerDisplayListBuilder IMPELLER_NULLABLE builder);
647
648 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerDisplayList IMPELLER_NULLABLE
649 ImpellerDisplayListBuilderCreateDisplayListNew(
650 ImpellerDisplayListBuilder IMPELLER_NONNULL builder);
651
652 //------------------------------------------------------------------------------
653 // Display List Builder: Managing the transformation stack.
654 //------------------------------------------------------------------------------
655 IMPELLER_EXPORT
656 void ImpellerDisplayListBuilderSave(
657 ImpellerDisplayListBuilder IMPELLER_NONNULL builder);
658
659 IMPELLER_EXPORT
660 void ImpellerDisplayListBuilderSaveLayer(
661 ImpellerDisplayListBuilder IMPELLER_NONNULL builder,
662 const ImpellerRect* IMPELLER_NONNULL bounds,
663 ImpellerPaint IMPELLER_NULLABLE paint,
664 ImpellerImageFilter IMPELLER_NULLABLE backdrop);
665
666 IMPELLER_EXPORT
667 void ImpellerDisplayListBuilderRestore(
668 ImpellerDisplayListBuilder IMPELLER_NONNULL builder);
669
670 IMPELLER_EXPORT
671 void ImpellerDisplayListBuilderScale(
672 ImpellerDisplayListBuilder IMPELLER_NONNULL builder,
673 float x_scale,
674 float y_scale);
675
676 IMPELLER_EXPORT
677 void ImpellerDisplayListBuilderRotate(
678 ImpellerDisplayListBuilder IMPELLER_NONNULL builder,
679 float angle_degrees);
680
681 IMPELLER_EXPORT
682 void ImpellerDisplayListBuilderTranslate(
683 ImpellerDisplayListBuilder IMPELLER_NONNULL builder,
684 float x_translation,
685 float y_translation);
686
687 IMPELLER_EXPORT
688 void ImpellerDisplayListBuilderSetTransform(
689 ImpellerDisplayListBuilder IMPELLER_NONNULL builder,
690 const ImpellerMatrix* IMPELLER_NONNULL transform);
691
692 IMPELLER_EXPORT
693 void ImpellerDisplayListBuilderGetTransform(
694 ImpellerDisplayListBuilder IMPELLER_NONNULL builder,
695 ImpellerMatrix* IMPELLER_NONNULL out_transform);
696
697 IMPELLER_EXPORT
698 void ImpellerDisplayListBuilderResetTransform(
699 ImpellerDisplayListBuilder IMPELLER_NONNULL builder);
700
701 IMPELLER_EXPORT
702 uint32_t ImpellerDisplayListBuilderGetSaveCount(
703 ImpellerDisplayListBuilder IMPELLER_NONNULL builder);
704
705 IMPELLER_EXPORT
706 void ImpellerDisplayListBuilderRestoreToCount(
707 ImpellerDisplayListBuilder IMPELLER_NONNULL builder,
708 uint32_t count);
709
710 //------------------------------------------------------------------------------
711 // Display List Builder: Clipping
712 //------------------------------------------------------------------------------
713
714 IMPELLER_EXPORT
715 void ImpellerDisplayListBuilderClipRect(
716 ImpellerDisplayListBuilder IMPELLER_NONNULL builder,
717 const ImpellerRect* IMPELLER_NONNULL rect,
718 ImpellerClipOperation op);
719
720 IMPELLER_EXPORT
721 void ImpellerDisplayListBuilderClipOval(
722 ImpellerDisplayListBuilder IMPELLER_NONNULL builder,
723 const ImpellerRect* IMPELLER_NONNULL oval_bounds,
724 ImpellerClipOperation op);
725
726 IMPELLER_EXPORT
727 void ImpellerDisplayListBuilderClipRoundedRect(
728 ImpellerDisplayListBuilder IMPELLER_NONNULL builder,
729 const ImpellerRect* IMPELLER_NONNULL rect,
730 const ImpellerRoundingRadii* IMPELLER_NONNULL radii,
731 ImpellerClipOperation op);
732
733 IMPELLER_EXPORT
734 void ImpellerDisplayListBuilderClipPath(
735 ImpellerDisplayListBuilder IMPELLER_NONNULL builder,
736 ImpellerPath IMPELLER_NONNULL path,
737 ImpellerClipOperation op);
738
739 //------------------------------------------------------------------------------
740 // Display List Builder: Drawing Shapes
741 //------------------------------------------------------------------------------
742
743 IMPELLER_EXPORT
744 void ImpellerDisplayListBuilderDrawPaint(
745 ImpellerDisplayListBuilder IMPELLER_NONNULL builder,
746 ImpellerPaint IMPELLER_NONNULL paint);
747
748 IMPELLER_EXPORT
749 void ImpellerDisplayListBuilderDrawLine(
750 ImpellerDisplayListBuilder IMPELLER_NONNULL builder,
751 const ImpellerPoint* IMPELLER_NONNULL from,
752 const ImpellerPoint* IMPELLER_NONNULL to,
753 ImpellerPaint IMPELLER_NONNULL paint);
754
755 IMPELLER_EXPORT
756 void ImpellerDisplayListBuilderDrawDashedLine(
757 ImpellerDisplayListBuilder IMPELLER_NONNULL builder,
758 const ImpellerPoint* IMPELLER_NONNULL from,
759 const ImpellerPoint* IMPELLER_NONNULL to,
760 float on_length,
761 float off_length,
762 ImpellerPaint IMPELLER_NONNULL paint);
763
764 IMPELLER_EXPORT
765 void ImpellerDisplayListBuilderDrawRect(
766 ImpellerDisplayListBuilder IMPELLER_NONNULL builder,
767 const ImpellerRect* IMPELLER_NONNULL rect,
768 ImpellerPaint IMPELLER_NONNULL paint);
769
770 IMPELLER_EXPORT
771 void ImpellerDisplayListBuilderDrawOval(
772 ImpellerDisplayListBuilder IMPELLER_NONNULL builder,
773 const ImpellerRect* IMPELLER_NONNULL oval_bounds,
774 ImpellerPaint IMPELLER_NONNULL paint);
775
776 IMPELLER_EXPORT
777 void ImpellerDisplayListBuilderDrawRoundedRect(
778 ImpellerDisplayListBuilder IMPELLER_NONNULL builder,
779 const ImpellerRect* IMPELLER_NONNULL rect,
780 const ImpellerRoundingRadii* IMPELLER_NONNULL radii,
781 ImpellerPaint IMPELLER_NONNULL paint);
782
783 IMPELLER_EXPORT
784 void ImpellerDisplayListBuilderDrawRoundedRectDifference(
785 ImpellerDisplayListBuilder IMPELLER_NONNULL builder,
786 const ImpellerRect* IMPELLER_NONNULL outer_rect,
787 const ImpellerRoundingRadii* IMPELLER_NONNULL outer_radii,
788 const ImpellerRect* IMPELLER_NONNULL inner_rect,
789 const ImpellerRoundingRadii* IMPELLER_NONNULL inner_radii,
790 ImpellerPaint IMPELLER_NONNULL paint);
791
792 IMPELLER_EXPORT
793 void ImpellerDisplayListBuilderDrawPath(
794 ImpellerDisplayListBuilder IMPELLER_NONNULL builder,
795 ImpellerPath IMPELLER_NONNULL path,
796 ImpellerPaint IMPELLER_NONNULL paint);
797
798 IMPELLER_EXPORT
799 void ImpellerDisplayListBuilderDrawDisplayList(
800 ImpellerDisplayListBuilder IMPELLER_NONNULL builder,
801 ImpellerDisplayList IMPELLER_NONNULL display_list,
802 float opacity);
803
804 IMPELLER_EXPORT
805 void ImpellerDisplayListBuilderDrawParagraph(
806 ImpellerDisplayListBuilder IMPELLER_NONNULL builder,
807 ImpellerParagraph IMPELLER_NONNULL paragraph,
808 const ImpellerPoint* IMPELLER_NONNULL point);
809
810 //------------------------------------------------------------------------------
811 // Display List Builder: Drawing Textures
812 //------------------------------------------------------------------------------
813
814 IMPELLER_EXPORT
815 void ImpellerDisplayListBuilderDrawTexture(
816 ImpellerDisplayListBuilder IMPELLER_NONNULL builder,
817 ImpellerTexture IMPELLER_NONNULL texture,
818 const ImpellerPoint* IMPELLER_NONNULL point,
819 ImpellerTextureSampling sampling,
820 ImpellerPaint IMPELLER_NULLABLE paint);
821
822 IMPELLER_EXPORT
823 void ImpellerDisplayListBuilderDrawTextureRect(
824 ImpellerDisplayListBuilder IMPELLER_NONNULL builder,
825 ImpellerTexture IMPELLER_NONNULL texture,
826 const ImpellerRect* IMPELLER_NONNULL src_rect,
827 const ImpellerRect* IMPELLER_NONNULL dst_rect,
828 ImpellerTextureSampling sampling,
829 ImpellerPaint IMPELLER_NULLABLE paint);
830
831 //------------------------------------------------------------------------------
832 // Typography Context
833 //------------------------------------------------------------------------------
834
835 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerTypographyContext IMPELLER_NULLABLE
836 ImpellerTypographyContextNew();
837
838 IMPELLER_EXPORT
839 void ImpellerTypographyContextRetain(
840 ImpellerTypographyContext IMPELLER_NULLABLE context);
841
842 IMPELLER_EXPORT
843 void ImpellerTypographyContextRelease(
844 ImpellerTypographyContext IMPELLER_NULLABLE context);
845
846 //------------------------------------------------------------------------------
847 // Paragraph Style
848 //------------------------------------------------------------------------------
849
850 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerParagraphStyle IMPELLER_NULLABLE
851 ImpellerParagraphStyleNew();
852
853 IMPELLER_EXPORT
854 void ImpellerParagraphStyleRetain(
855 ImpellerParagraphStyle IMPELLER_NULLABLE paragraph_style);
856
857 IMPELLER_EXPORT
858 void ImpellerParagraphStyleRelease(
859 ImpellerParagraphStyle IMPELLER_NULLABLE paragraph_style);
860
861 IMPELLER_EXPORT
862 void ImpellerParagraphStyleSetForeground(
863 ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style,
864 ImpellerPaint IMPELLER_NONNULL paint);
865
866 IMPELLER_EXPORT
867 void ImpellerParagraphStyleSetBackground(
868 ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style,
869 ImpellerPaint IMPELLER_NONNULL paint);
870
871 IMPELLER_EXPORT
872 void ImpellerParagraphStyleSetFontWeight(
873 ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style,
874 ImpellerFontWeight weight);
875
876 IMPELLER_EXPORT
877 void ImpellerParagraphStyleSetFontStyle(
878 ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style,
879 ImpellerFontStyle style);
880
881 IMPELLER_EXPORT
882 void ImpellerParagraphStyleSetFontFamily(
883 ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style,
884 const char* IMPELLER_NONNULL family_name);
885
886 IMPELLER_EXPORT
887 void ImpellerParagraphStyleSetFontSize(
888 ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style,
889 float size);
890
891 IMPELLER_EXPORT
892 void ImpellerParagraphStyleSetHeight(
893 ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style,
894 float height);
895
896 IMPELLER_EXPORT
897 void ImpellerParagraphStyleSetTextAlignment(
898 ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style,
899 ImpellerTextAlignment align);
900
901 IMPELLER_EXPORT
902 void ImpellerParagraphStyleSetTextDirection(
903 ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style,
904 ImpellerTextDirection direction);
905
906 IMPELLER_EXPORT
907 void ImpellerParagraphStyleSetMaxLines(
908 ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style,
909 uint32_t max_lines);
910
911 IMPELLER_EXPORT
912 void ImpellerParagraphStyleSetLocale(
913 ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style,
914 const char* IMPELLER_NONNULL locale);
915
916 //------------------------------------------------------------------------------
917 // Paragraph Builder
918 //------------------------------------------------------------------------------
919
920 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerParagraphBuilder IMPELLER_NULLABLE
921 ImpellerParagraphBuilderNew(ImpellerTypographyContext IMPELLER_NONNULL context);
922
923 IMPELLER_EXPORT
924 void ImpellerParagraphBuilderRetain(
925 ImpellerParagraphBuilder IMPELLER_NULLABLE paragraph_builder);
926
927 IMPELLER_EXPORT
928 void ImpellerParagraphBuilderRelease(
929 ImpellerParagraphBuilder IMPELLER_NULLABLE paragraph_builder);
930
931 IMPELLER_EXPORT
932 void ImpellerParagraphBuilderPushStyle(
933 ImpellerParagraphBuilder IMPELLER_NONNULL paragraph_builder,
934 ImpellerParagraphStyle IMPELLER_NONNULL style);
935
936 IMPELLER_EXPORT
937 void ImpellerParagraphBuilderPopStyle(
938 ImpellerParagraphBuilder IMPELLER_NONNULL paragraph_builder);
939
940 IMPELLER_EXPORT
941 void ImpellerParagraphBuilderAddText(
942 ImpellerParagraphBuilder IMPELLER_NONNULL paragraph_builder,
943 const uint8_t* IMPELLER_NULLABLE data,
944 uint32_t length);
945
946 IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerParagraph IMPELLER_NULLABLE
947 ImpellerParagraphBuilderBuildParagraphNew(
948 ImpellerParagraphBuilder IMPELLER_NONNULL paragraph_builder,
949 float width);
950
951 //------------------------------------------------------------------------------
952 // Paragraph
953 //------------------------------------------------------------------------------
954
955 IMPELLER_EXPORT
956 void ImpellerParagraphRetain(ImpellerParagraph IMPELLER_NULLABLE paragraph);
957
958 IMPELLER_EXPORT
959 void ImpellerParagraphRelease(ImpellerParagraph IMPELLER_NULLABLE paragraph);
960
961 IMPELLER_EXPORT
962 float ImpellerParagraphGetMaxWidth(
963 ImpellerParagraph IMPELLER_NONNULL paragraph);
964
965 IMPELLER_EXPORT
966 float ImpellerParagraphGetHeight(ImpellerParagraph IMPELLER_NONNULL paragraph);
967
968 IMPELLER_EXPORT
969 float ImpellerParagraphGetLongestLineWidth(
970 ImpellerParagraph IMPELLER_NONNULL paragraph);
971
972 IMPELLER_EXPORT
973 float ImpellerParagraphGetMinIntrinsicWidth(
974 ImpellerParagraph IMPELLER_NONNULL paragraph);
975
976 IMPELLER_EXPORT
977 float ImpellerParagraphGetMaxIntrinsicWidth(
978 ImpellerParagraph IMPELLER_NONNULL paragraph);
979
980 IMPELLER_EXPORT
981 float ImpellerParagraphGetIdeographicBaseline(
982 ImpellerParagraph IMPELLER_NONNULL paragraph);
983
984 IMPELLER_EXPORT
985 float ImpellerParagraphGetAlphabeticBaseline(
986 ImpellerParagraph IMPELLER_NONNULL paragraph);
987
988 IMPELLER_EXPORT
989 uint32_t ImpellerParagraphGetLineCount(
990 ImpellerParagraph IMPELLER_NONNULL paragraph);
991
992 IMPELLER_EXTERN_C_END
993
994 #endif // FLUTTER_IMPELLER_TOOLKIT_INTEROP_IMPELLER_H_
ImpellerPoint
Definition: impeller.h:241
kImpellerBlendModeColorBurn
@ kImpellerBlendModeColorBurn
Definition: impeller.h:141
ImpellerParagraphStyleSetLocale
IMPELLER_EXPORT void ImpellerParagraphStyleSetLocale(ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style, const char *IMPELLER_NONNULL locale)
ImpellerTextureDescriptor
Definition: impeller.h:279
ImpellerColorSourceCreateLinearGradientNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerColorSource IMPELLER_NULLABLE ImpellerColorSourceCreateLinearGradientNew(const ImpellerPoint *IMPELLER_NONNULL start_point, const ImpellerPoint *IMPELLER_NONNULL end_point, uint32_t stop_count, const ImpellerColor *IMPELLER_NONNULL colors, const float *IMPELLER_NONNULL stops, ImpellerTileMode tile_mode, const ImpellerMatrix *IMPELLER_NULLABLE transformation)
ImpellerISize::height
int64_t height
Definition: impeller.h:253
ImpellerPaintSetDrawStyle
IMPELLER_EXPORT void ImpellerPaintSetDrawStyle(ImpellerPaint IMPELLER_NONNULL paint, ImpellerDrawStyle style)
kImpellerStrokeCapSquare
@ kImpellerStrokeCapSquare
Definition: impeller.h:162
kImpellerBlendModeExclusion
@ kImpellerBlendModeExclusion
Definition: impeller.h:145
ImpellerPathBuilderRelease
IMPELLER_EXPORT void ImpellerPathBuilderRelease(ImpellerPathBuilder IMPELLER_NULLABLE builder)
ImpellerBlurStyle
ImpellerBlurStyle
Definition: impeller.h:187
ImpellerParagraphGetAlphabeticBaseline
IMPELLER_EXPORT float ImpellerParagraphGetAlphabeticBaseline(ImpellerParagraph IMPELLER_NONNULL paragraph)
ImpellerFontStyle
ImpellerFontStyle
Definition: impeller.h:212
ImpellerParagraphBuilderBuildParagraphNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerParagraph IMPELLER_NULLABLE ImpellerParagraphBuilderBuildParagraphNew(ImpellerParagraphBuilder IMPELLER_NONNULL paragraph_builder, float width)
kImpellerTextAlignmentLeft
@ kImpellerTextAlignmentLeft
Definition: impeller.h:218
kImpellerBlendModeColor
@ kImpellerBlendModeColor
Definition: impeller.h:149
ImpellerPathBuilderCopyPathNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerPath IMPELLER_NULLABLE ImpellerPathBuilderCopyPathNew(ImpellerPathBuilder IMPELLER_NONNULL builder, ImpellerFillType fill)
ImpellerMapping::length
uint64_t length
Definition: impeller.h:287
kImpellerTextAlignmentRight
@ kImpellerTextAlignmentRight
Definition: impeller.h:219
ImpellerMatrix::m
float m[16]
Definition: impeller.h:257
ImpellerParagraphGetMaxWidth
IMPELLER_EXPORT float ImpellerParagraphGetMaxWidth(ImpellerParagraph IMPELLER_NONNULL paragraph)
ImpellerRoundingRadii::top_right
ImpellerPoint top_right
Definition: impeller.h:267
kImpellerStrokeJoinRound
@ kImpellerStrokeJoinRound
Definition: impeller.h:167
ImpellerSurfaceCreateWrappedFBONew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerSurface IMPELLER_NULLABLE ImpellerSurfaceCreateWrappedFBONew(ImpellerContext IMPELLER_NULLABLE context, uint64_t fbo, ImpellerPixelFormat format, const ImpellerISize *IMPELLER_NULLABLE size)
ImpellerTextureCreateWithOpenGLTextureHandleNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerTexture IMPELLER_NULLABLE ImpellerTextureCreateWithOpenGLTextureHandleNew(ImpellerContext IMPELLER_NONNULL context, const ImpellerTextureDescriptor *IMPELLER_NONNULL descriptor, uint64_t handle)
ImpellerPoint::y
float y
Definition: impeller.h:243
kImpellerBlendModeDestinationOver
@ kImpellerBlendModeDestinationOver
Definition: impeller.h:126
ImpellerTextureDescriptor::mip_count
uint32_t mip_count
Definition: impeller.h:282
kImpellerTextAlignmentEnd
@ kImpellerTextAlignmentEnd
Definition: impeller.h:223
ImpellerColor::green
float green
Definition: impeller.h:273
ImpellerColor
struct ImpellerColor ImpellerColor
ImpellerPaintSetStrokeCap
IMPELLER_EXPORT void ImpellerPaintSetStrokeCap(ImpellerPaint IMPELLER_NONNULL paint, ImpellerStrokeCap cap)
ImpellerDisplayListBuilderRelease
IMPELLER_EXPORT void ImpellerDisplayListBuilderRelease(ImpellerDisplayListBuilder IMPELLER_NULLABLE builder)
ImpellerClipOperation
ImpellerClipOperation
Definition: impeller.h:116
kImpellerBlendModeDestinationOut
@ kImpellerBlendModeDestinationOut
Definition: impeller.h:130
ImpellerDisplayListBuilderClipOval
IMPELLER_EXPORT void ImpellerDisplayListBuilderClipOval(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, const ImpellerRect *IMPELLER_NONNULL oval_bounds, ImpellerClipOperation op)
kImpellerBlendModeHardLight
@ kImpellerBlendModeHardLight
Definition: impeller.h:142
ImpellerMapping::on_release
ImpellerCallback IMPELLER_NULLABLE on_release
Definition: impeller.h:288
data
std::shared_ptr< const fml::Mapping > data
Definition: texture_gles.cc:63
kImpellerFontStyleNormal
@ kImpellerFontStyleNormal
Definition: impeller.h:213
ImpellerISize
Definition: impeller.h:251
ImpellerDisplayListBuilderResetTransform
IMPELLER_EXPORT void ImpellerDisplayListBuilderResetTransform(ImpellerDisplayListBuilder IMPELLER_NONNULL builder)
ImpellerDisplayListBuilderRestore
IMPELLER_EXPORT void ImpellerDisplayListBuilderRestore(ImpellerDisplayListBuilder IMPELLER_NONNULL builder)
kImpellerBlendModeDifference
@ kImpellerBlendModeDifference
Definition: impeller.h:144
ImpellerPathBuilderQuadraticCurveTo
IMPELLER_EXPORT void ImpellerPathBuilderQuadraticCurveTo(ImpellerPathBuilder IMPELLER_NONNULL builder, const ImpellerPoint *IMPELLER_NONNULL control_point, const ImpellerPoint *IMPELLER_NONNULL end_point)
ImpellerImageFilterCreateErodeNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerImageFilter IMPELLER_NULLABLE ImpellerImageFilterCreateErodeNew(float x_radius, float y_radius)
Definition: impeller.cc:848
ImpellerCallback
void(* ImpellerCallback)(void *IMPELLER_NULLABLE user_data)
Definition: impeller.h:103
ImpellerSurfaceRetain
IMPELLER_EXPORT void ImpellerSurfaceRetain(ImpellerSurface IMPELLER_NULLABLE surface)
ImpellerMapping
Definition: impeller.h:285
ImpellerPaintSetStrokeMiter
IMPELLER_EXPORT void ImpellerPaintSetStrokeMiter(ImpellerPaint IMPELLER_NONNULL paint, float miter)
ImpellerColorMatrix
struct ImpellerColorMatrix ImpellerColorMatrix
IMPELLER_EXPORT
#define IMPELLER_EXPORT
Definition: impeller.h:29
ImpellerDisplayListBuilderDrawRect
IMPELLER_EXPORT void ImpellerDisplayListBuilderDrawRect(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, const ImpellerRect *IMPELLER_NONNULL rect, ImpellerPaint IMPELLER_NONNULL paint)
ImpellerTypographyContextNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerTypographyContext IMPELLER_NULLABLE ImpellerTypographyContextNew()
Definition: impeller.cc:1089
kImpellerTextAlignmentStart
@ kImpellerTextAlignmentStart
Definition: impeller.h:222
ImpellerColor
Definition: impeller.h:271
ImpellerPathBuilderAddRoundedRect
IMPELLER_EXPORT void ImpellerPathBuilderAddRoundedRect(ImpellerPathBuilder IMPELLER_NONNULL builder, const ImpellerRect *IMPELLER_NONNULL rect, const ImpellerRoundingRadii *IMPELLER_NONNULL rounding_radii)
ImpellerDisplayListBuilderRotate
IMPELLER_EXPORT void ImpellerDisplayListBuilderRotate(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, float angle_degrees)
kImpellerColorSpaceDisplayP3
@ kImpellerColorSpaceDisplayP3
Definition: impeller.h:197
ImpellerColor::alpha
float alpha
Definition: impeller.h:275
ImpellerDisplayListBuilderDrawTextureRect
IMPELLER_EXPORT void ImpellerDisplayListBuilderDrawTextureRect(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, ImpellerTexture IMPELLER_NONNULL texture, const ImpellerRect *IMPELLER_NONNULL src_rect, const ImpellerRect *IMPELLER_NONNULL dst_rect, ImpellerTextureSampling sampling, ImpellerPaint IMPELLER_NULLABLE paint)
ImpellerParagraphGetLineCount
IMPELLER_EXPORT uint32_t ImpellerParagraphGetLineCount(ImpellerParagraph IMPELLER_NONNULL paragraph)
ImpellerParagraphStyleSetMaxLines
IMPELLER_EXPORT void ImpellerParagraphStyleSetMaxLines(ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style, uint32_t max_lines)
ImpellerRect
Definition: impeller.h:234
ImpellerPathBuilderAddRect
IMPELLER_EXPORT void ImpellerPathBuilderAddRect(ImpellerPathBuilder IMPELLER_NONNULL builder, const ImpellerRect *IMPELLER_NONNULL rect)
ImpellerParagraphBuilderRelease
IMPELLER_EXPORT void ImpellerParagraphBuilderRelease(ImpellerParagraphBuilder IMPELLER_NULLABLE paragraph_builder)
ImpellerParagraphGetLongestLineWidth
IMPELLER_EXPORT float ImpellerParagraphGetLongestLineWidth(ImpellerParagraph IMPELLER_NONNULL paragraph)
ImpellerContextRetain
IMPELLER_EXPORT void ImpellerContextRetain(ImpellerContext IMPELLER_NULLABLE context)
kImpellerFontWeight900
@ kImpellerFontWeight900
Definition: impeller.h:209
kImpellerBlurStyleOuter
@ kImpellerBlurStyleOuter
Definition: impeller.h:190
ImpellerTileMode
ImpellerTileMode
Definition: impeller.h:180
kImpellerFontWeight600
@ kImpellerFontWeight600
Definition: impeller.h:206
ImpellerColorSourceRetain
IMPELLER_EXPORT void ImpellerColorSourceRetain(ImpellerColorSource IMPELLER_NULLABLE color_source)
ImpellerImageFilterRelease
IMPELLER_EXPORT void ImpellerImageFilterRelease(ImpellerImageFilter IMPELLER_NULLABLE image_filter)
ImpellerDisplayListBuilderSaveLayer
IMPELLER_EXPORT void ImpellerDisplayListBuilderSaveLayer(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, const ImpellerRect *IMPELLER_NONNULL bounds, ImpellerPaint IMPELLER_NULLABLE paint, ImpellerImageFilter IMPELLER_NULLABLE backdrop)
ImpellerDisplayListBuilderGetTransform
IMPELLER_EXPORT void ImpellerDisplayListBuilderGetTransform(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, ImpellerMatrix *IMPELLER_NONNULL out_transform)
IMPELLER_EXTERN_C_END
#define IMPELLER_EXTERN_C_END
Definition: impeller.h:19
kImpellerTileModeDecal
@ kImpellerTileModeDecal
Definition: impeller.h:184
ImpellerMaskFilterRelease
IMPELLER_EXPORT void ImpellerMaskFilterRelease(ImpellerMaskFilter IMPELLER_NULLABLE mask_filter)
ImpellerDisplayListBuilderGetSaveCount
IMPELLER_EXPORT uint32_t ImpellerDisplayListBuilderGetSaveCount(ImpellerDisplayListBuilder IMPELLER_NONNULL builder)
ImpellerSize::height
float height
Definition: impeller.h:248
kImpellerFontWeight300
@ kImpellerFontWeight300
Definition: impeller.h:203
ImpellerDisplayListBuilderDrawTexture
IMPELLER_EXPORT void ImpellerDisplayListBuilderDrawTexture(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, ImpellerTexture IMPELLER_NONNULL texture, const ImpellerPoint *IMPELLER_NONNULL point, ImpellerTextureSampling sampling, ImpellerPaint IMPELLER_NULLABLE paint)
ImpellerDisplayListBuilderTranslate
IMPELLER_EXPORT void ImpellerDisplayListBuilderTranslate(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, float x_translation, float y_translation)
ImpellerDisplayListBuilderSave
IMPELLER_EXPORT void ImpellerDisplayListBuilderSave(ImpellerDisplayListBuilder IMPELLER_NONNULL builder)
ImpellerTextureGetOpenGLHandle
IMPELLER_EXPORT uint64_t ImpellerTextureGetOpenGLHandle(ImpellerTexture IMPELLER_NONNULL texture)
kImpellerBlurStyleInner
@ kImpellerBlurStyleInner
Definition: impeller.h:191
ImpellerColorFilterCreateColorMatrixNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerColorFilter IMPELLER_NULLABLE ImpellerColorFilterCreateColorMatrixNew(const ImpellerColorMatrix *IMPELLER_NONNULL color_matrix)
ImpellerPaintSetStrokeJoin
IMPELLER_EXPORT void ImpellerPaintSetStrokeJoin(ImpellerPaint IMPELLER_NONNULL paint, ImpellerStrokeJoin join)
ImpellerSize
struct ImpellerSize ImpellerSize
ImpellerParagraphStyleSetFontWeight
IMPELLER_EXPORT void ImpellerParagraphStyleSetFontWeight(ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style, ImpellerFontWeight weight)
ImpellerPathBuilderTakePathNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerPath IMPELLER_NULLABLE ImpellerPathBuilderTakePathNew(ImpellerPathBuilder IMPELLER_NONNULL builder, ImpellerFillType fill)
ImpellerColorMatrix::m
float m[20]
Definition: impeller.h:261
kImpellerBlurStyleSolid
@ kImpellerBlurStyleSolid
Definition: impeller.h:189
ImpellerColor::color_space
ImpellerColorSpace color_space
Definition: impeller.h:276
ImpellerStrokeCap
ImpellerStrokeCap
Definition: impeller.h:159
ImpellerParagraphStyleRelease
IMPELLER_EXPORT void ImpellerParagraphStyleRelease(ImpellerParagraphStyle IMPELLER_NULLABLE paragraph_style)
ImpellerDisplayListBuilderDrawRoundedRectDifference
IMPELLER_EXPORT void ImpellerDisplayListBuilderDrawRoundedRectDifference(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, const ImpellerRect *IMPELLER_NONNULL outer_rect, const ImpellerRoundingRadii *IMPELLER_NONNULL outer_radii, const ImpellerRect *IMPELLER_NONNULL inner_rect, const ImpellerRoundingRadii *IMPELLER_NONNULL inner_radii, ImpellerPaint IMPELLER_NONNULL paint)
ImpellerISize
struct ImpellerISize ImpellerISize
ImpellerParagraphGetIdeographicBaseline
IMPELLER_EXPORT float ImpellerParagraphGetIdeographicBaseline(ImpellerParagraph IMPELLER_NONNULL paragraph)
ImpellerColorFilterCreateBlendNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerColorFilter IMPELLER_NULLABLE ImpellerColorFilterCreateBlendNew(const ImpellerColor *IMPELLER_NONNULL color, ImpellerBlendMode blend_mode)
kImpellerBlendModeSoftLight
@ kImpellerBlendModeSoftLight
Definition: impeller.h:143
ImpellerParagraphGetMaxIntrinsicWidth
IMPELLER_EXPORT float ImpellerParagraphGetMaxIntrinsicWidth(ImpellerParagraph IMPELLER_NONNULL paragraph)
ImpellerDisplayListBuilderDrawLine
IMPELLER_EXPORT void ImpellerDisplayListBuilderDrawLine(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, const ImpellerPoint *IMPELLER_NONNULL from, const ImpellerPoint *IMPELLER_NONNULL to, ImpellerPaint IMPELLER_NONNULL paint)
ImpellerContextRelease
IMPELLER_EXPORT void ImpellerContextRelease(ImpellerContext IMPELLER_NULLABLE context)
ImpellerSurfaceDrawDisplayList
IMPELLER_EXPORT bool ImpellerSurfaceDrawDisplayList(ImpellerSurface IMPELLER_NULLABLE surface, ImpellerDisplayList IMPELLER_NONNULL display_list)
ImpellerDisplayListBuilderSetTransform
IMPELLER_EXPORT void ImpellerDisplayListBuilderSetTransform(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, const ImpellerMatrix *IMPELLER_NONNULL transform)
kImpellerBlendModeHue
@ kImpellerBlendModeHue
Definition: impeller.h:147
ImpellerSurfaceRelease
IMPELLER_EXPORT void ImpellerSurfaceRelease(ImpellerSurface IMPELLER_NULLABLE surface)
ImpellerPaintSetColorSource
IMPELLER_EXPORT void ImpellerPaintSetColorSource(ImpellerPaint IMPELLER_NONNULL paint, ImpellerColorSource IMPELLER_NONNULL color_source)
ImpellerDisplayListRelease
IMPELLER_EXPORT void ImpellerDisplayListRelease(ImpellerDisplayList IMPELLER_NULLABLE display_list)
kImpellerBlendModeSourceOver
@ kImpellerBlendModeSourceOver
Definition: impeller.h:125
ImpellerDisplayListBuilderClipRoundedRect
IMPELLER_EXPORT void ImpellerDisplayListBuilderClipRoundedRect(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, const ImpellerRect *IMPELLER_NONNULL rect, const ImpellerRoundingRadii *IMPELLER_NONNULL radii, ImpellerClipOperation op)
ImpellerMatrix
Definition: impeller.h:256
kImpellerFillTypeOdd
@ kImpellerFillTypeOdd
Definition: impeller.h:113
kImpellerClipOperationDifference
@ kImpellerClipOperationDifference
Definition: impeller.h:117
IMPELLER_EXTERN_C_BEGIN
#define IMPELLER_EXTERN_C_BEGIN
Definition: impeller.h:18
ImpellerDisplayListBuilderCreateDisplayListNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerDisplayList IMPELLER_NULLABLE ImpellerDisplayListBuilderCreateDisplayListNew(ImpellerDisplayListBuilder IMPELLER_NONNULL builder)
kImpellerTextDirectionRTL
@ kImpellerTextDirectionRTL
Definition: impeller.h:227
ImpellerColorFilterRetain
IMPELLER_EXPORT void ImpellerColorFilterRetain(ImpellerColorFilter IMPELLER_NULLABLE color_filter)
ImpellerParagraphGetMinIntrinsicWidth
IMPELLER_EXPORT float ImpellerParagraphGetMinIntrinsicWidth(ImpellerParagraph IMPELLER_NONNULL paragraph)
ImpellerPaintSetMaskFilter
IMPELLER_EXPORT void ImpellerPaintSetMaskFilter(ImpellerPaint IMPELLER_NONNULL paint, ImpellerMaskFilter IMPELLER_NONNULL mask_filter)
ImpellerPathBuilderAddOval
IMPELLER_EXPORT void ImpellerPathBuilderAddOval(ImpellerPathBuilder IMPELLER_NONNULL builder, const ImpellerRect *IMPELLER_NONNULL oval_bounds)
ImpellerPixelFormat
ImpellerPixelFormat
Definition: impeller.h:171
ImpellerRoundingRadii
Definition: impeller.h:264
ImpellerImageFilterCreateComposeNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerImageFilter IMPELLER_NULLABLE ImpellerImageFilterCreateComposeNew(ImpellerImageFilter IMPELLER_NONNULL outer, ImpellerImageFilter IMPELLER_NONNULL inner)
transform
Matrix transform
Definition: gaussian_blur_filter_contents.cc:213
ImpellerParagraphStyleSetFontSize
IMPELLER_EXPORT void ImpellerParagraphStyleSetFontSize(ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style, float size)
kImpellerBlendModePlus
@ kImpellerBlendModePlus
Definition: impeller.h:134
ImpellerParagraphRetain
IMPELLER_EXPORT void ImpellerParagraphRetain(ImpellerParagraph IMPELLER_NULLABLE paragraph)
ImpellerImageFilterRetain
IMPELLER_EXPORT void ImpellerImageFilterRetain(ImpellerImageFilter IMPELLER_NULLABLE image_filter)
kImpellerPixelFormatRGBA8888
@ kImpellerPixelFormatRGBA8888
Definition: impeller.h:172
ImpellerColorSourceCreateConicalGradientNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerColorSource IMPELLER_NULLABLE ImpellerColorSourceCreateConicalGradientNew(const ImpellerPoint *IMPELLER_NONNULL start_center, float start_radius, const ImpellerPoint *IMPELLER_NONNULL end_center, float end_radius, uint32_t stop_count, const ImpellerColor *IMPELLER_NONNULL colors, const float *IMPELLER_NONNULL stops, ImpellerTileMode tile_mode, const ImpellerMatrix *IMPELLER_NULLABLE transformation)
kImpellerClipOperationIntersect
@ kImpellerClipOperationIntersect
Definition: impeller.h:118
ImpellerPathRetain
IMPELLER_EXPORT void ImpellerPathRetain(ImpellerPath IMPELLER_NULLABLE path)
ImpellerMaskFilterRetain
IMPELLER_EXPORT void ImpellerMaskFilterRetain(ImpellerMaskFilter IMPELLER_NULLABLE mask_filter)
ImpellerDisplayListBuilderRetain
IMPELLER_EXPORT void ImpellerDisplayListBuilderRetain(ImpellerDisplayListBuilder IMPELLER_NULLABLE builder)
kImpellerBlendModeOverlay
@ kImpellerBlendModeOverlay
Definition: impeller.h:137
ImpellerImageFilterCreateMatrixNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerImageFilter IMPELLER_NULLABLE ImpellerImageFilterCreateMatrixNew(const ImpellerMatrix *IMPELLER_NONNULL matrix, ImpellerTextureSampling sampling)
ImpellerPaintSetColor
IMPELLER_EXPORT void ImpellerPaintSetColor(ImpellerPaint IMPELLER_NONNULL paint, const ImpellerColor *IMPELLER_NONNULL color)
kImpellerBlendModeSourceATop
@ kImpellerBlendModeSourceATop
Definition: impeller.h:131
ImpellerParagraphStyleSetBackground
IMPELLER_EXPORT void ImpellerParagraphStyleSetBackground(ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style, ImpellerPaint IMPELLER_NONNULL paint)
ImpellerImageFilterCreateBlurNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerImageFilter IMPELLER_NULLABLE ImpellerImageFilterCreateBlurNew(float x_sigma, float y_sigma, ImpellerTileMode tile_mode)
Definition: impeller.cc:833
kImpellerBlendModeSourceOut
@ kImpellerBlendModeSourceOut
Definition: impeller.h:129
kImpellerDrawStyleStroke
@ kImpellerDrawStyleStroke
Definition: impeller.h:155
ImpellerParagraphRelease
IMPELLER_EXPORT void ImpellerParagraphRelease(ImpellerParagraph IMPELLER_NULLABLE paragraph)
kImpellerFontWeight100
@ kImpellerFontWeight100
Definition: impeller.h:201
ImpellerDisplayListBuilderDrawDashedLine
IMPELLER_EXPORT void ImpellerDisplayListBuilderDrawDashedLine(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, const ImpellerPoint *IMPELLER_NONNULL from, const ImpellerPoint *IMPELLER_NONNULL to, float on_length, float off_length, ImpellerPaint IMPELLER_NONNULL paint)
kImpellerFontWeight700
@ kImpellerFontWeight700
Definition: impeller.h:207
ImpellerParagraphStyleSetHeight
IMPELLER_EXPORT void ImpellerParagraphStyleSetHeight(ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style, float height)
ImpellerStrokeJoin
ImpellerStrokeJoin
Definition: impeller.h:165
kImpellerBlendModeSource
@ kImpellerBlendModeSource
Definition: impeller.h:123
kImpellerBlendModeDestinationATop
@ kImpellerBlendModeDestinationATop
Definition: impeller.h:132
kImpellerBlendModeMultiply
@ kImpellerBlendModeMultiply
Definition: impeller.h:146
ImpellerParagraphStyleSetForeground
IMPELLER_EXPORT void ImpellerParagraphStyleSetForeground(ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style, ImpellerPaint IMPELLER_NONNULL paint)
ImpellerDisplayListBuilderDrawRoundedRect
IMPELLER_EXPORT void ImpellerDisplayListBuilderDrawRoundedRect(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, const ImpellerRect *IMPELLER_NONNULL rect, const ImpellerRoundingRadii *IMPELLER_NONNULL radii, ImpellerPaint IMPELLER_NONNULL paint)
kImpellerTextAlignmentJustify
@ kImpellerTextAlignmentJustify
Definition: impeller.h:221
ImpellerRect::width
float width
Definition: impeller.h:237
ImpellerDrawStyle
ImpellerDrawStyle
Definition: impeller.h:153
ImpellerBlendMode
ImpellerBlendMode
Definition: impeller.h:121
IMPELLER_NODISCARD
#define IMPELLER_NODISCARD
Definition: impeller.h:45
ImpellerPoint::x
float x
Definition: impeller.h:242
ImpellerDisplayListBuilderDrawOval
IMPELLER_EXPORT void ImpellerDisplayListBuilderDrawOval(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, const ImpellerRect *IMPELLER_NONNULL oval_bounds, ImpellerPaint IMPELLER_NONNULL paint)
ImpellerTextureDescriptor
struct ImpellerTextureDescriptor ImpellerTextureDescriptor
kImpellerFontWeight500
@ kImpellerFontWeight500
Definition: impeller.h:205
ImpellerMapping
struct ImpellerMapping ImpellerMapping
kImpellerBlendModeDarken
@ kImpellerBlendModeDarken
Definition: impeller.h:138
kImpellerStrokeJoinBevel
@ kImpellerStrokeJoinBevel
Definition: impeller.h:168
ImpellerSize::width
float width
Definition: impeller.h:247
ImpellerParagraphStyleRetain
IMPELLER_EXPORT void ImpellerParagraphStyleRetain(ImpellerParagraphStyle IMPELLER_NULLABLE paragraph_style)
ImpellerPaintSetImageFilter
IMPELLER_EXPORT void ImpellerPaintSetImageFilter(ImpellerPaint IMPELLER_NONNULL paint, ImpellerImageFilter IMPELLER_NONNULL image_filter)
ImpellerDisplayListBuilderDrawDisplayList
IMPELLER_EXPORT void ImpellerDisplayListBuilderDrawDisplayList(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, ImpellerDisplayList IMPELLER_NONNULL display_list, float opacity)
ImpellerRoundingRadii::bottom_left
ImpellerPoint bottom_left
Definition: impeller.h:266
ImpellerDisplayListRetain
IMPELLER_EXPORT void ImpellerDisplayListRetain(ImpellerDisplayList IMPELLER_NULLABLE display_list)
ImpellerParagraphStyleSetTextDirection
IMPELLER_EXPORT void ImpellerParagraphStyleSetTextDirection(ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style, ImpellerTextDirection direction)
kImpellerTileModeMirror
@ kImpellerTileModeMirror
Definition: impeller.h:183
ImpellerPathBuilderRetain
IMPELLER_EXPORT void ImpellerPathBuilderRetain(ImpellerPathBuilder IMPELLER_NULLABLE builder)
ImpellerColorFilterRelease
IMPELLER_EXPORT void ImpellerColorFilterRelease(ImpellerColorFilter IMPELLER_NULLABLE color_filter)
kImpellerBlendModeDestination
@ kImpellerBlendModeDestination
Definition: impeller.h:124
ImpellerRoundingRadii::top_left
ImpellerPoint top_left
Definition: impeller.h:265
ImpellerTextureCreateWithContentsNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerTexture IMPELLER_NULLABLE ImpellerTextureCreateWithContentsNew(ImpellerContext IMPELLER_NONNULL context, const ImpellerTextureDescriptor *IMPELLER_NONNULL descriptor, const ImpellerMapping *IMPELLER_NONNULL contents, void *IMPELLER_NULLABLE contents_on_release_user_data)
ImpellerDisplayListBuilderNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerDisplayListBuilder IMPELLER_NULLABLE ImpellerDisplayListBuilderNew(const ImpellerRect *IMPELLER_NULLABLE cull_rect)
kImpellerBlendModeDestinationIn
@ kImpellerBlendModeDestinationIn
Definition: impeller.h:128
ImpellerParagraphBuilderPushStyle
IMPELLER_EXPORT void ImpellerParagraphBuilderPushStyle(ImpellerParagraphBuilder IMPELLER_NONNULL paragraph_builder, ImpellerParagraphStyle IMPELLER_NONNULL style)
kImpellerFontWeight800
@ kImpellerFontWeight800
Definition: impeller.h:208
ImpellerDisplayListBuilderClipPath
IMPELLER_EXPORT void ImpellerDisplayListBuilderClipPath(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, ImpellerPath IMPELLER_NONNULL path, ImpellerClipOperation op)
ImpellerRect::y
float y
Definition: impeller.h:236
ImpellerTextureDescriptor::pixel_format
ImpellerPixelFormat pixel_format
Definition: impeller.h:280
ImpellerParagraphBuilderPopStyle
IMPELLER_EXPORT void ImpellerParagraphBuilderPopStyle(ImpellerParagraphBuilder IMPELLER_NONNULL paragraph_builder)
ImpellerPaintSetStrokeWidth
IMPELLER_EXPORT void ImpellerPaintSetStrokeWidth(ImpellerPaint IMPELLER_NONNULL paint, float width)
kImpellerBlendModeScreen
@ kImpellerBlendModeScreen
Definition: impeller.h:136
kImpellerStrokeCapRound
@ kImpellerStrokeCapRound
Definition: impeller.h:161
ImpellerDisplayListBuilderDrawParagraph
IMPELLER_EXPORT void ImpellerDisplayListBuilderDrawParagraph(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, ImpellerParagraph IMPELLER_NONNULL paragraph, const ImpellerPoint *IMPELLER_NONNULL point)
ImpellerTextDirection
ImpellerTextDirection
Definition: impeller.h:226
ImpellerDisplayListBuilderScale
IMPELLER_EXPORT void ImpellerDisplayListBuilderScale(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, float x_scale, float y_scale)
kImpellerBlendModeLighten
@ kImpellerBlendModeLighten
Definition: impeller.h:139
kImpellerTileModeClamp
@ kImpellerTileModeClamp
Definition: impeller.h:181
kImpellerBlendModeModulate
@ kImpellerBlendModeModulate
Definition: impeller.h:135
mask_filter
std::shared_ptr< DlMaskFilter > mask_filter
Definition: dl_golden_blur_unittests.cc:25
ImpellerPathBuilderLineTo
IMPELLER_EXPORT void ImpellerPathBuilderLineTo(ImpellerPathBuilder IMPELLER_NONNULL builder, const ImpellerPoint *IMPELLER_NONNULL location)
ImpellerTextureSampling
ImpellerTextureSampling
Definition: impeller.h:175
ImpellerParagraphStyleSetTextAlignment
IMPELLER_EXPORT void ImpellerParagraphStyleSetTextAlignment(ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style, ImpellerTextAlignment align)
ImpellerColorSourceRelease
IMPELLER_EXPORT void ImpellerColorSourceRelease(ImpellerColorSource IMPELLER_NULLABLE color_source)
ImpellerRect::height
float height
Definition: impeller.h:238
ImpellerPaintNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerPaint IMPELLER_NULLABLE ImpellerPaintNew()
Definition: impeller.cc:333
kImpellerBlendModeClear
@ kImpellerBlendModeClear
Definition: impeller.h:122
ImpellerPaintRetain
IMPELLER_EXPORT void ImpellerPaintRetain(ImpellerPaint IMPELLER_NULLABLE paint)
ImpellerPaintRelease
IMPELLER_EXPORT void ImpellerPaintRelease(ImpellerPaint IMPELLER_NULLABLE paint)
kImpellerFontWeight200
@ kImpellerFontWeight200
Definition: impeller.h:202
ImpellerPathBuilderNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerPathBuilder IMPELLER_NULLABLE ImpellerPathBuilderNew()
Definition: impeller.cc:206
kImpellerFontStyleItalic
@ kImpellerFontStyleItalic
Definition: impeller.h:214
ImpellerDisplayListBuilderDrawPath
IMPELLER_EXPORT void ImpellerDisplayListBuilderDrawPath(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, ImpellerPath IMPELLER_NONNULL path, ImpellerPaint IMPELLER_NONNULL paint)
ImpellerParagraphStyleNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerParagraphStyle IMPELLER_NULLABLE ImpellerParagraphStyleNew()
Definition: impeller.cc:889
kImpellerStrokeJoinMiter
@ kImpellerStrokeJoinMiter
Definition: impeller.h:166
kImpellerTextureSamplingLinear
@ kImpellerTextureSamplingLinear
Definition: impeller.h:177
kImpellerFillTypeNonZero
@ kImpellerFillTypeNonZero
Definition: impeller.h:112
ImpellerTextureRelease
IMPELLER_EXPORT void ImpellerTextureRelease(ImpellerTexture IMPELLER_NULLABLE texture)
ImpellerColorSourceCreateRadialGradientNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerColorSource IMPELLER_NULLABLE ImpellerColorSourceCreateRadialGradientNew(const ImpellerPoint *IMPELLER_NONNULL center, float radius, uint32_t stop_count, const ImpellerColor *IMPELLER_NONNULL colors, const float *IMPELLER_NONNULL stops, ImpellerTileMode tile_mode, const ImpellerMatrix *IMPELLER_NULLABLE transformation)
ImpellerParagraphGetHeight
IMPELLER_EXPORT float ImpellerParagraphGetHeight(ImpellerParagraph IMPELLER_NONNULL paragraph)
ImpellerContextCreateOpenGLESNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerContext IMPELLER_NULLABLE ImpellerContextCreateOpenGLESNew(uint32_t version, ImpellerProcAddressCallback IMPELLER_NONNULL gl_proc_address_callback, void *IMPELLER_NULLABLE gl_proc_address_callback_user_data)
ImpellerFillType
ImpellerFillType
Definition: impeller.h:111
ImpellerDisplayListBuilderClipRect
IMPELLER_EXPORT void ImpellerDisplayListBuilderClipRect(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, const ImpellerRect *IMPELLER_NONNULL rect, ImpellerClipOperation op)
ImpellerSize
Definition: impeller.h:246
kImpellerTileModeRepeat
@ kImpellerTileModeRepeat
Definition: impeller.h:182
IMPELLER_NULLABLE
#define IMPELLER_NULLABLE
Definition: impeller.h:38
ImpellerParagraphBuilderNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerParagraphBuilder IMPELLER_NULLABLE ImpellerParagraphBuilderNew(ImpellerTypographyContext IMPELLER_NONNULL context)
color
DlColor color
Definition: dl_golden_blur_unittests.cc:24
kImpellerColorSpaceExtendedSRGB
@ kImpellerColorSpaceExtendedSRGB
Definition: impeller.h:196
ImpellerRoundingRadii
struct ImpellerRoundingRadii ImpellerRoundingRadii
ImpellerPaintSetColorFilter
IMPELLER_EXPORT void ImpellerPaintSetColorFilter(ImpellerPaint IMPELLER_NONNULL paint, ImpellerColorFilter IMPELLER_NONNULL color_filter)
ImpellerParagraphBuilderRetain
IMPELLER_EXPORT void ImpellerParagraphBuilderRetain(ImpellerParagraphBuilder IMPELLER_NULLABLE paragraph_builder)
kImpellerBlendModeXor
@ kImpellerBlendModeXor
Definition: impeller.h:133
ImpellerFontWeight
ImpellerFontWeight
Definition: impeller.h:200
IMPELLER_NONNULL
#define IMPELLER_NONNULL
Definition: impeller.h:39
ImpellerColorSourceCreateSweepGradientNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerColorSource IMPELLER_NULLABLE ImpellerColorSourceCreateSweepGradientNew(const ImpellerPoint *IMPELLER_NONNULL center, float start, float end, uint32_t stop_count, const ImpellerColor *IMPELLER_NONNULL colors, const float *IMPELLER_NONNULL stops, ImpellerTileMode tile_mode, const ImpellerMatrix *IMPELLER_NULLABLE transformation)
kImpellerFontWeight400
@ kImpellerFontWeight400
Definition: impeller.h:204
ImpellerRect::x
float x
Definition: impeller.h:235
ImpellerMapping::data
const uint8_t *IMPELLER_NONNULL data
Definition: impeller.h:286
ImpellerPathBuilderCubicCurveTo
IMPELLER_EXPORT void ImpellerPathBuilderCubicCurveTo(ImpellerPathBuilder IMPELLER_NONNULL builder, const ImpellerPoint *IMPELLER_NONNULL control_point_1, const ImpellerPoint *IMPELLER_NONNULL control_point_2, const ImpellerPoint *IMPELLER_NONNULL end_point)
ImpellerMaskFilterCreateBlurNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerMaskFilter IMPELLER_NULLABLE ImpellerMaskFilterCreateBlurNew(ImpellerBlurStyle style, float sigma)
Definition: impeller.cc:817
ImpellerISize::width
int64_t width
Definition: impeller.h:252
ImpellerPaintSetBlendMode
IMPELLER_EXPORT void ImpellerPaintSetBlendMode(ImpellerPaint IMPELLER_NONNULL paint, ImpellerBlendMode mode)
kImpellerBlendModeColorDodge
@ kImpellerBlendModeColorDodge
Definition: impeller.h:140
ImpellerParagraphBuilderAddText
IMPELLER_EXPORT void ImpellerParagraphBuilderAddText(ImpellerParagraphBuilder IMPELLER_NONNULL paragraph_builder, const uint8_t *IMPELLER_NULLABLE data, uint32_t length)
kImpellerBlendModeSourceIn
@ kImpellerBlendModeSourceIn
Definition: impeller.h:127
ImpellerColor::blue
float blue
Definition: impeller.h:274
kImpellerStrokeCapButt
@ kImpellerStrokeCapButt
Definition: impeller.h:160
kImpellerBlendModeLuminosity
@ kImpellerBlendModeLuminosity
Definition: impeller.h:150
ImpellerProcAddressCallback
void *IMPELLER_NULLABLE(* ImpellerProcAddressCallback)(const char *IMPELLER_NONNULL proc_name, void *IMPELLER_NULLABLE user_data)
Definition: impeller.h:104
ImpellerTypographyContextRelease
IMPELLER_EXPORT void ImpellerTypographyContextRelease(ImpellerTypographyContext IMPELLER_NULLABLE context)
ImpellerColor::red
float red
Definition: impeller.h:272
kImpellerTextAlignmentCenter
@ kImpellerTextAlignmentCenter
Definition: impeller.h:220
ImpellerPathRelease
IMPELLER_EXPORT void ImpellerPathRelease(ImpellerPath IMPELLER_NULLABLE path)
ImpellerParagraphStyleSetFontStyle
IMPELLER_EXPORT void ImpellerParagraphStyleSetFontStyle(ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style, ImpellerFontStyle style)
ImpellerColorSpace
ImpellerColorSpace
Definition: impeller.h:194
ImpellerPathBuilderMoveTo
IMPELLER_EXPORT void ImpellerPathBuilderMoveTo(ImpellerPathBuilder IMPELLER_NONNULL builder, const ImpellerPoint *IMPELLER_NONNULL location)
ImpellerColorMatrix
Definition: impeller.h:260
kImpellerDrawStyleFill
@ kImpellerDrawStyleFill
Definition: impeller.h:154
kImpellerBlurStyleNormal
@ kImpellerBlurStyleNormal
Definition: impeller.h:188
ImpellerTextAlignment
ImpellerTextAlignment
Definition: impeller.h:217
kImpellerColorSpaceSRGB
@ kImpellerColorSpaceSRGB
Definition: impeller.h:195
ImpellerRect
struct ImpellerRect ImpellerRect
ImpellerDisplayListBuilderDrawPaint
IMPELLER_EXPORT void ImpellerDisplayListBuilderDrawPaint(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, ImpellerPaint IMPELLER_NONNULL paint)
ImpellerTextureRetain
IMPELLER_EXPORT void ImpellerTextureRetain(ImpellerTexture IMPELLER_NULLABLE texture)
ImpellerTextureDescriptor::size
ImpellerISize size
Definition: impeller.h:281
kImpellerBlendModeSaturation
@ kImpellerBlendModeSaturation
Definition: impeller.h:148
ImpellerPathBuilderClose
IMPELLER_EXPORT void ImpellerPathBuilderClose(ImpellerPathBuilder IMPELLER_NONNULL builder)
ImpellerTypographyContextRetain
IMPELLER_EXPORT void ImpellerTypographyContextRetain(ImpellerTypographyContext IMPELLER_NULLABLE context)
ImpellerMatrix
struct ImpellerMatrix ImpellerMatrix
ImpellerPathBuilderAddArc
IMPELLER_EXPORT void ImpellerPathBuilderAddArc(ImpellerPathBuilder IMPELLER_NONNULL builder, const ImpellerRect *IMPELLER_NONNULL oval_bounds, float start_angle_degrees, float end_angle_degrees)
IMPELLER_DEFINE_HANDLE
#define IMPELLER_DEFINE_HANDLE(handle)
Definition: impeller.h:79
ImpellerParagraphStyleSetFontFamily
IMPELLER_EXPORT void ImpellerParagraphStyleSetFontFamily(ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style, const char *IMPELLER_NONNULL family_name)
kImpellerTextDirectionLTR
@ kImpellerTextDirectionLTR
Definition: impeller.h:228
ImpellerDisplayListBuilderRestoreToCount
IMPELLER_EXPORT void ImpellerDisplayListBuilderRestoreToCount(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, uint32_t count)
ImpellerPoint
struct ImpellerPoint ImpellerPoint
ImpellerRoundingRadii::bottom_right
ImpellerPoint bottom_right
Definition: impeller.h:268
kImpellerTextureSamplingNearestNeighbor
@ kImpellerTextureSamplingNearestNeighbor
Definition: impeller.h:176
kImpellerDrawStyleStrokeAndFill
@ kImpellerDrawStyleStrokeAndFill
Definition: impeller.h:156
ImpellerGetVersion
IMPELLER_EXPORT uint32_t ImpellerGetVersion()
Definition: impeller.cc:68
ImpellerImageFilterCreateDilateNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerImageFilter IMPELLER_NULLABLE ImpellerImageFilterCreateDilateNew(float x_radius, float y_radius)
Definition: impeller.cc:842