public void Attach(Geometry2D Geometry) { if (!Geometries.ContainsKey(Geometry)) { Geometries.Add(Geometry, Geometry.Name); } }
public void DetachGeometry(Geometry2D Geometry) { if (Geometries.ContainsKey(Geometry)) { Geometries.Remove(Geometry); } }
public virtual object Clone() { Geometry2D NewGeom = new Geometry2D(Name); NewGeom.HasCull = HasCull; NewGeom.TextureName = (string)TextureName.Clone(); NewGeom.PX = PX; NewGeom.PY = PY; NewGeom.SX = PX; NewGeom.SY = PY; NewGeom.TX = TX; NewGeom.TY = TY; NewGeom.TSX = TSX; NewGeom.TSY = TSY; NewGeom.Z = Z; return(NewGeom); }
public void RenderUI() { List <Geometry2D> GuiGeometries = GuiNode.GetAllGeometries(); GuiGeometries = GuiGeometries.OrderBy(x => x.Z).ToList(); //GuiGeometries = GuiGeometries.OrderBy(x => x.Shader == null).ThenBy(x => x.Z).ToList(); for (int i = 0; i < GuiGeometries.Count; i++) { if (GuiGeometries[i].Shader == null) { Batch2D.Begin(); //Debug.WriteLine(GuiGeometries[i].TextureName); Texture2D Texture = Textures[GuiGeometries[i].TextureName]; Microsoft.Xna.Framework.Rectangle TextureBounds = new Microsoft.Xna.Framework.Rectangle((int)(GuiGeometries[i].TX * Texture.Width), (int)(GuiGeometries[i].TY * Texture.Height), (int)(GuiGeometries[i].TSX * Texture.Width), (int)(GuiGeometries[i].TSY * Texture.Height)); Microsoft.Xna.Framework.Rectangle Bounds = new Microsoft.Xna.Framework.Rectangle((int)GuiGeometries[i].PX, (int)GuiGeometries[i].PY, (int)GuiGeometries[i].SX, (int)GuiGeometries[i].SY); Batch2D.Draw(Texture, Bounds, TextureBounds, Microsoft.Xna.Framework.Color.White); Batch2D.End(); } else { Geometry2D Geom = GuiGeometries[i]; Effect Shader = GuiGeometries[i].Shader; Texture2D Texture = Textures["StandardMenu"]; Microsoft.Xna.Framework.Rectangle Bounds = new Microsoft.Xna.Framework.Rectangle((int)GuiGeometries[i].PX, (int)GuiGeometries[i].PY, (int)GuiGeometries[i].SX, (int)GuiGeometries[i].SY); Batch2D.Begin(0, BlendState.Opaque, null, null, null, Shader); for (int j = 0; j < Shader.CurrentTechnique.Passes.Count; j++) { Shader.CurrentTechnique.Passes[j].Apply(); Batch2D.Draw(Texture, Bounds, Color.Transparent); } Batch2D.End(); } } }