Skip to content

Commit 821fba4

Browse files
committed
feat: debugging accelerated paint
1 parent 95ddb12 commit 821fba4

2 files changed

Lines changed: 59 additions & 8 deletions

File tree

native/CefBrowser_N.cpp

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1038,28 +1038,55 @@ void create(std::shared_ptr<JNIObjectsForCreate> objs,
10381038
if (transparent == JNI_FALSE) {
10391039
// Specify an opaque background color (white) to disable transparency.
10401040
settings.background_color = CefColorSetARGB(255, 255, 255, 255);
1041-
}
1042-
ScopedJNIClass cefBrowserSettings(env, "org/cef/CefBrowserSettings");
1041+
} ScopedJNIClass cefBrowserSettings(env, "org/cef/CefBrowserSettings");
10431042
if (cefBrowserSettings != nullptr &&
10441043
objs->jbrowserSettings != nullptr) { // Dev-tools settings are null
10451044
GetJNIFieldInt(env, cefBrowserSettings, objs->jbrowserSettings,
10461045
"windowless_frame_rate", &settings.windowless_frame_rate);
10471046

10481047
// Handle shared texture enabled setting
10491048
int shared_texture_enabled = 0;
1050-
GetJNIFieldBoolean(env, cefBrowserSettings, objs->jbrowserSettings,
1051-
"shared_texture_enabled", &shared_texture_enabled);
1049+
bool got_shared_texture = GetJNIFieldBoolean(env, cefBrowserSettings, objs->jbrowserSettings,
1050+
"shared_texture_enabled", &shared_texture_enabled);
1051+
1052+
// Debug output for shared texture configuration
1053+
printf("[DEBUG] Shared Texture Config:\n");
1054+
printf(" - Field retrieval success: %s\n", got_shared_texture ? "YES" : "NO");
1055+
printf(" - Field value: %d\n", shared_texture_enabled);
1056+
10521057
if (shared_texture_enabled != 0) {
10531058
windowInfo.shared_texture_enabled = 1;
1059+
printf(" - Window shared_texture_enabled set to: 1\n");
1060+
} else {
1061+
printf(" - Window shared_texture_enabled remains: 0\n");
10541062
}
10551063

10561064
// Handle external begin frame enabled setting
10571065
int external_begin_frame_enabled = 0;
1058-
GetJNIFieldBoolean(env, cefBrowserSettings, objs->jbrowserSettings,
1059-
"external_begin_frame_enabled", &external_begin_frame_enabled);
1066+
bool got_external_begin_frame = GetJNIFieldBoolean(env, cefBrowserSettings, objs->jbrowserSettings,
1067+
"external_begin_frame_enabled", &external_begin_frame_enabled);
1068+
1069+
// Debug output for external begin frame configuration
1070+
printf("[DEBUG] External Begin Frame Config:\n");
1071+
printf(" - Field retrieval success: %s\n", got_external_begin_frame ? "YES" : "NO");
1072+
printf(" - Field value: %d\n", external_begin_frame_enabled);
1073+
10601074
if (external_begin_frame_enabled != 0) {
10611075
windowInfo.external_begin_frame_enabled = 1;
1076+
printf(" - Window external_begin_frame_enabled set to: 1\n");
1077+
} else {
1078+
printf(" - Window external_begin_frame_enabled remains: 0\n");
10621079
}
1080+
1081+
// Additional debug info
1082+
printf("[DEBUG] Final WindowInfo Configuration:\n");
1083+
printf(" - shared_texture_enabled: %d\n", windowInfo.shared_texture_enabled);
1084+
printf(" - external_begin_frame_enabled: %d\n", windowInfo.external_begin_frame_enabled);
1085+
printf(" - windowless_frame_rate: %d\n", settings.windowless_frame_rate);
1086+
} else {
1087+
printf("[DEBUG] Browser settings not available - using defaults\n");
1088+
printf(" - cefBrowserSettings: %p\n", cefBrowserSettings.get());
1089+
printf(" - jbrowserSettings: %p\n", objs->jbrowserSettings);
10631090
}
10641091

