html5.h

html5.h のC++ APIは、ネイティブコードからHTML5イベントと対話するためのEmscripten低レベルグルーバインディングを定義しています。

ヒント

C++ APIは、同等のHTML5 JavaScript API と密接にマッピングされています。以下にリストされているHTML5仕様は、このドキュメントで提供されている情報に加えて、詳細な参照情報を提供しています。

さらに、テスト/サンプルコード を確認して、コードの使用方法を確認できます。

html5.h によってマッピングされるAPIのHTML5仕様には、次のものが含まれます。

このAPIの使用方法

これらのAPIのほとんどはイベントベースのアーキテクチャを使用しています。機能は、イベントが発生したときに呼び出されるコールバック関数を登録することでアクセスされます。

注記

ゲームパッドAPIは現在例外であり、ポーリングAPIのみが利用可能です。一部のAPIでは、イベントベースとポーリングベースの両方のモデルが公開されています。

登録関数

登録関数の一般的な形式は次のとおりです(一部のメソッドでは、さまざまなパラメータが省略される場合があります)。

EMSCRIPTEN_RESULT emscripten_set_some_callback(
  const char *target,   // ID of the target HTML element.
  void *userData,   // User-defined data to be passed to the callback.
  bool useCapture,   // Whether or not to use capture.
  em_someevent_callback_func callback   // Callback function.
);

targetパラメータは、コールバック登録を適用するHTML要素のIDです。このフィールドには、次の特別な意味があります。

  • EMSCRIPTEN_EVENT_TARGET_WINDOW:イベントリスナはJavaScriptのwindowオブジェクトに適用されます。

  • EMSCRIPTEN_EVENT_TARGET_DOCUMENT:イベントリスナはJavaScriptのdocumentオブジェクトに適用されます。

  • EMSCRIPTEN_EVENT_TARGET_SCREEN:イベントリスナはJavaScriptのwindow.screenオブジェクトに適用されます。

  • 0またはNULL:オプション-sDISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR(デフォルト)でビルドする場合、NULLは無効な要素を示します。レガシーオプション-sDISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=0(推奨されません)でビルドする場合、イベントタイプに基づいてデフォルトの要素が自動的に選択されます。

  • #canvas:レガシーオプション-sDISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=0(推奨されません)でビルドする場合、イベントリスナはEmscriptenのデフォルトのWebGLキャンバス要素に適用されます。オプション-sDISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR(デフォルト)でビルドする場合、#canvasはCSSクエリセレクタとして解釈されます。「CSS ID 'canvas'を持つ最初の要素」。

  • その他の文字列:渡された文字列を使用してDOMに対するCSSセレクタの検索が行われ、イベントリスナはクエリに一致する最初の要素に適用されます。

上記のものが不十分な場合は、次のようなJavaScriptを使用してカスタムマッピングを追加できます。

specialHTMLTargets["!canvas"] = Module.canvas;

これにより、!canvasがModule.canvasに保持されているキャンバスにマッピングされます。(そのJavaScriptは、登録関数を呼び出す前に発生するEM_JSまたはEM_ASMブロックに記述できます)。

userDataパラメータは、登録されたイベントコールバックに(変更せずに)渡されるユーザー定義の値です。これは、たとえば、C++クラスへのポインタを渡したり、C APIをクリーンなオブジェクト指向の方法でカプセル化するために使用できます。

useCaptureパラメータは、EventTarget.addEventListeneruseCaptureにマッピングされます。これは、キャプチャを開始するかどうかを示します。trueの場合、コールバックはDOMキャプチャフェーズとターゲットフェーズでのみ呼び出されます。falseの場合、コールバックはターゲットフェーズとバブリングフェーズでトリガーされます。DOMレベル3イベントで、より詳細な説明を参照してください。

ほとんどの関数は、EMSCRIPTEN_RESULT型を使用して結果を返します。0と正の値は成功を示します。負の値は失敗を示します。どの関数も、JavaScriptまたはC++例外をスローすることによって失敗または中断することはありません。特定のブラウザが指定された機能をサポートしていない場合、コールバックが登録された時点でEMSCRIPTEN_RESULT_NOT_SUPPORTED値が返されます。

コールバック関数

イベントが発生すると、コールバックは関連するイベント「タイプ」(例:EMSCRIPTEN_EVENT_CLICK)、発生したイベントの詳細を含むstruct、および登録関数に最初に渡されたuserDataを使用して呼び出されます。コールバック関数の一般的な形式は次のとおりです。

typedef bool (*em_someevent_callback_func) // Callback function. Return true if event is "consumed".
  (
  int eventType, // The type of event.
  const EmscriptenSomeEvent *someEvent, // Information about the event.
  void *userData // User data passed from the registration function.
  );

boolを返すコールバックハンドラは、ハンドラがイベントを消費したことを示すためにtrueを指定できます(これにより、.preventDefault();メンバーを呼び出すことで、そのイベントのデフォルトのアクションが抑制されます)。falseを返すことは、イベントが消費されなかったことを示します—デフォルトのブラウザイベントアクションが実行され、イベントは通常どおり通過/バブリングアップが許可されます。

コールバックにnullポインタを使用して登録関数を呼び出すと、指定されたtarget要素からそのコールバックの登録解除が行われます。すべてのイベントハンドラは、atexitハンドラパス中にCのexit()関数が呼び出されたときにも自動的に登録解除されます。 emscripten_set_main_loop()関数を使用するか、Module.noExitRuntime = true;を設定して、main()を離れることがすぐにexit()を引き起こし、イベントハンドラをクリーンアップしないようにしてください。

Webセキュリティの影響を受ける関数

いくつかの関数、例えば emscripten_request_pointerlock()emscripten_request_fullscreen() は、Webセキュリティの影響を受けます。

これらの関数はどこからでも呼び出すことができますが、実際の「リクエスト」は、ユーザーが生成したイベント(例えば、キー、マウス、またはタッチの押下/解放)のハンドラ内でのみ発生させることができます。

コードを移植する際に、これらの関数が適切なイベントハンドラ内で呼び出されていることを確実にするのは難しい場合があります(これにより、リクエストが即座に発生します)。便宜上、開発者はdeferUntilInEventHandler=trueを設定して、ユーザーが次にキーボードまたはマウスボタンを押すまで、安全でないリクエストを自動的に遅らせることができます。これにより移植は簡素化されますが、多くの場合、ユーザーエクスペリエンスが悪化します。例えば、ポインタを隠したり、フルスクリーンに切り替えたりするには、キャンバスを一度クリックする必要があります。

可能な限り、これらの関数は適切なイベントハンドラ内でのみ呼び出す必要があります。deferUntilInEventHandler=falseを設定すると、セキュリティ上の制限によりリクエストが拒否された場合、関数はエラーで中断されます。これは、ユーザーが生成したイベントのハンドラ以外で関数が呼び出されているインスタンスを発見するための有用なメカニズムです。

テスト/サンプルコード

HTML5テストコードは、このAPIの使用方法を示しています。

一般的な型

EM_UTF8

これは、UTF8文字列のエンスクリプテン型です(charにマップされます)。これは、ノード名、要素IDなどに使われます。

関数結果値

このAPIのほとんどの関数は、EMSCRIPTEN_RESULT型の結果を返します。どの関数も、JavaScriptまたはC++例外をスローすることによって失敗または中断することはありません。特定のブラウザが指定された機能をサポートしていない場合、コールバックが登録された時点でEMSCRIPTEN_RESULT_NOT_SUPPORTEDが返されます。

EMSCRIPTEN_RESULT

この型は、このAPIのほとんどの関数の結果を返すために使用されます。0および正の値は成功を示し、負の値は失敗を示します。可能な値を以下に示します。

EMSCRIPTEN_RESULT_SUCCESS

操作が成功しました。

EMSCRIPTEN_RESULT_DEFERRED

リクエストされた操作は、Webセキュリティ上の理由から現在完了できません。次のイベントハンドラで完了するために延期されました。

EMSCRIPTEN_RESULT_NOT_SUPPORTED

指定された操作は、このブラウザまたはターゲット要素ではサポートされていません。操作がサポートされていない場合、コールバックが登録された時点でこの値が返されます。

EMSCRIPTEN_RESULT_FAILED_NOT_DEFERRED

リクエストされた操作は、Webセキュリティ上の理由から現在完了できませんでした。ユーザーが操作の延期を要求しなかったため失敗しました。

EMSCRIPTEN_RESULT_INVALID_TARGET

指定されたターゲット要素が無効であるため、操作は失敗しました。

EMSCRIPTEN_RESULT_UNKNOWN_TARGET

指定されたターゲット要素が見つからなかったため、操作は失敗しました。

EMSCRIPTEN_RESULT_INVALID_PARAM

関数が無効なパラメータを渡されたため、操作は失敗しました。

EMSCRIPTEN_RESULT_FAILED

一般的な失敗結果メッセージ。特定の結果が利用できない場合に返されます。

EMSCRIPTEN_RESULT_NO_DATA

現在データが利用できないため、操作は失敗しました。

キー

定義

EMSCRIPTEN_EVENT_KEYPRESS
EMSCRIPTEN_EVENT_KEYDOWN
EMSCRIPTEN_EVENT_KEYUP

エンスクリプテンキーイベント。

DOM_KEY_LOCATION

キーボード上のキーの位置。以下のいずれかの値。

DOM_KEY_LOCATION_STANDARD
DOM_KEY_LOCATION_LEFT
DOM_KEY_LOCATION_RIGHT
DOM_KEY_LOCATION_NUMPAD

キーボード上のキーの位置。

構造体

EmscriptenKeyboardEvent

キーボードイベント (keypresskeydownkeyup)で渡されるイベント構造体。

執筆時点(2014年3月)ではDOMレベル3イベント仕様が非常に新しいので、仕様内のさまざまなフィールドに対する均一なサポートはまだ変動しています。複数のブラウザで結果を確認してください。マージされていないプルリクエスト#2222で、従来のキーイベントの解釈方法の例を参照してください。

double timestamp

データが記録された絶対的なウォールクロック時間(ミリ秒)。

EM_UTF8 key

押されたキーの印刷された表現。

最大サイズ32 char(つまり、EM_UTF8 key[32])。

EM_UTF8 code

押されている物理キーを識別する文字列。この値は現在のキーボードレイアウトまたは修飾子の状態の影響を受けません。そのため、特定のキーは常に同じ値を返します。

最大サイズ32 char(つまり、EM_UTF8 code[32])。

unsigned long location

キーボード上のキーの位置を示します。DOM_KEY_LOCATION値のいずれか。

bool ctrlKey
bool shiftKey
bool altKey
bool metaKey

キーイベント中にアクティブだった修飾子を指定します。

bool repeat

このキーボードイベントが繰り返し押下を表すかどうかを指定します。

EM_UTF8 locale

構成されたキーボードロケールを示すロケール文字列。ブラウザまたはデバイスがキーボードのロケールを認識しない場合、これは空文字列になる可能性があります。

最大サイズ32 char(つまり、EM_UTF8 locale[32])。

EM_UTF8 charValue

以下のフィールドは、DOMキーイベント仕様の以前のバージョンからの値です。キーの文字表現を参照してください。これはドキュメントのcharフィールドですが、C言語の予約語と重複を避けるためcharValueに名前変更されました。

最大サイズ32 char(つまり、EM_UTF8 charValue[32])。

警告

この属性は、DOM Level 3 イベントから削除されました。

unsigned long charCode

キーのUnicode参照番号。この属性は、keypressイベントでのみ使用されます。char属性に複数の文字が含まれるキーの場合、これはその属性の最初の文字のUnicode値です。

警告

この属性は非推奨です。可能であれば、代わりにkeyフィールドを使用してください。

unsigned long keyCode

押されたキーの変更されていない値を識別する、システムと実装に依存する数値コード。

警告

