Flutter Impeller
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

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   
)

◆ 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() !=
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 = {};
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,
176  nullptr);
177  auto dl = Adopt<DisplayList>(
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>(
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, //
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 = {};
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,
106  nullptr);
107  auto dl = Adopt<DisplayList>(
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>(
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