Flutter Impeller
impeller::interop Namespace Reference

Namespaces

 testing
 

Classes

class  ContextGLES
 
class  ReactorWorkerGLES
 
class  SurfaceGLES
 
class  ContextMTL
 
class  SurfaceMTL
 
class  ContextVK
 
class  SurfaceVK
 
class  SwapchainVK
 
class  ColorFilter
 
class  ColorSource
 
class  Context
 
class  DisplayList
 
class  DisplayListBuilder
 
class  FragmentProgram
 
class  GlyphInfo
 Internal C++ peer of ImpellerGlyphInfo. For detailed documentation, refer to the headerdocs in the public API in impeller.h. More...
 
class  ImageFilter
 
struct  SamplersAndUniforms
 
class  LineMetrics
 Internal C++ peer of ImpellerLineMetrics. For detailed documentation, refer to the headerdocs in the public API in impeller.h. More...
 
class  MaskFilter
 
class  ObjectBase
 
class  Object
 
class  ScopedObject
 
class  Paint
 
class  Paragraph
 
class  ParagraphBuilder
 
class  ParagraphStyle
 
class  Path
 
class  PathBuilder
 
class  Surface
 
class  Texture
 
class  TypographyContext
 

Enumerations

enum class  AdoptTag { kAdopted }
 

Functions

static std::vector< std::shared_ptr< fml::Mapping > > CreateShaderLibraryMappings ()
 
static std::vector< std::shared_ptr< fml::Mapping > > CreateShaderLibraryMappings ()
 
VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL ContextVKGetInstanceProcAddress (VkInstance instance, const char *proc_name)
 
constexpr std::optional< SkRect > ToSkiaType (const ImpellerRect *rect)
 
constexpr SkPoint ToSkiaType (const Point &point)
 
constexpr SkColor ToSkiaType (const ImpellerColor &color)
 
constexpr SkVector ToSkiaVector (const Size &point)
 
constexpr SkRect ToSkiaType (const Rect &rect)
 
constexpr SkPathFillType ToSkiaType (FillType type)
 
constexpr SkIRect ToSkiaType (IRect rect)
 
template<class SkiaType , class OtherType >
std::vector< SkiaType > ToSkiaType (const std::vector< OtherType > &other_vec)
 
constexpr flutter::DlColor ToDisplayListType (Color color)
 
SkMatrix ToSkMatrix (const Matrix &matrix)
 
template<class DlType , class OtherType >
std::vector< DlType > ToDisplayListType (const std::vector< OtherType > &other_vec)
 
constexpr flutter::DlImageSampling ToDisplayListType (ImpellerTextureSampling sampling)
 
constexpr flutter::DlBlurStyle ToDisplayListType (ImpellerBlurStyle style)
 
constexpr flutter::DlBlendMode ToDisplayListType (BlendMode mode)
 
SkRRect ToSkiaType (const Rect &rect, const RoundingRadii &radii)
 
constexpr Matrix ToImpellerType (const ImpellerMatrix &m)
 
constexpr void FromImpellerType (const Matrix &from, ImpellerMatrix &to)
 
constexpr Size ToImpellerType (const ImpellerSize &size)
 
constexpr Point ToImpellerType (const ImpellerPoint &point)
 
constexpr Size ToImpellerSize (const ImpellerPoint &point)
 
constexpr Rect ToImpellerType (const ImpellerRect &rect)
 
constexpr flutter::DlTileMode ToDisplayListType (ImpellerTileMode mode)
 
constexpr RoundingRadii ToImpellerType (const ImpellerRoundingRadii &radii)
 
constexpr FillType ToImpellerType (ImpellerFillType type)
 
constexpr flutter::DlClipOp ToImpellerType (ImpellerClipOperation op)
 
constexpr Color ToImpellerType (const ImpellerColor &color)
 
constexpr BlendMode ToImpellerType (ImpellerBlendMode mode)
 
constexpr flutter::DlDrawStyle ToDisplayListType (ImpellerDrawStyle style)
 
constexpr flutter::DlStrokeCap ToDisplayListType (ImpellerStrokeCap cap)
 
constexpr flutter::DlStrokeJoin ToDisplayListType (ImpellerStrokeJoin join)
 
constexpr PixelFormat ToImpellerType (ImpellerPixelFormat format)
 
constexpr ISize ToImpellerType (const ImpellerISize &size)
 
constexpr flutter::DlColorSpace ToDisplayListType (ImpellerColorSpace color_space)
 
constexpr flutter::DlColor ToDisplayListType (ImpellerColor color)
 
constexpr txt::TextDecorationStyle ToTxtType (ImpellerTextDecorationStyle style)
 
constexpr txt::FontWeight ToTxtType (ImpellerFontWeight weight)
 
constexpr txt::FontStyle ToTxtType (ImpellerFontStyle style)
 
constexpr txt::TextAlign ToTxtType (ImpellerTextAlignment align)
 
constexpr txt::TextDirection ToTxtType (ImpellerTextDirection direction)
 
static std::string AvailableStagesAsString (const std::set< RuntimeStageBackend > &stages)
 
const char * RuntimeStageBackendToString (RuntimeStageBackend backend)
 
 DEFINE_PEER_GETTER (ColorFilter, ImpellerColorFilter)
 
 DEFINE_PEER_GETTER (ColorSource, ImpellerColorSource)
 
 DEFINE_PEER_GETTER (Context, ImpellerContext)
 
 DEFINE_PEER_GETTER (DisplayList, ImpellerDisplayList)
 
 DEFINE_PEER_GETTER (DisplayListBuilder, ImpellerDisplayListBuilder)
 
 DEFINE_PEER_GETTER (FragmentProgram, ImpellerFragmentProgram)
 
 DEFINE_PEER_GETTER (GlyphInfo, ImpellerGlyphInfo)
 
 DEFINE_PEER_GETTER (ImageFilter, ImpellerImageFilter)
 
 DEFINE_PEER_GETTER (LineMetrics, ImpellerLineMetrics)
 
 DEFINE_PEER_GETTER (MaskFilter, ImpellerMaskFilter)
 
 DEFINE_PEER_GETTER (Paint, ImpellerPaint)
 
 DEFINE_PEER_GETTER (Paragraph, ImpellerParagraph)
 
 DEFINE_PEER_GETTER (ParagraphBuilder, ImpellerParagraphBuilder)
 
 DEFINE_PEER_GETTER (ParagraphStyle, ImpellerParagraphStyle)
 
 DEFINE_PEER_GETTER (Path, ImpellerPath)
 
 DEFINE_PEER_GETTER (PathBuilder, ImpellerPathBuilder)
 
 DEFINE_PEER_GETTER (Surface, ImpellerSurface)
 
 DEFINE_PEER_GETTER (SwapchainVK, ImpellerVulkanSwapchain)
 
 DEFINE_PEER_GETTER (Texture, ImpellerTexture)
 
 DEFINE_PEER_GETTER (TypographyContext, ImpellerTypographyContext)
 
static std::string GetVersionAsString (uint32_t version)
 
IMPELLER_EXTERN_C uint32_t ImpellerGetVersion ()
 
static bool CheckVersion (uint32_t version)
 
IMPELLER_EXTERN_C ImpellerContext ImpellerContextCreateOpenGLESNew (uint32_t version, ImpellerProcAddressCallback gl_proc_address_callback, void *gl_proc_address_callback_user_data)
 
IMPELLER_EXTERN_C ImpellerContext ImpellerContextCreateMetalNew (uint32_t version)
 
IMPELLER_EXTERN_C ImpellerContext ImpellerContextCreateVulkanNew (uint32_t version, const ImpellerContextVulkanSettings *settings)
 
IMPELLER_EXTERN_C void ImpellerContextRetain (ImpellerContext context)
 
IMPELLER_EXTERN_C void ImpellerContextRelease (ImpellerContext context)
 
IMPELLER_EXTERN_C bool ImpellerContextGetVulkanInfo (ImpellerContext IMPELLER_NONNULL context, ImpellerContextVulkanInfo *out_vulkan_info)
 
IMPELLER_EXTERN_C ImpellerVulkanSwapchain ImpellerVulkanSwapchainCreateNew (ImpellerContext context, void *vulkan_surface_khr)
 
IMPELLER_EXTERN_C void ImpellerVulkanSwapchainRetain (ImpellerVulkanSwapchain swapchain)
 
IMPELLER_EXTERN_C void ImpellerVulkanSwapchainRelease (ImpellerVulkanSwapchain swapchain)
 
IMPELLER_EXTERN_C ImpellerSurface ImpellerVulkanSwapchainAcquireNextSurfaceNew (ImpellerVulkanSwapchain swapchain)
 
IMPELLER_EXTERN_C ImpellerDisplayListBuilder ImpellerDisplayListBuilderNew (const ImpellerRect *cull_rect)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderRetain (ImpellerDisplayListBuilder builder)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderRelease (ImpellerDisplayListBuilder builder)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderSave (ImpellerDisplayListBuilder builder)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderSaveLayer (ImpellerDisplayListBuilder builder, const ImpellerRect *bounds, ImpellerPaint paint, ImpellerImageFilter backdrop)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderRestore (ImpellerDisplayListBuilder builder)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderScale (ImpellerDisplayListBuilder builder, float x_scale, float y_scale)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderRotate (ImpellerDisplayListBuilder builder, float angle_degrees)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderTranslate (ImpellerDisplayListBuilder builder, float x_translation, float y_translation)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderSetTransform (ImpellerDisplayListBuilder builder, const ImpellerMatrix *transform)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderTransform (ImpellerDisplayListBuilder builder, const ImpellerMatrix *transform)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderGetTransform (ImpellerDisplayListBuilder builder, ImpellerMatrix *out_transform)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderResetTransform (ImpellerDisplayListBuilder builder)
 
IMPELLER_EXTERN_C uint32_t ImpellerDisplayListBuilderGetSaveCount (ImpellerDisplayListBuilder builder)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderRestoreToCount (ImpellerDisplayListBuilder builder, uint32_t count)
 
IMPELLER_EXTERN_C void ImpellerPathRetain (ImpellerPath path)
 
IMPELLER_EXTERN_C void ImpellerPathRelease (ImpellerPath path)
 
IMPELLER_EXTERN_C void ImpellerPathGetBounds (ImpellerPath path, ImpellerRect *out_bounds)
 
IMPELLER_EXTERN_C ImpellerPathBuilder ImpellerPathBuilderNew ()
 
IMPELLER_EXTERN_C void ImpellerPathBuilderRetain (ImpellerPathBuilder builder)
 
IMPELLER_EXTERN_C void ImpellerPathBuilderRelease (ImpellerPathBuilder builder)
 
IMPELLER_EXTERN_C void ImpellerPathBuilderMoveTo (ImpellerPathBuilder builder, const ImpellerPoint *location)
 
IMPELLER_EXTERN_C void ImpellerPathBuilderLineTo (ImpellerPathBuilder builder, const ImpellerPoint *location)
 
IMPELLER_EXTERN_C void ImpellerPathBuilderQuadraticCurveTo (ImpellerPathBuilder builder, const ImpellerPoint *control_point, const ImpellerPoint *end_point)
 
IMPELLER_EXTERN_C void ImpellerPathBuilderCubicCurveTo (ImpellerPathBuilder builder, const ImpellerPoint *control_point_1, const ImpellerPoint *control_point_2, const ImpellerPoint *end_point)
 
IMPELLER_EXTERN_C void ImpellerPathBuilderAddRect (ImpellerPathBuilder builder, const ImpellerRect *rect)
 
IMPELLER_EXTERN_C void ImpellerPathBuilderAddArc (ImpellerPathBuilder builder, const ImpellerRect *oval_bounds, float start_angle_degrees, float end_angle_degrees)
 
IMPELLER_EXTERN_C void ImpellerPathBuilderAddOval (ImpellerPathBuilder builder, const ImpellerRect *oval_bounds)
 
IMPELLER_EXTERN_C void ImpellerPathBuilderAddRoundedRect (ImpellerPathBuilder builder, const ImpellerRect *rect, const ImpellerRoundingRadii *rounding_radii)
 
IMPELLER_EXTERN_C void ImpellerPathBuilderClose (ImpellerPathBuilder builder)
 
IMPELLER_EXTERN_C ImpellerPath ImpellerPathBuilderCopyPathNew (ImpellerPathBuilder builder, ImpellerFillType fill)
 
IMPELLER_EXTERN_C ImpellerPath ImpellerPathBuilderTakePathNew (ImpellerPathBuilder builder, ImpellerFillType fill)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderClipRect (ImpellerDisplayListBuilder builder, const ImpellerRect *rect, ImpellerClipOperation op)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderClipOval (ImpellerDisplayListBuilder builder, const ImpellerRect *oval_bounds, ImpellerClipOperation op)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderClipRoundedRect (ImpellerDisplayListBuilder builder, const ImpellerRect *rect, const ImpellerRoundingRadii *radii, ImpellerClipOperation op)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderClipPath (ImpellerDisplayListBuilder builder, ImpellerPath path, ImpellerClipOperation op)
 
IMPELLER_EXTERN_C ImpellerPaint ImpellerPaintNew ()
 
IMPELLER_EXTERN_C void ImpellerPaintRetain (ImpellerPaint paint)
 
IMPELLER_EXTERN_C void ImpellerPaintRelease (ImpellerPaint paint)
 
IMPELLER_EXTERN_C void ImpellerPaintSetColor (ImpellerPaint paint, const ImpellerColor *color)
 
IMPELLER_EXTERN_C void ImpellerPaintSetBlendMode (ImpellerPaint paint, ImpellerBlendMode mode)
 
IMPELLER_EXTERN_C void ImpellerPaintSetDrawStyle (ImpellerPaint paint, ImpellerDrawStyle style)
 
IMPELLER_EXTERN_C void ImpellerPaintSetStrokeCap (ImpellerPaint paint, ImpellerStrokeCap cap)
 
IMPELLER_EXTERN_C void ImpellerPaintSetStrokeJoin (ImpellerPaint paint, ImpellerStrokeJoin join)
 
IMPELLER_EXTERN_C void ImpellerPaintSetStrokeWidth (ImpellerPaint paint, float width)
 
IMPELLER_EXTERN_C void ImpellerPaintSetStrokeMiter (ImpellerPaint paint, float miter)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderDrawPaint (ImpellerDisplayListBuilder builder, ImpellerPaint paint)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderDrawLine (ImpellerDisplayListBuilder builder, const ImpellerPoint *from, const ImpellerPoint *to, ImpellerPaint paint)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderDrawDashedLine (ImpellerDisplayListBuilder builder, const ImpellerPoint *from, const ImpellerPoint *to, float on_length, float off_length, ImpellerPaint paint)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderDrawRect (ImpellerDisplayListBuilder builder, const ImpellerRect *rect, ImpellerPaint paint)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderDrawOval (ImpellerDisplayListBuilder builder, const ImpellerRect *oval_bounds, ImpellerPaint paint)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderDrawRoundedRect (ImpellerDisplayListBuilder builder, const ImpellerRect *rect, const ImpellerRoundingRadii *radii, ImpellerPaint paint)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderDrawRoundedRectDifference (ImpellerDisplayListBuilder builder, const ImpellerRect *outer_rect, const ImpellerRoundingRadii *outer_radii, const ImpellerRect *inner_rect, const ImpellerRoundingRadii *inner_radii, ImpellerPaint paint)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderDrawPath (ImpellerDisplayListBuilder builder, ImpellerPath path, ImpellerPaint paint)
 
IMPELLER_EXTERN_C ImpellerTexture ImpellerTextureCreateWithContentsNew (ImpellerContext context, const ImpellerTextureDescriptor *descriptor, const ImpellerMapping *contents, void *contents_on_release_user_data)
 
IMPELLER_EXTERN_C ImpellerTexture ImpellerTextureCreateWithOpenGLTextureHandleNew (ImpellerContext context, const ImpellerTextureDescriptor *descriptor, uint64_t external_gl_handle)
 
IMPELLER_EXTERN_C void ImpellerTextureRetain (ImpellerTexture texture)
 
IMPELLER_EXTERN_C void ImpellerTextureRelease (ImpellerTexture texture)
 
IMPELLER_EXTERN_C uint64_t ImpellerTextureGetOpenGLHandle (ImpellerTexture texture)
 
IMPELLER_EXTERN_C void ImpellerDisplayListRetain (ImpellerDisplayList display_list)
 
IMPELLER_EXTERN_C void ImpellerDisplayListRelease (ImpellerDisplayList display_list)
 
IMPELLER_EXTERN_C ImpellerDisplayList ImpellerDisplayListBuilderCreateDisplayListNew (ImpellerDisplayListBuilder builder)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderDrawDisplayList (ImpellerDisplayListBuilder builder, ImpellerDisplayList display_list, float opacity)
 
IMPELLER_EXTERN_C ImpellerSurface ImpellerSurfaceCreateWrappedFBONew (ImpellerContext context, uint64_t fbo, ImpellerPixelFormat format, const ImpellerISize *size)
 
IMPELLER_EXTERN_C ImpellerSurface ImpellerSurfaceCreateWrappedMetalDrawableNew (ImpellerContext context, void *metal_drawable)
 
IMPELLER_EXTERN_C void ImpellerSurfaceRetain (ImpellerSurface surface)
 
IMPELLER_EXTERN_C void ImpellerSurfaceRelease (ImpellerSurface surface)
 
IMPELLER_EXTERN_C bool ImpellerSurfaceDrawDisplayList (ImpellerSurface surface, ImpellerDisplayList display_list)
 
IMPELLER_EXTERN_C bool ImpellerSurfacePresent (ImpellerSurface surface)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderDrawTexture (ImpellerDisplayListBuilder builder, ImpellerTexture texture, const ImpellerPoint *point, ImpellerTextureSampling sampling, ImpellerPaint paint)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderDrawTextureRect (ImpellerDisplayListBuilder builder, ImpellerTexture texture, const ImpellerRect *src_rect, const ImpellerRect *dst_rect, ImpellerTextureSampling sampling, ImpellerPaint paint)
 
IMPELLER_EXTERN_C void ImpellerColorSourceRetain (ImpellerColorSource color_source)
 
IMPELLER_EXTERN_C void ImpellerColorSourceRelease (ImpellerColorSource color_source)
 
static std::pair< std::vector< flutter::DlColor >, std::vector< Scalar > > ParseColorsAndStops (uint32_t stop_count, const ImpellerColor *colors, const float *stops)
 
IMPELLER_EXTERN_C ImpellerColorSource ImpellerColorSourceCreateLinearGradientNew (const ImpellerPoint *start_point, const ImpellerPoint *end_point, uint32_t stop_count, const ImpellerColor *colors, const float *stops, ImpellerTileMode tile_mode, const ImpellerMatrix *transformation)
 
IMPELLER_EXTERN_C ImpellerColorSource ImpellerColorSourceCreateRadialGradientNew (const ImpellerPoint *center, float radius, uint32_t stop_count, const ImpellerColor *colors, const float *stops, ImpellerTileMode tile_mode, const ImpellerMatrix *transformation)
 
IMPELLER_EXTERN_C ImpellerColorSource ImpellerColorSourceCreateConicalGradientNew (const ImpellerPoint *start_center, float start_radius, const ImpellerPoint *end_center, float end_radius, uint32_t stop_count, const ImpellerColor *colors, const float *stops, ImpellerTileMode tile_mode, const ImpellerMatrix *transformation)
 
IMPELLER_EXTERN_C ImpellerColorSource ImpellerColorSourceCreateSweepGradientNew (const ImpellerPoint *center, float start, float end, uint32_t stop_count, const ImpellerColor *colors, const float *stops, ImpellerTileMode tile_mode, const ImpellerMatrix *transformation)
 
IMPELLER_EXTERN_C ImpellerColorSource ImpellerColorSourceCreateImageNew (ImpellerTexture image, ImpellerTileMode horizontal_tile_mode, ImpellerTileMode vertical_tile_mode, ImpellerTextureSampling sampling, const ImpellerMatrix *transformation)
 
static SamplersAndUniforms ReadSamplersAndUniforms (ImpellerTexture *samplers, size_t samplers_count, const uint8_t *data, size_t data_bytes_length)
 
IMPELLER_EXTERN_C ImpellerColorSource ImpellerColorSourceCreateFragmentProgramNew (ImpellerContext context, ImpellerFragmentProgram fragment_program, ImpellerTexture *samplers, size_t samplers_count, const uint8_t *data, size_t data_bytes_length)
 
IMPELLER_EXTERN_C void ImpellerColorFilterRetain (ImpellerColorFilter color_filter)
 
IMPELLER_EXTERN_C void ImpellerColorFilterRelease (ImpellerColorFilter color_filter)
 
IMPELLER_EXTERN_C ImpellerColorFilter ImpellerColorFilterCreateBlendNew (const ImpellerColor *color, ImpellerBlendMode blend_mode)
 
IMPELLER_EXTERN_C ImpellerColorFilter ImpellerColorFilterCreateColorMatrixNew (const ImpellerColorMatrix *color_matrix)
 
