diff options
author | nklbdev <nklbdev@gmail.com> | 2023-06-30 17:17:37 +0500 |
---|---|---|
committer | nklbdev <nklbdev@gmail.com> | 2023-07-01 15:15:48 +0500 |
commit | c022f52f11e2df5ab051f3ad201efb33b2fe2ade (patch) | |
tree | 0315ddc414ebbccd8c8f2e93f669aa31f1a19d02 /servers/rendering_server.cpp | |
parent | 46424488edc341b65467ee7fd3ac423e4d49ad34 (diff) | |
download | redot-engine-c022f52f11e2df5ab051f3ad201efb33b2fe2ade.tar.gz |
Fix wrong type casting for octahedral tangents
Diffstat (limited to 'servers/rendering_server.cpp')
-rw-r--r-- | servers/rendering_server.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/servers/rendering_server.cpp b/servers/rendering_server.cpp index 0c5c263265..4c6b765157 100644 --- a/servers/rendering_server.cpp +++ b/servers/rendering_server.cpp @@ -402,9 +402,9 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint32_t p_format, uint const Vector3 *src = array.ptr(); for (int i = 0; i < p_vertex_array_len; i++) { Vector2 res = src[i].octahedron_encode(); - int16_t vector[2] = { - (int16_t)CLAMP(res.x * 65535, 0, 65535), - (int16_t)CLAMP(res.y * 65535, 0, 65535), + uint16_t vector[2] = { + (uint16_t)CLAMP(res.x * 65535, 0, 65535), + (uint16_t)CLAMP(res.y * 65535, 0, 65535), }; memcpy(&vw[p_offsets[ai] + i * p_vertex_stride], vector, 4); @@ -422,9 +422,9 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint32_t p_format, uint for (int i = 0; i < p_vertex_array_len; i++) { const Vector3 src(src_ptr[i * 4 + 0], src_ptr[i * 4 + 1], src_ptr[i * 4 + 2]); Vector2 res = src.octahedron_tangent_encode(src_ptr[i * 4 + 3]); - int16_t vector[2] = { - (int16_t)CLAMP(res.x * 65535, 0, 65535), - (int16_t)CLAMP(res.y * 65535, 0, 65535), + uint16_t vector[2] = { + (uint16_t)CLAMP(res.x * 65535, 0, 65535), + (uint16_t)CLAMP(res.y * 65535, 0, 65535), }; memcpy(&vw[p_offsets[ai] + i * p_vertex_stride], vector, 4); @@ -437,9 +437,9 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint32_t p_format, uint for (int i = 0; i < p_vertex_array_len; i++) { const Vector3 src(src_ptr[i * 4 + 0], src_ptr[i * 4 + 1], src_ptr[i * 4 + 2]); Vector2 res = src.octahedron_tangent_encode(src_ptr[i * 4 + 3]); - int16_t vector[2] = { - (int16_t)CLAMP(res.x * 65535, 0, 65535), - (int16_t)CLAMP(res.y * 65535, 0, 65535), + uint16_t vector[2] = { + (uint16_t)CLAMP(res.x * 65535, 0, 65535), + (uint16_t)CLAMP(res.y * 65535, 0, 65535), }; memcpy(&vw[p_offsets[ai] + i * p_vertex_stride], vector, 4); |