Пример #1
0
        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);
        }
Пример #2
0
 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);
 }
Пример #3
0
 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);
 }
Пример #4
0
        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);
        }
Пример #5
0
 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);
     }
 }
Пример #6
0
		public void SetFormat(Loon.Core.Graphics.Opengl.LTexture.Format format) {
			this.format = format;
		}
Пример #7
0
 public void SetFormat(Loon.Core.Graphics.Opengl.LTexture.Format format)
 {
     this.m_format = format;
     this.isUpdate = true;
 }
Пример #8
0
 public void Packed(Loon.Core.Graphics.Opengl.LTexture.Format format)
 {
     this.Pack(format);
     this.packed = true;
     this.Free();
 }
Пример #9
0
 public void SetFormat(Loon.Core.Graphics.Opengl.LTexture.Format format)
 {
     this.format = format;
 }
Пример #10
0
 public TileMap(Field2D field, Loon.Core.Graphics.Opengl.LTexture.Format format) : this(field, LSystem.screenRect.width, LSystem.screenRect.height, format)
 {
 }
Пример #11
0
 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)
 {
 }
Пример #12
0
 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)
 {
 }
Пример #13
0
 public SpriteRegion(string file, Loon.Core.Graphics.Opengl.LTexture.Format format)
     : this(LTextures.LoadTexture(file, format))
 {
 }
Пример #14
0
 public void SetFormat(Loon.Core.Graphics.Opengl.LTexture.Format format)
 {
     this.m_format = format;
     this.isUpdate = true;
 }
Пример #15
0
		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);
		}
Пример #16
0
 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)));
 }