IMPELLER_EXTERN_C void ImpellerMaskFilterRetain (ImpellerMaskFilter mask_filter)
 
IMPELLER_EXTERN_C void ImpellerMaskFilterRelease (ImpellerMaskFilter mask_filter)
 
IMPELLER_EXTERN_C ImpellerMaskFilter ImpellerMaskFilterCreateBlurNew (ImpellerBlurStyle style, float sigma)
 
IMPELLER_EXTERN_C void ImpellerImageFilterRetain (ImpellerImageFilter image_filter)
 
IMPELLER_EXTERN_C void ImpellerImageFilterRelease (ImpellerImageFilter image_filter)
 
IMPELLER_EXTERN_C ImpellerImageFilter ImpellerImageFilterCreateBlurNew (float x_sigma, float y_sigma, ImpellerTileMode tile_mode)
 
IMPELLER_EXTERN_C ImpellerImageFilter ImpellerImageFilterCreateDilateNew (float x_radius, float y_radius)
 
IMPELLER_EXTERN_C ImpellerImageFilter ImpellerImageFilterCreateErodeNew (float x_radius, float y_radius)
 
IMPELLER_EXTERN_C ImpellerImageFilter ImpellerImageFilterCreateMatrixNew (const ImpellerMatrix *matrix, ImpellerTextureSampling sampling)
 
IMPELLER_EXTERN_C ImpellerImageFilter ImpellerImageFilterCreateFragmentProgramNew (ImpellerContext context, ImpellerFragmentProgram fragment_program, ImpellerTexture *samplers, size_t samplers_count, const uint8_t *data, size_t data_bytes_length)
 
IMPELLER_EXTERN_C ImpellerImageFilter ImpellerImageFilterCreateComposeNew (ImpellerImageFilter outer, ImpellerImageFilter inner)
 
IMPELLER_EXTERN_C void ImpellerPaintSetColorFilter (ImpellerPaint paint, ImpellerColorFilter color_filter)
 
IMPELLER_EXTERN_C void ImpellerPaintSetColorSource (ImpellerPaint paint, ImpellerColorSource color_source)
 
IMPELLER_EXTERN_C void ImpellerPaintSetImageFilter (ImpellerPaint paint, ImpellerImageFilter image_filter)
 
IMPELLER_EXTERN_C void ImpellerPaintSetMaskFilter (ImpellerPaint paint, ImpellerMaskFilter mask_filter)
 
IMPELLER_EXTERN_C ImpellerParagraphStyle ImpellerParagraphStyleNew ()
 
IMPELLER_EXTERN_C void ImpellerParagraphStyleRetain (ImpellerParagraphStyle paragraph_style)
 
IMPELLER_EXTERN_C void ImpellerParagraphStyleRelease (ImpellerParagraphStyle paragraph_style)
 
IMPELLER_EXTERN_C void ImpellerParagraphStyleSetForeground (ImpellerParagraphStyle paragraph_style, ImpellerPaint paint)
 
IMPELLER_EXTERN_C void ImpellerParagraphStyleSetBackground (ImpellerParagraphStyle paragraph_style, ImpellerPaint paint)
 
IMPELLER_EXTERN_C void ImpellerParagraphStyleSetFontWeight (ImpellerParagraphStyle paragraph_style, ImpellerFontWeight weight)
 
IMPELLER_EXTERN_C void ImpellerParagraphStyleSetFontStyle (ImpellerParagraphStyle paragraph_style, ImpellerFontStyle style)
 
static std::string ReadString (const char *string)
 
IMPELLER_EXTERN_C void ImpellerParagraphStyleSetFontFamily (ImpellerParagraphStyle paragraph_style, const char *family_name)
 
IMPELLER_EXTERN_C void ImpellerParagraphStyleSetFontSize (ImpellerParagraphStyle paragraph_style, float size)
 
IMPELLER_EXTERN_C void ImpellerParagraphStyleSetHeight (ImpellerParagraphStyle paragraph_style, float height)
 
IMPELLER_EXTERN_C void ImpellerParagraphStyleSetTextAlignment (ImpellerParagraphStyle paragraph_style, ImpellerTextAlignment align)
 
IMPELLER_EXTERN_C void ImpellerParagraphStyleSetTextDirection (ImpellerParagraphStyle paragraph_style, ImpellerTextDirection direction)
 
IMPELLER_EXTERN_C void ImpellerParagraphStyleSetTextDecoration (ImpellerParagraphStyle paragraph_style, const ImpellerTextDecoration *decoration)
 
IMPELLER_EXTERN_C void ImpellerParagraphStyleSetMaxLines (ImpellerParagraphStyle paragraph_style, uint32_t max_lines)
 
IMPELLER_EXTERN_C void ImpellerParagraphStyleSetLocale (ImpellerParagraphStyle paragraph_style, const char *locale)
 
IMPELLER_EXTERN_C void ImpellerParagraphStyleSetEllipsis (ImpellerParagraphStyle paragraph_style, const char *ellipsis)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderDrawParagraph (ImpellerDisplayListBuilder builder, ImpellerParagraph paragraph, const ImpellerPoint *point)
 
IMPELLER_EXTERN_C void ImpellerDisplayListBuilderDrawShadow (ImpellerDisplayListBuilder builder, ImpellerPath path, const ImpellerColor *color, float elevation, bool occluder_is_transparent, float device_pixel_ratio)
 
IMPELLER_EXTERN_C ImpellerParagraphBuilder ImpellerParagraphBuilderNew (ImpellerTypographyContext context)
 
IMPELLER_EXTERN_C void ImpellerParagraphBuilderRetain (ImpellerParagraphBuilder paragraph_builder)
 
IMPELLER_EXTERN_C void ImpellerParagraphBuilderRelease (ImpellerParagraphBuilder paragraph_builder)
 
IMPELLER_EXTERN_C void ImpellerParagraphBuilderPushStyle (ImpellerParagraphBuilder paragraph_builder, ImpellerParagraphStyle style)
 
IMPELLER_EXTERN_C void ImpellerParagraphBuilderPopStyle (ImpellerParagraphBuilder paragraph_builder)
 
IMPELLER_EXTERN_C void ImpellerParagraphBuilderAddText (ImpellerParagraphBuilder paragraph_builder, const uint8_t *data, uint32_t length)
 
IMPELLER_EXTERN_C ImpellerParagraph ImpellerParagraphBuilderBuildParagraphNew (ImpellerParagraphBuilder paragraph_builder, float width)
 
IMPELLER_EXTERN_C void ImpellerParagraphRetain (ImpellerParagraph paragraph)
 
IMPELLER_EXTERN_C void ImpellerParagraphRelease (ImpellerParagraph paragraph)
 
IMPELLER_EXTERN_C float ImpellerParagraphGetMaxWidth (ImpellerParagraph paragraph)
 
IMPELLER_EXTERN_C float ImpellerParagraphGetHeight (ImpellerParagraph paragraph)
 
IMPELLER_EXTERN_C float ImpellerParagraphGetLongestLineWidth (ImpellerParagraph paragraph)
 
IMPELLER_EXTERN_C float ImpellerParagraphGetMinIntrinsicWidth (ImpellerParagraph paragraph)
 
IMPELLER_EXTERN_C float ImpellerParagraphGetMaxIntrinsicWidth (ImpellerParagraph paragraph)
 
IMPELLER_EXTERN_C float ImpellerParagraphGetIdeographicBaseline (ImpellerParagraph paragraph)
 
IMPELLER_EXTERN_C float ImpellerParagraphGetAlphabeticBaseline (ImpellerParagraph paragraph)
 
IMPELLER_EXTERN_C uint32_t ImpellerParagraphGetLineCount (ImpellerParagraph paragraph)
 
IMPELLER_EXTERN_C void ImpellerParagraphGetWordBoundary (ImpellerParagraph paragraph, size_t code_unit_index, ImpellerRange *out_range)
 
IMPELLER_EXTERN_C ImpellerTypographyContext ImpellerTypographyContextNew ()
 
IMPELLER_EXTERN_C void ImpellerTypographyContextRetain (ImpellerTypographyContext context)
 
IMPELLER_EXTERN_C void ImpellerTypographyContextRelease (ImpellerTypographyContext context)
 
IMPELLER_EXTERN_C bool ImpellerTypographyContextRegisterFont (ImpellerTypographyContext context, const ImpellerMapping *contents, void *contents_on_release_user_data, const char *family_name_alias)
 
IMPELLER_EXTERN_C ImpellerLineMetrics ImpellerParagraphGetLineMetrics (ImpellerParagraph paragraph)
 
IMPELLER_EXTERN_C ImpellerGlyphInfo ImpellerParagraphCreateGlyphInfoAtCodeUnitIndexNew (ImpellerParagraph paragraph, size_t code_unit_index)
 
IMPELLER_EXTERN_C ImpellerGlyphInfo ImpellerParagraphCreateGlyphInfoAtParagraphCoordinatesNew (ImpellerParagraph paragraph, double x, double y)
 
IMPELLER_EXTERN_C void ImpellerLineMetricsRetain (ImpellerLineMetrics line_metrics)
 
IMPELLER_EXTERN_C void ImpellerLineMetricsRelease (ImpellerLineMetrics line_metrics)
 
IMPELLER_EXTERN_C double ImpellerLineMetricsGetUnscaledAscent (ImpellerLineMetrics metrics, size_t line)
 
IMPELLER_EXTERN_C double ImpellerLineMetricsGetAscent (ImpellerLineMetrics metrics, size_t line)
 
IMPELLER_EXTERN_C double ImpellerLineMetricsGetDescent (ImpellerLineMetrics metrics, size_t line)
 
IMPELLER_EXTERN_C double ImpellerLineMetricsGetBaseline (ImpellerLineMetrics metrics, size_t line)
 
IMPELLER_EXTERN_C bool ImpellerLineMetricsIsHardbreak (ImpellerLineMetrics metrics, size_t line)
 
IMPELLER_EXTERN_C double ImpellerLineMetricsGetWidth (ImpellerLineMetrics metrics, size_t line)
 
IMPELLER_EXTERN_C double ImpellerLineMetricsGetHeight (ImpellerLineMetrics metrics, size_t line)
 
IMPELLER_EXTERN_C double ImpellerLineMetricsGetLeft (ImpellerLineMetrics metrics, size_t line)
 
IMPELLER_EXTERN_C size_t ImpellerLineMetricsGetCodeUnitStartIndex (ImpellerLineMetrics metrics, size_t line)
 
IMPELLER_EXTERN_C size_t ImpellerLineMetricsGetCodeUnitEndIndex (ImpellerLineMetrics metrics, size_t line)
 
IMPELLER_EXTERN_C size_t ImpellerLineMetricsGetCodeUnitEndIndexExcludingWhitespace (ImpellerLineMetrics metrics, size_t line)
 
IMPELLER_EXTERN_C size_t ImpellerLineMetricsGetCodeUnitEndIndexIncludingNewline (ImpellerLineMetrics metrics, size_t line)
 
IMPELLER_EXTERN_C void ImpellerGlyphInfoRetain (ImpellerGlyphInfo glyph_info)
 
IMPELLER_EXTERN_C void ImpellerGlyphInfoRelease (ImpellerGlyphInfo glyph_info)
 
IMPELLER_EXTERN_C size_t ImpellerGlyphInfoGetGraphemeClusterCodeUnitRangeBegin (ImpellerGlyphInfo glyph_info)
 
IMPELLER_EXTERN_C size_t ImpellerGlyphInfoGetGraphemeClusterCodeUnitRangeEnd (ImpellerGlyphInfo glyph_info)
 
IMPELLER_EXTERN_C void ImpellerGlyphInfoGetGraphemeClusterBounds (ImpellerGlyphInfo glyph_info, ImpellerRect *out_bounds)
 
IMPELLER_EXTERN_C bool ImpellerGlyphInfoIsEllipsis (ImpellerGlyphInfo glyph_info)
 
IMPELLER_EXTERN_C ImpellerTextDirection ImpellerGlyphInfoGetTextDirection (ImpellerGlyphInfo glyph_info)
 
static std::shared_ptr< fml::Mapping > MakeCopyableMapping (const ImpellerMapping *data, void *user_data)
 
IMPELLER_EXTERN_C ImpellerFragmentProgram ImpellerFragmentProgramNew (const ImpellerMapping *data, void *data_release_user_data)
 
IMPELLER_EXTERN_C void ImpellerFragmentProgramRetain (ImpellerFragmentProgram fragment_program)
 
IMPELLER_EXTERN_C void ImpellerFragmentProgramRelease (ImpellerFragmentProgram fragment_program)
 
template<typename Object >
ScopedObject< ObjectRef (Object *object)
 
template<typename Object >
ScopedObject< ObjectAdopt (Object *object)
 
template<typename Object >
ScopedObject< ObjectAdopt (typename Object::InteropCSibling *object)
 
template<typename Object , typename... CtorArgs>
ScopedObject< ObjectCreate (CtorArgs &&... args)
 
static sk_sp< SkTypeface > CreateTypefaceFromFontData (std::unique_ptr< fml::Mapping > font_data)
 

Variables

thread_local std::function< PFN_vkVoidFunction(VkInstance instance, const char *proc_name)> sContextVKProcAddressCallback
 

Enumeration Type Documentation

◆ AdoptTag

Enumerator
kAdopted 

Definition at line 62 of file object.h.

62  {
63  kAdopted,
64 };

Function Documentation

◆ Adopt() [1/2]

template<typename Object >
ScopedObject<Object> impeller::interop::Adopt ( Object object)

Definition at line 151 of file object.h.

151  {
152  return ScopedObject<Object>{object, AdoptTag::kAdopted};
153 }

References kAdopted.

Referenced by Adopt(), and impeller::interop::testing::TEST().

◆ Adopt() [2/2]

template<typename Object >
ScopedObject<Object> impeller::interop::Adopt ( typename Object::InteropCSibling object)

Definition at line 156 of file object.h.

156  {
157  return Adopt(reinterpret_cast<Object*>(object));
158 }
ScopedObject< Object > Adopt(typename Object::InteropCSibling *object)
Definition: object.h:156

References Adopt().

◆ AvailableStagesAsString()

static std::string impeller::interop::AvailableStagesAsString ( const std::set< RuntimeStageBackend > &  stages)
static

Definition at line 39 of file fragment_program.cc.

40  {
41  std::stringstream stream;
42  size_t count = 0;
43  for (const auto& stage : stages) {
44  stream << RuntimeStageBackendToString(stage);
45  count++;
46  if (count != stages.size()) {
47  stream << ", ";
48  }
49  }
50  return stream.str();
51 }
const char * RuntimeStageBackendToString(RuntimeStageBackend backend)

References RuntimeStageBackendToString().

Referenced by impeller::interop::FragmentProgram::FindRuntimeStage().

◆ CheckVersion()

static bool impeller::interop::CheckVersion ( uint32_t  version)
static

Definition at line 96 of file impeller.cc.

96  {
97  if (version != IMPELLER_VERSION) {
98  VALIDATION_LOG << "This version of Impeller ("
100  << "doesn't match the version the user expects ("
101  << GetVersionAsString(version) << ").";
102  return false;
103  }
104  return true;
105 }
IMPELLER_EXPORT uint32_t ImpellerGetVersion()
Get the version of Impeller standalone API. This is the API that will be accepted for validity checks...
#define IMPELLER_VERSION
Definition: impeller.h:103
static std::string GetVersionAsString(uint32_t version)
Definition: impeller.cc:82
#define VALIDATION_LOG
Definition: validation.h:91

References GetVersionAsString(), IMPELLER_VERSION, ImpellerGetVersion(), and VALIDATION_LOG.

Referenced by ImpellerContextCreateMetalNew(), ImpellerContextCreateOpenGLESNew(), and ImpellerContextCreateVulkanNew().

◆ ContextVKGetInstanceProcAddress()

VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL impeller::interop::ContextVKGetInstanceProcAddress ( VkInstance  instance,
const char *  proc_name 
)

Definition at line 36 of file context_vk.cc.

38  {
40  return sContextVKProcAddressCallback(instance, proc_name);
41  }
42  return nullptr;
43 }
thread_local std::function< PFN_vkVoidFunction(VkInstance instance, const char *proc_name)> sContextVKProcAddressCallback
Definition: context_vk.cc:34

References sContextVKProcAddressCallback.

Referenced by impeller::interop::ContextVK::Create().

◆ Create()

template<typename Object , typename... CtorArgs>
ScopedObject<Object> impeller::interop::Create ( CtorArgs &&...  args)

Definition at line 161 of file object.h.

161  {
162  return ScopedObject<Object>{new Object(std::forward<CtorArgs>(args)...),
163  AdoptTag::kAdopted};
164 }

References kAdopted.

Referenced by impeller::android::testing::CreateContext(), impeller::Pool< T >::Grab(), impeller::android::ProcTable::ProcTable(), and impeller::testing::TEST_P().

◆ CreateShaderLibraryMappings() [1/2]

static std::vector<std::shared_ptr<fml::Mapping> > impeller::interop::CreateShaderLibraryMappings ( )
static

Definition at line 17 of file context_mtl.mm.

17  {
18  return {std::make_shared<fml::NonOwnedMapping>(
19  impeller_entity_shaders_data, impeller_entity_shaders_length),
20  std::make_shared<fml::NonOwnedMapping>(
21  impeller_modern_shaders_data, impeller_modern_shaders_length),
22  std::make_shared<fml::NonOwnedMapping>(
23  impeller_framebuffer_blend_shaders_data,
24  impeller_framebuffer_blend_shaders_length),
25  std::make_shared<fml::NonOwnedMapping>(
26  impeller_compute_shaders_data, impeller_compute_shaders_length)};
27 }

Referenced by impeller::interop::ContextMTL::Create(), and impeller::interop::ContextVK::Create().

◆ CreateShaderLibraryMappings() [2/2]

static std::vector<std::shared_ptr<fml::Mapping> > impeller::interop::CreateShaderLibraryMappings ( )
static

Definition at line 17 of file context_vk.cc.

17  {
18  return {
19  std::make_shared<fml::NonOwnedMapping>(impeller_entity_shaders_vk_data,
20  impeller_entity_shaders_vk_length),
21  std::make_shared<fml::NonOwnedMapping>(impeller_modern_shaders_vk_data,
22  impeller_modern_shaders_vk_length),
23  std::make_shared<fml::NonOwnedMapping>(
24  impeller_framebuffer_blend_shaders_vk_data,
25  impeller_framebuffer_blend_shaders_vk_length),
26  std::make_shared<fml::NonOwnedMapping>(
27  impeller_compute_shaders_vk_data, impeller_compute_shaders_vk_length),
28  };
29 }

◆ CreateTypefaceFromFontData()

static sk_sp<SkTypeface> impeller::interop::CreateTypefaceFromFontData ( std::unique_ptr< fml::Mapping >  font_data)
static

Definition at line 43 of file typography_context.cc.

44  {
45  if (!font_data) {
46  VALIDATION_LOG << "Invalid font data.";
47  return nullptr;
48  }
49  auto sk_data_context = font_data.release();
50  auto sk_data = SkData::MakeWithProc(
51  sk_data_context->GetMapping(), // data ptr
52  sk_data_context->GetSize(), // data size
53  [](const void*, void* context) {
54  delete reinterpret_cast<decltype(sk_data_context)>(context);
55  }, // release callback
56  sk_data_context // release callback context
57  );
58  auto sk_data_stream = SkMemoryStream::Make(sk_data);
59  auto sk_typeface =
60  txt::GetDefaultFontManager()->makeFromStream(std::move(sk_data_stream));
61  if (!sk_typeface) {
62  VALIDATION_LOG << "Could not create typeface with data.";
63  return nullptr;
64  }
65  return sk_typeface;
66 }

References VALIDATION_LOG.

Referenced by impeller::interop::TypographyContext::RegisterFont().

◆ DEFINE_PEER_GETTER() [1/20]

impeller::interop::DEFINE_PEER_GETTER ( ColorFilter  ,
ImpellerColorFilter   
)

◆ DEFINE_PEER_GETTER() [2/20]

impeller::interop::DEFINE_PEER_GETTER ( ColorSource  ,
ImpellerColorSource   
)

◆ DEFINE_PEER_GETTER() [3/20]

impeller::interop::DEFINE_PEER_GETTER ( Context  ,
ImpellerContext   
)

◆ DEFINE_PEER_GETTER() [4/20]

impeller::interop::DEFINE_PEER_GETTER ( DisplayList  ,
ImpellerDisplayList   
)

◆ DEFINE_PEER_GETTER() [5/20]

impeller::interop::DEFINE_PEER_GETTER ( DisplayListBuilder  ,
ImpellerDisplayListBuilder   
)

◆ DEFINE_PEER_GETTER() [6/20]

impeller::interop::DEFINE_PEER_GETTER ( FragmentProgram  ,
ImpellerFragmentProgram   
)

◆ DEFINE_PEER_GETTER() [7/20]

