diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/EmuCore.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/EmuCore.cs index dfaebcec..2014c0a1 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/EmuCore.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/EmuCore.cs @@ -44,6 +44,11 @@ namespace AxibugEmuOnline.Client public abstract Texture OutputPixel { get; } public abstract RawImage DrawCanvas { get; } + /// + /// 渲染朝向,用于截图 + /// + public abstract Vector3 DrawLocalScale { get; } + /// 指示该游戏实例是否处于联机模式 public bool IsNetPlay diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgee.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgee.cs index f21a7735..31a63544 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgee.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgee.cs @@ -30,6 +30,7 @@ public class UEssgee : EmuCore public override Texture OutputPixel => graphicsHandler.rawBufferWarper; public override RawImage DrawCanvas => graphicsHandler.DrawCanvas; + public override Vector3 DrawLocalScale => new Vector3(1, -1, 1); public static bool bLogicUpdatePause { get; private set; } #region diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/MameEmulator/UMAME.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/MameEmulator/UMAME.cs index 7532ee89..434a5367 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/MameEmulator/UMAME.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/MameEmulator/UMAME.cs @@ -230,11 +230,7 @@ public class UMAME : EmuCore br.Close(); fs.Close(); } - - public override Texture OutputPixel => mUniVideoPlayer.rawBufferWarper; - public override RawImage DrawCanvas => mUniVideoPlayer.DrawCanvas; - - + public override Vector3 DrawLocalScale => new Vector3(1, -1, 1); } \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/NesEmulator/NesEmulator.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/NesEmulator/NesEmulator.cs index 38b31b2b..3c81dfaa 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/NesEmulator/NesEmulator.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/NesEmulator/NesEmulator.cs @@ -167,6 +167,7 @@ namespace AxibugEmuOnline.Client public override Texture OutputPixel => VideoProvider.OutputPixel; public override RawImage DrawCanvas => VideoProvider.Drawer; + public override Vector3 DrawLocalScale => DrawCanvas.transform.localScale; public override void GetAudioParams(out int frequency, out int channels) { AudioProvider.GetAudioParams(out frequency, out channels); diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/StoicGooseEmulator/UStoicGoose.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/StoicGooseEmulator/UStoicGoose.cs index 9247d6e9..a718e644 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/StoicGooseEmulator/UStoicGoose.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/StoicGooseEmulator/UStoicGoose.cs @@ -57,6 +57,9 @@ public class UStoicGoose : EmuCore public override Texture OutputPixel => graphicsHandler.rawBufferWarper; public override RawImage DrawCanvas => graphicsHandler.DrawCanvas; + + public override Vector3 DrawLocalScale => DrawCanvas.transform.localScale; + public override object GetState() { throw new NotImplementedException(); diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_SaveStateMenu.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_SaveStateMenu.cs index b98ed527..74e97dbd 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_SaveStateMenu.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_SaveStateMenu.cs @@ -99,7 +99,7 @@ namespace AxibugEmuOnline.Client var stateData = m_ingameUI.Core.GetStateBytes(); var tex = m_ingameUI.Core.OutputPixel; - var screenData = tex.ToJPG(m_ingameUI.Core.DrawCanvas.transform.localScale); + var screenData = tex.ToJPG(m_ingameUI.Core.DrawLocalScale); m_savFile.Save(m_savFile.Sequecen + 1, stateData, screenData); } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_UploadGameCoverImg.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_UploadGameCoverImg.cs index d7ca550b..360eeb19 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_UploadGameCoverImg.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_UploadGameCoverImg.cs @@ -15,7 +15,7 @@ namespace AxibugEmuOnline.Client public override void OnExcute(OptionUI optionUI, ref bool cancelHide) { var tex = m_gameUI.Core.OutputPixel; - var screenData = tex.ToJPG(m_gameUI.Core.DrawCanvas.transform.localScale); + var screenData = tex.ToJPG(m_gameUI.Core.DrawLocalScale); App.share.SendUpLoadGameScreenCover(m_gameUI.RomFile.ID, screenData); } }