Make ENABLE_IM_FONT_ATLAS_SNAPSHOT CMake option

Signed-off-by: Isaac Marovitz <isaacryu@icloud.com>
This commit is contained in:
Isaac Marovitz 2025-03-05 18:56:20 +00:00
parent 0866be0c3d
commit c3a85cd75f
No known key found for this signature in database
GPG key ID: 97250B2B09A132E1
3 changed files with 19 additions and 6 deletions

View file

@ -8,6 +8,11 @@ if (CMAKE_SYSTEM_NAME MATCHES "Linux")
option(UNLEASHED_RECOMP_FLATPAK "Configure the build for Flatpak compatibility." OFF)
endif()
# Undefine this to generate a font atlas file in working directory.
# You also need to do this if you are testing localization, as only
# characters in the locale get added to the atlas.
option(ENABLE_IM_FONT_ATLAS_SNAPSHOT "Use font atlas snapshot instead of generating one." ON)
function(BIN2C)
cmake_parse_arguments(BIN2C_ARGS "" "TARGET_OBJ;SOURCE_FILE;DEST_FILE;ARRAY_NAME;COMPRESSION_TYPE" "" ${ARGN})
@ -317,6 +322,10 @@ if (CMAKE_SYSTEM_NAME MATCHES "Linux")
target_compile_definitions(UnleashedRecomp PRIVATE SDL_VULKAN_ENABLED)
endif()
if (ENABLE_IM_FONT_ATLAS_SNAPSHOT)
target_compile_definitions(UnleashedRecomp PRIVATE -DENABLE_IM_FONT_ATLAS_SNAPSHOT)
else()
find_package(directx-dxc REQUIRED)
find_package(CURL REQUIRED)
@ -357,7 +366,6 @@ endif()
target_link_libraries(UnleashedRecomp PRIVATE
fmt::fmt
libzstd_static
msdf-atlas-gen::msdf-atlas-gen
nfd::nfd
o1heap
XenonUtils
@ -369,6 +377,12 @@ target_link_libraries(UnleashedRecomp PRIVATE
CURL::libcurl
)
if (NOT ENABLE_IM_FONT_ATLAS_SNAPSHOT)
target_link_libraries(UnleashedRecomp PRIVATE
msdf-atlas-gen::msdf-atlas-gen
)
endif()
target_include_directories(UnleashedRecomp PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
"${CMAKE_CURRENT_SOURCE_DIR}/api"

View file

@ -1,5 +1,7 @@
#include "imgui_font_builder.h"
#ifndef ENABLE_IM_FONT_ATLAS_SNAPSHOT
#include <msdf-atlas-gen/msdf-atlas-gen.h>
// Taken directly from msdf-atlas-gen, modified to support custom rectangles.
@ -321,3 +323,5 @@ static bool FontBuilder_Build(ImFontAtlas* atlas)
}
ImFontBuilderIO g_fontBuilderIO = { FontBuilder_Build };
#endif

View file

@ -1,10 +1,5 @@
#pragma once
// Undefine this to generate a font atlas file in working directory.
// You also need to do this if you are testing localization, as only
// characters in the locale get added to the atlas.
#define ENABLE_IM_FONT_ATLAS_SNAPSHOT
struct ImFontAtlasSnapshot
{
std::vector<uint8_t> data;