impeller::interop::DEFINE_PEER_GETTER ( GlyphInfo  ,
ImpellerGlyphInfo   
)

◆ DEFINE_PEER_GETTER() [8/20]

impeller::interop::DEFINE_PEER_GETTER ( ImageFilter  ,
ImpellerImageFilter   
)

◆ DEFINE_PEER_GETTER() [9/20]

impeller::interop::DEFINE_PEER_GETTER ( LineMetrics  ,
ImpellerLineMetrics   
)

◆ DEFINE_PEER_GETTER() [10/20]

impeller::interop::DEFINE_PEER_GETTER ( MaskFilter  ,
ImpellerMaskFilter   
)

◆ DEFINE_PEER_GETTER() [11/20]

impeller::interop::DEFINE_PEER_GETTER ( Paint  ,
ImpellerPaint   
)

◆ DEFINE_PEER_GETTER() [12/20]

impeller::interop::DEFINE_PEER_GETTER ( Paragraph  ,
ImpellerParagraph   
)

◆ DEFINE_PEER_GETTER() [13/20]

impeller::interop::DEFINE_PEER_GETTER ( ParagraphBuilder  ,
ImpellerParagraphBuilder   
)

◆ DEFINE_PEER_GETTER() [14/20]

impeller::interop::DEFINE_PEER_GETTER ( ParagraphStyle  ,
ImpellerParagraphStyle   
)

◆ DEFINE_PEER_GETTER() [15/20]

impeller::interop::DEFINE_PEER_GETTER ( Path  ,
ImpellerPath   
)

◆ DEFINE_PEER_GETTER() [16/20]

impeller::interop::DEFINE_PEER_GETTER ( PathBuilder  ,
ImpellerPathBuilder   
)

◆ DEFINE_PEER_GETTER() [17/20]

impeller::interop::DEFINE_PEER_GETTER ( Surface  ,
ImpellerSurface   
)

◆ DEFINE_PEER_GETTER() [18/20]

impeller::interop::DEFINE_PEER_GETTER ( SwapchainVK  ,
ImpellerVulkanSwapchain   
)

◆ DEFINE_PEER_GETTER() [19/20]

impeller::interop::DEFINE_PEER_GETTER ( Texture  ,
ImpellerTexture   
)

◆ DEFINE_PEER_GETTER() [20/20]

impeller::interop::DEFINE_PEER_GETTER ( TypographyContext  ,
ImpellerTypographyContext   
)

◆ FromImpellerType()

constexpr void impeller::interop::FromImpellerType ( const Matrix from,
ImpellerMatrix to 
)
constexpr

Definition at line 221 of file formats.h.

221  {
222  to.m[0] = from.m[0];
223  to.m[1] = from.m[1];
224  to.m[2] = from.m[2];
225  to.m[3] = from.m[3];
226  to.m[4] = from.m[4];
227  to.m[5] = from.m[5];
228  to.m[6] = from.m[6];
229  to.m[7] = from.m[7];
230  to.m[8] = from.m[8];
231  to.m[9] = from.m[9];
232  to.m[10] = from.m[10];
233  to.m[11] = from.m[11];
234  to.m[12] = from.m[12];
235  to.m[13] = from.m[13];
236  to.m[14] = from.m[14];
237  to.m[15] = from.m[15];
238 }
float m[16]
Definition: impeller.h:540

References impeller::Matrix::m, and ImpellerMatrix::m.

Referenced by ImpellerDisplayListBuilderGetTransform().

◆ GetVersionAsString()

static std::string impeller::interop::GetVersionAsString ( uint32_t  version)
static

Definition at line 82 of file impeller.cc.

82  {
83  std::stringstream stream;
84  stream << IMPELLER_VERSION_GET_VARIANT(version) << "."
85  << IMPELLER_VERSION_GET_MAJOR(version) << "."
86  << IMPELLER_VERSION_GET_MINOR(version) << "."
87  << IMPELLER_VERSION_GET_PATCH(version);
88  return stream.str();
89 }
#define IMPELLER_VERSION_GET_PATCH(version)
Definition: impeller.h:135
#define IMPELLER_VERSION_GET_MAJOR(version)
Definition: impeller.h:119
#define IMPELLER_VERSION_GET_VARIANT(version)
Definition: impeller.h:112
#define IMPELLER_VERSION_GET_MINOR(version)
Definition: impeller.h:127

References IMPELLER_VERSION_GET_MAJOR, IMPELLER_VERSION_GET_MINOR, IMPELLER_VERSION_GET_PATCH, and IMPELLER_VERSION_GET_VARIANT.

Referenced by CheckVersion().

◆ ImpellerColorFilterCreateBlendNew()

IMPELLER_EXTERN_C ImpellerColorFilter impeller::interop::ImpellerColorFilterCreateBlendNew ( const ImpellerColor color,
ImpellerBlendMode  blend_mode 
)

Definition at line 1014 of file impeller.cc.

1016  {
1017  return ColorFilter::MakeBlend(ToImpellerType(*color),
1018  ToImpellerType(blend_mode))
1019  .Leak();
1020 }
constexpr Matrix ToImpellerType(const ImpellerMatrix &m)
Definition: formats.h:213

References impeller::interop::ColorFilter::MakeBlend(), and ToImpellerType().

◆ ImpellerColorFilterCreateColorMatrixNew()

IMPELLER_EXTERN_C ImpellerColorFilter impeller::interop::ImpellerColorFilterCreateColorMatrixNew ( const ImpellerColorMatrix color_matrix)

Definition at line 1023 of file impeller.cc.

1024  {
1025  return ColorFilter::MakeMatrix(color_matrix->m).Leak();
1026 }

References ImpellerColorMatrix::m, and impeller::interop::ColorFilter::MakeMatrix().

◆ ImpellerColorFilterRelease()

IMPELLER_EXTERN_C void impeller::interop::ImpellerColorFilterRelease ( ImpellerColorFilter  color_filter)

Definition at line 1009 of file impeller.cc.

1009  {
1010  ObjectBase::SafeRelease(color_filter);
1011 }

References impeller::interop::ObjectBase::SafeRelease().

◆ ImpellerColorFilterRetain()

IMPELLER_EXTERN_C void impeller::interop::ImpellerColorFilterRetain ( ImpellerColorFilter  color_filter)

Definition at line 1004 of file impeller.cc.

1004  {
1005  ObjectBase::SafeRetain(color_filter);
1006 }

References impeller::interop::ObjectBase::SafeRetain().

◆ ImpellerColorSourceCreateConicalGradientNew()

IMPELLER_EXTERN_C ImpellerColorSource impeller::interop::ImpellerColorSourceCreateConicalGradientNew ( const ImpellerPoint start_center,
float  start_radius,
const ImpellerPoint end_center,
float  end_radius,
uint32_t  stop_count,
const ImpellerColor colors,
const float *  stops,
ImpellerTileMode  tile_mode,
const ImpellerMatrix transformation 
)

Definition at line 890 of file impeller.cc.

899  {
900  const auto colors_and_stops = ParseColorsAndStops(stop_count, colors, stops);
901  return ColorSource::MakeConicalGradient(
902  ToImpellerType(*start_center), //
903  start_radius, //
904  ToImpellerType(*end_center), //
905  end_radius, //
906  colors_and_stops.first, //
907  colors_and_stops.second, //
908  ToDisplayListType(tile_mode), //
909  transformation == nullptr ? Matrix{}
910  : ToImpellerType(*transformation) //
911  )
912  .Leak();
913 }
static std::pair< std::vector< flutter::DlColor >, std::vector< Scalar > > ParseColorsAndStops(uint32_t stop_count, const ImpellerColor *colors, const float *stops)
Definition: impeller.cc:829
constexpr flutter::DlColor ToDisplayListType(Color color)
Definition: formats.h:89

References impeller::interop::ColorSource::MakeConicalGradient(), ParseColorsAndStops(), ToDisplayListType(), and ToImpellerType().

◆ ImpellerColorSourceCreateFragmentProgramNew()

IMPELLER_EXTERN_C ImpellerColorSource impeller::interop::ImpellerColorSourceCreateFragmentProgramNew ( ImpellerContext  context,
ImpellerFragmentProgram  fragment_program,
ImpellerTexture *  samplers,
size_t  samplers_count,
const uint8_t *  data,
size_t  data_bytes_length 
)

Definition at line 986 of file impeller.cc.

992  {
993  auto bindings = ReadSamplersAndUniforms(samplers, samplers_count, data,
994  data_bytes_length);
995  return ColorSource::MakeFragmentProgram(*GetPeer(context), //
996  *GetPeer(fragment_program), //
997  std::move(bindings.samplers), //
998  std::move(bindings.uniforms) //
999  )
1000  .Leak();
1001 }
static SamplersAndUniforms ReadSamplersAndUniforms(ImpellerTexture *samplers, size_t samplers_count, const uint8_t *data, size_t data_bytes_length)
Definition: impeller.cc:962
std::shared_ptr< const fml::Mapping > data
Definition: texture_gles.cc:68

References data, impeller::interop::ColorSource::MakeFragmentProgram(), and ReadSamplersAndUniforms().

◆ ImpellerColorSourceCreateImageNew()

IMPELLER_EXTERN_C ImpellerColorSource impeller::interop::ImpellerColorSourceCreateImageNew ( ImpellerTexture  image,
ImpellerTileMode  horizontal_tile_mode,
ImpellerTileMode  vertical_tile_mode,
ImpellerTextureSampling  sampling,
const ImpellerMatrix transformation 
)

Definition at line 940 of file impeller.cc.

945  {
946  return ColorSource::MakeImage(
947  *GetPeer(image), //
948  ToDisplayListType(horizontal_tile_mode), //
949  ToDisplayListType(vertical_tile_mode), //
950  ToDisplayListType(sampling), //
951  transformation == nullptr ? Matrix{}
952  : ToImpellerType(*transformation) //
953  )
954  .Leak();
955 }

References impeller::interop::ColorSource::MakeImage(), ToDisplayListType(), and ToImpellerType().

◆ ImpellerColorSourceCreateLinearGradientNew()

IMPELLER_EXTERN_C ImpellerColorSource impeller::interop::ImpellerColorSourceCreateLinearGradientNew ( const ImpellerPoint start_point,
const ImpellerPoint end_point,
uint32_t  stop_count,
const ImpellerColor colors,
const float *  stops,
ImpellerTileMode  tile_mode,
const ImpellerMatrix transformation 
)

Definition at line 846 of file impeller.cc.

853  {
854  const auto colors_and_stops = ParseColorsAndStops(stop_count, colors, stops);
855  return ColorSource::MakeLinearGradient(
856  ToImpellerType(*start_point), //
857  ToImpellerType(*end_point), //
858  colors_and_stops.first, //
859  colors_and_stops.second, //
860  ToDisplayListType(tile_mode), //
861  transformation == nullptr ? Matrix{}
862  : ToImpellerType(*transformation) //
863  )
864  .Leak();
865 }

References impeller::interop::ColorSource::MakeLinearGradient(), ParseColorsAndStops(), ToDisplayListType(), and ToImpellerType().

◆ ImpellerColorSourceCreateRadialGradientNew()

IMPELLER_EXTERN_C ImpellerColorSource impeller::interop::ImpellerColorSourceCreateRadialGradientNew ( const ImpellerPoint center,
float  radius,
uint32_t  stop_count,
const ImpellerColor colors,
const float *  stops,
ImpellerTileMode  tile_mode,
const ImpellerMatrix transformation 
)

Definition at line 868 of file impeller.cc.

875  {
876  const auto colors_and_stops = ParseColorsAndStops(stop_count, colors, stops);
877  return ColorSource::MakeRadialGradient(
878  ToImpellerType(*center), //
879  radius, //
880  colors_and_stops.first, //
881  colors_and_stops.second, //
882  ToDisplayListType(tile_mode), //
883  transformation == nullptr ? Matrix{}
884  : ToImpellerType(*transformation) //
885  )
886  .Leak();
887 }

References impeller::interop::ColorSource::MakeRadialGradient(), ParseColorsAndStops(), ToDisplayListType(), and ToImpellerType().

◆ ImpellerColorSourceCreateSweepGradientNew()

IMPELLER_EXTERN_C ImpellerColorSource impeller::interop::ImpellerColorSourceCreateSweepGradientNew ( const ImpellerPoint center,
float  start,
float  end,
uint32_t  stop_count,
const ImpellerColor colors,
const float *  stops,
ImpellerTileMode  tile_mode,
const ImpellerMatrix transformation 
)

Definition at line 916 of file impeller.cc.

924  {
925  const auto colors_and_stops = ParseColorsAndStops(stop_count, colors, stops);
926  return ColorSource::MakeSweepGradient(
927  ToImpellerType(*center), //
928  start, //
929  end, //
930  colors_and_stops.first, //
931  colors_and_stops.second, //
932  ToDisplayListType(tile_mode), //
933  transformation == nullptr ? Matrix{}
934  : ToImpellerType(*transformation) //
935  )
936  .Leak();
937 }
const size_t start
const size_t end

References end, impeller::interop::ColorSource::MakeSweepGradient(), ParseColorsAndStops(), start, ToDisplayListType(), and ToImpellerType().

◆ ImpellerColorSourceRelease()

IMPELLER_EXTERN_C void impeller::interop::ImpellerColorSourceRelease ( ImpellerColorSource  color_source)

Definition at line 824 of file impeller.cc.

824  {
825  ObjectBase::SafeRelease(color_source);
826 }

References impeller::interop::ObjectBase::SafeRelease().

◆ ImpellerColorSourceRetain()

IMPELLER_EXTERN_C void impeller::interop::ImpellerColorSourceRetain ( ImpellerColorSource  color_source)

Definition at line 819 of file impeller.cc.

819  {
820  ObjectBase::SafeRetain(color_source);
821 }

References impeller::interop::ObjectBase::SafeRetain().

◆ ImpellerContextCreateMetalNew()

IMPELLER_EXTERN_C ImpellerContext impeller::interop::ImpellerContextCreateMetalNew ( uint32_t  version)

Definition at line 133 of file impeller.cc.

134  {
135  if (!CheckVersion(version)) {
136  return nullptr;
137  }
138 #if IMPELLER_ENABLE_METAL
139  auto context = ContextMTL::Create();
140  if (!context || !context->IsValid()) {
141  VALIDATION_LOG << "Could not create valid context.";
142  return nullptr;
143  }
144  return context.Leak();
145 #else // IMPELLER_ENABLE_METAL
146  VALIDATION_LOG << "Metal not available.";
147  return nullptr;
148 #endif // IMPELLER_ENABLE_METAL
149 }
static bool CheckVersion(uint32_t version)
Definition: impeller.cc:96
ScopedObject< Object > Create(CtorArgs &&... args)
Definition: object.h:161

References CheckVersion(), impeller::interop::ContextMTL::Create(), and VALIDATION_LOG.

Referenced by impeller::interop::testing::PlaygroundTest::CreateContext().

◆ ImpellerContextCreateOpenGLESNew()

IMPELLER_EXTERN_C ImpellerContext impeller::interop::ImpellerContextCreateOpenGLESNew ( uint32_t  version,
ImpellerProcAddressCallback  gl_proc_address_callback,
void *  gl_proc_address_callback_user_data 
)

Definition at line 108 of file impeller.cc.

111  {
112  if (!CheckVersion(version)) {
113  return nullptr;
114  }
115 #if IMPELLER_ENABLE_OPENGLES
116  auto context = ContextGLES::Create(
117  [gl_proc_address_callback,
118  gl_proc_address_callback_user_data](const char* proc_name) -> void* {
119  return gl_proc_address_callback(proc_name,
120  gl_proc_address_callback_user_data);
121  });
122  if (!context || !context->IsValid()) {
123  VALIDATION_LOG << "Could not create valid context.";
124  return nullptr;
125  }
126  return context.Leak();
127 #else // IMPELLER_ENABLE_OPENGLES
128  VALIDATION_LOG << "OpenGLES not available.";
129  return nullptr;
130 #endif // IMPELLER_ENABLE_OPENGLES
131 }

References CheckVersion(), impeller::interop::ContextGLES::Create(), and VALIDATION_LOG.

Referenced by impeller::interop::testing::PlaygroundTest::CreateContext().

◆ ImpellerContextCreateVulkanNew()

IMPELLER_EXTERN_C ImpellerContext impeller::interop::ImpellerContextCreateVulkanNew ( uint32_t  version,
const ImpellerContextVulkanSettings settings 
)

Definition at line 151 of file impeller.cc.

153  {
154  if (!CheckVersion(version)) {
155  return nullptr;
156  }
157 #if IMPELLER_ENABLE_VULKAN
158  auto context = ContextVK::Create(ContextVK::Settings(*settings));
159  if (!context || !context->IsValid()) {
160  VALIDATION_LOG << "Could not create valid context.";
161  return nullptr;
162  }
163  return context.Leak();
164 #else // IMPELLER_ENABLE_VULKAN
165  VALIDATION_LOG << "Vulkan not available.";
166  return nullptr;
167 #endif // IMPELLER_ENABLE_VULKAN
168 }

References CheckVersion(), impeller::interop::ContextVK::Create(), and VALIDATION_LOG.

Referenced by impeller::interop::testing::PlaygroundTest::CreateContext().

◆ ImpellerContextGetVulkanInfo()

IMPELLER_EXTERN_C bool impeller::interop::ImpellerContextGetVulkanInfo ( ImpellerContext IMPELLER_NONNULL  context,
ImpellerContextVulkanInfo out_vulkan_info 
)

Definition at line 181 of file impeller.cc.

182  {
183 #if IMPELLER_ENABLE_VULKAN
184  if (!GetPeer(context)->IsVulkan()) {
185  VALIDATION_LOG << "Not a Vulkan context.";
186  return false;
187  }
188  return reinterpret_cast<ContextVK*>(GetPeer(context))
189  ->GetInfo(*out_vulkan_info);
190 #else // IMPELLER_ENABLE_VULKAN
191  VALIDATION_LOG << "Vulkan not available.";
192  return nullptr;
193 #endif // IMPELLER_ENABLE_VULKAN
194 }

References VALIDATION_LOG.

◆ ImpellerContextRelease()

IMPELLER_EXTERN_C void impeller::interop::ImpellerContextRelease ( ImpellerContext  context)

Definition at line 176 of file impeller.cc.

176  {
177  ObjectBase::SafeRelease(context);
178 }

References impeller::interop::ObjectBase::SafeRelease().

◆ ImpellerContextRetain()

IMPELLER_EXTERN_C void impeller::interop::ImpellerContextRetain ( ImpellerContext  context)

Definition at line 171 of file impeller.cc.

171  {
172  ObjectBase::SafeRetain(context);
173 }

References impeller::interop::ObjectBase::SafeRetain().

Referenced by impeller::interop::testing::PlaygroundTest::GetHPPContext().

◆ ImpellerDisplayListBuilderClipOval()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderClipOval ( ImpellerDisplayListBuilder  builder,
const ImpellerRect oval_bounds,
ImpellerClipOperation  op 
)

Definition at line 439 of file impeller.cc.

441  {
442  GetPeer(builder)->ClipOval(ToImpellerType(*oval_bounds), ToImpellerType(op));
443 }

References ToImpellerType().

◆ ImpellerDisplayListBuilderClipPath()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderClipPath ( ImpellerDisplayListBuilder  builder,
ImpellerPath  path,
ImpellerClipOperation  op 
)

Definition at line 458 of file impeller.cc.

460  {
461  GetPeer(builder)->ClipPath(*GetPeer(path), ToImpellerType(op));
462 }

References ToImpellerType().

◆ ImpellerDisplayListBuilderClipRect()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderClipRect ( ImpellerDisplayListBuilder  builder,
const ImpellerRect rect,
ImpellerClipOperation  op 
)

Definition at line 432 of file impeller.cc.

434  {
435  GetPeer(builder)->ClipRect(ToImpellerType(*rect), ToImpellerType(op));
436 }

References ToImpellerType().

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerDisplayListBuilderClipRoundedRect()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderClipRoundedRect ( ImpellerDisplayListBuilder  builder,
const ImpellerRect rect,
const ImpellerRoundingRadii radii,
ImpellerClipOperation  op 
)

Definition at line 446 of file impeller.cc.

450  {
451  GetPeer(builder)->ClipRoundedRect(ToImpellerType(*rect), //
452  ToImpellerType(*radii), //
453  ToImpellerType(op) //
454  );
455 }

References ToImpellerType().

◆ ImpellerDisplayListBuilderCreateDisplayListNew()

IMPELLER_EXTERN_C ImpellerDisplayList impeller::interop::ImpellerDisplayListBuilderCreateDisplayListNew ( ImpellerDisplayListBuilder  builder)

Definition at line 715 of file impeller.cc.

716  {
717  auto dl = GetPeer(builder)->Build();
718  if (!dl->IsValid()) {
719  return nullptr;
720  }
721  return dl.Leak();
722 }

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerDisplayListBuilderDrawDashedLine()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderDrawDashedLine ( ImpellerDisplayListBuilder  builder,
const ImpellerPoint from,
const ImpellerPoint to,
float  on_length,
float  off_length,
ImpellerPaint  paint 
)

