[studio] Change Studio font
All checks were successful
Build / build (push) Successful in 1m16s

This commit is contained in:
Gary Talent 2025-04-19 00:23:36 -05:00
parent 535d8876d3
commit 95f7c33419
7 changed files with 32 additions and 4 deletions

View File

@ -19,6 +19,7 @@ pkg-gba: build
.PHONY: generate-studio-rsrc .PHONY: generate-studio-rsrc
generate-studio-rsrc: generate-studio-rsrc:
${BC_CMD_ENVRUN} ${BC_PY3} ./util/scripts/file-to-cpp.py --rsrc src/olympic/studio/applib/src/rsrc.json
${BC_CMD_ENVRUN} ${BC_PY3} ./util/scripts/file-to-cpp.py --rsrc src/nostalgia/studio/rsrc.json ${BC_CMD_ENVRUN} ${BC_PY3} ./util/scripts/file-to-cpp.py --rsrc src/nostalgia/studio/rsrc.json
.PHONY: build-player .PHONY: build-player

View File

@ -5,6 +5,7 @@ add_library(
clawviewer.cpp clawviewer.cpp
deleteconfirmation.cpp deleteconfirmation.cpp
filedialogmanager.cpp filedialogmanager.cpp
font.cpp
makecopypopup.cpp makecopypopup.cpp
newdir.cpp newdir.cpp
newmenu.cpp newmenu.cpp

Binary file not shown.

View File

@ -5,7 +5,7 @@
namespace studio::files { namespace studio::files {
static const ox::Array<uint8_t, 162588> RobotoMedium_ttfData { static constexpr ox::Array<uint8_t, 162588> RobotoMedium_ttfData {
0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x04,
0x00, 0x10, 0x47, 0x50, 0x4f, 0x53, 0x7d, 0xaa, 0x71, 0x8c, 0x00, 0x10, 0x47, 0x50, 0x4f, 0x53, 0x7d, 0xaa, 0x71, 0x8c,
0x00, 0x02, 0x08, 0xa8, 0x00, 0x00, 0x59, 0x0c, 0x47, 0x53, 0x00, 0x02, 0x08, 0xa8, 0x00, 0x00, 0x59, 0x0c, 0x47, 0x53,

View File

@ -0,0 +1,11 @@
{
"cpp": "font.cpp",
"hpp": "font.hpp",
"namespace": "studio::files",
"files": [
{
"path": "Roboto-Medium.ttf",
"cpp_name": "RobotoMedium_ttf"
}
]
}

View File

@ -14,6 +14,7 @@
#include <studio/configio.hpp> #include <studio/configio.hpp>
#include "clawviewer.hpp" #include "clawviewer.hpp"
#include "filedialogmanager.hpp" #include "filedialogmanager.hpp"
#include "font.hpp"
#include "studioui.hpp" #include "studioui.hpp"
namespace studio { namespace studio {
@ -57,6 +58,19 @@ StudioUI::StudioUI(turbine::Context &ctx, ox::StringParam projectDataDir) noexce
m_projectExplorer{keelCtx(m_tctx)}, m_projectExplorer{keelCtx(m_tctx)},
m_newProject{m_projectDataDir}, m_newProject{m_projectDataDir},
m_aboutPopup{m_tctx} { m_aboutPopup{m_tctx} {
{
ImFontConfig fontCfg;
fontCfg.FontDataOwnedByAtlas = false;
auto const &io = ImGui::GetIO();
auto const font = files::RobotoMedium_ttf();
// const_cast is needed because this data is definitely const,
// but AddFontFromMemoryTTF requires a mutable buffer.
// However, setting fontCfg.FontDataOwnedByAtlas ensures
// that it will still be treated as const.
// ImGui documentation recognize that this is a bad design,
// and hopefully it will change at some point.
io.Fonts->AddFontFromMemoryTTF(const_cast<uint8_t*>(font.data()), static_cast<int>(font.size()), 13, &fontCfg);
}
turbine::setApplicationData(m_tctx, &m_sctx); turbine::setApplicationData(m_tctx, &m_sctx);
m_projectExplorer.fileChosen.connect(this, &StudioUI::openFile); m_projectExplorer.fileChosen.connect(this, &StudioUI::openFile);
m_projectExplorer.addDir.connect(this, &StudioUI::addDir); m_projectExplorer.addDir.connect(this, &StudioUI::addDir);

View File

@ -40,7 +40,7 @@ def file_to_cpp(path: str, cpp_name: str) -> tuple[str, str]:
cpp = '' cpp = ''
hpp = '' hpp = ''
data, data_len = file_to_hex(path, "\t") data, data_len = file_to_hex(path, "\t")
cpp += f'\nstatic constexpr ox::Array<uint8_t, {data_len}> {cpp_name}Data {{\n{data}\n}};\n' cpp += f'\nstatic const ox::Array<uint8_t, {data_len}> {cpp_name}Data {{\n{data}\n}};\n'
cpp += f'\nox::SpanView<uint8_t> {cpp_name}() noexcept {{ return {cpp_name}Data; }}\n' cpp += f'\nox::SpanView<uint8_t> {cpp_name}() noexcept {{ return {cpp_name}Data; }}\n'
hpp += f'\n[[nodiscard]]\nox::SpanView<uint8_t> {cpp_name}() noexcept;\n' hpp += f'\n[[nodiscard]]\nox::SpanView<uint8_t> {cpp_name}() noexcept;\n'
return cpp, hpp return cpp, hpp
@ -89,8 +89,9 @@ def proc_rsrc_file(rsrc_path: str):# Open and read the JSON file
hpp += h hpp += h
if all_files is not None: if all_files is not None:
all_files_func += f'\t\t{cpp_name}(),\n' all_files_func += f'\t\t{cpp_name}(),\n'
cpp += all_files_func + '\t};\n}\n' if all_files is not None:
hpp += all_files_func_decl cpp += all_files_func + '\t};\n}\n'
hpp += all_files_func_decl
cpp += pop_ns cpp += pop_ns
hpp += pop_ns hpp += pop_ns
write_txt_file(os.path.join(base_path, data['cpp']), cpp) write_txt_file(os.path.join(base_path, data['cpp']), cpp)