public static LTexture FilterColor(string res, LColor height, Loon.Core.Graphics.Opengl.LTexture.Format format) { uint color = height.GetRGB(); LImage tmp = LImage.CreateImage(res); LImage image = LImage.CreateImage(tmp.GetWidth(), tmp.GetHeight(), true); LGraphics g = image.GetLGraphics(); g.DrawImage(tmp, 0, 0); g.Dispose(); if (tmp != null) { tmp.Dispose(); tmp = null; } Color[] pixels = image.GetPixels(); int size = pixels.Length; for (int i = 0; i < size; i++) { if (pixels[i].PackedValue == color) { pixels[i].PackedValue = LSystem.TRANSPARENT; } } image.SetFormat(format); image.SetPixels(pixels, image.GetWidth(), image.GetHeight()); LTexture texture = image.GetTexture(); if (image != null) { image.Dispose(); image = null; } return(texture); }
public TileMap(Field2D field, int mWidth, int mHeight, Loon.Core.Graphics.Opengl.LTexture.Format format) { this.field = field; this.maxWidth = mWidth; this.maxHeight = mHeight; this.offset = new Vector2f(0, 0); this.imgPack = new LTexturePack(); this.format = format; this.lastOffsetX = -1; this.lastOffsetY = -1; this.active = true; this.dirty = true; this.visible = true; imgPack.SetFormat(format); }
public LTexture Pack(Loon.Core.Graphics.Opengl.LTexture.Format format) { if (texture != null && !packing) { return(texture); } if (fileName != null) { texture = new LTexture(GLLoader.GetTextureData(fileName), format); texture.isExt = true; } else { LImage image = PackImage(); if (image == null) { return(null); } if (texture != null) { texture.Destroy(); texture = null; } if (colorMask != null) { Color[] pixels = image.GetPixels(); int size = pixels.Length; uint color = colorMask.GetRGB(); for (int i = 0; i < size; i++) { if (pixels[i].PackedValue == color) { pixels[i].PackedValue = LSystem.TRANSPARENT; } } image.SetPixels(pixels, image.GetWidth(), image.GetHeight()); } texture = new LTexture(GLLoader.GetTextureData(image), format); texture.isExt = true; if (image != null) { image.Dispose(); image = null; } } return(texture); }
public static LTexture FilterLimitColor(string res, LColor start, LColor end, Loon.Core.Graphics.Opengl.LTexture.Format format) { int sred = start.R; int sgreen = start.G; int sblue = start.B; int ered = end.R; int egreen = end.G; int eblue = end.B; LImage tmp = LImage.CreateImage(res); LImage image = LImage.CreateImage(tmp.GetWidth(), tmp.GetHeight(), true); LGraphics g = image.GetLGraphics(); g.DrawImage(tmp, 0, 0); g.Dispose(); if (tmp != null) { tmp.Dispose(); tmp = null; } Color[] pixels = image.GetPixels(); int size = pixels.Length; for (int i = 0; i < size; i++) { Color pixel = pixels[i]; if ((pixel.R >= sred && pixel.G >= sgreen && pixel.B >= sblue) && (pixel.R <= ered && pixel.G <= egreen && pixel.B <= eblue)) { pixels[i].PackedValue = LSystem.TRANSPARENT; } } image.SetFormat(format); image.SetPixels(pixels, image.GetWidth(), image.GetHeight()); LTexture texture = image.GetTexture(); if (image != null) { image.Dispose(); image = null; } return(texture); }
public static LTexture LoadTexture(string fileName, Loon.Core.Graphics.Opengl.LTexture.Format format) { if (fileName == null) { return(null); } lock (lazyTextures) { string key = fileName.Trim().ToLower(); LTexture texture = (LTexture)CollectionUtils.Get(lazyTextures, key); if (texture != null && !texture.isClose) { texture.refCount++; return(texture); } texture = new LTexture(fileName, format); texture.lazyName = fileName; CollectionUtils.Put(lazyTextures, key, texture); return(texture); } }
public void SetFormat(Loon.Core.Graphics.Opengl.LTexture.Format format) { this.format = format; }
public void SetFormat(Loon.Core.Graphics.Opengl.LTexture.Format format) { this.m_format = format; this.isUpdate = true; }
public void Packed(Loon.Core.Graphics.Opengl.LTexture.Format format) { this.Pack(format); this.packed = true; this.Free(); }
public TileMap(Field2D field, Loon.Core.Graphics.Opengl.LTexture.Format format) : this(field, LSystem.screenRect.width, LSystem.screenRect.height, format) { }
public TileMap(int[][] maps, int tileWidth, int tileHeight, int mWidth, int mHeight, Loon.Core.Graphics.Opengl.LTexture.Format format) : this(new Field2D(maps, tileWidth, tileHeight), mWidth, mHeight, format) { }
public TileMap(string fileName, int tileWidth, int tileHeight, int mWidth, int mHeight, Loon.Core.Graphics.Opengl.LTexture.Format format) : this(TileMapConfig.LoadAthwartArray(fileName), tileWidth, tileHeight, mWidth, mHeight, format) { }
public SpriteRegion(string file, Loon.Core.Graphics.Opengl.LTexture.Format format) : this(LTextures.LoadTexture(file, format)) { }
public int Add(string res, Loon.Core.Graphics.Opengl.LTexture.Format format, float x, float y) { return(Add(new LTextureObject(LTextures.LoadTexture(res, format), x, y))); }