diff options
author | lawnjelly <lawnjelly@gmail.com> | 2019-06-13 11:23:07 +0100 |
---|---|---|
committer | lawnjelly <lawnjelly@gmail.com> | 2019-06-18 09:42:07 +0100 |
commit | e36e9fdb1c94d3fb27ce1b4b776322cbf3e67ee7 (patch) | |
tree | 0cbe64675760198242b62c720b4e0cc59a551d7b /core/math | |
parent | 8c11f883d9c96b08d2dd4b6bc72caf0c9d9543c5 (diff) |
Fixes crash with rigged meshes on some OpenGLES2 devices
Non-tools OpenGLES2 devices that use the USE_SKELETON_SOFTWARE path (i.e. do not support float texture) depend on surface->data being set containing the bone IDs and weights (rasterizer_scene_gles2.cpp, line 1456, RasterizerSceneGLES2::_setup_geometry). However currently if TOOLS_ENABLED is not defined, surface->data is not stored in main memory in rasterizer_storage_gles2.cpp. This causes a crash in rasterizer_scene_gles2.cpp when a rigged object comes into view.
This fix addresses the specific case of skinned objects when USE_SKELETON_SOFTWARE is active, and stores a copy of the bone data, as is done when TOOLS_ENABLED is defined. This fixes the crash by allowing the same mechanism as on desktop, without adding the memory overhead of storing all vertex data where not required.
Fixes #28298
Diffstat (limited to 'core/math')
0 files changed, 0 insertions, 0 deletions