Browse Source

Merge pull request #114 from AtomicGameEngine/JME-ATOMIC-FEATUREEXAMPLESLIFETIME

Updating C# Feature Examples to dispose scenes
JoshEngebretson 8 years ago
parent
commit
6b55cdb8cf
22 changed files with 35 additions and 24 deletions
  1. 1 2
      FeatureExamples/CSharp/Resources/Scripts/04_StaticScene.cs
  2. 0 2
      FeatureExamples/CSharp/Resources/Scripts/05_AnimatingScene.cs
  3. 0 1
      FeatureExamples/CSharp/Resources/Scripts/06_SkeletalAnimation.cs
  4. 0 1
      FeatureExamples/CSharp/Resources/Scripts/07_Billboards.cs
  5. 0 1
      FeatureExamples/CSharp/Resources/Scripts/08_Decals.cs
  6. 0 1
      FeatureExamples/CSharp/Resources/Scripts/09_MultipleViewports.cs
  7. 7 1
      FeatureExamples/CSharp/Resources/Scripts/10_RenderToTexture.cs
  8. 0 1
      FeatureExamples/CSharp/Resources/Scripts/11_Physics.cs
  9. 0 1
      FeatureExamples/CSharp/Resources/Scripts/12_PhysicsStressTest.cs
  10. 0 1
      FeatureExamples/CSharp/Resources/Scripts/13_Ragdolls.cs
  11. 0 2
      FeatureExamples/CSharp/Resources/Scripts/14_SoundEffects.cs
  12. 0 1
      FeatureExamples/CSharp/Resources/Scripts/15_Navigation.cs
  13. 0 1
      FeatureExamples/CSharp/Resources/Scripts/19_VehicleDemo.cs
  14. 0 1
      FeatureExamples/CSharp/Resources/Scripts/23_Water.cs
  15. 0 1
      FeatureExamples/CSharp/Resources/Scripts/24_2DSprite.cs
  16. 0 1
      FeatureExamples/CSharp/Resources/Scripts/30_LightAnimation.cs
  17. 0 1
      FeatureExamples/CSharp/Resources/Scripts/31_MaterialAnimation.cs
  18. 0 1
      FeatureExamples/CSharp/Resources/Scripts/32_2DConstraints.cs
  19. 0 1
      FeatureExamples/CSharp/Resources/Scripts/39_CrowdNavigation.cs
  20. 0 1
      FeatureExamples/CSharp/Resources/Scripts/A01_FBXImport.cs
  21. 14 1
      FeatureExamples/CSharp/Resources/Scripts/AtomicMain.cs
  22. 13 0
      FeatureExamples/CSharp/Resources/Scripts/Sample.cs

+ 1 - 2
FeatureExamples/CSharp/Resources/Scripts/04_StaticScene.cs

