public virtual void Draw() { //Init New Frame before drawing components Engine.ImmediateContext.ClearRenderTargetView(Engine.RenderTarget, BackBufferColor); Engine.ImmediateContext.ClearDepthStencilView(Engine.DepthStencilTarget, DepthStencilClearFlags.Depth, 1.0f, 0); //Draw everything for (int i = 0; i < _visibleDrawable.Count; i++) { DrawableComponentHolder drawComponent = _visibleDrawable[i]; if (ComponentsPerfMonitor.Updatable) { ComponentsPerfMonitor.StartMesure(drawComponent.DrawableComponent, "Draw", drawComponent.DrawOrder.DrawID); drawComponent.DrawableComponent.Draw(Engine.ImmediateContext, drawComponent.DrawOrder.DrawID); ComponentsPerfMonitor.StopMesure(drawComponent.DrawableComponent, "Draw", drawComponent.DrawOrder.DrawID); } else { drawComponent.DrawableComponent.Draw(Engine.ImmediateContext, drawComponent.DrawOrder.DrawID); } } Present(); }
private static int DrawableComparison(DrawableComponentHolder x, DrawableComponentHolder y) { return(x.DrawOrder.Order - y.DrawOrder.Order); }