public override void OnPreviewGUI(Rect r, GUIStyle background)
        {
            bool flag = Event.current.type == EventType.Repaint;

            if (flag)
            {
                background.Draw(r, false, false, false, false);
            }
            VideoClipImporter videoClipImporter = (VideoClipImporter)base.target;

            if (this.m_IsPlaying && !videoClipImporter.isPlayingPreview)
            {
                videoClipImporter.PlayPreview();
            }
            else if (!this.m_IsPlaying && videoClipImporter.isPlayingPreview)
            {
                videoClipImporter.StopPreview();
            }
            Texture previewTexture = videoClipImporter.GetPreviewTexture();

            if (previewTexture && previewTexture.width != 0 && previewTexture.height != 0)
            {
                float num  = (float)previewTexture.width;
                float num2 = (float)previewTexture.height;
                if (videoClipImporter.defaultTargetSettings.enableTranscoding)
                {
                    VideoResizeMode resizeMode = videoClipImporter.defaultTargetSettings.resizeMode;
                    num  = (float)videoClipImporter.GetResizeWidth(resizeMode);
                    num2 = (float)videoClipImporter.GetResizeHeight(resizeMode);
                }
                if (videoClipImporter.pixelAspectRatioDenominator > 0)
                {
                    num *= (float)videoClipImporter.pixelAspectRatioNumerator / (float)videoClipImporter.pixelAspectRatioDenominator;
                }
                float num3;
                if (r.width / num * num2 > r.height)
                {
                    num3 = r.height / num2;
                }
                else
                {
                    num3 = r.width / num;
                }
                num3 = Mathf.Clamp01(num3);
                Rect rect = new Rect(r.x, r.y, num * num3, num2 * num3);
                PreviewGUI.BeginScrollView(r, this.m_Position, rect, "PreHorizontalScrollbar", "PreHorizontalScrollbarThumb");
                EditorGUI.DrawTextureTransparent(rect, previewTexture, ScaleMode.StretchToFill);
                this.m_Position = PreviewGUI.EndScrollView();
                if (this.m_IsPlaying && flag)
                {
                    GUIView.current.Repaint();
                }
            }
        }
 public void Init()
 {
     this.mixedTranscoding    = false;
     this.mixedCodec          = false;
     this.mixedResizeMode     = false;
     this.mixedAspectRatio    = false;
     this.mixedCustomWidth    = false;
     this.mixedCustomHeight   = false;
     this.mixedBitrateMode    = false;
     this.mixedSpatialQuality = false;
     this.firstTranscoding    = false;
     this.firstCodec          = VideoCodec.Auto;
     this.firstResizeMode     = VideoResizeMode.OriginalSize;
     this.firstAspectRatio    = VideoEncodeAspectRatio.NoScaling;
     this.firstCustomWidth    = -1;
     this.firstCustomHeight   = -1;
     this.firstBitrateMode    = VideoBitrateMode.High;
     this.firstSpatialQuality = VideoSpatialQuality.HighSpatialQuality;
 }