@@ -32,8 +32,7 @@ namespace FeatureExamples
     public class StaticSceneSample : Sample
     {
         Camera camera;
-        Scene scene;
-
+        
         public StaticSceneSample() : base() { }
 
         public override void Start()

+ 0 - 2
FeatureExamples/CSharp/Resources/Scripts/05_AnimatingScene.cs

@@ -28,8 +28,6 @@ namespace FeatureExamples
 {
     public class AnimatingScene : Sample
     {
-        Scene scene;
-
         public AnimatingScene() : base() { }
 
         void CreateScene()

+ 0 - 1
FeatureExamples/CSharp/Resources/Scripts/06_SkeletalAnimation.cs

@@ -30,7 +30,6 @@ namespace FeatureExamples
 {
     public class SkeletalAnimationSample : Sample
     {
-        Scene scene;
         Camera camera;
         bool drawDebug;
 

+ 0 - 1
FeatureExamples/CSharp/Resources/Scripts/07_Billboards.cs

@@ -29,7 +29,6 @@ namespace FeatureExamples
 {
     public class BillboardsSample : Sample
     {
-        Scene scene;
         bool drawDebug;
 
         public BillboardsSample() : base() { }

+ 0 - 1
FeatureExamples/CSharp/Resources/Scripts/08_Decals.cs

@@ -30,7 +30,6 @@ namespace FeatureExamples
 {
     public class DecalSample : Sample
     {
-        Scene scene;
         bool drawDebug;
         Camera camera;
 

+ 0 - 1
FeatureExamples/CSharp/Resources/Scripts/09_MultipleViewports.cs

@@ -28,7 +28,6 @@ namespace FeatureExamples
 { 
 	public class MultipleViewportsSample : Sample
 	{
-		Scene scene;
 		bool drawDebug;
 		Node rearCameraNode;
 

+ 7 - 1
FeatureExamples/CSharp/Resources/Scripts/10_RenderToTexture.cs

@@ -27,7 +27,6 @@ namespace FeatureExamples
 {
 	public class RenderToTextureSample : Sample
 	{
-		Scene scene;
 		Scene rttScene;
 		Node rttCameraNode;
 
@@ -41,6 +40,13 @@ namespace FeatureExamples
 			SetupViewport();
 		}
 
+        override protected void Stop()
+        {
+            if (rttScene != null)
+                rttScene.Dispose();
+        }
+
+
         protected override void Update(float timeStep)
         {
 			base.Update(timeStep);

+ 0 - 1
FeatureExamples/CSharp/Resources/Scripts/11_Physics.cs

@@ -28,7 +28,6 @@ namespace FeatureExamples
 {
     public class PhysicsSample : Sample
     {
-        Scene scene;
         bool drawDebug;
 
         public PhysicsSample() : base() { }

+ 0 - 1
FeatureExamples/CSharp/Resources/Scripts/12_PhysicsStressTest.cs

@@ -28,7 +28,6 @@ namespace FeatureExamples
 {
     public class PhysicsStressTestSample : Sample
     {
-        Scene scene;
         bool drawDebug;
 
         public PhysicsStressTestSample() : base() { }

+ 0 - 1
FeatureExamples/CSharp/Resources/Scripts/13_Ragdolls.cs

@@ -28,7 +28,6 @@ namespace FeatureExamples
 {
     public class RagdollSample : Sample
     {
-        Scene scene;
         bool drawDebug;
         Camera camera;
 

+ 0 - 2
FeatureExamples/CSharp/Resources/Scripts/14_SoundEffects.cs

@@ -30,8 +30,6 @@ namespace FeatureExamples
 {
 	public class SoundEffectsSample : Sample
 	{
-		Scene scene;
-
 		readonly Dictionary<string, string> sounds = new Dictionary<string, string>
 			{
 				{"Fist",      "Sounds/PlayerFistHit.wav"},

+ 0 - 1
FeatureExamples/CSharp/Resources/Scripts/15_Navigation.cs

@@ -30,7 +30,6 @@ namespace FeatureExamples
 {
     public class NavigationSample : Sample
     {
-        Scene scene;
         float yaw;
         float pitch;
         bool drawDebug;

+ 0 - 1
FeatureExamples/CSharp/Resources/Scripts/19_VehicleDemo.cs

@@ -28,7 +28,6 @@ namespace FeatureExamples
 {
     public class VehicleDemo : Sample
     {
-        Scene scene;
         Vehicle vehicle;
 
         const float CameraDistance = 10.0f;

+ 0 - 1
FeatureExamples/CSharp/Resources/Scripts/23_Water.cs

@@ -27,7 +27,6 @@ namespace FeatureExamples
 {
 	public class WaterSample : Sample
 	{
-		Scene scene;
 		Node waterNode;
 		Node reflectionCameraNode;
 		Plane waterPlane;

+ 0 - 1
FeatureExamples/CSharp/Resources/Scripts/24_2DSprite.cs

@@ -29,7 +29,6 @@ namespace FeatureExamples
 {
 	public class SpriteSample : Sample
 	{
-		Scene scene;
 		List<NodeInfo> spriteNodes;
 		const uint NumSprites = 200;
 

+ 0 - 1
FeatureExamples/CSharp/Resources/Scripts/30_LightAnimation.cs

@@ -26,7 +26,6 @@ namespace FeatureExamples
 {
 	public class LightAnimationSample : Sample
 	{
-		Scene scene;
 
 		public LightAnimationSample() : base() { }
 

+ 0 - 1
FeatureExamples/CSharp/Resources/Scripts/31_MaterialAnimation.cs

@@ -28,7 +28,6 @@ namespace FeatureExamples
 {
 	public class MaterialAnimationSample : Sample
 	{
-		Scene scene;
 		bool drawDebug;
 
 		public MaterialAnimationSample() : base() { }

+ 0 - 1
FeatureExamples/CSharp/Resources/Scripts/32_2DConstraints.cs

@@ -29,7 +29,6 @@ namespace FeatureExamples
 {
     public class Constraints2DSample : Sample
     {
-        Scene scene;
         bool drawDebug;
         Camera camera;
         RigidBody2D dummyBody;

+ 0 - 1
FeatureExamples/CSharp/Resources/Scripts/39_CrowdNavigation.cs

@@ -30,7 +30,6 @@ namespace FeatureExamples
 {
     public class CrowdNavigationSample : Sample
     {
-        Scene scene;
         bool drawDebug;
         CrowdManager crowdManager;
 

+ 0 - 1
FeatureExamples/CSharp/Resources/Scripts/A01_FBXImport.cs

@@ -32,7 +32,6 @@ namespace FeatureExamples
     public class FBXImportSample : Sample
     {
         Camera camera;
-        Scene scene;
 
         public FBXImportSample() : base() { }
 

+ 14 - 1
FeatureExamples/CSharp/Resources/Scripts/AtomicMain.cs

@@ -8,8 +8,21 @@ public class AtomicMain : AppDelegate
 {
     public override void Start()
     {
+
+        var metricsEnabled = false;
+
+        if (metricsEnabled)
+        {
+            var ui = GetSubsystem<UI>();
+
+            // set up the DebugHud to show metrics and update at 10hz
+            ui.SetDebugHudProfileMode(DebugHudProfileMode.DEBUG_HUD_PROFILE_METRICS);
+            ui.ShowDebugHud(true);
+            GetSubsystem<Metrics>().Enable();
+        }
+
         SampleSelector.UIView = new UIView();
-        new SampleSelector();        
+        new SampleSelector();
     }
 
 }

+ 13 - 0
FeatureExamples/CSharp/Resources/Scripts/Sample.cs

@@ -35,6 +35,7 @@ namespace FeatureExamples
         protected float Pitch { get; set; }
         protected bool TouchEnabled { get; set; }
         protected Node CameraNode { get; set; }
+        protected Scene scene;
 
         protected UIView UIView { get; set; }
 
@@ -64,6 +65,11 @@ namespace FeatureExamples
 
         }
 
+        protected virtual void Stop()
+        {
+
+        }
+
         protected virtual void Update(float timeStep)
         {
             MoveCameraByTouches(timeStep);
@@ -197,6 +203,8 @@ namespace FeatureExamples
 
         protected void BackToSelector()
         {
+            Stop();
+
             GetSubsystem<Input>().SetMouseVisible(true);
             UnsubscribeFromAllEvents();
             var renderer = GetSubsystem<Renderer>();
@@ -206,6 +214,11 @@ namespace FeatureExamples
             }
             SampleSelector.sampleRef = null;
             SampleSelector.UIView.DeleteAllChildren();
+            
+            scene?.Dispose();
+
+            GetSubsystem<ResourceCache>().ReleaseAllResources();
+
             new SampleSelector();
         }