Skip to content

Commit 368211e

Browse files
committed
Improve the Emscripten canvas resizing situation somewhat
1 parent acd6958 commit 368211e

3 files changed

Lines changed: 18 additions & 22 deletions

File tree

assets/emscripten/game.html

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,17 @@
2323
<button class="js-close" aria-label="Close"></button>
2424
</div>
2525
</div>
26-
<div id="game" class="canvas-sized" style="background: black">
27-
<div id="game" class="canvas-stacker">
28-
<div class="canvas-notice">
29-
<img src="__HAMSANDWICH_ID__.splash.jpg" onerror="this.remove()" />
30-
</div>
31-
<div class="canvas-notice">
32-
<div id="runstatus-notice" hidden><span></span></div>
33-
</div>
34-
<noscript class="canvas-notice">
35-
<div><span>JavaScript is required to play this game.</span></div>
36-
</noscript>
37-
<canvas class="canvas" id="canvas" style="width: 640px; height: 480px" oncontextmenu="event.preventDefault()"></canvas>
26+
<div class="canvas-stacker">
27+
<div class="canvas-notice">
28+
<img src="__HAMSANDWICH_ID__.splash.jpg" onerror="this.remove()" />
3829
</div>
30+
<div class="canvas-notice">
31+
<div id="runstatus-notice" hidden><span></span></div>
32+
</div>
33+
<noscript class="canvas-notice">
34+
<div><span>JavaScript is required to play this game.</span></div>
35+
</noscript>
36+
<canvas class="canvas" id="canvas" width="640" height="480" oncontextmenu="event.preventDefault()"></canvas>
3937
</div>
4038
</div>
4139
<div class="window" id="menu" hidden>

assets/emscripten/ham.css

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,6 @@ body {
5959
display: flex;
6060
justify-content: center;
6161
align-items: center;
62-
63-
--canvas-width: 640px;
64-
--canvas-height: 480px;
6562
}
6663

6764
.stacker {
@@ -77,28 +74,26 @@ body {
7774
/* Game canvas */
7875
.canvas-sized {
7976
max-width: 100%;
80-
width: var(--canvas-width);
81-
height: var(--canvas-height);
77+
width: 640px;
78+
height: 480px;
8279
}
8380
.canvas-stacker {
84-
position: relative;
8581
background-color: black;
82+
min-width: 640px;
83+
min-height: 480px;
8684
}
87-
.canvas-stacker > * {
85+
.canvas-stacker > :not(.canvas) {
8886
position: absolute;
8987
left: 0;
9088
top: 0;
9189
width: 100%;
9290
height: 100%;
9391
}
9492
.canvas {
95-
position: relative;
9693
margin: auto;
9794
display: block;
9895
border: 0px none;
9996
background-color: black;
100-
min-width: var(--canvas-width);
101-
min-height: var(--canvas-height);
10297

10398
pointer-events: none;
10499
opacity: 0;

source/ham/mgldraw.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -367,6 +367,9 @@ void MGLDraw::ResizeBuffer(int w, int h, bool clamp)
367367
SDL_SetWindowPosition(window, px, py);
368368
}
369369
SDL_SetWindowMinimumSize(window, xRes, yRes);
370+
#ifdef __EMSCRIPTEN__
371+
SDL_SetWindowSize(window, xRes, yRes);
372+
#endif
370373

371374
// Update mouse_x and mouse_y.
372375
float scale = std::max(1.0f, std::min((float)winWidth / xRes, (float)winHeight / yRes));

0 commit comments

Comments
 (0)