void AddImg(AddImgCmd cmd) { #if FDB Should.False("nodeIdxDict.ContainsKey(cmd.id)", PtrIntDict.Contains(nodeDict, cmd.id)); Should.True("Res.HasSpriteMeta(cmd.imgId)", Res.HasSpriteMeta(cmd.imgId)); #endif var node = (TpSprite *)Pool.Alloc(spritePool, sizeof(TpSprite)); TpSprite.Init(node, Res.GetSpriteMeta(cmd.imgId)); node->id = cmd.id; if (spritePool->shift != 0) { PtrLst.ShiftBase(spritePtrLst, spritePool->shift); PtrIntDict.ShiftBase(nodeDict, spritePool->shift); foreach (var esJob in esJobList) { if (esJob is EsImgJob) { var esTpSpriteJob = (EsImgJob)esJob; esTpSpriteJob.node = (TpSprite *)((byte *)esTpSpriteJob.node + spritePool->shift); } } needDepthSort = true; spritePool->shift = 0; } PtrLst.Push(spritePtrLst, node); PtrIntDict.Set(nodeDict, cmd.id, node); }