Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 1590544

Browse files
committed
Migrate ios_surface files to ARC
1 parent 5c7d519 commit 1590544

File tree

5 files changed

+34
-24
lines changed

5 files changed

+34
-24
lines changed

shell/platform/darwin/ios/BUILD.gn

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,14 @@ source_set("flutter_framework_source_arc") {
8484
"framework/Source/UIViewController+FlutterScreenAndSceneIfLoaded.mm",
8585
"framework/Source/vsync_waiter_ios.h",
8686
"framework/Source/vsync_waiter_ios.mm",
87+
"ios_surface.h",
88+
"ios_surface.mm",
89+
"ios_surface_metal_impeller.h",
90+
"ios_surface_metal_impeller.mm",
91+
"ios_surface_metal_skia.h",
92+
"ios_surface_metal_skia.mm",
93+
"ios_surface_software.h",
94+
"ios_surface_software.mm",
8795
]
8896

8997
frameworks = [
@@ -92,11 +100,16 @@ source_set("flutter_framework_source_arc") {
92100
]
93101

94102
deps += [
103+
":ios_gpu_configuration",
95104
"//flutter/common:common",
105+
"//flutter/common/graphics",
96106
"//flutter/lib/ui",
97107
"//flutter/runtime",
98108
"//flutter/shell/common",
109+
"//flutter/shell/platform/darwin/common",
110+
"//flutter/shell/platform/darwin/graphics",
99111
"//flutter/shell/platform/embedder:embedder_as_internal_library",
112+
"//flutter/shell/profiling:profiling",
100113
]
101114
}
102115

