mirror of
https://github.com/SourMesen/Mesen2.git
synced 2025-04-02 10:21:44 -04:00
190 lines
9.8 KiB
XML
190 lines
9.8 KiB
XML
<UserControl
|
|
xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:vm="using:Mesen.ViewModels"
|
|
xmlns:c="using:Mesen.Controls"
|
|
xmlns:cfg="using:Mesen.Config"
|
|
xmlns:l="using:Mesen.Localization"
|
|
mc:Ignorable="d" d:DesignWidth="500" d:DesignHeight="550"
|
|
VerticalAlignment="Stretch"
|
|
HorizontalAlignment="Stretch"
|
|
x:DataType="vm:VideoConfigViewModel"
|
|
x:Class="Mesen.Views.VideoConfigView"
|
|
>
|
|
<Design.DataContext>
|
|
<vm:VideoConfigViewModel />
|
|
</Design.DataContext>
|
|
|
|
<UserControl.DataTemplates>
|
|
<DataTemplate DataType="{x:Type x:UInt32}">
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock Text="{Binding}" />
|
|
<TextBlock Text=" Hz" />
|
|
</StackPanel>
|
|
</DataTemplate>
|
|
</UserControl.DataTemplates>
|
|
|
|
<TabControl TabStripPlacement="Top" SelectedIndex="0">
|
|
<TabItem Header="{l:Translate tpgGeneral}">
|
|
<ScrollViewer AllowAutoHide="False" HorizontalScrollBarVisibility="Auto" Padding="0 0 2 0">
|
|
<StackPanel>
|
|
<c:SystemSpecificSettings ConfigType="Video" />
|
|
|
|
<c:OptionSection Header="{l:Translate tpgGeneral}">
|
|
<Grid ColumnDefinitions="Auto,*" RowDefinitions="Auto,Auto,Auto">
|
|
<TextBlock Grid.Row="1" Grid.Column="0" Text="{l:Translate lblDisplayRatio}" />
|
|
<StackPanel Grid.Row="1" Grid.Column="1" Orientation="Horizontal">
|
|
<c:EnumComboBox SelectedItem="{Binding Config.AspectRatio}" MinWidth="230" />
|
|
</StackPanel>
|
|
|
|
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal" IsVisible="{Binding ShowCustomRatio}">
|
|
<TextBlock Text="{l:Translate lblCustomRatio}" VerticalAlignment="Center" />
|
|
<c:MesenNumericUpDown
|
|
Value="{Binding Config.CustomAspectRatio}"
|
|
FormatString="0.0000"
|
|
Minimum="0.1"
|
|
Maximum="5"
|
|
Increment="0.01"
|
|
VerticalAlignment="Center"
|
|
/>
|
|
</StackPanel>
|
|
</Grid>
|
|
|
|
<CheckBox Content="{l:Translate chkIntegerFpsMode}" IsChecked="{Binding Config.IntegerFpsMode}" />
|
|
<CheckBox
|
|
Content="{l:Translate chkVerticalSync}"
|
|
IsVisible="{Binding !IsMacOs}"
|
|
IsEnabled="{Binding !Config.UseSoftwareRenderer}"
|
|
IsChecked="{Binding Config.VerticalSync}"
|
|
/>
|
|
|
|
<StackPanel IsVisible="{Binding IsWindows}">
|
|
<CheckBox
|
|
Content="{l:Translate chkUseExclusiveFullscreen}"
|
|
IsChecked="{Binding Config.UseExclusiveFullscreen}"
|
|
IsEnabled="{Binding !Config.UseSoftwareRenderer}"
|
|
/>
|
|
<StackPanel Orientation="Horizontal" IsVisible="{Binding Config.UseExclusiveFullscreen}" Margin="35 3 0 10">
|
|
<Grid ColumnDefinitions="Auto,*" RowDefinitions="Auto,Auto,Auto,Auto">
|
|
<TextBlock Grid.Row="0" Grid.Column="0" Text="{l:Translate lblFullscreenResolution}" />
|
|
<c:EnumComboBox Grid.Row="0" Grid.Column="1" SelectedItem="{Binding Config.ExclusiveFullscreenResolution}" />
|
|
|
|
<TextBlock Grid.Row="1" Grid.Column="0" Text="{l:Translate lblRequestedRefreshRateNtsc}" />
|
|
<ComboBox
|
|
Grid.Row="1" Grid.Column="1"
|
|
SelectedItem="{Binding Config.ExclusiveFullscreenRefreshRateNtsc}"
|
|
ItemsSource="{Binding AvailableRefreshRates}"
|
|
/>
|
|
|
|
<TextBlock Grid.Row="2" Grid.Column="0" Text="{l:Translate lblRequestedRefreshRatePal}" />
|
|
<ComboBox
|
|
Grid.Row="2" Grid.Column="1"
|
|
SelectedItem="{Binding Config.ExclusiveFullscreenRefreshRatePal}"
|
|
ItemsSource="{Binding AvailableRefreshRates}"
|
|
/>
|
|
</Grid>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
<CheckBox Content="{l:Translate chkFullscreenForceIntegerScale}" IsChecked="{Binding Config.FullscreenForceIntegerScale}" />
|
|
</c:OptionSection>
|
|
</StackPanel>
|
|
</ScrollViewer>
|
|
</TabItem>
|
|
<TabItem Header="{l:Translate tpgPicture}">
|
|
<ScrollViewer AllowAutoHide="False" HorizontalScrollBarVisibility="Auto" Padding="0 0 2 0">
|
|
<Grid ColumnDefinitions="1*,1*" RowDefinitions="Auto,*" Margin="0 2 0 0" MinWidth="350">
|
|
<c:GroupBox Grid.Column="0" Header="{l:Translate lblPictureSettings}" Margin="0 0 1 0">
|
|
<StackPanel>
|
|
<c:MesenSlider Value="{Binding Config.Brightness}" Text="{l:Translate trkBrightness}" Margin="5 3" Minimum="-100" Maximum="100" />
|
|
<c:MesenSlider Value="{Binding Config.Contrast}" Text="{l:Translate trkContrast}" Margin="5 3" Minimum="-100" Maximum="100" />
|
|
<c:MesenSlider Value="{Binding Config.Hue}" Text="{l:Translate trkHue}" Margin="5 3" Minimum="-100" Maximum="100" />
|
|
<c:MesenSlider Value="{Binding Config.Saturation}" Text="{l:Translate trkSaturation}" Margin="5 3" Minimum="-100" Maximum="100" />
|
|
<c:MesenSlider Value="{Binding Config.ScanlineIntensity}" Text="{l:Translate trkScanlines}" Margin="5 3" Minimum="0" Maximum="100" />
|
|
<CheckBox IsChecked="{Binding Config.UseBilinearInterpolation}" Content="{l:Translate chkBilinearInterpolation}" />
|
|
<CheckBox
|
|
Margin="15 0 0 0"
|
|
IsEnabled="{Binding Config.UseBilinearInterpolation}"
|
|
IsVisible="{Binding IsWindows}"
|
|
IsChecked="{Binding Config.UseSrgbTextureFormat}"
|
|
Content="{l:Translate chkUseSrgbTextureFormat}"
|
|
/>
|
|
</StackPanel>
|
|
</c:GroupBox>
|
|
|
|
<StackPanel Orientation="Horizontal" Grid.Column="0" Grid.Row="1" VerticalAlignment="Top">
|
|
<Button Content="{l:Translate btnSelectPreset}" Click="btnPreset_OnClick">
|
|
<Button.ContextMenu>
|
|
<ContextMenu Placement="BottomEdgeAlignedLeft">
|
|
<MenuItem Header="{l:Translate mnuPresetComposite}" Command="{Binding PresetCompositeCommand}" />
|
|
<MenuItem Header="{l:Translate mnuPresetSVideo}" Command="{Binding PresetSVideoCommand}" />
|
|
<MenuItem Header="{l:Translate mnuPresetRgb}" Command="{Binding PresetRgbCommand}" />
|
|
<MenuItem Header="{l:Translate mnuPresetMonochrome}" Command="{Binding PresetMonochromeCommand}" />
|
|
</ContextMenu>
|
|
</Button.ContextMenu>
|
|
</Button>
|
|
|
|
<Button Content="{l:Translate btnReset}" Command="{Binding ResetPictureSettingsCommand}" />
|
|
</StackPanel>
|
|
|
|
<c:GroupBox Grid.Column="1" Grid.RowSpan="2" Header="{l:Translate lblFilterSettings}" Margin="1 0 0 0">
|
|
<StackPanel>
|
|
<StackPanel.Styles>
|
|
<Style Selector="c|MesenSlider">
|
|
<Setter Property="Margin" Value="0 3 10 3" />
|
|
<Setter Property="Minimum" Value="-100" />
|
|
<Setter Property="Maximum" Value="100" />
|
|
</Style>
|
|
</StackPanel.Styles>
|
|
|
|
<Grid ColumnDefinitions="Auto,*">
|
|
<TextBlock Text="{l:Translate lblVideoFilter}" VerticalAlignment="Center" />
|
|
<c:EnumComboBox Grid.Column="1" SelectedItem="{Binding Config.VideoFilter}" />
|
|
</Grid>
|
|
|
|
<c:OptionSection Header="{l:Translate lblNtscBlarggSettings}" IsVisible="{Binding ShowNtscBlarggSettings}">
|
|
<c:MesenSlider Value="{Binding Config.NtscArtifacts}" Text="{l:Translate trkArtifacts}" />
|
|
<c:MesenSlider Value="{Binding Config.NtscBleed}" Text="{l:Translate trkBleed}" />
|
|
<c:MesenSlider Value="{Binding Config.NtscFringing}" Text="{l:Translate trkFringing}" />
|
|
<c:MesenSlider Value="{Binding Config.NtscGamma}" Text="{l:Translate trkGamma}" />
|
|
<c:MesenSlider Value="{Binding Config.NtscResolution}" Text="{l:Translate trkResolution}" />
|
|
<c:MesenSlider Value="{Binding Config.NtscSharpness}" Text="{l:Translate trkSharpness}" />
|
|
<CheckBox IsChecked="{Binding Config.NtscMergeFields}" Content="{l:Translate chkMergeFields}" />
|
|
</c:OptionSection>
|
|
|
|
<c:OptionSection Header="{l:Translate lblNtscBisqwitSettings}" IsVisible="{Binding ShowNtscBisqwitSettings}">
|
|
<Grid ColumnDefinitions="Auto,*">
|
|
<TextBlock Text="{l:Translate lblNtscFilterScale}" VerticalAlignment="Center" />
|
|
<c:EnumComboBox Grid.Column="1" SelectedItem="{Binding Config.NtscScale}" />
|
|
</Grid>
|
|
|
|
<c:MesenSlider Value="{Binding Config.NtscYFilterLength}" Text="{l:Translate trkNtscYFilterLength}" Minimum="-46" Maximum="400" TickFrequency="20" />
|
|
<c:MesenSlider Value="{Binding Config.NtscIFilterLength}" Text="{l:Translate trkNtscIFilterLength}" Minimum="0" Maximum="400" TickFrequency="20" />
|
|
<c:MesenSlider Value="{Binding Config.NtscQFilterLength}" Text="{l:Translate trkNtscQFilterLength}" Minimum="0" Maximum="400" TickFrequency="20" />
|
|
</c:OptionSection>
|
|
|
|
<c:OptionSection Header="{l:Translate lblLcdGridSettings}" IsVisible="{Binding ShowLcdGridSettings}">
|
|
<c:MesenSlider Value="{Binding Config.LcdGridTopLeftBrightness}" Text="{l:Translate trkLcdGridTopLeftBrightness}" Minimum="0" Maximum="100" TickFrequency="10" />
|
|
<c:MesenSlider Value="{Binding Config.LcdGridTopRightBrightness}" Text="{l:Translate trkLcdGridTopRightBrightness}" Minimum="0" Maximum="100" TickFrequency="10" />
|
|
<c:MesenSlider Value="{Binding Config.LcdGridBottomLeftBrightness}" Text="{l:Translate trkLcdGridBottomLeftBrightness}" Minimum="0" Maximum="100" TickFrequency="10" />
|
|
<c:MesenSlider Value="{Binding Config.LcdGridBottomRightBrightness}" Text="{l:Translate trkLcdGridBottomRightBrightness}" Minimum="0" Maximum="100" TickFrequency="10" />
|
|
</c:OptionSection>
|
|
</StackPanel>
|
|
</c:GroupBox>
|
|
</Grid>
|
|
</ScrollViewer>
|
|
</TabItem>
|
|
<TabItem Header="{l:Translate tpgAdvanced}">
|
|
<ScrollViewer AllowAutoHide="False" HorizontalScrollBarVisibility="Auto" Padding="0 0 2 0">
|
|
<StackPanel>
|
|
<c:CheckBoxWarning IsVisible="{Binding !IsMacOs}" IsChecked="{Binding Config.UseSoftwareRenderer}" Text="{l:Translate chkUseSoftwareRenderer}" />
|
|
<StackPanel Orientation="Horizontal" Margin="0 5 0 0">
|
|
<TextBlock Text="{l:Translate lblScreenRotation}" VerticalAlignment="Center" />
|
|
<c:EnumComboBox SelectedItem="{Binding Config.ScreenRotation}" />
|
|
</StackPanel>
|
|
</StackPanel>
|
|
</ScrollViewer>
|
|
</TabItem>
|
|
</TabControl>
|
|
</UserControl>
|