この属性は非推奨です。可能であれば、代わりにkeyフィールドを使用してください。

unsigned long which

押されたキーの変更されていない値を識別する、システムと実装に依存する数値コード。通常はkeyCodeと同じです。

警告

この属性は非推奨です。可能であれば、代わりにkeyフィールドを使用してください。ただし、このフィールドは非推奨である一方で、whichのクロスブラウザサポートは他のフィールドよりも優れている可能性があるため、実験をお勧めします。詳細については、https://github.com/emscripten-core/emscripten/issues/2817を参照してください。

コールバック関数

em_key_callback_func

keypress callback functions の関数ポインタ。以下のように定義されています。

typedef bool (*em_key_callback_func)(int eventType, const EmscriptenKeyboardEvent *keyEvent, void *userData);
パラメータ
  • eventType (int) – key event の種類。

  • keyEvent (const EmscriptenKeyboardEvent*) – 発生したキーイベントに関する情報。

  • userData (void*) – 登録関数に最初に渡されたuserData

戻り値

true(ゼロ以外)は、イベントがコールバックハンドラによって消費されたことを示します。

戻り値の型

bool

関数

EMSCRIPTEN_RESULT emscripten_set_keypress_callback(const char *target, void *userData, bool useCapture, em_key_callback_func callback)
EMSCRIPTEN_RESULT emscripten_set_keydown_callback(const char *target, void *userData, bool useCapture, em_key_callback_func callback)
EMSCRIPTEN_RESULT emscripten_set_keyup_callback(const char *target, void *userData, bool useCapture, em_key_callback_func callback)

ブラウザから生成されたキーボード入力イベントを受信するためのコールバック関数を登録します。

パラメータ
  • target (const char*) – ターゲットHTML要素ID

  • userData (void*) – コールバックに渡されるユーザー定義データ(APIに対して不透明)。

  • useCapture (bool) – キャプチャを使用するにはtrueを設定します。

  • callback (em_key_callback_func) – コールバック関数。この登録関数から渡されたイベントの種類、イベントに関する情報、ユーザーデータを使用して関数が呼び出されます。イベントが消費された場合は、コールバックはtrueを返す必要があります。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

関連項目

注記

イベントを受信するには、要素はフォーカス可能である必要があります。https://github.com/emscripten-core/emscripten/pull/7484#issuecomment-437887001を参照してください。

マウス

定義

EMSCRIPTEN_EVENT_CLICK
EMSCRIPTEN_EVENT_MOUSEDOWN
EMSCRIPTEN_EVENT_MOUSEUP
EMSCRIPTEN_EVENT_DBLCLICK
EMSCRIPTEN_EVENT_MOUSEMOVE
EMSCRIPTEN_EVENT_MOUSEENTER
EMSCRIPTEN_EVENT_MOUSELEAVE

Emscriptenマウスイベント。

構造体

EmscriptenMouseEvent

マウスイベントで渡されるイベント構造体:clickmousedownmouseupdblclickmousemovemouseentermouseleave

double timestamp

データが記録された絶対的なウォールクロック時間(ミリ秒)。

long screenX
long screenY

ブラウザのスクリーン座標系に対する相対座標。

long clientX
long clientY

イベントに関連付けられたビューポートに対する相対座標。

bool ctrlKey
bool shiftKey
bool altKey
bool metaKey

マウスイベント中にアクティブだった修飾子がどの修飾子であったかを指定します。

unsigned short button

状態が変化したポインタデバイスボタンを識別します(MouseEvent.buttonを参照)。

  • 0:左ボタン

  • 1:中央ボタン(存在する場合)

  • 2:右ボタン

unsigned short buttons

イベント発生時に押されていたマウスボタンの組み合わせを示すビットマスク。

long movementX
long movementY;

ポインタロックがアクティブな場合、これらの2つの追加フィールドは、最後のイベント以降の相対的なマウスの移動量を示します。

long targetX
long targetY

これらのフィールドは、入力イベントを受信するターゲットDOM要素の座標空間にマッピングされたマウス座標を示します(Emscripten固有の拡張機能。座標は最も近い整数に切り捨てられます)。

long canvasX
long canvasY

これらのフィールドは、Emscriptenキャンバスクライアント領域にマッピングされたマウス座標を示します(Emscripten固有の拡張機能。座標は最も近い整数に切り捨てられます)。

long padding

内部用で、無視できます。

注記

実装者のみ:WheelEventが8バイトに確実にアラインメントされるように、この構造体を8バイトの倍数にパディングします。

コールバック関数

em_mouse_callback_func

mouse event callback functions の関数ポインタ。以下のように定義されています。

typedef bool (*em_mouse_callback_func)(int eventType, const EmscriptenMouseEvent *mouseEvent, void *userData);
パラメータ
  • eventType (int) – mouse event の種類。

  • mouseEvent (const EmscriptenMouseEvent*) – 発生したマウスイベントに関する情報。

  • userData (void*) – 登録関数に最初に渡されたuserData

戻り値

true(ゼロ以外)は、イベントがコールバックハンドラによって消費されたことを示します。

戻り値の型

bool

関数

EMSCRIPTEN_RESULT emscripten_set_click_callback(const char *target, void *userData, bool useCapture, em_mouse_callback_func callback)
EMSCRIPTEN_RESULT emscripten_set_mousedown_callback(const char *target, void *userData, bool useCapture, em_mouse_callback_func callback)
EMSCRIPTEN_RESULT emscripten_set_mouseup_callback(const char *target, void *userData, bool useCapture, em_mouse_callback_func callback)
EMSCRIPTEN_RESULT emscripten_set_dblclick_callback(const char *target, void *userData, bool useCapture, em_mouse_callback_func callback)
EMSCRIPTEN_RESULT emscripten_set_mousemove_callback(const char *target, void *userData, bool useCapture, em_mouse_callback_func callback)
EMSCRIPTEN_RESULT emscripten_set_mouseenter_callback(const char *target, void *userData, bool useCapture, em_mouse_callback_func callback)
EMSCRIPTEN_RESULT emscripten_set_mouseleave_callback(const char *target, void *userData, bool useCapture, em_mouse_callback_func callback)

ブラウザから生成されたマウス入力イベントを受け取るためのコールバック関数を登録します。マウス入力イベント

パラメータ
  • target (const char*) – ターゲットHTML要素ID

  • userData (void*) – コールバックに渡されるユーザー定義データ(APIに対して不透明)。

  • useCapture (bool) – キャプチャを使用するにはtrueを設定します。

  • callback (em_mouse_callback_func) – コールバック関数。この登録関数から渡されたイベントの種類、イベントに関する情報、ユーザーデータを使用して関数が呼び出されます。イベントが消費された場合は、コールバックはtrueを返す必要があります。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

EMSCRIPTEN_RESULT emscripten_get_mouse_status(EmscriptenMouseEvent *mouseState)

最後に受信したマウスイベントの状態を返します。

この関数呼び出しが成功するには、マウスイベントの種類の1つと0以外のコールバック関数ポインタを使用してemscripten_set_xxx_callbackを最初に呼び出して、マウス状態のキャプチャを有効にする必要があります。

パラメータ
  • mouseState (EmscriptenMouseEvent*) – 最後に受信したマウスイベントの状態。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

ホイール

定義

EMSCRIPTEN_EVENT_WHEEL

Emscriptenホイールイベント。

DOM_DELTA_PIXEL

デルタの測定単位はピクセルである必要があります(仕様から)。

DOM_DELTA_LINE

デルタの測定単位はテキストの個々の行である必要があります(仕様から)。

DOM_DELTA_PAGE

デルタの測定単位はページで、単一の画面として定義されるか、または区切られたページとして定義されます(仕様から)。

構造体

EmscriptenWheelEvent

マウスホイールイベントで渡されるイベント構造体。

EmscriptenMouseEvent mouse

このイベントに関連する一般的なマウス情報を指定します。

double deltaX
double deltaY
double deltaZ

各軸のホイールの動き。これらの値は小数になる場合があるため、単純に整数にキャストしないでください。スクロール値が0になる可能性があります。正のYスクロール方向は、ページを下方向にスクロールする場合(ページCSSピクセル+Y方向)です。これは、Windows、Linux、および「自然なスクロール」オプションが無効になっているmacOSで、マウスホイールを下方向(画面から離れる方向)にスクロールする場合に対応します。

unsigned long deltaMode

デルタ値の測定単位を示すDOM_DELTA_値の1つ。

コールバック関数

em_wheel_callback_func

ホイールイベントコールバック関数の関数ポインタは、次のように定義されます。

typedef bool (*em_wheel_callback_func)(int eventType, const EmscriptenWheelEvent *wheelEvent, void *userData);
パラメータ
  • eventType (int) – ホイールイベントの種類(EMSCRIPTEN_EVENT_WHEEL)。

  • wheelEvent (const EmscriptenWheelEvent*) – 発生したホイールイベントに関する情報。

  • userData (void*) – 登録関数に最初に渡されたuserData

戻り値

true(ゼロ以外)は、イベントがコールバックハンドラによって消費されたことを示します。

戻り値の型

bool

関数

EMSCRIPTEN_RESULT emscripten_set_wheel_callback(const char *target, void *userData, bool useCapture, em_wheel_callback_func callback)

ブラウザから生成されたマウスホイールイベントを受け取るためのコールバック関数を登録します。

パラメータ
  • target (const char*) – ターゲットHTML要素ID

  • userData (void*) – コールバックに渡されるユーザー定義データ(APIに対して不透明)。

  • useCapture (bool) – キャプチャを使用するにはtrueを設定します。

  • callback (em_wheel_callback_func) – コールバック関数。この登録関数から渡されたイベントの種類、イベントに関する情報、ユーザーデータを使用して関数が呼び出されます。イベントが消費された場合は、コールバックはtrueを返す必要があります。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

UI

定義

EMSCRIPTEN_EVENT_RESIZE
EMSCRIPTEN_EVENT_SCROLL

Emscripten UIイベント。

構造体

EmscriptenUiEvent

DOM要素UIEventイベント(resizescroll)で渡されるイベント構造体。

long detail

resizeイベントとscrollイベントでは、これは常にゼロです。

int documentBodyClientWidth
int documentBodyClientHeight

document.body要素のclientWidth/clientHeight。

int windowInnerWidth
int windowInnerHeight

ブラウザウィンドウのinnerWidth/innerHeight。

int windowOuterWidth
int windowOuterHeight;

ブラウザウィンドウのouterWidth/outerHeight。

int scrollTop
int scrollLeft

ページのスクロール位置(最も近いピクセルに切り捨て)。

コールバック関数

em_ui_callback_func

UIイベントコールバック関数の関数ポインタは、次のように定義されます。

typedef bool (*em_ui_callback_func)(int eventType, const EmscriptenUiEvent *uiEvent, void *userData);
パラメータ
  • eventType (int) – UIイベントの種類 (EMSCRIPTEN_EVENT_RESIZE)。

  • uiEvent (const EmscriptenUiEvent*) – 発生したUIイベントに関する情報。

  • userData (void*) – 登録関数に最初に渡されたuserData

戻り値

true(ゼロ以外)は、イベントがコールバックハンドラによって消費されたことを示します。

戻り値の型

bool

関数

EMSCRIPTEN_RESULT emscripten_set_resize_callback(const char *target, void *userData, bool useCapture, em_ui_callback_func callback)
EMSCRIPTEN_RESULT emscripten_set_scroll_callback(const char *target, void *userData, bool useCapture, em_ui_callback_func callback)

DOM要素のresizeおよびscrollイベントを受信するためのコールバック関数を登録します。

注記

  • resizeコールバックの場合、`target = EMSCRIPTEN_EVENT_TARGET_WINDOW` を渡すと、Windowオブジェクトからのresizeイベントを取得できます。

  • DOM3 Events仕様では、Windowオブジェクトがresizeイベントを送信することのみが要求されています。resizeコールバックを他のDOM要素に登録することも有効ですが、ブラウザはこれらの要素に対してresizeイベントを発生させる必要はありません。

