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

Commit 410ea47

Browse files
committed
Migrate ios_surface files to ARC
1 parent 0e9ba75 commit 410ea47

File tree

5 files changed

+29
-24
lines changed

5 files changed

+29
-24
lines changed

shell/platform/darwin/ios/BUILD.gn

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,14 @@ source_set("flutter_framework_source_arc") {
102102
"ios_context_software.mm",
103103
"ios_external_texture_metal.h",
104104
"ios_external_texture_metal.mm",
105+
"ios_surface.h",
106+
"ios_surface.mm",
107+
"ios_surface_metal_impeller.h",
108+
"ios_surface_metal_impeller.mm",
109+
"ios_surface_metal_skia.h",
110+
"ios_surface_metal_skia.mm",
111+
"ios_surface_software.h",
112+
"ios_surface_software.mm",
105113
"rendering_api_selection.h",
106114
"rendering_api_selection.mm",
107115
]
@@ -172,14 +180,6 @@ source_set("flutter_framework_source") {
172180
"framework/Source/accessibility_text_entry.mm",
173181
"ios_external_view_embedder.h",
174182
"ios_external_view_embedder.mm",
175-
"ios_surface.h",
176-
"ios_surface.mm",
177-
"ios_surface_metal_impeller.h",
178-
"ios_surface_metal_impeller.mm",
179-
"ios_surface_metal_skia.h",
180-
"ios_surface_metal_skia.mm",
181-
"ios_surface_software.h",
182-
"ios_surface_software.mm",
183183
"platform_message_handler_ios.h",
184184
"platform_message_handler_ios.mm",
185185
"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)