bak
This commit is contained in:
1 parent
3ef5fb5a2d
commit
43933f93d1
11 files changed
+813
-76
No files matched your search
+10
-1
@@ -230,7 +230,16 @@ const ENGINE_SOURCE = `(function(){
|
||||
var iE=instances[iInst];
|
||||
(instByTrack[iE.clipTrackId]=instByTrack[iE.clipTrackId]||[]).push(iE);
|
||||
}
|
||||
var order=scene.trackOrder||[];
|
||||
var rawOrder=scene.trackOrder||[];
|
||||
var groupById2={}; var groups2=scene.groups||[];
|
||||
for(var gi2=0;gi2<groups2.length;gi2++) groupById2[groups2[gi2].id]=groups2[gi2];
|
||||
var order=[];
|
||||
for(var roi=0;roi<rawOrder.length;roi++){
|
||||
var rid=rawOrder[roi];
|
||||
var grp=groupById2[rid];
|
||||
if(grp){ for(var gc=0;gc<grp.childIds.length;gc++) order.push(grp.childIds[gc]); }
|
||||
else order.push(rid);
|
||||
}
|
||||
if(!order.length){for(var lj=0;lj<scene.layers.length;lj++)order.push(scene.layers[lj].id);}
|
||||
for(var oi=order.length-1;oi>=0;oi--){
|
||||
var id=order[oi];
|
||||
|
||||
+4
-1
@@ -1,5 +1,6 @@
|
||||
import type { AnimatableProps, Asset, Layer, Scene } from '@/types/scene'
|
||||
import { sampleLayer } from './interpolate'
|
||||
import { expandedTrackOrder } from './sceneOrder'
|
||||
|
||||
export async function loadSceneImages(scene: Scene): Promise<Record<string, HTMLImageElement>> {
|
||||
const result: Record<string, HTMLImageElement> = {}
|
||||
@@ -174,7 +175,9 @@ export function drawSceneFrame(
|
||||
const clipById = new Map<string, NonNullable<typeof scene.clips>[number]>()
|
||||
for (const c of scene.clips ?? []) clipById.set(c.id, c)
|
||||
|
||||
const order = scene.trackOrder ?? scene.layers.map((l) => l.id)
|
||||
const order = expandedTrackOrder(scene).length
|
||||
? expandedTrackOrder(scene)
|
||||
: scene.layers.map((l) => l.id)
|
||||
for (let i = order.length - 1; i >= 0; i--) {
|
||||
const id = order[i]
|
||||
const layer = layerById.get(id)
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
import type { Scene, TrackGroup } from '@/types/scene'
|
||||
|
||||
export function expandedTrackOrder(scene: Scene): string[] {
|
||||
const out: string[] = []
|
||||
const groupById = new Map<string, TrackGroup>()
|
||||
for (const g of scene.groups ?? []) groupById.set(g.id, g)
|
||||
for (const id of scene.trackOrder ?? []) {
|
||||
const group = groupById.get(id)
|
||||
if (group) {
|
||||
for (const cid of group.childIds) out.push(cid)
|
||||
} else {
|
||||
out.push(id)
|
||||
}
|
||||
}
|
||||
return out
|
||||
}
|
||||
Reference in new issue
Block a user