パラメータ
  • target (const char*) – ターゲットHTML要素ID

  • userData (void*) – コールバックに渡されるユーザー定義データ(APIに対して不透明)。

  • useCapture (bool) – キャプチャを使用するにはtrueを設定します。

  • callback (em_ui_callback_func) – コールバック関数。この登録関数から渡されたイベントの種類、イベントに関する情報、およびユーザーデータを使用して関数が呼び出されます。イベントが消費された場合は、コールバックはtrueを返す必要があります。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

フォーカス

定義

EMSCRIPTEN_EVENT_BLUR
EMSCRIPTEN_EVENT_FOCUS
EMSCRIPTEN_EVENT_FOCUSIN
EMSCRIPTEN_EVENT_FOCUSOUT

Emscriptenフォーカスイベント。

構造体

EmscriptenFocusEvent

DOM要素のblurfocusfocusin、およびfocusoutイベントで渡されるイベント構造体。

EM_UTF8 nodeName

ターゲットHTML要素のnodeName

最大サイズ128 char(つまり、EM_UTF8 nodeName[128])。

EM_UTF8 id

ターゲット要素のID。

最大サイズ128 char(つまり、EM_UTF8 id[128])。

コールバック関数

em_focus_callback_func

focus event callback functions の関数ポインタ。以下のように定義されています。

typedef bool (*em_focus_callback_func)(int eventType, const EmscriptenFocusEvent *focusEvent, void *userData);
パラメータ
  • eventType (int) – フォーカスイベントの種類 (EMSCRIPTEN_EVENT_BLUR)。

  • focusEvent (const EmscriptenFocusEvent*) – 発生したフォーカスイベントに関する情報。

  • userData (void*) – 登録関数に最初に渡されたuserData

戻り値

true(ゼロ以外)は、イベントがコールバックハンドラによって消費されたことを示します。

戻り値の型

bool

関数

EMSCRIPTEN_RESULT emscripten_set_blur_callback(const char *target, void *userData, bool useCapture, em_focus_callback_func callback)
EMSCRIPTEN_RESULT emscripten_set_focus_callback(const char *target, void *userData, bool useCapture, em_focus_callback_func callback)
EMSCRIPTEN_RESULT emscripten_set_focusin_callback(const char *target, void *userData, bool useCapture, em_focus_callback_func callback)
EMSCRIPTEN_RESULT emscripten_set_focusout_callback(const char *target, void *userData, bool useCapture, em_focus_callback_func callback)

DOM要素のblurfocusfocusin、およびfocusoutイベントを受信するためのコールバック関数を登録します。

パラメータ
  • target (const char*) – ターゲットHTML要素ID

  • userData (void*) – コールバックに渡されるユーザー定義データ(APIに対して不透明)。

  • useCapture (bool) – キャプチャを使用するにはtrueを設定します。

  • callback (em_focus_callback_func) – コールバック関数。この登録関数から渡されたイベントの種類、イベントに関する情報、およびユーザーデータを使用して関数が呼び出されます。イベントが消費された場合は、コールバックはtrueを返す必要があります。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

デバイスの方向

定義

EMSCRIPTEN_EVENT_DEVICEORIENTATION

Emscripten deviceorientation イベント。

構造体

EmscriptenDeviceOrientationEvent

deviceorientationイベントで渡されるイベント構造体。

double alpha
double beta
double gamma

地球上に固定された座標系からデバイスに固定された座標系への変換という観点から見たデバイスの方向

以下の図(出典:dev.opera.com)と定義は、座標系を示しています。

  • alpha:Z軸周りのデバイスの回転。

  • beta:X軸周りのデバイスの回転。

  • gamma:Y軸周りのデバイスの回転。

Image of device showing X, Y, Z axes
bool absolute

falseの場合、方向は固定座標系ではなく、他の基準方向に対する相対的な方向のみを示します。

コールバック関数

em_deviceorientation_callback_func

orientation event callback functions の関数ポインタ。以下のように定義されています。

typedef bool (*em_deviceorientation_callback_func)(int eventType, const EmscriptenDeviceOrientationEvent *deviceOrientationEvent, void *userData);
パラメータ
  • eventType (int) – 方向イベントの種類 (EMSCRIPTEN_EVENT_DEVICEORIENTATION)。

  • deviceOrientationEvent (const EmscriptenDeviceOrientationEvent*) – 発生した方向イベントに関する情報。

  • userData (void*) – 登録関数に最初に渡されたuserData

戻り値

true(ゼロ以外)は、イベントがコールバックハンドラによって消費されたことを示します。

戻り値の型

bool

関数

