[Web] Force WebGL2 when supported.
This commit is contained in:
parent
cece83fdf2
commit
3ff7964145
@ -758,10 +758,8 @@ DisplayServerWeb::DisplayServerWeb(const String &p_rendering_driver, WindowMode
|
||||
godot_js_os_request_quit_cb(request_quit_callback);
|
||||
|
||||
#ifdef GLES3_ENABLED
|
||||
// TODO "vulkan" defaults to webgl2 for now.
|
||||
bool wants_webgl2 = p_rendering_driver == "opengl3" || p_rendering_driver == "vulkan";
|
||||
bool webgl2_init_failed = wants_webgl2 && !godot_js_display_has_webgl(2);
|
||||
if (wants_webgl2 && !webgl2_init_failed) {
|
||||
bool webgl2_inited = false;
|
||||
if (godot_js_display_has_webgl(2)) {
|
||||
EmscriptenWebGLContextAttributes attributes;
|
||||
emscripten_webgl_init_context_attributes(&attributes);
|
||||
attributes.alpha = OS::get_singleton()->is_layered_allowed();
|
||||
@ -770,20 +768,17 @@ DisplayServerWeb::DisplayServerWeb(const String &p_rendering_driver, WindowMode
|
||||
attributes.explicitSwapControl = true;
|
||||
|
||||
webgl_ctx = emscripten_webgl_create_context(canvas_id, &attributes);
|
||||
if (emscripten_webgl_make_context_current(webgl_ctx) != EMSCRIPTEN_RESULT_SUCCESS) {
|
||||
webgl2_init_failed = true;
|
||||
} else {
|
||||
if (!emscripten_webgl_enable_extension(webgl_ctx, "OVR_multiview2")) {
|
||||
// @todo Should we log this?
|
||||
}
|
||||
RasterizerGLES3::make_current();
|
||||
}
|
||||
webgl2_inited = webgl_ctx && emscripten_webgl_make_context_current(webgl_ctx) == EMSCRIPTEN_RESULT_SUCCESS;
|
||||
}
|
||||
if (webgl2_init_failed) {
|
||||
if (webgl2_inited) {
|
||||
if (!emscripten_webgl_enable_extension(webgl_ctx, "OVR_multiview2")) {
|
||||
print_verbose("Failed to enable WebXR extension.");
|
||||
}
|
||||
RasterizerGLES3::make_current();
|
||||
|
||||
} else {
|
||||
OS::get_singleton()->alert("Your browser does not seem to support WebGL2. Please update your browser version.",
|
||||
"Unable to initialize video driver");
|
||||
}
|
||||
if (!wants_webgl2 || webgl2_init_failed) {
|
||||
RasterizerDummy::make_current();
|
||||
}
|
||||
#else
|
||||
|
Loading…
Reference in New Issue
Block a user