| Flutter Impeller |

Classes | Typedefs | Functions
impeller::interop::testing Namespace Reference

## Classes
class | FlagObject
class | PlaygroundTest
class | TestObject

## Typedefs
using | InteropPlaygroundTest = PlaygroundTest

## Functions
| INSTANTIATE_OPENGLES_PLAYGROUND_SUITE (InteropPlaygroundTest)
| TEST_P (InteropPlaygroundTest, CanCreateContext)
| TEST_P (InteropPlaygroundTest, CanCreateDisplayListBuilder)
| TEST_P (InteropPlaygroundTest, CanCreateSurface)
| TEST_P (InteropPlaygroundTest, CanDrawRect)
| TEST_P (InteropPlaygroundTest, CanDrawImage)
| TEST_P (InteropPlaygroundTest, CanCreateOpenGLImage)
| TEST_P (InteropPlaygroundTest, CanCreateParagraphs)
| IMPELLER_DEFINE_HANDLE (FlagHandle)
| IMPELLER_DEFINE_HANDLE (TestHandle)
| TEST (InteropObjectTest, CanCreateScoped)
| TEST (InteropObjectTest, CanCreate)
| TEST (InteropObjectTest, CanCopyAssignMove)

## Typedef Documentation

## ◆ InteropPlaygroundTest

using impeller::interop::testing::InteropPlaygroundTest = typedef PlaygroundTest

Definition at line 24 of file impeller_unittests.cc.

## Function Documentation

## ◆ IMPELLER_DEFINE_HANDLE() [1/2]

impeller::interop::testing::IMPELLER_DEFINE_HANDLE | ( | FlagHandle |  | ) |

## ◆ IMPELLER_DEFINE_HANDLE() [2/2]

impeller::interop::testing::IMPELLER_DEFINE_HANDLE | ( | TestHandle |  | ) |

## ◆ INSTANTIATE_OPENGLES_PLAYGROUND_SUITE()

impeller::interop::testing::INSTANTIATE_OPENGLES_PLAYGROUND_SUITE | ( | InteropPlaygroundTest |  | ) |

## ◆ TEST() [1/3]

impeller::interop::testing::TEST | ( | InteropObjectTest | ,
|  | CanCopyAssignMove |
| ) |  |

Definition at line 75 of file object_unittests.cc.

75 {
76 auto o = Create<TestObject>(1, 2.3, 'd');
77 ASSERT_EQ(o->GetRefCountForTests(), 1u);
78 {
79 auto o1 = o; // NOLINT(performance-unnecessary-copy-initialization)
80 ASSERT_EQ(o->GetRefCountForTests(), 2u);
81 auto o2 = o; // NOLINT(performance-unnecessary-copy-initialization)
82 ASSERT_EQ(o->GetRefCountForTests(), 3u);
83 auto o3 = o1; // NOLINT(performance-unnecessary-copy-initialization)
84 ASSERT_EQ(o->GetRefCountForTests(), 4u);
85 }
86 ASSERT_EQ(o->GetRefCountForTests(), 1u);
87
88 {
89 auto o1(o); // NOLINT(performance-unnecessary-copy-initialization)
90 ASSERT_EQ(o->GetRefCountForTests(), 2u);
91 ASSERT_EQ(o1->GetRefCountForTests(), 2u);
92 }
93
94 auto move_o = std::move(o);
95 ASSERT_EQ(move_o->GetRefCountForTests(), 1u);
96 }

## ◆ TEST() [2/3]

impeller::interop::testing::TEST | ( | InteropObjectTest | ,
|  | CanCreate |
| ) |  |

Definition at line 68 of file object_unittests.cc.

68 {
69 auto object = Create<TestObject>(1, 1.3, 'c');
70 ASSERT_EQ(object->GetArg1(), 1);
71 ASSERT_EQ(object->GetArg2(), 1.3);
72 ASSERT_EQ(object->GetArg3(), 'c');
73 }

## ◆ TEST() [3/3]

impeller::interop::testing::TEST | ( | InteropObjectTest | ,
|  | CanCreateScoped |
| ) |  |

Definition at line 52 of file object_unittests.cc.

52 {
53 bool destructed = false;
54 {
55 auto object = Adopt(new FlagObject(destructed)); //
56 }
57 ASSERT_TRUE(destructed);
58
59 destructed = false;
60 {
61 auto object = Ref(new FlagObject(destructed));
62 // New objects start with retain count of 1.
63 object->Release();
64 }
65 ASSERT_TRUE(destructed);
66 }