EMSCRIPTEN_RESULT emscripten_set_deviceorientation_callback((void *userData, bool useCapture, em_deviceorientation_callback_func callback)

deviceorientation イベントを受信するためのコールバック関数を登録します。

パラメータ
  • userData (void*) – コールバックに渡されるユーザー定義データ(APIに対して不透明)。

  • useCapture (bool) – キャプチャを使用するにはtrueを設定します。

  • callback (em_deviceorientation_callback_func) – コールバック関数。イベントの種類、イベントに関する情報、この登録関数から渡されたユーザーデータと共に呼び出されます。イベントが消費された場合は、コールバックはtrueを返す必要があります。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

EMSCRIPTEN_RESULT emscripten_get_deviceorientation_status((EmscriptenDeviceOrientationEvent *orientationState)

最後に受信したdeviceorientationイベントの状態を返します。

この関数呼び出しが成功するには、emscripten_set_deviceorientation_callback()が、マウスイベントの種類のいずれかとゼロ以外のコールバック関数ポインタを使用して、deviceorientation状態のキャプチャを有効にするために最初に呼び出されている必要があります。

パラメータ
戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

デバイスモーション

定義

EMSCRIPTEN_EVENT_DEVICEMOTION

Emscripten devicemotion イベント。

構造体

EmscriptenDeviceMotionEvent

devicemotion イベントで渡されるイベント構造体。

double accelerationX
double accelerationY
double accelerationZ

重力を除くデバイスの加速度。

double accelerationIncludingGravityX
double accelerationIncludingGravityY
double accelerationIncludingGravityZ

重力を含むデバイスの加速度。

double rotationRateAlpha
double rotationRateBeta
double rotationRateGamma

デバイスの回転デルタ。

int supportedFields

この構造体のさまざまなフィールドを現在のブラウザがサポートしていることを指定する、EMSCRIPTEN_DEVICE_MOTION_EVENT_SUPPORTS_*フィールドの組み合わせであるビットフィールド。たとえば、EMSCRIPTEN_DEVICE_MOTION_EVENT_SUPPORTS_ACCELERATIONビットがこのフィールドに存在しない場合、この構造体のaccelerationX/Y/Zフィールドは無効であると見なす必要があります。

コールバック関数

em_devicemotion_callback_func

devicemotion event callback functions の関数ポインタで、次のように定義されています。

typedef bool (*em_devicemotion_callback_func)(int eventType, const EmscriptenDeviceMotionEvent *deviceMotionEvent, void *userData);
パラメータ
  • eventType (int) – devicemotionイベントの種類(EMSCRIPTEN_EVENT_DEVICEMOTION)。

  • deviceMotionEvent (const EmscriptenDeviceMotionEvent*) – 発生したdevicemotionイベントに関する情報。

  • userData (void*) – 登録関数に最初に渡されたuserData

戻り値

true(ゼロ以外)は、イベントがコールバックハンドラによって消費されたことを示します。

戻り値の型

bool

関数

EMSCRIPTEN_RESULT emscripten_set_devicemotion_callback((void *userData, bool useCapture, em_devicemotion_callback_func callback)

devicemotion イベントを受信するためのコールバック関数を登録します。

パラメータ
  • userData (void*) – コールバックに渡されるユーザー定義データ(APIに対して不透明)。

  • useCapture (bool) – キャプチャを使用するにはtrueを設定します。

  • callback (em_devicemotion_callback_func) – コールバック関数。イベントの種類、イベントに関する情報、この登録関数から渡されたユーザーデータと共に呼び出されます。イベントが消費された場合は、コールバックはtrueを返す必要があります。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

EMSCRIPTEN_RESULT emscripten_get_devicemotion_status((EmscriptenDeviceMotionEvent *motionState)

最後に受信したdevicemotionイベントの状態を返します。

この関数呼び出しが成功するには、emscripten_set_devicemotion_callback()が、マウスイベントの種類のいずれかとゼロ以外のコールバック関数ポインタを使用して、devicemotion状態のキャプチャを有効にするために最初に呼び出されている必要があります。

パラメータ
戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

向き

定義

EMSCRIPTEN_EVENT_ORIENTATIONCHANGE

Emscripten orientationchange イベント。

EMSCRIPTEN_ORIENTATION_UNKNOWN

向きAPIがサポートされていないか、向きタイプが不明です。

EMSCRIPTEN_ORIENTATION_PORTRAIT_PRIMARY

プライマリポートレートモードの向き。

EMSCRIPTEN_ORIENTATION_PORTRAIT_SECONDARY

セカンダリポートレートモードの向き。

EMSCRIPTEN_ORIENTATION_LANDSCAPE_PRIMARY

プライマリランドスケープモードの向き。

EMSCRIPTEN_ORIENTATION_LANDSCAPE_SECONDARY

セカンダリランドスケープモードの向き。

構造体

EmscriptenOrientationChangeEvent

orientationchange イベントで渡されるイベント構造体。

int orientationIndex

EM_ORIENTATION_PORTRAIT_xxx フィールドのいずれか、または不明な場合はEMSCRIPTEN_ORIENTATION_UNKNOWN

int orientationAngle

Emscripten固有の拡張機能:一部のブラウザはwindow.orientationを参照するため、それも報告します。

角度単位の向き。0:「デフォルトの向き」、つまりモバイルデバイスを保持するデフォルトの垂直向き。ランドスケープまたはポートレートのいずれかになります。

コールバック関数

em_orientationchange_callback_func

orientationchange event callback functions の関数ポインタで、次のように定義されています。

typedef bool (*em_orientationchange_callback_func)(int eventType, const EmscriptenOrientationChangeEvent *orientationChangeEvent, void *userData);
パラメータ
  • eventType (int) – orientationchangeイベントの種類(EMSCRIPTEN_EVENT_ORIENTATIONCHANGE)。

  • orientationChangeEvent (const EmscriptenOrientationChangeEvent*) – 発生したorientationchangeイベントに関する情報。

  • userData (void*) – 登録関数に最初に渡されたuserData

戻り値

true(ゼロ以外)は、イベントがコールバックハンドラによって消費されたことを示します。

戻り値の型

bool

関数

EMSCRIPTEN_RESULT emscripten_set_orientationchange_callback((void *userData, bool useCapture, em_orientationchange_callback_func callback)

orientationchange イベントを受信するためのコールバック関数を登録します。

パラメータ
  • userData (void*) – コールバックに渡されるユーザー定義データ(APIに対して不透明)。

  • useCapture (bool) – キャプチャを使用するにはtrueを設定します。

  • callback (em_orientationchange_callback_func) – コールバック関数。イベントの種類、イベントに関する情報、この登録関数から渡されたユーザーデータと共に呼び出されます。イベントが消費された場合は、コールバックはtrueを返す必要があります。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

EMSCRIPTEN_RESULT emscripten_get_orientation_status((EmscriptenOrientationChangeEvent *orientationStatus)

現在のデバイスの向き状態を返します。

パラメータ
戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

EMSCRIPTEN_RESULT emscripten_lock_orientation((int allowedOrientations)

指定されたallowed orientationsの集合に画面の向きをロックします。

パラメータ
戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

EMSCRIPTEN_RESULT emscripten_unlock_orientation(void)

画面が任意の向きに回転できるように、向きのロックを解除します。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

フルスクリーン

定義

EMSCRIPTEN_EVENT_FULLSCREENCHANGE

Emscripten fullscreenchange イベント。

EMSCRIPTEN_FULLSCREEN_SCALE

関数emscripten_request_fullscreen_strategy()emscripten_enter_soft_fullscreen()を介してフルスクリーンモードで表示する際に、Emscriptenランタイムがターゲット要素のCSSサイズをどのように扱うべきかを指定する列挙型のような型です。

EMSCRIPTEN_FULLSCREEN_SCALE_DEFAULT

フルスクリーンモードとウィンドウモード間の遷移時に、DOM要素がEmscriptenランタイムによってサイズ変更されないことを指定します。ブラウザがDOM要素をフルスクリーンサイズに拡大縮小する役割を担います。このモードでの適切なブラウザの動作は、アスペクト比を無視して画面全体に合うように要素をストレッチすることですが、執筆時点では、ブラウザによって異なる動作が実装されています。詳細については、https://github.com/emscripten-core/emscripten/issues/2556の議論を参照してください。

EMSCRIPTEN_FULLSCREEN_SCALE_STRETCH

フルスクリーンモードへの遷移時に、Emscriptenランタイムがターゲット要素のCSSサイズを明示的にストレッチして画面全体を覆うようにすることを指定します。これにより、表示されるコンテンツのアスペクト比が変わります。

EMSCRIPTEN_FULLSCREEN_SCALE_ASPECT

Emscriptenランタイムがターゲット要素のCSSサイズを明示的に拡大縮小して画面全体を覆うようにしつつ、コンテンツのアスペクト比を維持するために垂直または水平方向にレターボックスパディングを追加することを指定します。ここで使用されるアスペクト比は、キャンバス要素のレンダリングターゲットサイズです。目的のアスペクト比を変更するには、フルスクリーンモードに入る前にemscripten_set_canvas_element_size()を呼び出します。

EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE

関数emscripten_request_fullscreen_strategy()emscripten_enter_soft_fullscreen()を介してフルスクリーンモードで表示する際に、Emscriptenランタイムがターゲットキャンバス要素のピクセルサイズ(レンダリングターゲット解像度)をどのように扱うべきかを指定する列挙型のような型です。キャンバス要素のCSSサイズとキャンバス要素のレンダリングターゲットサイズの違いをよりよく理解するには、https://www.khronos.org/webgl/wiki/HandlingHighDPIを参照してください。

EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_NONE

フルスクリーンモードで表示されるターゲットキャンバス要素のレンダリングターゲット解像度に対して、Emscriptenランタイムが変更を行わないことを指定します。アプリケーションが、いかなる条件下でも変更できない単一の固定解像度にレンダリングするように設定されている場合に、このモードを使用します。

EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_STDDEF

フルスクリーンモードでは、キャンバス要素のレンダリングターゲットを要素のCSSサイズと1:1で一致するようにサイズ変更することを指定します。高DPIディスプレイ(window.devicePixelRatio > 1)では、CSSサイズはデバイスの物理的な画面解像度とは異なります。emscripten_get_device_pixel_ratio()を呼び出して、CSSピクセルと画面の実際のデバイスピクセル間のピクセル比を取得します。DPIに依存しないピクセル解像度にレンダリングする場合に、このモードを使用します。

EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_HIDEF

デバイスの物理的な画面解像度と1:1で一致するようにキャンバスレンダリングターゲットサイズをサイズ変更することを指定します。これは、Retina iOSやその他の高DPIのモバイルおよびデスクトップデバイスの高解像度ディスプレイに対応します。ネイティブのディスプレイ解像度と一致してレンダリングする場合に、このモードを使用します。

EMSCRIPTEN_FULLSCREEN_FILTERING

フルスクリーンモードで要素が表示されるときに適用する画像フィルタリングアルゴリズムの種類を指定する列挙型のような型です。

EMSCRIPTEN_FULLSCREEN_FILTERING_DEFAULT

CSSスタイルの既存の設定から画像フィルタリングモードを変更しないことを指定します。

EMSCRIPTEN_FULLSCREEN_FILTERING_NEAREST

フルスクリーンモードで、最近傍の画像フィルタリングアルゴリズムを使用してコンテンツを表示する要素にCSSスタイルを適用します。

EMSCRIPTEN_FULLSCREEN_FILTERING_BILINEAR

フルスクリーンモードで、バイリニア画像フィルタリングアルゴリズムを使用してコンテンツを表示する要素にCSSスタイルを適用します。これはブラウザのデフォルトの動作です。

構造体

EmscriptenFullscreenChangeEvent

fullscreenchangeイベントで渡されるイベント構造体です。

bool isFullscreen

ブラウザページ上の要素が現在フルスクリーンになっているかどうかを指定します。

bool fullscreenEnabled

現在のページに要素をフルスクリーンで表示する機能があるかどうかを指定します。

EM_UTF8 nodeName

フルスクリーンモードになっているターゲットHTML要素のnodeNameです。

最大サイズ128 char(つまり、EM_UTF8 nodeName[128])。

isFullscreenfalseの場合、nodeNameidelementWidthelementHeightは、フルスクリーンモードを終了したばかりの要素に関する情報を指定します。

EM_UTF8 id

フルスクリーンモードになっているターゲットHTML要素のIDです。

最大サイズ128 char(つまり、EM_UTF8 id[128])。

int elementWidth
int elementHeight

フルスクリーンの状態が変更された要素の新しいピクセルサイズです。

int screenWidth
int screenHeight

画面全体のサイズ(ピクセル単位)。

EmscriptenFullscreenStrategy

関数emscripten_request_fullscreen_strategy()emscripten_enter_soft_fullscreen()に渡されるオプション構造体で、ターゲット要素をフルスクリーンモードでどのように表示するかを構成します。

EMSCRIPTEN_FULLSCREEN_SCALE scaleMode

フルスクリーンモードで表示される際に、ターゲット要素のCSSサイズ(表示サイズ)がどのようにサイズ変更されるかを指定するルールです。

EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE canvasResolutionScaleMode

フルスクリーンモードで表示される際に、ターゲット要素のレンダリングターゲットサイズ(ピクセル解像度)がどのように調整されるかを指定します。

EMSCRIPTEN_FULLSCREEN_FILTERING filteringMode

フルスクリーンモードで要素に適用する画像フィルタリングアルゴリズムを指定します。

em_canvasresized_callback_func canvasResizedCallback

0以外の場合、CSSサイズまたはキャンバスレンダリングターゲットサイズが変更されるたびに呼び出される、ユーザーが提供したコールバック関数を指します。このコールバックを使用して、キャンバスのサイズ変更イベントに関する情報を確実に取得します。

void *canvasResizedCallbackUserData

ユーザーが提供したコールバック関数へのすべての呼び出しに渡されるカスタムデータフィールドを格納します。

コールバック関数

em_fullscreenchange_callback_func

以下で定義されている、fullscreen event callback functions のための関数ポインタ。

typedef bool (*em_fullscreenchange_callback_func)(int eventType, const EmscriptenFullscreenChangeEvent *fullscreenChangeEvent, void *userData);
パラメータ
  • eventType (int) – フルスクリーンイベントの種類 (EMSCRIPTEN_EVENT_FULLSCREENCHANGE).

  • fullscreenChangeEvent (const EmscriptenFullscreenChangeEvent*) – 発生したフルスクリーンイベントに関する情報。

  • userData (void*) – 登録関数に最初に渡されたuserData

戻り値

true(ゼロ以外)は、イベントがコールバックハンドラによって消費されたことを示します。

戻り値の型

bool

関数

EMSCRIPTEN_RESULT emscripten_set_fullscreenchange_callback(const char *target, void *userData, bool useCapture, em_fullscreenchange_callback_func callback)

fullscreenchange イベントを受信するためのコールバック関数を登録します。

パラメータ
  • target (const char*) – ターゲットHTML要素ID

  • userData (void*) – コールバックに渡されるユーザー定義データ(APIに対して不透明)。

  • useCapture (bool) – キャプチャを使用するにはtrueを設定します。

  • callback (em_fullscreenchange_callback_func) – コールバック関数。この登録関数から渡されたイベントの種類、イベントに関する情報、ユーザーデータを使用して関数が呼び出されます。コールバックは、イベントが消費された場合はtrueを返す必要があります。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

EMSCRIPTEN_RESULT emscripten_get_fullscreen_status(EmscriptenFullscreenChangeEvent *fullscreenStatus)

現在のページのフルスクリーン状態を返します。

パラメータ
戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

EMSCRIPTEN_RESULT emscripten_request_fullscreen(const char *target, bool deferUntilInEventHandler)

指定されたターゲット要素がフルスクリーンモードに遷移することを要求します。

注記

この関数はどこからでも呼び出すことができますが、Webセキュリティ上の理由から、関連する*要求*は、ユーザーが生成したイベント(例:キー、マウス、またはタッチの押下/解放)のイベントハンドラー内でのみ発生させることができます。これには、移植とdeferUntilInEventHandlerの値に影響があります。詳細はWebセキュリティの影響を受ける関数を参照してください。

注記

この関数は、フルスクリーンモードで表示されるDOM要素のパラメータを変更せずに、フルスクリーン要求のみを実行します。執筆時点では、ブラウザがフルスクリーンモードで要素を表示する方法に違いがあります。詳細は、https://github.com/emscripten-core/emscripten/issues/2556のディスカッションを参照してください。ブラウザ間で一貫性のある方法でフルスクリーンモードで要素を表示するには、代わりにemscripten_request_fullscreen_strategy()関数を呼び出すことをお勧めします。emscripten_request_fullscreen_strategy()で定義された事前設定されたプリセットが開発者のユースケースと何らかの形で競合する場合にのみ、この関数を呼び出すのが最適です。

パラメータ
  • target (const char*) – ターゲットHTML要素ID

  • deferUntilInEventHandler (bool) – trueの場合、ユーザー生成イベントハンドラーの外で行われた要求は、ユーザーが次にキーボードまたはマウスボタンを押すまで自動的に延期されます。falseの場合、ユーザー生成イベントハンドラーの外から呼び出された場合、要求は失敗します。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

EMSCRIPTEN_RESULT emscripten_request_fullscreen_strategy(const char *target, bool deferUntilInEventHandler, const EmscriptenFullscreenStrategy *fullscreenStrategy)

要素のカスタム表示モードを使用して、指定されたターゲット要素がフルスクリーンモードに遷移することを要求します。この関数は、emscripten_request_fullscreen()とほぼ同じですが、サイズ変更とアスペクト比の制御オプションを追加し、ブラウザ間で動作が確実に一貫するようにします。

注記

この関数は、ブラウザ間で一貫した表示を満たすためにDOMに変更を加えます。これらの変更は可能な限り干渉しないように設計されており、ウィンドウブラウジングが復元されると変更はクリアされます。これらの変更が競合する場合は、DOMへの変更なしに単純なフルスクリーン要求を実行するemscripten_request_fullscreen()関数を参照してください。

パラメータ
  • fullscreenStrategy (const EmscriptenFullscreenStrategy*) – [in] 呼び出し元によって埋められ、フルスクリーンモードの表示オプションを指定する構成構造体を指します。

EMSCRIPTEN_RESULT emscripten_exit_fullscreen(void)

適切なフルスクリーンモードからウィンドウブラウジングモードに戻ります。

ソフトフルスクリーンモードからウィンドウブラウジングモードに戻るために、この関数を呼び出さないでください。その逆も同様です。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

EMSCRIPTEN_RESULT emscripten_enter_soft_fullscreen(const char *target, const EmscriptenFullscreenStrategy *fullscreenStrategy)

指定されたターゲット要素がページ全体のクライアント領域に表示され、他のすべての要素が非表示になる「ソフト」フルスクリーンモードに入ります。ただし、ブラウザのフルスクリーンモードを実際に要求することはありません。この関数は、実際のフルスクリーンAPIが望ましくない場合や不要な場合(例:アプリケーションが本質的に既に画面全体をカバーしているFirefox OSのパッケージ化されたアプリ)に役立ちます。

Escキーを押しても、ソフトフルスクリーンモードは自動的に終了しません。ウィンドウ表示モードに戻るには、emscripten_exit_soft_fullscreen()関数を手動で呼び出してください。

EMSCRIPTEN_RESULT emscripten_exit_soft_fullscreen()

ソフトフルスクリーンモードからウィンドウブラウジングモードに戻ります。実際のフルスクリーンモードからウィンドウブラウジングモードに戻るために、この関数を呼び出さないでください。その逆も同様です。

ポインターロック

定義

EMSCRIPTEN_EVENT_POINTERLOCKCHANGE

Emscripten pointerlockchange イベント。

EMSCRIPTEN_EVENT_POINTERLOCKERROR

Emscripten pointerlockerror イベント。

構造体

EmscriptenPointerlockChangeEvent

pointerlockchange イベントで渡されるイベント構造体。

bool isActive

ブラウザページ上の要素で現在ポインターロックが有効になっているかどうかを指定します。

EM_UTF8 nodeName

ポインターロックがアクティブなターゲットHTML要素のnodeName

最大サイズ128 char(つまり、EM_UTF8 nodeName[128])。

EM_UTF8 id

ポインターロックがアクティブなターゲットHTML要素のID。

最大サイズ128 char(つまり、EM_UTF8 id[128])。

コールバック関数

em_pointerlockchange_callback_func

以下で定義されている、pointerlockchange event callback functions のための関数ポインタ。

typedef bool (*em_pointerlockchange_callback_func)(int eventType, const EmscriptenPointerlockChangeEvent *pointerlockChangeEvent, void *userData);
パラメータ
  • eventType (int) – pointerlockchange イベントの種類 (EMSCRIPTEN_EVENT_POINTERLOCKCHANGE).

  • pointerlockChangeEvent (const EmscriptenPointerlockChangeEvent*) – 発生したpointerlockchangeイベントに関する情報。

  • userData (void*) – 登録関数に最初に渡されたuserData

戻り値

true(ゼロ以外)は、イベントがコールバックハンドラによって消費されたことを示します。

戻り値の型

bool

em_pointerlockerror_callback_func

以下で定義されている、pointerlockerror event callback functions のための関数ポインタ。

typedef bool (*em_pointerlockerror_callback_func)(int eventType, const void *reserved, void *userData);
パラメータ
  • eventType (int) – pointerlockerror イベントの種類 (EMSCRIPTEN_EVENT_POINTERLOCKERROR).

  • void* reserved (const) – 今後の使用のために予約されています。0を渡してください。

  • userData (void*) – 登録関数に最初に渡されたuserData

戻り値

true(ゼロ以外)は、イベントがコールバックハンドラによって消費されたことを示します。

戻り値の型

bool

関数

EMSCRIPTEN_RESULT emscripten_set_pointerlockchange_callback(const char *target, void *userData, bool useCapture, em_pointerlockchange_callback_func callback)

`pointerlockchange` イベントを受信するためのコールバック関数を登録します。

ポインターロックはマウスカーソルを隠し、ターゲット要素に対して`mousemove` イベントを介して、相対的なマウス移動イベントを排他的に提供します。

パラメータ
戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

EMSCRIPTEN_RESULT emscripten_set_pointerlockerror_callback(const char *target, void *userData, bool useCapture, em_pointerlockerror_callback_func callback)

`pointerlockerror` イベントを受信するためのコールバック関数を登録します。

パラメータ
戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

EMSCRIPTEN_RESULT emscripten_get_pointerlock_status(EmscriptenPointerlockChangeEvent *pointerlockStatus)

現在のページのポインターロックの状態を返します。

パラメータ
戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

EMSCRIPTEN_RESULT emscripten_request_pointerlock(const char *target, bool deferUntilInEventHandler)

指定されたターゲット要素に対してポインターロックを取得するように要求します。

注記

この関数はどこからでも呼び出すことができますが、Webセキュリティ上の理由から、関連する*要求*は、ユーザーが生成したイベント(例:キー、マウス、またはタッチの押下/解放)のイベントハンドラー内でのみ発生させることができます。これには、移植とdeferUntilInEventHandlerの値に影響があります。詳細はWebセキュリティの影響を受ける関数を参照してください。

パラメータ
  • target (const char*) – ターゲットHTML要素ID

  • deferUntilInEventHandler (bool) – trueの場合、ユーザー生成イベントハンドラーの外で行われた要求は、ユーザーが次にキーボードまたはマウスボタンを押すまで自動的に延期されます。falseの場合、ユーザー生成イベントハンドラーの外から呼び出された場合、要求は失敗します。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

EMSCRIPTEN_RESULT emscripten_exit_pointerlock(void)

ポインターロック状態を終了し、マウスカーソルを再び表示状態に戻します。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

表示状態

定義

EMSCRIPTEN_EVENT_VISIBILITYCHANGE

Emscripten `visibilitychange` イベント。

EMSCRIPTEN_VISIBILITY_HIDDEN

ドキュメントが `非表示` です(表示されていません)。

EMSCRIPTEN_VISIBILITY_VISIBLE

ドキュメントは少なくとも部分的に `表示` されています。

EMSCRIPTEN_VISIBILITY_PRERENDER

ドキュメントは画面外にロードされており、表示されていません(`prerender`)。

EMSCRIPTEN_VISIBILITY_UNLOADED

ドキュメントは `アンロード` されようとしています。

構造体

EmscriptenVisibilityChangeEvent

`visibilitychange` イベントで渡されるイベント構造体。

bool hidden

true の場合、現在のブラウザページは非表示になっています。

int visibilityState

現在のページの表示状態のより詳細な状態を指定します。 EMSCRIPTEN_VISIBILITY_ 値のいずれか。

コールバック関数

em_visibilitychange_callback_func

visibilitychange event callback functions の関数ポインタで、次のように定義されます。

typedef bool (*em_visibilitychange_callback_func)(int eventType, const EmscriptenVisibilityChangeEvent *visibilityChangeEvent, void *userData);
パラメータ
  • eventType (int) – visibilitychange イベントの種類(EMSCRIPTEN_VISIBILITY_HIDDEN)。

  • visibilityChangeEvent (const EmscriptenVisibilityChangeEvent*) – 発生した visibilitychange イベントに関する情報。

  • userData (void*) – 登録関数に最初に渡されたuserData

戻り値

true(ゼロ以外)は、イベントがコールバックハンドラによって消費されたことを示します。

戻り値の型

bool

関数

EMSCRIPTEN_RESULT emscripten_set_visibilitychange_callback(void *userData, bool useCapture, em_visibilitychange_callback_func callback)

`visibilitychange` イベントを受信するためのコールバック関数を登録します。

パラメータ
  • userData (void*) – コールバックに渡されるユーザー定義データ(APIに対して不透明)。

  • useCapture (bool) – キャプチャを使用するにはtrueを設定します。

  • callback (em_visibilitychange_callback_func) – コールバック関数。この登録関数から渡されたイベントの種類、イベントに関する情報、ユーザーデータと共に呼び出されます。イベントが消費された場合は、true を返す必要があります。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

EMSCRIPTEN_RESULT emscripten_get_visibility_status(EmscriptenVisibilityChangeEvent *visibilityStatus)

現在のページの表示状態を返します。

パラメータ
戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

タッチ

定義

EMSCRIPTEN_EVENT_TOUCHSTART
EMSCRIPTEN_EVENT_TOUCHEND
EMSCRIPTEN_EVENT_TOUCHMOVE
EMSCRIPTEN_EVENT_TOUCHCANCEL

Emscripten タッチイベント。

構造体

EmscriptenTouchPoint

ページ上の単一の `タッチポイント` の状態を指定します。

long identifier

各タッチポイントの識別番号。

long screenX
long screenY

画面全体の原点からのタッチ座標(ピクセル単位)。

long clientX
long clientY

ビューポートからのタッチ座標(ピクセル単位)。

long pageX
long pageY

スクロールオフセットを含むビューポートからのタッチ座標(ピクセル単位)。

bool isChanged

このイベント中にタッチポイントが変化したかどうかを指定します。

bool onTarget

このタッチポイントが、最初に押された元のターゲットの上にあるかどうかを指定します。

long targetX
long targetY

これらのフィールドは、入力イベントを受信するターゲットDOM要素の座標空間に対してマッピングされたタッチ座標を示します(Emscripten固有の拡張機能)。

long canvasX
long canvasY

Emscriptenキャンバスのクライアント領域にマッピングされたタッチ座標(ピクセル単位)(Emscripten固有の拡張機能)。

EmscriptenTouchEvent

単一の `touchevent` のデータを指定します。

double timestamp

データが記録された絶対的なウォールクロック時間(ミリ秒)。

int numTouches

touches配列内の有効な要素の数。

bool ctrlKey
bool shiftKey
bool altKey
bool metaKey

タッチイベント中にアクティブだった修飾キーを指定します。

EmscriptenTouchPoint touches[32]

現在アクティブなタッチの配列(指ごとに1つ)。

コールバック関数

em_touch_callback_func

touch event callback functions の関数ポインタで、次のように定義されます。

typedef bool (*em_touch_callback_func)(int eventType, const EmscriptenTouchEvent *touchEvent, void *userData);
パラメータ
  • eventType (int) – タッチイベントの種類(EMSCRIPTEN_EVENT_TOUCHSTART)。

  • touchEvent (const EmscriptenTouchEvent*) – 発生したタッチイベントに関する情報。

  • userData (void*) – 登録関数に最初に渡されたuserData

戻り値

true(ゼロ以外)は、イベントがコールバックハンドラによって消費されたことを示します。

戻り値の型

bool

関数

EMSCRIPTEN_RESULT emscripten_set_touchstart_callback(const char *target, void *userData, bool useCapture, em_touch_callback_func callback)
EMSCRIPTEN_RESULT emscripten_set_touchend_callback(const char *target, void *userData, bool useCapture, em_touch_callback_func callback)
EMSCRIPTEN_RESULT emscripten_set_touchmove_callback(const char *target, void *userData, bool useCapture, em_touch_callback_func callback)
EMSCRIPTEN_RESULT emscripten_set_touchcancel_callback(const char *target, void *userData, bool useCapture, em_touch_callback_func callback)

タッチイベント(touch events):touchstarttouchendtouchmovetouchcancelを受信するためのコールバック関数を登録します。

パラメータ
  • target (const char*) – ターゲットHTML要素ID

  • userData (void*) – コールバックに渡されるユーザー定義データ(APIに対して不透明)。

  • useCapture (bool) – キャプチャを使用するにはtrueを設定します。

  • **callback** (em_touch_callback_func) – コールバック関数。イベントの種類、イベントに関する情報、この登録関数から渡されたユーザーデータと共に呼び出されます。イベントが消費された場合は、trueを返す必要があります。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

ゲームパッド

定義

EMSCRIPTEN_EVENT_GAMEPADCONNECTED
EMSCRIPTEN_EVENT_GAMEPADDISCONNECTED

Emscripten ゲームパッド イベント。

構造体

EmscriptenGamepadEvent

ゲームパッドの現在のスナップショット状態を表します。

double timestamp

データが記録された絶対的なウォールクロック時間(ミリ秒)。

int numAxes

axis配列内の有効な軸エントリの数。

int numButtons

analogButton配列とdigitalButton配列内の有効なボタンエントリの数。

double axis[64]

ゲームパッド軸のアナログ状態(-1~1の範囲)。

double analogButton[64]

ゲームパッドボタンのアナログ状態(0~1の範囲)。

bool digitalButton[64]

ゲームパッドボタンのデジタル状態(0または1)。

bool connected

このゲームパッドがブラウザページに接続されているかどうかを指定します。

long index

このゲームパッドに関連付けられた序数(0ベース)。

EM_UTF8 id

接続されたゲームパッドデバイスのブランドまたはスタイルのID。通常、USBベンダーと製品IDが含まれます。

最大サイズ64 char(つまり、EM_UTF8 id[64])。

EM_UTF8 mapping

このデバイスのレイアウトまたはコントロールマッピングを識別する文字列。

最大サイズ64 char(つまり、EM_UTF8 mapping[64])。

コールバック関数

em_gamepad_callback_func

gamepad event callback functionsの関数ポインタ。以下のように定義されています。

typedef bool (*em_gamepad_callback_func)(int eventType, const EmscriptenGamepadEvent *gamepadEvent, void *userData)
パラメータ
  • **eventType** (int) – ゲームパッドイベントの種類(EMSCRIPTEN_EVENT_GAMEPADCONNECTED)。

  • **gamepadEvent** (const EmscriptenGamepadEvent*) – 発生したゲームパッドイベントに関する情報。

  • userData (void*) – 登録関数に最初に渡されたuserData

戻り値

true(ゼロ以外)は、イベントがコールバックハンドラによって消費されたことを示します。

戻り値の型

bool

関数

EMSCRIPTEN_RESULT emscripten_set_gamepadconnected_callback(void *userData, bool useCapture, em_gamepad_callback_func callback)
EMSCRIPTEN_RESULT emscripten_set_gamepaddisconnected_callback(void *userData, bool useCapture, em_gamepad_callback_func callback)

ゲームパッドイベント(gamepadconnectedgamepaddisconnected)を受信するためのコールバック関数を登録します。

パラメータ
  • userData (void*) – コールバックに渡されるユーザー定義データ(APIに対して不透明)。

  • useCapture (bool) – キャプチャを使用するにはtrueを設定します。

  • **callback** (em_gamepad_callback_func) – コールバック関数。イベントの種類、イベントに関する情報、この登録関数から渡されたユーザーデータと共に呼び出されます。イベントが消費された場合は、trueを返す必要があります。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

EMSCRIPTEN_RESULT emscripten_sample_gamepad_data(void)

この関数は、接続されているゲームパッドデータの新しい状態をサンプリングし、Gamepad APIが現在のブラウザでサポートされている場合はEMSCRIPTEN_RESULT_SUCCESSを、サポートされていない場合はEMSCRIPTEN_RESULT_NOT_SUPPORTEDを返します。EMSCRIPTEN_RESULT_SUCCESSが返された場合でも、現在のブラウザタブにゲームパッドがまだ接続されていない場合があります。

`emscripten_get_num_gamepads()`または`emscripten_get_gamepad_status()`のいずれかの関数を呼び出す前に、この関数を呼び出してください。

int emscripten_get_num_gamepads(void)

`emscripten_sample_gamepad_data()`を呼び出した後、この関数はシステムに接続されているゲームパッドの数を返します。現在のブラウザがゲームパッドをサポートしていない場合はEMSCRIPTEN_RESULT_NOT_SUPPORTEDを返します。

注記

ゲームパッドは、ボタンを押すまで接続済みとして表示されません。

注記

Gamepad APIは、各デバイスの状態を返すためにゲームパッド状態オブジェクトの配列を使用します。デバイスは、この配列内にあるインデックスによって識別されます。そのため、最初にゲームパッドAを接続し、次にゲームパッドBを接続し、次にゲームパッドAを切断した場合、ゲームパッドBはゲームパッドAの場所を取りません。このシナリオでは、この関数はゲームパッドAが存在しなくなっても、接続されているゲームパッドの数を2と返し続けます。接続されているゲームパッドの実際の数を調べるには、gamepadconnectedイベントとgamepaddisconnectedイベントをリッスンしてください。`emscripten_get_num_gamepads()`関数の戻り値から1を引いた値を、`emscripten_get_gamepad_status()`関数に渡すことができる最大のインデックス値と考えてください。

戻り値

ブラウザタブに接続されているゲームパッドの数。

戻り値の型

int

EMSCRIPTEN_RESULT emscripten_get_gamepad_status(int index, EmscriptenGamepadEvent *gamepadState)

`emscripten_sample_gamepad_data()`を呼び出した後、この関数は、コントローラ配列の指定されたインデックスにあるゲームパッドコントローラの現在のゲームパッド状態のスナップショットを返します。

パラメータ
戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

バッテリー

定義

EMSCRIPTEN_EVENT_BATTERYCHARGINGCHANGE
EMSCRIPTEN_EVENT_BATTERYLEVELCHANGE

Emscripten バッテリーマネージャ イベント。

構造体

EmscriptenBatteryEvent

バッテリーマネージャ イベント(chargingchangelevelchange)で渡されるイベント構造体。

double chargingTime

バッテリーが完全に充電されるまでの残り時間(秒)。

double dischargingTime

バッテリーが空になり、システムがサスペンドされるまでの残り時間(秒)。

double level

現在のバッテリーレベル(0~1.0の範囲)。

bool charging;

バッテリーが充電中であればtrue、そうでなければfalse

コールバック関数

em_battery_callback_func

batterymanager イベント コールバック関数 の関数ポインタ。以下のように定義されています。

typedef bool (*em_battery_callback_func)(int eventType, const EmscriptenBatteryEvent *batteryEvent, void *userData);
パラメータ
  • eventType (int) – batterymanager イベントのタイプ(EMSCRIPTEN_EVENT_BATTERYCHARGINGCHANGE)。

  • batteryEvent (const EmscriptenBatteryEvent*) – 発生したbatterymanager イベントに関する情報。

  • userData (void*) – 登録関数に最初に渡されたuserData

戻り値

true(ゼロ以外)は、イベントがコールバックハンドラによって消費されたことを示します。

戻り値の型

bool

関数

EMSCRIPTEN_RESULT emscripten_set_batterychargingchange_callback(void *userData, em_battery_callback_func callback)
EMSCRIPTEN_RESULT emscripten_set_batterylevelchange_callback(void *userData, em_battery_callback_func callback)

バッテリーマネージャ イベント(chargingchangelevelchange)を受信するためのコールバック関数を登録します。

パラメータ
  • userData (void*) – コールバックに渡されるユーザー定義データ(APIに対して不透明)。

  • callback (em_battery_callback_func) – コールバック関数。イベントの種類、イベントに関する情報、この登録関数から渡されたユーザーデータと共に呼び出されます。イベントが消費された場合はtrueを返す必要があります。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

EMSCRIPTEN_RESULT emscripten_get_battery_status(EmscriptenBatteryEvent *batteryState)

現在のバッテリーの状態を返します。

パラメータ
戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

バイブレーション

関数

EMSCRIPTEN_RESULT emscripten_vibrate(int msecs)

指定された時間(ミリ秒)バイブレーションを発生させます。vibration

パラメータ
  • msecs (int) – バイブレーションが必要な時間(ミリ秒)。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

EMSCRIPTEN_RESULT emscripten_vibrate_pattern(int *msecsArray, int numEntries)

複雑なバイブレーションフィードバックパターンを発生させます。

パラメータ
  • msecsArray (int*) – タイミングエントリの配列 [オン、オフ、オン、オフ、オン、オフ、…]。2つに1つはバイブレーションの持続時間、もう1つは無音の持続時間を指定します。

  • numEntries (int) – 配列msecsArrayの整数要素数。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

ページのアンロード

定義

EMSCRIPTEN_EVENT_BEFOREUNLOAD

Emscripten beforeunload イベント。

コールバック関数

em_beforeunload_callback

beforeunload イベント コールバック関数 の関数ポインタ。以下のように定義されています。

typedef const char *(*em_beforeunload_callback)(int eventType, const void *reserved, void *userData);
パラメータ
  • eventType (int) – beforeunload イベントのタイプ(EMSCRIPTEN_EVENT_BEFOREUNLOAD)。

  • reserved (const void*) – 将来の使用のために予約されています。0 を渡してください。

  • userData (void*) – 登録関数に最初に渡されたuserData

戻り値

ユーザーに表示する文字列を返します。

戻り値の型

char*

関数

EMSCRIPTEN_RESULT emscripten_set_beforeunload_callback(void *userData, em_beforeunload_callback callback)

ページのbeforeunloadイベントを受信するためのコールバック関数を登録します。

ページの閉じ直前にアクションを実行するために、このイベントにフックします(例:ユーザーが本当にページを離れたいかどうかを確認するための通知を表示する)。

パラメータ
  • userData (void*) – コールバックに渡されるユーザー定義データ(APIに対して不透明)。

  • callback (em_beforeunload_callback) – コールバック関数。イベントの種類、イベントに関する情報、この登録関数から渡されたユーザーデータと共に呼び出されます。イベントが消費された場合はtrueを返す必要があります。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

WebGLコンテキスト

定義

EMSCRIPTEN_EVENT_WEBGLCONTEXTLOST
EMSCRIPTEN_EVENT_WEBGLCONTEXTRESTORED

Emscripten WebGLコンテキスト イベント。

EMSCRIPTEN_WEBGL_CONTEXT_HANDLE

Emscripten WebGLコンテキストオブジェクトへのハンドルを表します。値0は無効なコンテキスト/コンテキストなしを示します(intptr_tへのtypedefです)。

構造体

EmscriptenWebGLContextAttributes

WebGLコンテキスト作成パラメータ を指定します。

bool alpha

trueの場合、コンテキストにアルファチャンネルを要求します。アルファチャンネルを作成すると、キャンバスのレンダリングを基となるウェブページの内容とブレンドできます。デフォルト値:true

bool depth

trueの場合、少なくとも16ビットの深度バッファを要求します。falseの場合、深度バッファは初期化されません。デフォルト値:true

bool stencil

trueの場合、少なくとも8ビットのステンシルバッファを要求します。falseの場合、ステンシルバッファは初期化されません。デフォルト値:false

bool antialias

trueの場合、ブラウザで指定されたアルゴリズムと品質レベルでアンチエイリアシングが初期化されます。falseの場合、アンチエイリアシングは無効になります。デフォルト値:true

bool premultipliedAlpha

trueの場合、レンダリングコンテキストのアルファチャンネルは、プリマルチプライドアルファ値を表すものとして扱われます。falseの場合、アルファチャンネルはプリマルチプライドされていないアルファを表します。デフォルト値:true

bool preserveDrawingBuffer

trueの場合、描画バッファの内容は連続するrequestAnimationFrame()呼び出し間で保持されます。falseの場合、各requestAnimationFrame()の開始時に、カラー、深度、ステンシルがクリアされます。一般的に、これをfalseに設定するとパフォーマンスが向上します。デフォルト値: false

EM_WEBGL_POWER_PREFERENCE powerPreference

WebGLキャンバス実装に対して、利用可能なGPUリソースの使用方法を選択する方法に関するヒントを指定します。EM_WEBGL_POWER_PREFERENCE_DEFAULT、EM_WEBGL_POWER_PREFERENCE_LOW_POWER、EM_WEBGL_POWER_PREFERENCE_HIGH_PERFORMANCEのいずれかです。

bool failIfMajorPerformanceCaveat

trueの場合、ブラウザが良好なハードウェアアクセラレーションされたパフォーマンスを提供しないコンテキストしか作成できない場合、コンテキスト作成要求を中止します。デフォルト値: false

int majorVersion
int minorVersion

初期化するWebGLコンテキストのバージョンを指定するEmscripten固有の拡張機能です。

たとえば、majorVersion=1minorVersion=0を渡してWebGL 1.0コンテキストを要求し、majorVersion=2minorVersion=0を渡してWebGL 2.0コンテキストを要求します。

デフォルト値: majorVersion=1minorVersion=0

bool enableExtensionsByDefault

trueの場合、コンテキストの作成後に、パフォーマンスに影響を与えないGLES2互換のすべてのWebGL拡張機能が自動的に有効になります。falseの場合、デフォルトでは拡張機能は有効にならず、使用する拡張機能ごとにemscripten_webgl_enable_extension()を呼び出して手動で有効にする必要があります。デフォルト値: true

bool explicitSwapControl

デフォルトでは、explicitSwapControlがデフォルト状態のfalseの場合、レンダリングされたWebGLコンテンツは、WebGLでレンダリングするイベントハンドラがブラウザのイベントループに戻ったときに、キャンバスに暗黙的に表示されます(ユーザーに表示されます)。explicitSwapControltrueに設定すると、イベントハンドラ関数が終了してもコンテンツは自動的に画面に表示されず、emscripten_webgl_commit_frame()関数を使用して、スワップの制御がユーザーに委ねられます。

explicitSwapControl==trueを設定するには、1) Emscriptenリンカフラグ-sOFFSCREEN_FRAMEBUFFERを追加し、renderViaOffscreenBackBuffer==1を有効にするか、2) リンカフラグ-sOFFSCREENCANVAS_SUPPORTを追加し、OffscreenCanvasをサポートするブラウザで実行するかのいずれかで、明示的にサポートを有効にする必要があります。

bool renderViaOffscreenBackBuffer

trueの場合、作成されたWebGLコンテキストに追加の中間バックバッファ(オフスクリーンレンダリングターゲット)が割り当てられ、WebGLの「デフォルトバックバッファ」に直接レンダリングする代わりに、このバックバッファにレンダリングが行われます。これは、1) explicitSwapControl==trueでブラウザがOffscreenCanvasをサポートしていない場合、2) ワーカースレッドでWebGLレンダリングを実行し、ブラウザがOffscreenCanvasをサポートしていない場合、3) 複数のスレッドから同時にWebGLコンテキストにアクセスする場合(OffscreenCanvasのサポートの有無に関係なく)に有効にする必要があります。

オフスクリーンフレームバッファのサポートは、コンパイルされた出力に多少の追加コードを追加するため、Emscriptenリンカフラグ-sOFFSCREEN_FRAMEBUFFERを使用して明示的にサポートを有効にする必要があります。-sOFFSCREEN_FRAMEBUFFER-sOFFSCREENCANVAS_SUPPORTの両方のリンカフラグを有効にして同時にビルドする場合、オフスクリーンバックバッファをポリフィルのような互換性のあるフォールバックとして使用して、ブラウザがOffscreenCanvas APIをサポートしていない場合にpthreadからのWebGLレンダリングを有効にすることができます。

bool proxyContextToMainThread

このメンバーは、WebGLコンテキストがpthreadで作成される場合、作成されるWebGLコンテキストに使用されるスレッドモデルを指定します。使用できる値は、EMSCRIPTEN_WEBGL_CONTEXT_PROXY_DISALLOWEMSCRIPTEN_WEBGL_CONTEXT_PROXY_FALLBACKEMSCRIPTEN_WEBGL_CONTEXT_PROXY_ALWAYSの3つです。EMSCRIPTEN_WEBGL_CONTEXT_PROXY_DISALLOWを指定すると、WebGLRenderingContextオブジェクトは、emscripten_webgl_create_context()関数を呼び出しているpthread内で、OffscreenCanvasベースのレンダリングコンテキストとして作成されます。これは、1) 現在のブラウザがOffscreenCanvas仕様をサポートしている場合、2) コードが-sOFFSCREENCANVAS_SUPPORTリンカフラグを有効にしてコンパイルされている場合、3) コンテキストが作成されているCanvasオブジェクトが、pthreadの作成時に関数emscripten_pthread_attr_settransferredcanvases()を使用して呼び出し元のpthreadに転送されている場合、4) 同時に指定されたCanvasからOffscreenCanvasベースのコンテキストがまだ存在しない場合にのみ可能です。

