UI: Massive revamp, new features and improvements
This commit is contained in:
@ -4,8 +4,8 @@
|
||||
#include "common/log.h"
|
||||
#include "common/string_util.h"
|
||||
#include "dma.h"
|
||||
#include "host.h"
|
||||
#include "host_display.h"
|
||||
#include "host_interface.h"
|
||||
#include "imgui.h"
|
||||
#include "interrupt_controller.h"
|
||||
#include "settings.h"
|
||||
@ -24,9 +24,8 @@ GPU::GPU() = default;
|
||||
|
||||
GPU::~GPU() = default;
|
||||
|
||||
bool GPU::Initialize(HostDisplay* host_display)
|
||||
bool GPU::Initialize()
|
||||
{
|
||||
m_host_display = host_display;
|
||||
m_force_progressive_scan = g_settings.gpu_disable_interlacing;
|
||||
m_force_ntsc_timings = g_settings.gpu_force_ntsc_timings;
|
||||
m_crtc_tick_event = TimingEvents::CreateTimingEvent(
|
||||
@ -41,6 +40,16 @@ bool GPU::Initialize(HostDisplay* host_display)
|
||||
m_max_run_ahead = g_settings.gpu_max_run_ahead;
|
||||
m_console_is_pal = System::IsPALRegion();
|
||||
UpdateCRTCConfig();
|
||||
|
||||
g_host_display->SetDisplayLinearFiltering(g_settings.display_linear_filtering);
|
||||
g_host_display->SetDisplayIntegerScaling(g_settings.display_integer_scaling);
|
||||
g_host_display->SetDisplayStretch(g_settings.display_stretch);
|
||||
if (g_settings.display_post_processing &&
|
||||
!g_host_display->SetPostProcessingChain(g_settings.display_post_process_chain))
|
||||
{
|
||||
Host::AddOSDMessage(Host::TranslateStdString("OSDMessage", "Failed to load post processing shader chain."), 20.0f);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -59,6 +68,10 @@ void GPU::UpdateSettings()
|
||||
|
||||
// Crop mode calls this, so recalculate the display area
|
||||
UpdateCRTCDisplayParameters();
|
||||
|
||||
g_host_display->SetDisplayLinearFiltering(g_settings.display_linear_filtering);
|
||||
g_host_display->SetDisplayIntegerScaling(g_settings.display_integer_scaling);
|
||||
g_host_display->SetDisplayStretch(g_settings.display_stretch);
|
||||
}
|
||||
|
||||
bool GPU::IsHardwareRenderer()
|
||||
@ -962,9 +975,9 @@ void GPU::UpdateCommandTickEvent()
|
||||
bool GPU::ConvertScreenCoordinatesToBeamTicksAndLines(s32 window_x, s32 window_y, float x_scale, u32* out_tick,
|
||||
u32* out_line) const
|
||||
{
|
||||
auto [display_x, display_y] = m_host_display->ConvertWindowCoordinatesToDisplayCoordinates(
|
||||
window_x, window_y, m_host_display->GetWindowWidth(), m_host_display->GetWindowHeight(),
|
||||
m_host_display->GetDisplayTopMargin());
|
||||
auto [display_x, display_y] = g_host_display->ConvertWindowCoordinatesToDisplayCoordinates(
|
||||
window_x, window_y, g_host_display->GetWindowWidth(), g_host_display->GetWindowHeight(),
|
||||
g_host_display->GetDisplayTopMargin());
|
||||
|
||||
if (x_scale != 1.0f)
|
||||
{
|
||||
@ -1551,7 +1564,7 @@ bool GPU::DumpVRAMToFile(const char* filename, u32 width, u32 height, u32 stride
|
||||
|
||||
void GPU::DrawDebugStateWindow()
|
||||
{
|
||||
const float framebuffer_scale = ImGui::GetIO().DisplayFramebufferScale.x;
|
||||
const float framebuffer_scale = Host::GetOSDScale();
|
||||
|
||||
ImGui::SetNextWindowSize(ImVec2(450.0f * framebuffer_scale, 550.0f * framebuffer_scale), ImGuiCond_FirstUseEver);
|
||||
if (!ImGui::Begin("GPU", nullptr))
|
||||
|
||||
Reference in New Issue
Block a user