References impeller::interop::Adopt(), and impeller::interop::Ref().

## ◆ TEST_P() [1/7]

impeller::interop::testing::TEST_P | ( | InteropPlaygroundTest | ,
|  | CanCreateContext |
| ) |  |

Definition at line 27 of file impeller_unittests.cc.

27 {
28 auto context = CreateContext();
29 ASSERT_TRUE(context);
30 }

## ◆ TEST_P() [2/7]

impeller::interop::testing::TEST_P | ( | InteropPlaygroundTest | ,
|  | CanCreateDisplayListBuilder |
| ) |  |

Definition at line 32 of file impeller_unittests.cc.

32 {
33 auto builder = ImpellerDisplayListBuilderNew(nullptr);
34 ASSERT_NE(builder, nullptr);
35 ImpellerMatrix matrix;
36 ImpellerDisplayListBuilderGetTransform(builder, &matrix);
37 ASSERT_TRUE(ToImpellerType(matrix).IsIdentity());
38 ASSERT_EQ(ImpellerDisplayListBuilderGetSaveCount(builder), 1u);
39 ImpellerDisplayListBuilderSave(builder);
40 ASSERT_EQ(ImpellerDisplayListBuilderGetSaveCount(builder), 2u);
41 // ImpellerDisplayListBuilderSave(nullptr); <-- Compiler error.
42 ImpellerDisplayListBuilderRestore(builder);
43 ASSERT_EQ(ImpellerDisplayListBuilderGetSaveCount(builder), 1u);
44 ImpellerDisplayListBuilderRelease(builder);
45 }

References impeller::interop::ImpellerDisplayListBuilderGetSaveCount(), impeller::interop::ImpellerDisplayListBuilderGetTransform(), impeller::interop::ImpellerDisplayListBuilderNew(), impeller::interop::ImpellerDisplayListBuilderRelease(), impeller::interop::ImpellerDisplayListBuilderRestore(), impeller::interop::ImpellerDisplayListBuilderSave(), and impeller::interop::ToImpellerType().

## ◆ TEST_P() [3/7]

impeller::interop::testing::TEST_P | ( | InteropPlaygroundTest | ,
|  | CanCreateOpenGLImage |
| ) |  |

Definition at line 116 of file impeller_unittests.cc.

116 {
117 auto context = GetInteropContext();
118
119 auto impeller_context = context->GetContext();
120
121 if (impeller_context->GetBackendType() !=
122 impeller::Context::BackendType::kOpenGLES) {
123 GTEST_SKIP() << "This test works with OpenGL handles is only suitable for "
124 "that backend.";
125 return;
126 }
127
128 const auto& gl_context = ContextGLES::Cast(*impeller_context);
129 const auto& gl = gl_context.GetReactor()->GetProcTable();
130
131 constexpr ISize external_texture_size = {200, 300};
132
133 Allocation texture_data;
134 ASSERT_TRUE(
135 texture_data.Truncate(Bytes{external_texture_size.Area() * 4u}, false));
136
137 const auto kClearColor = Color::Fuchsia().ToR8G8B8A8();
138
139 for (size_t i = 0; i < external_texture_size.Area() * 4u; i += 4u) {
140 memcpy(texture_data.GetBuffer() + i, kClearColor.data(), 4);
141 }
142
143 GLuint external_texture = GL_NONE;
144 gl.GenTextures(1u, &external_texture);
145 ASSERT_NE(external_texture, 0u);
146 gl.BindTexture(GL_TEXTURE_2D, external_texture);
147 gl.TexImage2D(GL_TEXTURE_2D, //
148 0, //
149 GL_RGBA, //
150 external_texture_size.width, //
151 external_texture_size.height, //
152 0, //
153 GL_RGBA, //
154 GL_UNSIGNED_BYTE, //
155 texture_data.GetBuffer() //
156 );
157
158 ImpellerTextureDescriptor desc = {};
159 desc.pixel_format = ImpellerPixelFormat::kImpellerPixelFormatRGBA8888;
160 desc.size = {external_texture_size.width, external_texture_size.height};
161 desc.mip_count = 1u;
162 auto texture = Adopt<Texture>(ImpellerTextureCreateWithOpenGLTextureHandleNew(
163 context.GetC(), //
164 &desc, //
165 external_texture //
166 ));
167 ASSERT_TRUE(texture);
168
169 ASSERT_EQ(ImpellerTextureGetOpenGLHandle(texture.GetC()), external_texture);
170
171 auto builder =
172 Adopt<DisplayListBuilder>(ImpellerDisplayListBuilderNew(nullptr));
173 ImpellerPoint point = {100, 100};
174 ImpellerDisplayListBuilderDrawTexture(builder.GetC(), texture.GetC(), &point,
175 kImpellerTextureSamplingLinear,
176 nullptr);
177 auto dl = Adopt<DisplayList>(
178 ImpellerDisplayListBuilderCreateDisplayListNew(builder.GetC()));
179 ASSERT_TRUE(
180 OpenPlaygroundHere([&](const auto& context, const auto& surface) -> bool {
181 ImpellerSurfaceDrawDisplayList(surface.GetC(), dl.GetC());
182 return true;
183 }));
184 }