WebGLレンダリングコンテキストがOffscreenCanvasベースのコンテキストとして作成されると、コンテキストを作成したpthreadのみが(emscripten_webgl_make_context_current()関数を使用して)それにアクセスできるという制限があります。他のスレッドはコンテキストへのレンダリングをアクティブにできません。つまり、OffscreenCanvasベースのコンテキストは本質的にそれらを作成したpthreadに「固定」されています。

現在のブラウザがOffscreenCanvasをサポートしていない場合は、EMSCRIPTEN_WEBGL_CONTEXT_PROXY_ALWAYS WebGLコンテキスト作成フラグを指定できます。このフラグが渡され、コードが-sOFFSCREEN_FRAMEBUFFERを有効にしてコンパイルされている場合、WebGLコンテキストは「プロキシコンテキスト」として作成されます。このコンテキストモードでは、WebGLRenderingContextオブジェクトは実際にはメインブラウザスレッドで作成され、すべてのWebGL API呼び出しは、pthreadからメインスレッドへの非同期メッセージとしてプロキシされます。これは、OffscreenCanvasコンテキストと比較して、パフォーマンスとレイテンシに影響を与えますが、OffscreenCanvasベースのコンテキストとは異なり、プロキシコンテキストは任意の数のpthreadで共有できます。emscripten_webgl_make_context_current()関数を任意のpthreadで使用して、WebGLコンテキストへのアクセスをアクティブ化および非アクティブ化できます。たとえば、WebGLローディングスレッドと、emscripten_webgl_make_context_current()関数を使用してWebGLレンダリングコンテキストへのアクセスを協調的に取得および解放することによって、共有アクセスを調整するWebGLレンダリングスレッドを持つことができます。プロキシコンテキストはブラウザからの特別なサポートを必要としないため、WebGL対応のブラウザであれば、プロキシされたWebGLコンテキストを作成できます。

