@@ -10,6 +10,8 @@ use cursor_icon::CursorIcon;
1010use i_slint_core:: { window:: { WindowAdapter , WindowAdapterInternal } , renderer:: Renderer , platform:: { PlatformError , WindowEvent } } ;
1111use i_slint_renderer_skia:: { SkiaRenderer , SkiaSharedContext } ;
1212use keyboard_types:: Code ;
13+ #[ cfg( target_os="macos" ) ]
14+ use plugin_canvas:: is_macos_version_at_least;
1315use plugin_canvas:: keyboard:: KeyboardModifiers ;
1416use plugin_canvas:: { event:: EventResponse , LogicalSize } ;
1517use portable_atomic:: AtomicF64 ;
@@ -60,10 +62,18 @@ impl PluginCanvasWindowAdapter {
6062
6163 let skia_context = SkiaSharedContext :: default ( ) ;
6264
65+ #[ cfg( target_os="linux" ) ]
66+ let renderer = SkiaRenderer :: default ( & skia_context) ;
67+
68+ #[ cfg( target_os="macos" ) ]
69+ let renderer = if is_macos_version_at_least ( 13 , 0 , 0 ) {
70+ SkiaRenderer :: default_metal ( & skia_context)
71+ } else {
72+ SkiaRenderer :: default_opengl ( & skia_context)
73+ } ;
74+
6375 #[ cfg( target_os="windows" ) ]
6476 let renderer = SkiaRenderer :: default_direct3d ( & skia_context) ;
65- #[ cfg( not( target_os="windows" ) ) ]
66- let renderer = SkiaRenderer :: default ( & skia_context) ;
6777
6878 renderer. set_window_handle ( plugin_canvas_window. clone ( ) , plugin_canvas_window. clone ( ) , slint_size, None ) ?;
6979
0 commit comments