mirror of
https://github.com/RPCS3/rpcs3.git
synced 2026-07-09 17:25:18 -06:00
Use opengl renderer in game window title
This commit is contained in:
parent
c38e8229ed
commit
a4649475b6
@ -149,6 +149,9 @@ void GLGSRender::on_init_thread()
|
|||||||
rsx_log.success("GL VERSION: %s", reinterpret_cast<const char*>(glGetString(GL_VERSION)));
|
rsx_log.success("GL VERSION: %s", reinterpret_cast<const char*>(glGetString(GL_VERSION)));
|
||||||
rsx_log.success("GLSL VERSION: %s", reinterpret_cast<const char*>(glGetString(GL_SHADING_LANGUAGE_VERSION)));
|
rsx_log.success("GLSL VERSION: %s", reinterpret_cast<const char*>(glGetString(GL_SHADING_LANGUAGE_VERSION)));
|
||||||
|
|
||||||
|
// Update frame title after GL was initialized in order to show the proper GPU
|
||||||
|
m_frame->update_title();
|
||||||
|
|
||||||
const auto& gl_caps = gl::get_driver_caps();
|
const auto& gl_caps = gl::get_driver_caps();
|
||||||
|
|
||||||
std::vector<std::string> exception_reasons;
|
std::vector<std::string> exception_reasons;
|
||||||
|
|||||||
@ -167,4 +167,14 @@ namespace gl
|
|||||||
|
|
||||||
initialized = true;
|
initialized = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const std::string get_device_name()
|
||||||
|
{
|
||||||
|
if (const char* renderer = reinterpret_cast<const char*>(glGetString(GL_RENDERER)))
|
||||||
|
{
|
||||||
|
return renderer;
|
||||||
|
}
|
||||||
|
|
||||||
|
return "OpenGL GPU";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -58,4 +58,5 @@ namespace gl
|
|||||||
};
|
};
|
||||||
|
|
||||||
const capabilities& get_driver_caps();
|
const capabilities& get_driver_caps();
|
||||||
|
const std::string get_device_name();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -33,4 +33,6 @@ public:
|
|||||||
virtual bool can_consume_frame() const = 0;
|
virtual bool can_consume_frame() const = 0;
|
||||||
virtual void present_frame(std::vector<u8>&& data, u32 pitch, u32 width, u32 height, bool is_bgra) const = 0;
|
virtual void present_frame(std::vector<u8>&& data, u32 pitch, u32 width, u32 height, bool is_bgra) const = 0;
|
||||||
virtual void take_screenshot(std::vector<u8>&& sshot_data, u32 sshot_width, u32 sshot_height, bool is_bgra) = 0;
|
virtual void take_screenshot(std::vector<u8>&& sshot_data, u32 sshot_width, u32 sshot_height, bool is_bgra) = 0;
|
||||||
|
|
||||||
|
virtual void update_title(double fps = 0.0) = 0;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -175,13 +175,19 @@ namespace rsx
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rsx_log.notice("display_manager::start_audio: path='%s'", audio_path);
|
||||||
|
|
||||||
m_audio_player = std::make_unique<audio_player>(audio_path);
|
m_audio_player = std::make_unique<audio_player>(audio_path);
|
||||||
m_audio_player->set_active(true);
|
m_audio_player->set_active(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void display_manager::stop_audio()
|
void display_manager::stop_audio()
|
||||||
{
|
{
|
||||||
m_audio_player.reset();
|
if (m_audio_player)
|
||||||
|
{
|
||||||
|
rsx_log.notice("display_manager::stop_audio");
|
||||||
|
m_audio_player.reset();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void display_manager::on_overlay_activated(const std::shared_ptr<overlay>& /*item*/)
|
void display_manager::on_overlay_activated(const std::shared_ptr<overlay>& /*item*/)
|
||||||
|
|||||||
@ -765,7 +765,7 @@ namespace rsx
|
|||||||
ar(stereo_enabled, format, aspect, resolution_id, scanline_pitch, gamma, resolution_x, resolution_y, state, scan_mode);
|
ar(stereo_enabled, format, aspect, resolution_id, scanline_pitch, gamma, resolution_x, resolution_y, state, scan_mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
void thread::capture_frame(const std::string& name)
|
void thread::capture_frame(const std::string& name) const
|
||||||
{
|
{
|
||||||
frame_trace_data::draw_state draw_state{};
|
frame_trace_data::draw_state draw_state{};
|
||||||
|
|
||||||
@ -843,7 +843,7 @@ namespace rsx
|
|||||||
|
|
||||||
if (capture_current_frame)
|
if (capture_current_frame)
|
||||||
{
|
{
|
||||||
u32 element_count = rsx::method_registers.current_draw_clause.get_elements_count();
|
const u32 element_count = rsx::method_registers.current_draw_clause.get_elements_count();
|
||||||
capture_frame(fmt::format("Draw %s %d", rsx::method_registers.current_draw_clause.primitive, element_count));
|
capture_frame(fmt::format("Draw %s %d", rsx::method_registers.current_draw_clause.primitive, element_count));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -218,7 +218,7 @@ namespace rsx
|
|||||||
|
|
||||||
surface_scaling_config_t resolution_scaling_config{};
|
surface_scaling_config_t resolution_scaling_config{};
|
||||||
|
|
||||||
void capture_frame(const std::string& name);
|
void capture_frame(const std::string& name) const;
|
||||||
const backend_configuration& get_backend_config() const { return backend_config; }
|
const backend_configuration& get_backend_config() const { return backend_config; }
|
||||||
|
|
||||||
const draw_command_processor* draw_processor() const { return &m_draw_processor; }
|
const draw_command_processor* draw_processor() const { return &m_draw_processor; }
|
||||||
|
|||||||
@ -3,6 +3,11 @@
|
|||||||
#include "rpcs3_version.h"
|
#include "rpcs3_version.h"
|
||||||
|
|
||||||
#include "util/sysinfo.hpp"
|
#include "util/sysinfo.hpp"
|
||||||
|
#include "Emu/system_config.h"
|
||||||
|
|
||||||
|
#if !(defined(__ANDROID__) || defined(__APPLE__))
|
||||||
|
#include "Emu/RSX/GL/glutils/capabilities.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace rpcs3
|
namespace rpcs3
|
||||||
{
|
{
|
||||||
@ -68,7 +73,22 @@ namespace rpcs3
|
|||||||
}
|
}
|
||||||
case 'G':
|
case 'G':
|
||||||
{
|
{
|
||||||
title_string += title_data.vulkan_adapter;
|
switch (g_cfg.video.renderer.get())
|
||||||
|
{
|
||||||
|
case video_renderer::null:
|
||||||
|
title_string += "null";
|
||||||
|
break;
|
||||||
|
case video_renderer::opengl:
|
||||||
|
#if !(defined(__ANDROID__) || defined(__APPLE__))
|
||||||
|
title_string += gl::get_device_name();
|
||||||
|
#else
|
||||||
|
title_string += "OpenGL GPU";
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
case video_renderer::vulkan:
|
||||||
|
title_string += title_data.vulkan_adapter;
|
||||||
|
break;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'C':
|
case 'C':
|
||||||
|
|||||||
@ -830,17 +830,7 @@ void gs_frame::flip(draw_context_t /*context*/, bool /*skip_frame*/)
|
|||||||
|
|
||||||
if (fps_t.GetElapsedTimeInSec() >= 0.5)
|
if (fps_t.GetElapsedTimeInSec() >= 0.5)
|
||||||
{
|
{
|
||||||
std::string new_title = Emu.GetFormattedTitle(m_frames / fps_t.GetElapsedTimeInSec());
|
update_title(m_frames / fps_t.GetElapsedTimeInSec());
|
||||||
|
|
||||||
if (new_title != m_window_title)
|
|
||||||
{
|
|
||||||
m_window_title = new_title;
|
|
||||||
|
|
||||||
Emu.CallFromMainThread([this, title = std::move(new_title)]()
|
|
||||||
{
|
|
||||||
setTitle(QString::fromStdString(title));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
m_frames = 0;
|
m_frames = 0;
|
||||||
fps_t.Start();
|
fps_t.Start();
|
||||||
@ -1130,6 +1120,21 @@ void gs_frame::take_screenshot(std::vector<u8>&& data, u32 sshot_width, u32 ssho
|
|||||||
.detach();
|
.detach();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void gs_frame::update_title(double fps)
|
||||||
|
{
|
||||||
|
std::string new_title = Emu.GetFormattedTitle(fps);
|
||||||
|
|
||||||
|
if (new_title != m_window_title)
|
||||||
|
{
|
||||||
|
m_window_title = new_title;
|
||||||
|
|
||||||
|
Emu.CallFromMainThread([this, title = std::move(new_title)]()
|
||||||
|
{
|
||||||
|
setTitle(QString::fromStdString(title));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void gs_frame::mouseDoubleClickEvent(QMouseEvent* ev)
|
void gs_frame::mouseDoubleClickEvent(QMouseEvent* ev)
|
||||||
{
|
{
|
||||||
if (m_disable_mouse)
|
if (m_disable_mouse)
|
||||||
|
|||||||
@ -82,6 +82,8 @@ public:
|
|||||||
void present_frame(std::vector<u8>&& data, u32 pitch, u32 width, u32 height, bool is_bgra) const override;
|
void present_frame(std::vector<u8>&& data, u32 pitch, u32 width, u32 height, bool is_bgra) const override;
|
||||||
void take_screenshot(std::vector<u8>&& data, u32 sshot_width, u32 sshot_height, bool is_bgra) override;
|
void take_screenshot(std::vector<u8>&& data, u32 sshot_width, u32 sshot_height, bool is_bgra) override;
|
||||||
|
|
||||||
|
void update_title(double fps = 0.0) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
video_renderer m_renderer;
|
video_renderer m_renderer;
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user