Add blend export to GuiRenderSettings

This commit is contained in:
Jonas Herzig
2019-03-14 18:14:47 +01:00
parent 7cc62b13c1
commit 1e1104f4d3
3 changed files with 26 additions and 3 deletions

View File

@@ -82,10 +82,10 @@ public class RenderSettings {
} }
public boolean hasBitrateSetting() { public boolean hasBitrateSetting() {
return preset.contains("%BITRATE%"); return preset != null && preset.contains("%BITRATE%");
} }
public boolean isYuv420() { return preset.contains("-pix_fmt yuv420p"); } public boolean isYuv420() { return preset != null && preset.contains("-pix_fmt yuv420p"); }
@Override @Override
public String toString() { public String toString() {

View File

@@ -59,6 +59,14 @@ public class GuiRenderSettings extends GuiScreen implements Closeable {
new GuiDropdownMenu<RenderSettings.RenderMethod>().onSelection(new Consumer<Integer>() { new GuiDropdownMenu<RenderSettings.RenderMethod>().onSelection(new Consumer<Integer>() {
@Override @Override
public void consume(Integer old) { public void consume(Integer old) {
if (renderMethodDropdown.getSelectedValue() == RenderSettings.RenderMethod.BLEND
^ encodingPresetDropdown.getSelectedValue() == RenderSettings.EncodingPreset.BLEND) {
if (renderMethodDropdown.getSelectedValue() == RenderSettings.RenderMethod.BLEND) {
encodingPresetDropdown.setSelected(RenderSettings.EncodingPreset.BLEND);
} else {
encodingPresetDropdown.setSelected(RenderSettings.EncodingPreset.MP4_DEFAULT);
}
}
updateInputs(); updateInputs();
} }
}).setMinSize(new Dimension(0, 20)).setValues(RenderSettings.RenderMethod.values()); }).setMinSize(new Dimension(0, 20)).setValues(RenderSettings.RenderMethod.values());
@@ -75,6 +83,10 @@ public class GuiRenderSettings extends GuiScreen implements Closeable {
@Override @Override
public void consume(Integer old) { public void consume(Integer old) {
RenderSettings.EncodingPreset newPreset = encodingPresetDropdown.getSelectedValue(); RenderSettings.EncodingPreset newPreset = encodingPresetDropdown.getSelectedValue();
if (newPreset == RenderSettings.EncodingPreset.BLEND
&& encodingPresetDropdown.getSelectedValue() == RenderSettings.EncodingPreset.BLEND) {
renderMethodDropdown.setSelected(RenderSettings.RenderMethod.BLEND);
}
// Update export arguments to match new Preset // Update export arguments to match new Preset
exportArguments.setText(newPreset.getValue()); exportArguments.setText(newPreset.getValue());
// If the user hasn't changed the output file by themselves, // If the user hasn't changed the output file by themselves,
@@ -361,6 +373,17 @@ public class GuiRenderSettings extends GuiScreen implements Closeable {
injectSphericalMetadata.setDisabled().setTooltip(new GuiTooltip().setColor(Colors.RED) injectSphericalMetadata.setDisabled().setTooltip(new GuiTooltip().setColor(Colors.RED)
.setI18nText("replaymod.gui.rendersettings.sphericalmetadata.error")); .setI18nText("replaymod.gui.rendersettings.sphericalmetadata.error"));
} }
// Enable/Disable various options for blend export
boolean isBlend = renderMethod == RenderSettings.RenderMethod.BLEND;
if (isBlend) {
videoWidth.setDisabled();
videoHeight.setDisabled();
}
encodingPresetDropdown.setEnabled(!isBlend);
exportCommand.setEnabled(!isBlend);
exportArguments.setEnabled(!isBlend);
antiAliasingDropdown.setEnabled(!isBlend);
} }
protected String updateResolution() { protected String updateResolution() {