References impeller::BackendCast< ContextGLES, Context >::Cast(), impeller::Color::Fuchsia(), impeller::Allocation::GetBuffer(), impeller::interop::ImpellerDisplayListBuilderCreateDisplayListNew(), impeller::interop::ImpellerDisplayListBuilderDrawTexture(), impeller::interop::ImpellerDisplayListBuilderNew(), impeller::interop::ImpellerSurfaceDrawDisplayList(), impeller::interop::ImpellerTextureCreateWithOpenGLTextureHandleNew(), impeller::interop::ImpellerTextureGetOpenGLHandle(), kImpellerPixelFormatRGBA8888, kImpellerTextureSamplingLinear, impeller::Context::kOpenGLES, ImpellerTextureDescriptor::mip_count, ImpellerTextureDescriptor::pixel_format, ImpellerTextureDescriptor::size, impeller::Color::ToR8G8B8A8(), impeller::Allocation::Truncate(), and ImpellerISize::width.

## ◆ TEST_P() [4/7]

impeller::interop::testing::TEST_P | ( | InteropPlaygroundTest | ,
|  | CanCreateParagraphs |
| ) |  |

Definition at line 186 of file impeller_unittests.cc.

186 {
187 // Create a typography context.
188 auto type_context = Adopt<TypographyContext>(ImpellerTypographyContextNew());
189 ASSERT_TRUE(type_context);
190
191 // Create a builder.
192 auto builder =
193 Adopt<ParagraphBuilder>(ImpellerParagraphBuilderNew(type_context.GetC()));
194 ASSERT_TRUE(builder);
195
196 // Create a paragraph style with the font size and foreground and background
197 // colors.
198 auto style = Adopt<ParagraphStyle>(ImpellerParagraphStyleNew());
199 ASSERT_TRUE(style);
200 ImpellerParagraphStyleSetFontSize(style.GetC(), 150.0f);
201
202 {
203 auto paint = Adopt<Paint>(ImpellerPaintNew());
204 ASSERT_TRUE(paint);
205 ImpellerColor color = {1.0, 0.0, 0.0, 1.0};
206 ImpellerPaintSetColor(paint.GetC(), &color);
207 ImpellerParagraphStyleSetForeground(style.GetC(), paint.GetC());
208 }
209
210 {
211 auto paint = Adopt<Paint>(ImpellerPaintNew());
212 ASSERT_TRUE(paint);
213 ImpellerColor color = {1.0, 1.0, 1.0, 1.0};
214 ImpellerPaintSetColor(paint.GetC(), &color);
215 ImpellerParagraphStyleSetBackground(style.GetC(), paint.GetC());
216 }
217
218 // Push the style onto the style stack.
219 ImpellerParagraphBuilderPushStyle(builder.GetC(), style.GetC());
220 std::string text = "the ⚡️ quick ⚡️ brown 🦊 fox jumps over the lazy dog 🐶.";
221
222 // Add the paragraph text data.
223 ImpellerParagraphBuilderAddText(builder.GetC(),
224 reinterpret_cast<const uint8_t*>(text.data()),
225 text.size());
226
227 // Layout and build the paragraph.
228 auto paragraph = Adopt<Paragraph>(
229 ImpellerParagraphBuilderBuildParagraphNew(builder.GetC(), 1200.0f));
230 ASSERT_TRUE(paragraph);
231
232 // Create a display list with just the paragraph drawn into it.
233 auto dl_builder =
234 Adopt<DisplayListBuilder>(ImpellerDisplayListBuilderNew(nullptr));
235 ImpellerPoint point = {20, 20};
236 ImpellerDisplayListBuilderDrawParagraph(dl_builder.GetC(), paragraph.GetC(),
237 &point);
238 auto dl = Adopt<DisplayList>(
239 ImpellerDisplayListBuilderCreateDisplayListNew(dl_builder.GetC()));
240
241 ASSERT_TRUE(
242 OpenPlaygroundHere([&](const auto& context, const auto& surface) -> bool {
243 ImpellerSurfaceDrawDisplayList(surface.GetC(), dl.GetC());
244 return true;
245 }));
246 }

