public void Start()
        {
            TaskUtils.SetGlobalMultithreading(false);
            var shaderContainerGO = FindObjectOfType <ComputeShaderContainerGameObject>();

            var configuration = new FEConfiguration(new FilePathsConfiguration());
            GlobalServicesProfileInfo servicesProfileInfo = new GlobalServicesProfileInfo();
            var ultraUpdatableContainer = new UltraUpdatableContainer(
                configuration.SchedulerConfiguration,
                servicesProfileInfo,
                configuration.UpdatableContainerConfiguration);
            Dictionary <int, float> intensityPatternPixelsPerUnit = new Dictionary <int, float>()
            {
                { 1, 1 }
            };
            int mipmapLevelToExtract = 2;
            Dictionary <int, float> plateStampPixelsPerUnit = new Dictionary <int, float>()
            {
                { 1, 5 }
            };

            _updatableContainer = new UltraUpdatableContainer(new MyUtSchedulerConfiguration(), new GlobalServicesProfileInfo(), new UltraUpdatableContainerConfiguration());
            _provider           = ESurfaceProviderInitializationHelper.ConstructProvider(
                _updatableContainer, intensityPatternPixelsPerUnit, shaderContainerGO, mipmapLevelToExtract, plateStampPixelsPerUnit);

            _patchesCreatorProxy = new GRing2PatchesCreatorProxy(ESurfaceProviderInitializationHelper.CreateRing2PatchesCreator(_updatableContainer, intensityPatternPixelsPerUnit));

            RegeneratePatch();
        }
 public CachedESurfacePatchProvider(ESurfacePatchProvider provider, IAssetsCache <ESurfaceTexturesPackToken, NullableESurfaceTexturesPack> cache)
 {
     _provider = provider;
     _cache    = cache;
 }