WebAssembly環境におけるSDLは、単なる移植用ライブラリではなく、ブラウザを一つの実行プラットフォームとして扱うための抽象化装置である。SDLはWindow、Renderer、Event、AudioといったC APIを通じて、画面・音・入力という外界をアプリケーションに提示する。一方、Emscriptenのhtml5.hは、Canvas、KeyboardEvent、MouseEvent、requestAnimationFrameなどのHTML5機能をC/C++から扱うための低レベル接続面である。Emscripten版SDLは、このhtml5.hおよび生成JavaScript glue codeの上に構築され、SDL_CreateWindowをHTMLCanvasElementへ、SDL_PollEventをブラウザイベント由来のSDL_Eventへ、SDL_RenderPresentをCanvas/WebGL描画へ写像する。本稿は、SDLを上位の安定した抽象インタフェース、html5.hを下位のブラウザ接続口として読み、その間にあるEmscripten backendとJS glueの役割を検討する。そこに見えるのは、WebAssemblyが計算だけを運び、画面・音・入力は翻訳層によって初めてブラウザに接続されるという、移植技術の制度的構造である。
キーワード:WebAssembly、SDL、Emscripten、html5.h、JavaScript glue code、Canvas、WebGL、KeyboardEvent、SDL_Event、SDL_Renderer、HTMLCanvasElement、Browser API、移植層、低レベルバインディング
0 件のコメント:
コメントを投稿