Skip to content

Commit 1496b0d

Browse files
committed
noctx 3d changes / remove browserfs
1 parent af67318 commit 1496b0d

File tree

4 files changed

+52
-71
lines changed

4 files changed

+52
-71
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ jobs:
66
build:
77
runs-on: ubuntu-22.04
88
env:
9-
SDK_VERSION: 3.1.61.2bi
9+
SDK_VERSION: 3.1.61.5bi
1010
SYS_PYTHON: /usr/bin/python3
1111
SDKROOT: /opt/python-wasm-sdk
1212
PACKAGES: emsdk pygame
1313
BUILD_STATIC: emsdk
1414
STATIC: false
15-
BUILDS: 3.12 3.13 3.14
15+
BUILDS: 3.12 3.13
1616
CYTHON: Cython-3.0.11-py2.py3-none-any.whl
1717
LD_VENDOR: -sUSE_GLFW=3
1818
LOPTS: -Os -g0

packages.d/pygame/pygame.sh

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,14 @@ echo "FIXME: build wheel"
311311

312312
SDL2="-sUSE_ZLIB=1 -sUSE_BZIP2=1 -sUSE_LIBPNG"
313313
SDL2="$SDL2 -sUSE_FREETYPE -sUSE_SDL=2 -sUSE_SDL_MIXER=2 -lSDL2 -L/opt/python-wasm-sdk/devices/emsdk/usr/lib"
314-
SDL2="$SDL2 -lSDL2_image -lSDL2_gfx -lSDL2_mixer -lSDL2_mixer_ogg -lSDL2_ttf"
314+
315+
if echo $EMFLAVOUR|grep -q ^4
316+
then
317+
SDL2="$SDL2 -lSDL2_image -lSDL2_gfx -lSDL2_mixer -lSDL2_mixer-ogg -lSDL2_ttf"
318+
else
319+
SDL2="$SDL2 -lSDL2_image -lSDL2_gfx -lSDL2_mixer -lSDL2_mixer_ogg -lSDL2_ttf"
320+
fi
321+
315322
SDL2="$SDL2 -lvorbis -logg -lwebp -lwebpdemux -ljpeg -lpng -lharfbuzz -lfreetype"
316323
SDL2="$SDL2 -lssl -lcrypto -lffi -lbz2 -lz -ldl -lm"
317324

static/noctx.tmpl

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<html lang="en-us"><script src="{{cookiecutter.cdn}}pythons.js" type=module id="site" data-python="python{{cookiecutter.PYBUILD}}" data-LINES=42 data-COLUMNS=132 data-os="vtx,fs,snd,gui" async defer>#<!--
1+
<html lang="en-us"><script src="{{cookiecutter.cdn}}pythons.js" type=module id="site" data-python="python{{cookiecutter.PYBUILD}}" data-LINES=42 data-COLUMNS=132 data-os="vtx,snd,gui" async defer>#<!--
22

