ctr_Repair/trunk/SkipFirstLaunch/idb/include/IDBUT.h
N2614 0d5bf9a14e UIG製のコードを追加
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@651 385bec56-5757-e545-9c3a-d8741f4650f1
2012-02-22 02:25:50 +00:00

77 lines
3.2 KiB
C++

/*!
@file IDBUT.h
@brief アイコンデータベース用のユーティリティです
*/
#ifndef __IDB_IDBUT_H_
#define __IDB_IDBUT_H_
#include <nn/types.h>
#include <nn/cfg/CTR/cfg_RegionCode.h>
#include <nn/cfg/CTR/cfg_LanguageCode.h>
#include "IDB.h"
namespace nn
{
namespace CTR
{
struct SystemMenuDataTitle;
}
}
/////////////////////////////////////////////////////////////////////////////////
// 関数宣言
/////////////////////////////////////////////////////////////////////////////////
// SystemMenuDataTitleを初期化します
void IDBUT_InitSoftwareInfo( nn::CTR::SystemMenuDataTitle *info );
void IDBUT_InitIcon( IDB_Icon *icon );
// アイコンデータから適切な言語のインデックスを返します
int IDBUT_GetLanguageIndex( IDB_Icon *icon, nn::cfg::CTR::CfgRegionCode region, nn::cfg::CTR::CfgLanguageCode language );
int IDBUT_GetLanguageIndexReceiverSide( IDB_Icon *icon, nn::cfg::CTR::CfgRegionCode receiverRegion, nn::cfg::CTR::CfgLanguageCode receiverLanguage );
void IDBUT_GetTextureFromIcon( IDB_TextureData* dstTex, const IDB_IconData* srcIcon );
void IDBUT_GetIconFromTexture( IDB_IconData* dstIcon, const IDB_TextureData* srcTex );
s32 IDBUT_GetIconDataSize(void);
// CTRのROMアイコンヘッダのnn::CTR::SystemMenuDataから、IDBで使用する形式のデータに変換します。
void IDBUT_GetIconFromSystemMenuData( IDB_Icon* idbIcon, const IDB_Key *key, nn::CTR::SystemMenuData* sysMenuData );
// TWL/NTRのバナーファイルのnn::CTR::LegacyTwlBannerFileから、IDBで使用する形式のデータに変換します。
void IDBUT_GetIconFromLegacyBannerData( IDB_Icon* idbIcon, const IDB_Key *key, nn::CTR::LegacyTwlBannerFile* legacyBannerData );
// TWL のアニメ情報とアニメのコマ数を指定すると
// そのコマにおけるアイコンのテクスチャを取得できます。
void IDBUT_GetTwlIconTextureByControlInfoNo( u16* dstTwlIconTexture,
const nn::CTR::LegacyBannerAnime* bannerAnm,
const u8 controlInfoNo, u8* workBuffer );
// TWL のアニメ情報のインデックス通りのアイコンのテクスチャを取得できます。
void IDBUT_GetTwlIconTextureByCellNo( u16* dstTwlIconTexture,
const nn::CTR::LegacyBannerAnime* bannerAnm,
const u8 cellNo, u8* workBuffer );
// GetTwlIconTexture に必要なバッファのサイズを取得します
s32 IDBUT_GetWorkBufferSizeForConvertTwlIcon(void);
// GetTwlIconTexture の dstTwlIconTexture のサイズを取得します。
s32 IDBUT_GetTwlIconTextureSize(void);
// NTR のアイコンをテクスチャへ変換します。
void IDBUT_GetNtrIconTexture( u16* dstNtrIconTexture,
const IDB_NTRIconDataRaw* ntrIconDataRaw,
u8* workBuffer );
// NTR のアイコンを変換するのに必要なバッファのサイズを取得します。
s32 IDBUT_GetWorkBufferSizeForConvertNtrIcon(void);
// NTR のアイコンを変換後のサイズを取得します。
s32 IDBUT_GetNtrIconTextureSize(void);
#endif // ifndef __IDB_IDBUT_H_