Example #1
0
 public void Attach(Geometry2D Geometry)
 {
     if (!Geometries.ContainsKey(Geometry))
     {
         Geometries.Add(Geometry, Geometry.Name);
     }
 }
Example #2
0
 public void DetachGeometry(Geometry2D Geometry)
 {
     if (Geometries.ContainsKey(Geometry))
     {
         Geometries.Remove(Geometry);
     }
 }
Example #3
0
        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);
        }
Example #4
0
        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();
                }
            }
        }