思ったようにできんw

ぁーAFClibってのは自分が作ってる(つもりの)ライブラリのことです.

大層な?名前がついてますが,まだ何もできてません.


templateを使って設計してるんだけど,どうすれば上手くいくのか悩んでて実際のコーディングに移れないw

まだ慣れないからなぁ.


#include <afclib/gui/gui.hpp>

// #include <afclib/gui/env_traits.hpp>
// env_traits

struct env_traits {

#ifdef WINDOWS
  typedef afclib::gui::windows::window window_impl;
#elif UNIX
  typedef afclib::gui::unix::window window_impl;
#endif

#ifdef DIRECTX
  typedef afclib::gui::directx::initialize guilib_init;
  typedef afclib::gui::directx::screen guilib_screen;
  typedef afclib::gui::directx::resource::manager guilib_manager;
  typedef afclib::gui::directx::resource::texture guilib_texture;
  // ...
#elif OPENGL
  // ...
#endif

// ...

};



int main(){

  afclib::gui::window<
    char,
    afclib::gui::env_traits::window_impl,
    afclib::gui::env_traits::guilib_init
  > wnd;

  wnd.create();

  afclib::gui::screen<
    afclib::gui::env_traits::guilib_screen
  > scr;

  wnd.assign(scr); // scrを関連付け有効にする

// ...

}


こんな感じ?


で,問題はwindowsunixdirectxopengl(glut)が扱いが違いすぎるというか.

ウィンドウのハンドルにしても型が違うし.

これポリシーに向いていない気がする.


ぁーそれは

typedef window_impl::window_handle_type window_handle_type;

みたいにすればいいのか.


正直unix環境でのGUI開発をよく理解してないからなぁ.

まだいいか.