33
print("""
44
Loading {{cookiecutter.title}} from {{cookiecutter.archive}}.apk
@@ -54,13 +54,11 @@ def uy(*argv):
5454
# do not rename
5555
async def custom_site():
5656
import embed
57-
5857
platform.document.body.style.background = "#7f7f7f"
5958

6059
platform.window.transfer.hidden = true
6160
platform.window.canvas.style.visibility = "visible"
6261

63-
apk = "{{cookiecutter.archive}}.apk"
6462

6563
bundle = "{{cookiecutter.archive}}"
6664

@@ -69,28 +67,16 @@ async def custom_site():
6967
appdir.mkdir()
7068

7169

72-
# mount apk
73-
74-
cfg = {
75-
"io": "url",
76-
"type":"mount",
77-
"mount" : {
78-
"point" : appdir.as_posix(),
79-
"path" : "/",
80-
}
81-
82-
}
83-
84-
track = platform.window.MM.prepare(apk, json.dumps(cfg))
70+
# unpack filesystem from compressed archive
71+
import tarfile
72+
async with platform.fopen("{{cookiecutter.archive}}.tar.gz", "rb") as archive:
73+
tar = tarfile.open(fileobj=archive, mode="r:gz")
74+
tar.extractall(path=appdir.as_posix(), filter='tar')
75+
tar.close()
8576

8677
marginx = ux(.020) # 20%
8778
marginy = uy(.045) # 45%
8879

89-
print(" /////////////////////////////////////////////////////////: ")
90-
# wait until zip mount + overlayfs is complete
91-
while not track.ready:
92-
await asyncio.sleep(.1)
93-
9480

9581
# preloader will change dir and prepend it to sys.path
9682
platform.run_main(PyConfig, loaderhome= appdir / "assets", loadermain=None)
@@ -186,13 +172,17 @@ config = {
186172
_sdl2 : "canvas",
187173
user_canvas : 0,
188174
user_canvas_managed : 0,
175+
gui_divider : 2,
189176
ume_block : {{cookiecutter.ume_block}},
190177
can_close : {{cookiecutter.can_close}},
191178
archive : "{{cookiecutter.archive}}",
192-
gui_debug : 3,
179+
gui_debug : 2,
193180
cdn : "{{cookiecutter.cdn}}",
194181
autorun : {{cookiecutter.autorun}},
195-
PYBUILD : "{{cookiecutter.PYBUILD}}"
182+
PYBUILD : "{{cookiecutter.PYBUILD}}",
183+
fb_ar : 1.77,
184+
fb_width : "{{cookiecutter.width}}",
185+
fb_height : "{{cookiecutter.height}}"
196186
}
197187

198188
</script>
@@ -316,6 +306,12 @@ height="1px"
316306
oncontextmenu="event.preventDefault()" tabindex=1>
317307
</canvas>
318308

309+
<canvas class="emscripten" id="canvas3d"
310+
width="{{cookiecutter.width}}px"
311+
height="{{cookiecutter.height}}px"
312+
oncontextmenu="event.preventDefault()" tabindex=1 hidden>
313+
</canvas>
314+
319315
<div id=html></div>
320316

321317
<div id=crt class=bottomright >
@@ -375,6 +371,10 @@ frameborder="1"
375371

376372
<script type="application/javascript">
377373

374+
globalThis.__canvas_resized = (self, ecw, ech) => {
375+
console.warn("TODO: panda3d canvas monitor", self, ecw, ech)
376+
}
377+
378378
async function custom_onload(debug_hidden) {
379379
// this is called before anythinh python is loaded
380380
// make your js customization here

static/pythons.js

Lines changed: 19 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -650,8 +650,6 @@ function feat_gui(debug_hidden) {
650650
return new_canvas
651651
}
652652

653-
654-
655653
if (!canvas2d) {
656654
canvas2d = add_canvas("canvas")
657655
canvas2d.style.position = "absolute"
@@ -675,11 +673,9 @@ console.warn("TODO: user defined canvas")
675673
canvas3d.style.position = "absolute"
676674
canvas3d.style.bottom = "0px"
677675
canvas3d.style.left = "0px"
678-
679676
}
680677
vm.canvas3d = canvas3d
681678

682-
683679
canvas.addEventListener("click", MM.focus_handler)
684680
/*
685681
@@ -787,26 +783,19 @@ console.warn("TODO: user defined canvas")
787783
const canvas = vm.canvas3d
788784
divider = divider || 1
789785
if ( (canvas.width==1) && (canvas.height==1) ){
790-
console.log("canvas context not set yet")
786+
console.log("Canvas3D: context not set yet")
791787
setTimeout(window_canvas_adjust_3d, 100, divider);
792788
return;
793789
}
794790

795-
if (!vm.config.fb_ar) {
796-
vm.config.fb_width = canvas.width
797-
vm.config.fb_height = canvas.height
798-
vm.config.fb_ar = canvas.width / canvas.height
799-
}
800-
801-
802791
var want_w
803792
var want_h
804793

805794
const ar = vm.config.fb_ar
806795

807796
const dpr = window.devicePixelRatio
808797
if (dpr != 1 )
809-
console.warn("Unsupported device pixel ratio", dpr)
798+
console.warn("Canvas3D: Unsupported device pixel ratio", dpr)
810799

811800
// default is maximize
812801
// default is maximize
@@ -817,7 +806,7 @@ console.warn("TODO: user defined canvas")
817806

818807

819808
if (vm.config.debug)
820-
console.log("window3D[DEBUG:CORRECTED]:", want_w, want_h, ar, divider)
809+
console.log("Canvas3D:", want_w, want_h, ar, divider)
821810

822811
// keep fb ratio
823812
want_w = Math.trunc(want_w / divider )
@@ -863,43 +852,28 @@ console.warn("TODO: user defined canvas")
863852

864853
}
865854

866-
function window_resize_3d(gui_divider) {
867-
setTimeout(window_canvas_adjust_3d, 200, gui_divider);
868-
setTimeout(window.focus, 300);
869-
}
870-
871-
function window_resize_2d(gui_divider) {
872-
// don't interfere if program want to handle canvas placing/resizing
873-
if (vm.config.user_canvas_managed)
874-
return vm.config.user_canvas_managed
875-
876-
if (!window.canvas) {
877-
console.warn("777: No canvas defined")
878-
return
879-
}
880-
881-
setTimeout(window_canvas_adjust, 200, gui_divider);
882-
setTimeout(window.focus, 300);
883-
}
884-
855+
function window_resize() {
856+
// TODO: need special management for 3D ctx
857+
if (vm.config.user_canvas_managed==3) {
858+
setTimeout(window_canvas_adjust_3d, 100, vm.config.gui_divider);
859+
} else {
860+
// don't interfere if program want to handle canvas placing/resizing
861+
if (vm.config.user_canvas_managed)
862+
return vm.config.user_canvas_managed
885863

864+
if (!window.canvas) {
865+
console.warn("777: No canvas defined")
866+
return
867+
}
868+
setTimeout(window_canvas_adjust, 100, vm.config.gui_divider);
886869

887-
function window_resize_event() {
888-
// special management for 3D ctx
889-
if (vm.config.user_canvas_managed==3) {
890-
window_resize(vm.config.gui_divider)
891-
return
892870
}
893-
window_resize(vm.config.gui_divider)
871+
setTimeout(window.focus, 100);
894872
}
895-
896-
window.addEventListener('resize', window_resize_event);
897-
if (vm.config.user_canvas_managed==3)
898-
window.window_resize = window_resize_3d
899-
else
900-
window.window_resize = window_resize_2d
873+
globalThis.window_resize = window_resize
901874

902875
vm.canvas = canvas2d || canvas3d
876+
window.addEventListener('resize', window_resize);
903877
return vm.canvas
904878
}
905879

0 commit comments

Comments
 (0)