Пример #3
0
 public override void OnPreviewGUI(Rect r, GUIStyle background)
 {
     if (Event.current.type == EventType.Repaint)
     {
         background.Draw(r, false, false, false, false);
         VideoClipImporter videoClipImporter = (VideoClipImporter)base.target;
         if (this.m_IsPlaying && !videoClipImporter.isPlayingPreview)
         {
             videoClipImporter.PlayPreview();
         }
         else if (!this.m_IsPlaying && videoClipImporter.isPlayingPreview)
         {
             videoClipImporter.StopPreview();
         }
         Texture previewTexture = videoClipImporter.GetPreviewTexture();
         if (previewTexture && previewTexture.width != 0 && previewTexture.height != 0)
         {
             float num  = 1f;
             float num2 = 1f;
             if (videoClipImporter.defaultTargetSettings.enableTranscoding)
             {
                 VideoResizeMode resizeMode = videoClipImporter.defaultTargetSettings.resizeMode;
                 num  = (float)(videoClipImporter.GetResizeWidth(resizeMode) / previewTexture.width);
                 num2 = (float)(videoClipImporter.GetResizeHeight(resizeMode) / previewTexture.height);
             }
             float num3 = Mathf.Min(new float[]
             {
                 num *r.width / (float)previewTexture.width,
                 num2 * r.height / (float)previewTexture.height,
                 num,
                 num2
             });
             Rect rect = new Rect(r.x, r.y, (float)previewTexture.width * num3, (float)previewTexture.height * num3);
             PreviewGUI.BeginScrollView(r, this.m_Position, rect, "PreHorizontalScrollbar", "PreHorizontalScrollbarThumb");
             EditorGUI.DrawTextureTransparent(rect, previewTexture, ScaleMode.StretchToFill);
             this.m_Position = PreviewGUI.EndScrollView();
             if (this.m_IsPlaying)
             {
                 GUIView.current.Repaint();
             }
         }
     }
 }
        private List <GUIContent> GetResizeModeList()
        {
            List <GUIContent> list = new List <GUIContent>();
            VideoClipImporter videoClipImporter = (VideoClipImporter)base.target;
            IEnumerator       enumerator        = Enum.GetValues(typeof(VideoResizeMode)).GetEnumerator();

            try
            {
                while (enumerator.MoveNext())
                {
                    VideoResizeMode mode = (VideoResizeMode)enumerator.Current;
                    list.Add(EditorGUIUtility.TextContent(videoClipImporter.GetResizeModeName(mode)));
                }
            }
            finally
            {
                IDisposable disposable;
                if ((disposable = (enumerator as IDisposable)) != null)
                {
                    disposable.Dispose();
                }
            }
            return(list);
        }
        public override void OnPreviewGUI(Rect r, GUIStyle background)
        {
            VideoClipImporter importer = (VideoClipImporter)target;

            if (m_IsPlaying && !importer.isPlayingPreview)
            {
                importer.PlayPreview();
            }
            else if (!m_IsPlaying && importer.isPlayingPreview)
            {
                importer.StopPreview();
            }

            Texture image = importer.GetPreviewTexture();

            if (image && image.width != 0 && image.height != 0)
            {
                m_Texture = image;
            }

            if (!m_Texture)
            {
                return;
            }

            if (Event.current.type == EventType.Repaint)
            {
                background.Draw(r, false, false, false, false);
            }

            // Compensate spatial quality zooming, if any.
            float previewWidth   = m_Texture.width;
            float previewHeight  = m_Texture.height;
            var   activeSettings =
                importer.GetTargetSettings(BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget).ToString());

            if (activeSettings == null)
            {
                activeSettings = importer.defaultTargetSettings;
            }
            if (activeSettings.enableTranscoding)
            {
                VideoResizeMode resizeMode = activeSettings.resizeMode;
                previewWidth  = importer.GetResizeWidth(resizeMode);
                previewHeight = importer.GetResizeHeight(resizeMode);
            }

            if (importer.pixelAspectRatioDenominator > 0)
            {
                float pixelAspectRatio = (float)importer.pixelAspectRatioNumerator /
                                         (float)importer.pixelAspectRatioDenominator;

                if (pixelAspectRatio > 1.0F)
                {
                    previewWidth *= pixelAspectRatio;
                }
                else
                {
                    previewHeight /= pixelAspectRatio;
                }
            }

            float zoomLevel = 1.0f;

            if ((r.width / previewWidth * previewHeight) > r.height)
            {
                zoomLevel = r.height / previewHeight;
            }
            else
            {
                zoomLevel = r.width / previewWidth;
            }

            zoomLevel = Mathf.Clamp01(zoomLevel);

            Rect wantedRect = new Rect(r.x, r.y, previewWidth * zoomLevel, previewHeight * zoomLevel);

            PreviewGUI.BeginScrollView(
                r, m_Position, wantedRect, "PreHorizontalScrollbar", "PreHorizontalScrollbarThumb");

            EditorGUI.DrawTextureTransparent(wantedRect, m_Texture, ScaleMode.StretchToFill);

            m_Position = PreviewGUI.EndScrollView();

            if (m_IsPlaying && Event.current.type == EventType.Repaint)
            {
                GUIView.current.Repaint();
            }
        }
Пример #6
0
 public extern int GetResizeHeight(VideoResizeMode mode);
Пример #7
0
 public extern int GetResizeWidth(VideoResizeMode mode);
Пример #8
0
 public extern string GetResizeModeName(VideoResizeMode mode);
