Example #1
0
        internal void addSubRenderers(PaintersAlgorithmRenderer par)
        {
            if (false == this.initialized)
            {
                this.Initialize();
            }
            // If the map texture isn't loaded, load all the content
            if (null == this.frontMidField)
            {
                this.LoadContent();
            }
            if (null == skeletonData || null == this.mapMethod)
            {
                return;
            }

            par.addSubRenderer(new BillboardSubrenderer(backField, BACK_FIELD_Z));
            par.addSubRenderer(new BillboardSubrenderer(midField, MIDFIELD_Z));
            par.addSubRenderer(new BillboardSubrenderer(frontMidField, FRONT_MIDFIELD_Z));
            par.addSubRenderer(new BillboardSubrenderer(frontField, FRONT_FIELD_Z));
            par.addSubRenderer(new TDVGUISubRenderer(((TDVBasicGame)Game).PlayerID));
            par.addSubRenderer(new DirtAndScratchesSubrenderer());

            int playerID = 1;
            foreach (var skeleton in skeletonData)
            {
                if (skeleton.TrackingState == SkeletonTrackingState.Tracked)
                {
                    TextureSet ts = ((TDVBasicGame)Game).getPlayer(playerID - 1).Textures;

                    // DS switched order, refactored FrontCharacterElements from SkeletonElements and added BackSkeletonElements
                    // so that video cutout is in front of head shape and behind other drawn elements
                    // These are sorted afterwards - Annie  8cD

                    par.addSubRenderer(new BackCharacterElements(this, skeleton, ts));
                    par.addSubRenderer(new LiveElements(this.playerImageRenderer, skeleton, this.playerImageRenderer.SkeletonToColorMap, playerID));
                    par.addSubRenderer(new FrontCharacterElements(this, skeleton, ts));

                }
                playerID++;
            }

            skeletonDrawn = true;
        }