Implement ffmpeg-independent PNGWriter (closes #476)

Creates a dedicated folder for each video and does not depend on ffmpeg, just
like the EXRWriter (but supporting all MC versions).

Also does 32 bit depth export by chunking the 32-bit float into the 8-bit BGRA
component channels.
This commit is contained in:
Jonas Herzig
2021-02-28 01:36:30 +01:00
parent 8ff27437af
commit dda6bd41b6
6 changed files with 84 additions and 8 deletions

View File

@@ -406,8 +406,9 @@ public class GuiRenderSettings extends AbstractGuiPopup<GuiRenderSettings> {
// Enable/Disable various options for blend export
boolean isEXR = encodingPresetDropdown.getSelectedValue() == RenderSettings.EncodingPreset.EXR;
boolean isPNG = encodingPresetDropdown.getSelectedValue() == RenderSettings.EncodingPreset.PNG;
boolean isBlend = renderMethod == RenderSettings.RenderMethod.BLEND;
boolean isFFmpeg = !isBlend && !isEXR;
boolean isFFmpeg = !isBlend && !isEXR && !isPNG;
if (isBlend) {
videoWidth.setDisabled();
videoHeight.setDisabled();
@@ -417,11 +418,11 @@ public class GuiRenderSettings extends AbstractGuiPopup<GuiRenderSettings> {
exportArguments.setEnabled(isFFmpeg);
antiAliasingDropdown.setEnabled(isFFmpeg);
if (isEXR) {
if (isEXR || isPNG) {
depthMap.setEnabled().setTooltip(null);
} else {
depthMap.setDisabled().setTooltip(new GuiTooltip().setColor(Colors.RED)
.setI18nText("replaymod.gui.rendersettings.depthmap.onlyexr"));
.setI18nText("replaymod.gui.rendersettings.depthmap.only_exr_or_png"));
}
// Enable/Disable export args reset button