SHA256
forked from ADOFAIEditorForum/ADOFAIRenderer
Remove Useless Logs
This commit is contained in:
2 files changed
+87
-86
No files matched your search
+82
-84
@@ -32,8 +32,6 @@ namespace ADOFAIRenderer.UI
|
|||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
Melon<RenderMod>.Logger.Msg("[UI] Start 진입");
|
|
||||||
|
|
||||||
// Init Validators
|
// Init Validators
|
||||||
_intValidator
|
_intValidator
|
||||||
.AddLimits("RenderWidth", new PositiveOnlyIntegerLimit(), new RangeIntegerLimit(1, 7680))
|
.AddLimits("RenderWidth", new PositiveOnlyIntegerLimit(), new RangeIntegerLimit(1, 7680))
|
||||||
@@ -46,28 +44,14 @@ namespace ADOFAIRenderer.UI
|
|||||||
|
|
||||||
_intValidator.SetupValidation();
|
_intValidator.SetupValidation();
|
||||||
_doubleValidator.SetupValidation();
|
_doubleValidator.SetupValidation();
|
||||||
Melon<RenderMod>.Logger.Msg("[UI] Validator 설정 완료");
|
|
||||||
|
|
||||||
// Init Enum Binders & Event Listeners
|
// Init Enum Binders & Event Listeners
|
||||||
_codecBinder = new EnumDropdownBinder<Codec>(_root, "CodecDropdown", Codec.H264);
|
_codecBinder = new EnumDropdownBinder<Codec>(_root, "CodecDropdown", Codec.H264);
|
||||||
Melon<RenderMod>.Logger.Msg("[UI] CodecBinder 생성 완료");
|
|
||||||
_codecBinder.OnValueChanged(value => RenderManager.Instance.Configuration.Codec = value);
|
_codecBinder.OnValueChanged(value => RenderManager.Instance.Configuration.Codec = value);
|
||||||
Melon<RenderMod>.Logger.Msg("[UI] CodecBinder 콜백 등록 완료");
|
|
||||||
|
|
||||||
// Bind Data
|
|
||||||
_root.dataSource = RenderManager.Instance.Configuration;
|
|
||||||
|
|
||||||
// Attach Button Event Listener
|
// Attach Button Event Listener
|
||||||
_goRenderButton = _root.Q<Button>("GoRenderButton");
|
_goRenderButton = _root.Q<Button>("GoRenderButton");
|
||||||
if (_goRenderButton != null)
|
_goRenderButton?.RegisterCallback<ClickEvent>(_ => TryGoRender());
|
||||||
{
|
|
||||||
Melon<RenderMod>.Logger.Msg($"[UI] GoRenderButton 발견: pickingMode={_goRenderButton.pickingMode}, enabledSelf={_goRenderButton.enabledSelf}");
|
|
||||||
_goRenderButton.RegisterCallback<ClickEvent>(_ => TryGoRender());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Melon<RenderMod>.Logger.Error("Button 'GoRenderButton'을(를) 찾을 수 없습니다.");
|
|
||||||
}
|
|
||||||
|
|
||||||
_encodingConfigButton = _root.Q<Button>("EncodingSettingsButton");
|
_encodingConfigButton = _root.Q<Button>("EncodingSettingsButton");
|
||||||
if (_encodingConfigButton != null)
|
if (_encodingConfigButton != null)
|
||||||
@@ -91,8 +75,6 @@ namespace ADOFAIRenderer.UI
|
|||||||
|
|
||||||
private void OpenEncodingConfig()
|
private void OpenEncodingConfig()
|
||||||
{
|
{
|
||||||
Melon<RenderMod>.Logger.Msg("[UI] OpenEncodingConfig 호출됨");
|
|
||||||
|
|
||||||
var config = RenderManager.Instance.Configuration;
|
var config = RenderManager.Instance.Configuration;
|
||||||
config.EncodingConfig ??= GenerateEncodingConfig();
|
config.EncodingConfig ??= GenerateEncodingConfig();
|
||||||
|
|
||||||
@@ -122,38 +104,20 @@ namespace ADOFAIRenderer.UI
|
|||||||
_encodingConfigContainer.style.justifyContent = Justify.Center;
|
_encodingConfigContainer.style.justifyContent = Justify.Center;
|
||||||
_encodingConfigContainer.style.alignItems = Align.Center;
|
_encodingConfigContainer.style.alignItems = Align.Center;
|
||||||
|
|
||||||
// 로우 생성 헬퍼 (UXML의 ui-row 속성 복제)
|
|
||||||
VisualElement CreateRow()
|
|
||||||
{
|
|
||||||
var row = new VisualElement();
|
|
||||||
row.AddToClassList("ui-row");
|
|
||||||
row.style.flexDirection = FlexDirection.Row;
|
|
||||||
row.style.height = 130;
|
|
||||||
row.style.maxHeight = 130;
|
|
||||||
row.style.minHeight = 80;
|
|
||||||
row.style.justifyContent = Justify.Center;
|
|
||||||
row.style.alignItems = Align.Center;
|
|
||||||
return row;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 라벨 생성 헬퍼 (우측 정렬 적용하여 인풋과의 인접성 향상)
|
|
||||||
Label CreateFormLabel(string text)
|
|
||||||
{
|
|
||||||
var label = new Label(text);
|
|
||||||
label.style.unityTextAlign = TextAnchor.MiddleRight;
|
|
||||||
label.style.color = new StyleColor(Color.white);
|
|
||||||
return label;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 2. 타이틀 로우
|
// 2. 타이틀 로우
|
||||||
var titleRow = CreateRow();
|
var titleRow = CreateRow();
|
||||||
var title = new Label("인코딩 설정");
|
var title = new Label("인코딩 설정")
|
||||||
title.style.fontSize = 36;
|
{
|
||||||
title.style.unityFontStyleAndWeight = FontStyle.Bold;
|
style =
|
||||||
title.style.color = new StyleColor(Color.white);
|
{
|
||||||
title.style.unityTextAlign = TextAnchor.MiddleCenter;
|
fontSize = 36,
|
||||||
title.style.width = 770; // 360 * 2 + 50 (여백)에 맞춤
|
unityFontStyleAndWeight = FontStyle.Bold,
|
||||||
title.style.height = StyleKeyword.Auto;
|
color = new StyleColor(Color.white),
|
||||||
|
unityTextAlign = TextAnchor.MiddleCenter,
|
||||||
|
width = 770, // 360 * 2 + 50 (여백)에 맞춤
|
||||||
|
height = StyleKeyword.Auto
|
||||||
|
}
|
||||||
|
};
|
||||||
titleRow.Add(title);
|
titleRow.Add(title);
|
||||||
_encodingConfigContainer.Add(titleRow);
|
_encodingConfigContainer.Add(titleRow);
|
||||||
|
|
||||||
@@ -217,15 +181,20 @@ namespace ADOFAIRenderer.UI
|
|||||||
warningRow.style.maxHeight = StyleKeyword.Null;
|
warningRow.style.maxHeight = StyleKeyword.Null;
|
||||||
warningRow.style.minHeight = StyleKeyword.Null;
|
warningRow.style.minHeight = StyleKeyword.Null;
|
||||||
|
|
||||||
var warningLabel = new Label("※ QP 0 (무손실)은 일부 하드웨어/코덱에서 지원되지 않을 수 있으며, 인코딩 실패 시 CPU 모드로 폴백됩니다.");
|
var warningLabel = new Label("※ QP 0 (무손실)은 일부 하드웨어/코덱에서 지원되지 않을 수 있으며, 인코딩 실패 시 CPU 모드로 폴백됩니다.")
|
||||||
warningLabel.style.fontSize = 20; // 30px에서 20px로 오버라이드
|
{
|
||||||
warningLabel.style.color = new StyleColor(new Color(0.9f, 0.6f, 0.2f));
|
style =
|
||||||
warningLabel.style.whiteSpace = WhiteSpace.Normal;
|
{
|
||||||
warningLabel.style.width = 720; // 360px에서 720px로 오버라이드
|
fontSize = 20, // 30px에서 20px로 오버라이드
|
||||||
warningLabel.style.height = StyleKeyword.Auto;
|
color = new StyleColor(new Color(0.9f, 0.6f, 0.2f)),
|
||||||
warningLabel.style.unityTextAlign = TextAnchor.MiddleCenter;
|
whiteSpace = WhiteSpace.Normal,
|
||||||
warningLabel.style.marginTop = 10;
|
width = 720, // 360px에서 720px로 오버라이드
|
||||||
warningLabel.style.marginBottom = 10;
|
height = StyleKeyword.Auto,
|
||||||
|
unityTextAlign = TextAnchor.MiddleCenter,
|
||||||
|
marginTop = 10,
|
||||||
|
marginBottom = 10
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
warningRow.Add(warningLabel);
|
warningRow.Add(warningLabel);
|
||||||
_encodingConfigContainer.Add(warningRow);
|
_encodingConfigContainer.Add(warningRow);
|
||||||
@@ -243,18 +212,6 @@ namespace ADOFAIRenderer.UI
|
|||||||
.AddLimits("EncodingKeyframeInterval", new PositiveOnlyDoubleLimit(), new RangeDoubleLimit(0.01, 1000.0));
|
.AddLimits("EncodingKeyframeInterval", new PositiveOnlyDoubleLimit(), new RangeDoubleLimit(0.01, 1000.0));
|
||||||
encodingDoubleValidator.SetupValidation();
|
encodingDoubleValidator.SetupValidation();
|
||||||
|
|
||||||
// 가시성 필터링 업데이트 (행 단위로 보임/숨김 제어)
|
|
||||||
void UpdateVisibility(string selectedModeStr)
|
|
||||||
{
|
|
||||||
if (System.Enum.TryParse<RateControlMode>(selectedModeStr, out var mode))
|
|
||||||
{
|
|
||||||
bitrateRow.style.display = mode is RateControlMode.CBR or RateControlMode.VBR ? DisplayStyle.Flex : DisplayStyle.None;
|
|
||||||
maxBitrateRow.style.display = mode == RateControlMode.VBR ? DisplayStyle.Flex : DisplayStyle.None;
|
|
||||||
qpRow.style.display = mode == RateControlMode.CQP ? DisplayStyle.Flex : DisplayStyle.None;
|
|
||||||
warningRow.style.display = mode == RateControlMode.CQP && qpField.value == 0 ? DisplayStyle.Flex : DisplayStyle.None;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
modeDropdown.RegisterValueChangedCallback(evt => UpdateVisibility(evt.newValue));
|
modeDropdown.RegisterValueChangedCallback(evt => UpdateVisibility(evt.newValue));
|
||||||
qpField.RegisterValueChangedCallback(evt =>
|
qpField.RegisterValueChangedCallback(evt =>
|
||||||
{
|
{
|
||||||
@@ -263,17 +220,6 @@ namespace ADOFAIRenderer.UI
|
|||||||
|
|
||||||
UpdateVisibility(modeDropdown.value);
|
UpdateVisibility(modeDropdown.value);
|
||||||
|
|
||||||
// 화면 전환 제어
|
|
||||||
void ToggleScreens(bool showEncoding)
|
|
||||||
{
|
|
||||||
foreach (var child in _root.Children())
|
|
||||||
{
|
|
||||||
if (child == _encodingConfigContainer) continue;
|
|
||||||
child.style.display = showEncoding ? DisplayStyle.None : DisplayStyle.Flex;
|
|
||||||
}
|
|
||||||
_encodingConfigContainer.style.display = showEncoding ? DisplayStyle.Flex : DisplayStyle.None;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 8. 제어 버튼 로우 (취소 / 저장)
|
// 8. 제어 버튼 로우 (취소 / 저장)
|
||||||
var buttonRow = CreateRow();
|
var buttonRow = CreateRow();
|
||||||
var cancelBtn = new Button { text = "취소" };
|
var cancelBtn = new Button { text = "취소" };
|
||||||
@@ -312,19 +258,71 @@ namespace ADOFAIRenderer.UI
|
|||||||
ToggleScreens(false);
|
ToggleScreens(false);
|
||||||
_root.Remove(_encodingConfigContainer);
|
_root.Remove(_encodingConfigContainer);
|
||||||
_encodingConfigContainer = null!;
|
_encodingConfigContainer = null!;
|
||||||
Melon<RenderMod>.Logger.Msg($"[UI] EncodingConfig 저장 완료");
|
|
||||||
});
|
});
|
||||||
|
|
||||||
_root.Add(_encodingConfigContainer);
|
_root.Add(_encodingConfigContainer);
|
||||||
|
|
||||||
// 화면 전환 활성화
|
// 화면 전환 활성화
|
||||||
ToggleScreens(true);
|
ToggleScreens(true);
|
||||||
|
return;
|
||||||
|
|
||||||
|
// 화면 전환 제어
|
||||||
|
void ToggleScreens(bool showEncoding)
|
||||||
|
{
|
||||||
|
foreach (var child in _root.Children())
|
||||||
|
{
|
||||||
|
if (child == _encodingConfigContainer) continue;
|
||||||
|
child.style.display = showEncoding ? DisplayStyle.None : DisplayStyle.Flex;
|
||||||
|
}
|
||||||
|
_encodingConfigContainer.style.display = showEncoding ? DisplayStyle.Flex : DisplayStyle.None;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 가시성 필터링 업데이트 (행 단위로 보임/숨김 제어)
|
||||||
|
void UpdateVisibility(string selectedModeStr)
|
||||||
|
{
|
||||||
|
if (!System.Enum.TryParse<RateControlMode>(selectedModeStr, out var mode)) return;
|
||||||
|
bitrateRow.style.display = mode is RateControlMode.CBR or RateControlMode.VBR ? DisplayStyle.Flex : DisplayStyle.None;
|
||||||
|
maxBitrateRow.style.display = mode == RateControlMode.VBR ? DisplayStyle.Flex : DisplayStyle.None;
|
||||||
|
qpRow.style.display = mode == RateControlMode.CQP ? DisplayStyle.Flex : DisplayStyle.None;
|
||||||
|
warningRow.style.display = mode == RateControlMode.CQP && qpField.value == 0 ? DisplayStyle.Flex : DisplayStyle.None;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 로우 생성 헬퍼 (UXML의 ui-row 속성 복제)
|
||||||
|
VisualElement CreateRow()
|
||||||
|
{
|
||||||
|
var row = new VisualElement
|
||||||
|
{
|
||||||
|
style =
|
||||||
|
{
|
||||||
|
flexDirection = FlexDirection.Row,
|
||||||
|
height = 130,
|
||||||
|
maxHeight = 130,
|
||||||
|
minHeight = 80,
|
||||||
|
justifyContent = Justify.Center,
|
||||||
|
alignItems = Align.Center
|
||||||
|
}
|
||||||
|
};
|
||||||
|
row.AddToClassList("ui-row");
|
||||||
|
return row;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 라벨 생성 헬퍼 (우측 정렬 적용하여 인풋과의 인접성 향상)
|
||||||
|
Label CreateFormLabel(string text)
|
||||||
|
{
|
||||||
|
var label = new Label(text)
|
||||||
|
{
|
||||||
|
style =
|
||||||
|
{
|
||||||
|
unityTextAlign = TextAnchor.MiddleRight,
|
||||||
|
color = new StyleColor(Color.white)
|
||||||
|
}
|
||||||
|
};
|
||||||
|
return label;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void TryGoRender()
|
private void TryGoRender()
|
||||||
{
|
{
|
||||||
Melon<RenderMod>.Logger.Msg("[UI] TryGoRender 호출됨");
|
|
||||||
|
|
||||||
var widthField = _root.Q<IntegerField>("RenderWidth");
|
var widthField = _root.Q<IntegerField>("RenderWidth");
|
||||||
var heightField = _root.Q<IntegerField>("RenderHeight");
|
var heightField = _root.Q<IntegerField>("RenderHeight");
|
||||||
var randomSeedField = _root.Q<IntegerField>("RandomSeed");
|
var randomSeedField = _root.Q<IntegerField>("RandomSeed");
|
||||||
|
|||||||
+5
-2
@@ -35,7 +35,10 @@
|
|||||||
<SkipMethod type="ADOFAIRenderer.Util.*" rx="^(?:Awake|Start|Update|LateUpdate|OnDestroy)$" />
|
<SkipMethod type="ADOFAIRenderer.Util.*" rx="^(?:Awake|Start|Update|LateUpdate|OnDestroy)$" />
|
||||||
|
|
||||||
<!-- Skip Enums bound to UI dropdowns -->
|
<!-- Skip Enums bound to UI dropdowns -->
|
||||||
<SkipType name="ADOFAIRenderer.Util.FFmpeg.Codec" />
|
<SkipType name="ADOFAIRenderer.Util.FFmpeg.Codec" skipFields="true" />
|
||||||
<SkipType name="ADOFAIRenderer.Util.FFmpeg.RateControlMode" />
|
<SkipType name="ADOFAIRenderer.Util.FFmpeg.RateControlMode" skipFields="true" />
|
||||||
|
|
||||||
|
<!-- Skip UI-associated types (MonoBehaviours loaded from scene/prefabs or bound to UI Toolkit dataSource) -->
|
||||||
|
<SkipType name="ADOFAIRenderer.UI.RenderConfigUIManager" skipFields="true" />
|
||||||
</Module>
|
</Module>
|
||||||
</Obfuscator>
|
</Obfuscator>
|
||||||
Reference in new issue
Block a user