Definition at line 532 of file impeller.cc.

538  {
539  GetPeer(builder)->DrawDashedLine(ToImpellerType(*from), //
540  ToImpellerType(*to), //
541  on_length, //
542  off_length, //
543  *GetPeer(paint) //
544  );
545 }

References ToImpellerType().

◆ ImpellerDisplayListBuilderDrawDisplayList()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderDrawDisplayList ( ImpellerDisplayListBuilder  builder,
ImpellerDisplayList  display_list,
float  opacity 
)

Definition at line 725 of file impeller.cc.

728  {
729  GetPeer(builder)->DrawDisplayList(*GetPeer(display_list), opacity);
730 }

◆ ImpellerDisplayListBuilderDrawLine()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderDrawLine ( ImpellerDisplayListBuilder  builder,
const ImpellerPoint from,
const ImpellerPoint to,
ImpellerPaint  paint 
)

Definition at line 521 of file impeller.cc.

524  {
525  GetPeer(builder)->DrawLine(ToImpellerType(*from), //
526  ToImpellerType(*to), //
527  *GetPeer(paint) //
528  );
529 }

References ToImpellerType().

◆ ImpellerDisplayListBuilderDrawOval()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderDrawOval ( ImpellerDisplayListBuilder  builder,
const ImpellerRect oval_bounds,
ImpellerPaint  paint 
)

Definition at line 555 of file impeller.cc.

557  {
558  GetPeer(builder)->DrawOval(ToImpellerType(*oval_bounds), *GetPeer(paint));
559 }

References ToImpellerType().

◆ ImpellerDisplayListBuilderDrawPaint()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderDrawPaint ( ImpellerDisplayListBuilder  builder,
ImpellerPaint  paint 
)

Definition at line 515 of file impeller.cc.

516  {
517  GetPeer(builder)->DrawPaint(*GetPeer(paint));
518 }

◆ ImpellerDisplayListBuilderDrawParagraph()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderDrawParagraph ( ImpellerDisplayListBuilder  builder,
ImpellerParagraph  paragraph,
const ImpellerPoint point 
)

Definition at line 1236 of file impeller.cc.

1238  {
1239  GetPeer(builder)->DrawParagraph(*GetPeer(paragraph), ToImpellerType(*point));
1240 }

References ToImpellerType().

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerDisplayListBuilderDrawPath()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderDrawPath ( ImpellerDisplayListBuilder  builder,
ImpellerPath  path,
ImpellerPaint  paint 
)

Definition at line 590 of file impeller.cc.

592  {
593  GetPeer(builder)->DrawPath(*GetPeer(path), *GetPeer(paint));
594 }

◆ ImpellerDisplayListBuilderDrawRect()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderDrawRect ( ImpellerDisplayListBuilder  builder,
const ImpellerRect rect,
ImpellerPaint  paint 
)

Definition at line 548 of file impeller.cc.

550  {
551  GetPeer(builder)->DrawRect(ToImpellerType(*rect), *GetPeer(paint));
552 }

References ToImpellerType().

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerDisplayListBuilderDrawRoundedRect()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderDrawRoundedRect ( ImpellerDisplayListBuilder  builder,
const ImpellerRect rect,
const ImpellerRoundingRadii radii,
ImpellerPaint  paint 
)

Definition at line 562 of file impeller.cc.

566  {
567  GetPeer(builder)->DrawRoundedRect(ToImpellerType(*rect), //
568  ToImpellerType(*radii), //
569  *GetPeer(paint) //
570  );
571 }

References ToImpellerType().

◆ ImpellerDisplayListBuilderDrawRoundedRectDifference()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderDrawRoundedRectDifference ( ImpellerDisplayListBuilder  builder,
const ImpellerRect outer_rect,
const ImpellerRoundingRadii outer_radii,
const ImpellerRect inner_rect,
const ImpellerRoundingRadii inner_radii,
ImpellerPaint  paint 
)

Definition at line 574 of file impeller.cc.

580  {
581  GetPeer(builder)->DrawRoundedRectDifference(ToImpellerType(*outer_rect), //
582  ToImpellerType(*outer_radii), //
583  ToImpellerType(*inner_rect), //
584  ToImpellerType(*inner_radii), //
585  *GetPeer(paint) //
586  );
587 }

References ToImpellerType().

◆ ImpellerDisplayListBuilderDrawShadow()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderDrawShadow ( ImpellerDisplayListBuilder  builder,
ImpellerPath  path,
const ImpellerColor color,
float  elevation,
bool  occluder_is_transparent,
float  device_pixel_ratio 
)

Definition at line 1243 of file impeller.cc.

1248  {
1249  GetPeer(builder)->DrawShadow(*GetPeer(path), //
1250  ToDisplayListType(*color), //
1251  elevation, //
1252  occluder_is_transparent, //
1253  device_pixel_ratio //
1254  );
1255 }

References ToDisplayListType().

◆ ImpellerDisplayListBuilderDrawTexture()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderDrawTexture ( ImpellerDisplayListBuilder  builder,
ImpellerTexture  texture,
const ImpellerPoint point,
ImpellerTextureSampling  sampling,
ImpellerPaint  paint 
)

Definition at line 790 of file impeller.cc.

794  {
795  GetPeer(builder)->DrawTexture(*GetPeer(texture), //
796  ToImpellerType(*point), //
797  ToDisplayListType(sampling), //
798  GetPeer(paint) //
799  );
800 }

References ToDisplayListType(), and ToImpellerType().

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerDisplayListBuilderDrawTextureRect()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderDrawTextureRect ( ImpellerDisplayListBuilder  builder,
ImpellerTexture  texture,
const ImpellerRect src_rect,
const ImpellerRect dst_rect,
ImpellerTextureSampling  sampling,
ImpellerPaint  paint 
)

Definition at line 803 of file impeller.cc.

809  {
810  GetPeer(builder)->DrawTextureRect(*GetPeer(texture), //
811  ToImpellerType(*src_rect), //
812  ToImpellerType(*dst_rect), //
813  ToDisplayListType(sampling), //
814  GetPeer(paint) //
815  );
816 }

References ToDisplayListType(), and ToImpellerType().

◆ ImpellerDisplayListBuilderGetSaveCount()

IMPELLER_EXTERN_C uint32_t impeller::interop::ImpellerDisplayListBuilderGetSaveCount ( ImpellerDisplayListBuilder  builder)

Definition at line 309 of file impeller.cc.

310  {
311  return GetPeer(builder)->GetSaveCount();
312 }

◆ ImpellerDisplayListBuilderGetTransform()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderGetTransform ( ImpellerDisplayListBuilder  builder,
ImpellerMatrix out_transform 
)

Definition at line 297 of file impeller.cc.

298  {
299  FromImpellerType(GetPeer(builder)->GetTransform(), *out_transform);
300 }
constexpr void FromImpellerType(const Matrix &from, ImpellerMatrix &to)
Definition: formats.h:221

References FromImpellerType().

◆ ImpellerDisplayListBuilderNew()

IMPELLER_EXTERN_C ImpellerDisplayListBuilder impeller::interop::ImpellerDisplayListBuilderNew ( const ImpellerRect cull_rect)

Definition at line 228 of file impeller.cc.

229  {
230  return Create<DisplayListBuilder>(cull_rect).Leak();
231 }

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerDisplayListBuilderRelease()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderRelease ( ImpellerDisplayListBuilder  builder)

Definition at line 239 of file impeller.cc.

239  {
240  ObjectBase::SafeRelease(builder);
241 }

References impeller::interop::ObjectBase::SafeRelease().

◆ ImpellerDisplayListBuilderResetTransform()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderResetTransform ( ImpellerDisplayListBuilder  builder)

Definition at line 303 of file impeller.cc.

304  {
305  GetPeer(builder)->ResetTransform();
306 }

◆ ImpellerDisplayListBuilderRestore()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderRestore ( ImpellerDisplayListBuilder  builder)

Definition at line 260 of file impeller.cc.

260  {
261  GetPeer(builder)->Restore();
262 }

◆ ImpellerDisplayListBuilderRestoreToCount()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderRestoreToCount ( ImpellerDisplayListBuilder  builder,
uint32_t  count 
)

Definition at line 315 of file impeller.cc.

317  {
318  GetPeer(builder)->RestoreToCount(count);
319 }

◆ ImpellerDisplayListBuilderRetain()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderRetain ( ImpellerDisplayListBuilder  builder)

Definition at line 234 of file impeller.cc.

234  {
235  ObjectBase::SafeRetain(builder);
236 }

References impeller::interop::ObjectBase::SafeRetain().

◆ ImpellerDisplayListBuilderRotate()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderRotate ( ImpellerDisplayListBuilder  builder,
float  angle_degrees 
)

Definition at line 272 of file impeller.cc.

273  {
274  GetPeer(builder)->Rotate(Degrees{angle_degrees});
275 }

◆ ImpellerDisplayListBuilderSave()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderSave ( ImpellerDisplayListBuilder  builder)

Definition at line 244 of file impeller.cc.

244  {
245  GetPeer(builder)->Save();
246 }

◆ ImpellerDisplayListBuilderSaveLayer()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderSaveLayer ( ImpellerDisplayListBuilder  builder,
const ImpellerRect bounds,
ImpellerPaint  paint,
ImpellerImageFilter  backdrop 
)

Definition at line 249 of file impeller.cc.

252  {
253  GetPeer(builder)->SaveLayer(ToImpellerType(*bounds), //
254  GetPeer(paint), //
255  GetPeer(backdrop) //
256  );
257 }

References ToImpellerType().

◆ ImpellerDisplayListBuilderScale()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderScale ( ImpellerDisplayListBuilder  builder,
float  x_scale,
float  y_scale 
)

Definition at line 265 of file impeller.cc.

267  {
268  GetPeer(builder)->Scale(Size{x_scale, y_scale});
269 }
TSize< Scalar > Size
Definition: size.h:159

◆ ImpellerDisplayListBuilderSetTransform()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderSetTransform ( ImpellerDisplayListBuilder  builder,
const ImpellerMatrix transform 
)

Definition at line 285 of file impeller.cc.

286  {
287  GetPeer(builder)->SetTransform(ToImpellerType(*transform));
288 }

References ToImpellerType(), and transform.

◆ ImpellerDisplayListBuilderTransform()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderTransform ( ImpellerDisplayListBuilder  builder,
const ImpellerMatrix transform 
)

Definition at line 291 of file impeller.cc.

292  {
293  GetPeer(builder)->Transform(ToImpellerType(*transform));
294 }

References ToImpellerType(), and transform.

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerDisplayListBuilderTranslate()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListBuilderTranslate ( ImpellerDisplayListBuilder  builder,
float  x_translation,
float  y_translation 
)

Definition at line 278 of file impeller.cc.

280  {
281  GetPeer(builder)->Translate(Point{x_translation, y_translation});
282 }
TPoint< Scalar > Point
Definition: point.h:327

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerDisplayListRelease()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListRelease ( ImpellerDisplayList  display_list)

Definition at line 710 of file impeller.cc.

710  {
711  ObjectBase::SafeRelease(display_list);
712 }

References impeller::interop::ObjectBase::SafeRelease().

◆ ImpellerDisplayListRetain()

IMPELLER_EXTERN_C void impeller::interop::ImpellerDisplayListRetain ( ImpellerDisplayList  display_list)

Definition at line 705 of file impeller.cc.

705  {
706  ObjectBase::SafeRetain(display_list);
707 }

References impeller::interop::ObjectBase::SafeRetain().

◆ ImpellerFragmentProgramNew()

IMPELLER_EXTERN_C ImpellerFragmentProgram impeller::interop::ImpellerFragmentProgramNew ( const ImpellerMapping data,
void *  data_release_user_data 
)

Definition at line 1584 of file impeller.cc.

1586  {
1587  auto data_mapping = MakeCopyableMapping(data, data_release_user_data);
1588  auto program = Create<FragmentProgram>(std::move(data_mapping));
1589  if (!program->IsValid()) {
1590  VALIDATION_LOG << "Could not create valid fragment program.";
1591  return nullptr;
1592  }
1593  return program.Leak();
1594 }
static std::shared_ptr< fml::Mapping > MakeCopyableMapping(const ImpellerMapping *data, void *user_data)
Definition: impeller.cc:1562

References data, MakeCopyableMapping(), and VALIDATION_LOG.

◆ ImpellerFragmentProgramRelease()

IMPELLER_EXTERN_C void impeller::interop::ImpellerFragmentProgramRelease ( ImpellerFragmentProgram  fragment_program)

Definition at line 1602 of file impeller.cc.

1602  {
1603  ObjectBase::SafeRelease(fragment_program);
1604 }

References impeller::interop::ObjectBase::SafeRelease().

◆ ImpellerFragmentProgramRetain()

IMPELLER_EXTERN_C void impeller::interop::ImpellerFragmentProgramRetain ( ImpellerFragmentProgram  fragment_program)

Definition at line 1597 of file impeller.cc.

1597  {
1598  ObjectBase::SafeRetain(fragment_program);
1599 }

References impeller::interop::ObjectBase::SafeRetain().

◆ ImpellerGetVersion()

IMPELLER_EXTERN_C uint32_t impeller::interop::ImpellerGetVersion ( )

Definition at line 92 of file impeller.cc.

92  {
93  return IMPELLER_VERSION;
94 }

References IMPELLER_VERSION.

Referenced by CheckVersion(), and impeller::interop::testing::PlaygroundTest::CreateContext().

◆ ImpellerGlyphInfoGetGraphemeClusterBounds()

IMPELLER_EXTERN_C void impeller::interop::ImpellerGlyphInfoGetGraphemeClusterBounds ( ImpellerGlyphInfo  glyph_info,
ImpellerRect out_bounds 
)

Definition at line 1542 of file impeller.cc.

1543  {
1544  *out_bounds = GetPeer(glyph_info)->GetGraphemeClusterBounds();
1545 }

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerGlyphInfoGetGraphemeClusterCodeUnitRangeBegin()

IMPELLER_EXTERN_C size_t impeller::interop::ImpellerGlyphInfoGetGraphemeClusterCodeUnitRangeBegin ( ImpellerGlyphInfo  glyph_info)

Definition at line 1530 of file impeller.cc.

1531  {
1532  return GetPeer(glyph_info)->GetGraphemeClusterCodeUnitRangeBegin();
1533 }

◆ ImpellerGlyphInfoGetGraphemeClusterCodeUnitRangeEnd()

IMPELLER_EXTERN_C size_t impeller::interop::ImpellerGlyphInfoGetGraphemeClusterCodeUnitRangeEnd ( ImpellerGlyphInfo  glyph_info)

Definition at line 1536 of file impeller.cc.

1537  {
1538  return GetPeer(glyph_info)->GetGraphemeClusterCodeUnitRangeEnd();
1539 }

◆ ImpellerGlyphInfoGetTextDirection()

IMPELLER_EXTERN_C ImpellerTextDirection impeller::interop::ImpellerGlyphInfoGetTextDirection ( ImpellerGlyphInfo  glyph_info)

Definition at line 1553 of file impeller.cc.

1554  {
1555  return GetPeer(glyph_info)->GetTextDirection();
1556 }

◆ ImpellerGlyphInfoIsEllipsis()

IMPELLER_EXTERN_C bool impeller::interop::ImpellerGlyphInfoIsEllipsis ( ImpellerGlyphInfo  glyph_info)

Definition at line 1548 of file impeller.cc.

1548  {
1549  return GetPeer(glyph_info)->IsEllipsis();
1550 }

◆ ImpellerGlyphInfoRelease()

IMPELLER_EXTERN_C void impeller::interop::ImpellerGlyphInfoRelease ( ImpellerGlyphInfo  glyph_info)

Definition at line 1525 of file impeller.cc.

1525  {
1526  ObjectBase::SafeRelease(glyph_info);
1527 }

References impeller::interop::ObjectBase::SafeRelease().

◆ ImpellerGlyphInfoRetain()

IMPELLER_EXTERN_C void impeller::interop::ImpellerGlyphInfoRetain ( ImpellerGlyphInfo  glyph_info)

Definition at line 1520 of file impeller.cc.

1520  {
1521  ObjectBase::SafeRetain(glyph_info);
1522 }

References impeller::interop::ObjectBase::SafeRetain().

◆ ImpellerImageFilterCreateBlurNew()

IMPELLER_EXTERN_C ImpellerImageFilter impeller::interop::ImpellerImageFilterCreateBlurNew ( float  x_sigma,
float  y_sigma,
ImpellerTileMode  tile_mode 
)

Definition at line 1055 of file impeller.cc.

1058  {
1059  return ImageFilter::MakeBlur(x_sigma, y_sigma, ToDisplayListType(tile_mode))
1060  .Leak();
1061 }

References impeller::interop::ImageFilter::MakeBlur(), and ToDisplayListType().

◆ ImpellerImageFilterCreateComposeNew()

IMPELLER_EXTERN_C ImpellerImageFilter impeller::interop::ImpellerImageFilterCreateComposeNew ( ImpellerImageFilter  outer,
ImpellerImageFilter  inner 
)

Definition at line 1102 of file impeller.cc.

1104  {
1105  return ImageFilter::MakeCompose(*GetPeer(outer), *GetPeer(inner)).Leak();
1106 }

References impeller::interop::ImageFilter::MakeCompose().

◆ ImpellerImageFilterCreateDilateNew()

IMPELLER_EXTERN_C ImpellerImageFilter impeller::interop::ImpellerImageFilterCreateDilateNew ( float  x_radius,
float  y_radius 
)

Definition at line 1064 of file impeller.cc.

1065  {
1066  return ImageFilter::MakeDilate(x_radius, y_radius).Leak();
1067 }

References impeller::interop::ImageFilter::MakeDilate().

◆ ImpellerImageFilterCreateErodeNew()

IMPELLER_EXTERN_C ImpellerImageFilter impeller::interop::ImpellerImageFilterCreateErodeNew ( float  x_radius,
float  y_radius 
)

Definition at line 1070 of file impeller.cc.

1071  {
1072  return ImageFilter::MakeErode(x_radius, y_radius).Leak();
1073 }

References impeller::interop::ImageFilter::MakeErode().

◆ ImpellerImageFilterCreateFragmentProgramNew()

IMPELLER_EXTERN_C ImpellerImageFilter impeller::interop::ImpellerImageFilterCreateFragmentProgramNew ( ImpellerContext  context,
ImpellerFragmentProgram  fragment_program,
ImpellerTexture *  samplers,
size_t  samplers_count,
const uint8_t *  data,
size_t  data_bytes_length 
)

Definition at line 1085 of file impeller.cc.

1091  {
1092  auto bindings = ReadSamplersAndUniforms(samplers, samplers_count, data,
1093  data_bytes_length);
1094  return ImageFilter::MakeFragmentProgram(*GetPeer(context), //
1095  *GetPeer(fragment_program), //
1096  std::move(bindings.samplers), //
1097  std::move(bindings.uniforms) //
1098  )
1099  .Leak();
1100 }

References data, impeller::interop::ImageFilter::MakeFragmentProgram(), and ReadSamplersAndUniforms().

◆ ImpellerImageFilterCreateMatrixNew()

IMPELLER_EXTERN_C ImpellerImageFilter impeller::interop::ImpellerImageFilterCreateMatrixNew ( const ImpellerMatrix matrix,
ImpellerTextureSampling  sampling 
)

Definition at line 1076 of file impeller.cc.

1078  {
1079  return ImageFilter::MakeMatrix(ToImpellerType(*matrix),
1080  ToDisplayListType(sampling))
1081  .Leak();
1082 }

References impeller::interop::ImageFilter::MakeMatrix(), ToDisplayListType(), and ToImpellerType().

◆ ImpellerImageFilterRelease()

IMPELLER_EXTERN_C void impeller::interop::ImpellerImageFilterRelease ( ImpellerImageFilter  image_filter)

Definition at line 1050 of file impeller.cc.

1050  {
1051  ObjectBase::SafeRelease(image_filter);
1052 }

References impeller::interop::ObjectBase::SafeRelease().

◆ ImpellerImageFilterRetain()

IMPELLER_EXTERN_C void impeller::interop::ImpellerImageFilterRetain ( ImpellerImageFilter  image_filter)

Definition at line 1045 of file impeller.cc.

1045  {
1046  ObjectBase::SafeRetain(image_filter);
1047 }

References impeller::interop::ObjectBase::SafeRetain().

◆ ImpellerLineMetricsGetAscent()

IMPELLER_EXTERN_C double impeller::interop::ImpellerLineMetricsGetAscent ( ImpellerLineMetrics  metrics,
size_t  line 
)

Definition at line 1454 of file impeller.cc.

1454  {
1455  return GetPeer(metrics)->GetAscent(line);
1456 }

◆ ImpellerLineMetricsGetBaseline()

