ゆきみアーキテクチャ仕様書


ゆきみライブラリまとめエントリ

http://d.hatena.ne.jp/graighle/20080707/1215450425


ゆきみアーキテクチャ仕様書

プログラムの構成


サブシステム一覧

サブシステム 役割 機能
ウィンドウ 1つのウィンドウ 作成,解放,変更,更新などの操作
スクリーン ウィンドウの表示エリアの一部分 描画の開始,終了,更新など
DirectX管理 DirectXの管理|初期化,解放,設定など
リソース管理 リソースの管理 ロード,解放,描画再生,ページングなど
文字列描画 テクスチャ文字列の描画 テクスチャ文字の作成,解放,範囲内での描画など
情報出力 ログの出力 ログファイルの管理,出力の整形,書込み,操作


サブシステムの主要クラスとやり取りの関係


ウィンドウ


主要クラス

  • ウィンドウ


やり取りの関係

元->先 ウィンドウ スクリーン DirectX管理 リソース管理 文字列描画 情報出力
ウィンドウ 禁止 禁止 禁止 包括


スクリーン


主要クラス

  • スクリーン


やり取りの関係

元->先 ウィンドウ スクリーン DirectX管理 リソース管理 文字列描画 情報出力
スクリーン 直接 Observer 禁止 禁止 禁止 包括


DirectX管理


主要クラス


やり取りの関係

元->先 ウィンドウ スクリーン DirectX管理 リソース管理 文字列描画 情報出力
1) 禁止 間接的影響 1)包括 禁止 禁止 包括
2) 禁止 禁止 禁止 禁止 包括


リソース管理


主要クラス

  • 1)リソース自体の管理
  • 2)ページング管理
  • 3)共有とアクセサ
  • 4)複数の「リソース自体の管理」の管理


やり取りの関係

元->先 ウィンドウ スクリーン DirectX管理 リソース管理 文字列描画 情報出力
1) 禁止 禁止 禁止 2)Observer 禁止 包括
2) 禁止 禁止 禁止 1)Observer,4)Observer 禁止 包括
3) 禁止 禁止 禁止 1)包括 禁止 禁止
4) 禁止 禁止 禁止 1)包括,2)Observer,3)包括 禁止 包括


文字列描画


主要クラス

  • 1)文字列描画
  • 2)1の共有


やり取りの関係

元->先 ウィンドウ スクリーン DirectX管理 リソース管理 文字列描画 情報出力
1) 禁止 禁止 禁止 1)包括 包括
2) 禁止 禁止 禁止 禁止 1)包括 禁止


情報出力


主要クラス

  • 1)ログファイル管理
元->先 ウィンドウ スクリーン DirectX管理 リソース管理 文字列描画 情報出力
1) 禁止 禁止 禁止 禁止 禁止

(以前使われたいた)棄却された設計

ウィンドウがDirectX管理も担当する
ADTに反する->分割


国際化と地域化


文字型はtemplateによりchar,wchar_tの両方に対応させる.


エラーメッセージの文字列データは1つのモジュールに分離する.



エラー処理


用語

  • 初期化エラー:ウィンドウやDirectXの初期化及及びリソースのロード時に発生したエラー


エラー処理の方法


エラー検出は受動的に行う.


初期化エラーは次の通り.

  1. ログにエラー内容を書き出す.
  2. ロールバック(初期化済みリソースの解放など)
  3. メッセージ付き例外の送出(ルーチンの終了)


その他エラーは以下の通り.

  1. 必要ならログにエラー内容を書き出す.
  2. 適切な値を用いて処理を続行する(ただし続行できない場合はルーチンを終了する).


エラーの伝搬方法

初期化エラーは,例外によりクライアントコードへと伝搬する.

それ以外の部分ではマクロにより例外か戻り値かを変更できるようにする.


例外クラス


例外クラスはエラーの種類により複数使用する.

ただし,すべての例外クラスは次の1つのクラスから派生する.

class yukimi_exception;

このクラスはstd::exception及びその派生クラスから派生しない.

それは標準の例外はwchar_t型に対応していないからである.



1.0.1.0 20080711 国際化と地域化に追加.
1.0.0.0 20080710