roast_ex > directx

Roast Ex/directx

Roast Ex/directxは、Microsoft DirectXを薄くラッピングしたライブラリです。

フレームワークほど手間が減る訳ではありませんが、DirectX APIを直で叩くよりは大幅に手間が削減出来ることでしょう。 またroast系列として、変数名関数名は全小文字(定数除く)の単語毎にアンダーバーとなっているため、コードの統一感が保たれるのも特徴です。

ソースコード: http://git.sourceforge.jp/view?p=roast/roast_ex_windows.git

特徴

何か異常があった際の通知は基本的に例外の送出(throw)により行われます。 インスタンスの生成はクラスを宣言すれば良いだけです。生DirectXのようにインターフェースではないため、開放(Release)を忘れないよう気を配る必要もなくなります。

余り使われない引数は省略出来るようにしてあります。DirectXの各バージョン間の差異も、なるべく吸収出来るものは吸収しています。

これらは一見些細なことに思えるかも知れませんが、実際に使ってみると、多大の効果があるものです。

参考

例えば「とりあえず真っ黒い画面を出してみる」だけなら、以下のコードで済みます。

  1. #include "roast/graphics/directx/dx9.hpp"
  2. #include <stdio.h>
  3. void main( void )
  4. {
  5. try
  6. {
  7. using namespace ::roast::directx::dx9;
  8. using namespace ::roast::windows;
  9. graphics::first f;
  10. window w("roast_ex_directx_sample_WindowClass");
  11. w.start("Sample Window");
  12. graphics::device d(f);
  13. d.start(w, false);
  14. d.begin_scene();
  15. d.clear();
  16. d.end_scene();
  17. d.present();
  18. Sleep(1000);
  19. }
  20. catch( ::std::string &s )
  21. {
  22. printf("%s\n", s.c_str() );
  23. }
  24. }

たったそれだけのこと。されどこれだけのコード量の削減です。(実際生APIで書いて行こうとすると、ウインドウ生成も合わせれば軽く200~300行近くは行きます)

リファレンス