@@ -284,8 +284,16 @@ void RenderHandler::OnAcceleratedPaint(CefRefPtr<CefBrowser> browser,
284284 jboolean jtype = type == PET_VIEW ? JNI_FALSE : JNI_TRUE;
285285 ScopedJNIObjectLocal jrectArray (env, NewJNIRectArray (env, dirtyRects));
286286
287- // Create CefAcceleratedPaintInfo Java object
287+ // Create platform-specific CefAcceleratedPaintInfo Java object
288+ #if defined(OS_WIN)
289+ ScopedJNIClass cls (env, " org/cef/handler/CefAcceleratedPaintInfoWin" );
290+ #elif defined(OS_MACOSX)
291+ ScopedJNIClass cls (env, " org/cef/handler/CefAcceleratedPaintInfoMac" );
292+ #elif defined(OS_LINUX)
293+ ScopedJNIClass cls (env, " org/cef/handler/CefAcceleratedPaintInfoLinux" );
294+ #else
288295 ScopedJNIClass cls (env, " org/cef/handler/CefAcceleratedPaintInfo" );
296+ #endif
289297 if (!cls)
290298 return ;
291299 ScopedJNIObjectLocal jpaintInfo (env, NewJNIObject (env, cls));
@@ -299,9 +307,9 @@ void RenderHandler::OnAcceleratedPaint(CefRefPtr<CefBrowser> browser,
299307#if defined(OS_WIN)
300308 SetJNIFieldLong (env, cls, jpaintInfo, " shared_texture_handle" ,
301309 reinterpret_cast <jlong>(info.shared_texture_handle ));
302- #else
303- // On non-Windows platforms, shared_texture_handle is not available
304- SetJNIFieldLong (env, cls, jpaintInfo, " shared_texture_handle " , 0 );
310+ #elif defined(OS_MACOSX)
311+ SetJNIFieldLong (env, cls, jpaintInfo, " shared_texture_io_surface " ,
312+ reinterpret_cast <jlong>(info. shared_texture_io_surface ) );
305313#endif
306314 SetJNIFieldInt (env, cls, jpaintInfo, " format" , info.format );
307315 SetJNIFieldInt (env, cls, jpaintInfo, " width" , viewRect.width );
@@ -351,9 +359,6 @@ void RenderHandler::OnAcceleratedPaint(CefRefPtr<CefBrowser> browser,
351359 }
352360 }
353361 }
354- #else
355- SetJNIFieldInt (env, cls, jpaintInfo, " plane_count" , 0 );
356- SetJNIFieldLong (env, cls, jpaintInfo, " modifier" , 0 );
357362#endif
358363
359364 JNI_CALL_VOID_METHOD (env, handle_, " onAcceleratedPaint" ,
0 commit comments