aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/Makefile9
-rw-r--r--src/Makefile2
-rw-r--r--src/core.c3
-rw-r--r--src/external/cgltf.h4
-rw-r--r--src/external/miniaudio.h2
-rw-r--r--src/rlgl.h12
-rw-r--r--templates/web_shell/shell.html10
7 files changed, 27 insertions, 15 deletions
diff --git a/examples/Makefile b/examples/Makefile
index 2ceb3f7d..a1d45ef6 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -25,7 +25,7 @@
# Define required raylib variables
PROJECT_NAME ?= raylib_examples
-RAYLIB_VERSION ?= 2.0.0
+RAYLIB_VERSION ?= 2.5.0
RAYLIB_API_VERSION ?= 1
RAYLIB_PATH ?= ..
@@ -118,8 +118,8 @@ endif
ifeq ($(PLATFORM),PLATFORM_WEB)
# Emscripten required variables
EMSDK_PATH = C:/emsdk
- EMSCRIPTEN_VERSION = 1.38.21
- CLANG_VERSION = e1.38.21_64bit
+ EMSCRIPTEN_VERSION = 1.38.30
+ CLANG_VERSION = e1.38.30_64bit
PYTHON_VERSION = 2.7.13.1_64bit\python-2.7.13.amd64
NODE_VERSION = 8.9.1_64bit
export PATH = $(EMSDK_PATH);$(EMSDK_PATH)\clang\$(CLANG_VERSION);$(EMSDK_PATH)\node\$(NODE_VERSION)\bin;$(EMSDK_PATH)\python\$(PYTHON_VERSION);$(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION);C:\raylib\MinGW\bin:$$(PATH)
@@ -249,7 +249,8 @@ ifeq ($(PLATFORM),PLATFORM_WEB)
# -s EMTERPRETIFY_ASYNC=1 # support synchronous loops by emterpreter
# --profiling # include information for code profiling
# --preload-file resources # specify a resources folder for data compilation
- CFLAGS += -Os -s USE_GLFW=3 -s ASSERTIONS=1 -s WASM=1 -s EMTERPRETIFY=1 -s EMTERPRETIFY_ASYNC=1
+ CFLAGS += -Os -s USE_GLFW=3 -s ASSERTIONS=2 -s WASM=1
+ # -Os -s WASM=1 -s EMTERPRETIFY=1 -s EMTERPRETIFY_ASYNC=1
# NOTE: Simple raylib examples are compiled to be interpreter by emterpreter, that way,
# we can compile same code for ALL platforms with no change required, but, working on bigger
diff --git a/src/Makefile b/src/Makefile
index 997f041c..ea09aa9f 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -42,7 +42,7 @@
.PHONY: all clean install uninstall
# Define required raylib variables
-RAYLIB_VERSION = 2.4.0
+RAYLIB_VERSION = 2.5.0
RAYLIB_API_VERSION = 2
# See below for alternatives.
diff --git a/src/core.c b/src/core.c
index 844994d0..5ec3b76a 100644
--- a/src/core.c
+++ b/src/core.c
@@ -3172,7 +3172,8 @@ static void PollInputEvents(void)
// NOTE: GLFW3 joystick functionality not available in web
#if defined(PLATFORM_WEB)
// Get number of gamepads connected
- int numGamepads = emscripten_get_num_gamepads();
+ int numGamepads = 0;
+ if (emscripten_sample_gamepad_data() == EMSCRIPTEN_RESULT_SUCCESS) numGamepads = emscripten_get_num_gamepads();
for (int i = 0; (i < numGamepads) && (i < MAX_GAMEPADS); i++)
{
diff --git a/src/external/cgltf.h b/src/external/cgltf.h
index 4302e77b..85d5c985 100644
--- a/src/external/cgltf.h
+++ b/src/external/cgltf.h
@@ -369,7 +369,7 @@ typedef struct cgltf_light {
cgltf_float spot_outer_cone_angle;
} cgltf_light;
-typedef struct cgltf_node {
+struct cgltf_node {
char* name;
cgltf_node* parent;
cgltf_node** children;
@@ -388,7 +388,7 @@ typedef struct cgltf_node {
cgltf_float rotation[4];
cgltf_float scale[3];
cgltf_float matrix[16];
-} cgltf_node;
+};
typedef struct cgltf_scene {
char* name;
diff --git a/src/external/miniaudio.h b/src/external/miniaudio.h
index a5646c71..dae605f2 100644
--- a/src/external/miniaudio.h
+++ b/src/external/miniaudio.h
@@ -21915,8 +21915,6 @@ extern "C" {
#endif
EMSCRIPTEN_KEEPALIVE void ma_device_process_pcm_frames_capture__webaudio(ma_device* pDevice, int frameCount, float* pFrames)
{
- ma_result result;
-
if (pDevice->type == ma_device_type_duplex) {
ma_device__handle_duplex_callback_capture(pDevice, (ma_uint32)frameCount, pFrames, &pDevice->webaudio.duplexRB);
} else {
diff --git a/src/rlgl.h b/src/rlgl.h
index dd2929ca..71a1dc4b 100644
--- a/src/rlgl.h
+++ b/src/rlgl.h
@@ -1559,7 +1559,19 @@ void rlglInit(int width, int height)
glBindVertexArray = (PFNGLBINDVERTEXARRAYOESPROC)eglGetProcAddress("glBindVertexArrayOES");
glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSOESPROC)eglGetProcAddress("glDeleteVertexArraysOES");
//glIsVertexArray = (PFNGLISVERTEXARRAYOESPROC)eglGetProcAddress("glIsVertexArrayOES"); // NOTE: Fails in WebGL, omitted
+
+ if (glGenVertexArrays == NULL) printf("glGenVertexArrays is NULL.\n"); // WEB: ISSUE FOUND! ...but why?
+ if (glBindVertexArray == NULL) printf("glBindVertexArray is NULL.\n"); // WEB: ISSUE FOUND! ...but why?
}
+
+ // TODO: HACK REVIEW!
+ // For some reason on raylib 2.5, VAO usage breaks the build
+ // error seems related to function pointers but I can not get detailed info...
+ // Avoiding VAO usage is the only solution for now... :(
+ // Ref: https://emscripten.org/docs/porting/guidelines/function_pointer_issues.html
+ #if defined(PLATFORM_WEB)
+ vaoSupported = false;
+ #endif
// Check NPOT textures support
// NOTE: Only check on OpenGL ES, OpenGL 3.3 has NPOT textures full support as core feature
diff --git a/templates/web_shell/shell.html b/templates/web_shell/shell.html
index f158c432..2e891461 100644
--- a/templates/web_shell/shell.html
+++ b/templates/web_shell/shell.html
@@ -178,14 +178,14 @@
}
</script>
<script type='text/javascript'>
- var statusElement = document.getElementById('status');
- var progressElement = document.getElementById('progress');
- var spinnerElement = document.getElementById('spinner');
+ var statusElement = document.querySelector('#status');
+ var progressElement = document.querySelector('#progress');
+ var spinnerElement = document.querySelector('#spinner');
var Module = {
preRun: [],
postRun: [],
print: (function() {
- var element = document.getElementById('output');
+ var element = document.querySelector('#output');
if (element) element.value = ''; // clear browser cache
return function(text) {
if (arguments.length > 1) text = Array.prototype.slice.call(arguments).join(' ');
@@ -210,7 +210,7 @@
}
},
canvas: (function() {
- var canvas = document.getElementById('canvas');
+ var canvas = document.querySelector('#canvas');
// As a default initial behavior, pop up an alert when webgl context is lost. To make your
// application robust, you may want to override this behavior before shipping!
// See http://www.khronos.org/registry/webgl/specs/latest/1.0/#5.15.2