Flutter Engine
 
Loading...
Searching...
No Matches
impeller::interop Namespace Reference

Namespaces

namespace  testing
 

Classes

class  ColorFilter
 
class  ColorSource
 
class  Context
 
class  ContextGLES
 
class  ContextMTL
 
class  ContextVK
 
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
 
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  Object
 
class  ObjectBase
 
class  Paint
 
class  Paragraph
 
class  ParagraphBuilder
 
class  ParagraphStyle
 
class  Path
 
class  PathBuilder
 
class  ReactorWorkerGLES
 
struct  SamplersAndUniforms
 
class  ScopedObject
 
class  Surface
 
class  SurfaceGLES
 
class  SurfaceMTL
 
class  SurfaceVK
 
class  SwapchainVK
 
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 int 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::MappingMakeCopyableMapping (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

enum class impeller::interop::AdoptTag
strong
Enumerator
kAdopted 

Definition at line 62 of file object.h.

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(Object *object)
Definition object.h:151

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 37 of file context_vk.cc.

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

References instance, and 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}
G_BEGIN_DECLS G_MODULE_EXPORT FlValue * args

References args, and kAdopted.

◆ 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}
sk_sp< SkFontMgr > GetDefaultFontManager(uint32_t font_initialization_data)
Definition platform.cc:17

References txt::GetDefaultFontManager(), and 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
Scalar m[16]
Definition matrix.h:39

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) << "."
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
A 4x4 matrix using column-major storage.
Definition matrix.h:37

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

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}
FlutterVulkanImage * image

References image, 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 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 134 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

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 152 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(), impeller::interop::testing::TEST_P(), impeller::interop::testing::TEST_P(), and 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(), and 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}
FlTexture * texture

References texture, 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 texture, 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 229 of file impeller.cc.

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

Referenced by impeller::interop::testing::TEST_P(), impeller::interop::testing::TEST_P(), impeller::interop::testing::TEST_P(), and 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}

◆ 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}

Referenced by impeller::interop::testing::TEST_P(), and 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 1103 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(), impeller::interop::testing::TEST_P(), and 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(), impeller::interop::testing::TEST_P(), and 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}
int32_t width

References width.

◆ 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}
size_t length

References data, and length.

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}

References width.

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
double y

References x, and y.

◆ 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}

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}
int32_t height

References height.

◆ 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 format, 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}

References surface.

Referenced by impeller::interop::testing::TEST_P(), impeller::interop::testing::TEST_P(), impeller::interop::testing::TEST_P(), and 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}

References surface.

◆ 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(), and surface.

◆ 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(), and surface.

◆ 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 {
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
A lightweight object that describes the attributes of a texture that can then used an allocator to cr...

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, texture, 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
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)

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, texture, 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, texture, 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(), and texture.

◆ 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(), and texture.

◆ 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}

References swapchain.

◆ 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(), and swapchain.

◆ 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(), and swapchain.

◆ 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}
static MallocMapping Copy(const T *begin, const T *end)
Definition mapping.h:162
FlutterDesktopBinaryReply callback

References callback, fml::MallocMapping::Copy(), data, and user_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 i, and 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++) {
976 DlImageImpeller::Make(GetPeer(samplers[i])->GetTexture()), //
979 ));
980 }
981 }
982 return result;
983}
static std::shared_ptr< DlColorSource > MakeImage(const sk_sp< const DlImage > &image, DlTileMode horizontal_tile_mode, DlTileMode vertical_tile_mode, DlImageSampling sampling=DlImageSampling::kLinear, const DlMatrix *matrix=nullptr)
std::shared_ptr< std::vector< uint8_t > > uniforms
Definition impeller.cc:959
std::vector< std::shared_ptr< flutter::DlColorSource > > samplers
Definition impeller.cc:958

References data, i, flutter::kClamp, impeller::DlImageImpeller::Make(), flutter::DlColorSource::MakeImage(), 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)

◆ 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}
impeller::BlendMode DlBlendMode

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]

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

◆ 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}

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) {
132 }
134}
@ kImpellerBlurStyleNormal
Definition impeller.h:441
@ kImpellerBlurStyleOuter
Definition impeller.h:443
@ kImpellerBlurStyleInner
Definition impeller.h:444
@ kImpellerBlurStyleSolid
Definition impeller.h:442
@ kNormal
fuzzy inside and outside
@ kOuter
nothing inside, fuzzy outside
@ kInner
fuzzy inside, nothing outside
@ kSolid
solid inside, fuzzy outside

References kImpellerBlurStyleInner, kImpellerBlurStyleNormal, kImpellerBlurStyleOuter, kImpellerBlurStyleSolid, flutter::kInner, flutter::kNormal, flutter::kOuter, and flutter::kSolid.

