Adding a cache for loading in textures
Splitting the code for Gleed2D into seperate files
This commit is contained in:
parent
44cb32048d
commit
b43a0fad34
@ -69,7 +69,9 @@
|
|||||||
* - Adding SplitFlat extension for Texture2D
|
* - Adding SplitFlat extension for Texture2D
|
||||||
* - Removing uneeded Game Screen checking code
|
* - Removing uneeded Game Screen checking code
|
||||||
* - Adding SplitFlat extension with offsets for Texture2D
|
* - Adding SplitFlat extension with offsets for Texture2D
|
||||||
* - Adding support for Glee2D
|
* - Adding support for Gleed2D
|
||||||
|
* - Splitting the code for Gleed2D into seperate files
|
||||||
|
* - Adding a cache for loading in textures for Gleed2D
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -23,9 +23,9 @@ namespace Axios.Engine.Glee2D
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void load(ContentManager cm, World world)
|
public override void load(ContentManager cm, World world, ref Dictionary<string, Texture2D> cache)
|
||||||
{
|
{
|
||||||
base.load(cm, world);
|
base.load(cm, world, ref cache);
|
||||||
|
|
||||||
_body = BodyFactory.CreateCircle(world, Radius, 1f);
|
_body = BodyFactory.CreateCircle(world, Radius, 1f);
|
||||||
_body.Position = Position;
|
_body.Position = Position;
|
||||||
|
@ -49,7 +49,7 @@ namespace Axios.Engine.Glee2D
|
|||||||
/// Called by Level.FromFile(filename) on each Item after the deserialization process.
|
/// Called by Level.FromFile(filename) on each Item after the deserialization process.
|
||||||
/// Should be overriden and can be used to load anything needed by the Item (e.g. a texture).
|
/// Should be overriden and can be used to load anything needed by the Item (e.g. a texture).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public virtual void load(ContentManager cm, World world)
|
public virtual void load(ContentManager cm, World world, ref Dictionary<string, Texture2D> cache)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,12 +38,15 @@ namespace Axios.Engine.Glee2D
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public SerializableDictionary CustomProperties;
|
public SerializableDictionary CustomProperties;
|
||||||
|
|
||||||
|
private Dictionary<string, Texture2D> _texturecache;
|
||||||
|
|
||||||
|
|
||||||
public Level()
|
public Level()
|
||||||
{
|
{
|
||||||
Visible = true;
|
Visible = true;
|
||||||
Layers = new List<Layer>();
|
Layers = new List<Layer>();
|
||||||
CustomProperties = new SerializableDictionary();
|
CustomProperties = new SerializableDictionary();
|
||||||
|
_texturecache = new Dictionary<string, Texture2D>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Level(World world)
|
public Level(World world)
|
||||||
@ -52,9 +55,10 @@ namespace Axios.Engine.Glee2D
|
|||||||
Layers = new List<Layer>();
|
Layers = new List<Layer>();
|
||||||
CustomProperties = new SerializableDictionary();
|
CustomProperties = new SerializableDictionary();
|
||||||
_world = world;
|
_world = world;
|
||||||
|
_texturecache = new Dictionary<string, Texture2D>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Level FromFile(string filename, ContentManager cm, World world)
|
public static Level FromFile(string filename, ContentManager cm, World world, ref Dictionary<string, Texture2D> cache)
|
||||||
{
|
{
|
||||||
FileStream stream = System.IO.File.Open(filename, FileMode.Open);
|
FileStream stream = System.IO.File.Open(filename, FileMode.Open);
|
||||||
XmlSerializer serializer = new XmlSerializer(typeof(Level));
|
XmlSerializer serializer = new XmlSerializer(typeof(Level));
|
||||||
@ -66,7 +70,7 @@ namespace Axios.Engine.Glee2D
|
|||||||
foreach (Item item in layer.Items)
|
foreach (Item item in layer.Items)
|
||||||
{
|
{
|
||||||
item.CustomProperties.RestoreItemAssociations(level);
|
item.CustomProperties.RestoreItemAssociations(level);
|
||||||
item.load(cm, world);
|
item.load(cm, world, ref cache);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,9 +26,9 @@ namespace Axios.Engine.Glee2D
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void load(ContentManager cm, World world)
|
public override void load(ContentManager cm, World world, ref Dictionary<string, Texture2D> cache)
|
||||||
{
|
{
|
||||||
base.load(cm, world);
|
base.load(cm, world, ref cache);
|
||||||
|
|
||||||
Vertices v = new Vertices(WorldPoints.Length);
|
Vertices v = new Vertices(WorldPoints.Length);
|
||||||
foreach (Vector2 vec in WorldPoints)
|
foreach (Vector2 vec in WorldPoints)
|
||||||
|
@ -24,9 +24,9 @@ namespace Axios.Engine.Glee2D
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void load(ContentManager cm, World world)
|
public override void load(ContentManager cm, World world, ref Dictionary<string, Texture2D> cache)
|
||||||
{
|
{
|
||||||
base.load(cm, world);
|
base.load(cm, world, ref cache);
|
||||||
|
|
||||||
_body = BodyFactory.CreateRectangle(world, Width, Height, 1f);
|
_body = BodyFactory.CreateRectangle(world, Width, Height, 1f);
|
||||||
_body.Position = Position;
|
_body.Position = Position;
|
||||||
|
@ -77,7 +77,7 @@ namespace Axios.Engine.Glee2D
|
|||||||
/// You must provide your own implementation. However, you can rely on all public fields being
|
/// You must provide your own implementation. However, you can rely on all public fields being
|
||||||
/// filled by the level deserialization process.
|
/// filled by the level deserialization process.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public override void load(ContentManager cm, World world)
|
public override void load(ContentManager cm, World world, ref Dictionary<string, Texture2D> cache)
|
||||||
{
|
{
|
||||||
//throw new NotImplementedException();
|
//throw new NotImplementedException();
|
||||||
|
|
||||||
@ -85,7 +85,12 @@ namespace Axios.Engine.Glee2D
|
|||||||
//for example:
|
//for example:
|
||||||
//this.texture = Texture2D.FromFile(<GraphicsDevice>, texture_filename);
|
//this.texture = Texture2D.FromFile(<GraphicsDevice>, texture_filename);
|
||||||
//or by using the Content Pipeline:
|
//or by using the Content Pipeline:
|
||||||
this.texture = cm.Load<Texture2D>(asset_name);
|
if (!cache.ContainsKey(asset_name))
|
||||||
|
{
|
||||||
|
cache[asset_name] = cm.Load<Texture2D>(asset_name);
|
||||||
|
}
|
||||||
|
this.texture = cache[asset_name];
|
||||||
|
//this.texture = cm.Load<Texture2D>(asset_name);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user