mirror of
https://github.com/xivdev/Penumbra.git
synced 2025-12-12 10:17:22 +01:00
Merge remote-tracking branch 'refs/remotes/Exter-N/feature/texture-stuff'
# Conflicts: # Penumbra/UI/AdvancedWindow/ModEditWindow.Textures.cs
This commit is contained in:
commit
4f71065d67
2 changed files with 28 additions and 23 deletions
|
|
@ -15,12 +15,12 @@ public partial class CombinedTexture
|
|||
{
|
||||
private enum CombineOp
|
||||
{
|
||||
LeftMultiply = -4,
|
||||
LeftCopy = -3,
|
||||
RightCopy = -2,
|
||||
Invalid = -1,
|
||||
Over = 0,
|
||||
Under = 1,
|
||||
LeftMultiply = 2,
|
||||
RightMultiply = 3,
|
||||
CopyChannels = 4,
|
||||
}
|
||||
|
|
@ -47,7 +47,6 @@ public partial class CombinedTexture
|
|||
{
|
||||
"Overlay over Input",
|
||||
"Input over Overlay",
|
||||
"Ignore Overlay",
|
||||
"Replace Input",
|
||||
"Copy Channels",
|
||||
};
|
||||
|
|
@ -55,9 +54,8 @@ public partial class CombinedTexture
|
|||
private static readonly IReadOnlyList<string> CombineOpTooltips = new string[]
|
||||
{
|
||||
"Standard composition.\nApply the overlay over the input.",
|
||||
"Standard composition, reversed.\nApply the input over the overlay.",
|
||||
"Use only the input, and ignore the overlay.",
|
||||
"Completely replace the input with the overlay.",
|
||||
"Standard composition, reversed.\nApply the input over the overlay ; can be used to fix some wrong imports.",
|
||||
"Completely replace the input with the overlay.\nCan be used to select the destination file as input and the source file as overlay.",
|
||||
"Replace some input channels with those from the overlay.\nUseful for Multi maps.",
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ using System.IO;
|
|||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using System.Threading.Tasks;
|
||||
using Dalamud.Interface;
|
||||
using ImGuiNET;
|
||||
using OtterGui;
|
||||
using OtterGui.Raii;
|
||||
|
|
@ -127,23 +126,14 @@ public partial class ModEditWindow
|
|||
}
|
||||
|
||||
ImGui.SameLine();
|
||||
if (ImGui.Button("Save as TEX, DDS or PNG", buttonSize2))
|
||||
{
|
||||
var fileName = Path.GetFileNameWithoutExtension(_left.Path.Length > 0 ? _left.Path : _right.Path);
|
||||
_fileDialog.OpenSavePicker("Save Texture as TEX, DDS or PNG...", "Textures{.png,.dds,.tex},.tex,.dds,.png", fileName, ".tex",
|
||||
(a, b) =>
|
||||
{
|
||||
if (a)
|
||||
{
|
||||
_center.SaveAs(null, _textures, b, (CombinedTexture.TextureSaveType)_currentSaveAs, _addMipMaps);
|
||||
if (b == _left.Path)
|
||||
AddReloadTask(_left.Path, false);
|
||||
else if (b == _right.Path)
|
||||
AddReloadTask(_right.Path, true);
|
||||
}
|
||||
}, _mod!.ModPath.FullName, _forceTextureStartPath);
|
||||
_forceTextureStartPath = false;
|
||||
}
|
||||
if (ImGui.Button("Save as TEX", buttonSize2))
|
||||
OpenSaveAsDialog(".tex");
|
||||
|
||||
if (ImGui.Button("Export as PNG", buttonSize2))
|
||||
OpenSaveAsDialog(".png");
|
||||
ImGui.SameLine();
|
||||
if (ImGui.Button("Export as DDS", buttonSize2))
|
||||
OpenSaveAsDialog(".dds");
|
||||
|
||||
ImGui.NewLine();
|
||||
|
||||
|
|
@ -206,6 +196,23 @@ public partial class ModEditWindow
|
|||
_center.Draw(_textures, imageSize);
|
||||
}
|
||||
|
||||
private void OpenSaveAsDialog(string defaultExtension)
|
||||
{
|
||||
var fileName = Path.GetFileNameWithoutExtension(_left.Path.Length > 0 ? _left.Path : _right.Path);
|
||||
_fileDialog.OpenSavePicker("Save Texture as TEX, DDS or PNG...", "Textures{.png,.dds,.tex},.tex,.dds,.png", fileName, defaultExtension, (a, b) =>
|
||||
{
|
||||
if (a)
|
||||
{
|
||||
_center.SaveAs(null, _textures, b, (CombinedTexture.TextureSaveType)_currentSaveAs, _addMipMaps);
|
||||
if (b == _left.Path)
|
||||
AddReloadTask(_left.Path, false);
|
||||
else if (b == _right.Path)
|
||||
AddReloadTask(_right.Path, true);
|
||||
}
|
||||
}, _mod!.ModPath.FullName, _forceTextureStartPath);
|
||||
_forceTextureStartPath = false;
|
||||
}
|
||||
|
||||
private void AddReloadTask(string path, bool right)
|
||||
{
|
||||
_center.SaveTask.ContinueWith(t =>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue