diff options
author | Subv <subv2112@gmail.com> | 2016-04-19 19:13:00 +0200 |
---|---|---|
committer | Subv <subv2112@gmail.com> | 2016-05-13 03:01:54 +0200 |
commit | abf8dcd700ce6e8af35aff9b8fa568dfe6acfecb (patch) | |
tree | faba126b2f72850d65ba1102de49d6e6a07e37d4 /src/core/hle/service/apt/bcfnt/bcfnt.h | |
parent | Kernel/SharedMemory: Log an error when Map fails. (diff) | |
download | yuzu-abf8dcd700ce6e8af35aff9b8fa568dfe6acfecb.tar yuzu-abf8dcd700ce6e8af35aff9b8fa568dfe6acfecb.tar.gz yuzu-abf8dcd700ce6e8af35aff9b8fa568dfe6acfecb.tar.bz2 yuzu-abf8dcd700ce6e8af35aff9b8fa568dfe6acfecb.tar.lz yuzu-abf8dcd700ce6e8af35aff9b8fa568dfe6acfecb.tar.xz yuzu-abf8dcd700ce6e8af35aff9b8fa568dfe6acfecb.tar.zst yuzu-abf8dcd700ce6e8af35aff9b8fa568dfe6acfecb.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/service/apt/bcfnt/bcfnt.h | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/src/core/hle/service/apt/bcfnt/bcfnt.h b/src/core/hle/service/apt/bcfnt/bcfnt.h new file mode 100644 index 000000000..388c6bea0 --- /dev/null +++ b/src/core/hle/service/apt/bcfnt/bcfnt.h @@ -0,0 +1,87 @@ +// Copyright 2016 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include "common/swap.h" + +#include "core/hle/kernel/shared_memory.h" +#include "core/hle/service/service.h" + +namespace Service { +namespace APT { +namespace BCFNT { ///< BCFNT Shared Font file structures + +struct CFNT { + u8 magic[4]; + u16_le endianness; + u16_le header_size; + u32_le version; + u32_le file_size; + u32_le num_blocks; +}; + +struct FINF { + u8 magic[4]; + u32_le section_size; + u8 font_type; + u8 line_feed; + u16_le alter_char_index; + u8 default_width[3]; + u8 encoding; + u32_le tglp_offset; + u32_le cwdh_offset; + u32_le cmap_offset; + u8 height; + u8 width; + u8 ascent; + u8 reserved; +}; + +struct TGLP { + u8 magic[4]; + u32_le section_size; + u8 cell_width; + u8 cell_height; + u8 baseline_position; + u8 max_character_width; + u32_le sheet_size; + u16_le num_sheets; + u16_le sheet_image_format; + u16_le num_columns; + u16_le num_rows; + u16_le sheet_width; + u16_le sheet_height; + u32_le sheet_data_offset; +}; + +struct CMAP { + u8 magic[4]; + u32_le section_size; + u16_le code_begin; + u16_le code_end; + u16_le mapping_method; + u16_le reserved; + u32_le next_cmap_offset; +}; + +struct CWDH { + u8 magic[4]; + u32_le section_size; + u16_le start_index; + u16_le end_index; + u32_le next_cwdh_offset; +}; + +/** + * Relocates the internal addresses of the BCFNT Shared Font to the new base. + * @param shared_font SharedMemory object that contains the Shared Font + * @param previous_address Previous address at which the offsets in the structure were based. + * @param new_address New base for the offsets in the structure. + */ +void RelocateSharedFont(Kernel::SharedPtr<Kernel::SharedMemory> shared_font, VAddr previous_address, VAddr new_address); + +} // namespace BCFNT +} // namespace APT +} // namespace Service |