void DrawSetting(int index)
        {
            QualitySettingPostprocessProfileSwitch.QualitySettingEntry setting = m_Target.settings[index];

            GUILayout.FlexibleSpace();
            if (m_Target.settings.Length > 1 && GUILayout.Button("Remove", GUILayout.Width(64)))
            {
                Undo.RecordObject(m_Target,
                                  "Removed quality setting " + QualitySettings.names[m_Target.settings[index].minimumQualitySetting]);
                ArrayUtility.RemoveAt(ref m_Target.settings, index);
                EditorUtility.SetDirty(m_Target);
                GetRemainingQualitySetting();
                m_OpenedSettings = -1;
            }
            else
            {
                PostProcessProfile newProfile =
                    EditorGUILayout.ObjectField("Profile", setting.profile, typeof(PostProcessProfile), false) as PostProcessProfile;

                if (newProfile != setting.profile)
                {
                    Undo.RecordObject(m_Target, "Changed profile for setting " + QualitySettings.names[m_Target.settings[index].minimumQualitySetting]);
                    setting.profile = newProfile;
                    EditorUtility.SetDirty(m_Target);
                }

                PostProcessLayer.Antialiasing antiAliasing = (PostProcessLayer.Antialiasing)EditorGUILayout.EnumPopup("Antialiasing", setting.usedAntiAliasing);
                if (antiAliasing != setting.usedAntiAliasing)
                {
                    Undo.RecordObject(m_Target, "Changed antialiasing method for setting " + QualitySettings.names[m_Target.settings[index].minimumQualitySetting]);
                    setting.usedAntiAliasing = antiAliasing;
                    EditorUtility.SetDirty(m_Target);
                }
            }
        }
예제 #2
0
 private void renderAntialiasingSettings()
 {
     PostProcessLayer.Antialiasing mode = TexturesUnlimitedFXLoader.INSTANCE.CurrentProfile.AntiAliasing;
     AddEnumField("AntiAliasing Mode", ref mode);
     if (mode != TexturesUnlimitedFXLoader.INSTANCE.CurrentProfile.AntiAliasing)
     {
         TexturesUnlimitedFXLoader.INSTANCE.onAntiAliasingSelected(mode, true);
     }
     //TODO -- add parameters for the AA modes
     //if (mode == PostProcessLayer.Antialiasing.FastApproximateAntialiasing)
     //{
     //    //AddBoolField("FXAA Fast Mode", ref layer.fastApproximageAntialiasing.fastMode);
     //    //AddBoolField("FXAA Keep Alpha", ref layer.fastApproximageAntialiasing.keepAlpha);
     //}
 }
예제 #3
0
 private void NameTagCallback(bool active)
 {
     if (!(pp_layer == null))
     {
         if (active)
         {
             previousSetting           = pp_layer.antialiasingMode;
             pp_layer.antialiasingMode = PostProcessLayer.Antialiasing.None;
         }
         else
         {
             pp_layer.antialiasingMode = previousSetting;
         }
     }
 }
예제 #4
0
        /// <summary>
        /// Loads the profile from the input configuration node.
        /// </summary>
        /// <param name="node"></param>
        public void LoadProfile(ConfigNode node)
        {
            ProfileName  = node.GetStringValue("name");
            HDREnabled   = node.GetBoolValue("hdr", false);
            AntiAliasing = node.GetEnumValue("antialiasing", PostProcessLayer.Antialiasing.None);
            Settings.Clear();
            ConfigNode[] effectNodes = node.GetNodes("EFFECT");
            int          len         = effectNodes.Length;

            for (int i = 0; i < len; i++)
            {
                BuiltinEffect             effect = effectNodes[i].GetEnumValue("name", BuiltinEffect.AmbientOcclusion);
                PostProcessEffectSettings set    = TUFXProfileManager.CreateEmptySettingsForEffect(effect);
                set.enabled.Override(true);
                set.Load(effectNodes[i]);
                Settings.Add(set);
            }
        }
예제 #5
0
 internal void onAntiAliasingSelected(PostProcessLayer.Antialiasing mode, bool updateProfile)
 {
     if (updateProfile && CurrentProfile != null)
     {
         Log.debug("Updated profile AA value to: " + mode);
         CurrentProfile.AntiAliasing = mode;
     }
     else if (updateProfile)
     {
         Log.exception("Profile was null when attempting to update AA mode.");
     }
     if (layer != null)
     {
         Log.debug("Updated post process layer AA value to: " + mode);
         layer.antialiasingMode = mode;
     }
     else
     {
         Log.exception("Layer was null when attempting to update AA mode.");
     }
 }
        private void OnEnable()
        {
            m_PreviousQualitySetting = QualitySettings.GetQualityLevel();
            m_Volume = GetComponent <PostProcessVolume>();
            m_Layer  = GetComponent <PostProcessLayer>();

            if (m_Volume == null)
            {
                enabled = false;
                return;
            }

            if (m_Layer != null)
            {
                m_AntiAliasing = m_Layer.antialiasingMode;
            }

            m_OriginalProfile = m_Volume.sharedProfile;

            DoSwitch();
        }
예제 #7
0
 public void IntToAntiAliasingMode(int value)
 {
     AntiAliasingMode = (PostProcessLayer.Antialiasing)value;
 }
예제 #8
0
 /// <summary>
 /// Updates antialiasing on the post processing layer
 /// </summary>
 /// <param name="option">The index of the option in the enum</param>
 public void UpdateAntiAlias(PostProcessLayer.Antialiasing option)
 {
     camLayer.antialiasingMode       = option;
     prefs.Graphics.AntiAliasingMode = (int)option;
 }
예제 #9
0
 private void AntiAliasingModeChanged(PostProcessLayer.Antialiasing value)
 {
     layer.antialiasingMode = value;
 }
 public static void SetAntiAliasingMode(PostProcessLayer.Antialiasing antialiasingMode, string name = "") => FirstPostLayer(name).antialiasingMode = antialiasingMode;