Пример #9
0
        private void FrameSettingsGUI(int platformIndex, MultiTargetSettingState multiState)
        {
            EditorGUI.showMixedValue = multiState.mixedResizeMode;
            EditorGUI.BeginChangeCheck();
            VideoResizeMode resizeMode = (VideoResizeMode)EditorGUILayout.Popup(s_Styles.dimensionsContent, (int)multiState.firstResizeMode, GetResizeModeList().ToArray());

            EditorGUI.showMixedValue = false;
            if (EditorGUI.EndChangeCheck())
            {
                for (int i = 0; i < m_TargetSettings.GetLength(0); i++)
                {
                    if (m_TargetSettings[i, platformIndex].settings != null)
                    {
                        m_TargetSettings[i, platformIndex].settings.resizeMode = resizeMode;
                        m_ModifiedTargetSettings = true;
                    }
                }
            }

            // First item is "Original".  Options appear if another resize mode is chosen.
            m_ShowResizeModeOptions.target = resizeMode != VideoResizeMode.OriginalSize;
            if (EditorGUILayout.BeginFadeGroup(m_ShowResizeModeOptions.faded))
            {
                EditorGUI.indentLevel++;

                if (resizeMode == VideoResizeMode.CustomSize)
                {
                    EditorGUI.showMixedValue = multiState.mixedCustomWidth;
                    EditorGUI.BeginChangeCheck();
                    int customWidth = EditorGUILayout.IntField(s_Styles.widthContent, multiState.firstCustomWidth);
                    customWidth = Mathf.Clamp(customWidth, kMinCustomWidth, kMaxCustomWidth);
                    EditorGUI.showMixedValue = false;
                    if (EditorGUI.EndChangeCheck())
                    {
                        for (int i = 0; i < m_TargetSettings.GetLength(0); i++)
                        {
                            if (m_TargetSettings[i, platformIndex].settings != null)
                            {
                                m_TargetSettings[i, platformIndex].settings.customWidth = customWidth;
                                m_ModifiedTargetSettings = true;
                            }
                        }
                    }

                    EditorGUI.showMixedValue = multiState.mixedCustomHeight;
                    EditorGUI.BeginChangeCheck();
                    int customHeight = EditorGUILayout.IntField(s_Styles.heightContent, multiState.firstCustomHeight);
                    customHeight             = Mathf.Clamp(customHeight, kMinCustomHeight, kMaxCustomHeight);
                    EditorGUI.showMixedValue = false;
                    if (EditorGUI.EndChangeCheck())
                    {
                        for (int i = 0; i < m_TargetSettings.GetLength(0); i++)
                        {
                            if (m_TargetSettings[i, platformIndex].settings != null)
                            {
                                m_TargetSettings[i, platformIndex].settings.customHeight = customHeight;
                                m_ModifiedTargetSettings = true;
                            }
                        }
                    }
                }

                EditorGUI.showMixedValue = multiState.mixedAspectRatio;
                EditorGUI.BeginChangeCheck();
                VideoEncodeAspectRatio aspectRatio = (VideoEncodeAspectRatio)EditorGUILayout.EnumPopup(s_Styles.aspectRatioContent, multiState.firstAspectRatio);
                EditorGUI.showMixedValue = false;
                if (EditorGUI.EndChangeCheck())
                {
                    for (int i = 0; i < m_TargetSettings.GetLength(0); i++)
                    {
                        if (m_TargetSettings[i, platformIndex].settings != null)
                        {
                            m_TargetSettings[i, platformIndex].settings.aspectRatio = aspectRatio;
                            m_ModifiedTargetSettings = true;
                        }
                    }
                }

                EditorGUI.indentLevel--;
            }

            EditorGUILayout.EndFadeGroup();
        }