IMPELLER_EXTERN_C double impeller::interop::ImpellerLineMetricsGetBaseline ( ImpellerLineMetrics  metrics,
size_t  line 
)

Definition at line 1464 of file impeller.cc.

1465  {
1466  return GetPeer(metrics)->GetBaseline(line);
1467 }

◆ ImpellerLineMetricsGetCodeUnitEndIndex()

IMPELLER_EXTERN_C size_t impeller::interop::ImpellerLineMetricsGetCodeUnitEndIndex ( ImpellerLineMetrics  metrics,
size_t  line 
)

Definition at line 1496 of file impeller.cc.

1497  {
1498  return GetPeer(metrics)->GetCodeUnitEndIndex(line);
1499 }

◆ ImpellerLineMetricsGetCodeUnitEndIndexExcludingWhitespace()

IMPELLER_EXTERN_C size_t impeller::interop::ImpellerLineMetricsGetCodeUnitEndIndexExcludingWhitespace ( ImpellerLineMetrics  metrics,
size_t  line 
)

Definition at line 1502 of file impeller.cc.

1504  {
1505  return GetPeer(metrics)->GetCodeUnitEndIndexExcludingWhitespace(line);
1506 }

◆ ImpellerLineMetricsGetCodeUnitEndIndexIncludingNewline()

IMPELLER_EXTERN_C size_t impeller::interop::ImpellerLineMetricsGetCodeUnitEndIndexIncludingNewline ( ImpellerLineMetrics  metrics,
size_t  line 
)

Definition at line 1509 of file impeller.cc.

1511  {
1512  return GetPeer(metrics)->GetCodeUnitEndIndexIncludingNewline(line);
1513 }

◆ ImpellerLineMetricsGetCodeUnitStartIndex()

IMPELLER_EXTERN_C size_t impeller::interop::ImpellerLineMetricsGetCodeUnitStartIndex ( ImpellerLineMetrics  metrics,
size_t  line 
)

Definition at line 1490 of file impeller.cc.

1491  {
1492  return GetPeer(metrics)->GetCodeUnitStartIndex(line);
1493 }

◆ ImpellerLineMetricsGetDescent()

IMPELLER_EXTERN_C double impeller::interop::ImpellerLineMetricsGetDescent ( ImpellerLineMetrics  metrics,
size_t  line 
)

Definition at line 1459 of file impeller.cc.

1459  {
1460  return GetPeer(metrics)->GetDescent(line);
1461 }

◆ ImpellerLineMetricsGetHeight()

IMPELLER_EXTERN_C double impeller::interop::ImpellerLineMetricsGetHeight ( ImpellerLineMetrics  metrics,
size_t  line 
)

Definition at line 1480 of file impeller.cc.

1480  {
1481  return GetPeer(metrics)->GetHeight(line);
1482 }

◆ ImpellerLineMetricsGetLeft()

IMPELLER_EXTERN_C double impeller::interop::ImpellerLineMetricsGetLeft ( ImpellerLineMetrics  metrics,
size_t  line 
)

Definition at line 1485 of file impeller.cc.

1485  {
1486  return GetPeer(metrics)->GetLeft(line);
1487 }

◆ ImpellerLineMetricsGetUnscaledAscent()

IMPELLER_EXTERN_C double impeller::interop::ImpellerLineMetricsGetUnscaledAscent ( ImpellerLineMetrics  metrics,
size_t  line 
)

Definition at line 1448 of file impeller.cc.

1449  {
1450  return GetPeer(metrics)->GetUnscaledAscent(line);
1451 }

◆ ImpellerLineMetricsGetWidth()

IMPELLER_EXTERN_C double impeller::interop::ImpellerLineMetricsGetWidth ( ImpellerLineMetrics  metrics,
size_t  line 
)

Definition at line 1475 of file impeller.cc.

1475  {
1476  return GetPeer(metrics)->GetWidth(line);
1477 }

◆ ImpellerLineMetricsIsHardbreak()

IMPELLER_EXTERN_C bool impeller::interop::ImpellerLineMetricsIsHardbreak ( ImpellerLineMetrics  metrics,
size_t  line 
)

Definition at line 1470 of file impeller.cc.

1470  {
1471  return GetPeer(metrics)->IsHardbreak(line);
1472 }

◆ ImpellerLineMetricsRelease()

IMPELLER_EXTERN_C void impeller::interop::ImpellerLineMetricsRelease ( ImpellerLineMetrics  line_metrics)

Definition at line 1443 of file impeller.cc.

1443  {
1444  ObjectBase::SafeRelease(line_metrics);
1445 }

References impeller::interop::ObjectBase::SafeRelease().

◆ ImpellerLineMetricsRetain()

IMPELLER_EXTERN_C void impeller::interop::ImpellerLineMetricsRetain ( ImpellerLineMetrics  line_metrics)

Definition at line 1438 of file impeller.cc.

1438  {
1439  ObjectBase::SafeRetain(line_metrics);
1440 }

References impeller::interop::ObjectBase::SafeRetain().

◆ ImpellerMaskFilterCreateBlurNew()

IMPELLER_EXTERN_C ImpellerMaskFilter impeller::interop::ImpellerMaskFilterCreateBlurNew ( ImpellerBlurStyle  style,
float  sigma 
)

Definition at line 1039 of file impeller.cc.

1040  {
1041  return MaskFilter::MakeBlur(ToDisplayListType(style), sigma).Leak();
1042 }

References impeller::interop::MaskFilter::MakeBlur(), and ToDisplayListType().

◆ ImpellerMaskFilterRelease()

IMPELLER_EXTERN_C void impeller::interop::ImpellerMaskFilterRelease ( ImpellerMaskFilter  mask_filter)

Definition at line 1034 of file impeller.cc.

1034  {
1035  ObjectBase::SafeRelease(mask_filter);
1036 }

References impeller::interop::ObjectBase::SafeRelease().

◆ ImpellerMaskFilterRetain()

IMPELLER_EXTERN_C void impeller::interop::ImpellerMaskFilterRetain ( ImpellerMaskFilter  mask_filter)

Definition at line 1029 of file impeller.cc.

1029  {
1030  ObjectBase::SafeRetain(mask_filter);
1031 }

References impeller::interop::ObjectBase::SafeRetain().

◆ ImpellerPaintNew()

IMPELLER_EXTERN_C ImpellerPaint impeller::interop::ImpellerPaintNew ( )

Definition at line 465 of file impeller.cc.

465  {
466  return Create<Paint>().Leak();
467 }

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerPaintRelease()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPaintRelease ( ImpellerPaint  paint)

Definition at line 475 of file impeller.cc.

475  {
476  ObjectBase::SafeRelease(paint);
477 }

References impeller::interop::ObjectBase::SafeRelease().

◆ ImpellerPaintRetain()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPaintRetain ( ImpellerPaint  paint)

Definition at line 470 of file impeller.cc.

470  {
471  ObjectBase::SafeRetain(paint);
472 }

References impeller::interop::ObjectBase::SafeRetain().

◆ ImpellerPaintSetBlendMode()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPaintSetBlendMode ( ImpellerPaint  paint,
ImpellerBlendMode  mode 
)

Definition at line 485 of file impeller.cc.

485  {
486  GetPeer(paint)->SetBlendMode(ToImpellerType(mode));
487 }

References ToImpellerType().

◆ ImpellerPaintSetColor()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPaintSetColor ( ImpellerPaint  paint,
const ImpellerColor color 
)

Definition at line 480 of file impeller.cc.

480  {
481  GetPeer(paint)->SetColor(ToDisplayListType(*color));
482 }

References ToDisplayListType().

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerPaintSetColorFilter()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPaintSetColorFilter ( ImpellerPaint  paint,
ImpellerColorFilter  color_filter 
)

Definition at line 1109 of file impeller.cc.

1110  {
1111  GetPeer(paint)->SetColorFilter(*GetPeer(color_filter));
1112 }

◆ ImpellerPaintSetColorSource()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPaintSetColorSource ( ImpellerPaint  paint,
ImpellerColorSource  color_source 
)

Definition at line 1115 of file impeller.cc.

1116  {
1117  GetPeer(paint)->SetColorSource(*GetPeer(color_source));
1118 }

◆ ImpellerPaintSetDrawStyle()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPaintSetDrawStyle ( ImpellerPaint  paint,
ImpellerDrawStyle  style 
)

Definition at line 490 of file impeller.cc.

490  {
491  GetPeer(paint)->SetDrawStyle(ToDisplayListType(style));
492 }

References ToDisplayListType().

◆ ImpellerPaintSetImageFilter()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPaintSetImageFilter ( ImpellerPaint  paint,
ImpellerImageFilter  image_filter 
)

Definition at line 1121 of file impeller.cc.

1122  {
1123  GetPeer(paint)->SetImageFilter(*GetPeer(image_filter));
1124 }

◆ ImpellerPaintSetMaskFilter()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPaintSetMaskFilter ( ImpellerPaint  paint,
ImpellerMaskFilter  mask_filter 
)

Definition at line 1127 of file impeller.cc.

1128  {
1129  GetPeer(paint)->SetMaskFilter(*GetPeer(mask_filter));
1130 }

◆ ImpellerPaintSetStrokeCap()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPaintSetStrokeCap ( ImpellerPaint  paint,
ImpellerStrokeCap  cap 
)

Definition at line 495 of file impeller.cc.

495  {
496  GetPeer(paint)->SetStrokeCap(ToDisplayListType(cap));
497 }

References ToDisplayListType().

◆ ImpellerPaintSetStrokeJoin()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPaintSetStrokeJoin ( ImpellerPaint  paint,
ImpellerStrokeJoin  join 
)

Definition at line 500 of file impeller.cc.

500  {
501  GetPeer(paint)->SetStrokeJoin(ToDisplayListType(join));
502 }

References ToDisplayListType().

◆ ImpellerPaintSetStrokeMiter()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPaintSetStrokeMiter ( ImpellerPaint  paint,
float  miter 
)

Definition at line 510 of file impeller.cc.

510  {
511  GetPeer(paint)->SetStrokeMiter(miter);
512 }

◆ ImpellerPaintSetStrokeWidth()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPaintSetStrokeWidth ( ImpellerPaint  paint,
float  width 
)

Definition at line 505 of file impeller.cc.

505  {
506  GetPeer(paint)->SetStrokeWidth(width);
507 }

◆ ImpellerParagraphBuilderAddText()

IMPELLER_EXTERN_C void impeller::interop::ImpellerParagraphBuilderAddText ( ImpellerParagraphBuilder  paragraph_builder,
const uint8_t *  data,
uint32_t  length 
)

Definition at line 1295 of file impeller.cc.

1297  {
1298  if (data == nullptr) {
1299  length = 0;
1300  }
1301  if (length == 0) {
1302  return;
1303  }
1304  GetPeer(paragraph_builder)->AddText(data, length);
1305 }

References data.

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerParagraphBuilderBuildParagraphNew()

IMPELLER_EXTERN_C ImpellerParagraph impeller::interop::ImpellerParagraphBuilderBuildParagraphNew ( ImpellerParagraphBuilder  paragraph_builder,
float  width 
)

Definition at line 1308 of file impeller.cc.

1310  {
1311  return GetPeer(paragraph_builder)->Build(width).Leak();
1312 }

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerParagraphBuilderNew()

IMPELLER_EXTERN_C ImpellerParagraphBuilder impeller::interop::ImpellerParagraphBuilderNew ( ImpellerTypographyContext  context)

Definition at line 1258 of file impeller.cc.

1259  {
1260  auto builder =
1261  Create<ParagraphBuilder>(Ref<TypographyContext>(GetPeer(context)));
1262  if (!builder->IsValid()) {
1263  VALIDATION_LOG << "Could not create valid paragraph builder.";
1264  return nullptr;
1265  }
1266  return builder.Leak();
1267 }

References VALIDATION_LOG.

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerParagraphBuilderPopStyle()

IMPELLER_EXTERN_C void impeller::interop::ImpellerParagraphBuilderPopStyle ( ImpellerParagraphBuilder  paragraph_builder)

Definition at line 1289 of file impeller.cc.

1290  {
1291  GetPeer(paragraph_builder)->PopStyle();
1292 }

◆ ImpellerParagraphBuilderPushStyle()

IMPELLER_EXTERN_C void impeller::interop::ImpellerParagraphBuilderPushStyle ( ImpellerParagraphBuilder  paragraph_builder,
ImpellerParagraphStyle  style 
)

Definition at line 1282 of file impeller.cc.

1284  {
1285  GetPeer(paragraph_builder)->PushStyle(*GetPeer(style));
1286 }

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerParagraphBuilderRelease()

IMPELLER_EXTERN_C void impeller::interop::ImpellerParagraphBuilderRelease ( ImpellerParagraphBuilder  paragraph_builder)

Definition at line 1276 of file impeller.cc.

1277  {
1278  ObjectBase::SafeRelease(paragraph_builder);
1279 }

References impeller::interop::ObjectBase::SafeRelease().

◆ ImpellerParagraphBuilderRetain()

IMPELLER_EXTERN_C void impeller::interop::ImpellerParagraphBuilderRetain ( ImpellerParagraphBuilder  paragraph_builder)

Definition at line 1270 of file impeller.cc.

1271  {
1272  ObjectBase::SafeRetain(paragraph_builder);
1273 }

References impeller::interop::ObjectBase::SafeRetain().

◆ ImpellerParagraphCreateGlyphInfoAtCodeUnitIndexNew()

IMPELLER_EXTERN_C ImpellerGlyphInfo impeller::interop::ImpellerParagraphCreateGlyphInfoAtCodeUnitIndexNew ( ImpellerParagraph  paragraph,
size_t  code_unit_index 
)

Definition at line 1415 of file impeller.cc.

1417  {
1418  return GetPeer(paragraph)
1419  ->GetGlyphInfoAtCodeUnitIndex(code_unit_index)
1420  .Leak();
1421 }

◆ ImpellerParagraphCreateGlyphInfoAtParagraphCoordinatesNew()

IMPELLER_EXTERN_C ImpellerGlyphInfo impeller::interop::ImpellerParagraphCreateGlyphInfoAtParagraphCoordinatesNew ( ImpellerParagraph  paragraph,
double  x,
double  y 
)

Definition at line 1424 of file impeller.cc.

1427  {
1428  return GetPeer(paragraph)
1429  ->GetClosestGlyphInfoAtParagraphCoordinates(x, y)
1430  .Leak();
1431 }
int32_t x

References x.

◆ ImpellerParagraphGetAlphabeticBaseline()

IMPELLER_EXTERN_C float impeller::interop::ImpellerParagraphGetAlphabeticBaseline ( ImpellerParagraph  paragraph)

Definition at line 1355 of file impeller.cc.

1355  {
1356  return GetPeer(paragraph)->GetAlphabeticBaseline();
1357 }

◆ ImpellerParagraphGetHeight()

IMPELLER_EXTERN_C float impeller::interop::ImpellerParagraphGetHeight ( ImpellerParagraph  paragraph)

Definition at line 1330 of file impeller.cc.

1330  {
1331  return GetPeer(paragraph)->GetHeight();
1332 }

◆ ImpellerParagraphGetIdeographicBaseline()

IMPELLER_EXTERN_C float impeller::interop::ImpellerParagraphGetIdeographicBaseline ( ImpellerParagraph  paragraph)

Definition at line 1350 of file impeller.cc.

1350  {
1351  return GetPeer(paragraph)->GetIdeographicBaseline();
1352 }

◆ ImpellerParagraphGetLineCount()

IMPELLER_EXTERN_C uint32_t impeller::interop::ImpellerParagraphGetLineCount ( ImpellerParagraph  paragraph)

Definition at line 1360 of file impeller.cc.

1360  {
1361  return GetPeer(paragraph)->GetLineCount();
1362 }

◆ ImpellerParagraphGetLineMetrics()

IMPELLER_EXTERN_C ImpellerLineMetrics impeller::interop::ImpellerParagraphGetLineMetrics ( ImpellerParagraph  paragraph)

Definition at line 1409 of file impeller.cc.

1410  {
1411  return GetPeer(paragraph)->GetLineMetrics().GetC();
1412 }

◆ ImpellerParagraphGetLongestLineWidth()

IMPELLER_EXTERN_C float impeller::interop::ImpellerParagraphGetLongestLineWidth ( ImpellerParagraph  paragraph)

Definition at line 1335 of file impeller.cc.

1335  {
1336  return GetPeer(paragraph)->GetLongestLineWidth();
1337 }

◆ ImpellerParagraphGetMaxIntrinsicWidth()

IMPELLER_EXTERN_C float impeller::interop::ImpellerParagraphGetMaxIntrinsicWidth ( ImpellerParagraph  paragraph)

Definition at line 1345 of file impeller.cc.

1345  {
1346  return GetPeer(paragraph)->GetMaxIntrinsicWidth();
1347 }

◆ ImpellerParagraphGetMaxWidth()

IMPELLER_EXTERN_C float impeller::interop::ImpellerParagraphGetMaxWidth ( ImpellerParagraph  paragraph)

Definition at line 1325 of file impeller.cc.

1325  {
1326  return GetPeer(paragraph)->GetMaxWidth();
1327 }

◆ ImpellerParagraphGetMinIntrinsicWidth()

IMPELLER_EXTERN_C float impeller::interop::ImpellerParagraphGetMinIntrinsicWidth ( ImpellerParagraph  paragraph)

Definition at line 1340 of file impeller.cc.

1340  {
1341  return GetPeer(paragraph)->GetMinIntrinsicWidth();
1342 }

◆ ImpellerParagraphGetWordBoundary()

IMPELLER_EXTERN_C void impeller::interop::ImpellerParagraphGetWordBoundary ( ImpellerParagraph  paragraph,
size_t  code_unit_index,
ImpellerRange out_range 
)

Definition at line 1365 of file impeller.cc.

1367  {
1368  *out_range = GetPeer(paragraph)->GetWordBoundary(code_unit_index);
1369 }

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerParagraphRelease()

IMPELLER_EXTERN_C void impeller::interop::ImpellerParagraphRelease ( ImpellerParagraph  paragraph)

Definition at line 1320 of file impeller.cc.

1320  {
1321  ObjectBase::SafeRelease(paragraph);
1322 }

References impeller::interop::ObjectBase::SafeRelease().

◆ ImpellerParagraphRetain()

IMPELLER_EXTERN_C void impeller::interop::ImpellerParagraphRetain ( ImpellerParagraph  paragraph)

Definition at line 1315 of file impeller.cc.

1315  {
1316  ObjectBase::SafeRetain(paragraph);
1317 }

References impeller::interop::ObjectBase::SafeRetain().

◆ ImpellerParagraphStyleNew()

IMPELLER_EXTERN_C ImpellerParagraphStyle impeller::interop::ImpellerParagraphStyleNew ( )

Definition at line 1133 of file impeller.cc.

1133  {
1134  return Create<ParagraphStyle>().Leak();
1135 }

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerParagraphStyleRelease()

IMPELLER_EXTERN_C void impeller::interop::ImpellerParagraphStyleRelease ( ImpellerParagraphStyle  paragraph_style)

Definition at line 1143 of file impeller.cc.

1143  {
1144  ObjectBase::SafeRelease(paragraph_style);
1145 }

References impeller::interop::ObjectBase::SafeRelease().

◆ ImpellerParagraphStyleRetain()

IMPELLER_EXTERN_C void impeller::interop::ImpellerParagraphStyleRetain ( ImpellerParagraphStyle  paragraph_style)

Definition at line 1138 of file impeller.cc.

1138  {
1139  ObjectBase::SafeRetain(paragraph_style);
1140 }

References impeller::interop::ObjectBase::SafeRetain().

◆ ImpellerParagraphStyleSetBackground()

IMPELLER_EXTERN_C void impeller::interop::ImpellerParagraphStyleSetBackground ( ImpellerParagraphStyle  paragraph_style,
ImpellerPaint  paint 
)

Definition at line 1154 of file impeller.cc.

1155  {
1156  GetPeer(paragraph_style)->SetBackground(Ref(GetPeer(paint)));
1157 }
ScopedObject< Object > Ref(Object *object)
Definition: object.h:146

References Ref().

◆ ImpellerParagraphStyleSetEllipsis()

IMPELLER_EXTERN_C void impeller::interop::ImpellerParagraphStyleSetEllipsis ( ImpellerParagraphStyle  paragraph_style,
const char *  ellipsis 
)

Definition at line 1230 of file impeller.cc.

1231  {
1232  GetPeer(paragraph_style)->SetEllipsis(ReadString(ellipsis));
1233 }
static std::string ReadString(const char *string)
Definition: impeller.cc:1171

References ReadString().

◆ ImpellerParagraphStyleSetFontFamily()

IMPELLER_EXTERN_C void impeller::interop::ImpellerParagraphStyleSetFontFamily ( ImpellerParagraphStyle  paragraph_style,
const char *  family_name 
)

Definition at line 1179 of file impeller.cc.

