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.FontEngineRemoveTexture(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) {}
                 }
                 bigOne.texture = null;
             }
         }
     }
 }
Example #2
0
            private void DisposeUnmanagedResources()
            {
                //Log.Debug("Frame.DisposeUnmanagedResources mainthread: {0}", !(GUIGraphicsContext.form.InvokeRequired));
                if (_image != null)
                {
                    if (logTextures)
                    {
                        Log.Info("Frame: dispose() fontengine: remove texture:" + _textureNumber.ToString());
                    }
                    try
                    {
                        if (_textureNumber >= 0)
                        {
                            DXNative.FontEngineRemoveTexture(_textureNumber);
                            _textureNumber = -1;
                        }

                        if (_image != null && !_image.Disposed)
                        {
                            _image.Disposing -= new EventHandler(D3DTexture_Disposing);
                            _image.SafeDispose();
                        }
                    }
                    catch (Exception)
                    {
                        //image already disposed?
                    }
                    _image = null;
                }
            }
Example #3
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.FontEngineRemoveTexture(bigOne.textureNo);
                 if (Disposing != null)
                 {
                     Disposing(this, bigOne.textureNo);
                 }
             }
             bigOne.texture   = null;
             bigOne.textureNo = -1;
             return;
         }
     }
 }
 private void texture_Disposing(object sender, EventArgs e)
 {
     if ((sender as Texture) == null)
     {
         return;
     }
     for (int i = 0; i < _packedTextures.Count; ++i)
     {
         PackedTexture bigOne = _packedTextures[i];
         if (bigOne.texture == (Texture)sender)
         {
             if (bigOne.textureNo >= 0)
             {
                 Log.Info("TexturePacker: disposing texture:{0}", bigOne.textureNo);
                 DXNative.FontEngineRemoveTexture(bigOne.textureNo);
                 if (Disposing != null)
                 {
                     Disposing(this, bigOne.textureNo);
                 }
             }
             bigOne.texture   = null;
             bigOne.textureNo = -1;
             return;
         }
     }
 }