jubeon::input::Event - PastFantasy1640/jubeon GitHub Wiki
sfmlのイベントクラス
コールバック関数の形式
void function(sf::Event e)
メンバ関数
Event(graphics::LayerManager * layermanager);
どのウィンドウに対するイベントを取得するかを設定し、Eventインスタンスを生成。インスタンスはEvent側では保持しない。
~Event()
デストラクタ
void setCallback(Callback function);
イベントが発生したときに非同期で呼ばれるかもしれない関数。run関数が走っているスレッドでの実行になる。この関数内ではスレッドセーフな処理をすること。引数にはvoid(sf::Event)な関数をしようし、クラスのメンバなどを指定するときはstd::bind(std::mem_fn(&Foo::Do), &foo)
として引数に代入してやるとよい。
void run();
イベントのメイン処理。スレッドは起動させない。ので、もし別スレッドを希望であれば別途記述する必要がある。 Alt + F4で抜けるようにできている。はず。仕様上だとそう。
static bool getInstance(const graphics::LayerManager * layermanager, Event * dst);
インスタンスが保持されていることを前提に、特定のLayerManagerに対応したイベントインスタンスを取得する。留意したいのは、nullptrが帰ってくる場合があるということ。関数の戻り値でも、dstの中身でも判別できる。(戻り値がfalse、dstがnullptr)また、取得するのはポインタなので、インスタンスが削除されれば無効になる。ここでgetした値を保持しても意味はないし、保持してはいけない(戒め)。