|
@@ -32,7 +32,7 @@ export function renderScene(
|
|
renderSelection?: boolean;
|
|
renderSelection?: boolean;
|
|
} = {},
|
|
} = {},
|
|
) {
|
|
) {
|
|
- if (!canvas) return;
|
|
|
|
|
|
+ if (!canvas) return false;
|
|
const context = canvas.getContext("2d")!;
|
|
const context = canvas.getContext("2d")!;
|
|
|
|
|
|
const fillStyle = context.fillStyle;
|
|
const fillStyle = context.fillStyle;
|
|
@@ -57,6 +57,7 @@ export function renderScene(
|
|
scrollY: typeof offsetY === "number" ? offsetY : sceneState.scrollY,
|
|
scrollY: typeof offsetY === "number" ? offsetY : sceneState.scrollY,
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+ let atLeastOneVisibleElement = false;
|
|
elements.forEach(element => {
|
|
elements.forEach(element => {
|
|
if (
|
|
if (
|
|
!isVisibleElement(
|
|
!isVisibleElement(
|
|
@@ -71,6 +72,7 @@ export function renderScene(
|
|
) {
|
|
) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
+ atLeastOneVisibleElement = true;
|
|
context.translate(
|
|
context.translate(
|
|
element.x + sceneState.scrollX,
|
|
element.x + sceneState.scrollX,
|
|
element.y + sceneState.scrollY,
|
|
element.y + sceneState.scrollY,
|
|
@@ -141,6 +143,8 @@ export function renderScene(
|
|
context.strokeStyle = strokeStyle;
|
|
context.strokeStyle = strokeStyle;
|
|
context.fillStyle = fillStyle;
|
|
context.fillStyle = fillStyle;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ return atLeastOneVisibleElement;
|
|
}
|
|
}
|
|
|
|
|
|
function isVisibleElement(
|
|
function isVisibleElement(
|