public override void Begin(GraphicsDevice device, SpriteBlendMode blendMode, SpriteSortMode sortMode, SaveStateMode stateMode, Local.Matrix transformMatrix) { _childRenderer = GetCurrentRenderer(); _childRenderer.Begin(device, blendMode, sortMode, stateMode, transformMatrix); currentSortMode = sortMode; base.Begin(device, blendMode, sortMode, stateMode, transformMatrix); }
ChildCanvasRenderer GetCurrentRenderer() { ChildCanvasRenderer renderer; if (canvasIndex >= renderers.Count) { renderer = new ChildCanvasRenderer(); renderer.BitmapCacheEnabled = BitmapCacheEnabled; renderer.RenderAtScale = RenderAtScale; renderers.Add(renderer); renderer.Visible = false; Canvas.Children.Add(renderer.Canvas); canvasIndex++; } else { renderer = renderers[canvasIndex]; canvasIndex++; } renderer.InUse = true; renderer.Canvas.SetValue(Canvas.ZIndexProperty, canvasZIndex); canvasZIndex++; return renderer; }