References color, impeller::interop::ImpellerDisplayListBuilderCreateDisplayListNew(), impeller::interop::ImpellerDisplayListBuilderDrawParagraph(), impeller::interop::ImpellerDisplayListBuilderNew(), impeller::interop::ImpellerPaintNew(), impeller::interop::ImpellerPaintSetColor(), impeller::interop::ImpellerParagraphBuilderAddText(), impeller::interop::ImpellerParagraphBuilderBuildParagraphNew(), impeller::interop::ImpellerParagraphBuilderNew(), impeller::interop::ImpellerParagraphBuilderPushStyle(), impeller::interop::ImpellerParagraphStyleNew(), impeller::interop::ImpellerParagraphStyleSetBackground(), impeller::interop::ImpellerParagraphStyleSetFontSize(), impeller::interop::ImpellerParagraphStyleSetForeground(), impeller::interop::ImpellerSurfaceDrawDisplayList(), and impeller::interop::ImpellerTypographyContextNew().

## ◆ TEST_P() [5/7]

impeller::interop::testing::TEST_P | ( | InteropPlaygroundTest | ,
|  | CanCreateSurface |
| ) |  |

Definition at line 47 of file impeller_unittests.cc.

47 {
48 auto context = CreateContext();
49 ASSERT_TRUE(context);
50 const auto window_size = GetWindowSize();
51 ImpellerISize size = {window_size.width, window_size.height};
52 auto surface = Adopt<Surface>(ImpellerSurfaceCreateWrappedFBONew(
53 context.GetC(), //
54 0u, //
55 ImpellerPixelFormat::kImpellerPixelFormatRGBA8888, //
56 &size) //
57 );
58 ASSERT_TRUE(surface);
59 }

References impeller::interop::ImpellerSurfaceCreateWrappedFBONew(), kImpellerPixelFormatRGBA8888, and ImpellerISize::width.

## ◆ TEST_P() [6/7]

impeller::interop::testing::TEST_P | ( | InteropPlaygroundTest | ,
|  | CanDrawImage |
| ) |  |

Definition at line 83 of file impeller_unittests.cc.

83 {
84 auto compressed = LoadFixtureImageCompressed(
85 flutter::testing::OpenFixtureAsMapping("boston.jpg"));
86 ASSERT_NE(compressed, nullptr);
87 auto decompressed = compressed->Decode().ConvertToRGBA();
88 ASSERT_TRUE(decompressed.IsValid());
89 ImpellerMapping mapping = {};
90 mapping.data = decompressed.GetAllocation()->GetMapping();
91 mapping.length = decompressed.GetAllocation()->GetSize();
92
93 auto context = GetInteropContext();
94 ImpellerTextureDescriptor desc = {};
95 desc.pixel_format = ImpellerPixelFormat::kImpellerPixelFormatRGBA8888;
96 desc.size = {decompressed.GetSize().width, decompressed.GetSize().height};
97 desc.mip_count = 1u;
98 auto texture = Adopt<Texture>(ImpellerTextureCreateWithContentsNew(
99 context.GetC(), &desc, &mapping, nullptr));
100 ASSERT_TRUE(texture);
101 auto builder =
102 Adopt<DisplayListBuilder>(ImpellerDisplayListBuilderNew(nullptr));
103 ImpellerPoint point = {100, 100};
104 ImpellerDisplayListBuilderDrawTexture(builder.GetC(), texture.GetC(), &point,
105 kImpellerTextureSamplingLinear,
106 nullptr);
107 auto dl = Adopt<DisplayList>(
108 ImpellerDisplayListBuilderCreateDisplayListNew(builder.GetC()));
109 ASSERT_TRUE(
110 OpenPlaygroundHere([&](const auto& context, const auto& surface) -> bool {
111 ImpellerSurfaceDrawDisplayList(surface.GetC(), dl.GetC());
112 return true;
113 }));
114 }

