From 22ca57b1f21c9a08d675196e220bc77892d4c7a2 Mon Sep 17 00:00:00 2001 From: rainmakerv2 <30595646+rainmakerv3@users.noreply.github.com> Date: Sun, 23 Feb 2025 16:00:24 +0800 Subject: [PATCH] Trophy pop-up and viewer enhancements (#2493) * Include trophy rarity icons in pop up, remove newlines from viewer Fix layout Update platinum.png Fix linux and apple * Smaller type icons, center text vertically * use original icons * MacOS fixes * Address Review comments Update build.yml Update build.yml Update build.yml Update build.yml Update build.yml Update build.yml Update build.yml test * Move trophy type to leftmost and trophy art to rightmost * Embed resources * Revert packaging of resources with builds --------- Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com> --- CMakeLists.txt | 19 + REUSE.toml | 8 + Resources/bronze.png | Bin 0 -> 40833 bytes Resources/gold.png | Bin 0 -> 43997 bytes Resources/platinum.png | Bin 0 -> 44931 bytes Resources/silver.png | Bin 0 -> 33459 bytes cmake/CMakeRC.cmake | 666 +++++++++++++++++++++ src/core/libraries/np_trophy/np_trophy.cpp | 4 +- src/core/libraries/np_trophy/trophy_ui.cpp | 72 ++- src/core/libraries/np_trophy/trophy_ui.h | 11 +- src/qt_gui/trophy_viewer.cpp | 30 +- src/qt_gui/trophy_viewer.h | 12 +- 12 files changed, 795 insertions(+), 27 deletions(-) create mode 100644 Resources/bronze.png create mode 100644 Resources/gold.png create mode 100644 Resources/platinum.png create mode 100644 Resources/silver.png create mode 100644 cmake/CMakeRC.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 9b1c0082b..820d46f9d 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -195,6 +195,7 @@ endif() add_subdirectory(externals) include_directories(src) +include_directories(Resources) if(ENABLE_QT_GUI) find_package(Qt6 REQUIRED COMPONENTS Widgets Concurrent LinguistTools Network Multimedia) @@ -953,6 +954,12 @@ set(QT_GUI src/qt_gui/about_dialog.cpp ) endif() +set(RESOURCEFOLDER Resources/bronze.png + Resources/gold.png + Resources/platinum.png + Resources/silver.png +) + if (ENABLE_QT_GUI) qt_add_executable(shadps4 ${AUDIO_CORE} @@ -964,6 +971,7 @@ if (ENABLE_QT_GUI) ${SHADER_RECOMPILER} ${VIDEO_CORE} ${EMULATOR} + ${RESOURCEFOLDER} src/images/shadPS4.icns ) else() @@ -976,6 +984,7 @@ else() ${SHADER_RECOMPILER} ${VIDEO_CORE} ${EMULATOR} + ${RESOURCEFOLDER} src/main.cpp src/emulator.cpp src/emulator.h @@ -1102,6 +1111,16 @@ add_subdirectory(${HOST_SHADERS_INCLUDE}) add_dependencies(shadps4 host_shaders) target_include_directories(shadps4 PRIVATE ${HOST_SHADERS_INCLUDE}) +# embed resources + +include(CMakeRC) +cmrc_add_resource_library(embedded-resources + ALIAS res::embedded + NAMESPACE res + ${RESOURCEFOLDER}) + +target_link_libraries(shadps4 PRIVATE res::embedded) + # ImGui resources add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src/imgui/renderer) add_dependencies(shadps4 ImGui_Resources) diff --git a/REUSE.toml b/REUSE.toml index 3bc09e328..9c6ada42a 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -19,6 +19,10 @@ path = [ "documents/Screenshots/*", "documents/Screenshots/Linux/*", "externals/MoltenVK/MoltenVK_icd.json", + "Resources/bronze.png", + "Resources/gold.png", + "Resources/platinum.png", + "Resources/silver.png", "scripts/ps4_names.txt", "src/images/about_icon.png", "src/images/controller_icon.png", @@ -103,3 +107,7 @@ path = "externals/gcn/include/**" SPDX-FileCopyrightText = "NONE" SPDX-License-Identifier = "CC0-1.0" +[[annotations]] +path = "cmake/CMakeRC.cmake" +SPDX-FileCopyrightText = "Copyright (c) 2017 vector-of-bool " +SPDX-License-Identifier = "MIT" \ No newline at end of file diff --git a/Resources/bronze.png b/Resources/bronze.png new file mode 100644 index 0000000000000000000000000000000000000000..65aa2fb695121ab29fa68c37e35553afcbae3e2d GIT binary patch literal 40833 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�CH?6$1 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 literal 0 HcmV?d00001 diff --git a/Resources/gold.png b/Resources/gold.png new file mode 100644 index 0000000000000000000000000000000000000000..1af7023f5854f5778dd4f52bb4da51bbf1ec83c3 GIT binary patch literal 43997 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 Z{{cI+gaKH3rkMZ$002ovPDHLkV1k9y({um; literal 0 HcmV?d00001 diff --git a/Resources/platinum.png b/Resources/platinum.png new file mode 100644 index 0000000000000000000000000000000000000000..c217fdd024371812ef6286d00920a9beb766129e GIT binary patch literal 44931 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 X4DE^^wfmX}00000NkvXXu0mjfi69^a literal 0 HcmV?d00001 diff --git a/Resources/silver.png b/Resources/silver.png new file mode 100644 index 0000000000000000000000000000000000000000..0d9ff8ff6b0b33a535ecb9cc14f5c4114dd22c07 GIT binary patch literal 33459 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�eAA!8#@guM6r9Y8KlRRPL$V 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 literal 0 HcmV?d00001 diff --git a/cmake/CMakeRC.cmake b/cmake/CMakeRC.cmake new file mode 100644 index 000000000..cea12fba7 --- /dev/null +++ b/cmake/CMakeRC.cmake @@ -0,0 +1,666 @@ +# MIT License +# +# Copyright (c) 2017 vector-of-bool +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +# This block is executed when generating an intermediate resource file, not when +# running in CMake configure mode +if(_CMRC_GENERATE_MODE) + # Read in the digits + file(READ "${INPUT_FILE}" bytes HEX) + # Format each pair into a character literal. Heuristics seem to favor doing + # the conversion in groups of five for fastest conversion + string(REGEX REPLACE "(..)(..)(..)(..)(..)" "'\\\\x\\1','\\\\x\\2','\\\\x\\3','\\\\x\\4','\\\\x\\5'," chars "${bytes}") + # Since we did this in groups, we have some leftovers to clean up + string(LENGTH "${bytes}" n_bytes2) + math(EXPR n_bytes "${n_bytes2} / 2") + math(EXPR remainder "${n_bytes} % 5") # <-- '5' is the grouping count from above + set(cleanup_re "$") + set(cleanup_sub ) + while(remainder) + set(cleanup_re "(..)${cleanup_re}") + set(cleanup_sub "'\\\\x\\${remainder}',${cleanup_sub}") + math(EXPR remainder "${remainder} - 1") + endwhile() + if(NOT cleanup_re STREQUAL "$") + string(REGEX REPLACE "${cleanup_re}" "${cleanup_sub}" chars "${chars}") + endif() + string(CONFIGURE [[ + namespace { const char file_array[] = { @chars@ 0 }; } + namespace cmrc { namespace @NAMESPACE@ { namespace res_chars { + extern const char* const @SYMBOL@_begin = file_array; + extern const char* const @SYMBOL@_end = file_array + @n_bytes@; + }}} + ]] code) + file(WRITE "${OUTPUT_FILE}" "${code}") + # Exit from the script. Nothing else needs to be processed + return() +endif() + +set(_version 2.0.0) + +cmake_minimum_required(VERSION 3.12) +include(CMakeParseArguments) + +if(COMMAND cmrc_add_resource_library) + if(NOT DEFINED _CMRC_VERSION OR NOT (_version STREQUAL _CMRC_VERSION)) + message(WARNING "More than one CMakeRC version has been included in this project.") + endif() + # CMakeRC has already been included! Don't do anything + return() +endif() + +set(_CMRC_VERSION "${_version}" CACHE INTERNAL "CMakeRC version. Used for checking for conflicts") + +set(_CMRC_SCRIPT "${CMAKE_CURRENT_LIST_FILE}" CACHE INTERNAL "Path to CMakeRC script") + +function(_cmrc_normalize_path var) + set(path "${${var}}") + file(TO_CMAKE_PATH "${path}" path) + while(path MATCHES "//") + string(REPLACE "//" "/" path "${path}") + endwhile() + string(REGEX REPLACE "/+$" "" path "${path}") + set("${var}" "${path}" PARENT_SCOPE) +endfunction() + +get_filename_component(_inc_dir "${CMAKE_BINARY_DIR}/_cmrc/include" ABSOLUTE) +set(CMRC_INCLUDE_DIR "${_inc_dir}" CACHE INTERNAL "Directory for CMakeRC include files") +# Let's generate the primary include file +file(MAKE_DIRECTORY "${CMRC_INCLUDE_DIR}/cmrc") +set(hpp_content [==[ +#ifndef CMRC_CMRC_HPP_INCLUDED +#define CMRC_CMRC_HPP_INCLUDED + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if !(defined(__EXCEPTIONS) || defined(__cpp_exceptions) || defined(_CPPUNWIND) || defined(CMRC_NO_EXCEPTIONS)) +#define CMRC_NO_EXCEPTIONS 1 +#endif + +namespace cmrc { namespace detail { struct dummy; } } + +#define CMRC_DECLARE(libid) \ + namespace cmrc { namespace detail { \ + struct dummy; \ + static_assert(std::is_same::value, "CMRC_DECLARE() must only appear at the global namespace"); \ + } } \ + namespace cmrc { namespace libid { \ + cmrc::embedded_filesystem get_filesystem(); \ + } } static_assert(true, "") + +namespace cmrc { + +class file { + const char* _begin = nullptr; + const char* _end = nullptr; + +public: + using iterator = const char*; + using const_iterator = iterator; + iterator begin() const noexcept { return _begin; } + iterator cbegin() const noexcept { return _begin; } + iterator end() const noexcept { return _end; } + iterator cend() const noexcept { return _end; } + std::size_t size() const { return static_cast(std::distance(begin(), end())); } + + file() = default; + file(iterator beg, iterator end) noexcept : _begin(beg), _end(end) {} +}; + +class directory_entry; + +namespace detail { + +class directory; +class file_data; + +class file_or_directory { + union _data_t { + class file_data* file_data; + class directory* directory; + } _data; + bool _is_file = true; + +public: + explicit file_or_directory(file_data& f) { + _data.file_data = &f; + } + explicit file_or_directory(directory& d) { + _data.directory = &d; + _is_file = false; + } + bool is_file() const noexcept { + return _is_file; + } + bool is_directory() const noexcept { + return !is_file(); + } + const directory& as_directory() const noexcept { + assert(!is_file()); + return *_data.directory; + } + const file_data& as_file() const noexcept { + assert(is_file()); + return *_data.file_data; + } +}; + +class file_data { +public: + const char* begin_ptr; + const char* end_ptr; + file_data(const file_data&) = delete; + file_data(const char* b, const char* e) : begin_ptr(b), end_ptr(e) {} +}; + +inline std::pair split_path(const std::string& path) { + auto first_sep = path.find("/"); + if (first_sep == path.npos) { + return std::make_pair(path, ""); + } else { + return std::make_pair(path.substr(0, first_sep), path.substr(first_sep + 1)); + } +} + +struct created_subdirectory { + class directory& directory; + class file_or_directory& index_entry; +}; + +class directory { + std::list _files; + std::list _dirs; + std::map _index; + + using base_iterator = std::map::const_iterator; + +public: + + directory() = default; + directory(const directory&) = delete; + + created_subdirectory add_subdir(std::string name) & { + _dirs.emplace_back(); + auto& back = _dirs.back(); + auto& fod = _index.emplace(name, file_or_directory{back}).first->second; + return created_subdirectory{back, fod}; + } + + file_or_directory* add_file(std::string name, const char* begin, const char* end) & { + assert(_index.find(name) == _index.end()); + _files.emplace_back(begin, end); + return &_index.emplace(name, file_or_directory{_files.back()}).first->second; + } + + const file_or_directory* get(const std::string& path) const { + auto pair = split_path(path); + auto child = _index.find(pair.first); + if (child == _index.end()) { + return nullptr; + } + auto& entry = child->second; + if (pair.second.empty()) { + // We're at the end of the path + return &entry; + } + + if (entry.is_file()) { + // We can't traverse into a file. Stop. + return nullptr; + } + // Keep going down + return entry.as_directory().get(pair.second); + } + + class iterator { + base_iterator _base_iter; + base_iterator _end_iter; + public: + using value_type = directory_entry; + using difference_type = std::ptrdiff_t; + using pointer = const value_type*; + using reference = const value_type&; + using iterator_category = std::input_iterator_tag; + + iterator() = default; + explicit iterator(base_iterator iter, base_iterator end) : _base_iter(iter), _end_iter(end) {} + + iterator begin() const noexcept { + return *this; + } + + iterator end() const noexcept { + return iterator(_end_iter, _end_iter); + } + + inline value_type operator*() const noexcept; + + bool operator==(const iterator& rhs) const noexcept { + return _base_iter == rhs._base_iter; + } + + bool operator!=(const iterator& rhs) const noexcept { + return !(*this == rhs); + } + + iterator& operator++() noexcept { + ++_base_iter; + return *this; + } + + iterator operator++(int) noexcept { + auto cp = *this; + ++_base_iter; + return cp; + } + }; + + using const_iterator = iterator; + + iterator begin() const noexcept { + return iterator(_index.begin(), _index.end()); + } + + iterator end() const noexcept { + return iterator(); + } +}; + +inline std::string normalize_path(std::string path) { + while (path.find("/") == 0) { + path.erase(path.begin()); + } + while (!path.empty() && (path.rfind("/") == path.size() - 1)) { + path.pop_back(); + } + auto off = path.npos; + while ((off = path.find("//")) != path.npos) { + path.erase(path.begin() + static_cast(off)); + } + return path; +} + +using index_type = std::map; + +} // detail + +class directory_entry { + std::string _fname; + const detail::file_or_directory* _item; + +public: + directory_entry() = delete; + explicit directory_entry(std::string filename, const detail::file_or_directory& item) + : _fname(filename) + , _item(&item) + {} + + const std::string& filename() const & { + return _fname; + } + std::string filename() const && { + return std::move(_fname); + } + + bool is_file() const { + return _item->is_file(); + } + + bool is_directory() const { + return _item->is_directory(); + } +}; + +directory_entry detail::directory::iterator::operator*() const noexcept { + assert(begin() != end()); + return directory_entry(_base_iter->first, _base_iter->second); +} + +using directory_iterator = detail::directory::iterator; + +class embedded_filesystem { + // Never-null: + const cmrc::detail::index_type* _index; + const detail::file_or_directory* _get(std::string path) const { + path = detail::normalize_path(path); + auto found = _index->find(path); + if (found == _index->end()) { + return nullptr; + } else { + return found->second; + } + } + +public: + explicit embedded_filesystem(const detail::index_type& index) + : _index(&index) + {} + + file open(const std::string& path) const { + auto entry_ptr = _get(path); + if (!entry_ptr || !entry_ptr->is_file()) { +#ifdef CMRC_NO_EXCEPTIONS + fprintf(stderr, "Error no such file or directory: %s\n", path.c_str()); + abort(); +#else + throw std::system_error(make_error_code(std::errc::no_such_file_or_directory), path); +#endif + } + auto& dat = entry_ptr->as_file(); + return file{dat.begin_ptr, dat.end_ptr}; + } + + bool is_file(const std::string& path) const noexcept { + auto entry_ptr = _get(path); + return entry_ptr && entry_ptr->is_file(); + } + + bool is_directory(const std::string& path) const noexcept { + auto entry_ptr = _get(path); + return entry_ptr && entry_ptr->is_directory(); + } + + bool exists(const std::string& path) const noexcept { + return !!_get(path); + } + + directory_iterator iterate_directory(const std::string& path) const { + auto entry_ptr = _get(path); + if (!entry_ptr) { +#ifdef CMRC_NO_EXCEPTIONS + fprintf(stderr, "Error no such file or directory: %s\n", path.c_str()); + abort(); +#else + throw std::system_error(make_error_code(std::errc::no_such_file_or_directory), path); +#endif + } + if (!entry_ptr->is_directory()) { +#ifdef CMRC_NO_EXCEPTIONS + fprintf(stderr, "Error not a directory: %s\n", path.c_str()); + abort(); +#else + throw std::system_error(make_error_code(std::errc::not_a_directory), path); +#endif + } + return entry_ptr->as_directory().begin(); + } +}; + +} + +#endif // CMRC_CMRC_HPP_INCLUDED +]==]) + +set(cmrc_hpp "${CMRC_INCLUDE_DIR}/cmrc/cmrc.hpp" CACHE INTERNAL "") +set(_generate 1) +if(EXISTS "${cmrc_hpp}") + file(READ "${cmrc_hpp}" _current) + if(_current STREQUAL hpp_content) + set(_generate 0) + endif() +endif() +file(GENERATE OUTPUT "${cmrc_hpp}" CONTENT "${hpp_content}" CONDITION ${_generate}) + +add_library(cmrc-base INTERFACE) +target_include_directories(cmrc-base INTERFACE $) +# Signal a basic C++11 feature to require C++11. +target_compile_features(cmrc-base INTERFACE cxx_nullptr) +set_property(TARGET cmrc-base PROPERTY INTERFACE_CXX_EXTENSIONS OFF) +add_library(cmrc::base ALIAS cmrc-base) + +function(cmrc_add_resource_library name) + set(args ALIAS NAMESPACE TYPE) + cmake_parse_arguments(ARG "" "${args}" "" "${ARGN}") + # Generate the identifier for the resource library's namespace + set(ns_re "[a-zA-Z_][a-zA-Z0-9_]*") + if(NOT DEFINED ARG_NAMESPACE) + # Check that the library name is also a valid namespace + if(NOT name MATCHES "${ns_re}") + message(SEND_ERROR "Library name is not a valid namespace. Specify the NAMESPACE argument") + endif() + set(ARG_NAMESPACE "${name}") + else() + if(NOT ARG_NAMESPACE MATCHES "${ns_re}") + message(SEND_ERROR "NAMESPACE for ${name} is not a valid C++ namespace identifier (${ARG_NAMESPACE})") + endif() + endif() + set(libname "${name}") + # Check that type is either "STATIC" or "OBJECT", or default to "STATIC" if + # not set + if(NOT DEFINED ARG_TYPE) + set(ARG_TYPE STATIC) + elseif(NOT "${ARG_TYPE}" MATCHES "^(STATIC|OBJECT)$") + message(SEND_ERROR "${ARG_TYPE} is not a valid TYPE (STATIC and OBJECT are acceptable)") + set(ARG_TYPE STATIC) + endif() + # Generate a library with the compiled in character arrays. + string(CONFIGURE [=[ + #include + #include + #include + + namespace cmrc { + namespace @ARG_NAMESPACE@ { + + namespace res_chars { + // These are the files which are available in this resource library + $, + > + } + + namespace { + + const cmrc::detail::index_type& + get_root_index() { + static cmrc::detail::directory root_directory_; + static cmrc::detail::file_or_directory root_directory_fod{root_directory_}; + static cmrc::detail::index_type root_index; + root_index.emplace("", &root_directory_fod); + struct dir_inl { + class cmrc::detail::directory& directory; + }; + dir_inl root_directory_dir{root_directory_}; + (void)root_directory_dir; + $, + > + $, + > + return root_index; + } + + } + + cmrc::embedded_filesystem get_filesystem() { + static auto& index = get_root_index(); + return cmrc::embedded_filesystem{index}; + } + + } // @ARG_NAMESPACE@ + } // cmrc + ]=] cpp_content @ONLY) + get_filename_component(libdir "${CMAKE_CURRENT_BINARY_DIR}/__cmrc_${name}" ABSOLUTE) + get_filename_component(lib_tmp_cpp "${libdir}/lib_.cpp" ABSOLUTE) + string(REPLACE "\n " "\n" cpp_content "${cpp_content}") + file(GENERATE OUTPUT "${lib_tmp_cpp}" CONTENT "${cpp_content}") + get_filename_component(libcpp "${libdir}/lib.cpp" ABSOLUTE) + add_custom_command(OUTPUT "${libcpp}" + DEPENDS "${lib_tmp_cpp}" "${cmrc_hpp}" + COMMAND ${CMAKE_COMMAND} -E copy_if_different "${lib_tmp_cpp}" "${libcpp}" + COMMENT "Generating ${name} resource loader" + ) + # Generate the actual static library. Each source file is just a single file + # with a character array compiled in containing the contents of the + # corresponding resource file. + add_library(${name} ${ARG_TYPE} ${libcpp}) + set_property(TARGET ${name} PROPERTY CMRC_LIBDIR "${libdir}") + set_property(TARGET ${name} PROPERTY CMRC_NAMESPACE "${ARG_NAMESPACE}") + target_link_libraries(${name} PUBLIC cmrc::base) + set_property(TARGET ${name} PROPERTY CMRC_IS_RESOURCE_LIBRARY TRUE) + if(ARG_ALIAS) + add_library("${ARG_ALIAS}" ALIAS ${name}) + endif() + cmrc_add_resources(${name} ${ARG_UNPARSED_ARGUMENTS}) +endfunction() + +function(_cmrc_register_dirs name dirpath) + if(dirpath STREQUAL "") + return() + endif() + # Skip this dir if we have already registered it + get_target_property(registered "${name}" _CMRC_REGISTERED_DIRS) + if(dirpath IN_LIST registered) + return() + endif() + # Register the parent directory first + get_filename_component(parent "${dirpath}" DIRECTORY) + if(NOT parent STREQUAL "") + _cmrc_register_dirs("${name}" "${parent}") + endif() + # Now generate the registration + set_property(TARGET "${name}" APPEND PROPERTY _CMRC_REGISTERED_DIRS "${dirpath}") + _cm_encode_fpath(sym "${dirpath}") + if(parent STREQUAL "") + set(parent_sym root_directory) + else() + _cm_encode_fpath(parent_sym "${parent}") + endif() + get_filename_component(leaf "${dirpath}" NAME) + set_property( + TARGET "${name}" + APPEND PROPERTY CMRC_MAKE_DIRS + "static auto ${sym}_dir = ${parent_sym}_dir.directory.add_subdir(\"${leaf}\")\;" + "root_index.emplace(\"${dirpath}\", &${sym}_dir.index_entry)\;" + ) +endfunction() + +function(cmrc_add_resources name) + get_target_property(is_reslib ${name} CMRC_IS_RESOURCE_LIBRARY) + if(NOT TARGET ${name} OR NOT is_reslib) + message(SEND_ERROR "cmrc_add_resources called on target '${name}' which is not an existing resource library") + return() + endif() + + set(options) + set(args WHENCE PREFIX) + set(list_args) + cmake_parse_arguments(ARG "${options}" "${args}" "${list_args}" "${ARGN}") + + if(NOT ARG_WHENCE) + set(ARG_WHENCE ${CMAKE_CURRENT_SOURCE_DIR}) + endif() + _cmrc_normalize_path(ARG_WHENCE) + get_filename_component(ARG_WHENCE "${ARG_WHENCE}" ABSOLUTE) + + # Generate the identifier for the resource library's namespace + get_target_property(lib_ns "${name}" CMRC_NAMESPACE) + + get_target_property(libdir ${name} CMRC_LIBDIR) + get_target_property(target_dir ${name} SOURCE_DIR) + file(RELATIVE_PATH reldir "${target_dir}" "${CMAKE_CURRENT_SOURCE_DIR}") + if(reldir MATCHES "^\\.\\.") + message(SEND_ERROR "Cannot call cmrc_add_resources in a parent directory from the resource library target") + return() + endif() + + foreach(input IN LISTS ARG_UNPARSED_ARGUMENTS) + _cmrc_normalize_path(input) + get_filename_component(abs_in "${input}" ABSOLUTE) + # Generate a filename based on the input filename that we can put in + # the intermediate directory. + file(RELATIVE_PATH relpath "${ARG_WHENCE}" "${abs_in}") + if(relpath MATCHES "^\\.\\.") + # For now we just error on files that exist outside of the soure dir. + message(SEND_ERROR "Cannot add file '${input}': File must be in a subdirectory of ${ARG_WHENCE}") + continue() + endif() + if(DEFINED ARG_PREFIX) + _cmrc_normalize_path(ARG_PREFIX) + endif() + if(ARG_PREFIX AND NOT ARG_PREFIX MATCHES "/$") + set(ARG_PREFIX "${ARG_PREFIX}/") + endif() + get_filename_component(dirpath "${ARG_PREFIX}${relpath}" DIRECTORY) + _cmrc_register_dirs("${name}" "${dirpath}") + get_filename_component(abs_out "${libdir}/intermediate/${ARG_PREFIX}${relpath}.cpp" ABSOLUTE) + # Generate a symbol name relpath the file's character array + _cm_encode_fpath(sym "${relpath}") + # Get the symbol name for the parent directory + if(dirpath STREQUAL "") + set(parent_sym root_directory) + else() + _cm_encode_fpath(parent_sym "${dirpath}") + endif() + # Generate the rule for the intermediate source file + _cmrc_generate_intermediate_cpp(${lib_ns} ${sym} "${abs_out}" "${abs_in}") + target_sources(${name} PRIVATE "${abs_out}") + set_property(TARGET ${name} APPEND PROPERTY CMRC_EXTERN_DECLS + "// Pointers to ${input}" + "extern const char* const ${sym}_begin\;" + "extern const char* const ${sym}_end\;" + ) + get_filename_component(leaf "${relpath}" NAME) + set_property( + TARGET ${name} + APPEND PROPERTY CMRC_MAKE_FILES + "root_index.emplace(" + " \"${ARG_PREFIX}${relpath}\"," + " ${parent_sym}_dir.directory.add_file(" + " \"${leaf}\"," + " res_chars::${sym}_begin," + " res_chars::${sym}_end" + " )" + ")\;" + ) + endforeach() +endfunction() + +function(_cmrc_generate_intermediate_cpp lib_ns symbol outfile infile) + add_custom_command( + # This is the file we will generate + OUTPUT "${outfile}" + # These are the primary files that affect the output + DEPENDS "${infile}" "${_CMRC_SCRIPT}" + COMMAND + "${CMAKE_COMMAND}" + -D_CMRC_GENERATE_MODE=TRUE + -DNAMESPACE=${lib_ns} + -DSYMBOL=${symbol} + "-DINPUT_FILE=${infile}" + "-DOUTPUT_FILE=${outfile}" + -P "${_CMRC_SCRIPT}" + COMMENT "Generating intermediate file for ${infile}" + ) +endfunction() + +function(_cm_encode_fpath var fpath) + string(MAKE_C_IDENTIFIER "${fpath}" ident) + string(MD5 hash "${fpath}") + string(SUBSTRING "${hash}" 0 4 hash) + set(${var} f_${hash}_${ident} PARENT_SCOPE) +endfunction() diff --git a/src/core/libraries/np_trophy/np_trophy.cpp b/src/core/libraries/np_trophy/np_trophy.cpp index ccd8ab710..91dd5b4b4 100644 --- a/src/core/libraries/np_trophy/np_trophy.cpp +++ b/src/core/libraries/np_trophy/np_trophy.cpp @@ -941,7 +941,7 @@ int PS4_SYSV_ABI sceNpTrophyUnlockTrophy(OrbisNpTrophyContext context, OrbisNpTr std::filesystem::path current_icon_path = trophy_dir / "trophy00" / "Icons" / trophy_icon_file; - AddTrophyToQueue(current_icon_path, current_trophy_name); + AddTrophyToQueue(current_icon_path, current_trophy_name, current_trophy_type); } } } @@ -978,7 +978,7 @@ int PS4_SYSV_ABI sceNpTrophyUnlockTrophy(OrbisNpTrophyContext context, OrbisNpTr trophy_dir / "trophy00" / "Icons" / platinum_icon_file; *platinumId = platinum_trophy_id; - AddTrophyToQueue(platinum_icon_path, platinum_trophy_name); + AddTrophyToQueue(platinum_icon_path, platinum_trophy_name, "P"); } } diff --git a/src/core/libraries/np_trophy/trophy_ui.cpp b/src/core/libraries/np_trophy/trophy_ui.cpp index 4bb8c8240..e5c11f4cb 100644 --- a/src/core/libraries/np_trophy/trophy_ui.cpp +++ b/src/core/libraries/np_trophy/trophy_ui.cpp @@ -3,6 +3,7 @@ #include #include +#include #include #include "common/assert.h" #include "common/config.h" @@ -10,6 +11,8 @@ #include "imgui/imgui_std.h" #include "trophy_ui.h" +CMRC_DECLARE(res); + using namespace ImGui; namespace Libraries::NpTrophy { @@ -17,14 +20,34 @@ std::optional current_trophy_ui; std::queue trophy_queue; std::mutex queueMtx; -TrophyUI::TrophyUI(const std::filesystem::path& trophyIconPath, const std::string& trophyName) - : trophy_name(trophyName) { +TrophyUI::TrophyUI(const std::filesystem::path& trophyIconPath, const std::string& trophyName, + const std::string_view& rarity) + : trophy_name(trophyName), trophy_type(rarity) { + if (std::filesystem::exists(trophyIconPath)) { trophy_icon = RefCountedTexture::DecodePngFile(trophyIconPath); } else { LOG_ERROR(Lib_NpTrophy, "Couldnt load trophy icon at {}", fmt::UTF(trophyIconPath.u8string())); } + + std::string pathString; + if (trophy_type == "P") { + pathString = "Resources/platinum.png"; + } else if (trophy_type == "G") { + pathString = "Resources/gold.png"; + } else if (trophy_type == "S") { + pathString = "Resources/silver.png"; + } else if (trophy_type == "B") { + pathString = "Resources/bronze.png"; + } + + auto resource = cmrc::res::get_filesystem(); + auto trophytypefile = resource.open(pathString); + std::filesystem::path trophyTypePath = pathString; + if (std::filesystem::exists(trophyTypePath)) + trophy_type_icon = RefCountedTexture::DecodePngFile(trophyTypePath); + AddLayer(this); } @@ -42,29 +65,49 @@ void TrophyUI::Draw() { float AdjustWidth = io.DisplaySize.x / 1280; float AdjustHeight = io.DisplaySize.y / 720; const ImVec2 window_size{ - std::min(io.DisplaySize.x, (300 * AdjustWidth)), + std::min(io.DisplaySize.x, (350 * AdjustWidth)), std::min(io.DisplaySize.y, (70 * AdjustHeight)), }; SetNextWindowSize(window_size); SetNextWindowCollapsed(false); - SetNextWindowPos(ImVec2(io.DisplaySize.x - (300 * AdjustWidth), (50 * AdjustHeight))); + SetNextWindowPos(ImVec2(io.DisplaySize.x - (370 * AdjustWidth), (50 * AdjustHeight))); KeepNavHighlight(); if (Begin("Trophy Window", nullptr, ImGuiWindowFlags_NoDecoration | ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_NoInputs)) { - if (trophy_icon) { - Image(trophy_icon.GetTexture().im_id, ImVec2((50 * AdjustWidth), (50 * AdjustHeight))); - ImGui::SameLine(); + if (trophy_type_icon) { + SetCursorPosY((window_size.y * 0.5f) - (25 * AdjustHeight)); + Image(trophy_type_icon.GetTexture().im_id, + ImVec2((50 * AdjustWidth), (50 * AdjustHeight))); } else { // placeholder const auto pos = GetCursorScreenPos(); - ImGui::GetWindowDrawList()->AddRectFilled(pos, pos + ImVec2{50.0f}, + ImGui::GetWindowDrawList()->AddRectFilled(pos, pos + ImVec2{50.0f * AdjustHeight}, GetColorU32(ImVec4{0.7f})); - ImGui::Indent(60); } + + ImGui::SameLine(); + SetWindowFontScale((1.2 * AdjustHeight)); + char earned_text[] = "Trophy earned!\n%s"; + const float text_height = + ImGui::CalcTextSize(std::strcat(earned_text, trophy_name.c_str())).y; + SetCursorPosY((window_size.y - text_height) * 0.5f); + + ImGui::PushTextWrapPos(window_size.x - (60 * AdjustWidth)); TextWrapped("Trophy earned!\n%s", trophy_name.c_str()); + ImGui::SameLine(window_size.x - (60 * AdjustWidth)); + + if (trophy_icon) { + SetCursorPosY((window_size.y * 0.5f) - (25 * AdjustHeight)); + Image(trophy_icon.GetTexture().im_id, ImVec2((50 * AdjustWidth), (50 * AdjustHeight))); + } else { + // placeholder + const auto pos = GetCursorScreenPos(); + ImGui::GetWindowDrawList()->AddRectFilled(pos, pos + ImVec2{30.0f * AdjustHeight}, + GetColorU32(ImVec4{0.7f})); + } } End(); @@ -74,14 +117,16 @@ void TrophyUI::Draw() { if (!trophy_queue.empty()) { TrophyInfo next_trophy = trophy_queue.front(); trophy_queue.pop(); - current_trophy_ui.emplace(next_trophy.trophy_icon_path, next_trophy.trophy_name); + current_trophy_ui.emplace(next_trophy.trophy_icon_path, next_trophy.trophy_name, + next_trophy.trophy_type); } else { current_trophy_ui.reset(); } } } -void AddTrophyToQueue(const std::filesystem::path& trophyIconPath, const std::string& trophyName) { +void AddTrophyToQueue(const std::filesystem::path& trophyIconPath, const std::string& trophyName, + const std::string_view& rarity) { std::lock_guard lock(queueMtx); if (Config::getisTrophyPopupDisabled()) { @@ -90,10 +135,11 @@ void AddTrophyToQueue(const std::filesystem::path& trophyIconPath, const std::st TrophyInfo new_trophy; new_trophy.trophy_icon_path = trophyIconPath; new_trophy.trophy_name = trophyName; + new_trophy.trophy_type = rarity; trophy_queue.push(new_trophy); } else { - current_trophy_ui.emplace(trophyIconPath, trophyName); + current_trophy_ui.emplace(trophyIconPath, trophyName, rarity); } } -} // namespace Libraries::NpTrophy \ No newline at end of file +} // namespace Libraries::NpTrophy diff --git a/src/core/libraries/np_trophy/trophy_ui.h b/src/core/libraries/np_trophy/trophy_ui.h index ce7a1c63a..16e707059 100644 --- a/src/core/libraries/np_trophy/trophy_ui.h +++ b/src/core/libraries/np_trophy/trophy_ui.h @@ -17,7 +17,8 @@ namespace Libraries::NpTrophy { class TrophyUI final : public ImGui::Layer { public: - TrophyUI(const std::filesystem::path& trophyIconPath, const std::string& trophyName); + TrophyUI(const std::filesystem::path& trophyIconPath, const std::string& trophyName, + const std::string_view& rarity); ~TrophyUI() override; void Finish(); @@ -26,15 +27,19 @@ public: private: std::string trophy_name; + std::string_view trophy_type; float trophy_timer = 5.0f; ImGui::RefCountedTexture trophy_icon; + ImGui::RefCountedTexture trophy_type_icon; }; struct TrophyInfo { std::filesystem::path trophy_icon_path; std::string trophy_name; + std::string_view trophy_type; }; -void AddTrophyToQueue(const std::filesystem::path& trophyIconPath, const std::string& trophyName); +void AddTrophyToQueue(const std::filesystem::path& trophyIconPath, const std::string& trophyName, + const std::string_view& rarity); -}; // namespace Libraries::NpTrophy \ No newline at end of file +}; // namespace Libraries::NpTrophy diff --git a/src/qt_gui/trophy_viewer.cpp b/src/qt_gui/trophy_viewer.cpp index 4fa5ee5e2..697840268 100644 --- a/src/qt_gui/trophy_viewer.cpp +++ b/src/qt_gui/trophy_viewer.cpp @@ -2,9 +2,12 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include +#include #include "common/path_util.h" #include "trophy_viewer.h" +CMRC_DECLARE(res); + TrophyViewer::TrophyViewer(QString trophyPath, QString gameTrpPath) : QMainWindow() { this->setWindowTitle(tr("Trophy Viewer")); this->setAttribute(Qt::WA_DeleteOnClose); @@ -115,13 +118,34 @@ void TrophyViewer::PopulateTrophyWidget(QString title) { item->setData(Qt::DecorationRole, icon); item->setFlags(item->flags() & ~Qt::ItemIsEditable); tableWidget->setItem(row, 1, item); + + const std::string filename = GetTrpType(trpType[row].at(0)); + QTableWidgetItem* typeitem = new QTableWidgetItem(); + + auto resource = cmrc::res::get_filesystem(); + std::string resourceString = "Resources/" + filename; + auto trophytypefile = resource.open(resourceString); + + QImage type_icon = + QImage(QString::fromStdString(resourceString)) + .scaled(QSize(64, 64), Qt::KeepAspectRatio, Qt::SmoothTransformation); + typeitem->setData(Qt::DecorationRole, type_icon); + typeitem->setFlags(typeitem->flags() & ~Qt::ItemIsEditable); + tableWidget->setItem(row, 6, typeitem); + + std::string detailString = trophyDetails[row].toStdString(); + std::size_t newline_pos = 0; + while ((newline_pos = detailString.find("\n", newline_pos)) != std::string::npos) { + detailString.replace(newline_pos, 1, " "); + ++newline_pos; + } + if (!trophyNames.isEmpty() && !trophyDetails.isEmpty()) { SetTableItem(tableWidget, row, 0, trpUnlocked[row]); SetTableItem(tableWidget, row, 2, trophyNames[row]); - SetTableItem(tableWidget, row, 3, trophyDetails[row]); + SetTableItem(tableWidget, row, 3, QString::fromStdString(detailString)); SetTableItem(tableWidget, row, 4, trpId[row]); SetTableItem(tableWidget, row, 5, trpHidden[row]); - SetTableItem(tableWidget, row, 6, GetTrpType(trpType[row].at(0))); SetTableItem(tableWidget, row, 7, trpPid[row]); } tableWidget->verticalHeader()->resizeSection(row, icon.height()); @@ -157,7 +181,7 @@ void TrophyViewer::SetTableItem(QTableWidget* parent, int row, int column, QStri label->setGraphicsEffect(shadowEffect); // Apply shadow effect to the QLabel layout->addWidget(label); - if (column != 1 && column != 2) + if (column != 1 && column != 2 && column != 3) layout->setAlignment(Qt::AlignCenter); widget->setLayout(layout); parent->setItem(row, column, item); diff --git a/src/qt_gui/trophy_viewer.h b/src/qt_gui/trophy_viewer.h index 81b9b1adc..089de433e 100644 --- a/src/qt_gui/trophy_viewer.h +++ b/src/qt_gui/trophy_viewer.h @@ -32,17 +32,17 @@ private: QString gameTrpPath_; TRP trp; - QString GetTrpType(const QChar trp_) { + std::string GetTrpType(const QChar trp_) { switch (trp_.toLatin1()) { case 'B': - return "Bronze"; + return "bronze.png"; case 'S': - return "Silver"; + return "silver.png"; case 'G': - return "Gold"; + return "gold.png"; case 'P': - return "Platinum"; + return "platinum.png"; } return "Unknown"; } -}; \ No newline at end of file +};