Example #1
0
 public void Dispose()
 {
     Log.Info("TexturePacker:Dispose()");
     if (_packedTextures != null)
     {
         foreach (PackedTexture bigOne in _packedTextures)
         {
             if (bigOne.textureNo >= 0)
             {
                 Log.Info("TexturePacker: remove texture:{0}", bigOne.textureNo);
                 DXNative.FontEngineRemoveTextureSync(bigOne.textureNo);
                 if (Disposing != null)
                 {
                     Disposing(this, bigOne.textureNo);
                 }
             }
             if (bigOne.texture != null)
             {
                 if (!bigOne.texture.Disposed)
                 {
                     try
                     {
                         bigOne.texture.Disposing -= TextureDisposing;
                         bigOne.texture.SafeDispose();
                     }
                     catch (Exception ex)
                     {
                         Log.Error("TexturePacker: Dispose {0}", ex.Message);
                     }
                 }
                 bigOne.texture = null;
             }
         }
     }
 }
Example #2
0
 private void TextureDisposing(object sender, EventArgs e)
 {
     if ((sender as Texture) == null)
     {
         return;
     }
     foreach (PackedTexture bigOne in _packedTextures)
     {
         if (bigOne.texture == (Texture)sender)
         {
             if (bigOne.textureNo >= 0)
             {
                 Log.Info("TexturePacker: disposing texture:{0}", bigOne.textureNo);
                 DXNative.FontEngineRemoveTextureSync(bigOne.textureNo);
                 if (Disposing != null)
                 {
                     Disposing(this, bigOne.textureNo);
                 }
             }
             bigOne.texture   = null;
             bigOne.textureNo = -1;
             return;
         }
     }
 }