@@ -165,14 +178,6 @@ source_set("flutter_framework_source") {
165178
"ios_external_texture_metal.mm",
166179
"ios_external_view_embedder.h",
167180
"ios_external_view_embedder.mm",
168-
"ios_surface.h",
169-
"ios_surface.mm",
170-
"ios_surface_metal_impeller.h",
171-
"ios_surface_metal_impeller.mm",
172-
"ios_surface_metal_skia.h",
173-
"ios_surface_metal_skia.mm",
174-
"ios_surface_software.h",
175-
"ios_surface_software.mm",
176181
"platform_message_handler_ios.h",
177182
"platform_message_handler_ios.mm",
178183
"platform_view_ios.h",

shell/platform/darwin/ios/ios_surface.mm

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
#import "flutter/shell/platform/darwin/ios/ios_surface_software.h"
1010
#include "flutter/shell/platform/darwin/ios/rendering_api_selection.h"
1111

12+
FLUTTER_ASSERT_ARC
13+
1214
namespace flutter {
1315

1416
std::unique_ptr<IOSSurface> IOSSurface::Create(std::shared_ptr<IOSContext> context,
@@ -21,16 +23,14 @@
2123
switch (context->GetBackend()) {
2224
case IOSRenderingBackend::kSkia:
2325
return std::make_unique<IOSSurfaceMetalSkia>(
24-
fml::scoped_nsobject<CAMetalLayer>(
25-
reinterpret_cast<CAMetalLayer*>([layer.get() retain])), // Metal layer
26-
std::move(context) // context
26+
fml::scoped_nsobject<CAMetalLayer>((CAMetalLayer*)layer.get()), // Metal layer
27+
std::move(context) // context
2728
);
2829
break;
2930
case IOSRenderingBackend::kImpeller:
3031
return std::make_unique<IOSSurfaceMetalImpeller>(
31-
fml::scoped_nsobject<CAMetalLayer>(
32-
reinterpret_cast<CAMetalLayer*>([layer.get() retain])), // Metal layer
33-
std::move(context) // context
32+
fml::scoped_nsobject<CAMetalLayer>((CAMetalLayer*)layer.get()), // Metal layer
33+
std::move(context) // context
3434
);
3535
}
3636
}

shell/platform/darwin/ios/ios_surface_metal_impeller.mm

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
#include "flutter/impeller/renderer/context.h"
99
#include "flutter/shell/gpu/gpu_surface_metal_impeller.h"
1010

11+
FLUTTER_ASSERT_ARC
12+
1113
namespace flutter {
1214

1315
IOSSurfaceMetalImpeller::IOSSurfaceMetalImpeller(const fml::scoped_nsobject<CAMetalLayer>& layer,
@@ -64,7 +66,7 @@
6466
// exit the app.
6567
layer.presentsWithTransaction = [[NSThread currentThread] isMainThread];
6668

67-
return layer;
69+
return (__bridge GPUCAMetalLayerHandle)layer;
6870
}
6971

7072
// |GPUSurfaceMetalDelegate|

shell/platform/darwin/ios/ios_surface_metal_skia.mm

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,16 @@
88
#include "flutter/shell/gpu/gpu_surface_metal_skia.h"
99
#include "flutter/shell/platform/darwin/ios/ios_context_metal_skia.h"
1010

11+
FLUTTER_ASSERT_ARC
12+
1113
@protocol FlutterMetalDrawable <MTLDrawable>
1214
- (void)flutterPrepareForPresent:(nonnull id<MTLCommandBuffer>)commandBuffer;
1315
@end
1416

1517
namespace flutter {
1618

1719
static IOSContextMetalSkia* CastToMetalContext(const std::shared_ptr<IOSContext>& context) {
18-
return reinterpret_cast<IOSContextMetalSkia*>(context.get());
20+
return (IOSContextMetalSkia*)context.get();
1921
}
2022

2123
IOSSurfaceMetalSkia::IOSSurfaceMetalSkia(const fml::scoped_nsobject<CAMetalLayer>& layer,
@@ -72,7 +74,7 @@ - (void)flutterPrepareForPresent:(nonnull id<MTLCommandBuffer>)commandBuffer;
7274
// the raster thread, there is no such transaction.
7375
layer.presentsWithTransaction = [[NSThread currentThread] isMainThread];
7476

75-
return layer;
77+
return (__bridge GPUCAMetalLayerHandle)layer;
7678
}
7779

7880
// |GPUSurfaceMetalDelegate|
@@ -82,16 +84,15 @@ - (void)flutterPrepareForPresent:(nonnull id<MTLCommandBuffer>)commandBuffer;
8284
return false;
8385
}
8486

85-
auto command_buffer =
86-
fml::scoped_nsprotocol<id<MTLCommandBuffer>>([[command_queue_ commandBuffer] retain]);
87+
id<MTLCommandBuffer> command_buffer = [command_queue_ commandBuffer];
8788

88-
id<CAMetalDrawable> metal_drawable = reinterpret_cast<id<CAMetalDrawable>>(drawable);
89+
id<CAMetalDrawable> metal_drawable = (__bridge id<CAMetalDrawable>)drawable;
8990
if ([metal_drawable conformsToProtocol:@protocol(FlutterMetalDrawable)]) {
90-
[(id<FlutterMetalDrawable>)metal_drawable flutterPrepareForPresent:command_buffer.get()];
91+
[(id<FlutterMetalDrawable>)metal_drawable flutterPrepareForPresent:command_buffer];
9192
}
9293

93-
[command_buffer.get() commit];
94-
[command_buffer.get() waitUntilScheduled];
94+
[command_buffer commit];
95+
[command_buffer waitUntilScheduled];
9596

9697
[metal_drawable present];
9798
return true;

shell/platform/darwin/ios/ios_surface_software.mm

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
#include "third_party/skia/include/core/SkSurface.h"
1616
#include "third_party/skia/include/utils/mac/SkCGUtils.h"
1717

18+
FLUTTER_ASSERT_ARC
19+
1820
namespace flutter {
1921

2022
IOSSurfaceSoftware::IOSSurfaceSoftware(const fml::scoped_nsobject<CALayer>& layer,
@@ -118,7 +120,7 @@
118120
return false;
119121
}
120122

121-
layer_.get().contents = reinterpret_cast<id>(static_cast<CGImageRef>(pixmap_image));
123+
layer_.get().contents = (__bridge id)(static_cast<CGImageRef>(pixmap_image));
122124

123125
return true;
124126
}

0 commit comments

Comments
 (0)