References ImpellerMapping::data, impeller::interop::ImpellerDisplayListBuilderCreateDisplayListNew(), impeller::interop::ImpellerDisplayListBuilderDrawTexture(), impeller::interop::ImpellerDisplayListBuilderNew(), impeller::interop::ImpellerSurfaceDrawDisplayList(), impeller::interop::ImpellerTextureCreateWithContentsNew(), kImpellerPixelFormatRGBA8888, kImpellerTextureSamplingLinear, ImpellerMapping::length, ImpellerTextureDescriptor::mip_count, ImpellerTextureDescriptor::pixel_format, ImpellerTextureDescriptor::size, and ImpellerISize::width.

## ◆ TEST_P() [7/7]

impeller::interop::testing::TEST_P | ( | InteropPlaygroundTest | ,
|  | CanDrawRect |
| ) |  |

Definition at line 61 of file impeller_unittests.cc.

61 {
62 auto builder =
63 Adopt<DisplayListBuilder>(ImpellerDisplayListBuilderNew(nullptr));
64 auto paint = Adopt<Paint>(ImpellerPaintNew());
65 ImpellerColor color = {0.0, 0.0, 1.0, 1.0};
66 ImpellerPaintSetColor(paint.GetC(), &color);
67 ImpellerRect rect = {10, 20, 100, 200};
68 ImpellerDisplayListBuilderDrawRect(builder.GetC(), &rect, paint.GetC());
69 color = {1.0, 0.0, 0.0, 1.0};
70 ImpellerPaintSetColor(paint.GetC(), &color);
71 ImpellerDisplayListBuilderTranslate(builder.GetC(), 110, 210);
72 ImpellerDisplayListBuilderDrawRect(builder.GetC(), &rect, paint.GetC());
73 auto dl = Adopt<DisplayList>(
74 ImpellerDisplayListBuilderCreateDisplayListNew(builder.GetC()));
75 ASSERT_TRUE(dl);
76 ASSERT_TRUE(
77 OpenPlaygroundHere([&](const auto& context, const auto& surface) -> bool {
78 ImpellerSurfaceDrawDisplayList(surface.GetC(), dl.GetC());
79 return true;
80 }));
81 }

References color, impeller::interop::ImpellerDisplayListBuilderCreateDisplayListNew(), impeller::interop::ImpellerDisplayListBuilderDrawRect(), impeller::interop::ImpellerDisplayListBuilderNew(), impeller::interop::ImpellerDisplayListBuilderTranslate(), impeller::interop::ImpellerPaintNew(), impeller::interop::ImpellerPaintSetColor(), and impeller::interop::ImpellerSurfaceDrawDisplayList().