EMSCRIPTEN_WEBGL_CONTEXT_PROXY_ALWAYS WebGLコンテキスト作成フラグは、ブラウザがOffscreenCanvasをサポートしている場合でも、常にプロキシコンテキストを作成します。ブラウザでサポートされている場合は、より高性能なOffscreenCanvasコンテキストを作成することを優先し、OffscreenCanvasをまだサポートしていないブラウザとの互換性を維持するためにプロキシされたWebGLコンテキストにフォールバックする場合、EMSCRIPTEN_WEBGL_CONTEXT_PROXY_FALLBACKコンテキスト作成フラグを指定できます。このフラグを使用するには、コードを-sOFFSCREEN_FRAMEBUFFER-sOFFSCREENCANVAS_SUPPORTの両方のリンカフラグを有効にしてコンパイルする必要があります。

emscripten_webgl_init_context_attributes()を呼び出した後のproxyContextToMainThreadのデフォルト値は、WebGLコンテキストがメインスレッドで作成されている場合、EMSCRIPTEN_WEBGL_CONTEXT_PROXY_DISALLOWです。これは、デフォルトではメインスレッドで作成されたWebGLコンテキストは複数のスレッド間で共有されないことを意味します(必要ない場合にプロキシを有効にすることによるパフォーマンスの低下を偶然回避するためです)。複数のpthread間で共有できるコンテキストを作成するには、proxyContextToMainThreadフラグをEMSCRIPTEN_WEBGL_CONTEXT_PROXY_ALWAYSに設定します。

