private IEnumerator BlurTextureSampled()
    {
        while (true)
        {
            totaProgress = 0f;
            yield return(new WaitForEndOfFrame());

            myScheduler.ForceToMainThread = !MultithreadingEnabled;
            Array.Copy(origionalColors, sourceColors, origionalColors.Length);

            float time = Time.realtimeSinceStartup;

            if (BlurSamples > 0)
            {
                for (int i = 0; i < BlurSamples; i++)
                {
                    Loom.StartMultithreadedWorkloadExecution <Pixel>(BlurPixels, sourcePixels, onComplete, onPackageComplete, MaxThreads, myScheduler, safeMode);

                    while (myScheduler.isBusy)
                    {
                        totaProgress  = (float)i / (float)BlurSamples;
                        totaProgress += myScheduler.Progress / (float)BlurSamples;
                        yield return(new WaitForSeconds(0.001f));
                    }

                    //--------------- Blit --------------------
                    if (i < BlurSamples - 1)
                    {
                        Color32[] oldSource = sourceColors;
                        sourceColors      = destinationColors;
                        destinationColors = oldSource;
                    }
                    //--------------- Blit --------------------
                }

                timePerBlur = Time.realtimeSinceStartup - time;
                displayTexture.SetPixels32(destinationColors);
                displayTexture.Apply();
            }
            else
            {
                timePerBlur = Time.realtimeSinceStartup - time;
                displayTexture.SetPixels32(sourceColors);
                displayTexture.Apply();
            }
        }
    }
Beispiel #2
0
    private void preRequestPostThread()
    {
        isRequesting = false;
        if (requestQueue.Count <= 0)
        {
            return;
        }

        HttpRequestEvent[] hteArr = null;
        lock (lockObj)
        {
            hteArr = requestQueue.ToArray();
            requestQueue.Clear();
        }
        isRequesting = true;

        ThreadManager threadMgr = AppFacade.Instance.GetManager <ThreadManager>();

        Loom.StartMultithreadedWorkloadExecution((hre) => HttpRequestGet(hre.PostDatas),
                                                 hteArr, (hre) => preRequestPostThread(), null, 1, threadMgr.PoolScheduler);
    }