1180  {
1181  GetPeer(paragraph_style)->SetFontFamily(ReadString(family_name));
1182 }

References ReadString().

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerParagraphStyleSetFontSize()

IMPELLER_EXTERN_C void impeller::interop::ImpellerParagraphStyleSetFontSize ( ImpellerParagraphStyle  paragraph_style,
float  size 
)

Definition at line 1185 of file impeller.cc.

1186  {
1187  GetPeer(paragraph_style)->SetFontSize(size);
1188 }

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerParagraphStyleSetFontStyle()

IMPELLER_EXTERN_C void impeller::interop::ImpellerParagraphStyleSetFontStyle ( ImpellerParagraphStyle  paragraph_style,
ImpellerFontStyle  style 
)

Definition at line 1166 of file impeller.cc.

1167  {
1168  GetPeer(paragraph_style)->SetFontStyle(ToTxtType(style));
1169 }
constexpr txt::TextDecorationStyle ToTxtType(ImpellerTextDecorationStyle style)
Definition: formats.h:442

References ToTxtType().

◆ ImpellerParagraphStyleSetFontWeight()

IMPELLER_EXTERN_C void impeller::interop::ImpellerParagraphStyleSetFontWeight ( ImpellerParagraphStyle  paragraph_style,
ImpellerFontWeight  weight 
)

Definition at line 1160 of file impeller.cc.

1161  {
1162  GetPeer(paragraph_style)->SetFontWeight(ToTxtType(weight));
1163 }

References ToTxtType().

◆ ImpellerParagraphStyleSetForeground()

IMPELLER_EXTERN_C void impeller::interop::ImpellerParagraphStyleSetForeground ( ImpellerParagraphStyle  paragraph_style,
ImpellerPaint  paint 
)

Definition at line 1148 of file impeller.cc.

1149  {
1150  GetPeer(paragraph_style)->SetForeground(Ref(GetPeer(paint)));
1151 }

References Ref().

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerParagraphStyleSetHeight()

IMPELLER_EXTERN_C void impeller::interop::ImpellerParagraphStyleSetHeight ( ImpellerParagraphStyle  paragraph_style,
float  height 
)

Definition at line 1191 of file impeller.cc.

1192  {
1193  GetPeer(paragraph_style)->SetHeight(height);
1194 }

◆ ImpellerParagraphStyleSetLocale()

IMPELLER_EXTERN_C void impeller::interop::ImpellerParagraphStyleSetLocale ( ImpellerParagraphStyle  paragraph_style,
const char *  locale 
)

Definition at line 1224 of file impeller.cc.

1225  {
1226  GetPeer(paragraph_style)->SetLocale(ReadString(locale));
1227 }

References ReadString().

◆ ImpellerParagraphStyleSetMaxLines()

IMPELLER_EXTERN_C void impeller::interop::ImpellerParagraphStyleSetMaxLines ( ImpellerParagraphStyle  paragraph_style,
uint32_t  max_lines 
)

Definition at line 1218 of file impeller.cc.

1219  {
1220  GetPeer(paragraph_style)->SetMaxLines(max_lines);
1221 }

◆ ImpellerParagraphStyleSetTextAlignment()

IMPELLER_EXTERN_C void impeller::interop::ImpellerParagraphStyleSetTextAlignment ( ImpellerParagraphStyle  paragraph_style,
ImpellerTextAlignment  align 
)

Definition at line 1197 of file impeller.cc.

1199  {
1200  GetPeer(paragraph_style)->SetTextAlignment(ToTxtType(align));
1201 }

References ToTxtType().

◆ ImpellerParagraphStyleSetTextDecoration()

IMPELLER_EXTERN_C void impeller::interop::ImpellerParagraphStyleSetTextDecoration ( ImpellerParagraphStyle  paragraph_style,
const ImpellerTextDecoration decoration 
)

Definition at line 1211 of file impeller.cc.

1213  {
1214  GetPeer(paragraph_style)->SetTextDecoration(*decoration);
1215 }

◆ ImpellerParagraphStyleSetTextDirection()

IMPELLER_EXTERN_C void impeller::interop::ImpellerParagraphStyleSetTextDirection ( ImpellerParagraphStyle  paragraph_style,
ImpellerTextDirection  direction 
)

Definition at line 1204 of file impeller.cc.

1206  {
1207  GetPeer(paragraph_style)->SetTextDirection(ToTxtType(direction));
1208 }

References ToTxtType().

◆ ImpellerPathBuilderAddArc()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPathBuilderAddArc ( ImpellerPathBuilder  builder,
const ImpellerRect oval_bounds,
float  start_angle_degrees,
float  end_angle_degrees 
)

Definition at line 389 of file impeller.cc.

392  {
393  GetPeer(builder)->AddArc(ToImpellerType(*oval_bounds), //
394  Degrees{start_angle_degrees}, //
395  Degrees{end_angle_degrees} //
396  );
397 }

References ToImpellerType().

◆ ImpellerPathBuilderAddOval()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPathBuilderAddOval ( ImpellerPathBuilder  builder,
const ImpellerRect oval_bounds 
)

Definition at line 400 of file impeller.cc.

401  {
402  GetPeer(builder)->AddOval(ToImpellerType(*oval_bounds));
403 }

References ToImpellerType().

◆ ImpellerPathBuilderAddRect()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPathBuilderAddRect ( ImpellerPathBuilder  builder,
const ImpellerRect rect 
)

Definition at line 383 of file impeller.cc.

384  {
385  GetPeer(builder)->AddRect(ToImpellerType(*rect));
386 }

References ToImpellerType().

◆ ImpellerPathBuilderAddRoundedRect()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPathBuilderAddRoundedRect ( ImpellerPathBuilder  builder,
const ImpellerRect rect,
const ImpellerRoundingRadii rounding_radii 
)

Definition at line 406 of file impeller.cc.

409  {
410  GetPeer(builder)->AddRoundedRect(ToImpellerType(*rect),
411  ToImpellerType(*rounding_radii));
412 }

References ToImpellerType().

◆ ImpellerPathBuilderClose()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPathBuilderClose ( ImpellerPathBuilder  builder)

Definition at line 415 of file impeller.cc.

415  {
416  GetPeer(builder)->Close();
417 }

◆ ImpellerPathBuilderCopyPathNew()

IMPELLER_EXTERN_C ImpellerPath impeller::interop::ImpellerPathBuilderCopyPathNew ( ImpellerPathBuilder  builder,
ImpellerFillType  fill 
)

Definition at line 420 of file impeller.cc.

421  {
422  return GetPeer(builder)->CopyPath(ToImpellerType(fill)).Leak();
423 }

References ToImpellerType().

◆ ImpellerPathBuilderCubicCurveTo()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPathBuilderCubicCurveTo ( ImpellerPathBuilder  builder,
const ImpellerPoint control_point_1,
const ImpellerPoint control_point_2,
const ImpellerPoint end_point 
)

Definition at line 372 of file impeller.cc.

375  {
376  GetPeer(builder)->CubicCurveTo(ToImpellerType(*control_point_1), //
377  ToImpellerType(*control_point_2), //
378  ToImpellerType(*end_point) //
379  );
380 }

References ToImpellerType().

◆ ImpellerPathBuilderLineTo()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPathBuilderLineTo ( ImpellerPathBuilder  builder,
const ImpellerPoint location 
)

Definition at line 358 of file impeller.cc.

359  {
360  GetPeer(builder)->LineTo(ToImpellerType(*location));
361 }

References ToImpellerType().

◆ ImpellerPathBuilderMoveTo()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPathBuilderMoveTo ( ImpellerPathBuilder  builder,
const ImpellerPoint location 
)

Definition at line 352 of file impeller.cc.

353  {
354  GetPeer(builder)->MoveTo(ToImpellerType(*location));
355 }

References ToImpellerType().

◆ ImpellerPathBuilderNew()

IMPELLER_EXTERN_C ImpellerPathBuilder impeller::interop::ImpellerPathBuilderNew ( )

Definition at line 337 of file impeller.cc.

337  {
338  return Create<PathBuilder>().Leak();
339 }

◆ ImpellerPathBuilderQuadraticCurveTo()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPathBuilderQuadraticCurveTo ( ImpellerPathBuilder  builder,
const ImpellerPoint control_point,
const ImpellerPoint end_point 
)

Definition at line 364 of file impeller.cc.

366  {
367  GetPeer(builder)->QuadraticCurveTo(ToImpellerType(*control_point),
368  ToImpellerType(*end_point));
369 }

References ToImpellerType().

◆ ImpellerPathBuilderRelease()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPathBuilderRelease ( ImpellerPathBuilder  builder)

Definition at line 347 of file impeller.cc.

347  {
348  ObjectBase::SafeRelease(builder);
349 }

References impeller::interop::ObjectBase::SafeRelease().

◆ ImpellerPathBuilderRetain()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPathBuilderRetain ( ImpellerPathBuilder  builder)

Definition at line 342 of file impeller.cc.

342  {
343  ObjectBase::SafeRetain(builder);
344 }

References impeller::interop::ObjectBase::SafeRetain().

◆ ImpellerPathBuilderTakePathNew()

IMPELLER_EXTERN_C ImpellerPath impeller::interop::ImpellerPathBuilderTakePathNew ( ImpellerPathBuilder  builder,
ImpellerFillType  fill 
)

Definition at line 426 of file impeller.cc.

427  {
428  return GetPeer(builder)->TakePath(ToImpellerType(fill)).Leak();
429 }

References ToImpellerType().

◆ ImpellerPathGetBounds()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPathGetBounds ( ImpellerPath  path,
ImpellerRect out_bounds 
)

Definition at line 332 of file impeller.cc.

332  {
333  *out_bounds = GetPeer(path)->GetBounds();
334 }

◆ ImpellerPathRelease()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPathRelease ( ImpellerPath  path)

Definition at line 327 of file impeller.cc.

327  {
328  ObjectBase::SafeRelease(path);
329 }

References impeller::interop::ObjectBase::SafeRelease().

◆ ImpellerPathRetain()

IMPELLER_EXTERN_C void impeller::interop::ImpellerPathRetain ( ImpellerPath  path)

Definition at line 322 of file impeller.cc.

322  {
323  ObjectBase::SafeRetain(path);
324 }

References impeller::interop::ObjectBase::SafeRetain().

◆ ImpellerSurfaceCreateWrappedFBONew()

IMPELLER_EXTERN_C ImpellerSurface impeller::interop::ImpellerSurfaceCreateWrappedFBONew ( ImpellerContext  context,
uint64_t  fbo,
ImpellerPixelFormat  format,
const ImpellerISize size 
)

Definition at line 733 of file impeller.cc.

736  {
737 #if IMPELLER_ENABLE_OPENGLES
738  if (!GetPeer(context)->IsGL()) {
739  VALIDATION_LOG << "Context is not OpenGL.";
740  return nullptr;
741  }
742  return Create<SurfaceGLES>(*GetPeer(context), //
743  fbo, //
744  ToImpellerType(format), //
745  ToImpellerType(*size)) //
746  .Leak();
747 #else // IMPELLER_ENABLE_OPENGLES
748  VALIDATION_LOG << "OpenGL unavailable.";
749  return nullptr;
750 #endif // IMPELLER_ENABLE_OPENGLES
751 }

References ToImpellerType(), and VALIDATION_LOG.

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerSurfaceCreateWrappedMetalDrawableNew()

IMPELLER_EXTERN_C ImpellerSurface impeller::interop::ImpellerSurfaceCreateWrappedMetalDrawableNew ( ImpellerContext  context,
void *  metal_drawable 
)

Definition at line 754 of file impeller.cc.

756  {
757 #if IMPELLER_ENABLE_METAL
758  if (!GetPeer(context)->IsMetal()) {
759  VALIDATION_LOG << "Context is not Metal.";
760  return nullptr;
761  }
762  return Create<SurfaceMTL>(*GetPeer(context), metal_drawable).Leak();
763 #else // IMPELLER_ENABLE_METAL
764  VALIDATION_LOG << "Metal unavailable.";
765  return nullptr;
766 #endif // IMPELLER_ENABLE_METAL
767 }

References VALIDATION_LOG.

◆ ImpellerSurfaceDrawDisplayList()

IMPELLER_EXTERN_C bool impeller::interop::ImpellerSurfaceDrawDisplayList ( ImpellerSurface  surface,
ImpellerDisplayList  display_list 
)

Definition at line 779 of file impeller.cc.

780  {
781  return GetPeer(surface)->DrawDisplayList(*GetPeer(display_list));
782 }

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerSurfacePresent()

IMPELLER_EXTERN_C bool impeller::interop::ImpellerSurfacePresent ( ImpellerSurface  surface)

Definition at line 785 of file impeller.cc.

785  {
786  return GetPeer(surface)->Present();
787 }

◆ ImpellerSurfaceRelease()

IMPELLER_EXTERN_C void impeller::interop::ImpellerSurfaceRelease ( ImpellerSurface  surface)

Definition at line 774 of file impeller.cc.

774  {
775  ObjectBase::SafeRelease(surface);
776 }

References impeller::interop::ObjectBase::SafeRelease().

◆ ImpellerSurfaceRetain()

IMPELLER_EXTERN_C void impeller::interop::ImpellerSurfaceRetain ( ImpellerSurface  surface)

Definition at line 769 of file impeller.cc.

769  {
770  ObjectBase::SafeRetain(surface);
771 }

References impeller::interop::ObjectBase::SafeRetain().

◆ ImpellerTextureCreateWithContentsNew()

IMPELLER_EXTERN_C ImpellerTexture impeller::interop::ImpellerTextureCreateWithContentsNew ( ImpellerContext  context,
const ImpellerTextureDescriptor descriptor,
const ImpellerMapping contents,
void *  contents_on_release_user_data 
)

Definition at line 597 of file impeller.cc.

601  {
602  TextureDescriptor desc;
603  desc.storage_mode = StorageMode::kHostVisible;
604  desc.type = TextureType::kTexture2D;
605  desc.format = ToImpellerType(descriptor->pixel_format);
606  desc.size = ToImpellerType(descriptor->size);
607  desc.mip_count = std::min(descriptor->mip_count, 1u);
608  desc.usage = TextureUsage::kShaderRead;
609  desc.compression_type = CompressionType::kLossless;
610  auto texture = Create<Texture>(*GetPeer(context), desc);
611  if (!texture->IsValid()) {
612  VALIDATION_LOG << "Could not create texture.";
613  return nullptr;
614  }
615  // Depending on whether the de-allocation can be delayed, it may be possible
616  // to avoid a data copy.
617  if (contents->on_release) {
618  // Avoids data copy.
619  auto wrapped_contents = std::make_shared<fml::NonOwnedMapping>(
620  contents->data, // data ptr
621  contents->length, // data length
622  [on_release = contents->on_release, contents_on_release_user_data](
623  auto, auto) {
624  on_release(contents_on_release_user_data);
625  } // release callback
626  );
627  if (!texture->SetContents(std::move(wrapped_contents))) {
628  VALIDATION_LOG << "Could not set texture contents.";
629  return nullptr;
630  }
631  } else {
632  // May copy.
633  if (!texture->SetContents(contents->data, contents->length)) {
634  VALIDATION_LOG << "Could not set texture contents.";
635  return nullptr;
636  }
637  }
638  return texture.Leak();
639 }
ImpellerCallback IMPELLER_NULLABLE on_release
Definition: impeller.h:629
uint64_t length
Definition: impeller.h:628
const uint8_t *IMPELLER_NONNULL data
Definition: impeller.h:627
ImpellerPixelFormat pixel_format
Definition: impeller.h:621
ImpellerISize size
Definition: impeller.h:622

References impeller::TextureDescriptor::compression_type, ImpellerMapping::data, impeller::TextureDescriptor::format, impeller::kHostVisible, impeller::kLossless, impeller::kShaderRead, impeller::kTexture2D, ImpellerMapping::length, impeller::TextureDescriptor::mip_count, ImpellerTextureDescriptor::mip_count, ImpellerMapping::on_release, ImpellerTextureDescriptor::pixel_format, impeller::TextureDescriptor::size, ImpellerTextureDescriptor::size, impeller::TextureDescriptor::storage_mode, ToImpellerType(), impeller::TextureDescriptor::type, impeller::TextureDescriptor::usage, and VALIDATION_LOG.

◆ ImpellerTextureCreateWithOpenGLTextureHandleNew()

IMPELLER_EXTERN_C ImpellerTexture impeller::interop::ImpellerTextureCreateWithOpenGLTextureHandleNew ( ImpellerContext  context,
const ImpellerTextureDescriptor descriptor,
uint64_t  external_gl_handle 
)

Definition at line 642 of file impeller.cc.

645  {
646  auto impeller_context = GetPeer(context)->GetContext();
647  if (impeller_context->GetBackendType() !=
649  VALIDATION_LOG << "Context is not OpenGL.";
650  return nullptr;
651  }
652 
653  const auto& impeller_context_gl =
654  impeller::ContextGLES::Cast(*impeller_context);
655  const auto& reactor = impeller_context_gl.GetReactor();
656 
657  TextureDescriptor desc;
658  desc.storage_mode = StorageMode::kDevicePrivate;
659  desc.type = TextureType::kTexture2D;
660  desc.format = ToImpellerType(descriptor->pixel_format);
661  desc.size = ToImpellerType(descriptor->size);
662  desc.mip_count = std::min(descriptor->mip_count, 1u);
663  desc.usage = TextureUsage::kShaderRead;
664  desc.compression_type = CompressionType::kLossless;
665 
666  auto texture = TextureGLES::WrapTexture(
667  reactor, //
668  desc, //
669  reactor->CreateHandle(HandleType::kTexture, external_gl_handle) //
670  );
671  if (!texture || !texture->IsValid()) {
672  VALIDATION_LOG << "Could not wrap external texture.";
673  return nullptr;
674  }
675  texture->SetCoordinateSystem(TextureCoordinateSystem::kUploadFromHost);
676  return Create<Texture>(impeller::Context::BackendType::kOpenGLES,
677  std::move(texture))
678  .Leak();
679 }
static ContextGLES & Cast(Context &base)
Definition: backend_cast.h:13

References impeller::BackendCast< ContextGLES, Context >::Cast(), impeller::TextureDescriptor::compression_type, impeller::TextureDescriptor::format, impeller::kDevicePrivate, impeller::kLossless, impeller::Context::kOpenGLES, impeller::kShaderRead, impeller::kTexture, impeller::kTexture2D, impeller::kUploadFromHost, impeller::TextureDescriptor::mip_count, ImpellerTextureDescriptor::mip_count, ImpellerTextureDescriptor::pixel_format, impeller::TextureDescriptor::size, ImpellerTextureDescriptor::size, impeller::TextureDescriptor::storage_mode, ToImpellerType(), impeller::TextureDescriptor::type, impeller::TextureDescriptor::usage, VALIDATION_LOG, and impeller::TextureGLES::WrapTexture().

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerTextureGetOpenGLHandle()

IMPELLER_EXTERN_C uint64_t impeller::interop::ImpellerTextureGetOpenGLHandle ( ImpellerTexture  texture)

Definition at line 692 of file impeller.cc.

692  {
693  auto interop_texture = GetPeer(texture);
694  if (interop_texture->GetBackendType() !=
696  VALIDATION_LOG << "Can only fetch the texture handle of an OpenGL texture.";
697  return 0u;
698  }
699  return TextureGLES::Cast(*interop_texture->GetTexture())
700  .GetGLHandle()
701  .value_or(0u);
702 }

References impeller::BackendCast< TextureGLES, Texture >::Cast(), impeller::TextureGLES::GetGLHandle(), impeller::Context::kOpenGLES, and VALIDATION_LOG.

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerTextureRelease()

IMPELLER_EXTERN_C void impeller::interop::ImpellerTextureRelease ( ImpellerTexture  texture)

Definition at line 687 of file impeller.cc.

687  {
688  ObjectBase::SafeRelease(texture);
689 }

References impeller::interop::ObjectBase::SafeRelease().

◆ ImpellerTextureRetain()

IMPELLER_EXTERN_C void impeller::interop::ImpellerTextureRetain ( ImpellerTexture  texture)

Definition at line 682 of file impeller.cc.

682  {
683  ObjectBase::SafeRetain(texture);
684 }

References impeller::interop::ObjectBase::SafeRetain().

◆ ImpellerTypographyContextNew()

IMPELLER_EXTERN_C ImpellerTypographyContext impeller::interop::ImpellerTypographyContextNew ( )

Definition at line 1372 of file impeller.cc.

1372  {
1373  auto context = Create<TypographyContext>();
1374  if (!context->IsValid()) {
1375  VALIDATION_LOG << "Could not create typography context.";
1376  return nullptr;
1377  }
1378  return context.Leak();
1379 }

References VALIDATION_LOG.

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerTypographyContextRegisterFont()

IMPELLER_EXTERN_C bool impeller::interop::ImpellerTypographyContextRegisterFont ( ImpellerTypographyContext  context,
const ImpellerMapping contents,
void *  contents_on_release_user_data,
const char *  family_name_alias 
)

