mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-03 13:31:27 +12:00
112 lines
1.8 KiB
C++
112 lines
1.8 KiB
C++
#include "stdafx.h"
|
|
#include "title.h"
|
|
#include "rpcs3_version.h"
|
|
|
|
#include "util/sysinfo.hpp"
|
|
|
|
namespace rpcs3
|
|
{
|
|
std::string get_formatted_title(const title_format_data& title_data)
|
|
{
|
|
// Parse title format string
|
|
std::string title_string;
|
|
|
|
for (usz i = 0; i < title_data.format.size();)
|
|
{
|
|
const char c1 = title_data.format[i];
|
|
|
|
if (c1 == '\0')
|
|
{
|
|
break;
|
|
}
|
|
|
|
switch (c1)
|
|
{
|
|
case '%':
|
|
{
|
|
const char c2 = title_data.format[i + 1];
|
|
|
|
if (c2 == '\0')
|
|
{
|
|
title_string += '%';
|
|
i++;
|
|
continue;
|
|
}
|
|
|
|
switch (c2)
|
|
{
|
|
case '%':
|
|
{
|
|
title_string += '%';
|
|
break;
|
|
}
|
|
case 'T':
|
|
{
|
|
title_string += title_data.title;
|
|
break;
|
|
}
|
|
case 't':
|
|
{
|
|
title_string += title_data.title_id;
|
|
break;
|
|
}
|
|
case 'R':
|
|
{
|
|
fmt::append(title_string, "%s", title_data.renderer);
|
|
break;
|
|
}
|
|
case 'V':
|
|
{
|
|
static const std::string version = rpcs3::get_version_and_branch();
|
|
title_string += version;
|
|
break;
|
|
}
|
|
case 'F':
|
|
{
|
|
fmt::append(title_string, "%.2f", title_data.fps);
|
|
break;
|
|
}
|
|
case 'G':
|
|
{
|
|
title_string += title_data.vulkan_adapter;
|
|
break;
|
|
}
|
|
case 'C':
|
|
{
|
|
static const std::string brand = utils::get_cpu_brand();
|
|
title_string += brand;
|
|
break;
|
|
}
|
|
case 'c':
|
|
{
|
|
fmt::append(title_string, "%d", utils::get_thread_count());
|
|
break;
|
|
}
|
|
case 'M':
|
|
{
|
|
fmt::append(title_string, "%.2f", utils::get_total_memory() / (1024.0f * 1024 * 1024));
|
|
break;
|
|
}
|
|
default:
|
|
{
|
|
title_string += '%';
|
|
title_string += c2;
|
|
break;
|
|
}
|
|
}
|
|
|
|
i += 2;
|
|
break;
|
|
}
|
|
default:
|
|
{
|
|
title_string += c1;
|
|
i += 1;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
return title_string;
|
|
}
|
|
}
|