UI: Added option to display play/record icon when playing/recording movies + option to hide the pause overlay
This commit is contained in:
parent
10d68ac511
commit
2077a7ae13
15 changed files with 162 additions and 29 deletions
|
@ -50,6 +50,9 @@ enum EmulationFlags : uint64_t
|
|||
Turbo = 0x2000000000,
|
||||
InBackground = 0x4000000000,
|
||||
NsfPlayerEnabled = 0x8000000000,
|
||||
|
||||
DisplayMovieIcons = 0x10000000000,
|
||||
HidePauseOverlay = 0x20000000000,
|
||||
};
|
||||
|
||||
enum class AudioChannel
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#include "VideoHud.h"
|
||||
#include "ControlManager.h"
|
||||
#include "StandardController.h"
|
||||
#include "Movie.h"
|
||||
|
||||
void VideoHud::DrawHud(uint8_t *outputBuffer, FrameInfo frameInfo, OverscanDimensions overscan)
|
||||
{
|
||||
|
@ -14,9 +15,11 @@ void VideoHud::DrawHud(uint8_t *outputBuffer, FrameInfo frameInfo, OverscanDimen
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
DrawMovieIcons(outputBuffer, frameInfo, overscan);
|
||||
}
|
||||
|
||||
bool VideoHud::DisplayControllerInput(int inputPort, uint8_t *outputBuffer, FrameInfo frameInfo, OverscanDimensions overscan, uint32_t displayIndex)
|
||||
bool VideoHud::DisplayControllerInput(int inputPort, uint8_t *outputBuffer, FrameInfo &frameInfo, OverscanDimensions &overscan, uint32_t displayIndex)
|
||||
{
|
||||
int scale = frameInfo.Width / overscan.GetScreenWidth();
|
||||
uint32_t* rgbaBuffer = (uint32_t*)outputBuffer;
|
||||
|
@ -71,6 +74,47 @@ bool VideoHud::DisplayControllerInput(int inputPort, uint8_t *outputBuffer, Fram
|
|||
return false;
|
||||
}
|
||||
|
||||
void VideoHud::DrawMovieIcons(uint8_t *outputBuffer, FrameInfo &frameInfo, OverscanDimensions &overscan)
|
||||
{
|
||||
if(EmulationSettings::CheckFlag(EmulationFlags::DisplayMovieIcons) && (Movie::Playing() || Movie::Recording())) {
|
||||
InputDisplaySettings settings = EmulationSettings::GetInputDisplaySettings();
|
||||
uint32_t xOffset = settings.VisiblePorts > 0 && settings.DisplayPosition == InputDisplayPosition::TopRight ? 50 : 27;
|
||||
uint32_t* rgbaBuffer = (uint32_t*)outputBuffer;
|
||||
int scale = frameInfo.Width / overscan.GetScreenWidth();
|
||||
uint32_t yStart = 15 * scale;
|
||||
uint32_t xStart = (frameInfo.Width - xOffset) * scale;
|
||||
if(Movie::Playing()) {
|
||||
for(int y = 0; y < 12 * scale; y++) {
|
||||
for(int x = 0; x < 12 * scale; x++) {
|
||||
uint32_t bufferPos = (yStart + y)*frameInfo.Width + (xStart + x);
|
||||
uint32_t gridValue = _playIcon[y / scale * 12 + x / scale];
|
||||
if(gridValue == 1) {
|
||||
BlendColors(rgbaBuffer + bufferPos, 0xEF00CF00);
|
||||
} else if(gridValue == 2) {
|
||||
BlendColors(rgbaBuffer + bufferPos, 0xEF009F00);
|
||||
} else if(gridValue == 3) {
|
||||
BlendColors(rgbaBuffer + bufferPos, 0xEF000000);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if(Movie::Recording()) {
|
||||
for(int y = 0; y < 12 * scale; y++) {
|
||||
for(int x = 0; x < 12 * scale; x++) {
|
||||
uint32_t bufferPos = (yStart + y)*frameInfo.Width + (xStart + x);
|
||||
uint32_t gridValue = _recordIcon[y / scale * 12 + x / scale];
|
||||
if(gridValue == 1) {
|
||||
BlendColors(rgbaBuffer + bufferPos, 0xEFCF0000);
|
||||
} else if(gridValue == 2) {
|
||||
BlendColors(rgbaBuffer + bufferPos, 0xEF9F0000);
|
||||
} else if(gridValue == 3) {
|
||||
BlendColors(rgbaBuffer + bufferPos, 0xEF000000);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void VideoHud::BlendColors(uint32_t* output, uint32_t input)
|
||||
{
|
||||
uint8_t inA = (input >> 24) & 0xFF;
|
||||
|
@ -85,6 +129,36 @@ void VideoHud::BlendColors(uint32_t* output, uint32_t input)
|
|||
*output = 0xFF000000 | (outR << 16) | (outG << 8) | outB;
|
||||
}
|
||||
|
||||
const vector<uint32_t> VideoHud::_playIcon = {
|
||||
3,3,3,0,0,0,0,0,0,0,0,0,
|
||||
3,1,1,3,3,0,0,0,0,0,0,0,
|
||||
3,1,2,1,1,3,3,0,0,0,0,0,
|
||||
3,1,2,2,2,1,1,3,3,0,0,0,
|
||||
3,1,2,2,2,2,2,1,1,3,0,0,
|
||||
3,1,2,2,2,2,2,2,2,1,3,0,
|
||||
3,1,2,2,2,2,2,2,2,1,3,0,
|
||||
3,1,2,2,2,2,2,1,1,3,0,0,
|
||||
3,1,2,2,2,1,1,3,3,0,0,0,
|
||||
3,1,2,1,1,3,3,0,0,0,0,0,
|
||||
3,1,1,3,3,0,0,0,0,0,0,0,
|
||||
3,3,3,0,0,0,0,0,0,0,0,0,
|
||||
};
|
||||
|
||||
const vector<uint32_t> VideoHud::_recordIcon = {
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,3,3,0,0,0,0,0,
|
||||
0,0,0,3,3,1,1,3,3,0,0,0,
|
||||
0,0,3,1,1,2,2,1,1,3,0,0,
|
||||
0,0,3,1,2,2,2,2,1,3,0,0,
|
||||
0,3,1,2,2,2,2,2,2,1,3,0,
|
||||
0,3,1,2,2,2,2,2,2,1,3,0,
|
||||
0,0,3,1,2,2,2,2,1,3,0,0,
|
||||
0,0,3,1,1,2,2,1,1,3,0,0,
|
||||
0,0,0,3,3,1,1,3,3,0,0,0,
|
||||
0,0,0,0,0,3,3,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
};
|
||||
|
||||
const vector<uint32_t> VideoHud::_gamePads[4] = {
|
||||
{ 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,
|
||||
9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,
|
||||
|
|
|
@ -7,9 +7,12 @@ class VideoHud
|
|||
{
|
||||
private:
|
||||
static const vector<uint32_t> _gamePads[4];
|
||||
static const vector<uint32_t> _playIcon;
|
||||
static const vector<uint32_t> _recordIcon;
|
||||
|
||||
void BlendColors(uint32_t* output, uint32_t input);
|
||||
bool DisplayControllerInput(int inputPort, uint8_t *outputBuffer, FrameInfo frameInfo, OverscanDimensions overscan, uint32_t displayIndex);
|
||||
bool DisplayControllerInput(int inputPort, uint8_t *outputBuffer, FrameInfo &frameInfo, OverscanDimensions &overscan, uint32_t displayIndex);
|
||||
void DrawMovieIcons(uint8_t *outputBuffer, FrameInfo &frameInfo, OverscanDimensions &overscan);
|
||||
|
||||
public:
|
||||
void DrawHud(uint8_t *outputBuffer, FrameInfo frameInfo, OverscanDimensions overscan);
|
||||
|
|
|
@ -14,6 +14,9 @@ namespace Mesen.GUI.Config
|
|||
public bool AllowInvalidInput = false;
|
||||
public bool RemoveSpriteLimit = false;
|
||||
|
||||
public bool DisplayMovieIcons = false;
|
||||
public bool HidePauseOverlay = false;
|
||||
|
||||
public bool AutoSave = true;
|
||||
public Int32 AutoSaveDelay = 5;
|
||||
public bool AutoSaveNotify = false;
|
||||
|
@ -90,6 +93,9 @@ namespace Mesen.GUI.Config
|
|||
InteropEmu.SetFlag(EmulationFlags.PauseWhenInBackground, preferenceInfo.PauseWhenInBackground);
|
||||
InteropEmu.SetFlag(EmulationFlags.DisableGameDatabase, preferenceInfo.DisableGameDatabase);
|
||||
|
||||
InteropEmu.SetFlag(EmulationFlags.HidePauseOverlay, preferenceInfo.HidePauseOverlay);
|
||||
InteropEmu.SetFlag(EmulationFlags.DisplayMovieIcons, preferenceInfo.DisplayMovieIcons);
|
||||
|
||||
InteropEmu.NsfSetNsfConfig(preferenceInfo.NsfAutoDetectSilence ? preferenceInfo.NsfAutoDetectSilenceDelay : 0, preferenceInfo.NsfMoveToNextTrackAfterTime ? preferenceInfo.NsfMoveToNextTrackTime : -1, preferenceInfo.NsfDisableApuIrqs);
|
||||
InteropEmu.SetAutoSaveOptions(preferenceInfo.AutoSave ? (uint)preferenceInfo.AutoSaveDelay : 0, preferenceInfo.AutoSaveNotify);
|
||||
InteropEmu.SetEmulatorKeys(new EmulatorKeyMappingSet() { KeySet1 = preferenceInfo.EmulatorKeySet1.Value, KeySet2 = preferenceInfo.EmulatorKeySet2.Value });
|
||||
|
|
|
@ -329,6 +329,8 @@
|
|||
<Control ID="chkAllowBackgroundInput">Permitir entradas aunque Mesen esté en segundo plano</Control>
|
||||
<Control ID="chkPauseWhenInBackground">Pausar la emulación aunque Mesen esté en segundo plano</Control>
|
||||
<Control ID="chkAutoLoadIps">Cargar los archivos IPS/UPS/BPS automáticamente</Control>
|
||||
<Control ID="chkHidePauseOverlay">Hide the pause screen</Control>
|
||||
<Control ID="chkDisplayMovieIcons">Display play/record icon when playing or recording a movie</Control>
|
||||
<Control ID="btnOpenMesenFolder">Abrir el directorio de Mesen</Control>
|
||||
<Control ID="tpgFileAssociations">Asociación de archivos</Control>
|
||||
<Control ID="grpFileAssociations">Asociación de archivos</Control>
|
||||
|
|
|
@ -331,6 +331,8 @@
|
|||
<Control ID="chkAllowBackgroundInput">Permettre les entrées lorsque Mesen est en arrière-plan</Control>
|
||||
<Control ID="chkPauseWhenInBackground">Pauser l'émulation lorsque Mesen est en arrière-plan</Control>
|
||||
<Control ID="chkAutoLoadIps">Charger les fichiers IPS/UPS/BPS automatiquement</Control>
|
||||
<Control ID="chkHidePauseOverlay">Ne pas afficher l'écran de pause</Control>
|
||||
<Control ID="chkDisplayMovieIcons">Afficher un icône lors de la lecture ou de l'enregistrement des films</Control>
|
||||
<Control ID="btnOpenMesenFolder">Ouvrir le dossier de Mesen</Control>
|
||||
<Control ID="tpgFileAssociations">Associations de fichiers</Control>
|
||||
<Control ID="grpFileAssociations">Associations de fichiers</Control>
|
||||
|
|
|
@ -330,6 +330,8 @@
|
|||
<Control ID="chkAllowBackgroundInput">Mesenが最前面ではない時、コントローラは反応しない</Control>
|
||||
<Control ID="chkPauseWhenInBackground">Mesenが最前面ではない時、自動的にポーズする</Control>
|
||||
<Control ID="chkAutoLoadIps">自動的にパッチファイル(IPS・UPS)をロードする</Control>
|
||||
<Control ID="chkHidePauseOverlay">ポーズ画面を隠す</Control>
|
||||
<Control ID="chkDisplayMovieIcons">動画の録画や再生の際、アイコンを表示する</Control>
|
||||
<Control ID="btnOpenMesenFolder">Mesenのフォルダを開く</Control>
|
||||
<Control ID="tpgFileAssociations">ファイルの関連付け</Control>
|
||||
<Control ID="grpFileAssociations">ファイルの関連付け</Control>
|
||||
|
|
|
@ -329,6 +329,8 @@
|
|||
<Control ID="chkAllowBackgroundInput">Permitir inputs quando Mesen estiver em segundo plano</Control>
|
||||
<Control ID="chkPauseWhenInBackground">Pausar a emulação quando Mesen estiver em segundo plano</Control>
|
||||
<Control ID="chkAutoLoadIps">Carregar os arquivos IPS/UPS/BPS automaticamente</Control>
|
||||
<Control ID="chkHidePauseOverlay">Hide the pause screen</Control>
|
||||
<Control ID="chkDisplayMovieIcons">Display play/record icon when playing or recording a movie</Control>
|
||||
<Control ID="btnOpenMesenFolder">Abrir a pasta de Mesen</Control>
|
||||
<Control ID="tpgFileAssociations">Associação de arquivos</Control>
|
||||
<Control ID="grpFileAssociations">Associação de arquivos</Control>
|
||||
|
|
|
@ -330,6 +330,8 @@
|
|||
<Control ID="chkAllowBackgroundInput">Разрешить ввод в фоне</Control>
|
||||
<Control ID="chkPauseWhenInBackground">Ставить на паузу при потере фокуса</Control>
|
||||
<Control ID="chkAutoLoadIps">Автоматически загружать IPS/UPS</Control>
|
||||
<Control ID="chkHidePauseOverlay">Hide the pause screen</Control>
|
||||
<Control ID="chkDisplayMovieIcons">Display play/record icon when playing or recording a movie</Control>
|
||||
<Control ID="btnOpenMesenFolder">Открыть папку Mesen</Control>
|
||||
<Control ID="tpgFileAssociations">Ассоциации файлов</Control>
|
||||
<Control ID="grpFileAssociations">Ассоциации файлов</Control>
|
||||
|
|
|
@ -330,6 +330,8 @@
|
|||
<Control ID="chkAllowBackgroundInput">Дозволити введення в тлі</Control>
|
||||
<Control ID="chkPauseWhenInBackground">Ставити на паузу при втраті фокуса</Control>
|
||||
<Control ID="chkAutoLoadIps">Автоматично завантажувати IPS/UPS</Control>
|
||||
<Control ID="chkHidePauseOverlay">Hide the pause screen</Control>
|
||||
<Control ID="chkDisplayMovieIcons">Display play/record icon when playing or recording a movie</Control>
|
||||
<Control ID="btnOpenMesenFolder">Відкрити папку Mesen</Control>
|
||||
<Control ID="tpgFileAssociations">Асоціації файлів</Control>
|
||||
<Control ID="grpFileAssociations">Асоціації файлів</Control>
|
||||
|
|
79
GUI.NET/Forms/Config/frmPreferences.Designer.cs
generated
79
GUI.NET/Forms/Config/frmPreferences.Designer.cs
generated
|
@ -45,6 +45,8 @@ namespace Mesen.GUI.Forms.Config
|
|||
this.cboDisplayLanguage = new System.Windows.Forms.ComboBox();
|
||||
this.tabMain = new System.Windows.Forms.TabControl();
|
||||
this.tpgGeneral = new System.Windows.Forms.TabPage();
|
||||
this.tpgShortcuts = new System.Windows.Forms.TabPage();
|
||||
this.ctrlEmulatorShortcuts = new Mesen.GUI.Forms.Config.ctrlEmulatorShortcuts();
|
||||
this.tpgSaveData = new System.Windows.Forms.TabPage();
|
||||
this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.grpCloudSaves = new System.Windows.Forms.GroupBox();
|
||||
|
@ -91,16 +93,17 @@ namespace Mesen.GUI.Forms.Config
|
|||
this.chkUnfFormat = new System.Windows.Forms.CheckBox();
|
||||
this.tpgAdvanced = new System.Windows.Forms.TabPage();
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.chkDisableGameDatabase = new ctrlRiskyOption();
|
||||
this.chkDisableGameDatabase = new Mesen.GUI.Controls.ctrlRiskyOption();
|
||||
this.chkFdsAutoLoadDisk = new System.Windows.Forms.CheckBox();
|
||||
this.chkFdsFastForwardOnLoad = new System.Windows.Forms.CheckBox();
|
||||
this.tmrSyncDateTime = new System.Windows.Forms.Timer(this.components);
|
||||
this.tpgShortcuts = new System.Windows.Forms.TabPage();
|
||||
this.ctrlEmulatorShortcuts = new Mesen.GUI.Forms.Config.ctrlEmulatorShortcuts();
|
||||
this.chkDisplayMovieIcons = new System.Windows.Forms.CheckBox();
|
||||
this.chkHidePauseOverlay = new System.Windows.Forms.CheckBox();
|
||||
this.tlpMain.SuspendLayout();
|
||||
this.flowLayoutPanel2.SuspendLayout();
|
||||
this.tabMain.SuspendLayout();
|
||||
this.tpgGeneral.SuspendLayout();
|
||||
this.tpgShortcuts.SuspendLayout();
|
||||
this.tpgSaveData.SuspendLayout();
|
||||
this.tableLayoutPanel3.SuspendLayout();
|
||||
this.grpCloudSaves.SuspendLayout();
|
||||
|
@ -125,7 +128,6 @@ namespace Mesen.GUI.Forms.Config
|
|||
this.tlpFileFormat.SuspendLayout();
|
||||
this.tpgAdvanced.SuspendLayout();
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
this.tpgShortcuts.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// baseConfigPanel
|
||||
|
@ -137,6 +139,7 @@ namespace Mesen.GUI.Forms.Config
|
|||
//
|
||||
this.tlpMain.ColumnCount = 1;
|
||||
this.tlpMain.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tlpMain.Controls.Add(this.chkHidePauseOverlay, 0, 9);
|
||||
this.tlpMain.Controls.Add(this.chkSingleInstance, 0, 2);
|
||||
this.tlpMain.Controls.Add(this.chkAutomaticallyCheckForUpdates, 0, 1);
|
||||
this.tlpMain.Controls.Add(this.chkPauseOnMovieEnd, 0, 6);
|
||||
|
@ -144,12 +147,15 @@ namespace Mesen.GUI.Forms.Config
|
|||
this.tlpMain.Controls.Add(this.chkPauseWhenInBackground, 0, 4);
|
||||
this.tlpMain.Controls.Add(this.chkAutoLoadIps, 0, 3);
|
||||
this.tlpMain.Controls.Add(this.flowLayoutPanel6, 0, 1);
|
||||
this.tlpMain.Controls.Add(this.btnOpenMesenFolder, 0, 9);
|
||||
this.tlpMain.Controls.Add(this.btnOpenMesenFolder, 0, 11);
|
||||
this.tlpMain.Controls.Add(this.flowLayoutPanel2, 0, 0);
|
||||
this.tlpMain.Controls.Add(this.chkDisplayMovieIcons, 0, 8);
|
||||
this.tlpMain.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tlpMain.Location = new System.Drawing.Point(3, 3);
|
||||
this.tlpMain.Name = "tlpMain";
|
||||
this.tlpMain.RowCount = 10;
|
||||
this.tlpMain.RowCount = 12;
|
||||
this.tlpMain.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tlpMain.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tlpMain.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tlpMain.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tlpMain.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
|
@ -219,7 +225,7 @@ namespace Mesen.GUI.Forms.Config
|
|||
this.chkAutoLoadIps.AutoSize = true;
|
||||
this.chkAutoLoadIps.Location = new System.Drawing.Point(3, 75);
|
||||
this.chkAutoLoadIps.Name = "chkAutoLoadIps";
|
||||
this.chkAutoLoadIps.Size = new System.Drawing.Size(132, 17);
|
||||
this.chkAutoLoadIps.Size = new System.Drawing.Size(185, 17);
|
||||
this.chkAutoLoadIps.TabIndex = 9;
|
||||
this.chkAutoLoadIps.Text = "Auto-load IPS/UPS/BPS patches";
|
||||
this.chkAutoLoadIps.UseVisualStyleBackColor = true;
|
||||
|
@ -300,6 +306,25 @@ namespace Mesen.GUI.Forms.Config
|
|||
this.tpgGeneral.Text = "General";
|
||||
this.tpgGeneral.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tpgShortcuts
|
||||
//
|
||||
this.tpgShortcuts.Controls.Add(this.ctrlEmulatorShortcuts);
|
||||
this.tpgShortcuts.Location = new System.Drawing.Point(4, 22);
|
||||
this.tpgShortcuts.Name = "tpgShortcuts";
|
||||
this.tpgShortcuts.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tpgShortcuts.Size = new System.Drawing.Size(479, 343);
|
||||
this.tpgShortcuts.TabIndex = 7;
|
||||
this.tpgShortcuts.Text = "Shortcut Keys";
|
||||
this.tpgShortcuts.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// ctrlEmulatorShortcuts
|
||||
//
|
||||
this.ctrlEmulatorShortcuts.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.ctrlEmulatorShortcuts.Location = new System.Drawing.Point(3, 3);
|
||||
this.ctrlEmulatorShortcuts.Name = "ctrlEmulatorShortcuts";
|
||||
this.ctrlEmulatorShortcuts.Size = new System.Drawing.Size(473, 337);
|
||||
this.ctrlEmulatorShortcuts.TabIndex = 0;
|
||||
//
|
||||
// tpgSaveData
|
||||
//
|
||||
this.tpgSaveData.Controls.Add(this.tableLayoutPanel3);
|
||||
|
@ -883,9 +908,10 @@ namespace Mesen.GUI.Forms.Config
|
|||
// chkDisableGameDatabase
|
||||
//
|
||||
this.chkDisableGameDatabase.AutoSize = true;
|
||||
this.chkDisableGameDatabase.Location = new System.Drawing.Point(3, 3);
|
||||
this.chkDisableGameDatabase.Checked = false;
|
||||
this.chkDisableGameDatabase.Location = new System.Drawing.Point(0, 0);
|
||||
this.chkDisableGameDatabase.Name = "chkDisableGameDatabase";
|
||||
this.chkDisableGameDatabase.Size = new System.Drawing.Size(170, 17);
|
||||
this.chkDisableGameDatabase.Size = new System.Drawing.Size(268, 23);
|
||||
this.chkDisableGameDatabase.TabIndex = 6;
|
||||
this.chkDisableGameDatabase.Text = "Disable built-in game database";
|
||||
//
|
||||
|
@ -914,24 +940,25 @@ namespace Mesen.GUI.Forms.Config
|
|||
this.tmrSyncDateTime.Enabled = true;
|
||||
this.tmrSyncDateTime.Tick += new System.EventHandler(this.tmrSyncDateTime_Tick);
|
||||
//
|
||||
// tpgShortcuts
|
||||
// chkDisplayMovieIcons
|
||||
//
|
||||
this.tpgShortcuts.Controls.Add(this.ctrlEmulatorShortcuts);
|
||||
this.tpgShortcuts.Location = new System.Drawing.Point(4, 22);
|
||||
this.tpgShortcuts.Name = "tpgShortcuts";
|
||||
this.tpgShortcuts.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tpgShortcuts.Size = new System.Drawing.Size(479, 343);
|
||||
this.tpgShortcuts.TabIndex = 7;
|
||||
this.tpgShortcuts.Text = "Shortcut Keys";
|
||||
this.tpgShortcuts.UseVisualStyleBackColor = true;
|
||||
this.chkDisplayMovieIcons.AutoSize = true;
|
||||
this.chkDisplayMovieIcons.Location = new System.Drawing.Point(3, 167);
|
||||
this.chkDisplayMovieIcons.Name = "chkDisplayMovieIcons";
|
||||
this.chkDisplayMovieIcons.Size = new System.Drawing.Size(304, 17);
|
||||
this.chkDisplayMovieIcons.TabIndex = 19;
|
||||
this.chkDisplayMovieIcons.Text = "Display play/record icon when playing or recording a movie";
|
||||
this.chkDisplayMovieIcons.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// ctrlEmulatorShortcuts
|
||||
// chkHidePauseOverlay
|
||||
//
|
||||
this.ctrlEmulatorShortcuts.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.ctrlEmulatorShortcuts.Location = new System.Drawing.Point(3, 3);
|
||||
this.ctrlEmulatorShortcuts.Name = "ctrlEmulatorShortcuts";
|
||||
this.ctrlEmulatorShortcuts.Size = new System.Drawing.Size(473, 337);
|
||||
this.ctrlEmulatorShortcuts.TabIndex = 0;
|
||||
this.chkHidePauseOverlay.AutoSize = true;
|
||||
this.chkHidePauseOverlay.Location = new System.Drawing.Point(3, 190);
|
||||
this.chkHidePauseOverlay.Name = "chkHidePauseOverlay";
|
||||
this.chkHidePauseOverlay.Size = new System.Drawing.Size(212, 17);
|
||||
this.chkHidePauseOverlay.TabIndex = 20;
|
||||
this.chkHidePauseOverlay.Text = "Hide the pause screen";
|
||||
this.chkHidePauseOverlay.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// frmPreferences
|
||||
//
|
||||
|
@ -954,6 +981,7 @@ namespace Mesen.GUI.Forms.Config
|
|||
this.flowLayoutPanel2.PerformLayout();
|
||||
this.tabMain.ResumeLayout(false);
|
||||
this.tpgGeneral.ResumeLayout(false);
|
||||
this.tpgShortcuts.ResumeLayout(false);
|
||||
this.tpgSaveData.ResumeLayout(false);
|
||||
this.tableLayoutPanel3.ResumeLayout(false);
|
||||
this.grpCloudSaves.ResumeLayout(false);
|
||||
|
@ -988,7 +1016,6 @@ namespace Mesen.GUI.Forms.Config
|
|||
this.tpgAdvanced.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.PerformLayout();
|
||||
this.tpgShortcuts.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
@ -1061,5 +1088,7 @@ namespace Mesen.GUI.Forms.Config
|
|||
private System.Windows.Forms.CheckBox chkAutoSaveNotify;
|
||||
private System.Windows.Forms.TabPage tpgShortcuts;
|
||||
private ctrlEmulatorShortcuts ctrlEmulatorShortcuts;
|
||||
private System.Windows.Forms.CheckBox chkHidePauseOverlay;
|
||||
private System.Windows.Forms.CheckBox chkDisplayMovieIcons;
|
||||
}
|
||||
}
|
|
@ -53,6 +53,9 @@ namespace Mesen.GUI.Forms.Config
|
|||
AddBinding("AutoSaveDelay", nudAutoSave);
|
||||
AddBinding("AutoSaveNotify", chkAutoSaveNotify);
|
||||
|
||||
AddBinding("DisplayMovieIcons", chkDisplayMovieIcons);
|
||||
AddBinding("HidePauseOverlay", chkHidePauseOverlay);
|
||||
|
||||
UpdateCloudDisplay();
|
||||
}
|
||||
|
||||
|
|
|
@ -982,6 +982,9 @@ namespace Mesen.GUI
|
|||
UseNes101Hvc101Behavior = 0x100000000,
|
||||
|
||||
InBackground = 0x4000000000,
|
||||
|
||||
DisplayMovieIcons = 0x10000000000,
|
||||
HidePauseOverlay = 0x20000000000,
|
||||
}
|
||||
|
||||
[Flags]
|
||||
|
|
|
@ -124,7 +124,7 @@ void SdlRenderer::Render()
|
|||
SDL_Rect dest = {0, 0, (int)_screenWidth, (int)_screenHeight };
|
||||
SDL_RenderCopy(_sdlRenderer, _sdlTexture, &source, &dest);
|
||||
|
||||
if(paused) {
|
||||
if(paused && !EmulationSettings::CheckFlag(EmulationFlags::HidePauseOverlay)) {
|
||||
DrawPauseScreen();
|
||||
} else if(VideoDecoder::GetInstance()->IsRunning()) {
|
||||
if(EmulationSettings::CheckFlag(EmulationFlags::ShowFPS)) {
|
||||
|
|
|
@ -513,7 +513,7 @@ namespace NES
|
|||
//Draw nes screen
|
||||
DrawNESScreen();
|
||||
|
||||
if(paused) {
|
||||
if(paused && !EmulationSettings::CheckFlag(EmulationFlags::HidePauseOverlay)) {
|
||||
DrawPauseScreen();
|
||||
} else if(VideoDecoder::GetInstance()->IsRunning()) {
|
||||
if(EmulationSettings::CheckFlag(EmulationFlags::ShowFPS)) {
|
||||
|
|
Loading…
Add table
Reference in a new issue