コールバック関数

em_webgl_context_callback

WebGL コンテキスト イベント コールバック関数のための関数ポインタで、以下のように定義されています。

typedef bool (*em_webgl_context_callback)(int eventType, const void *reserved, void *userData);
パラメータ
  • eventType (int) – WebGL コンテキスト イベントのタイプ。

  • reserved (const void*) – 将来の使用のために予約されています。0 を渡してください。

  • userData (void*) – 登録関数に最初に渡されたuserData

戻り値

true(ゼロ以外)は、イベントがコールバックハンドラによって消費されたことを示します。

戻り値の型

bool

関数

EMSCRIPTEN_RESULT emscripten_set_webglcontextlost_callback(const char *target, void *userData, bool useCapture, em_webgl_context_callback callback)
EMSCRIPTEN_RESULT emscripten_set_webglcontextrestored_callback(const char *target, void *userData, bool useCapture, em_webgl_context_callback callback)

キャンバスのWebGLコンテキストイベント(webglcontextlostwebglcontextrestored)に対するコールバック関数を登録します。

パラメータ
  • target (const char*) – ターゲットHTML要素ID

  • userData (void*) – コールバックに渡されるユーザー定義データ(APIに対して不透明)。

  • useCapture (bool) – キャプチャを使用するにはtrueを設定します。

  • callback (em_webgl_context_callback) – コールバック関数。この登録関数から渡されたイベントの種類、イベントに関する情報、ユーザーデータと共に呼び出されます。コールバックは、イベントが消費された場合にtrueを返す必要があります。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

bool emscripten_is_webgl_context_lost(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE context)

指定されたWebGLコンテキストがコンテキスト消失状態にあるかどうかを問い合わせます。

パラメータ
戻り値

WebGLコンテキストが消失状態の場合(またはコンテキストが存在しない場合)true

戻り値の型

bool

void emscripten_webgl_init_context_attributes(EmscriptenWebGLContextAttributes *attributes)

WebGL 1.0で使用するためのデフォルト値に、指定されたEmscriptenWebGLContextAttributes構造体のすべてのフィールドを設定します。

将来EmscriptenWebGLContextAttributes構造体に新しいフィールドが追加された場合でも、コードを変更せずにデフォルトで初期化されるように、この関数を前方互換性のある方法として呼び出してください。

パラメータ
EMSCRIPTEN_WEBGL_CONTEXT_HANDLE emscripten_webgl_create_context(const char *target, const EmscriptenWebGLContextAttributes *attributes)

新しいWebGLコンテキストを作成して返します。

注記

  • この関数を正常に呼び出しても、レンダリングコンテキストがすぐにアクティブになるわけではありません。アクティブにするには、コンテキストの作成後にemscripten_webgl_make_context_current()を呼び出してください。

  • この関数は、 *正確に* 要求されたコンテキストバージョンを初期化しようとします。例えば、より新しい下位互換性のあるバージョンなどは初期化しません。

パラメータ
  • target (const char*) – WebGLコンテキストを初期化するDOMキャンバス要素。

  • attributes (const EmscriptenWebGLContextAttributes*) – 要求されたコンテキストバージョンの属性。

戻り値

成功した場合、作成されたコンテキストへのハンドルを表すゼロ以外の値。失敗した場合、0。

戻り値の型

EMSCRIPTEN_WEBGL_CONTEXT_HANDLE

EMSCRIPTEN_RESULT emscripten_webgl_make_context_current(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE context)

レンダリングのために指定されたWebGLコンテキストをアクティブにします。この関数を呼び出した後、すべてのOpenGL関数(glBindBuffer()glDrawArrays()など)を指定されたGLコンテキストに適用できます。

パラメータ
戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

EMSCRIPTEN_WEBGL_CONTEXT_HANDLE emscripten_webgl_get_current_context()

現在アクティブなWebGLレンダリングコンテキストを返します。アクティブなコンテキストがない場合は0を返します。アクティブなレンダリングコンテキストがない状態でWebGL関数を呼び出すと、動作が未定義になり、JavaScript例外がスローされる可能性があります。

戻り値

現在アクティブなWebGLレンダリングコンテキスト、またはアクティブなコンテキストがない場合は0。

戻り値の型

EMSCRIPTEN_WEBGL_CONTEXT_HANDLE

EMSCRIPTEN_RESULT emscripten_webgl_get_context_attributes(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE context, EmscriptenWebGLContextAttributes *outAttributes)

指定されたWebGLコンテキストの初期化に使用されたコンテキスト作成属性を取得します。

パラメータ
戻り値

成功した場合、EMSCRIPTEN_RESULT_SUCCESS。

