diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-10-05 10:06:39 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-10-05 10:06:39 +0200 |
commit | b42aa5ad9d185a5263885755a17dc9d4e93314d5 (patch) | |
tree | 8bf853af39ff5dbb8b9a979cf8682a69da0c1a24 /drivers/gles3/rasterizer_canvas_gles3.cpp | |
parent | bfd78bb917887cfc1fd842ba23570394cad8bedb (diff) | |
parent | 6f88ed73be786e93e60a3c9dd4f9a4127badeba7 (diff) | |
download | redot-engine-b42aa5ad9d185a5263885755a17dc9d4e93314d5.tar.gz |
Merge pull request #81575 from bitsawer/fix_gles_instancing
Fix GLES3 instanced rendering color and custom data defaults
Diffstat (limited to 'drivers/gles3/rasterizer_canvas_gles3.cpp')
-rw-r--r-- | drivers/gles3/rasterizer_canvas_gles3.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gles3/rasterizer_canvas_gles3.cpp b/drivers/gles3/rasterizer_canvas_gles3.cpp index 2894f4164f..fcd3af8d62 100644 --- a/drivers/gles3/rasterizer_canvas_gles3.cpp +++ b/drivers/gles3/rasterizer_canvas_gles3.cpp @@ -1420,6 +1420,13 @@ void RasterizerCanvasGLES3::_render_batch(Light *p_lights, uint32_t p_index) { glEnableVertexAttribArray(5); glVertexAttribIPointer(5, 4, GL_UNSIGNED_INT, instance_stride * sizeof(float), CAST_INT_TO_UCHAR_PTR(instance_color_offset * sizeof(float))); glVertexAttribDivisor(5, 1); + } else { + // Set all default instance color and custom data values to 1.0 or 0.0 using a compressed format. + uint16_t zero = Math::make_half_float(0.0f); + uint16_t one = Math::make_half_float(1.0f); + GLuint default_color = (uint32_t(one) << 16) | one; + GLuint default_custom = (uint32_t(zero) << 16) | zero; + glVertexAttribI4ui(5, default_color, default_color, default_custom, default_custom); } } |