◆ 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}
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

◆ ToDisplayListType() [7/11]

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

Definition at line 372 of file formats.h.

372 {
373 switch (style) {
380 }
382}
@ kImpellerDrawStyleStroke
Definition impeller.h:408
@ kImpellerDrawStyleFill
Definition impeller.h:407
@ kImpellerDrawStyleStrokeAndFill
Definition impeller.h:409
@ kStrokeAndFill
both strokes and fills shapes
@ kStroke
strokes boundary of shapes
@ kFill
fills interior of shapes

References flutter::kFill, kImpellerDrawStyleFill, kImpellerDrawStyleStroke, kImpellerDrawStyleStrokeAndFill, flutter::kStroke, and flutter::kStrokeAndFill.

◆ ToDisplayListType() [8/11]

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

Definition at line 384 of file formats.h.

384 {
385 switch (cap) {
392 }
394}
@ kImpellerStrokeCapButt
Definition impeller.h:413
@ kImpellerStrokeCapRound
Definition impeller.h:414
@ kImpellerStrokeCapSquare
Definition impeller.h:415
@ kRound
adds circle
@ kButt
no stroke extension
@ kSquare
adds square

References flutter::kButt, kImpellerStrokeCapButt, kImpellerStrokeCapRound, kImpellerStrokeCapSquare, flutter::kRound, and flutter::kSquare.

◆ ToDisplayListType() [9/11]

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

Definition at line 396 of file formats.h.

396 {
397 switch (join) {
404 }
406}
@ kImpellerStrokeJoinRound
Definition impeller.h:420
@ kImpellerStrokeJoinBevel
Definition impeller.h:421
@ kImpellerStrokeJoinMiter
Definition impeller.h:419
@ kMiter
extends to miter limit
@ kBevel
connects outside edges

References flutter::kBevel, kImpellerStrokeJoinBevel, kImpellerStrokeJoinMiter, kImpellerStrokeJoinRound, flutter::kMiter, and flutter::kRound.

◆ ToDisplayListType() [10/11]

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

◆ ToDisplayListType() [11/11]

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

◆ 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}

References impeller::TSize< T >::MakeWH().

◆ 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}
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}

◆ 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

◆ 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 format, 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}
constexpr Type GetY() const
Returns the Y coordinate of the upper left corner, equivalent to |GetOrigin().y|.
Definition rect.h:337
constexpr Type GetHeight() const
Returns the height of the rectangle, equivalent to |GetSize().height|.
Definition rect.h:347
constexpr Type GetX() const
Returns the X coordinate of the upper left corner, equivalent to |GetOrigin().x|.
Definition rect.h:333
constexpr Type GetWidth() const
Returns the width of the rectangle, equivalent to |GetSize().width|.
Definition rect.h:341

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}
constexpr SkVector ToSkiaVector(const Size &point)
Definition formats.h:49
constexpr std::optional< SkRect > ToSkiaType(const ImpellerRect *rect)
Definition formats.h:30

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}
Type height
Definition size.h:29
Type width
Definition size.h:28

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) {
489 }
491}
@ kImpellerFontStyleItalic
Definition impeller.h:467
@ kImpellerFontStyleNormal
Definition impeller.h:466

References txt::italic, kImpellerFontStyleItalic, kImpellerFontStyleNormal, and txt::normal.

◆ ToTxtType() [2/5]

constexpr int impeller::interop::ToTxtType ( ImpellerFontWeight  weight)
constexpr

Definition at line 459 of file formats.h.

459 {
460 switch (weight) {
462 return 100;
464 return 200;
466 return 300;
468 return 400;
470 return 500;
472 return 600;
474 return 700;
476 return 800;
478 return 900;
479 }
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
@ normal
Definition font_weight.h:12

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

◆ ToTxtType() [3/5]

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

◆ ToTxtType() [4/5]

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

Definition at line 442 of file formats.h.

443 {
444 switch (style) {
455 }
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 txt::kDashed, txt::kDotted, txt::kDouble, kImpellerTextDecorationStyleDashed, kImpellerTextDecorationStyleDotted, kImpellerTextDecorationStyleDouble, kImpellerTextDecorationStyleSolid, kImpellerTextDecorationStyleWavy, txt::kSolid, and txt::kWavy.

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) {
517 }
519}
@ kImpellerTextDirectionLTR
Definition impeller.h:481
@ kImpellerTextDirectionRTL
Definition impeller.h:480

References kImpellerTextDirectionLTR, kImpellerTextDirectionRTL, txt::ltr, and txt::rtl.

Variable Documentation

◆ sContextVKProcAddressCallback

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