10651092
CefRefPtr<CefBrowser> browserObj;

native/render_handler.cpp

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,13 @@ void RenderHandler::OnPaint(CefRefPtr<CefBrowser> browser,
253253
const void* buffer,
254254
int width,
255255
int height) {
256+
// Debug output for regular paint calls
257+
printf("[DEBUG] OnPaint (regular) called:\n");
258+
printf(" - Type: %s\n", type == PET_VIEW ? "VIEW" : "POPUP");
259+
printf(" - Dirty rects count: %zu\n", dirtyRects.size());
260+
printf(" - Buffer: %p\n", buffer);
261+
printf(" - Width: %d, Height: %d\n", width, height);
262+
256263
ScopedJNIEnv env;
257264
if (!env)
258265
return;
@@ -268,12 +275,21 @@ void RenderHandler::OnPaint(CefRefPtr<CefBrowser> browser,
268275
"Rectangle;Ljava/nio/ByteBuffer;II)V",
269276
jbrowser.get(), jtype, jrectArray.get(),
270277
jdirectBuffer.get(), width, height);
278+
279+
printf("[DEBUG] OnPaint (regular) completed\n");
271280
}
272281

273282
void RenderHandler::OnAcceleratedPaint(CefRefPtr<CefBrowser> browser,
274283
PaintElementType type,
275284
const RectList& dirtyRects,
276285
const CefAcceleratedPaintInfo& info) {
286+
// Debug output for accelerated paint calls
287+
printf("[DEBUG] OnAcceleratedPaint called:\n");
288+
printf(" - Type: %s\n", type == PET_VIEW ? "VIEW" : "POPUP");
289+
printf(" - Dirty rects count: %zu\n", dirtyRects.size());
290+
printf(" - Shared texture handle: 0x%llx\n", reinterpret_cast<unsigned long long>(info.shared_texture_handle));
291+
printf(" - Format: %d\n", info.format);
292+
277293
ScopedJNIEnv env;
278294
if (!env)
279295
return;
@@ -294,18 +310,26 @@ void RenderHandler::OnAcceleratedPaint(CefRefPtr<CefBrowser> browser,
294310
CefRect viewRect;
295311
GetViewRect(browser, viewRect);
296312

297-
// Set the fields of the paint info object
298-
SetJNIFieldLong(env, cls, jpaintInfo, "shared_texture_handle",
313+
// Set the fields of the paint info object SetJNIFieldLong(env, cls, jpaintInfo, "shared_texture_handle",
299314
reinterpret_cast<jlong>(info.shared_texture_handle));
300315
SetJNIFieldInt(env, cls, jpaintInfo, "format", info.format);
301316
SetJNIFieldInt(env, cls, jpaintInfo, "width", viewRect.width);
302317
SetJNIFieldInt(env, cls, jpaintInfo, "height", viewRect.height);
303318

319+
// Debug output for Java object values
320+
printf("[DEBUG] Sending to Java:\n");
321+
printf(" - shared_texture_handle: 0x%llx\n", reinterpret_cast<unsigned long long>(info.shared_texture_handle));
322+
printf(" - format: %d\n", info.format);
323+
printf(" - width: %d (from viewRect)\n", viewRect.width);
324+
printf(" - height: %d (from viewRect)\n", viewRect.height);
325+
304326
JNI_CALL_VOID_METHOD(env, handle_, "onAcceleratedPaint",
305327
"(Lorg/cef/browser/CefBrowser;Z[Ljava/awt/"
306328
"Rectangle;Lorg/cef/handler/CefAcceleratedPaintInfo;)V",
307329
jbrowser.get(), jtype, jrectArray.get(),
308330
jpaintInfo.get());
331+
332+
printf("[DEBUG] OnAcceleratedPaint completed\n");
309333
}
310334

311335
bool RenderHandler::StartDragging(CefRefPtr<CefBrowser> browser,

0 commit comments

Comments
 (0)