2014-11-04 34 views

回答

2

我會說,你不應該使用Emscripten這樣前言本。就個人而言,我會使用GLFW3和GLEW來管理窗口和擴展。當使用emcc或em ++(emscripten編譯器)時,他們會將窗口調用更改爲webgl上下文創建,而不是。

但現在回答。如果你對使用GLFW3不感興趣,你將不得不使用特定的Emscripten方法。沒有任何全球性的「gl-object」。

如果你正在尋找讓所有分機可以使用以下方法:

EM_BOOL enableExtensionsByDefault

  • 如果 「真」,所有GLES2兼容不影響性能的在創建 上下文後,WebGL 分機將自動啓用。

  • 如果「假」,沒有擴展名被啓用 默認情況下,你需要手動調用 「emscripten_webgl_enable_extension()」,以使您要使用的每個擴展 。默認值:「true」。

如果你正在尋找讓一個特定的擴展,你可以使用以下命令:

EMSCRIPTEN_WEBGL_CONTEXT_HANDLE emscripten_webgl_get_current_context()

返回當前活動的WebGL渲染環境或0如果沒有 上下文處於活動狀態。沒有 活動渲染上下文時調用任何WebGL函數是未定義的,並且可能會引發JavaScript異常。

返回:

  • 當前活動的WebGL呈現上下文,或

  • 0,如果沒有上下文是活動的。

返回類型: 「EMSCRIPTEN_WEBGL_CONTEXT_HANDLE」

在爲了得到WebGL的上下文句柄並將其傳遞到下面的方法:

EM_BOOL emscripten_webgl_enable_extension(EMSCRIPTEN_WEBGL_CONTEXT_HANDLE上下文中,常量字符*擴展名)

在給定的上下文中啓用給定的擴展。

參數:

  • 上下文EMSCRIPTEN_WEBGL_CONTEXT_HANDLE) - 在其上擴展將被啓用的WebGL 上下文。

  • 擴展(* const char **) - 標識WebGL擴展的字符串。例如「OES_texture_float」。

返回:如果給定的擴展名由上下文支持

  • EM_TRUE和

  • EM_FALSE如果擴展名是不可用的。

返回類型: 「EM_BOOL」

所有你需要的信息是在這裏:

http://kripken.github.io/emscripten-site/docs/api_reference/html5.h.html#html5-h