Add support for OpenSans and font-awesome fonts.
PiperOrigin-RevId: 833666932 Change-Id: I5f0207c3331705b9078a1297b3e7b2a8d363ad60
This commit is contained in:
committed by
Copybara-Service
parent
695e4c4038
commit
8077a6819c
@@ -56,6 +56,9 @@ endif()
|
||||
|
||||
include(third_party_deps/dear_imgui)
|
||||
include(third_party_deps/implot)
|
||||
include(third_party_deps/opensans)
|
||||
include(third_party_deps/font_awesome)
|
||||
|
||||
target_link_libraries(${MUJOCO_STUDIO_TARGET_NAME}
|
||||
PRIVATE
|
||||
${MUJOCO_STUDIO_RENDER_DEPS}
|
||||
@@ -68,20 +71,36 @@ target_link_libraries(${MUJOCO_STUDIO_TARGET_NAME}
|
||||
mujoco::toolbox
|
||||
)
|
||||
|
||||
file(MAKE_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/assets)
|
||||
|
||||
add_custom_command(
|
||||
TARGET ${MUJOCO_STUDIO_TARGET_NAME}
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-E copy
|
||||
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/../_deps/opensans-src/fonts/ttf/OpenSans-Regular.ttf
|
||||
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/assets
|
||||
COMMENT "Copying OpenSans-Regular.ttf assets to build directory"
|
||||
)
|
||||
add_custom_command(
|
||||
TARGET ${MUJOCO_STUDIO_TARGET_NAME}
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-E copy
|
||||
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/../_deps/font_awesome-src/fonts/fontawesome-webfont.ttf
|
||||
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/assets
|
||||
COMMENT "Copying fontawesome-webfont.ttf to build directory"
|
||||
)
|
||||
|
||||
# Filament backend requires additional files to be copied into an "assets" folder.
|
||||
if(MUJOCO_USE_FILAMENT)
|
||||
if(WIN32)
|
||||
# Copy to work around lack of symlink permissions on Windows.
|
||||
set(COPY_COMMAND copy_directory)
|
||||
else()
|
||||
set(COPY_COMMAND create_symlink)
|
||||
endif()
|
||||
add_custom_command(
|
||||
TARGET ${MUJOCO_STUDIO_TARGET_NAME}
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E ${COPY_COMMAND}
|
||||
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/../src/experimental/filament/assets
|
||||
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/assets
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-E copy_directory
|
||||
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/../src/experimental/filament/assets
|
||||
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/assets
|
||||
COMMENT "Copying Filament assets to build directory"
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -45,6 +45,27 @@ static void InitImGui(SDL_Window* window, const LoadAssetFn& load_asset_fn) {
|
||||
ImGui::StyleColorsDark();
|
||||
ImGui_ImplSDL2_InitForOther(window);
|
||||
|
||||
#ifndef __EMSCRIPTEN__
|
||||
// TODO: Get font loading working for wasm.
|
||||
ImFontConfig main_cfg;
|
||||
main_cfg.OversampleH = 8;
|
||||
main_cfg.OversampleV = 4;
|
||||
main_cfg.GlyphExtraSpacing.x = 0.3f;
|
||||
|
||||
auto main_font = load_asset_fn("OpenSans-Regular.ttf");
|
||||
io.Fonts->AddFontFromMemoryTTF(main_font.data(), main_font.size(), 18.f,
|
||||
&main_cfg);
|
||||
|
||||
ImFontConfig icon_cfg;
|
||||
icon_cfg.OversampleH = 3;
|
||||
icon_cfg.OversampleV = 3;
|
||||
icon_cfg.MergeMode = true;
|
||||
icon_cfg.GlyphMinAdvanceX = 14.0f;
|
||||
auto icon_font = load_asset_fn("fontawesome-webfont.ttf");
|
||||
constexpr ImWchar icon_ranges[] = {0xf000, 0xf3ff, 0x000};
|
||||
io.Fonts->AddFontFromMemoryTTF(icon_font.data(), icon_font.size(), 14.f,
|
||||
&icon_cfg, icon_ranges);
|
||||
#endif
|
||||
io.Fonts->Build();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user