ImpellerPoint
Definition: impeller.h:241
impeller::ISize
ISize64 ISize
Definition: size.h:140
ImpellerTextureDescriptor
Definition: impeller.h:279
ImpellerParagraphBuilderBuildParagraphNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerParagraph IMPELLER_NULLABLE ImpellerParagraphBuilderBuildParagraphNew(ImpellerParagraphBuilder IMPELLER_NONNULL paragraph_builder, float width)
ImpellerMapping::length
uint64_t length
Definition: impeller.h:287
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)
ImpellerTextureDescriptor::mip_count
uint32_t mip_count
Definition: impeller.h:282
ImpellerDisplayListBuilderRelease
IMPELLER_EXPORT void ImpellerDisplayListBuilderRelease(ImpellerDisplayListBuilder IMPELLER_NULLABLE builder)
ImpellerISize
Definition: impeller.h:251
ImpellerDisplayListBuilderRestore
IMPELLER_EXPORT void ImpellerDisplayListBuilderRestore(ImpellerDisplayListBuilder IMPELLER_NONNULL builder)
ImpellerMapping
Definition: impeller.h:285
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
ImpellerColor
Definition: impeller.h:271
ImpellerRect
Definition: impeller.h:234
ImpellerDisplayListBuilderGetTransform
IMPELLER_EXPORT void ImpellerDisplayListBuilderGetTransform(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, ImpellerMatrix *IMPELLER_NONNULL out_transform)
ImpellerDisplayListBuilderGetSaveCount
IMPELLER_EXPORT uint32_t ImpellerDisplayListBuilderGetSaveCount(ImpellerDisplayListBuilder IMPELLER_NONNULL builder)
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)
ImpellerSurfaceDrawDisplayList
IMPELLER_EXPORT bool ImpellerSurfaceDrawDisplayList(ImpellerSurface IMPELLER_NULLABLE surface, ImpellerDisplayList IMPELLER_NONNULL display_list)
ImpellerMatrix
Definition: impeller.h:256
ImpellerDisplayListBuilderCreateDisplayListNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerDisplayList IMPELLER_NULLABLE ImpellerDisplayListBuilderCreateDisplayListNew(ImpellerDisplayListBuilder IMPELLER_NONNULL builder)
impeller::Context::BackendType::kOpenGLES
@ kOpenGLES
ImpellerParagraphStyleSetFontSize
IMPELLER_EXPORT void ImpellerParagraphStyleSetFontSize(ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style, float size)
kImpellerPixelFormatRGBA8888
@ kImpellerPixelFormatRGBA8888
Definition: impeller.h:172
impeller::interop::Ref
ScopedObject< Object > Ref(Object *object)
Definition: object.h:145
ImpellerPaintSetColor
IMPELLER_EXPORT void ImpellerPaintSetColor(ImpellerPaint IMPELLER_NONNULL paint, const ImpellerColor *IMPELLER_NONNULL color)
ImpellerParagraphStyleSetBackground
IMPELLER_EXPORT void ImpellerParagraphStyleSetBackground(ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style, ImpellerPaint IMPELLER_NONNULL paint)
ImpellerParagraphStyleSetForeground
IMPELLER_EXPORT void ImpellerParagraphStyleSetForeground(ImpellerParagraphStyle IMPELLER_NONNULL paragraph_style, ImpellerPaint IMPELLER_NONNULL paint)
impeller::interop::ToImpellerType
constexpr Matrix ToImpellerType(const ImpellerMatrix &m)
Definition: formats.h:198
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)
ImpellerParagraphBuilderPushStyle
IMPELLER_EXPORT void ImpellerParagraphBuilderPushStyle(ImpellerParagraphBuilder IMPELLER_NONNULL paragraph_builder, ImpellerParagraphStyle IMPELLER_NONNULL style)
ImpellerTextureDescriptor::pixel_format
ImpellerPixelFormat pixel_format
Definition: impeller.h:280
ImpellerDisplayListBuilderDrawParagraph
IMPELLER_EXPORT void ImpellerDisplayListBuilderDrawParagraph(ImpellerDisplayListBuilder IMPELLER_NONNULL builder, ImpellerParagraph IMPELLER_NONNULL paragraph, const ImpellerPoint *IMPELLER_NONNULL point)
ImpellerPaintNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerPaint IMPELLER_NULLABLE ImpellerPaintNew()
Definition: impeller.cc:333
impeller::interop::Adopt
ScopedObject< Object > Adopt(Object *object)
Definition: object.h:150
ImpellerParagraphStyleNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerParagraphStyle IMPELLER_NULLABLE ImpellerParagraphStyleNew()
Definition: impeller.cc:889
kImpellerTextureSamplingLinear
@ kImpellerTextureSamplingLinear
Definition: impeller.h:177
ImpellerParagraphBuilderNew
IMPELLER_EXPORT IMPELLER_NODISCARD ImpellerParagraphBuilder IMPELLER_NULLABLE ImpellerParagraphBuilderNew(ImpellerTypographyContext IMPELLER_NONNULL context)
color
DlColor color
Definition: dl_golden_blur_unittests.cc:24
ImpellerMapping::data
const uint8_t *IMPELLER_NONNULL data
Definition: impeller.h:286
ImpellerISize::width
int64_t width
Definition: impeller.h:252
ImpellerParagraphBuilderAddText
IMPELLER_EXPORT void ImpellerParagraphBuilderAddText(ImpellerParagraphBuilder IMPELLER_NONNULL paragraph_builder, const uint8_t *IMPELLER_NULLABLE data, uint32_t length)
impeller::Bytes
AllocationSize< 1u > Bytes
Definition: allocation_size.h:151
ImpellerTextureDescriptor::size
ImpellerISize size
Definition: impeller.h:281