Пример #10
0
        public override void OnPreviewGUI(Rect r, GUIStyle background)
        {
            var isRepainting = Event.current.type == EventType.Repaint;

            if (isRepainting)
            {
                background.Draw(r, false, false, false, false);
            }

            VideoClipImporter importer = (VideoClipImporter)target;

            if (m_IsPlaying && !importer.isPlayingPreview)
            {
                importer.PlayPreview();
            }
            else if (!m_IsPlaying && importer.isPlayingPreview)
            {
                importer.StopPreview();
            }

            Texture image = importer.GetPreviewTexture();

            if (!image || image.width == 0 || image.height == 0)
            {
                return;
            }

            // Compensate spatial quality zooming, if any.
            float previewWidth  = image.width;
            float previewHeight = image.height;

            if (importer.defaultTargetSettings.enableTranscoding)
            {
                VideoResizeMode resizeMode = importer.defaultTargetSettings.resizeMode;
                previewWidth  = importer.GetResizeWidth(resizeMode);
                previewHeight = importer.GetResizeHeight(resizeMode);
            }

            if (importer.pixelAspectRatioDenominator > 0)
            {
                previewWidth *= (float)importer.pixelAspectRatioNumerator /
                                (float)importer.pixelAspectRatioDenominator;
            }

            float zoomLevel = 1.0f;

            if ((r.width / previewWidth * previewHeight) > r.height)
            {
                zoomLevel = r.height / previewHeight;
            }
            else
            {
                zoomLevel = r.width / previewWidth;
            }

            zoomLevel = Mathf.Clamp01(zoomLevel);

            Rect wantedRect = new Rect(r.x, r.y, previewWidth * zoomLevel, previewHeight * zoomLevel);

            PreviewGUI.BeginScrollView(
                r, m_Position, wantedRect, "PreHorizontalScrollbar", "PreHorizontalScrollbarThumb");

            EditorGUI.DrawTextureTransparent(wantedRect, image, ScaleMode.StretchToFill);

            m_Position = PreviewGUI.EndScrollView();

            if (m_IsPlaying && isRepainting)
            {
                GUIView.current.Repaint();
            }
        }
        private void FrameSettingsGUI(int platformIndex, VideoClipImporterInspector.MultiTargetSettingState multiState)
        {
            EditorGUI.showMixedValue = multiState.mixedResizeMode;
            EditorGUI.BeginChangeCheck();
            VideoResizeMode videoResizeMode = (VideoResizeMode)EditorGUILayout.Popup(VideoClipImporterInspector.s_Styles.dimensionsContent, (int)multiState.firstResizeMode, this.GetResizeModeList().ToArray(), new GUILayoutOption[0]);

            EditorGUI.showMixedValue = false;
            if (EditorGUI.EndChangeCheck())
            {
                for (int i = 0; i < this.m_TargetSettings.GetLength(0); i++)
                {
                    if (this.m_TargetSettings[i, platformIndex].settings != null)
                    {
                        this.m_TargetSettings[i, platformIndex].settings.resizeMode = videoResizeMode;
                        this.m_ModifiedTargetSettings = true;
                    }
                }
            }
            this.m_ShowResizeModeOptions.target = (videoResizeMode != VideoResizeMode.OriginalSize);
            if (EditorGUILayout.BeginFadeGroup(this.m_ShowResizeModeOptions.faded))
            {
                EditorGUI.indentLevel++;
                if (videoResizeMode == VideoResizeMode.CustomSize)
                {
                    EditorGUI.showMixedValue = multiState.mixedCustomWidth;
                    EditorGUI.BeginChangeCheck();
                    int num = EditorGUILayout.IntField(VideoClipImporterInspector.s_Styles.widthContent, multiState.firstCustomWidth, new GUILayoutOption[0]);
                    num = Mathf.Clamp(num, 1, 16384);
                    EditorGUI.showMixedValue = false;
                    if (EditorGUI.EndChangeCheck())
                    {
                        for (int j = 0; j < this.m_TargetSettings.GetLength(0); j++)
                        {
                            if (this.m_TargetSettings[j, platformIndex].settings != null)
                            {
                                this.m_TargetSettings[j, platformIndex].settings.customWidth = num;
                                this.m_ModifiedTargetSettings = true;
                            }
                        }
                    }
                    EditorGUI.showMixedValue = multiState.mixedCustomHeight;
                    EditorGUI.BeginChangeCheck();
                    int num2 = EditorGUILayout.IntField(VideoClipImporterInspector.s_Styles.heightContent, multiState.firstCustomHeight, new GUILayoutOption[0]);
                    num2 = Mathf.Clamp(num2, 1, 16384);
                    EditorGUI.showMixedValue = false;
                    if (EditorGUI.EndChangeCheck())
                    {
                        for (int k = 0; k < this.m_TargetSettings.GetLength(0); k++)
                        {
                            if (this.m_TargetSettings[k, platformIndex].settings != null)
                            {
                                this.m_TargetSettings[k, platformIndex].settings.customHeight = num2;
                                this.m_ModifiedTargetSettings = true;
                            }
                        }
                    }
                }
                EditorGUI.showMixedValue = multiState.mixedAspectRatio;
                EditorGUI.BeginChangeCheck();
                VideoEncodeAspectRatio aspectRatio = (VideoEncodeAspectRatio)EditorGUILayout.EnumPopup(VideoClipImporterInspector.s_Styles.aspectRatioContent, multiState.firstAspectRatio, new GUILayoutOption[0]);
                EditorGUI.showMixedValue = false;
                if (EditorGUI.EndChangeCheck())
                {
                    for (int l = 0; l < this.m_TargetSettings.GetLength(0); l++)
                    {
                        if (this.m_TargetSettings[l, platformIndex].settings != null)
                        {
                            this.m_TargetSettings[l, platformIndex].settings.aspectRatio = aspectRatio;
                            this.m_ModifiedTargetSettings = true;
                        }
                    }
                }
                EditorGUI.indentLevel--;
            }
            EditorGUILayout.EndFadeGroup();
        }