1 /*---------------------------------------------------------------------------* 2 Project: NintendoWare 3 File: font_ResFont.h 4 5 Copyright (C)2009-2010 Nintendo Co., Ltd./HAL Laboratory, Inc. All rights reserved. 6 7 These coded instructions, statements, and computer programs contain 8 proprietary information of Nintendo of America Inc. and/or Nintendo 9 Company Ltd., and are protected by Federal copyright law. They may 10 not be disclosed to third parties or copied or duplicated in any form, 11 in whole or in part, without the prior written consent of Nintendo. 12 13 $Revision: 22758 $ 14 *---------------------------------------------------------------------------*/ 15 16 #ifndef NW_FONT_RESFONT_H_ 17 #define NW_FONT_RESFONT_H_ 18 19 #include <nn/types.h> 20 #include <nw/font/font_ResFontBase.h> 21 22 namespace nw { 23 namespace font { 24 25 //--------------------------------------------------------------------------- 26 //! @brief フォントリソースに対する操作を実装するクラスです。 27 //--------------------------------------------------------------------------- 28 class ResFont : public ResFontBase 29 { 30 public: 31 /* ------------------------------------------------------------------------ 32 関数 33 ------------------------------------------------------------------------ */ 34 35 //! @name コンストラクタ / デストラクタ 36 //@{ 37 38 //! コンストラクタです。 39 ResFont(); 40 41 //! デストラクタです。 42 virtual ~ResFont(); 43 44 //@} 45 46 //! @name リソースの関連付け / 解除 47 //@{ 48 49 //! @brief フォントリソースを関連付けてフォントを使用可能にします。 50 //! 51 //! @param[in,out] bfnt ResFont に関連付ける bfnt へのポインタ。 52 //! 128byte アライメントされている必要があります。 53 //! 54 //! @return リソースの関連付けが成功したなら true を、 55 //! そうでなければ false を返します。@n 56 //! リソース bfnt が不正であると失敗します。 57 //! 58 bool SetResource(void* bfnt); 59 60 //! @brief フォントリソースの割り当てを解除します。 61 //! 62 //! @return リソースが関連付けされている場合は、関連付けされているリソースへの 63 //! ポインタを返します。 64 //! 関連付けされていない場合は NULL を返します。 65 //! 66 void* RemoveResource(); 67 68 using ResFontBase::IsManaging; 69 70 //! @brief 描画に必要なバッファのサイズを計算します。 71 //! 72 //! @param[in] bfnt フォントリソースの先頭部分へのポインタ。 73 //! 74 //! @return 描画に必要なバッファのサイズを返します。 75 //! 76 static u32 GetDrawBufferSize(const void* bfnt); 77 78 //! @brief 描画に必要なバッファへのポインタを取得します。 79 //! 80 //! @return 描画に必要なバッファへのポインタを返しします。 81 //! GetDrawBuffer()82 void* GetDrawBuffer() 83 { 84 return GetTextureObjectsBufferPtr(); 85 } 86 87 //! @brief 描画に必要なバッファをセットします。 88 //! セットするバッファのサイズは、GetDrawBufferSize()で取得します。 89 //! 90 //! NULLを指定すると、描画バッファを使用しない状態に戻ります。 91 //! 92 //! @param[in] buffer バッファへのポインタ。 93 //! 4byte アライメントされている必要があります。 94 //! 95 //! @return 以前に設定されていた内容(初期値はNULL)を返します。 96 //! 97 void* SetDrawBuffer(void* buffer); 98 99 //@} 100 101 102 private: 103 /* ------------------------------------------------------------------------ 104 関数 105 ------------------------------------------------------------------------ */ 106 107 //! @brief メモリ上にロードされたbrfntファイルを再構築して 108 //! 使用できるようにします。 109 //! 110 //! @param[in,out] fileHeader メモリ上にロードしたbrfntファイルの 111 //! ファイルヘッダへのポインタ 112 //! 113 //! @return 再構築に成功した場合はFINFブロック本体へのポインタを返します。 114 //! 再構築に失敗した場合はNULLを返します。 115 //! 116 static FontInformation* Rebuild(ut::BinaryFileHeader* fileHeader); 117 }; 118 119 } // namespace font 120 } // namespace nw 121 122 #endif // NW_FONT_RESFONT_H_ 123