OSDN Git Service

Merge branch 'master' of https://github.com/libgdx/libgdx
[mikumikustudio/libgdx-mikumikustudio.git] / gdx / src / com / badlogic / gdx / graphics / g2d / ParticleEffect.java
index a399b5b..3c29c99 100644 (file)
@@ -30,12 +30,14 @@ import com.badlogic.gdx.math.collision.BoundingBox;
 import com.badlogic.gdx.utils.Array;\r
 import com.badlogic.gdx.utils.Disposable;\r
 import com.badlogic.gdx.utils.GdxRuntimeException;\r
+import com.badlogic.gdx.utils.StreamUtils;\r
 \r
 /** See <a href="http://www.badlogicgames.com/wordpress/?p=1255">http://www.badlogicgames.com/wordpress/?p=1255</a>\r
  * @author mzechner */\r
 public class ParticleEffect implements Disposable {\r
        private final Array<ParticleEmitter> emitters;\r
        private BoundingBox bounds;\r
+       private boolean ownsTexture;\r
 \r
        public ParticleEffect () {\r
                emitters = new Array(8);\r
@@ -137,10 +139,7 @@ public class ParticleEffect implements Disposable {
                } catch (IOException ex) {\r
                        throw new GdxRuntimeException("Error saving effect: " + file, ex);\r
                } finally {\r
-                       try {\r
-                               if (output != null) output.close();\r
-                       } catch (IOException ex) {\r
-                       }\r
+                       StreamUtils.closeQuietly(output);\r
                }\r
        }\r
 \r
@@ -171,10 +170,7 @@ public class ParticleEffect implements Disposable {
                } catch (IOException ex) {\r
                        throw new GdxRuntimeException("Error loading effect: " + effectFile, ex);\r
                } finally {\r
-                       try {\r
-                               if (reader != null) reader.close();\r
-                       } catch (IOException ex) {\r
-                       }\r
+                       StreamUtils.closeQuietly(reader);\r
                }\r
        }\r
 \r
@@ -193,6 +189,7 @@ public class ParticleEffect implements Disposable {
        }\r
 \r
        public void loadEmitterImages (FileHandle imagesDir) {\r
+               ownsTexture = true;\r
                for (int i = 0, n = emitters.size; i < n; i++) {\r
                        ParticleEmitter emitter = emitters.get(i);\r
                        String imagePath = emitter.getImagePath();\r
@@ -208,6 +205,7 @@ public class ParticleEffect implements Disposable {
 \r
        /** Disposes the texture for each sprite for each ParticleEmitter. */\r
        public void dispose () {\r
+               if (!ownsTexture) return;\r
                for (int i = 0, n = emitters.size; i < n; i++) {\r
                        ParticleEmitter emitter = emitters.get(i);\r
                        emitter.getSprite().getTexture().dispose();\r