public void Draw() { if (SelectedObject != null) { manager.Game.RenderState.Cull = false; manager.Game.RenderState.DepthEnabled = false; if (SelectedObject.RenderComponent.OutOfView(gameCamera)) //TODO: This doesn't work entirely properly { //Render one of them fancy arrows } else { //Render the hud var vp = gameCamera.ViewProjection; var translation = SelectedObject.GetTransform(); //project centre point var projected = new Vector4(0, 0, 0, 1) * (translation * vp); projected /= projected.W; projected.Z = 1f; //do translation var translateSelection = Matrix4.CreateTranslation(projected.X, projected.Y, projected.Z); //HACK: I don't think modifying the materials exactly is what I'm supposed to do. var gaugeMat = (BasicMaterial)UI_HUD_targetarrow; var boxMat = (BasicMaterial)UI_HUD_targetingblue; gaugeMat.DtSampler = ResourceManager.WhiteTextureName; //HACK: Null texture is black boxMat.DtSampler = ResourceManager.WhiteTextureName; //HACK: Null texture is black gaugeMat.Dc = Color4.White; boxMat.Dc = Color4.Green; reticle.Update(IdentityCamera.Instance, TimeSpan.FromSeconds(0), TimeSpan.FromSeconds(0)); reticle.Draw(manager.Game.RenderState, translateSelection, Lighting.Empty); //Hull Gauge gaugeMat.Dc = gauge.HullColor; reticle_health.Update(IdentityCamera.Instance, TimeSpan.FromSeconds(0), TimeSpan.FromSeconds(0)); reticle_health.Draw(manager.Game.RenderState, translateSelection, Lighting.Empty); //Shield Gauge gaugeMat.Dc = gauge.ShieldColor; reticle_shields.Update(IdentityCamera.Instance, TimeSpan.FromSeconds(0), TimeSpan.FromSeconds(0)); reticle_shields.Draw(manager.Game.RenderState, translateSelection, Lighting.Empty); } manager.Game.RenderState.DepthEnabled = true; manager.Game.RenderState.Cull = true; } manager.Draw(); }
public override void Draw(TimeSpan delta) { //Make sure delta time is normal if (dframes == 0) { dframes = 1; return; } //TODO: Draw background THN scene.Draw(); //UI Background Game.Renderer2D.Start(Game.Width, Game.Height); Game.Renderer2D.DrawImageStretched(logoOverlay, new Rectangle(0, 0, Game.Width, Game.Height), Color4.White, true); Game.Renderer2D.Finish(); //buttons manager.Draw(); //Cursor Game.Renderer2D.Start(Game.Width, Game.Height); cur.Draw(Game.Renderer2D, Game.Mouse); Game.Renderer2D.Finish(); }