2014年4月13日日曜日

C++: PC向け(clang++-3.2)とブラウザー向け(em++-1.14)に対応したSDL-2/SDL-1.3混用のキーコード取得サンプル

Emscriptenは1.14.1現在、まだSDL-1.3に一部機能を除いてのしか対応していません。昨今ではSDLを使うとなればPCならSDL-2を選択したくなります。そこで、とりあえずの両対応のキーボードテストサンプルを書いてみました。

code:

build:

  • for PC ( with SDL2 )
    • clang++ -std=c++11 -lSDL2 -o em_sdl_key_sample em_sdl_key_sample.cxx
  • for browser ( em++-1.14 )
    • em++ em_sdl_key_sample.cxx -std=c++11 -o em_sdl_key_sample.html

このエグザンプルはPCとブラウザーのそれぞれで、エラー出力(ブラウザーではconsole.log)にそのループステップごとに押されていたキーのスキャンコードをスペース区切りで1行に表示します。

書いてみたら少々事故にあったので、コードのコメントの部分があり、

  • https://github.com/kripken/emscripten/issues/2283
EmscriptenのIssuesに問いかけてみました。PCではUSB HID usageを正しく扱えているので問題無いのですが、em++-1.14では得られるスキャンコードとSDL/scancode.hの定義が異なってしまう状況なので、SDLの定義であるSDL_SCANCODE_Aなど使うと事故ります。ご注意下さい(╹◡╹)


0 件のコメント:

コメントを投稿