Esempio n. 1
0
        async Task LoadGltfSampleSetItem(SampleSetItem testCase, GameObject go, IDeferAgent deferAgent, SampleGroup loadTime = null)
        {
            var path = string.Format(
#if UNITY_ANDROID && !UNITY_EDITOR
                "{0}"
#else
                "file://{0}"
#endif
                , testCase.path
                );

            // Debug.LogFormat("Testing {0}", path);

            var gltfAsset = go.AddComponent <GltfAsset>();
            var stopWatch = go.AddComponent <StopWatch>();

            stopWatch.StartTime();

            gltfAsset.loadOnStartup = false;
            var success = await gltfAsset.Load(path, null, deferAgent);

            Assert.IsTrue(success);

            stopWatch.StopTime();

            if (loadTime != null)
            {
                Measure.Custom(loadTime, stopWatch.lastDuration);
            }
        }
        public IEnumerator SmoothLoading(SampleSetItem testCase)
        {
            Debug.Log($"Testing {testCase.path}");
            var go         = new GameObject();
            var deferAgent = go.AddComponent <TimeBudgetPerFrameDeferAgent>();
            var task       = LoadGltfSampleSetItem(testCase, go, deferAgent);

            yield return(Utils.WaitForTask(task));

            Object.Destroy(go);
        }
        // [UnityTest]
        // [UseGltfSampleSetTestCase(localSampleSetJsonPath)]
        // [Performance]
        // public IEnumerator UninterruptedLoadingLocal(SampleSetItem testCase) {
        //     yield return UninterruptedLoadingTemplate(testCase);
        // }

        static IEnumerator UninterruptedLoadingTemplate(SampleSetItem testCase)
        {
            Debug.Log($"Testing {testCase.path}");
            var go         = new GameObject();
            var deferAgent = new UninterruptedDeferAgent();
            var task       = LoadGltfSampleSetItem(testCase, go, deferAgent);

            yield return(Utils.WaitForTask(task));

            Object.Destroy(go);
        }
Esempio n. 4
0
        public IEnumerator QuickLoad(SampleSetItem testCase)
        {
#if UNITY_EDITOR
            Debug.Log($"Testing {testCase.path}");
            var go         = new GameObject();
            var deferAgent = new UninterruptedDeferAgent();
            var task       = LoadGltfSampleSetItem(testCase, go, deferAgent);
            yield return(WaitForTask(task));

            Object.Destroy(go);
#endif
        }
Esempio n. 5
0
        public IEnumerator LoadGlbFromMemory(SampleSetItem testCase)
        {
            Debug.Log($"Testing {testCase.path}");
            var data       = File.ReadAllBytes(testCase.path);
            var go         = new GameObject();
            var deferAgent = new UninterruptedDeferAgent();
            var gltf       = new GLTFast();
            var task       = gltf.LoadGltfBinary(data, new Uri(testCase.path));

            yield return(WaitForTask(task));

            var success = task.Result;

            Assert.IsTrue(success);
            success = gltf.InstantiateGltf(go.transform);
            Assert.IsTrue(success);
            Object.Destroy(go);
        }
        // [UnityTest]
        // [UseGltfSampleSetTestCase(localSampleSetJsonPath)]
        // [Performance]
        // public IEnumerator UninterruptedLoadingLocal(SampleSetItem testCase) {
        //     yield return UninterruptedLoadingTemplate(testCase);
        // }

        static IEnumerator UninterruptedLoadingTemplate(SampleSetItem testCase)
        {
            Debug.Log($"Testing {testCase.path}");
            var go         = new GameObject();
            var deferAgent = new UninterruptedDeferAgent();
            var loadTime   = new SampleGroup("LoadTime");
            // First time without measuring
            var task = SampleModelsTest.LoadGltfSampleSetItem(testCase, go, deferAgent, loadTime);

            yield return(Utils.WaitForTask(task));

            using (Measure.Frames().Scope()) {
                for (int i = 0; i < k_Repetitions; i++)
                {
                    task = SampleModelsTest.LoadGltfSampleSetItem(testCase, go, deferAgent, loadTime);
                    yield return(Utils.WaitForTask(task));
                }
            }

            Object.Destroy(go);
        }
        public IEnumerator LoadGlbFromMemory(SampleSetItem testCase)
        {
            Debug.Log($"Testing {testCase.path}");
            var data       = File.ReadAllBytes(testCase.path);
            var go         = new GameObject();
            var deferAgent = new UninterruptedDeferAgent();
            var logger     = new ConsoleLogger();
            var gltf       = new GltfImport(deferAgent: deferAgent, logger: logger);
            var task       = gltf.LoadGltfBinary(data, new Uri(testCase.path));

            yield return(Utils.WaitForTask(task));

            var success = task.Result;

            Assert.IsTrue(success);
            var instantiator = new GameObjectInstantiator(gltf, go.transform, logger);

            success = gltf.InstantiateMainScene(instantiator);
            Assert.IsTrue(success);
            Object.Destroy(go);
        }
        public IEnumerator SmoothLoading(SampleSetItem testCase)
        {
            Debug.Log($"Testing {testCase.path}");
            var         go         = new GameObject();
            var         deferAgent = go.AddComponent <TimeBudgetPerFrameDeferAgent>();
            SampleGroup loadTime   = new SampleGroup("LoadTime");
            // First time without measuring
            var task = SampleModelsTest.LoadGltfSampleSetItem(testCase, go, deferAgent);

            yield return(Utils.WaitForTask(task));

            using (Measure.Frames().Scope()) {
                for (int i = 0; i < k_Repetitions; i++)
                {
                    task = SampleModelsTest.LoadGltfSampleSetItem(testCase, go, deferAgent, loadTime);
                    yield return(Utils.WaitForTask(task));

                    // Wait one more frame. Usually some more action happens in this one.
                    yield return(null);
                }
            }
            Object.Destroy(go);
        }
 public IEnumerator UninterruptedLoading(SampleSetItem testCase)
 {
     yield return(UninterruptedLoadingTemplate(testCase));
 }