Skip to content

Commit

Permalink
Fix some crashes happening in preview (#6988)
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexandreSi authored Sep 25, 2024
1 parent 02c06ac commit 40954bf
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 31 deletions.
19 changes: 11 additions & 8 deletions Extensions/AdvancedWindow/electron-advancedwindowtools.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,18 @@ namespace gdjs {
export namespace evtTools {
export namespace advancedWindow {
const getElectronBrowserWindow = (runtimeScene: gdjs.RuntimeScene) => {
const electronRemote = runtimeScene
.getGame()
.getRenderer()
.getElectronRemote();
if (electronRemote) {
return electronRemote.getCurrentWindow();
try {
const electronRemote = runtimeScene
.getGame()
.getRenderer()
.getElectronRemote();
if (electronRemote) {
return electronRemote.getCurrentWindow();
}
return null;
} catch (error) {
return null;
}

return null;
};

export const focus = function (
Expand Down
3 changes: 2 additions & 1 deletion Extensions/Lighting/lightruntimeobject-pixi-renderer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -505,8 +505,9 @@ namespace gdjs {
closestVertices.sort(
LightRuntimeObjectPixiRenderer._verticesWithAngleComparator
);
const filteredVerticesResult = [closestVertices[0].vertex];
const closestVerticesCount = closestVertices.length;
if (closestVerticesCount === 0) return [];
const filteredVerticesResult = [closestVertices[0].vertex];
for (let i = 1; i < closestVerticesCount; i++) {
if (closestVertices[i].angle !== closestVertices[i - 1].angle) {
filteredVerticesResult.push(closestVertices[i].vertex);
Expand Down
47 changes: 25 additions & 22 deletions GDJS/Runtime/pixi-renderers/runtimegame-pixi-renderer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -358,17 +358,16 @@ namespace gdjs {
setWindowSize(width: float, height: float): void {
const remote = this.getElectronRemote();
if (remote) {
// Use Electron BrowserWindow API
const browserWindow = remote.getCurrentWindow();
if (browserWindow) {
try {
try {
if (browserWindow) {
browserWindow.setContentSize(width, height);
} catch (error) {
logger.error(
`Window size setting to width ${width} and height ${height} failed. See error:`,
error
);
}
} catch (error) {
logger.error(
`Window size setting to width ${width} and height ${height} failed. See error:`,
error
);
}
} else {
logger.warn("Window size can't be changed on this platform.");
Expand All @@ -381,16 +380,16 @@ namespace gdjs {
centerWindow() {
const remote = this.getElectronRemote();
if (remote) {
// Use Electron BrowserWindow API
const browserWindow = remote.getCurrentWindow();
if (browserWindow) {
try {
try {
if (browserWindow) {
browserWindow.center();
} catch (error) {
logger.error('Window centering failed. See error:', error);
}
} catch (error) {
logger.error('Window centering failed. See error:', error);
}
} else {
logger.warn("Window can't be centered on this platform.");
}
}

Expand All @@ -405,17 +404,16 @@ namespace gdjs {
this._isFullscreen = !!enable;
const remote = this.getElectronRemote();
if (remote) {
// Use Electron BrowserWindow API
const browserWindow = remote.getCurrentWindow();
if (browserWindow) {
try {
try {
if (browserWindow) {
browserWindow.setFullScreen(this._isFullscreen);
} catch (error) {
logger.error(
`Full screen setting to ${this._isFullscreen} failed. See error:`,
error
);
}
} catch (error) {
logger.error(
`Full screen setting to ${this._isFullscreen} failed. See error:`,
error
);
}
} else {
// Use HTML5 Fullscreen API
Expand Down Expand Up @@ -468,7 +466,12 @@ namespace gdjs {
isFullScreen(): boolean {
const remote = this.getElectronRemote();
if (remote) {
return remote.getCurrentWindow().isFullScreen();
try {
return remote.getCurrentWindow().isFullScreen();
} catch (error) {
logger.error(`Full screen detection failed. See error:`, error);
return false;
}
}

// Height check is used to detect user triggered full screen (for example F11 shortcut).
Expand Down
1 change: 1 addition & 0 deletions GDJS/Runtime/runtimeobject.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1768,6 +1768,7 @@ namespace gdjs {
*/
updateHitBoxes(): void {
this.hitBoxes = this._defaultHitBoxes;
if (this.hitBoxes.length === 0) return;
const width = this.getWidth();
const height = this.getHeight();
const centerX = this.getCenterX();
Expand Down

0 comments on commit 40954bf

Please sign in to comment.