Skip to content

Commit

Permalink
Merge pull request godotengine#17343 from eska014/wasm-webgl1
Browse files Browse the repository at this point in the history
Reinstate WebGL 1.0 (GLES2) driver in HTML5 platform
  • Loading branch information
akien-mga authored Mar 7, 2018
2 parents 900384a + 802b6d3 commit acacba3
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 7 deletions.
3 changes: 2 additions & 1 deletion core/os/os.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@

enum VideoDriver {
VIDEO_DRIVER_GLES3,
VIDEO_DRIVER_GLES2
VIDEO_DRIVER_GLES2,
VIDEO_DRIVER_MAX,
};

class OS {
Expand Down
29 changes: 23 additions & 6 deletions platform/javascript/os_javascript.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
#include "core/engine.h"
#include "core/io/file_access_buffered_fa.h"
#include "dom_keys.h"
#include "drivers/gles2/rasterizer_gles2.h"
#include "drivers/gles3/rasterizer_gles3.h"
#include "drivers/unix/dir_access_unix.h"
#include "drivers/unix/file_access_unix.h"
Expand All @@ -57,12 +58,19 @@ static void dom2godot_mod(T emscripten_event_ptr, Ref<InputEventWithModifiers> g

int OS_JavaScript::get_video_driver_count() const {

return 1;
return VIDEO_DRIVER_MAX;
}

const char *OS_JavaScript::get_video_driver_name(int p_driver) const {

return "GLES3";
switch (p_driver) {
case VIDEO_DRIVER_GLES3:
return "GLES3";
case VIDEO_DRIVER_GLES2:
return "GLES2";
}
ERR_EXPLAIN("Invalid video driver index " + itos(p_driver));
ERR_FAIL_V(NULL);
}

int OS_JavaScript::get_audio_driver_count() const {
Expand Down Expand Up @@ -422,7 +430,19 @@ Error OS_JavaScript::initialize(const VideoMode &p_desired, int p_video_driver,
emscripten_webgl_init_context_attributes(&attributes);
attributes.alpha = false;
attributes.antialias = false;
attributes.majorVersion = 2;
ERR_FAIL_INDEX_V(p_video_driver, VIDEO_DRIVER_MAX, ERR_INVALID_PARAMETER);
switch (p_video_driver) {
case VIDEO_DRIVER_GLES3:
attributes.majorVersion = 2;
RasterizerGLES3::register_config();
RasterizerGLES3::make_current();
break;
case VIDEO_DRIVER_GLES2:
attributes.majorVersion = 1;
RasterizerGLES2::register_config();
RasterizerGLES2::make_current();
break;
}
EMSCRIPTEN_WEBGL_CONTEXT_HANDLE ctx = emscripten_webgl_create_context(NULL, &attributes);
ERR_FAIL_COND_V(emscripten_webgl_make_context_current(ctx) != EMSCRIPTEN_RESULT_SUCCESS, ERR_UNAVAILABLE);

Expand All @@ -449,9 +469,6 @@ Error OS_JavaScript::initialize(const VideoMode &p_desired, int p_video_driver,

AudioDriverManager::initialize(p_audio_driver);

RasterizerGLES3::register_config();
RasterizerGLES3::make_current();

print_line("Init VS");

visual_server = memnew(VisualServerRaster());
Expand Down

0 comments on commit acacba3

Please sign in to comment.