@omnimedia/omnitool 1.1.0-71 → 1.1.0-73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/s/driver/parts/compositor.ts +36 -33
- package/x/demo/demo.bundle.min.js +5 -5
- package/x/demo/demo.bundle.min.js.map +3 -3
- package/x/driver/parts/compositor.js +23 -24
- package/x/driver/parts/compositor.js.map +1 -1
- package/x/index.html +2 -2
- package/x/tests.bundle.min.js +6 -6
- package/x/tests.bundle.min.js.map +3 -3
- package/x/tests.html +1 -1
package/package.json
CHANGED
|
@@ -28,7 +28,7 @@ export class Compositor {
|
|
|
28
28
|
|
|
29
29
|
#transitions: Map<string, ReturnType<typeof makeTransition>> = new Map()
|
|
30
30
|
// objects rendered for current Composition
|
|
31
|
-
#activeObjects = new Map<number, Container>()
|
|
31
|
+
#activeObjects = new Map<number, {sprite: Container, dispose: () => void}>()
|
|
32
32
|
|
|
33
33
|
async composite(
|
|
34
34
|
composition: Composition,
|
|
@@ -55,7 +55,7 @@ export class Compositor {
|
|
|
55
55
|
* get object for current Composition
|
|
56
56
|
* */
|
|
57
57
|
getActiveObject(id: Id) {
|
|
58
|
-
return this.#activeObjects.get(id)
|
|
58
|
+
return this.#activeObjects.get(id)?.sprite
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
async #renderLayer(
|
|
@@ -93,11 +93,11 @@ export class Compositor {
|
|
|
93
93
|
layer: Extract<Layer, {kind: 'text'}>,
|
|
94
94
|
parent: Container,
|
|
95
95
|
) {
|
|
96
|
-
const
|
|
96
|
+
const sprite = this.#findOrCreate<Text>(layer)!
|
|
97
97
|
this.#applyTransform(sprite, layer.matrix)
|
|
98
98
|
parent.addChild(sprite)
|
|
99
99
|
return {
|
|
100
|
-
dispose: () =>
|
|
100
|
+
dispose: () => {}
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
|
|
@@ -105,16 +105,20 @@ export class Compositor {
|
|
|
105
105
|
layer: Extract<Layer, {kind: 'image'}>,
|
|
106
106
|
parent: Container,
|
|
107
107
|
) {
|
|
108
|
+
const sprite = this.#findOrCreate<Sprite>(layer)!
|
|
109
|
+
|
|
110
|
+
if (sprite.texture && sprite.texture !== Texture.EMPTY) {
|
|
111
|
+
sprite.texture.destroy(true)
|
|
112
|
+
}
|
|
113
|
+
|
|
108
114
|
const texture = Texture.from(layer.frame)
|
|
109
|
-
const {sprite, dispose} = this.#findOrCreate<Sprite>(layer)!
|
|
110
115
|
sprite.texture = texture
|
|
111
116
|
this.#applyTransform(sprite, layer.matrix)
|
|
112
117
|
parent.addChild(sprite)
|
|
118
|
+
|
|
113
119
|
return {
|
|
114
120
|
dispose: () => {
|
|
115
|
-
texture.destroy(true)
|
|
116
121
|
layer.frame.close()
|
|
117
|
-
dispose()
|
|
118
122
|
}
|
|
119
123
|
}
|
|
120
124
|
}
|
|
@@ -154,44 +158,41 @@ export class Compositor {
|
|
|
154
158
|
text.eventMode = "static"
|
|
155
159
|
const down = () => this.onPointerDown.publish({id: layer.id, object: text})
|
|
156
160
|
const up = () => this.onPointerUp.publish({id: layer.id, object: text})
|
|
161
|
+
|
|
157
162
|
text.on("pointerdown", down)
|
|
158
163
|
text.on("pointerup", up)
|
|
159
164
|
|
|
160
|
-
return
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
}
|
|
168
|
-
|
|
165
|
+
return this.#activeObjects
|
|
166
|
+
.set(layer.id, {
|
|
167
|
+
sprite: text,
|
|
168
|
+
dispose() {
|
|
169
|
+
text.off("pointerdown", down)
|
|
170
|
+
text.off("pointerup", up)
|
|
171
|
+
}
|
|
172
|
+
})
|
|
173
|
+
.get(layer.id)?.sprite as T
|
|
169
174
|
}
|
|
170
175
|
case 'image': {
|
|
171
176
|
const sprite = new Sprite()
|
|
172
177
|
sprite.eventMode = "static"
|
|
173
178
|
const down = () => this.onPointerDown.publish({id: layer.id, object: sprite})
|
|
174
179
|
const up = () => this.onPointerUp.publish({id: layer.id, object: sprite})
|
|
180
|
+
|
|
175
181
|
sprite.on("pointerdown", down)
|
|
176
182
|
sprite.on("pointerup", up)
|
|
177
183
|
|
|
178
|
-
return
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
}
|
|
186
|
-
|
|
184
|
+
return this.#activeObjects
|
|
185
|
+
.set(layer.id, {
|
|
186
|
+
sprite,
|
|
187
|
+
dispose() {
|
|
188
|
+
sprite.off("pointerdown", down)
|
|
189
|
+
sprite.off("pointerup", up)
|
|
190
|
+
}
|
|
191
|
+
})
|
|
192
|
+
.get(layer.id)?.sprite as T
|
|
187
193
|
}
|
|
188
194
|
}
|
|
189
|
-
} else return
|
|
190
|
-
sprite: object,
|
|
191
|
-
dispose: () => {}} as {
|
|
192
|
-
sprite: T
|
|
193
|
-
dispose: () => void
|
|
194
|
-
}
|
|
195
|
+
} else return object.sprite as T
|
|
195
196
|
}
|
|
196
197
|
|
|
197
198
|
#collectIds(layers: Layer | Composition): Set<number> {
|
|
@@ -210,10 +211,12 @@ export class Compositor {
|
|
|
210
211
|
#cleanup(activeIds: Set<number>) {
|
|
211
212
|
for (const id of this.#activeObjects.keys()) {
|
|
212
213
|
if (!activeIds.has(id)) {
|
|
213
|
-
const
|
|
214
|
-
|
|
214
|
+
const {sprite, dispose} = this.#activeObjects.get(id)!
|
|
215
|
+
dispose()
|
|
216
|
+
sprite.destroy(true)
|
|
215
217
|
this.#activeObjects.delete(id)
|
|
216
218
|
}
|
|
217
219
|
}
|
|
218
220
|
}
|
|
219
221
|
}
|
|
222
|
+
|