正在处理导出的应用程序 canvas 大小不同于 ide 已启动的应用程序

Processing exported application canvas size differs from ide launched application

我有一个简单的 Processing 3 应用程序,我刚刚迁移到 Processing 4。
旧版本有一些全局变量针对 1920x1080 显示器进行了微调,因此在移植时我决定使其更具动态性,并使这些全局变量取决于 displayWidth 和 displayHeight。
现在,当我通过 IDE 启动应用程序时,它工作正常: 但是,如果我导出应用程序(文件 > 导出应用程序 > Windows 64 位包含 Java),则会发生这种情况:

我的卡片图像是 svg,所以我觉得它们看起来如此像素化很奇怪,所以我的猜测是由于某种原因 canvas 尺寸合适但它也被拉伸了。
这只是一个猜测,我可能完全错了。无论如何,尺寸不对,我想修复它,但我不知道如何修复。

谁能帮帮我?

我的代码如下:

//Global variables.
int frameRate = 30;
int cardWidth;
int cardHeight;
int border;
int edge;
int cardsetSpace;
int cardSpace;
int textSize;
int yOffset;
float savedGameWritingDurationLeft = 0;
int loadingWritingDurationLeft = 0;
boolean isLoading = false;
final String loadingWriting = "CARICAMENTO...";
final String savedGameWriting = "PARTITA SALVATA";
//Global variables.

void settings()
{
  cardWidth = (int) (displayWidth / 15.36);
  cardHeight = (int) (displayHeight / 6.17);
  border = cardWidth / 10;
  edge = border / 3;
  cardsetSpace = border + edge * 2;
  cardSpace = (int) (cardHeight / 4.6);
  textSize = displayHeight / 54;
  yOffset = textSize + 8;
  size(cardWidth * 8 + cardsetSpace * 9, cardHeight * 5 + textSize * 2);
}

(整个代码可以在GitHub上找到,但我认为只有上面一段是相关的)

编辑:
我做了更多测试,发现:

我不知道为什么会发生这一切,但问题现在很清楚了:导出的应用程序认为我的 2560x1440 显示器实际上是 1707x960 显示器,所以在绘制 1562x1217 canvas 时它变得很大。

是的,我确实尝试了 pixelDensity(displayDensity()),但这只会导致导出的应用 canvas 变得更大。

我发现这是由于 Processing 4 (beta 8) 的一些错误。
不幸的是,我没有时间也不愿意查明确切的问题,但是我可以分享我发现的一个可行的解决方案:降级到 Processing 3。
降级并 re-exporting 应用修复了它。
希望这个问题将在 Processing 4 的未来版本中得到解决。