Render preview: draw within the pixel budget on 4K/5K screens (#1464) (#1477)

The product preview asked the viewport executor for the full physical
viewport, so a maximised 4K window (~8 MP) was refused against the 4 MP
limit on every frame. The preview now draws at the largest size of the
same aspect the executor admits (RenderLimits::fit, scratch included)
and filters it up into the viewport through the existing offscreen
blit. Viewports within the limits still draw at full size.

PNG setups past the image limits now say what the limits are and the
largest size at that aspect, and the image panel offers to use it.

Co-authored-by: Claude Opus 5.5 <[email protected]>
This commit is contained in:
bherbruckandClaude Opus 5.5 authored and GitHub committed 2026-10-15 15:18:00 -04:00
1 parent b6806b16cf
commit 5fbbc13885
15 files changed
+188 -12

No files matched your search

+2
View File
@@ -1049,6 +1049,8 @@
"render.image_failed": "Rendering fehlgeschlagen",
"render.image_unknown": "Renderstatus nicht verfügbar",
"render.image_reduce": "Kleineres Bild oder einfachere Szene versuchen.",
"render.image_too_large": "Über dem Bildlimit: 4096 Pixel pro Seite und 4.194.304 Pixel insgesamt.",
"render.image_use_largest": "Größte Größe mit diesem Seitenverhältnis verwenden:",
"render.image_cancel": "Rendering abbrechen",
"render.image_stale": "Dieses Bild verwendet die Szene vor den nachfolgenden Änderungen.",
"render.image_start": "Rendering starten",
+2
View File
@@ -1307,6 +1307,8 @@
"render.image_failed": "Render failed",
"render.image_unknown": "Render status unavailable",
"render.image_reduce": "Try a smaller image or simpler scene.",
"render.image_too_large": "Over the image limit: 4096 pixels per side and 4,194,304 pixels in all.",
"render.image_use_largest": "Use the largest size at this aspect:",
"render.image_cancel": "Cancel Render",
"render.image_stale": "This image uses the scene captured before subsequent changes.",
"render.image_start": "Start Render",
+2
View File
@@ -1170,6 +1170,8 @@
"render.image_failed": "Échec du rendu",
"render.image_unknown": "État du rendu indisponible",
"render.image_reduce": "Essayez une image plus petite ou une scène plus simple.",
"render.image_too_large": "Au-delà de la limite d'image : 4096 pixels par côté et 4 194 304 pixels au total.",
"render.image_use_largest": "Utiliser la plus grande taille à ce format :",
"render.image_cancel": "Annuler le rendu",
"render.image_stale": "Cette image utilise la scène capturée avant les dernières modifications.",
"render.image_start": "Lancer le rendu",
+2
View File
@@ -1307,6 +1307,8 @@
"render.image_failed": "レンダリングに失敗しました",
"render.image_unknown": "レンダリング状態を取得できません",
"render.image_reduce": "画像を小さくするかシーンを簡略化してください。",
"render.image_too_large": "画像の上限を超えています:一辺 4096 ピクセル、合計 4,194,304 ピクセル。",
"render.image_use_largest": "この縦横比での最大サイズを使用:",
"render.image_cancel": "レンダリングをキャンセル",
"render.image_stale": "この画像は後続の変更前に取得したシーンを使用しています。",
"render.image_start": "レンダリングを開始",
+2
View File
@@ -1049,6 +1049,8 @@
"render.image_failed": "렌더링 실패",
"render.image_unknown": "렌더 상태를 확인할 수 없습니다",
"render.image_reduce": "더 작은 이미지나 더 단순한 장면을 사용해 보세요.",
"render.image_too_large": "이미지 한도를 초과했습니다: 한 변 4096픽셀, 전체 4,194,304픽셀.",
"render.image_use_largest": "이 비율에서 가장 큰 크기 사용:",
"render.image_cancel": "렌더링 취소",
"render.image_stale": "이 이미지는 후속 변경 전에 캡처한 장면을 사용합니다.",
"render.image_start": "렌더링 시작",
+2
View File
@@ -1091,6 +1091,8 @@
"render.image_failed": "Ошибка рендеринга",
"render.image_unknown": "Состояние рендеринга недоступно",
"render.image_reduce": "Попробуйте уменьшить изображение или упростить сцену.",
"render.image_too_large": "Превышен предел изображения: 4096 пикселей по стороне и 4 194 304 пикселя всего.",
"render.image_use_largest": "Использовать наибольший размер с этим соотношением сторон:",
"render.image_cancel": "Отменить рендеринг",
"render.image_stale": "Используется сцена, сохранённая до последующих изменений.",
"render.image_start": "Начать рендеринг",
+2
View File
@@ -1307,6 +1307,8 @@
"render.image_failed": "渲染失败",
"render.image_unknown": "渲染状态不可用",
"render.image_reduce": "请尝试更小的图像或更简单的场景。",
"render.image_too_large": "超出图像限制:每边 4096 像素,总计 4,194,304 像素。",
"render.image_use_largest": "使用此宽高比下的最大尺寸:",
"render.image_cancel": "取消渲染",
"render.image_stale": "此图像使用后续更改之前捕获的场景。",
"render.image_start": "开始渲染",