Definition at line 1392 of file impeller.cc.

1395  {
1396  auto wrapped_contents = std::make_unique<fml::NonOwnedMapping>(
1397  contents->data, // data ptr
1398  contents->length, // data length
1399  [on_release = contents->on_release, contents_on_release_user_data](auto,
1400  auto) {
1401  on_release(contents_on_release_user_data);
1402  } // release callback
1403  );
1404  return GetPeer(context)->RegisterFont(std::move(wrapped_contents),
1405  family_name_alias);
1406 }

References ImpellerMapping::data, ImpellerMapping::length, and ImpellerMapping::on_release.

Referenced by impeller::interop::testing::TEST_P().

◆ ImpellerTypographyContextRelease()

IMPELLER_EXTERN_C void impeller::interop::ImpellerTypographyContextRelease ( ImpellerTypographyContext  context)

Definition at line 1387 of file impeller.cc.

1387  {
1388  ObjectBase::SafeRelease(context);
1389 }

References impeller::interop::ObjectBase::SafeRelease().

◆ ImpellerTypographyContextRetain()

IMPELLER_EXTERN_C void impeller::interop::ImpellerTypographyContextRetain ( ImpellerTypographyContext  context)

Definition at line 1382 of file impeller.cc.

1382  {
1383  ObjectBase::SafeRetain(context);
1384 }

References impeller::interop::ObjectBase::SafeRetain().

◆ ImpellerVulkanSwapchainAcquireNextSurfaceNew()

IMPELLER_EXTERN_C ImpellerSurface impeller::interop::ImpellerVulkanSwapchainAcquireNextSurfaceNew ( ImpellerVulkanSwapchain  swapchain)

Definition at line 223 of file impeller.cc.

224  {
225  return GetPeer(swapchain)->AcquireNextSurface().Leak();
226 }

◆ ImpellerVulkanSwapchainCreateNew()

IMPELLER_EXTERN_C ImpellerVulkanSwapchain impeller::interop::ImpellerVulkanSwapchainCreateNew ( ImpellerContext  context,
void *  vulkan_surface_khr 
)

Definition at line 197 of file impeller.cc.

199  {
200 #if IMPELLER_ENABLE_VULKAN
201  return Create<SwapchainVK>(
202  *GetPeer(context), //
203  reinterpret_cast<VkSurfaceKHR>(vulkan_surface_khr) //
204  )
205  .Leak();
206 #else // IMPELLER_ENABLE_VULKAN
207  VALIDATION_LOG << "Vulkan not available.";
208  return nullptr;
209 #endif // IMPELLER_ENABLE_VULKAN
210 }

References VALIDATION_LOG.

◆ ImpellerVulkanSwapchainRelease()

IMPELLER_EXTERN_C void impeller::interop::ImpellerVulkanSwapchainRelease ( ImpellerVulkanSwapchain  swapchain)

Definition at line 218 of file impeller.cc.

218  {
219  ObjectBase::SafeRelease(swapchain);
220 }

References impeller::interop::ObjectBase::SafeRelease().

◆ ImpellerVulkanSwapchainRetain()

IMPELLER_EXTERN_C void impeller::interop::ImpellerVulkanSwapchainRetain ( ImpellerVulkanSwapchain  swapchain)

Definition at line 213 of file impeller.cc.

213  {
214  ObjectBase::SafeRetain(swapchain);
215 }

References impeller::interop::ObjectBase::SafeRetain().

◆ MakeCopyableMapping()

static std::shared_ptr<fml::Mapping> impeller::interop::MakeCopyableMapping ( const ImpellerMapping data,
void *  user_data 
)
static

Definition at line 1562 of file impeller.cc.

1564  {
1565  if (data == nullptr) {
1566  return nullptr;
1567  }
1568 
1569  // If the user has supplied a release callback, defer deallocation to them.
1570  if (auto callback = data->on_release) {
1571  return std::make_shared<fml::NonOwnedMapping>(
1572  data->data, //
1573  data->length, //
1574  [user_data, callback](const uint8_t* data, size_t size) {
1575  callback(user_data);
1576  });
1577  }
1578 
1579  return std::make_shared<fml::MallocMapping>(
1580  fml::MallocMapping::Copy(data->data, data->length));
1581 }

References data.

Referenced by ImpellerFragmentProgramNew().

◆ ParseColorsAndStops()

static std::pair<std::vector<flutter::DlColor>, std::vector<Scalar> > impeller::interop::ParseColorsAndStops ( uint32_t  stop_count,
const ImpellerColor colors,
const float *  stops 
)
static

Definition at line 829 of file impeller.cc.

831  {
832  if (stop_count == 0) {
833  return {};
834  }
835  std::pair<std::vector<flutter::DlColor>, std::vector<Scalar>> result;
836  result.first.reserve(stop_count);
837  result.second.reserve(stop_count);
838  for (size_t i = 0; i < stop_count; i++) {
839  result.first.emplace_back(ToDisplayListType(colors[i]));
840  result.second.emplace_back(stops[i]);
841  }
842  return result;
843 }

References ToDisplayListType().

Referenced by ImpellerColorSourceCreateConicalGradientNew(), ImpellerColorSourceCreateLinearGradientNew(), ImpellerColorSourceCreateRadialGradientNew(), and ImpellerColorSourceCreateSweepGradientNew().

◆ ReadSamplersAndUniforms()

static SamplersAndUniforms impeller::interop::ReadSamplersAndUniforms ( ImpellerTexture *  samplers,
size_t  samplers_count,
const uint8_t *  data,
size_t  data_bytes_length 
)
static

Definition at line 962 of file impeller.cc.

965  {
966  SamplersAndUniforms result;
967  result.uniforms = std::make_shared<std::vector<uint8_t>>();
968  if (data_bytes_length > 0) {
969  std::copy(data, data + data_bytes_length,
970  std::back_inserter(*result.uniforms));
971  }
972  if (samplers_count > 0) {
973  result.samplers.reserve(samplers_count);
974  for (size_t i = 0; i < samplers_count; i++) {
975  result.samplers.emplace_back(flutter::DlColorSource::MakeImage(
976  DlImageImpeller::Make(GetPeer(samplers[i])->GetTexture()), //
977  flutter::DlTileMode::kClamp, //
978  flutter::DlTileMode::kClamp //
979  ));
980  }
981  }
982  return result;
983 }

References data, impeller::DlImageImpeller::Make(), impeller::interop::SamplersAndUniforms::samplers, and impeller::interop::SamplersAndUniforms::uniforms.

Referenced by ImpellerColorSourceCreateFragmentProgramNew(), and ImpellerImageFilterCreateFragmentProgramNew().

◆ ReadString()

static std::string impeller::interop::ReadString ( const char *  string)
static

Definition at line 1171 of file impeller.cc.

1171  {
1172  if (string == nullptr) {
1173  return "";
1174  }
1175  return std::string{string};
1176 }

Referenced by ImpellerParagraphStyleSetEllipsis(), ImpellerParagraphStyleSetFontFamily(), and ImpellerParagraphStyleSetLocale().

◆ Ref()

template<typename Object >
ScopedObject<Object> impeller::interop::Ref ( Object object)

Definition at line 146 of file object.h.

146  {
147  return ScopedObject<Object>{object};
148 }

Referenced by ImpellerParagraphStyleSetBackground(), ImpellerParagraphStyleSetForeground(), and impeller::interop::testing::TEST().

◆ RuntimeStageBackendToString()

const char * impeller::interop::RuntimeStageBackendToString ( RuntimeStageBackend  backend)

Definition at line 70 of file fragment_program.cc.

70  {
71  switch (backend) {
72  case RuntimeStageBackend::kSkSL:
73  return "SKSL";
74  case RuntimeStageBackend::kMetal:
75  return "Metal";
76  case RuntimeStageBackend::kOpenGLES:
77  return "OpenGL ES2";
78  case RuntimeStageBackend::kOpenGLES3:
79  return "OpenGL ES3";
80  case RuntimeStageBackend::kVulkan:
81  return "Vulkan";
82  }
83  return "Unknown";
84 }

References impeller::kMetal, impeller::kOpenGLES, impeller::kOpenGLES3, impeller::kSkSL, and impeller::kVulkan.

Referenced by AvailableStagesAsString(), and impeller::interop::FragmentProgram::FindRuntimeStage().

◆ ToDisplayListType() [1/11]

constexpr flutter::DlBlendMode impeller::interop::ToDisplayListType ( BlendMode  mode)
constexpr

Definition at line 136 of file formats.h.

136  {
137  using Mode = flutter::DlBlendMode;
138  switch (mode) {
139  case BlendMode::kClear:
140  return Mode::kClear;
141  case BlendMode::kSrc:
142  return Mode::kSrc;
143  case BlendMode::kDst:
144  return Mode::kDst;
145  case BlendMode::kSrcOver:
146  return Mode::kSrcOver;
147  case BlendMode::kDstOver:
148  return Mode::kDstOver;
149  case BlendMode::kSrcIn:
150  return Mode::kSrcIn;
151  case BlendMode::kDstIn:
152  return Mode::kDstIn;
153  case BlendMode::kSrcOut:
154  return Mode::kSrcOut;
155  case BlendMode::kDstOut:
156  return Mode::kDstOut;
157  case BlendMode::kSrcATop:
158  return Mode::kSrcATop;
159  case BlendMode::kDstATop:
160  return Mode::kDstATop;
161  case BlendMode::kXor:
162  return Mode::kXor;
163  case BlendMode::kPlus:
164  return Mode::kPlus;
165  case BlendMode::kModulate:
166  return Mode::kModulate;
167  case BlendMode::kScreen:
168  return Mode::kScreen;
169  case BlendMode::kOverlay:
170  return Mode::kOverlay;
171  case BlendMode::kDarken:
172  return Mode::kDarken;
173  case BlendMode::kLighten:
174  return Mode::kLighten;
175  case BlendMode::kColorDodge:
176  return Mode::kColorDodge;
177  case BlendMode::kColorBurn:
178  return Mode::kColorBurn;
179  case BlendMode::kHardLight:
180  return Mode::kHardLight;
181  case BlendMode::kSoftLight:
182  return Mode::kSoftLight;
183  case BlendMode::kDifference:
184  return Mode::kDifference;
185  case BlendMode::kExclusion:
186  return Mode::kExclusion;
187  case BlendMode::kMultiply:
188  return Mode::kMultiply;
189  case BlendMode::kHue:
190  return Mode::kHue;
191  case BlendMode::kSaturation:
192  return Mode::kSaturation;
193  case BlendMode::kColor:
194  return Mode::kColor;
195  case BlendMode::kLuminosity:
196  return Mode::kLuminosity;
197  }
198  return Mode::kSrcOver;
199 }

References impeller::kClear, impeller::kColor, impeller::kColorBurn, impeller::kColorDodge, impeller::kDarken, impeller::kDifference, impeller::kDst, impeller::kDstATop, impeller::kDstIn, impeller::kDstOut, impeller::kDstOver, impeller::kExclusion, impeller::kHardLight, impeller::kHue, impeller::kLighten, impeller::kLuminosity, impeller::kModulate, impeller::kMultiply, impeller::kOverlay, impeller::kPlus, impeller::kSaturation, impeller::kScreen, impeller::kSoftLight, impeller::kSrc, impeller::kSrcATop, impeller::kSrcIn, impeller::kSrcOut, impeller::kSrcOver, and impeller::kXor.

◆ ToDisplayListType() [2/11]

◆ ToDisplayListType() [3/11]

template<class DlType , class OtherType >
std::vector<DlType> impeller::interop::ToDisplayListType ( const std::vector< OtherType > &  other_vec)

Definition at line 102 of file formats.h.

102  {
103  std::vector<DlType> dl_vec;
104  dl_vec.reserve(other_vec.size());
105  for (const auto& other : other_vec) {
106  dl_vec.emplace_back(ToDisplayListType(other));
107  }
108  return dl_vec;
109 }
constexpr flutter::DlColor ToDisplayListType(ImpellerColor color)
Definition: formats.h:433

References ToDisplayListType().

◆ ToDisplayListType() [4/11]

constexpr flutter::DlBlurStyle impeller::interop::ToDisplayListType ( ImpellerBlurStyle  style)
constexpr

Definition at line 122 of file formats.h.

122  {
123  switch (style) {
125  return flutter::DlBlurStyle::kNormal;
127  return flutter::DlBlurStyle::kSolid;
129  return flutter::DlBlurStyle::kOuter;
131  return flutter::DlBlurStyle::kInner;
132  }
133  return flutter::DlBlurStyle::kNormal;
134 }
@ kImpellerBlurStyleNormal
Definition: impeller.h:441
@ kImpellerBlurStyleOuter
Definition: impeller.h:443
@ kImpellerBlurStyleInner
Definition: impeller.h:444
@ kImpellerBlurStyleSolid
Definition: impeller.h:442

References kImpellerBlurStyleInner, kImpellerBlurStyleNormal, kImpellerBlurStyleOuter, and kImpellerBlurStyleSolid.

◆ ToDisplayListType() [5/11]

constexpr flutter::DlColor impeller::interop::ToDisplayListType ( ImpellerColor  color)
constexpr

Definition at line 433 of file formats.h.

433  {
434  return flutter::DlColor(color.alpha, //
435  color.red, //
436  color.green, //
437  color.blue, //
439  );
440 }
float blue
Definition: impeller.h:615
float alpha
Definition: impeller.h:616
float green
Definition: impeller.h:614
ImpellerColorSpace color_space
Definition: impeller.h:617

References ImpellerColor::alpha, ImpellerColor::blue, ImpellerColor::color_space, ImpellerColor::green, ImpellerColor::red, and ToDisplayListType().

◆ ToDisplayListType() [6/11]

constexpr flutter::DlColorSpace impeller::interop::ToDisplayListType ( ImpellerColorSpace  color_space)
constexpr

Definition at line 420 of file formats.h.

421  {
422  switch (color_space) {
424  return flutter::DlColorSpace::kSRGB;
426  return flutter::DlColorSpace::kExtendedSRGB;
428  return flutter::DlColorSpace::kDisplayP3;
429  }
430  return flutter::DlColorSpace::kSRGB;
431 }
@ kImpellerColorSpaceExtendedSRGB
Definition: impeller.h:449
@ kImpellerColorSpaceSRGB
Definition: impeller.h:448
@ kImpellerColorSpaceDisplayP3
Definition: impeller.h:450

References kImpellerColorSpaceDisplayP3, kImpellerColorSpaceExtendedSRGB, and kImpellerColorSpaceSRGB.

◆ ToDisplayListType() [7/11]

constexpr flutter::DlDrawStyle impeller::interop::ToDisplayListType ( ImpellerDrawStyle  style)
constexpr

Definition at line 372 of file formats.h.

372  {
373  switch (style) {
375  return flutter::DlDrawStyle::kFill;
377  return flutter::DlDrawStyle::kStroke;
379  return flutter::DlDrawStyle::kStrokeAndFill;
380  }
381  return flutter::DlDrawStyle::kFill;
382 }
@ kImpellerDrawStyleStroke
Definition: impeller.h:408
@ kImpellerDrawStyleFill
Definition: impeller.h:407
@ kImpellerDrawStyleStrokeAndFill
Definition: impeller.h:409

References kImpellerDrawStyleFill, kImpellerDrawStyleStroke, and kImpellerDrawStyleStrokeAndFill.

◆ ToDisplayListType() [8/11]

constexpr flutter::DlStrokeCap impeller::interop::ToDisplayListType ( ImpellerStrokeCap  cap)
constexpr

Definition at line 384 of file formats.h.

384  {
385  switch (cap) {
387  return flutter::DlStrokeCap::kButt;
389  return flutter::DlStrokeCap::kRound;
391  return flutter::DlStrokeCap::kSquare;
392  }
393  return flutter::DlStrokeCap::kButt;
394 }
@ kImpellerStrokeCapButt
Definition: impeller.h:413
@ kImpellerStrokeCapRound
Definition: impeller.h:414
@ kImpellerStrokeCapSquare
Definition: impeller.h:415

References kImpellerStrokeCapButt, kImpellerStrokeCapRound, and kImpellerStrokeCapSquare.

◆ ToDisplayListType() [9/11]

constexpr flutter::DlStrokeJoin impeller::interop::ToDisplayListType ( ImpellerStrokeJoin  join)
constexpr

Definition at line 396 of file formats.h.

396  {
397  switch (join) {
399  return flutter::DlStrokeJoin::kMiter;
401  return flutter::DlStrokeJoin::kRound;
403  return flutter::DlStrokeJoin::kBevel;
404  }
405  return flutter::DlStrokeJoin::kMiter;
406 }
@ kImpellerStrokeJoinRound
Definition: impeller.h:420
@ kImpellerStrokeJoinBevel
Definition: impeller.h:421
@ kImpellerStrokeJoinMiter
Definition: impeller.h:419

References kImpellerStrokeJoinBevel, kImpellerStrokeJoinMiter, and kImpellerStrokeJoinRound.

◆ ToDisplayListType() [10/11]

constexpr flutter::DlImageSampling impeller::interop::ToDisplayListType ( ImpellerTextureSampling  sampling)
constexpr

Definition at line 111 of file formats.h.

112  {
113  switch (sampling) {
115  return flutter::DlImageSampling::kNearestNeighbor;
117  return flutter::DlImageSampling::kLinear;
118  }
119  return flutter::DlImageSampling::kLinear;
120 }
@ kImpellerTextureSamplingNearestNeighbor
Definition: impeller.h:429
@ kImpellerTextureSamplingLinear
Definition: impeller.h:430

References kImpellerTextureSamplingLinear, and kImpellerTextureSamplingNearestNeighbor.

◆ ToDisplayListType() [11/11]

constexpr flutter::DlTileMode impeller::interop::ToDisplayListType ( ImpellerTileMode  mode)
constexpr

Definition at line 256 of file formats.h.

256  {
257  switch (mode) {
259  return flutter::DlTileMode::kClamp;
261  return flutter::DlTileMode::kRepeat;
263  return flutter::DlTileMode::kMirror;
265  return flutter::DlTileMode::kDecal;
266  }
267  return flutter::DlTileMode::kClamp;
268 }
@ kImpellerTileModeMirror
Definition: impeller.h:436
@ kImpellerTileModeClamp
Definition: impeller.h:434
@ kImpellerTileModeRepeat
Definition: impeller.h:435
@ kImpellerTileModeDecal
Definition: impeller.h:437

References kImpellerTileModeClamp, kImpellerTileModeDecal, kImpellerTileModeMirror, and kImpellerTileModeRepeat.

◆ ToImpellerSize()

constexpr Size impeller::interop::ToImpellerSize ( const ImpellerPoint point)
constexpr

Definition at line 248 of file formats.h.

248  {
249  return Size{point.x, point.y};
250 }

References ImpellerPoint::x, and ImpellerPoint::y.

Referenced by ToImpellerType().

◆ ToImpellerType() [1/11]

constexpr Color impeller::interop::ToImpellerType ( const ImpellerColor color)
constexpr

Definition at line 299 of file formats.h.

299  {
300  Color result;
301  result.red = color.red;
302  result.green = color.green;
303  result.blue = color.blue;
304  result.alpha = color.alpha;
305  return result;
306 }

References impeller::Color::alpha, ImpellerColor::alpha, impeller::Color::blue, ImpellerColor::blue, impeller::Color::green, ImpellerColor::green, impeller::Color::red, and ImpellerColor::red.

◆ ToImpellerType() [2/11]

constexpr ISize impeller::interop::ToImpellerType ( const ImpellerISize size)
constexpr

Definition at line 416 of file formats.h.

416  {
417  return ISize::MakeWH(size.width, size.height);
418 }
int64_t height
Definition: impeller.h:521
int64_t width
Definition: impeller.h:520

References ImpellerISize::height, impeller::TSize< T >::MakeWH(), and ImpellerISize::width.

◆ ToImpellerType() [3/11]

constexpr Matrix impeller::interop::ToImpellerType ( const ImpellerMatrix m)
constexpr

Definition at line 213 of file formats.h.

213  {
214  return Matrix(m.m[0], m.m[1], m.m[2], m.m[3], //
215  m.m[4], m.m[5], m.m[6], m.m[7], //
216  m.m[8], m.m[9], m.m[10], m.m[11], //
217  m.m[12], m.m[13], m.m[14], m.m[15] //
218  );
219 }

References ImpellerMatrix::m.

