public void Set(GameViewSize other) { this.sizeType = other.sizeType; this.width = other.width; this.height = other.height; this.baseText = other.baseText; this.Changed(); }
public string GetName(int index) { GameViewSize gameViewSize = this.m_GameViewSizeGroup.GetGameViewSize(index); string result; if (gameViewSize != null) { result = gameViewSize.displayText; } else { result = ""; } return(result); }
public int IndexOf(GameViewSize view) { int num = this.m_Builtin.IndexOf(view); int result; if (num >= 0) { result = num; } else { result = this.m_Custom.IndexOf(view); } return(result); }
private static GameViewSize CastToGameViewSize(object obj) { GameViewSize gameViewSize = obj as GameViewSize; GameViewSize result; if (obj == null) { Debug.LogError("Incorrect input"); result = null; } else { result = gameViewSize; } return(result); }
public int Add(object obj) { GameViewSize gameViewSize = GameViewSizesMenuItemProvider.CastToGameViewSize(obj); int result; if (gameViewSize == null) { result = -1; } else { this.m_GameViewSizeGroup.AddCustomSize(gameViewSize); ScriptableSingleton <GameViewSizes> .instance.SaveToHDD(); result = this.Count() - 1; } return(result); }
public void Replace(int index, object obj) { GameViewSize other = CastToGameViewSize(obj); if (other != null) { if (index < this.m_GameViewSizeGroup.GetBuiltinCount()) { Debug.LogError("Only custom game view sizes can be changed"); } else { GameViewSize gameViewSize = this.m_GameViewSizeGroup.GetGameViewSize(index); if (gameViewSize != null) { gameViewSize.Set(other); ScriptableSingleton <GameViewSizes> .instance.SaveToHDD(); } } } }
public void Replace(int index, object obj) { GameViewSize gameViewSize = GameViewSizesMenuItemProvider.CastToGameViewSize(obj); if (gameViewSize == null) { return; } if (index < this.m_GameViewSizeGroup.GetBuiltinCount()) { Debug.LogError("Only custom game view sizes can be changed"); return; } GameViewSize gameViewSize2 = this.m_GameViewSizeGroup.GetGameViewSize(index); if (gameViewSize2 != null) { gameViewSize2.Set(gameViewSize); ScriptableSingleton <GameViewSizes> .instance.SaveToHDD(); } }
public string[] GetDisplayTexts() { List <string> stringList = new List <string>(); using (List <GameViewSize> .Enumerator enumerator = this.m_Builtin.GetEnumerator()) { while (enumerator.MoveNext()) { GameViewSize current = enumerator.Current; stringList.Add(current.displayText); } } using (List <GameViewSize> .Enumerator enumerator = this.m_Custom.GetEnumerator()) { while (enumerator.MoveNext()) { GameViewSize current = enumerator.Current; stringList.Add(current.displayText); } } return(stringList.ToArray()); }
public void Replace(int index, object obj) { GameViewSize newResolution = CastToGameViewSize(obj); if (newResolution == null) { return; } if (index < m_GameViewSizeGroup.GetBuiltinCount()) { Debug.LogError("Only custom game view sizes can be changed"); return; } GameViewSize gameViewSize = m_GameViewSizeGroup.GetGameViewSize(index); if (gameViewSize != null) { gameViewSize.Set(newResolution); GameViewSizes.instance.SaveToHDD(); } }
public static Rect GetConstrainedRect(Rect startRect, GameViewSizeGroupType groupType, int gameViewSizeIndex, out bool fitsInsideRect) { fitsInsideRect = true; Rect constrainedRect = startRect; GameViewSize gameViewSize = GameViewSizes.instance.GetGroup(groupType).GetGameViewSize(gameViewSizeIndex); RefreshDerivedGameViewSize(groupType, gameViewSizeIndex, gameViewSize); if (gameViewSize.isFreeAspectRatio) { return(startRect); } float newRatio = 0; bool useRatio; switch (gameViewSize.sizeType) { case GameViewSizeType.AspectRatio: { newRatio = gameViewSize.aspectRatio; useRatio = true; } break; case GameViewSizeType.FixedResolution: { if (gameViewSize.height > startRect.height || gameViewSize.width > startRect.width) { newRatio = gameViewSize.aspectRatio; useRatio = true; fitsInsideRect = false; } else { constrainedRect.height = gameViewSize.height; constrainedRect.width = gameViewSize.width; useRatio = false; } } break; default: throw new ArgumentException("Unrecognized size type"); } if (useRatio) { constrainedRect.height = (constrainedRect.width / newRatio) > startRect.height ? (startRect.height) : (constrainedRect.width / newRatio); constrainedRect.width = (constrainedRect.height * newRatio); } // clamp constrainedRect.height = Mathf.Clamp(constrainedRect.height, 0f, startRect.height); constrainedRect.width = Mathf.Clamp(constrainedRect.width, 0f, startRect.width); // center constrainedRect.y = (startRect.height * 0.5f - constrainedRect.height * 0.5f) + startRect.y; constrainedRect.x = (startRect.width * 0.5f - constrainedRect.width * 0.5f) + startRect.x; // Round to whole pixels - actually is important for correct rendering of game view! constrainedRect.width = Mathf.Floor(constrainedRect.width + 0.5f); constrainedRect.height = Mathf.Floor(constrainedRect.height + 0.5f); constrainedRect.x = Mathf.Floor(constrainedRect.x + 0.5f); constrainedRect.y = Mathf.Floor(constrainedRect.y + 0.5f); return(constrainedRect); }
public void AddCustomSize(GameViewSize size) { this.m_Custom.Add(size); ScriptableSingleton<GameViewSizes>.instance.Changed(); }
public int IndexOf(GameViewSize view) { int num = this.m_Builtin.IndexOf(view); if (num >= 0) return num; return this.m_Custom.IndexOf(view); }
public override void OnClose() { this.m_GameViewSize = null; base.OnClose(); }
private static void RefreshDerivedGameViewSize(GameViewSizeGroupType groupType, int gameViewSizeIndex, GameViewSize gameViewSize) { if (ScriptableSingleton <GameViewSizes> .instance.IsDefaultStandaloneScreenSize(groupType, gameViewSizeIndex)) { gameViewSize.width = (int)InternalEditorUtility.defaultScreenWidth; gameViewSize.height = (int)InternalEditorUtility.defaultScreenHeight; } else if (ScriptableSingleton <GameViewSizes> .instance.IsRemoteScreenSize(groupType, gameViewSizeIndex)) { int num; int num2; if (XRSettings.isDeviceActive) { num = XRSettings.eyeTextureWidth; num2 = XRSettings.eyeTextureHeight; } else { num = (int)InternalEditorUtility.remoteScreenWidth; num2 = (int)InternalEditorUtility.remoteScreenHeight; } if (num > 0 && num2 > 0) { gameViewSize.sizeType = GameViewSizeType.FixedResolution; gameViewSize.width = num; gameViewSize.height = num2; } else { gameViewSize.sizeType = GameViewSizeType.AspectRatio; int num3 = 0; gameViewSize.height = num3; gameViewSize.width = num3; } } }
public GameViewSize(GameViewSize other) { this.Set(other); }
private void InitBuiltinGroups() { bool isInitialized = m_Standalone.GetBuiltinCount() > 0; if (isInitialized) { return; } m_Remote = new GameViewSize(GameViewSizeType.FixedResolution, 0, 0, "Remote (Not Connected)"); // Shared GameViewSize kFree = new GameViewSize(GameViewSizeType.AspectRatio, 0, 0, "Free Aspect"); GameViewSize k5_4 = new GameViewSize(GameViewSizeType.AspectRatio, 5, 4, ""); GameViewSize k4_3 = new GameViewSize(GameViewSizeType.AspectRatio, 4, 3, ""); GameViewSize k3_2 = new GameViewSize(GameViewSizeType.AspectRatio, 3, 2, ""); GameViewSize k16_10 = new GameViewSize(GameViewSizeType.AspectRatio, 16, 10, ""); GameViewSize k16_9 = new GameViewSize(GameViewSizeType.AspectRatio, 16, 9, ""); GameViewSize kStandalone = new GameViewSize(GameViewSizeType.FixedResolution, 0, 0, "Standalone"); // iOS GameViewSize k_iPhoneTall = new GameViewSize(GameViewSizeType.FixedResolution, 320, 480, "iPhone Tall"); GameViewSize k_iPhoneWide = new GameViewSize(GameViewSizeType.FixedResolution, 480, 320, "iPhone Wide"); GameViewSize k_iPhone4GTall = new GameViewSize(GameViewSizeType.FixedResolution, 640, 960, "iPhone 4 Tall"); GameViewSize k_iPhone4GWide = new GameViewSize(GameViewSizeType.FixedResolution, 960, 640, "iPhone 4 Wide"); GameViewSize k_iPadTall = new GameViewSize(GameViewSizeType.FixedResolution, 768, 1024, "iPad Tall"); GameViewSize k_iPadWide = new GameViewSize(GameViewSizeType.FixedResolution, 1024, 768, "iPad Wide"); GameViewSize k_iPhone5Tall = new GameViewSize(GameViewSizeType.AspectRatio, 9, 16, "iPhone 5 Tall"); GameViewSize k_iPhone5Wide = new GameViewSize(GameViewSizeType.AspectRatio, 16, 9, "iPhone 5 Wide"); GameViewSize k_iPhoneTall2_3 = new GameViewSize(GameViewSizeType.AspectRatio, 2, 3, "iPhone Tall"); GameViewSize k_iPhoneWide3_2 = new GameViewSize(GameViewSizeType.AspectRatio, 3, 2, "iPhone Wide"); GameViewSize k_iPadTall3_4 = new GameViewSize(GameViewSizeType.AspectRatio, 3, 4, "iPad Tall"); GameViewSize k_iPadWide4_3 = new GameViewSize(GameViewSizeType.AspectRatio, 4, 3, "iPad Wide"); // Android GameViewSize k_HVGA_Portrait = new GameViewSize(GameViewSizeType.FixedResolution, 320, 480, "HVGA Portrait"); GameViewSize k_HVGA_Landscape = new GameViewSize(GameViewSizeType.FixedResolution, 480, 320, "HVGA Landscape"); GameViewSize k_WVGA_Portrait = new GameViewSize(GameViewSizeType.FixedResolution, 480, 800, "WVGA Portrait"); GameViewSize k_WVGA_Landscape = new GameViewSize(GameViewSizeType.FixedResolution, 800, 480, "WVGA Landscape"); GameViewSize k_FWVGA_Portrait = new GameViewSize(GameViewSizeType.FixedResolution, 480, 854, "FWVGA Portrait"); GameViewSize k_FWVGA_Landscape = new GameViewSize(GameViewSizeType.FixedResolution, 854, 480, "FWVGA Landscape"); GameViewSize k_WSVGA_Portrait = new GameViewSize(GameViewSizeType.FixedResolution, 600, 1024, "WSVGA Portrait"); GameViewSize k_WSVGA_Landscape = new GameViewSize(GameViewSizeType.FixedResolution, 1024, 600, "WSVGA Landscape"); GameViewSize k_WXGA_Portrait = new GameViewSize(GameViewSizeType.FixedResolution, 800, 1280, "WXGA Portrait"); GameViewSize k_WXGA_Landscape = new GameViewSize(GameViewSizeType.FixedResolution, 1280, 800, "WXGA Landscape"); GameViewSize k_3_2_Portrait = new GameViewSize(GameViewSizeType.AspectRatio, 2, 3, "3:2 Portrait"); GameViewSize k_3_2_Landscape = new GameViewSize(GameViewSizeType.AspectRatio, 3, 2, "3:2 Landscape"); GameViewSize k_16_10_Portrait = new GameViewSize(GameViewSizeType.AspectRatio, 10, 16, "16:10 Portrait"); GameViewSize k_16_10_Landscape = new GameViewSize(GameViewSizeType.AspectRatio, 16, 10, "16:10 Landscape"); // Nintendo 3DS GameViewSize kN3DSTopScreen = new GameViewSize(GameViewSizeType.FixedResolution, 400, 240, "Top Screen"); GameViewSize kN3DSBottomScreen = new GameViewSize(GameViewSizeType.FixedResolution, 320, 240, "Bottom Screen"); m_Standalone.AddBuiltinSizes(kFree, k5_4, k4_3, k3_2, k16_10, k16_9, kStandalone); m_iOS.AddBuiltinSizes(kFree, k_iPhoneTall, k_iPhoneWide, k_iPhone4GTall, k_iPhone4GWide, k_iPadTall, k_iPadWide, k_iPhone5Tall, k_iPhone5Wide, k_iPhoneTall2_3, k_iPhoneWide3_2, k_iPadTall3_4, k_iPadWide4_3); m_Android.AddBuiltinSizes(kFree, m_Remote, k_HVGA_Portrait, k_HVGA_Landscape, k_WVGA_Portrait, k_WVGA_Landscape, k_FWVGA_Portrait, k_FWVGA_Landscape, k_WSVGA_Portrait, k_WSVGA_Landscape, k_WXGA_Portrait, k_WXGA_Landscape, k_3_2_Portrait, k_3_2_Landscape, k_16_10_Portrait, k_16_10_Landscape); m_N3DS.AddBuiltinSizes(kFree, kN3DSTopScreen, kN3DSBottomScreen); m_HMD.AddBuiltinSizes(kFree, m_Remote); }
public override void OnGUI(Rect rect) { if (GameViewSizesMenuModifyItemUI.s_Styles == null) GameViewSizesMenuModifyItemUI.s_Styles = new GameViewSizesMenuModifyItemUI.Styles(); GameViewSize other = this.m_Object as GameViewSize; if (other == null) { Debug.LogError((object) "Invalid object"); } else { if (this.m_GameViewSize == null) this.m_GameViewSize = new GameViewSize(other); bool flag = this.m_GameViewSize.width > 0 && this.m_GameViewSize.height > 0; GUILayout.Space(3f); GUILayout.Label(this.m_MenuType != FlexibleMenuModifyItemUI.MenuType.Add ? GameViewSizesMenuModifyItemUI.s_Styles.headerEdit : GameViewSizesMenuModifyItemUI.s_Styles.headerAdd, EditorStyles.boldLabel, new GUILayoutOption[0]); FlexibleMenu.DrawRect(GUILayoutUtility.GetRect(1f, 1f), !EditorGUIUtility.isProSkin ? new Color(0.6f, 0.6f, 0.6f, 1.333f) : new Color(0.32f, 0.32f, 0.32f, 1.333f)); GUILayout.Space(4f); GUILayout.BeginHorizontal(); GUILayout.Label(GameViewSizesMenuModifyItemUI.s_Styles.optionalText, new GUILayoutOption[1] { GUILayout.Width(90f) }); GUILayout.Space(10f); this.m_GameViewSize.baseText = EditorGUILayout.TextField(this.m_GameViewSize.baseText); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label(GameViewSizesMenuModifyItemUI.s_Styles.typeName, new GUILayoutOption[1] { GUILayout.Width(90f) }); GUILayout.Space(10f); this.m_GameViewSize.sizeType = (GameViewSizeType) EditorGUILayout.Popup((int) this.m_GameViewSize.sizeType, GameViewSizesMenuModifyItemUI.s_Styles.typeNames); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label(GameViewSizesMenuModifyItemUI.s_Styles.widthHeightText, new GUILayoutOption[1] { GUILayout.Width(90f) }); GUILayout.Space(10f); this.m_GameViewSize.width = EditorGUILayout.IntField(this.m_GameViewSize.width); GUILayout.Space(5f); this.m_GameViewSize.height = EditorGUILayout.IntField(this.m_GameViewSize.height); GUILayout.EndHorizontal(); GUILayout.Space(10f); float pixels = 10f; float cropWidth = rect.width - 2f * pixels; GUILayout.BeginHorizontal(); GUILayout.Space(pixels); GUILayout.FlexibleSpace(); string displayText = this.m_GameViewSize.displayText; EditorGUI.BeginDisabledGroup(string.IsNullOrEmpty(displayText)); GUILayout.Label(GUIContent.Temp(!string.IsNullOrEmpty(displayText) ? this.GetCroppedText(displayText, cropWidth, EditorStyles.label) : "Result"), EditorStyles.label, new GUILayoutOption[0]); EditorGUI.EndDisabledGroup(); GUILayout.FlexibleSpace(); GUILayout.Space(pixels); GUILayout.EndHorizontal(); GUILayout.Space(5f); GUILayout.BeginHorizontal(); GUILayout.Space(10f); if (GUILayout.Button(GameViewSizesMenuModifyItemUI.s_Styles.cancel)) this.editorWindow.Close(); EditorGUI.BeginDisabledGroup(!flag); if (GUILayout.Button(GameViewSizesMenuModifyItemUI.s_Styles.ok)) { other.Set(this.m_GameViewSize); this.Accepted(); this.editorWindow.Close(); } EditorGUI.EndDisabledGroup(); GUILayout.Space(10f); GUILayout.EndHorizontal(); } }
public static Vector2 GetRenderTargetSize(Rect startRect, GameViewSizeGroupType groupType, int gameViewSizeIndex, out bool clamped) { Vector2 size; float num2; GameViewSize gameViewSize = ScriptableSingleton <GameViewSizes> .instance.GetGroup(groupType).GetGameViewSize(gameViewSizeIndex); RefreshDerivedGameViewSize(groupType, gameViewSizeIndex, gameViewSize); clamped = false; if (gameViewSize.isFreeAspectRatio) { size = startRect.size; } else { GameViewSizeType sizeType = gameViewSize.sizeType; if (sizeType != GameViewSizeType.AspectRatio) { if (sizeType != GameViewSizeType.FixedResolution) { throw new ArgumentException("Unrecognized size type"); } } else { if ((startRect.height == 0f) || (gameViewSize.aspectRatio == 0f)) { size = Vector2.zero; } else { float num = startRect.width / startRect.height; if (num < gameViewSize.aspectRatio) { size = new Vector2(startRect.width, startRect.width / gameViewSize.aspectRatio); } else { size = new Vector2(startRect.height * gameViewSize.aspectRatio, startRect.height); } } goto Label_010B; } size = new Vector2((float)gameViewSize.width, (float)gameViewSize.height); } Label_010B: num2 = (((SystemInfo.graphicsMemorySize * 0.2f) / 12f) * 1024f) * 1024f; float num3 = size.x * size.y; if (num3 > num2) { size = (Vector2)(size * (num2 / num3)); clamped = true; } float b = 8192f; float num5 = Mathf.Min((float)SystemInfo.maxRenderTextureSize, b); if ((size.x > num5) || (size.y > num5)) { if (size.x > size.y) { size = (Vector2)(size * (num5 / size.x)); } else { size = (Vector2)(size * (num5 / size.y)); } clamped = true; } return(size); }
override public void OnGUI(Rect rect) { if (s_Styles == null) { s_Styles = new Styles(); } GameViewSize gameViewSizeState = m_Object as GameViewSize; if (gameViewSizeState == null) { Debug.LogError("Invalid object"); return; } // We use a local gameviewsize to ensure we do not edit the original state (if user presses cancel state is not changed) if (m_GameViewSize == null) { m_GameViewSize = new GameViewSize(gameViewSizeState); } bool validSettings = m_GameViewSize.width > 0 && m_GameViewSize.height > 0; const float kColumnWidth = 90f; const float kSpacing = 10f; GUILayout.Space(3); GUILayout.Label(m_MenuType == MenuType.Add ? s_Styles.headerAdd : s_Styles.headerEdit, EditorStyles.boldLabel); Rect seperatorRect = GUILayoutUtility.GetRect(1, 1); FlexibleMenu.DrawRect(seperatorRect, (EditorGUIUtility.isProSkin) ? new Color(0.32f, 0.32f, 0.32f, 1.333f) : new Color(0.6f, 0.6f, 0.6f, 1.333f)); // dark : light GUILayout.Space(4); // Optional text GUILayout.BeginHorizontal(); GUILayout.Label(s_Styles.optionalText, GUILayout.Width(kColumnWidth)); GUILayout.Space(kSpacing); m_GameViewSize.baseText = EditorGUILayout.TextField(m_GameViewSize.baseText); GUILayout.EndHorizontal(); // Drop list (aspect / fixed res) GUILayout.BeginHorizontal(); GUILayout.Label(s_Styles.typeName, GUILayout.Width(kColumnWidth)); GUILayout.Space(kSpacing); m_GameViewSize.sizeType = (GameViewSizeType)EditorGUILayout.Popup((int)m_GameViewSize.sizeType, s_Styles.typeNames); GUILayout.EndHorizontal(); // Width Height GUILayout.BeginHorizontal(); GUILayout.Label(s_Styles.widthHeightText, GUILayout.Width(kColumnWidth)); GUILayout.Space(kSpacing); m_GameViewSize.width = EditorGUILayout.IntField(m_GameViewSize.width); GUILayout.Space(5); m_GameViewSize.height = EditorGUILayout.IntField(m_GameViewSize.height); GUILayout.EndHorizontal(); GUILayout.Space(10f); // Displayed text float margin = 10f; float cropWidth = rect.width - 2 * margin; GUILayout.BeginHorizontal(); GUILayout.Space(margin); GUILayout.FlexibleSpace(); string displayText = m_GameViewSize.displayText; using (new EditorGUI.DisabledScope(string.IsNullOrEmpty(displayText))) { if (string.IsNullOrEmpty(displayText)) { displayText = "Result"; } else { displayText = GetCroppedText(displayText, cropWidth, EditorStyles.label); } GUILayout.Label(GUIContent.Temp(displayText), EditorStyles.label); } GUILayout.FlexibleSpace(); GUILayout.Space(margin); GUILayout.EndHorizontal(); GUILayout.Space(5f); // Cancel, Ok GUILayout.BeginHorizontal(); GUILayout.Space(10); if (GUILayout.Button(s_Styles.cancel)) { editorWindow.Close(); } using (new EditorGUI.DisabledScope(!validSettings)) { if (GUILayout.Button(s_Styles.ok)) { gameViewSizeState.Set(m_GameViewSize); Accepted(); editorWindow.Close(); } } GUILayout.Space(10); GUILayout.EndHorizontal(); }
private void InitBuiltinGroups() { bool isInitialized = m_Standalone.GetBuiltinCount() > 0; if (isInitialized) { return; } m_Remote = new GameViewSize(GameViewSizeType.FixedResolution, 0, 0, "Remote (Not Connected)"); // Standalone GameViewSize kFree = new GameViewSize(GameViewSizeType.AspectRatio, 0, 0, "Free Aspect"); GameViewSize k16_10 = new GameViewSize(GameViewSizeType.AspectRatio, 16, 10, ""); GameViewSize k16_9 = new GameViewSize(GameViewSizeType.AspectRatio, 16, 9, ""); GameViewSize k_PC_1920x1080 = new GameViewSize(GameViewSizeType.FixedResolution, 1920, 1080, "Full HD"); GameViewSize k_PC_1366x768 = new GameViewSize(GameViewSizeType.FixedResolution, 1366, 768, "WXGA"); GameViewSize k_PC_2560x1440 = new GameViewSize(GameViewSizeType.FixedResolution, 2560, 1440, "QHD"); GameViewSize k_PC_3840x2160 = new GameViewSize(GameViewSizeType.FixedResolution, 3840, 2160, "4K UHD"); // all mobiles GameViewSize k_4_3_Portrait = new GameViewSize(GameViewSizeType.AspectRatio, 3, 4, "4:3 Portrait"); GameViewSize k_4_3_Landscape = new GameViewSize(GameViewSizeType.AspectRatio, 4, 3, "4:3 Landscape"); GameViewSize k_16_9_Portrait = new GameViewSize(GameViewSizeType.AspectRatio, 9, 16, "16:9 Portrait"); GameViewSize k_16_9_Landscape = new GameViewSize(GameViewSizeType.AspectRatio, 16, 9, "16:9 Landscape"); GameViewSize k_18_9_Portrait = new GameViewSize(GameViewSizeType.AspectRatio, 9, 18, "18:9 Portrait"); GameViewSize k_18_9_Landscape = new GameViewSize(GameViewSizeType.AspectRatio, 18, 9, "18:9 Landscape"); GameViewSize k_1080p_Portrait = new GameViewSize(GameViewSizeType.FixedResolution, 1080, 1920, "1920x1080 Portrait"); GameViewSize k_1080p_Landscape = new GameViewSize(GameViewSizeType.FixedResolution, 1920, 1080, "1920x1080 Landscape"); GameViewSize k_720p_Portrait = new GameViewSize(GameViewSizeType.FixedResolution, 720, 1280, "1280x720 Portrait"); GameViewSize k_720p_Landscape = new GameViewSize(GameViewSizeType.FixedResolution, 1280, 720, "1280x720 Landscape"); // iOS GameViewSize k_iPhone_750p_Portrait = new GameViewSize(GameViewSizeType.FixedResolution, 750, 1334, "iPhone 1334x750 Portrait"); GameViewSize k_iPhone_750p_Landscape = new GameViewSize(GameViewSizeType.FixedResolution, 1334, 750, "iPhone 1334x750 Landscape"); GameViewSize k_iPhone_X_Portrait = new GameViewSize(GameViewSizeType.FixedResolution, 1125, 2436, "iPhone X/XS 2436x1125 Portrait"); GameViewSize k_iPhone_X_Landscape = new GameViewSize(GameViewSizeType.FixedResolution, 2436, 1125, "iPhone X/XS 2436x1125 Landscape"); GameViewSize k_iPhone_828p_Portrait = new GameViewSize(GameViewSizeType.FixedResolution, 828, 1792, "iPhone XR 1792x828 Portrait"); GameViewSize k_iPhone_828p_Landscape = new GameViewSize(GameViewSizeType.FixedResolution, 1792, 828, "iPhone XR 1792x828 Landscape"); GameViewSize k_iPhone_1242p_Portrait = new GameViewSize(GameViewSizeType.FixedResolution, 1242, 2688, "iPhone XS Max 2688x1242 Portrait"); GameViewSize k_iPhone_1242p_Landscape = new GameViewSize(GameViewSizeType.FixedResolution, 2688, 1242, "iPhone XS Max 2688x1242 Landscape"); GameViewSize k_iPad_1536p_Landscape = new GameViewSize(GameViewSizeType.FixedResolution, 2048, 1536, "iPad 2048x1536 Landscape"); GameViewSize k_iPad_1536p_Portrait = new GameViewSize(GameViewSizeType.FixedResolution, 1536, 2048, "iPad 2048x1536 Portrait"); GameViewSize k_iPad_2048p_Landscape = new GameViewSize(GameViewSizeType.FixedResolution, 2732, 2048, "iPadPro 2732x2048 Landscape"); GameViewSize k_iPad_2048p_Portrait = new GameViewSize(GameViewSizeType.FixedResolution, 2048, 2732, "iPadPro 2732x2048 Portrait"); GameViewSize k_iPad_1668p_Landscape = new GameViewSize(GameViewSizeType.FixedResolution, 2224, 1668, "iPadPro 2224x1668 Landscape"); GameViewSize k_iPad_1668p_Portrait = new GameViewSize(GameViewSizeType.FixedResolution, 1668, 2224, "iPadPro 2224x1668 Portrait"); GameViewSize k_iPhone4_Portrait = new GameViewSize(GameViewSizeType.FixedResolution, 640, 960, "iPhone 4/4S Portrait"); GameViewSize k_iPhone4_Landscape = new GameViewSize(GameViewSizeType.FixedResolution, 960, 640, "iPhone 4/4S Landscape"); GameViewSize k_iPhone5_Portrait = new GameViewSize(GameViewSizeType.FixedResolution, 640, 1136, "iPhone 5/5S/5C/SE Portrait"); GameViewSize k_iPhone5_Landscape = new GameViewSize(GameViewSizeType.FixedResolution, 1136, 640, "iPhone 5/5S/5C/SE Landscape"); GameViewSize k_iPad_768p_Landscape = new GameViewSize(GameViewSizeType.FixedResolution, 1024, 768, "iPad 2/Mini Landscape"); GameViewSize k_iPad_768p_Portrait = new GameViewSize(GameViewSizeType.FixedResolution, 768, 1024, "iPad 2/Mini Portrait"); // Android GameViewSize k_800x480_Portrait = new GameViewSize(GameViewSizeType.FixedResolution, 480, 800, "800x480 Portrait"); GameViewSize k_800x480_Landscape = new GameViewSize(GameViewSizeType.FixedResolution, 800, 480, "800x480 Landscape"); GameViewSize k_2160x1080_Portrait = new GameViewSize(GameViewSizeType.FixedResolution, 1080, 2160, "2160x1080 Portrait"); GameViewSize k_2160x1080_Landscape = new GameViewSize(GameViewSizeType.FixedResolution, 2160, 1080, "2160x1080 Landscape"); GameViewSize k_2560x1440_Portrait = new GameViewSize(GameViewSizeType.FixedResolution, 1440, 2560, "2560x1440 Portrait"); GameViewSize k_2560x1440_Landscape = new GameViewSize(GameViewSizeType.FixedResolution, 2560, 1440, "2560x1440 Landscape"); GameViewSize k_2960x1440_Portrait = new GameViewSize(GameViewSizeType.FixedResolution, 1440, 2960, "2960x1440 Portrait"); GameViewSize k_2960x1440_Landscape = new GameViewSize(GameViewSizeType.FixedResolution, 2960, 1440, "2960x1440 Landscape"); m_Standalone.AddBuiltinSizes(kFree, k16_9, k16_10, k_PC_1920x1080, k_PC_1366x768, k_PC_2560x1440, k_PC_3840x2160); m_iOS.AddBuiltinSizes(kFree, k_iPhone_750p_Portrait, k_iPhone_750p_Landscape, k_1080p_Portrait, k_1080p_Landscape, k_iPhone_X_Portrait, k_iPhone_X_Landscape, k_iPhone_828p_Portrait, k_iPhone_828p_Landscape, k_iPhone_1242p_Portrait, k_iPhone_1242p_Landscape, k_iPad_1536p_Landscape, k_iPad_1536p_Portrait, k_iPad_2048p_Landscape, k_iPad_2048p_Portrait, k_iPad_1668p_Landscape, k_iPad_1668p_Portrait, k_16_9_Landscape, k_16_9_Portrait, k_4_3_Landscape, k_4_3_Portrait, k_iPhone4_Portrait, k_iPhone4_Landscape, k_iPhone5_Portrait, k_iPhone5_Landscape, k_iPad_768p_Landscape, k_iPad_768p_Portrait, m_Remote); m_Android.AddBuiltinSizes(kFree, k_800x480_Portrait, k_800x480_Landscape, k_720p_Portrait, k_720p_Landscape, k_1080p_Portrait, k_1080p_Landscape, k_2160x1080_Portrait, k_2160x1080_Landscape, k_2560x1440_Portrait, k_2560x1440_Landscape, k_2960x1440_Portrait, k_2960x1440_Landscape, k_16_9_Portrait, k_16_9_Landscape, k_18_9_Portrait, k_18_9_Landscape, m_Remote); m_HMD.AddBuiltinSizes(kFree, m_Remote); }
public int IndexOf(GameViewSize view) { int index = this.m_Builtin.IndexOf(view); if (index >= 0) { return index; } return this.m_Custom.IndexOf(view); }
public override void OnGUI(Rect rect) { if (GameViewSizesMenuModifyItemUI.s_Styles == null) { GameViewSizesMenuModifyItemUI.s_Styles = new GameViewSizesMenuModifyItemUI.Styles(); } GameViewSize gameViewSize = this.m_Object as GameViewSize; if (gameViewSize == null) { Debug.LogError("Invalid object"); return; } if (this.m_GameViewSize == null) { this.m_GameViewSize = new GameViewSize(gameViewSize); } bool flag = this.m_GameViewSize.width > 0 && this.m_GameViewSize.height > 0; GUILayout.Space(3f); GUILayout.Label((this.m_MenuType != FlexibleMenuModifyItemUI.MenuType.Add) ? GameViewSizesMenuModifyItemUI.s_Styles.headerEdit : GameViewSizesMenuModifyItemUI.s_Styles.headerAdd, EditorStyles.boldLabel, new GUILayoutOption[0]); Rect rect2 = GUILayoutUtility.GetRect(1f, 1f); FlexibleMenu.DrawRect(rect2, (!EditorGUIUtility.isProSkin) ? new Color(0.6f, 0.6f, 0.6f, 1.333f) : new Color(0.32f, 0.32f, 0.32f, 1.333f)); GUILayout.Space(4f); GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUILayout.Label(GameViewSizesMenuModifyItemUI.s_Styles.optionalText, new GUILayoutOption[] { GUILayout.Width(90f) }); GUILayout.Space(10f); this.m_GameViewSize.baseText = EditorGUILayout.TextField(this.m_GameViewSize.baseText, new GUILayoutOption[0]); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUILayout.Label(GameViewSizesMenuModifyItemUI.s_Styles.typeName, new GUILayoutOption[] { GUILayout.Width(90f) }); GUILayout.Space(10f); this.m_GameViewSize.sizeType = (GameViewSizeType)EditorGUILayout.Popup((int)this.m_GameViewSize.sizeType, GameViewSizesMenuModifyItemUI.s_Styles.typeNames, new GUILayoutOption[0]); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUILayout.Label(GameViewSizesMenuModifyItemUI.s_Styles.widthHeightText, new GUILayoutOption[] { GUILayout.Width(90f) }); GUILayout.Space(10f); this.m_GameViewSize.width = EditorGUILayout.IntField(this.m_GameViewSize.width, new GUILayoutOption[0]); GUILayout.Space(5f); this.m_GameViewSize.height = EditorGUILayout.IntField(this.m_GameViewSize.height, new GUILayoutOption[0]); GUILayout.EndHorizontal(); GUILayout.Space(10f); float num = 10f; float cropWidth = rect.width - 2f * num; GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUILayout.Space(num); GUILayout.FlexibleSpace(); string text = this.m_GameViewSize.displayText; EditorGUI.BeginDisabledGroup(string.IsNullOrEmpty(text)); if (string.IsNullOrEmpty(text)) { text = "Result"; } else { text = this.GetCroppedText(text, cropWidth, EditorStyles.label); } GUILayout.Label(GUIContent.Temp(text), EditorStyles.label, new GUILayoutOption[0]); EditorGUI.EndDisabledGroup(); GUILayout.FlexibleSpace(); GUILayout.Space(num); GUILayout.EndHorizontal(); GUILayout.Space(5f); GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUILayout.Space(10f); if (GUILayout.Button(GameViewSizesMenuModifyItemUI.s_Styles.cancel, new GUILayoutOption[0])) { base.editorWindow.Close(); } EditorGUI.BeginDisabledGroup(!flag); if (GUILayout.Button(GameViewSizesMenuModifyItemUI.s_Styles.ok, new GUILayoutOption[0])) { gameViewSize.Set(this.m_GameViewSize); base.Accepted(); base.editorWindow.Close(); } EditorGUI.EndDisabledGroup(); GUILayout.Space(10f); GUILayout.EndHorizontal(); }
public static Vector2 GetRenderTargetSize(Rect startRect, GameViewSizeGroupType groupType, int gameViewSizeIndex, out bool clamped) { GameViewSize gameViewSize = GameViewSizes.instance.GetGroup(groupType).GetGameViewSize(gameViewSizeIndex); RefreshDerivedGameViewSize(groupType, gameViewSizeIndex, gameViewSize); Vector2 targetSize; clamped = false; // Free aspect takes up all available pixels by default if (gameViewSize.isFreeAspectRatio) { targetSize = startRect.size; } else { switch (gameViewSize.sizeType) { // Aspect ratio is enforced, but fills up as much game view as it can case GameViewSizeType.AspectRatio: { if (startRect.height == 0f || gameViewSize.aspectRatio == 0f) { targetSize = Vector2.zero; break; } var startRatio = startRect.width / startRect.height; if (startRatio < gameViewSize.aspectRatio) { targetSize = new Vector2(startRect.width, Mathf.Round(startRect.width / gameViewSize.aspectRatio)); } else { targetSize = new Vector2(Mathf.Round(startRect.height * gameViewSize.aspectRatio), startRect.height); } } break; // Fixed resolution is fixed, but scaled down to fit, or scaled up to largest possible integer case GameViewSizeType.FixedResolution: { targetSize = new Vector2(gameViewSize.width, gameViewSize.height); } break; default: throw new ArgumentException("Unrecognized size type"); } } // Prevent ludicrous render target sizes. Heuristics based on: // - GPU supported max. texture size // - "should be enough for anyone" (i.e. more than 8K resolution) // - Available VRAM // // The reason is that while GPUs support large textures (e.g. 16k x 16k), trying to // actually create one will just make you run out of memory. VRAM size estimate that we // have is also only very approximate. // Let's assume we can use 20% of VRAM for game view render target; // and that we need 12 bytes/pixel (4 for color, double buffered, 4 for depth). // Figure out what's the max texture area that fits there. var maxVRAMArea = SystemInfo.graphicsMemorySize * 0.20f / 12f * 1024f * 1024f; var targetArea = targetSize.x * targetSize.y; if (targetArea > maxVRAMArea) { var aspect = targetSize.y / targetSize.x; targetSize.x = Mathf.Sqrt(maxVRAMArea * aspect); targetSize.y = aspect * targetSize.x; clamped = true; } // Over 8K resolution (7680x4320) should be enough for anyone (tm) var maxResolutionSize = 8192f; var maxSize = Mathf.Min(SystemInfo.maxRenderTextureSize, maxResolutionSize); if (targetSize.x > maxSize || targetSize.y > maxSize) { if (targetSize.x > targetSize.y) { targetSize *= maxSize / targetSize.x; } else { targetSize *= maxSize / targetSize.y; } clamped = true; } return(targetSize); }
private static void RefreshDerivedGameViewSize(GameViewSizeGroupType groupType, int gameViewSizeIndex, GameViewSize gameViewSize) { if (ScriptableSingleton <GameViewSizes> .instance.IsDefaultStandaloneScreenSize(groupType, gameViewSizeIndex)) { gameViewSize.width = (int)InternalEditorUtility.defaultScreenWidth; gameViewSize.height = (int)InternalEditorUtility.defaultScreenHeight; } else if (ScriptableSingleton <GameViewSizes> .instance.IsDefaultWebPlayerScreenSize(groupType, gameViewSizeIndex)) { gameViewSize.width = (int)InternalEditorUtility.defaultWebScreenWidth; gameViewSize.height = (int)InternalEditorUtility.defaultWebScreenHeight; } else { if (!ScriptableSingleton <GameViewSizes> .instance.IsRemoteScreenSize(groupType, gameViewSizeIndex)) { return; } if ((double)InternalEditorUtility.remoteScreenWidth <= 0.0 || (double)InternalEditorUtility.remoteScreenHeight <= 0.0) { gameViewSize.sizeType = GameViewSizeType.AspectRatio; GameViewSize gameViewSize1 = gameViewSize; int num1 = 0; gameViewSize.height = num1; int num2 = num1; gameViewSize1.width = num2; } else { gameViewSize.sizeType = GameViewSizeType.FixedResolution; gameViewSize.width = (int)InternalEditorUtility.remoteScreenWidth; gameViewSize.height = (int)InternalEditorUtility.remoteScreenHeight; } } }
public override void OnGUI(Rect rect) { if (GameViewSizesMenuModifyItemUI.s_Styles == null) { GameViewSizesMenuModifyItemUI.s_Styles = new GameViewSizesMenuModifyItemUI.Styles(); } GameViewSize other = this.m_Object as GameViewSize; if (other == null) { Debug.LogError((object)"Invalid object"); } else { if (this.m_GameViewSize == null) { this.m_GameViewSize = new GameViewSize(other); } bool flag = this.m_GameViewSize.width > 0 && this.m_GameViewSize.height > 0; GUILayout.Space(3f); GUILayout.Label(this.m_MenuType != FlexibleMenuModifyItemUI.MenuType.Add ? GameViewSizesMenuModifyItemUI.s_Styles.headerEdit : GameViewSizesMenuModifyItemUI.s_Styles.headerAdd, EditorStyles.boldLabel, new GUILayoutOption[0]); FlexibleMenu.DrawRect(GUILayoutUtility.GetRect(1f, 1f), !EditorGUIUtility.isProSkin ? new Color(0.6f, 0.6f, 0.6f, 1.333f) : new Color(0.32f, 0.32f, 0.32f, 1.333f)); GUILayout.Space(4f); GUILayout.BeginHorizontal(); GUILayout.Label(GameViewSizesMenuModifyItemUI.s_Styles.optionalText, new GUILayoutOption[1] { GUILayout.Width(90f) }); GUILayout.Space(10f); this.m_GameViewSize.baseText = EditorGUILayout.TextField(this.m_GameViewSize.baseText); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label(GameViewSizesMenuModifyItemUI.s_Styles.typeName, new GUILayoutOption[1] { GUILayout.Width(90f) }); GUILayout.Space(10f); this.m_GameViewSize.sizeType = (GameViewSizeType)EditorGUILayout.Popup((int)this.m_GameViewSize.sizeType, GameViewSizesMenuModifyItemUI.s_Styles.typeNames); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label(GameViewSizesMenuModifyItemUI.s_Styles.widthHeightText, new GUILayoutOption[1] { GUILayout.Width(90f) }); GUILayout.Space(10f); this.m_GameViewSize.width = EditorGUILayout.IntField(this.m_GameViewSize.width); GUILayout.Space(5f); this.m_GameViewSize.height = EditorGUILayout.IntField(this.m_GameViewSize.height); GUILayout.EndHorizontal(); GUILayout.Space(10f); float pixels = 10f; float cropWidth = rect.width - 2f * pixels; GUILayout.BeginHorizontal(); GUILayout.Space(pixels); GUILayout.FlexibleSpace(); string displayText = this.m_GameViewSize.displayText; EditorGUI.BeginDisabledGroup(string.IsNullOrEmpty(displayText)); GUILayout.Label(GUIContent.Temp(!string.IsNullOrEmpty(displayText) ? this.GetCroppedText(displayText, cropWidth, EditorStyles.label) : "Result"), EditorStyles.label, new GUILayoutOption[0]); EditorGUI.EndDisabledGroup(); GUILayout.FlexibleSpace(); GUILayout.Space(pixels); GUILayout.EndHorizontal(); GUILayout.Space(5f); GUILayout.BeginHorizontal(); GUILayout.Space(10f); if (GUILayout.Button(GameViewSizesMenuModifyItemUI.s_Styles.cancel)) { this.editorWindow.Close(); } EditorGUI.BeginDisabledGroup(!flag); if (GUILayout.Button(GameViewSizesMenuModifyItemUI.s_Styles.ok)) { other.Set(this.m_GameViewSize); this.Accepted(); this.editorWindow.Close(); } EditorGUI.EndDisabledGroup(); GUILayout.Space(10f); GUILayout.EndHorizontal(); } }
public void AddCustomSize(GameViewSize size) { m_Custom.Add(size); GameViewSizes.instance.Changed(); }
public GameViewSize(GameViewSize other) { Set(other); }
private void InitBuiltinGroups() { bool flag = this.m_Standalone.GetBuiltinCount() > 0; if (!flag) { this.m_Remote = new GameViewSize(GameViewSizeType.FixedResolution, 0, 0, "Remote (Not Connected)"); GameViewSize gameViewSize = new GameViewSize(GameViewSizeType.AspectRatio, 0, 0, "Free Aspect"); GameViewSize gameViewSize2 = new GameViewSize(GameViewSizeType.AspectRatio, 5, 4, ""); GameViewSize gameViewSize3 = new GameViewSize(GameViewSizeType.AspectRatio, 4, 3, ""); GameViewSize gameViewSize4 = new GameViewSize(GameViewSizeType.AspectRatio, 3, 2, ""); GameViewSize gameViewSize5 = new GameViewSize(GameViewSizeType.AspectRatio, 16, 10, ""); GameViewSize gameViewSize6 = new GameViewSize(GameViewSizeType.AspectRatio, 16, 9, ""); GameViewSize gameViewSize7 = new GameViewSize(GameViewSizeType.FixedResolution, 0, 0, "Standalone"); GameViewSize gameViewSize8 = new GameViewSize(GameViewSizeType.FixedResolution, 320, 480, "iPhone Tall"); GameViewSize gameViewSize9 = new GameViewSize(GameViewSizeType.FixedResolution, 480, 320, "iPhone Wide"); GameViewSize gameViewSize10 = new GameViewSize(GameViewSizeType.FixedResolution, 640, 960, "iPhone 4 Tall"); GameViewSize gameViewSize11 = new GameViewSize(GameViewSizeType.FixedResolution, 960, 640, "iPhone 4 Wide"); GameViewSize gameViewSize12 = new GameViewSize(GameViewSizeType.FixedResolution, 768, 1024, "iPad Tall"); GameViewSize gameViewSize13 = new GameViewSize(GameViewSizeType.FixedResolution, 1024, 768, "iPad Wide"); GameViewSize gameViewSize14 = new GameViewSize(GameViewSizeType.AspectRatio, 9, 16, "iPhone 5 Tall"); GameViewSize gameViewSize15 = new GameViewSize(GameViewSizeType.AspectRatio, 16, 9, "iPhone 5 Wide"); GameViewSize gameViewSize16 = new GameViewSize(GameViewSizeType.AspectRatio, 2, 3, "iPhone Tall"); GameViewSize gameViewSize17 = new GameViewSize(GameViewSizeType.AspectRatio, 3, 2, "iPhone Wide"); GameViewSize gameViewSize18 = new GameViewSize(GameViewSizeType.AspectRatio, 3, 4, "iPad Tall"); GameViewSize gameViewSize19 = new GameViewSize(GameViewSizeType.AspectRatio, 4, 3, "iPad Wide"); GameViewSize gameViewSize20 = new GameViewSize(GameViewSizeType.FixedResolution, 320, 480, "HVGA Portrait"); GameViewSize gameViewSize21 = new GameViewSize(GameViewSizeType.FixedResolution, 480, 320, "HVGA Landscape"); GameViewSize gameViewSize22 = new GameViewSize(GameViewSizeType.FixedResolution, 480, 800, "WVGA Portrait"); GameViewSize gameViewSize23 = new GameViewSize(GameViewSizeType.FixedResolution, 800, 480, "WVGA Landscape"); GameViewSize gameViewSize24 = new GameViewSize(GameViewSizeType.FixedResolution, 480, 854, "FWVGA Portrait"); GameViewSize gameViewSize25 = new GameViewSize(GameViewSizeType.FixedResolution, 854, 480, "FWVGA Landscape"); GameViewSize gameViewSize26 = new GameViewSize(GameViewSizeType.FixedResolution, 600, 1024, "WSVGA Portrait"); GameViewSize gameViewSize27 = new GameViewSize(GameViewSizeType.FixedResolution, 1024, 600, "WSVGA Landscape"); GameViewSize gameViewSize28 = new GameViewSize(GameViewSizeType.FixedResolution, 800, 1280, "WXGA Portrait"); GameViewSize gameViewSize29 = new GameViewSize(GameViewSizeType.FixedResolution, 1280, 800, "WXGA Landscape"); GameViewSize gameViewSize30 = new GameViewSize(GameViewSizeType.AspectRatio, 2, 3, "3:2 Portrait"); GameViewSize gameViewSize31 = new GameViewSize(GameViewSizeType.AspectRatio, 3, 2, "3:2 Landscape"); GameViewSize gameViewSize32 = new GameViewSize(GameViewSizeType.AspectRatio, 10, 16, "16:10 Portrait"); GameViewSize gameViewSize33 = new GameViewSize(GameViewSizeType.AspectRatio, 16, 10, "16:10 Landscape"); GameViewSize gameViewSize34 = new GameViewSize(GameViewSizeType.FixedResolution, 1280, 720, "16:9 Landscape"); GameViewSize gameViewSize35 = new GameViewSize(GameViewSizeType.FixedResolution, 720, 1280, "9:16 Portrait"); GameViewSize gameViewSize36 = new GameViewSize(GameViewSizeType.FixedResolution, 400, 240, "Top Screen"); GameViewSize gameViewSize37 = new GameViewSize(GameViewSizeType.FixedResolution, 320, 240, "Bottom Screen"); this.m_Standalone.AddBuiltinSizes(new GameViewSize[] { gameViewSize, gameViewSize2, gameViewSize3, gameViewSize4, gameViewSize5, gameViewSize6, gameViewSize7 }); this.m_iOS.AddBuiltinSizes(new GameViewSize[] { gameViewSize, gameViewSize8, gameViewSize9, gameViewSize10, gameViewSize11, gameViewSize12, gameViewSize13, gameViewSize14, gameViewSize15, gameViewSize16, gameViewSize17, gameViewSize18, gameViewSize19 }); this.m_Android.AddBuiltinSizes(new GameViewSize[] { gameViewSize, this.m_Remote, gameViewSize20, gameViewSize21, gameViewSize22, gameViewSize23, gameViewSize24, gameViewSize25, gameViewSize26, gameViewSize27, gameViewSize28, gameViewSize29, gameViewSize30, gameViewSize31, gameViewSize32, gameViewSize33 }); this.m_Tizen.AddBuiltinSizes(new GameViewSize[] { gameViewSize, gameViewSize34, gameViewSize35 }); this.m_N3DS.AddBuiltinSizes(new GameViewSize[] { gameViewSize, gameViewSize36, gameViewSize37 }); this.m_HMD.AddBuiltinSizes(new GameViewSize[] { gameViewSize, this.m_Remote }); } }
public void AddBuiltinSize(GameViewSize size) { this.m_Builtin.Add(size); ScriptableSingleton <GameViewSizes> .instance.Changed(); }
public static Vector2 GetRenderTargetSize(Rect startRect, GameViewSizeGroupType groupType, int gameViewSizeIndex, out bool clamped) { GameViewSize gameViewSize = ScriptableSingleton <GameViewSizes> .instance.GetGroup(groupType).GetGameViewSize(gameViewSizeIndex); GameViewSizes.RefreshDerivedGameViewSize(groupType, gameViewSizeIndex, gameViewSize); clamped = false; Vector2 vector; if (gameViewSize.isFreeAspectRatio) { vector = startRect.size; } else { GameViewSizeType sizeType = gameViewSize.sizeType; if (sizeType != GameViewSizeType.AspectRatio) { if (sizeType != GameViewSizeType.FixedResolution) { throw new ArgumentException("Unrecognized size type"); } vector = new Vector2((float)gameViewSize.width, (float)gameViewSize.height); } else if (startRect.height == 0f || gameViewSize.aspectRatio == 0f) { vector = Vector2.zero; } else { float num = startRect.width / startRect.height; if (num < gameViewSize.aspectRatio) { vector = new Vector2(startRect.width, startRect.width / gameViewSize.aspectRatio); } else { vector = new Vector2(startRect.height * gameViewSize.aspectRatio, startRect.height); } } } float num2 = (float)SystemInfo.graphicsMemorySize * 0.2f / 12f * 1024f * 1024f; float num3 = vector.x * vector.y; if (num3 > num2) { float num4 = vector.y / vector.x; vector.x = Mathf.Sqrt(num2 * num4); vector.y = num4 * vector.x; clamped = true; } float b = 8192f; float num5 = Mathf.Min((float)SystemInfo.maxRenderTextureSize, b); if (vector.x > num5 || vector.y > num5) { if (vector.x > vector.y) { vector *= num5 / vector.x; } else { vector *= num5 / vector.y; } clamped = true; } return(vector); }
public void AddBuiltinSize(GameViewSize size) { m_Builtin.Add(size); GameViewSizes.instance.Changed(); }
public override void OnGUI(Rect rect) { if (GameViewSizesMenuModifyItemUI.s_Styles == null) { GameViewSizesMenuModifyItemUI.s_Styles = new GameViewSizesMenuModifyItemUI.Styles(); } GameViewSize gameViewSize = this.m_Object as GameViewSize; if (gameViewSize == null) { Debug.LogError("Invalid object"); } else { if (this.m_GameViewSize == null) { this.m_GameViewSize = new GameViewSize(gameViewSize); } bool flag = this.m_GameViewSize.width > 0 && this.m_GameViewSize.height > 0; GUILayout.Space(3f); GUILayout.Label((this.m_MenuType != FlexibleMenuModifyItemUI.MenuType.Add) ? GameViewSizesMenuModifyItemUI.s_Styles.headerEdit : GameViewSizesMenuModifyItemUI.s_Styles.headerAdd, EditorStyles.boldLabel, new GUILayoutOption[0]); Rect rect2 = GUILayoutUtility.GetRect(1f, 1f); FlexibleMenu.DrawRect(rect2, (!EditorGUIUtility.isProSkin) ? new Color(0.6f, 0.6f, 0.6f, 1.333f) : new Color(0.32f, 0.32f, 0.32f, 1.333f)); GUILayout.Space(4f); GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUILayout.Label(GameViewSizesMenuModifyItemUI.s_Styles.optionalText, new GUILayoutOption[] { GUILayout.Width(90f) }); GUILayout.Space(10f); this.m_GameViewSize.baseText = EditorGUILayout.TextField(this.m_GameViewSize.baseText, new GUILayoutOption[0]); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUILayout.Label(GameViewSizesMenuModifyItemUI.s_Styles.typeName, new GUILayoutOption[] { GUILayout.Width(90f) }); GUILayout.Space(10f); this.m_GameViewSize.sizeType = (GameViewSizeType)EditorGUILayout.Popup((int)this.m_GameViewSize.sizeType, GameViewSizesMenuModifyItemUI.s_Styles.typeNames, new GUILayoutOption[0]); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUILayout.Label(GameViewSizesMenuModifyItemUI.s_Styles.widthHeightText, new GUILayoutOption[] { GUILayout.Width(90f) }); GUILayout.Space(10f); this.m_GameViewSize.width = EditorGUILayout.IntField(this.m_GameViewSize.width, new GUILayoutOption[0]); GUILayout.Space(5f); this.m_GameViewSize.height = EditorGUILayout.IntField(this.m_GameViewSize.height, new GUILayoutOption[0]); GUILayout.EndHorizontal(); GUILayout.Space(10f); float num = 10f; float cropWidth = rect.width - 2f * num; GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUILayout.Space(num); GUILayout.FlexibleSpace(); string text = this.m_GameViewSize.displayText; using (new EditorGUI.DisabledScope(string.IsNullOrEmpty(text))) { if (string.IsNullOrEmpty(text)) { text = "Result"; } else { text = this.GetCroppedText(text, cropWidth, EditorStyles.label); } GUILayout.Label(GUIContent.Temp(text), EditorStyles.label, new GUILayoutOption[0]); } GUILayout.FlexibleSpace(); GUILayout.Space(num); GUILayout.EndHorizontal(); GUILayout.Space(5f); GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUILayout.Space(10f); if (GUILayout.Button(GameViewSizesMenuModifyItemUI.s_Styles.cancel, new GUILayoutOption[0])) { base.editorWindow.Close(); } using (new EditorGUI.DisabledScope(!flag)) { if (GUILayout.Button(GameViewSizesMenuModifyItemUI.s_Styles.ok, new GUILayoutOption[0])) { gameViewSize.Set(this.m_GameViewSize); base.Accepted(); base.editorWindow.Close(); } } GUILayout.Space(10f); GUILayout.EndHorizontal(); } }
private static void RefreshDerivedGameViewSize(GameViewSizeGroupType groupType, int gameViewSizeIndex, GameViewSize gameViewSize) { if (ScriptableSingleton <GameViewSizes> .instance.IsDefaultStandaloneScreenSize(groupType, gameViewSizeIndex)) { gameViewSize.width = (int)InternalEditorUtility.defaultScreenWidth; gameViewSize.height = (int)InternalEditorUtility.defaultScreenHeight; } else if (ScriptableSingleton <GameViewSizes> .instance.IsRemoteScreenSize(groupType, gameViewSizeIndex)) { if (InternalEditorUtility.remoteScreenWidth <= 0f || InternalEditorUtility.remoteScreenHeight <= 0f) { gameViewSize.sizeType = GameViewSizeType.AspectRatio; int num = 0; gameViewSize.height = num; gameViewSize.width = num; } else { gameViewSize.sizeType = GameViewSizeType.FixedResolution; gameViewSize.width = (int)InternalEditorUtility.remoteScreenWidth; gameViewSize.height = (int)InternalEditorUtility.remoteScreenHeight; } } }
public void AddBuiltinSize(GameViewSize size) { this.m_Builtin.Add(size); ScriptableSingleton<GameViewSizes>.instance.Changed(); }
private void InitBuiltinGroups() { if (this.m_Standalone.GetBuiltinCount() > 0) { return; } this.m_Remote = new GameViewSize(GameViewSizeType.FixedResolution, 0, 0, "Remote (Not Connected)"); GameViewSize gameViewSize1 = new GameViewSize(GameViewSizeType.AspectRatio, 0, 0, "Free Aspect"); GameViewSize gameViewSize2 = new GameViewSize(GameViewSizeType.AspectRatio, 5, 4, string.Empty); GameViewSize gameViewSize3 = new GameViewSize(GameViewSizeType.AspectRatio, 4, 3, string.Empty); GameViewSize gameViewSize4 = new GameViewSize(GameViewSizeType.AspectRatio, 3, 2, string.Empty); GameViewSize gameViewSize5 = new GameViewSize(GameViewSizeType.AspectRatio, 16, 10, string.Empty); GameViewSize gameViewSize6 = new GameViewSize(GameViewSizeType.AspectRatio, 16, 9, string.Empty); GameViewSize gameViewSize7 = new GameViewSize(GameViewSizeType.FixedResolution, 0, 0, "Standalone"); GameViewSize gameViewSize8 = new GameViewSize(GameViewSizeType.FixedResolution, 0, 0, "Web"); GameViewSize gameViewSize9 = new GameViewSize(GameViewSizeType.FixedResolution, 320, 480, "iPhone Tall"); GameViewSize gameViewSize10 = new GameViewSize(GameViewSizeType.FixedResolution, 480, 320, "iPhone Wide"); GameViewSize gameViewSize11 = new GameViewSize(GameViewSizeType.FixedResolution, 640, 960, "iPhone 4 Tall"); GameViewSize gameViewSize12 = new GameViewSize(GameViewSizeType.FixedResolution, 960, 640, "iPhone 4 Wide"); GameViewSize gameViewSize13 = new GameViewSize(GameViewSizeType.FixedResolution, 768, 1024, "iPad Tall"); GameViewSize gameViewSize14 = new GameViewSize(GameViewSizeType.FixedResolution, 1024, 768, "iPad Wide"); GameViewSize gameViewSize15 = new GameViewSize(GameViewSizeType.AspectRatio, 9, 16, "iPhone 5 Tall"); GameViewSize gameViewSize16 = new GameViewSize(GameViewSizeType.AspectRatio, 16, 9, "iPhone 5 Wide"); GameViewSize gameViewSize17 = new GameViewSize(GameViewSizeType.AspectRatio, 2, 3, "iPhone Tall"); GameViewSize gameViewSize18 = new GameViewSize(GameViewSizeType.AspectRatio, 3, 2, "iPhone Wide"); GameViewSize gameViewSize19 = new GameViewSize(GameViewSizeType.AspectRatio, 3, 4, "iPad Tall"); GameViewSize gameViewSize20 = new GameViewSize(GameViewSizeType.AspectRatio, 4, 3, "iPad Wide"); GameViewSize gameViewSize21 = new GameViewSize(GameViewSizeType.FixedResolution, 320, 480, "HVGA Portrait"); GameViewSize gameViewSize22 = new GameViewSize(GameViewSizeType.FixedResolution, 480, 320, "HVGA Landscape"); GameViewSize gameViewSize23 = new GameViewSize(GameViewSizeType.FixedResolution, 480, 800, "WVGA Portrait"); GameViewSize gameViewSize24 = new GameViewSize(GameViewSizeType.FixedResolution, 800, 480, "WVGA Landscape"); GameViewSize gameViewSize25 = new GameViewSize(GameViewSizeType.FixedResolution, 480, 854, "FWVGA Portrait"); GameViewSize gameViewSize26 = new GameViewSize(GameViewSizeType.FixedResolution, 854, 480, "FWVGA Landscape"); GameViewSize gameViewSize27 = new GameViewSize(GameViewSizeType.FixedResolution, 600, 1024, "WSVGA Portrait"); GameViewSize gameViewSize28 = new GameViewSize(GameViewSizeType.FixedResolution, 1024, 600, "WSVGA Landscape"); GameViewSize gameViewSize29 = new GameViewSize(GameViewSizeType.FixedResolution, 800, 1280, "WXGA Portrait"); GameViewSize gameViewSize30 = new GameViewSize(GameViewSizeType.FixedResolution, 1280, 800, "WXGA Landscape"); GameViewSize gameViewSize31 = new GameViewSize(GameViewSizeType.AspectRatio, 2, 3, "3:2 Portrait"); GameViewSize gameViewSize32 = new GameViewSize(GameViewSizeType.AspectRatio, 3, 2, "3:2 Landscape"); GameViewSize gameViewSize33 = new GameViewSize(GameViewSizeType.AspectRatio, 10, 16, "16:10 Portrait"); GameViewSize gameViewSize34 = new GameViewSize(GameViewSizeType.AspectRatio, 16, 10, "16:10 Landscape"); GameViewSize gameViewSize35 = new GameViewSize(GameViewSizeType.FixedResolution, 1280, 720, "720p (16:9)"); GameViewSize gameViewSize36 = new GameViewSize(GameViewSizeType.FixedResolution, 1920, 1080, "1080p (16:9)"); GameViewSize gameViewSize37 = new GameViewSize(GameViewSizeType.FixedResolution, 1280, 720, "720p (16:9)"); GameViewSize gameViewSize38 = new GameViewSize(GameViewSizeType.FixedResolution, 720, 576, "576p (4:3)"); GameViewSize gameViewSize39 = new GameViewSize(GameViewSizeType.FixedResolution, 1024, 576, "576p (16:9)"); GameViewSize gameViewSize40 = new GameViewSize(GameViewSizeType.FixedResolution, 640, 480, "480p (4:3)"); GameViewSize gameViewSize41 = new GameViewSize(GameViewSizeType.FixedResolution, 853, 480, "480p (16:9)"); GameViewSize gameViewSize42 = new GameViewSize(GameViewSizeType.FixedResolution, 720, 1280, "Touch Phone Portrait"); GameViewSize gameViewSize43 = new GameViewSize(GameViewSizeType.FixedResolution, 1280, 720, "Touch Phone Landscape"); GameViewSize gameViewSize44 = new GameViewSize(GameViewSizeType.FixedResolution, 720, 720, "Keyboard Phone"); GameViewSize gameViewSize45 = new GameViewSize(GameViewSizeType.FixedResolution, 600, 1024, "Playbook Portrait"); GameViewSize gameViewSize46 = new GameViewSize(GameViewSizeType.FixedResolution, 1024, 600, "Playbook Landscape"); GameViewSize gameViewSize47 = new GameViewSize(GameViewSizeType.AspectRatio, 9, 16, "9:16 Portrait"); GameViewSize gameViewSize48 = new GameViewSize(GameViewSizeType.AspectRatio, 16, 9, "16:9 Landscape"); GameViewSize gameViewSize49 = new GameViewSize(GameViewSizeType.AspectRatio, 1, 1, "1:1"); GameViewSize gameViewSize50 = new GameViewSize(GameViewSizeType.FixedResolution, 1920, 1080, "1080p (16:9)"); GameViewSize gameViewSize51 = new GameViewSize(GameViewSizeType.FixedResolution, 1280, 720, "720p (16:9)"); GameViewSize gameViewSize52 = new GameViewSize(GameViewSizeType.FixedResolution, 854, 480, "GamePad 480p (16:9)"); GameViewSize gameViewSize53 = new GameViewSize(GameViewSizeType.FixedResolution, 1280, 720, "16:9 Landscape"); GameViewSize gameViewSize54 = new GameViewSize(GameViewSizeType.FixedResolution, 720, 1280, "9:16 Portrait"); GameViewSize gameViewSize55 = new GameViewSize(GameViewSizeType.FixedResolution, 480, 800, "WVGA Portrait"); GameViewSize gameViewSize56 = new GameViewSize(GameViewSizeType.FixedResolution, 800, 480, "WVGA Landscape"); GameViewSize gameViewSize57 = new GameViewSize(GameViewSizeType.FixedResolution, 768, 1280, "WXGA Portrait"); GameViewSize gameViewSize58 = new GameViewSize(GameViewSizeType.FixedResolution, 1280, 768, "WXGA Landscape"); GameViewSize gameViewSize59 = new GameViewSize(GameViewSizeType.FixedResolution, 720, 1280, "720p Portrait"); GameViewSize gameViewSize60 = new GameViewSize(GameViewSizeType.FixedResolution, 1280, 720, "720p Landscape"); GameViewSize gameViewSize61 = new GameViewSize(GameViewSizeType.AspectRatio, 9, 15, "WVGA Portrait"); GameViewSize gameViewSize62 = new GameViewSize(GameViewSizeType.AspectRatio, 15, 9, "WVGA Landscape"); GameViewSize gameViewSize63 = new GameViewSize(GameViewSizeType.AspectRatio, 9, 15, "WXGA Portrait"); GameViewSize gameViewSize64 = new GameViewSize(GameViewSizeType.AspectRatio, 15, 9, "WXGA Landscape"); GameViewSize gameViewSize65 = new GameViewSize(GameViewSizeType.AspectRatio, 9, 16, "720p Portrait"); GameViewSize gameViewSize66 = new GameViewSize(GameViewSizeType.AspectRatio, 16, 9, "720p Landscape"); GameViewSize gameViewSize67 = new GameViewSize(GameViewSizeType.FixedResolution, 400, 240, "Top Screen"); GameViewSize gameViewSize68 = new GameViewSize(GameViewSizeType.FixedResolution, 320, 240, "Bottom Screen"); this.m_WP8.AddBuiltinSizes(gameViewSize1, gameViewSize55, gameViewSize61, gameViewSize56, gameViewSize62, gameViewSize57, gameViewSize63, gameViewSize58, gameViewSize64, gameViewSize59, gameViewSize65, gameViewSize60, gameViewSize66); this.m_Standalone.AddBuiltinSizes(gameViewSize1, gameViewSize2, gameViewSize3, gameViewSize4, gameViewSize5, gameViewSize6, gameViewSize7); this.m_WebPlayer.AddBuiltinSizes(gameViewSize1, gameViewSize2, gameViewSize3, gameViewSize4, gameViewSize5, gameViewSize6, gameViewSize8); this.m_PS3.AddBuiltinSizes(gameViewSize1, gameViewSize3, gameViewSize6, gameViewSize5, gameViewSize36, gameViewSize37, gameViewSize38, gameViewSize39, gameViewSize40, gameViewSize41); this.m_XBox360.AddBuiltinSizes(gameViewSize1, gameViewSize3, gameViewSize6, gameViewSize5, gameViewSize35); this.m_WiiU.AddBuiltinSizes(gameViewSize1, gameViewSize3, gameViewSize6, gameViewSize50, gameViewSize51, gameViewSize52); this.m_iOS.AddBuiltinSizes(gameViewSize1, gameViewSize9, gameViewSize10, gameViewSize11, gameViewSize12, gameViewSize13, gameViewSize14, gameViewSize15, gameViewSize16, gameViewSize17, gameViewSize18, gameViewSize19, gameViewSize20); this.m_Android.AddBuiltinSizes(gameViewSize1, this.m_Remote, gameViewSize21, gameViewSize22, gameViewSize23, gameViewSize24, gameViewSize25, gameViewSize26, gameViewSize27, gameViewSize28, gameViewSize29, gameViewSize30, gameViewSize31, gameViewSize32, gameViewSize33, gameViewSize34); this.m_BB10.AddBuiltinSizes(gameViewSize1, gameViewSize42, gameViewSize43, gameViewSize44, gameViewSize45, gameViewSize46, gameViewSize47, gameViewSize48, gameViewSize49); this.m_Tizen.AddBuiltinSizes(gameViewSize1, gameViewSize53, gameViewSize54); this.m_Nintendo3DS.AddBuiltinSizes(gameViewSize1, gameViewSize67, gameViewSize68); }
private static void RefreshDerivedGameViewSize(GameViewSizeGroupType groupType, int gameViewSizeIndex, GameViewSize gameViewSize) { if (GameViewSizes.instance.IsRemoteScreenSize(groupType, gameViewSizeIndex)) { int width = 0; int height = 0; if (UnityEngine.XR.XRSettings.isDeviceActive) { width = UnityEngine.XR.XRSettings.eyeTextureWidth; height = UnityEngine.XR.XRSettings.eyeTextureHeight; } else { width = (int)InternalEditorUtility.remoteScreenWidth; height = (int)InternalEditorUtility.remoteScreenHeight; } if (width > 0 && height > 0) { gameViewSize.sizeType = GameViewSizeType.FixedResolution; gameViewSize.width = width; gameViewSize.height = height; } else { // Free aspect if invalid remote width or height gameViewSize.sizeType = GameViewSizeType.AspectRatio; gameViewSize.width = gameViewSize.height = 0; } } }
public void AddCustomSize(GameViewSize size) { this.m_Custom.Add(size); ScriptableSingleton <GameViewSizes> .instance.Changed(); }
public override void OnGUI(Rect rect) { if (s_Styles == null) { s_Styles = new Styles(); } GameViewSize other = base.m_Object as GameViewSize; if (other == null) { Debug.LogError("Invalid object"); } else { if (this.m_GameViewSize == null) { this.m_GameViewSize = new GameViewSize(other); } bool flag = (this.m_GameViewSize.width > 0) && (this.m_GameViewSize.height > 0); GUILayout.Space(3f); GUILayout.Label((base.m_MenuType != FlexibleMenuModifyItemUI.MenuType.Add) ? s_Styles.headerEdit : s_Styles.headerAdd, EditorStyles.boldLabel, new GUILayoutOption[0]); FlexibleMenu.DrawRect(GUILayoutUtility.GetRect((float) 1f, (float) 1f), !EditorGUIUtility.isProSkin ? new Color(0.6f, 0.6f, 0.6f, 1.333f) : new Color(0.32f, 0.32f, 0.32f, 1.333f)); GUILayout.Space(4f); GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUILayoutOption[] options = new GUILayoutOption[] { GUILayout.Width(90f) }; GUILayout.Label(s_Styles.optionalText, options); GUILayout.Space(10f); this.m_GameViewSize.baseText = EditorGUILayout.TextField(this.m_GameViewSize.baseText, new GUILayoutOption[0]); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUILayoutOption[] optionArray2 = new GUILayoutOption[] { GUILayout.Width(90f) }; GUILayout.Label(s_Styles.typeName, optionArray2); GUILayout.Space(10f); this.m_GameViewSize.sizeType = (GameViewSizeType) EditorGUILayout.Popup((int) this.m_GameViewSize.sizeType, s_Styles.typeNames, new GUILayoutOption[0]); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUILayoutOption[] optionArray3 = new GUILayoutOption[] { GUILayout.Width(90f) }; GUILayout.Label(s_Styles.widthHeightText, optionArray3); GUILayout.Space(10f); this.m_GameViewSize.width = EditorGUILayout.IntField(this.m_GameViewSize.width, new GUILayoutOption[0]); GUILayout.Space(5f); this.m_GameViewSize.height = EditorGUILayout.IntField(this.m_GameViewSize.height, new GUILayoutOption[0]); GUILayout.EndHorizontal(); GUILayout.Space(10f); float pixels = 10f; float cropWidth = rect.width - (2f * pixels); GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUILayout.Space(pixels); GUILayout.FlexibleSpace(); string displayText = this.m_GameViewSize.displayText; EditorGUI.BeginDisabledGroup(string.IsNullOrEmpty(displayText)); if (string.IsNullOrEmpty(displayText)) { displayText = "Result"; } else { displayText = this.GetCroppedText(displayText, cropWidth, EditorStyles.label); } GUILayout.Label(GUIContent.Temp(displayText), EditorStyles.label, new GUILayoutOption[0]); EditorGUI.EndDisabledGroup(); GUILayout.FlexibleSpace(); GUILayout.Space(pixels); GUILayout.EndHorizontal(); GUILayout.Space(5f); GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUILayout.Space(10f); if (GUILayout.Button(s_Styles.cancel, new GUILayoutOption[0])) { base.editorWindow.Close(); } EditorGUI.BeginDisabledGroup(!flag); if (GUILayout.Button(s_Styles.ok, new GUILayoutOption[0])) { other.Set(this.m_GameViewSize); base.Accepted(); base.editorWindow.Close(); } EditorGUI.EndDisabledGroup(); GUILayout.Space(10f); GUILayout.EndHorizontal(); } }