Skip to content

Commit 1520c20

Browse files
committed
Migrate simulator and generated portal to direct WebAssembly
1 parent e20b382 commit 1520c20

26 files changed

Lines changed: 264 additions & 381 deletions

assets/apps/ast_parser.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,10 @@
1313
import types
1414
from random import random, choice
1515

16-
try:
17-
import js
18-
from js import document, window
19-
from pyodide.ffi import create_proxy
20-
except ImportError:
21-
js = None
22-
document = None
23-
window = None
24-
create_proxy = lambda fn: fn
16+
document = window = None
17+
create_proxy = lambda fn: fn
2518

26-
from displaydev.psdisplay import PSDisplay
19+
from displaydev.auto import AutoDisplay
2720

2821

2922
C_TOKENS = [
@@ -50,7 +43,7 @@ def __init__(self, canvas_id="hero_canvas", size=240):
5043
self.h = size
5144

5245
bc = types.ModuleType("board_config")
53-
bc.display_drv = PSDisplay(canvas_id, width=size, height=size)
46+
bc.display_drv = AutoDisplay(width=size, height=size, canvas_id=canvas_id)
5447
sys.modules["board_config"] = bc
5548
self.drv = bc.display_drv
5649

assets/apps/benchmark_deck.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,10 @@
1313
import types
1414
from random import random
1515

16-
try:
17-
import js
18-
from js import document, window
19-
from pyodide.ffi import create_proxy
20-
except ImportError:
21-
js = None
22-
document = None
23-
window = None
24-
create_proxy = lambda fn: fn
16+
document = window = None
17+
create_proxy = lambda fn: fn
2518

26-
from displaydev.psdisplay import PSDisplay
19+
from displaydev.auto import AutoDisplay
2720

2821

2922
BENCH_MODES = ["BLIT 16-BIT", "DIRTY-RECT", "MATH / TRIG"]
@@ -45,7 +38,7 @@ def __init__(self, canvas_id="hero_canvas", size=240):
4538
self.h = size
4639

4740
bc = types.ModuleType("board_config")
48-
bc.display_drv = PSDisplay(canvas_id, width=size, height=size)
41+
bc.display_drv = AutoDisplay(width=size, height=size, canvas_id=canvas_id)
4942
sys.modules["board_config"] = bc
5043
self.drv = bc.display_drv
5144

assets/apps/bus_scope.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,10 @@
1111
import math
1212
from random import random
1313

14-
try:
15-
import js
16-
from js import document, window
17-
from pyodide.ffi import create_proxy
18-
except ImportError:
19-
js = None
20-
document = None
21-
window = None
22-
create_proxy = lambda fn: fn
14+
document = window = None
15+
create_proxy = lambda fn: fn
2316

24-
from displaydev.psdisplay import PSDisplay
17+
from displaydev.auto import AutoDisplay
2518

2619

2720
class BusScopeHero:
@@ -32,7 +25,7 @@ def __init__(self, canvas_id="hero_canvas", size=240):
3225
self.h = size
3326

3427
bc = types.ModuleType("board_config")
35-
bc.display_drv = PSDisplay(canvas_id, width=size, height=size)
28+
bc.display_drv = AutoDisplay(width=size, height=size, canvas_id=canvas_id)
3629
sys.modules["board_config"] = bc
3730
self.drv = bc.display_drv
3831

assets/apps/circuit_dial.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,10 @@
1212
import time
1313
import types
1414

15-
try:
16-
import js
17-
from js import document, window
18-
from pyodide.ffi import create_proxy
19-
except ImportError:
20-
js = None
21-
document = None
22-
window = None
23-
create_proxy = lambda fn: fn
15+
document = window = None
16+
create_proxy = lambda fn: fn
2417

25-
from displaydev.psdisplay import PSDisplay
18+
from displaydev.auto import AutoDisplay
2619

2720

2821
def hsl_to_rgb(h, s, l):
@@ -54,7 +47,7 @@ def __init__(self, canvas_id="hero_canvas", size=240):
5447
self.cy = size // 2
5548

5649
bc = types.ModuleType("board_config")
57-
bc.display_drv = PSDisplay(canvas_id, width=size, height=size)
50+
bc.display_drv = AutoDisplay(width=size, height=size, canvas_id=canvas_id)
5851
sys.modules["board_config"] = bc
5952
self.drv = bc.display_drv
6053

assets/apps/encoder.py

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,10 @@
1010
import time
1111
import math
1212

13-
try:
14-
import js
15-
from js import document, window
16-
from pyodide.ffi import create_proxy
17-
except ImportError:
18-
js = None
19-
document = None
20-
window = None
21-
create_proxy = lambda fn: fn
13+
document = window = None
14+
create_proxy = lambda fn: fn
2215

23-
from displaydev.psdisplay import PSDisplay
16+
from displaydev.auto import AutoDisplay
2417

2518

2619
class EncoderHero:
@@ -32,9 +25,9 @@ def __init__(self, canvas_id="hero_canvas", size=240):
3225
self.cx = size // 2
3326
self.cy = size // 2
3427

35-
# Initialize PSDisplay
28+
# Initialize the automatic display backend.
3629
bc = types.ModuleType("board_config")
37-
bc.display_drv = PSDisplay(canvas_id, width=size, height=size)
30+
bc.display_drv = AutoDisplay(width=size, height=size, canvas_id=canvas_id)
3831
sys.modules["board_config"] = bc
3932
self.drv = bc.display_drv
4033

assets/apps/ftp_scope.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,10 @@
1313
import types
1414
from random import randint, choice
1515

16-
try:
17-
import js
18-
from js import document, window
19-
from pyodide.ffi import create_proxy
20-
except ImportError:
21-
js = None
22-
document = None
23-
window = None
24-
create_proxy = lambda fn: fn
16+
document = window = None
17+
create_proxy = lambda fn: fn
2518

26-
from displaydev.psdisplay import PSDisplay
19+
from displaydev.auto import AutoDisplay
2720

2821

2922
SAMPLE_FILES = [
@@ -42,7 +35,7 @@ def __init__(self, canvas_id="hero_canvas", size=240):
4235
self.h = size
4336

4437
bc = types.ModuleType("board_config")
45-
bc.display_drv = PSDisplay(canvas_id, width=size, height=size)
38+
bc.display_drv = AutoDisplay(width=size, height=size, canvas_id=canvas_id)
4639
sys.modules["board_config"] = bc
4740
self.drv = bc.display_drv
4841

assets/apps/mobile_pad.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,10 @@
1212
import time
1313
import types
1414

15-
try:
16-
import js
17-
from js import document, window
18-
from pyodide.ffi import create_proxy
19-
except ImportError:
20-
js = None
21-
document = None
22-
window = None
23-
create_proxy = lambda fn: fn
15+
document = window = None
16+
create_proxy = lambda fn: fn
2417

25-
from displaydev.psdisplay import PSDisplay
18+
from displaydev.auto import AutoDisplay
2619

2720

2821
class MobilePadHero:
@@ -33,7 +26,7 @@ def __init__(self, canvas_id="hero_canvas", size=240):
3326
self.h = size
3427

3528
bc = types.ModuleType("board_config")
36-
bc.display_drv = PSDisplay(canvas_id, width=size, height=size)
29+
bc.display_drv = AutoDisplay(width=size, height=size, canvas_id=canvas_id)
3730
sys.modules["board_config"] = bc
3831
self.drv = bc.display_drv
3932

assets/apps/mp_console.py

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,14 @@
1212
import time
1313
import types
1414

15-
try:
16-
import js
17-
from js import document, window
18-
from pyodide.ffi import create_proxy
19-
except ImportError:
20-
js = None
21-
document = None
22-
window = None
23-
create_proxy = lambda fn: fn
24-
25-
from displaydev.psdisplay import PSDisplay
15+
document = window = None
16+
create_proxy = lambda fn: fn
17+
18+
from displaydev.auto import AutoDisplay
2619

2720
# Provide synthetic board_config for display_driver in browser / standalone canvas
2821
bc = types.ModuleType("board_config")
29-
bc.display_drv = PSDisplay("hero_canvas", width=240, height=240)
22+
bc.display_drv = AutoDisplay(width=240, height=240, canvas_id="hero_canvas")
3023
bc.get_events = bc.display_drv.get_events
3124
sys.modules["board_config"] = bc
3225

assets/apps/package_matrix.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,10 @@
1212
import time
1313
import types
1414

15-
try:
16-
import js
17-
from js import document, window
18-
from pyodide.ffi import create_proxy
19-
except ImportError:
20-
js = None
21-
document = None
22-
window = None
23-
create_proxy = lambda fn: fn
15+
document = window = None
16+
create_proxy = lambda fn: fn
2417

25-
from displaydev.psdisplay import PSDisplay
18+
from displaydev.auto import AutoDisplay
2619

2720

2821
PACKAGES = [
@@ -45,7 +38,7 @@ def __init__(self, canvas_id="hero_canvas", size=240):
4538
self.cy = size // 2
4639

4740
bc = types.ModuleType("board_config")
48-
bc.display_drv = PSDisplay(canvas_id, width=size, height=size)
41+
bc.display_drv = AutoDisplay(width=size, height=size, canvas_id=canvas_id)
4942
sys.modules["board_config"] = bc
5043
self.drv = bc.display_drv
5144

assets/apps/palette_orb.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,10 @@
1010
import time
1111
import math
1212

13-
try:
14-
import js
15-
from js import document, window
16-
from pyodide.ffi import create_proxy
17-
except ImportError:
18-
js = None
19-
document = None
20-
window = None
21-
create_proxy = lambda fn: fn
13+
document = window = None
14+
create_proxy = lambda fn: fn
2215

23-
from displaydev.psdisplay import PSDisplay
16+
from displaydev.auto import AutoDisplay
2417

2518

2619
def hsl_to_rgb(h, s, l):
@@ -57,7 +50,7 @@ def __init__(self, canvas_id="hero_canvas", size=240):
5750
self.cy = size // 2
5851

5952
bc = types.ModuleType("board_config")
60-
bc.display_drv = PSDisplay(canvas_id, width=size, height=size)
53+
bc.display_drv = AutoDisplay(width=size, height=size, canvas_id=canvas_id)
6154
sys.modules["board_config"] = bc
6255
self.drv = bc.display_drv
6356

0 commit comments

Comments
 (0)