Referenced by ImpellerColorFilterCreateBlendNew(), ImpellerColorSourceCreateConicalGradientNew(), ImpellerColorSourceCreateImageNew(), ImpellerColorSourceCreateLinearGradientNew(), ImpellerColorSourceCreateRadialGradientNew(), ImpellerColorSourceCreateSweepGradientNew(), ImpellerDisplayListBuilderClipOval(), ImpellerDisplayListBuilderClipPath(), ImpellerDisplayListBuilderClipRect(), ImpellerDisplayListBuilderClipRoundedRect(), ImpellerDisplayListBuilderDrawDashedLine(), ImpellerDisplayListBuilderDrawLine(), ImpellerDisplayListBuilderDrawOval(), ImpellerDisplayListBuilderDrawParagraph(), ImpellerDisplayListBuilderDrawRect(), ImpellerDisplayListBuilderDrawRoundedRect(), ImpellerDisplayListBuilderDrawRoundedRectDifference(), ImpellerDisplayListBuilderDrawTexture(), ImpellerDisplayListBuilderDrawTextureRect(), ImpellerDisplayListBuilderSaveLayer(), ImpellerDisplayListBuilderSetTransform(), ImpellerDisplayListBuilderTransform(), ImpellerImageFilterCreateMatrixNew(), ImpellerPaintSetBlendMode(), ImpellerPathBuilderAddArc(), ImpellerPathBuilderAddOval(), ImpellerPathBuilderAddRect(), ImpellerPathBuilderAddRoundedRect(), ImpellerPathBuilderCopyPathNew(), ImpellerPathBuilderCubicCurveTo(), ImpellerPathBuilderLineTo(), ImpellerPathBuilderMoveTo(), ImpellerPathBuilderQuadraticCurveTo(), ImpellerPathBuilderTakePathNew(), ImpellerSurfaceCreateWrappedFBONew(), ImpellerTextureCreateWithContentsNew(), ImpellerTextureCreateWithOpenGLTextureHandleNew(), and impeller::interop::testing::TEST_P().

◆ ToImpellerType() [4/11]

constexpr Point impeller::interop::ToImpellerType ( const ImpellerPoint point)
constexpr

Definition at line 244 of file formats.h.

244  {
245  return Point{point.x, point.y};
246 }

References ImpellerPoint::x, and ImpellerPoint::y.

◆ ToImpellerType() [5/11]

constexpr Rect impeller::interop::ToImpellerType ( const ImpellerRect rect)
constexpr

Definition at line 252 of file formats.h.

252  {
253  return Rect::MakeXYWH(rect.x, rect.y, rect.width, rect.height);
254 }
float width
Definition: impeller.h:505
float height
Definition: impeller.h:506

References ImpellerRect::height, impeller::TRect< Scalar >::MakeXYWH(), ImpellerRect::width, ImpellerRect::x, and ImpellerRect::y.

◆ ToImpellerType() [6/11]

constexpr RoundingRadii impeller::interop::ToImpellerType ( const ImpellerRoundingRadii radii)
constexpr

Definition at line 270 of file formats.h.

270  {
271  auto result = RoundingRadii{};
272  result.top_left = ToImpellerSize(radii.top_left);
273  result.bottom_left = ToImpellerSize(radii.bottom_left);
274  result.top_right = ToImpellerSize(radii.top_right);
275  result.bottom_right = ToImpellerSize(radii.bottom_right);
276  return result;
277 }
constexpr Size ToImpellerSize(const ImpellerPoint &point)
Definition: formats.h:248
ImpellerPoint top_left
Definition: impeller.h:606
ImpellerPoint top_right
Definition: impeller.h:608
ImpellerPoint bottom_left
Definition: impeller.h:607
ImpellerPoint bottom_right
Definition: impeller.h:609

References ImpellerRoundingRadii::bottom_left, ImpellerRoundingRadii::bottom_right, ToImpellerSize(), impeller::RoundingRadii::top_left, ImpellerRoundingRadii::top_left, and ImpellerRoundingRadii::top_right.

◆ ToImpellerType() [7/11]

constexpr Size impeller::interop::ToImpellerType ( const ImpellerSize size)
constexpr

Definition at line 240 of file formats.h.

240  {
241  return Size{size.width, size.height};
242 }
float height
Definition: impeller.h:516
float width
Definition: impeller.h:515

References ImpellerSize::height, and ImpellerSize::width.

◆ ToImpellerType() [8/11]

constexpr BlendMode impeller::interop::ToImpellerType ( ImpellerBlendMode  mode)
constexpr

Definition at line 308 of file formats.h.

308  {
309  switch (mode) {
311  return BlendMode::kClear;
313  return BlendMode::kSrc;
315  return BlendMode::kDst;
317  return BlendMode::kSrcOver;
319  return BlendMode::kDstOver;
321  return BlendMode::kSrcIn;
323  return BlendMode::kDstIn;
325  return BlendMode::kSrcOut;
327  return BlendMode::kDstOut;
329  return BlendMode::kSrcATop;
331  return BlendMode::kDstATop;
333  return BlendMode::kXor;
335  return BlendMode::kPlus;
337  return BlendMode::kModulate;
339  return BlendMode::kScreen;
341  return BlendMode::kOverlay;
343  return BlendMode::kDarken;
345  return BlendMode::kLighten;
347  return BlendMode::kColorDodge;
349  return BlendMode::kColorBurn;
351  return BlendMode::kHardLight;
353  return BlendMode::kSoftLight;
355  return BlendMode::kDifference;
357  return BlendMode::kExclusion;
359  return BlendMode::kMultiply;
361  return BlendMode::kHue;
363  return BlendMode::kSaturation;
365  return BlendMode::kColor;
367  return BlendMode::kLuminosity;
368  }
369  return BlendMode::kSrcOver;
370 }
@ kImpellerBlendModeSaturation
Definition: impeller.h:401
@ kImpellerBlendModeSoftLight
Definition: impeller.h:396
@ kImpellerBlendModeHardLight
Definition: impeller.h:395
@ kImpellerBlendModeLuminosity
Definition: impeller.h:403
@ kImpellerBlendModeLighten
Definition: impeller.h:392
@ kImpellerBlendModeModulate
Definition: impeller.h:388
@ kImpellerBlendModeSourceIn
Definition: impeller.h:380
@ kImpellerBlendModeDifference
Definition: impeller.h:397
@ kImpellerBlendModeClear
Definition: impeller.h:375
@ kImpellerBlendModeColor
Definition: impeller.h:402
@ kImpellerBlendModeMultiply
Definition: impeller.h:399
@ kImpellerBlendModeSourceATop
Definition: impeller.h:384
@ kImpellerBlendModeDestinationOut
Definition: impeller.h:383
@ kImpellerBlendModeScreen
Definition: impeller.h:389
@ kImpellerBlendModeExclusion
Definition: impeller.h:398
@ kImpellerBlendModeColorBurn
Definition: impeller.h:394
@ kImpellerBlendModeDarken
Definition: impeller.h:391
@ kImpellerBlendModePlus
Definition: impeller.h:387
@ kImpellerBlendModeOverlay
Definition: impeller.h:390
@ kImpellerBlendModeDestinationIn
Definition: impeller.h:381
@ kImpellerBlendModeDestinationATop
Definition: impeller.h:385
@ kImpellerBlendModeDestination
Definition: impeller.h:377
@ kImpellerBlendModeSourceOver
Definition: impeller.h:378
@ kImpellerBlendModeXor
Definition: impeller.h:386
@ kImpellerBlendModeColorDodge
Definition: impeller.h:393
@ kImpellerBlendModeDestinationOver
Definition: impeller.h:379
@ kImpellerBlendModeSource
Definition: impeller.h:376
@ kImpellerBlendModeSourceOut
Definition: impeller.h:382
@ kImpellerBlendModeHue
Definition: impeller.h:400

References impeller::kClear, impeller::kColor, impeller::kColorBurn, impeller::kColorDodge, impeller::kDarken, impeller::kDifference, impeller::kDst, impeller::kDstATop, impeller::kDstIn, impeller::kDstOut, impeller::kDstOver, impeller::kExclusion, impeller::kHardLight, impeller::kHue, kImpellerBlendModeClear, kImpellerBlendModeColor, kImpellerBlendModeColorBurn, kImpellerBlendModeColorDodge, kImpellerBlendModeDarken, kImpellerBlendModeDestination, kImpellerBlendModeDestinationATop, kImpellerBlendModeDestinationIn, kImpellerBlendModeDestinationOut, kImpellerBlendModeDestinationOver, kImpellerBlendModeDifference, kImpellerBlendModeExclusion, kImpellerBlendModeHardLight, kImpellerBlendModeHue, kImpellerBlendModeLighten, kImpellerBlendModeLuminosity, kImpellerBlendModeModulate, kImpellerBlendModeMultiply, kImpellerBlendModeOverlay, kImpellerBlendModePlus, kImpellerBlendModeSaturation, kImpellerBlendModeScreen, kImpellerBlendModeSoftLight, kImpellerBlendModeSource, kImpellerBlendModeSourceATop, kImpellerBlendModeSourceIn, kImpellerBlendModeSourceOut, kImpellerBlendModeSourceOver, kImpellerBlendModeXor, impeller::kLighten, impeller::kLuminosity, impeller::kModulate, impeller::kMultiply, impeller::kOverlay, impeller::kPlus, impeller::kSaturation, impeller::kScreen, impeller::kSoftLight, impeller::kSrc, impeller::kSrcATop, impeller::kSrcIn, impeller::kSrcOut, impeller::kSrcOver, and impeller::kXor.

◆ ToImpellerType() [9/11]

constexpr flutter::DlClipOp impeller::interop::ToImpellerType ( ImpellerClipOperation  op)
constexpr

Definition at line 289 of file formats.h.

289  {
290  switch (op) {
292  return flutter::DlClipOp::kDifference;
294  return flutter::DlClipOp::kIntersect;
295  }
296  return flutter::DlClipOp::kDifference;
297 }
@ kImpellerClipOperationIntersect
Definition: impeller.h:371
@ kImpellerClipOperationDifference
Definition: impeller.h:370

References kImpellerClipOperationDifference, and kImpellerClipOperationIntersect.

◆ ToImpellerType() [10/11]

constexpr FillType impeller::interop::ToImpellerType ( ImpellerFillType  type)
constexpr

Definition at line 279 of file formats.h.

279  {
280  switch (type) {
282  return FillType::kNonZero;
284  return FillType::kOdd;
285  }
286  return FillType::kNonZero;
287 }
GLenum type
@ kImpellerFillTypeOdd
Definition: impeller.h:366
@ kImpellerFillTypeNonZero
Definition: impeller.h:365

References kImpellerFillTypeNonZero, kImpellerFillTypeOdd, impeller::kNonZero, impeller::kOdd, and type.

◆ ToImpellerType() [11/11]

constexpr PixelFormat impeller::interop::ToImpellerType ( ImpellerPixelFormat  format)
constexpr

Definition at line 408 of file formats.h.

408  {
409  switch (format) {
411  return PixelFormat::kR8G8B8A8UNormInt;
412  }
413  return PixelFormat::kR8G8B8A8UNormInt;
414 }
@ kImpellerPixelFormatRGBA8888
Definition: impeller.h:425

References kImpellerPixelFormatRGBA8888, and impeller::kR8G8B8A8UNormInt.

◆ ToSkiaType() [1/8]

constexpr SkColor impeller::interop::ToSkiaType ( const ImpellerColor color)
constexpr

Definition at line 41 of file formats.h.

41  {
42  return SkColorSetARGB(color.alpha * 255, //
43  color.red * 255, //
44  color.green * 255, //
45  color.blue * 255 //
46  );
47 }

References ImpellerColor::alpha, ImpellerColor::blue, ImpellerColor::green, and ImpellerColor::red.

◆ ToSkiaType() [2/8]

◆ ToSkiaType() [3/8]

constexpr SkPoint impeller::interop::ToSkiaType ( const Point point)
constexpr

Definition at line 37 of file formats.h.

37  {
38  return SkPoint::Make(point.x, point.y);
39 }

References impeller::TPoint< T >::x, and impeller::TPoint< T >::y.

◆ ToSkiaType() [4/8]

constexpr SkRect impeller::interop::ToSkiaType ( const Rect rect)
constexpr

Definition at line 53 of file formats.h.

53  {
54  return SkRect::MakeXYWH(rect.GetX(), //
55  rect.GetY(), //
56  rect.GetWidth(), //
57  rect.GetHeight() //
58  );
59 }

References impeller::TRect< T >::GetHeight(), impeller::TRect< T >::GetWidth(), impeller::TRect< T >::GetX(), and impeller::TRect< T >::GetY().

◆ ToSkiaType() [5/8]

SkRRect impeller::interop::ToSkiaType ( const Rect rect,
const RoundingRadii radii 
)
inline

Definition at line 201 of file formats.h.

201  {
202  using Corner = SkRRect::Corner;
203  SkVector sk_radii[4];
204  sk_radii[Corner::kUpperLeft_Corner] = ToSkiaVector(radii.top_left);
205  sk_radii[Corner::kUpperRight_Corner] = ToSkiaVector(radii.top_right);
206  sk_radii[Corner::kLowerRight_Corner] = ToSkiaVector(radii.bottom_right);
207  sk_radii[Corner::kLowerLeft_Corner] = ToSkiaVector(radii.bottom_left);
208  SkRRect result;
209  result.setRectRadii(ToSkiaType(rect), sk_radii);
210  return result;
211 }
SkRRect ToSkiaType(const Rect &rect, const RoundingRadii &radii)
Definition: formats.h:201
constexpr SkVector ToSkiaVector(const Size &point)
Definition: formats.h:49

References impeller::RoundingRadii::bottom_left, impeller::RoundingRadii::bottom_right, impeller::RoundingRadii::top_left, impeller::RoundingRadii::top_right, ToSkiaType(), and ToSkiaVector().

◆ ToSkiaType() [6/8]

template<class SkiaType , class OtherType >
std::vector<SkiaType> impeller::interop::ToSkiaType ( const std::vector< OtherType > &  other_vec)

Definition at line 80 of file formats.h.

80  {
81  std::vector<SkiaType> skia_vec;
82  skia_vec.reserve(other_vec.size());
83  for (const auto& other : other_vec) {
84  skia_vec.emplace_back(ToSkiaType(other));
85  }
86  return skia_vec;
87 }

References ToSkiaType().

◆ ToSkiaType() [7/8]

constexpr SkPathFillType impeller::interop::ToSkiaType ( FillType  type)
constexpr

Definition at line 61 of file formats.h.

61  {
62  switch (type) {
63  case FillType::kNonZero:
64  return SkPathFillType::kWinding;
65  case FillType::kOdd:
66  return SkPathFillType::kEvenOdd;
67  }
68  return SkPathFillType::kWinding;
69 }

References impeller::kNonZero, impeller::kOdd, and type.

◆ ToSkiaType() [8/8]

constexpr SkIRect impeller::interop::ToSkiaType ( IRect  rect)
constexpr

Definition at line 71 of file formats.h.

71  {
72  return SkIRect::MakeXYWH(rect.GetX(), //
73  rect.GetY(), //
74  rect.GetWidth(), //
75  rect.GetHeight() //
76  );
77 }

References impeller::TRect< T >::GetHeight(), impeller::TRect< T >::GetWidth(), impeller::TRect< T >::GetX(), and impeller::TRect< T >::GetY().

◆ ToSkiaVector()

constexpr SkVector impeller::interop::ToSkiaVector ( const Size point)
constexpr

Definition at line 49 of file formats.h.

49  {
50  return SkVector::Make(point.width, point.height);
51 }

References impeller::TSize< T >::height, and impeller::TSize< T >::width.

Referenced by ToSkiaType().

◆ ToSkMatrix()

SkMatrix impeller::interop::ToSkMatrix ( const Matrix matrix)
inline

Definition at line 97 of file formats.h.

97  {
98  return SkM44::ColMajor(matrix.m).asM33();
99 }

References impeller::Matrix::m.

◆ ToTxtType() [1/5]

constexpr txt::FontStyle impeller::interop::ToTxtType ( ImpellerFontStyle  style)
constexpr

Definition at line 483 of file formats.h.

483  {
484  switch (style) {
486  return txt::FontStyle::normal;
488  return txt::FontStyle::italic;
489  }
490  return txt::FontStyle::normal;
491 }
@ kImpellerFontStyleItalic
Definition: impeller.h:467
@ kImpellerFontStyleNormal
Definition: impeller.h:466

References kImpellerFontStyleItalic, and kImpellerFontStyleNormal.

◆ ToTxtType() [2/5]

constexpr txt::FontWeight impeller::interop::ToTxtType ( ImpellerFontWeight  weight)
constexpr

Definition at line 459 of file formats.h.

459  {
460  switch (weight) {
462  return txt::FontWeight::w100;
464  return txt::FontWeight::w200;
466  return txt::FontWeight::w300;
468  return txt::FontWeight::w400;
470  return txt::FontWeight::w500;
472  return txt::FontWeight::w600;
474  return txt::FontWeight::w700;
476  return txt::FontWeight::w800;
478  return txt::FontWeight::w900;
479  }
480  return txt::FontWeight::w400;
481 }
@ kImpellerFontWeight400
Definition: impeller.h:457
@ kImpellerFontWeight500
Definition: impeller.h:458
@ kImpellerFontWeight700
Definition: impeller.h:460
@ kImpellerFontWeight200
Definition: impeller.h:455
@ kImpellerFontWeight300
Definition: impeller.h:456
@ kImpellerFontWeight900
Definition: impeller.h:462
@ kImpellerFontWeight800
Definition: impeller.h:461
@ kImpellerFontWeight600
Definition: impeller.h:459
@ kImpellerFontWeight100
Definition: impeller.h:454

References kImpellerFontWeight100, kImpellerFontWeight200, kImpellerFontWeight300, kImpellerFontWeight400, kImpellerFontWeight500, kImpellerFontWeight600, kImpellerFontWeight700, kImpellerFontWeight800, and kImpellerFontWeight900.

◆ ToTxtType() [3/5]

constexpr txt::TextAlign impeller::interop::ToTxtType ( ImpellerTextAlignment  align)
constexpr

Definition at line 493 of file formats.h.

493  {
494  switch (align) {
496  return txt::TextAlign::left;
498  return txt::TextAlign::right;
500  return txt::TextAlign::center;
502  return txt::TextAlign::justify;
504  return txt::TextAlign::start;
506  return txt::TextAlign::end;
507  }
508  return txt::TextAlign::left;
509 }
@ kImpellerTextAlignmentJustify
Definition: impeller.h:474
@ kImpellerTextAlignmentLeft
Definition: impeller.h:471
@ kImpellerTextAlignmentCenter
Definition: impeller.h:473
@ kImpellerTextAlignmentRight
Definition: impeller.h:472
@ kImpellerTextAlignmentStart
Definition: impeller.h:475
@ kImpellerTextAlignmentEnd
Definition: impeller.h:476

References end, kImpellerTextAlignmentCenter, kImpellerTextAlignmentEnd, kImpellerTextAlignmentJustify, kImpellerTextAlignmentLeft, kImpellerTextAlignmentRight, kImpellerTextAlignmentStart, and start.

◆ ToTxtType() [4/5]

constexpr txt::TextDecorationStyle impeller::interop::ToTxtType ( ImpellerTextDecorationStyle  style)
constexpr

Definition at line 442 of file formats.h.

443  {
444  switch (style) {
446  return txt::TextDecorationStyle::kSolid;
448  return txt::TextDecorationStyle::kDouble;
450  return txt::TextDecorationStyle::kDotted;
452  return txt::TextDecorationStyle::kDashed;
454  return txt::TextDecorationStyle::kWavy;
455  }
456  return txt::TextDecorationStyle::kSolid;
457 }
@ kImpellerTextDecorationStyleSolid
Definition: impeller.h:492
@ kImpellerTextDecorationStyleWavy
Definition: impeller.h:496
@ kImpellerTextDecorationStyleDouble
Definition: impeller.h:493
@ kImpellerTextDecorationStyleDotted
Definition: impeller.h:494
@ kImpellerTextDecorationStyleDashed
Definition: impeller.h:495

References kImpellerTextDecorationStyleDashed, kImpellerTextDecorationStyleDotted, kImpellerTextDecorationStyleDouble, kImpellerTextDecorationStyleSolid, and kImpellerTextDecorationStyleWavy.

Referenced by impeller::interop::ParagraphStyle::CreateTextStyle(), ImpellerParagraphStyleSetFontStyle(), ImpellerParagraphStyleSetFontWeight(), ImpellerParagraphStyleSetTextAlignment(), and ImpellerParagraphStyleSetTextDirection().

◆ ToTxtType() [5/5]

constexpr txt::TextDirection impeller::interop::ToTxtType ( ImpellerTextDirection  direction)
constexpr

Definition at line 511 of file formats.h.

511  {
512  switch (direction) {
514  return txt::TextDirection::rtl;
516  return txt::TextDirection::ltr;
517  }
518  return txt::TextDirection::ltr;
519 }
@ kImpellerTextDirectionLTR
Definition: impeller.h:481
@ kImpellerTextDirectionRTL
Definition: impeller.h:480

References kImpellerTextDirectionLTR, and kImpellerTextDirectionRTL.

Variable Documentation

◆ sContextVKProcAddressCallback

thread_local std::function<PFN_vkVoidFunction(VkInstance instance, const char* proc_name)> impeller::interop::sContextVKProcAddressCallback