From 76feca7ffe9863e5e3f259d0cfaa0473c59b045d Mon Sep 17 00:00:00 2001 From: pepc84 Date: Mon, 14 Sep 2026 11:35:16 -0700 Subject: [PATCH] Fix: only pass --disable-awt for WebGPU renderer ARGS_DISABLE_AWT was passed unconditionally, breaking display detection, displayWidth/displayHeight, and pixelDensity() on all platforms since these still go through ShimAWT. Also fixes the string literal WEBGPU check on line 346 which should use PConstants.WEBGPU. Fixes #1553, #1569, #1551 --- java/src/processing/mode/java/runner/Runner.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/java/src/processing/mode/java/runner/Runner.java b/java/src/processing/mode/java/runner/Runner.java index d0bded04de..3813928ea4 100644 --- a/java/src/processing/mode/java/runner/Runner.java +++ b/java/src/processing/mode/java/runner/Runner.java @@ -343,7 +343,7 @@ protected StringList getMachineParams() { //params.append("-Dcom.apple.mrj.application.apple.menu.about.name=" + // build.getSketchClassName()); - if ("WEBGPU".equals(build.getSketchRenderer())) { + if (PConstants.WEBGPU.equals(build.getSketchRenderer())) { params.append("-XstartOnFirstThread"); } } @@ -515,10 +515,13 @@ protected StringList getSketchParams(boolean present, String[] args) { params.append(PApplet.ARGS_UI_SCALE + "=" + uiScale); } */ - - // TODO: excise AWT to make webgpu work properly - params.append(PApplet.ARGS_DISABLE_AWT); - + // Only disable AWT for the WebGPU renderer, which uses GLFW and + // cannot coexist with AWT. All other renderers still depend on AWT + // for display detection, displayWidth/displayHeight, pixelDensity(), etc. + if (PConstants.WEBGPU.equals(build.getSketchRenderer())) { + params.append(PApplet.ARGS_DISABLE_AWT); + } + params.append(build.getSketchClassName()); } // Add command-line arguments to be given to the sketch itself