Merge branch 'raysan5:master' into rm-DrawRecLines-offset
This commit is contained in:
commit
ceec5febae
2
.github/workflows/webassembly.yml
vendored
2
.github/workflows/webassembly.yml
vendored
|
|
@ -29,7 +29,7 @@ jobs:
|
||||||
- name: Setup emsdk
|
- name: Setup emsdk
|
||||||
uses: mymindstorm/setup-emsdk@v14
|
uses: mymindstorm/setup-emsdk@v14
|
||||||
with:
|
with:
|
||||||
version: 3.1.54
|
version: 3.1.64
|
||||||
actions-cache-folder: 'emsdk-cache'
|
actions-cache-folder: 'emsdk-cache'
|
||||||
|
|
||||||
- name: Setup Release Version
|
- name: Setup Release Version
|
||||||
|
|
|
||||||
|
|
@ -129,7 +129,7 @@ static void CursorEnterCallback(GLFWwindow *window, int enter);
|
||||||
|
|
||||||
// Emscripten window callback events
|
// Emscripten window callback events
|
||||||
static EM_BOOL EmscriptenFullscreenChangeCallback(int eventType, const EmscriptenFullscreenChangeEvent *event, void *userData);
|
static EM_BOOL EmscriptenFullscreenChangeCallback(int eventType, const EmscriptenFullscreenChangeEvent *event, void *userData);
|
||||||
static EM_BOOL EmscriptenWindowResizedCallback(int eventType, const EmscriptenUiEvent *event, void *userData);
|
// static EM_BOOL EmscriptenWindowResizedCallback(int eventType, const EmscriptenUiEvent *event, void *userData);
|
||||||
static EM_BOOL EmscriptenResizeCallback(int eventType, const EmscriptenUiEvent *event, void *userData);
|
static EM_BOOL EmscriptenResizeCallback(int eventType, const EmscriptenUiEvent *event, void *userData);
|
||||||
|
|
||||||
// Emscripten input callback events
|
// Emscripten input callback events
|
||||||
|
|
@ -981,7 +981,7 @@ void PollInputEvents(void)
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (button != -1) // Check for valid button
|
if (button + 1 != 0) // Check for valid button
|
||||||
{
|
{
|
||||||
if (gamepadState.digitalButton[j] == 1)
|
if (gamepadState.digitalButton[j] == 1)
|
||||||
{
|
{
|
||||||
|
|
@ -1572,12 +1572,12 @@ static EM_BOOL EmscriptenFullscreenChangeCallback(int eventType, const Emscripte
|
||||||
}
|
}
|
||||||
|
|
||||||
// Register window resize event
|
// Register window resize event
|
||||||
static EM_BOOL EmscriptenWindowResizedCallback(int eventType, const EmscriptenUiEvent *event, void *userData)
|
// static EM_BOOL EmscriptenWindowResizedCallback(int eventType, const EmscriptenUiEvent *event, void *userData)
|
||||||
{
|
// {
|
||||||
// TODO: Implement EmscriptenWindowResizedCallback()?
|
// // TODO: Implement EmscriptenWindowResizedCallback()?
|
||||||
|
|
||||||
return 1; // The event was consumed by the callback handler
|
// return 1; // The event was consumed by the callback handler
|
||||||
}
|
// }
|
||||||
|
|
||||||
EM_JS(int, GetWindowInnerWidth, (), { return window.innerWidth; });
|
EM_JS(int, GetWindowInnerWidth, (), { return window.innerWidth; });
|
||||||
EM_JS(int, GetWindowInnerHeight, (), { return window.innerHeight; });
|
EM_JS(int, GetWindowInnerHeight, (), { return window.innerHeight; });
|
||||||
|
|
@ -1593,11 +1593,11 @@ static EM_BOOL EmscriptenResizeCallback(int eventType, const EmscriptenUiEvent *
|
||||||
int width = GetWindowInnerWidth();
|
int width = GetWindowInnerWidth();
|
||||||
int height = GetWindowInnerHeight();
|
int height = GetWindowInnerHeight();
|
||||||
|
|
||||||
if (width < CORE.Window.screenMin.width) width = CORE.Window.screenMin.width;
|
if (width < (int)CORE.Window.screenMin.width) width = CORE.Window.screenMin.width;
|
||||||
else if (width > CORE.Window.screenMax.width && CORE.Window.screenMax.width > 0) width = CORE.Window.screenMax.width;
|
else if (width > (int)CORE.Window.screenMax.width && CORE.Window.screenMax.width > 0) width = CORE.Window.screenMax.width;
|
||||||
|
|
||||||
if (height < CORE.Window.screenMin.height) height = CORE.Window.screenMin.height;
|
if (height < (int)CORE.Window.screenMin.height) height = CORE.Window.screenMin.height;
|
||||||
else if (height > CORE.Window.screenMax.height && CORE.Window.screenMax.height > 0) height = CORE.Window.screenMax.height;
|
else if (height > (int)CORE.Window.screenMax.height && CORE.Window.screenMax.height > 0) height = CORE.Window.screenMax.height;
|
||||||
|
|
||||||
emscripten_set_canvas_element_size("#canvas", width, height);
|
emscripten_set_canvas_element_size("#canvas", width, height);
|
||||||
|
|
||||||
|
|
|
||||||
12
src/rlgl.h
12
src/rlgl.h
|
|
@ -3994,18 +3994,18 @@ unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode)
|
||||||
unsigned int fragmentShaderId = 0;
|
unsigned int fragmentShaderId = 0;
|
||||||
|
|
||||||
// Compile vertex shader (if provided)
|
// Compile vertex shader (if provided)
|
||||||
|
// NOTE: If not vertex shader is provided, use default one
|
||||||
if (vsCode != NULL) vertexShaderId = rlCompileShader(vsCode, GL_VERTEX_SHADER);
|
if (vsCode != NULL) vertexShaderId = rlCompileShader(vsCode, GL_VERTEX_SHADER);
|
||||||
// In case no vertex shader was provided or compilation failed, we use default vertex shader
|
else vertexShaderId = RLGL.State.defaultVShaderId;
|
||||||
if (vertexShaderId == 0) vertexShaderId = RLGL.State.defaultVShaderId;
|
|
||||||
|
|
||||||
// Compile fragment shader (if provided)
|
// Compile fragment shader (if provided)
|
||||||
|
// NOTE: If not vertex shader is provided, use default one
|
||||||
if (fsCode != NULL) fragmentShaderId = rlCompileShader(fsCode, GL_FRAGMENT_SHADER);
|
if (fsCode != NULL) fragmentShaderId = rlCompileShader(fsCode, GL_FRAGMENT_SHADER);
|
||||||
// In case no fragment shader was provided or compilation failed, we use default fragment shader
|
else fragmentShaderId = RLGL.State.defaultFShaderId;
|
||||||
if (fragmentShaderId == 0) fragmentShaderId = RLGL.State.defaultFShaderId;
|
|
||||||
|
|
||||||
// In case vertex and fragment shader are the default ones, no need to recompile, we can just assign the default shader program id
|
// In case vertex and fragment shader are the default ones, no need to recompile, we can just assign the default shader program id
|
||||||
if ((vertexShaderId == RLGL.State.defaultVShaderId) && (fragmentShaderId == RLGL.State.defaultFShaderId)) id = RLGL.State.defaultShaderId;
|
if ((vertexShaderId == RLGL.State.defaultVShaderId) && (fragmentShaderId == RLGL.State.defaultFShaderId)) id = RLGL.State.defaultShaderId;
|
||||||
else
|
else if ((vertexShaderId > 0) && (fragmentShaderId > 0))
|
||||||
{
|
{
|
||||||
// One of or both shader are new, we need to compile a new shader program
|
// One of or both shader are new, we need to compile a new shader program
|
||||||
id = rlLoadShaderProgram(vertexShaderId, fragmentShaderId);
|
id = rlLoadShaderProgram(vertexShaderId, fragmentShaderId);
|
||||||
|
|
@ -4100,6 +4100,8 @@ unsigned int rlCompileShader(const char *shaderCode, int type)
|
||||||
TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Compile error: %s", shader, log);
|
TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Compile error: %s", shader, log);
|
||||||
RL_FREE(log);
|
RL_FREE(log);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
shader = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -5741,11 +5741,11 @@ static bool GetPoseAtTimeGLTF(cgltf_interpolation_type interpolationType, cgltf_
|
||||||
cgltf_accessor_read_float(output, 3*keyframe+1, tmp, 4);
|
cgltf_accessor_read_float(output, 3*keyframe+1, tmp, 4);
|
||||||
Vector4 v1 = {tmp[0], tmp[1], tmp[2], tmp[3]};
|
Vector4 v1 = {tmp[0], tmp[1], tmp[2], tmp[3]};
|
||||||
cgltf_accessor_read_float(output, 3*keyframe+2, tmp, 4);
|
cgltf_accessor_read_float(output, 3*keyframe+2, tmp, 4);
|
||||||
Vector4 outTangent1 = {tmp[0], tmp[1], tmp[2]};
|
Vector4 outTangent1 = {tmp[0], tmp[1], tmp[2], 0.0f};
|
||||||
cgltf_accessor_read_float(output, 3*(keyframe+1)+1, tmp, 4);
|
cgltf_accessor_read_float(output, 3*(keyframe+1)+1, tmp, 4);
|
||||||
Vector4 v2 = {tmp[0], tmp[1], tmp[2], tmp[3]};
|
Vector4 v2 = {tmp[0], tmp[1], tmp[2], tmp[3]};
|
||||||
cgltf_accessor_read_float(output, 3*(keyframe+1), tmp, 4);
|
cgltf_accessor_read_float(output, 3*(keyframe+1), tmp, 4);
|
||||||
Vector4 inTangent2 = {tmp[0], tmp[1], tmp[2]};
|
Vector4 inTangent2 = {tmp[0], tmp[1], tmp[2], 0.0f};
|
||||||
Vector4 *r = data;
|
Vector4 *r = data;
|
||||||
|
|
||||||
v1 = QuaternionNormalize(v1);
|
v1 = QuaternionNormalize(v1);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user