Exemplo n.º 1
0
        public PostProcessResources[] AllResourcesImpl()
        {
            PurgeTrackedResources();
            PostProcessResources[] activeResources = new PostProcessResources[trackedResources.Count];
            for (int i = 0; i < trackedResources.Count; ++i)
            {
                activeResources[i] = (PostProcessResources)trackedResources[i].Target;
            }

            return(activeResources);
        }
Exemplo n.º 2
0
        public PostProcessResources StrippableClone()
        {
            PostProcessResources clone = CreateInstance <PostProcessResources>();

            clone.blueNoise64    = (Texture2D[])blueNoise64.Clone();
            clone.blueNoise256   = (Texture2D[])blueNoise256.Clone();
            clone.smaaLuts       = smaaLuts;
            clone.shaders        = shaders.Clone();
            clone.computeShaders = computeShaders.Clone();
            return(clone);
        }
Exemplo n.º 3
0
 private void Track(PostProcessResources res)
 {
     foreach (var weakRef in trackedResources)
     {
         PostProcessResources trackedResource = (PostProcessResources)weakRef.Target;
         if (trackedResource == res)
         {
             return;
         }
     }
     trackedResources.Add(new WeakReference(res));
 }
Exemplo n.º 4
0
 public void Init(PostProcessResources resources)
 {
     if (resources != null)
     {
         m_Resources = resources;
     }
     RuntimeUtilities.CreateIfNull(ref temporalAntialiasing);
     RuntimeUtilities.CreateIfNull(ref subpixelMorphologicalAntialiasing);
     RuntimeUtilities.CreateIfNull(ref fastApproximateAntialiasing);
     RuntimeUtilities.CreateIfNull(ref dithering);
     RuntimeUtilities.CreateIfNull(ref fog);
     RuntimeUtilities.CreateIfNull(ref debugLayer);
 }
Exemplo n.º 5
0
        internal static void UpdateResources(PostProcessResources resources)
        {
            Destroy(s_CopyMaterial);
            Destroy(s_CopyStdMaterial);
            Destroy(s_CopyFromTexArrayMaterial);
            Destroy(s_CopyStdFromDoubleWideMaterial);

            s_CopyMaterial                  = null;
            s_CopyStdMaterial               = null;
            s_CopyFromTexArrayMaterial      = null;
            s_CopyStdFromDoubleWideMaterial = null;

            s_CopySheet             = null;
            s_CopyFromTexArraySheet = null;

            s_Resources = resources;
        }
Exemplo n.º 6
0
        public void Init(PostProcessResources resources)
        {
#if UNITY_EDITOR
            m_Resources = PostProcessResourcesFactory.Stripped(m_Resources);
#endif
            if (resources != null)
            {
                m_Resources = resources;
            }

            RuntimeUtilities.CreateIfNull(ref temporalAntialiasing);
            RuntimeUtilities.CreateIfNull(ref subpixelMorphologicalAntialiasing);
            RuntimeUtilities.CreateIfNull(ref fastApproximateAntialiasing);
            RuntimeUtilities.CreateIfNull(ref dithering);
            RuntimeUtilities.CreateIfNull(ref fog);
            RuntimeUtilities.CreateIfNull(ref debugLayer);
        }
Exemplo n.º 7
0
        private PostProcessResources StrippedImpl(PostProcessResources res)
        {
            PurgeTrackedResources();

            PostProcessResources result = null;

            if (res == unstrippedResources)
            {
                result = unstrippedResources.StrippableClone();
            }
            else
            {
                result = res;
            }

            Track(result);

            if (strip != null)
            {
                strip(result);
            }

            return(result);
        }
 // Special case for AO [because SRPs], please don't do this in other effects, it's bad
 // practice in this framework
 public void SetResources(PostProcessResources resources)
 {
     m_Resources = resources;
 }
Exemplo n.º 9
0
 internal void BeginFrame(PostProcessRenderContext context)
 {
     m_Command        = context.command;
     m_PropertySheets = context.propertySheets;
     m_Resources      = context.resources;
 }
Exemplo n.º 10
0
 public static PostProcessResources Stripped(PostProcessResources res)
 {
     EnsureInstance();
     return(s_Instance.StrippedImpl(res));
 }