19 const std::shared_ptr<IOSContext>& context)
23 impeller_context_(context ? context->GetImpellerContext() : nullptr),
24 aiks_context_(context ? context->GetAiksContext() : nullptr) {
25 if (!impeller_context_ || !aiks_context_) {
35bool IOSSurfaceMetalImpeller::IsValid()
const {
40void IOSSurfaceMetalImpeller::UpdateStorageSizeIfNecessary() {
45std::unique_ptr<Surface> IOSSurfaceMetalImpeller::CreateGPUSurface() {
46 impeller_context_->UpdateOffscreenLayerPixelFormat(
48 return std::make_unique<GPUSurfaceMetalImpeller>(
this,
55 const auto drawable_size = CGSizeMake(frame_info.width, frame_info.height);
56 if (!CGSizeEqualToSize(drawable_size, layer_.drawableSize)) {
57 layer_.drawableSize = drawable_size;
62 layer_.framebufferOnly = NO;
68bool IOSSurfaceMetalImpeller::PresentDrawable(GrMTLHandle drawable)
const {
74GPUMTLTextureInfo IOSSurfaceMetalImpeller::GetMTLTexture(
const DlISize& frame_info)
const {
76 return GPUMTLTextureInfo{
83bool IOSSurfaceMetalImpeller::PresentTexture(GPUMTLTextureInfo
texture)
const {
89bool IOSSurfaceMetalImpeller::AllowsDrawingWhenGpuDisabled()
const {
#define FML_CHECK(condition)
#define FML_DCHECK(condition)
impeller::ISize32 DlISize
void * GPUCAMetalLayerHandle
constexpr PixelFormat FromMTLPixelFormat(MTLPixelFormat format)