Ejemplo n.º 1
0
        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);
        }