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; }
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(); } }
public extern int GetResizeHeight(VideoResizeMode mode);
public extern int GetResizeWidth(VideoResizeMode mode);
public extern string GetResizeModeName(VideoResizeMode mode);
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(); }
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(); }