EMSCRIPTEN_RESULT emscripten_webgl_commit_frame()

現在アクティブなWebGLコンテキストでレンダリングされたコンテンツを提示(「スワップ」)して、キャンバス上に表示します。この関数は、explicitSwapControl==trueコンテキスト作成属性を使用して作成されたWebGLコンテキストで使用できます。explicitSwapControl==falseの場合、レンダリングされたコンテンツは、呼び出し元のイベントハンドラからブラウザに戻ったときに「暗黙的に」画面に表示されます。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれかで、失敗の理由を示します。

戻り値の型

EMSCRIPTEN_RESULT

EMSCRIPTEN_RESULT emscripten_webgl_get_drawing_buffer_size(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE context, int *width, int *height)

指定されたWebGLコンテキストのdrawingBufferWidthdrawingBufferHeightを取得します。

パラメータ
  • context (EMSCRIPTEN_WEBGL_CONTEXT_HANDLE) – 幅/高を取得するWebGLコンテキスト。

  • *width (int) – コンテキストのdrawingBufferWidth

  • *height (int) – コンテキストのdrawingBufferHeight

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

EMSCRIPTEN_RESULT emscripten_webgl_destroy_context(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE context)

指定されたWebGLコンテキストを削除します。そのコンテキストがアクティブだった場合、アクティブなコンテキストは設定されません。

パラメータ
戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

bool emscripten_webgl_enable_extension(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE context, const char *extension)

指定されたコンテキストで指定された拡張機能を有効にします。

パラメータ
戻り値

指定された拡張機能がコンテキストでサポートされている場合はtrue、そうでない場合はfalse。

戻り値の型

bool

EMSCRIPTEN_RESULT emscripten_set_canvas_element_size(const char *target, int width, int height)

DOM内の指定されたCanvas要素のピクセル幅と高さを変更します。

パラメータ
  • target – サイズを変更するcanvasのセレクタを指定します。

  • width – canvas要素の新しいピクセル幅。

  • height – canvas要素の新しいピクセル高さ。

戻り値

サイズ変更に成功した場合はEMSCRIPTEN_RESULT_SUCCESS、失敗した場合はEMSCRIPTEN_RESULT_*エラー値のいずれか。

EMSCRIPTEN_RESULT emscripten_get_canvas_element_size(const char *target, int *width, int *height)

DOM内の指定されたCanvas要素の現在のピクセル幅と高さを取得します。

パラメータ
  • target – サイズを変更するcanvasのセレクタを指定します。

  • width – canvas要素の幅を受け取るメモリ位置へのポインタ。このポインタはNULLであってはなりません。

  • height – canvas要素の高さを受け取るメモリ位置へのポインタ。このポインタはNULLであってはなりません。

戻り値

幅と高さの取得に成功した場合はEMSCRIPTEN_RESULT_SUCCESS、失敗した場合はEMSCRIPTEN_RESULT_*エラー値のいずれか。

CSS

関数

EMSCRIPTEN_RESULT emscripten_set_element_css_size(const char * target, double width, double height)

Emscriptenウェブページ上のtargetで指定された要素のCSS幅と高さを変更します。

パラメータ
  • target (const char*) – サイズを変更する要素。

  • width (double) – 要素の新しい幅。

  • height (double) – 要素の新しい高さ。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

EMSCRIPTEN_RESULT emscripten_get_element_css_size(const char * target, double * width, double * height)

targetで指定された要素の現在のCSS幅と高さを取得します。

パラメータ
  • target (const char*) – サイズを取得する要素。

  • width (double*) – 要素の幅。

  • height (double*) – 要素の高さ。

戻り値

EMSCRIPTEN_RESULT_SUCCESS、またはその他の結果値のいずれか。

戻り値の型

EMSCRIPTEN_RESULT

アニメーションとタイミング

ここで提供されるAPIは、関連するWeb APIを直接呼び出す低レベル関数であり、それ以上の機能はありません。プログラムが停止しているかどうかをチェックしたり、その場合にコールバックをキャンセルするなど、emscriptenランタイムと統合されていません。その目的には、関数emscripten_set_main_loop()を参照してください。

関数

long emscripten_set_timeout(void (*cb)(void *userData), double msecs, void *userData)

呼び出しスレッド上で指定された関数にsetTimeout()コールバック呼び出しを実行します。

パラメータ
  • cb – 呼び出すコールバック関数。

  • msecs – コールバックが実行されるまでのミリ秒単位の遅延。

  • userData – コールバック関数に渡されるカスタムデータのポインタサイズフィールドを指定します。

戻り値

setTimeout()呼び出しのID。保留中のタイムアウトタイマーをキャンセルするためにemscripten_clear_timeout()に渡すことができます。

void emscripten_clear_timeout(long setTimeoutId)

呼び出しスレッド上の保留中のsetTimeout()呼び出しをキャンセルします。この関数は、コールバックを登録したemscripten_set_timeout()呼び出しと同じスレッドで呼び出す必要があります。

パラメータ
void emscripten_set_timeout_loop(bool (*cb)(double time, void *userData), double intervalMsecs, void *userData)

呼び出しスレッド上の指定された関数でsetTimeout()ループを初期化します。指定されたコールバック関数「cb」は、アニメーションループが継続して実行される限りtrueを返し続ける必要があります。関数がfalseを返すと、setTimeout()ループは停止します。注:ループは0ミリ秒の遅延で直ちに開始されます。渡されたintervalMsecs時間は、連続するコールバック呼び出しが実行される間隔を指定します。

パラメータ
  • cb – 呼び出すコールバック関数。

  • intervalMsecs – コールバックが継続して実行されるミリ秒単位の間隔。

  • userData – コールバック関数に渡されるカスタムデータのポインタサイズフィールドを指定します。

long emscripten_request_animation_frame(bool (*cb)(double time, void *userData), void *userData)

呼び出しスレッド上の指定された関数に単一のrequestAnimationFrame()コールバック呼び出しを実行します。

パラメータ
  • cb – 呼び出すコールバック関数。この関数は、呼び出し時の現在の高精度タイマー値(performance.now()の値)を受け取ります。

  • userData – コールバック関数に渡されるカスタムデータのポインタサイズフィールドを指定します。

戻り値

requestAnimationFrame()呼び出しのID。保留中のrequestAnimationFrameタイマーをキャンセルするためにemscripten_cancel_animation_frame()に渡すことができます。

void emscripten_cancel_animation_frame(long requestAnimationFrameId)

実行される前に、呼び出しスレッド上で登録されたrequestAnimationFrame()コールバックをキャンセルします。この関数は、コールバックを登録したemscripten_request_animation_frame()呼び出しと同じスレッドで呼び出す必要があります。

パラメータ
void emscripten_request_animation_frame_loop(bool (*cb)(double time, void *userData), void *userData)

呼び出しスレッド上の指定された関数でrequestAnimationFrame()ループを初期化します。指定されたコールバック関数「cb」は、アニメーションループが継続して実行される限りtrueを返し続ける必要があります。関数がfalseを返すと、アニメーションフレームループは停止します。

パラメータ
  • cb – 呼び出すコールバック関数。この関数は、呼び出し時の現在の高精度タイマー値(performance.now()の値)を受け取ります。

  • userData – コールバック関数に渡されるカスタムデータのポインタサイズフィールドを指定します。

long emscripten_set_immediate(void (*cb)(void *userData), void *userData)

呼び出しスレッド上の指定された関数にsetImmediate()コールバック呼び出しを実行します。setImmediate()呼び出しのIDを返します。保留中のsetImmediate()呼び出しをキャンセルするためにemscripten_clear_immediate()関数に渡すことができます。TODO: 現在、setImmediate()のポリフィルはメインブラウザスレッドでのみ機能し、pthreadでは機能しません。

パラメータ
  • cb – 呼び出すコールバック関数。

  • userData – コールバック関数に渡されるカスタムデータのポインタサイズフィールドを指定します。

戻り値

setImmediate()呼び出しのID。保留中のコールバックをキャンセルするためにemscripten_clear_immediate()に渡すことができます。

void emscripten_clear_immediate(long setImmediateId)

呼び出しスレッド上の保留中のsetImmediate()呼び出しをキャンセルします。この関数は、コールバックを登録したemscripten_set_immediate()呼び出しと同じスレッドで呼び出す必要があります。

パラメータ
void emscripten_set_immediate_loop(bool (*cb)(void *userData), void *userData)

呼び出しスレッド上の指定された関数でsetImmediate()ループを初期化します。指定されたコールバック関数「cb」は、ループの実行を継続する限りtrueを返し続ける必要があります。関数がfalseを返すと、setImmediate()ループは停止します。TODO: 現在のsetImmediate()のポリフィルは、メインブラウザスレッドでのみ機能し、pthreadでは機能しません。

パラメータ
  • cb – 呼び出すコールバック関数。

  • userData – コールバック関数に渡されるカスタムデータのポインタサイズフィールドを指定します。

long emscripten_set_interval(void (*cb)(void *userData), double intervalMsecs, void *userData)

呼び出しスレッド上の指定された関数でsetInterval()ループを初期化します。初期化されたループのIDを返します。ループを終了するには、このIDを使用してemscripten_clear_interval()を呼び出します。この関数は、指定されたコールバックを繰り返し呼び出す原因となることに注意してください。コールバック内から同じコールバック関数に対してemscripten_set_interval()を再度呼び出さないでください。これは、同時に実行される複数のループを登録することになります。

パラメータ
  • cb – 呼び出すコールバック関数。

  • intervalMsecs – コールバックが継続して実行されるミリ秒単位の間隔。

  • userData – コールバック関数に渡されるカスタムデータのポインタサイズフィールドを指定します。

戻り値

実行中のintervalタイマーをキャンセルするためにemscripten_clear_interval()に渡すことができる、setInterval()呼び出しへのID。

void emscripten_clear_interval(long setIntervalId)

呼び出しスレッド上の現在実行中のsetInterval()ループをキャンセルします。この関数は、コールバックを登録したemscripten_set_interval()呼び出しと同じスレッドで呼び出す必要があります。

パラメータ
double emscripten_date_now(void)

現在のスレッドでJavaScriptのDate.now()関数を呼び出します。

戻り値

UNIXエポック(1970年1月1日木曜日 00:00:00)からの経過ミリ秒数。

double emscripten_performance_now(void)

現在のスレッドでJavaScriptのperformance.now()関数を呼び出します。この関数の戻り値は、関数が呼び出されたスレッドによって異なる時間オフセットに基づいていることに注意してください。つまり、スレッド間でperformance.now()によって返される絶対的な時間値を比較しないでください。(相対的な時間値の比較は問題ありません)。メインスレッドでは、この関数はページの起動時間からの経過ミリ秒数を返します。Web Worker/pthreadでは、この関数は、そのpthreadをホストしているWorkerの起動からの経過ミリ秒数を返します。(Workerは、pthreadが終了して2番目のpthreadが開始したときに一般的に破棄されませんが、プールで存続されるため、この関数はpthreadの開始時に0から時間計測を開始することが保証されていません)。

戻り値

ミリ秒単位の高精度なウォールクロック時間値。

Throw

関数

void emscripten_throw_number(double number)

JavaScriptのthrow文を呼び出し、数値をスローします。

void emscripten_throw_string(const char *utf8String)

JavaScriptのthrow文を呼び出し、文字列をスローします。

void emscripten_unwind_to_js_event_loop(void)

スタックをアンワインドし、実行をブラウザのイベントループに戻すJavaScript例外をスローします。この関数は、呼び出し元のコードに実行を戻しません。

この関数は、無限ループに入るコードを移植する場合に役立ちます。Webでは許可されていない無限ループを実際に実行する代わりに、ループの本体を非同期的に実行するように設定し(emscripten_set_main_loop()などを使用)、この関数を呼び出して実行を停止することができます。これは、実行が正常に継続しないようにするため重要です。