Skip to content

Commit da8bf01

Browse files
fix(pixi): make #760 smokes compile and run (#765)
UiList rename so PixiUI typechecks against prelude List. Harness imports smokeIdaptikReach. Smokes pass under node.
1 parent afc7f99 commit da8bf01

4 files changed

Lines changed: 25 additions & 7 deletions

File tree

CHANGELOG.adoc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ kept so existing scripts fail loudly (Refs #56)
2323

2424
==== Added
2525

26+
* PixiUI: rename extern type `List` → `UiList` so `use PixiUI` typechecks
27+
against prelude `List<T>` (kind mismatch). Harness actually imports
28+
`smokeIdaptikReach` / Assets mock. Smokes compile + run (Refs #760)
2629
* Pixi/UI/Sound idaptik-reached remainder (#760): Graphics
2730
circle/stroke/roundRect/path, per-axis Container x/y, parent Option,
2831
interactiveChildren, ObservablePoint.set, Texture.WHITE, Assets

stdlib/PixiUI.affine

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ pub extern fn pixiUiSwitchAsContainer(sw: Switch) -> Container;
119119
// ── ProgressBar / List / Input (#56 gap-fill) ──────────────────────
120120

121121
pub extern type ProgressBar;
122-
pub extern type List;
122+
pub extern type UiList;
123123
pub extern type Input;
124124

125125
/// `new PixiUI.ProgressBar(options)`.
@@ -129,10 +129,10 @@ pub extern fn pixiUiProgressBarNew(options: Json) -> ProgressBar;
129129
pub extern fn pixiUiProgressBarAsContainer(p: ProgressBar) -> Container;
130130

131131
/// `new PixiUI.List(options)`.
132-
pub extern fn pixiUiListNew(options: Json) -> List;
132+
pub extern fn pixiUiListNew(options: Json) -> UiList;
133133

134134
/// Upcast List → Container. Zero-cost identity lowering.
135-
pub extern fn pixiUiListAsContainer(l: List) -> Container;
135+
pub extern fn pixiUiListAsContainer(l: UiList) -> Container;
136136

137137
/// `new PixiUI.Input(options)`.
138138
pub extern fn pixiUiInputNew(options: Json) -> Input;
@@ -163,7 +163,7 @@ pub extern fn pixiUiSliderSetValue(s: Slider, v: Float) -> Int;
163163
pub extern fn pixiUiSliderAddChild(s: Slider, child: Json) -> Int;
164164

165165
/// `list.addChild(child)`.
166-
pub extern fn pixiUiListAddChild(l: List, child: Json) -> Int;
166+
pub extern fn pixiUiListAddChild(l: UiList, child: Json) -> Int;
167167

168168
/// `input.value` getter/setter + enter/change signals.
169169
pub extern fn pixiUiInputValue(i: Input) -> String;

tests/codegen-deno/pixi_smoke.harness.mjs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,12 +118,21 @@ class MockApplication {
118118
constructor() {
119119
this.stage = new MockContainer();
120120
this.canvas = { tagName: "CANVAS" };
121-
this.ticker = { add() {}, start() {}, stop() {} };
121+
this.ticker = { deltaTime: 1.5, add() {}, start() {}, stop() {}, remove() {} };
122+
this.renderer = {
123+
width: 800,
124+
height: 600,
125+
resize(w, h) { this.width = w; this.height = h; operationsLog.push("rendererResize"); },
126+
};
122127
}
123128
async init(options) { initCalls.push(options); }
124129
destroy() { operationsLog.push("appDestroy"); }
125130
}
126131

132+
const assetInits = [];
133+
const bundles = [];
134+
const bgBundles = [];
135+
127136
globalThis.__as_pixi = {
128137
Application: MockApplication,
129138
Container: MockContainer,
@@ -136,11 +145,17 @@ globalThis.__as_pixi = {
136145
BlurFilter: MockBlurFilter,
137146
NineSliceSprite: MockNineSliceSprite,
138147
Texture: {
148+
WHITE: { __mockTexture: true, url: "WHITE" },
139149
from(url) { textureUrls.push(url); return { __mockTexture: true, url }; },
140150
},
151+
Assets: {
152+
async init(options) { assetInits.push(options); },
153+
async loadBundle(name) { bundles.push(name); },
154+
backgroundLoadBundle(names) { bgBundles.push(...names); },
155+
},
141156
};
142157

143-
const { smokeInit, smokeSpriteFlow, smokeGraphicsFlow, smokeAccessorsFlow, smokeGapFill } = await import("./pixi_smoke.bun.js");
158+
const { smokeInit, smokeSpriteFlow, smokeGraphicsFlow, smokeAccessorsFlow, smokeGapFill, smokeIdaptikReach, smokeAssets } = await import("./pixi_smoke.bun.js");
144159

145160
// Async init returns an Application after `await app.init(options)`
146161
const app = await smokeInit({ width: 800, height: 600, backgroundColor: 0x1099bb });

tests/codegen-deno/pixiui_smoke.affine

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
// registration, and upcast → Container for each MVP component.
77

88
use Deno::{Json};
9-
use PixiUI::{Button, FancyButton, Slider, Switch, Container, Input, List, ProgressBar, pixiUiButtonNew, pixiUiButtonOnPress, pixiUiButtonAsContainer, pixiUiFancyButtonNew, pixiUiFancyButtonAsContainer, pixiUiFancyButtonOnPress, pixiUiFancyButtonOnDown, pixiUiFancyButtonOnHover, pixiUiSliderNew, pixiUiSliderOnUpdate, pixiUiSliderAsContainer, pixiUiSliderSetValue, pixiUiSliderValue, pixiUiSliderAddChild, pixiUiSwitchNew, pixiUiSwitchOnChange, pixiUiSwitchAsContainer, pixiUiProgressBarNew, pixiUiProgressBarAsContainer, pixiUiProgressBarSetProgress, pixiUiProgressBarProgress, pixiUiListNew, pixiUiListAsContainer, pixiUiListAddChild, pixiUiInputNew, pixiUiInputAsContainer, pixiUiInputValue, pixiUiInputSetValue, pixiUiInputOnEnter, pixiUiInputOnChange};
9+
use PixiUI::{Button, FancyButton, Slider, Switch, Container, Input, ProgressBar, pixiUiButtonNew, pixiUiButtonOnPress, pixiUiButtonAsContainer, pixiUiFancyButtonNew, pixiUiFancyButtonAsContainer, pixiUiFancyButtonOnPress, pixiUiFancyButtonOnDown, pixiUiFancyButtonOnHover, pixiUiSliderNew, pixiUiSliderOnUpdate, pixiUiSliderAsContainer, pixiUiSliderSetValue, pixiUiSliderValue, pixiUiSliderAddChild, pixiUiSwitchNew, pixiUiSwitchOnChange, pixiUiSwitchAsContainer, pixiUiProgressBarNew, pixiUiProgressBarAsContainer, pixiUiProgressBarSetProgress, pixiUiProgressBarProgress, pixiUiListNew, pixiUiListAsContainer, pixiUiListAddChild, pixiUiInputNew, pixiUiInputAsContainer, pixiUiInputValue, pixiUiInputSetValue, pixiUiInputOnEnter, pixiUiInputOnChange};
1010

1111
pub fn smokeButton(options: Json, callback: Json) -> Container {
1212
let b = pixiUiButtonNew(options);

0 commit comments

Comments
 (0)