diff options
author | clayjohn <claynjohn@gmail.com> | 2023-02-03 10:34:30 -0800 |
---|---|---|
committer | clayjohn <claynjohn@gmail.com> | 2023-02-03 10:34:30 -0800 |
commit | bf0cc8f52aa40e4859806032aeee8e13971d511b (patch) | |
tree | adbb943a1d6defcfdc398ca9232ef4970648a298 /drivers/gles3/rasterizer_canvas_gles3.cpp | |
parent | a16b0fec4093b22ef5f14c1a4eb9363c890ab06d (diff) |
Ignore instance color and instance custom_data when not used in the OpenGL renderer
Diffstat (limited to 'drivers/gles3/rasterizer_canvas_gles3.cpp')
-rw-r--r-- | drivers/gles3/rasterizer_canvas_gles3.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gles3/rasterizer_canvas_gles3.cpp b/drivers/gles3/rasterizer_canvas_gles3.cpp index d08f7ba7b6..eb1b2f84b4 100644 --- a/drivers/gles3/rasterizer_canvas_gles3.cpp +++ b/drivers/gles3/rasterizer_canvas_gles3.cpp @@ -1128,6 +1128,12 @@ void RasterizerCanvasGLES3::_record_item_commands(const Item *p_item, RID p_rend state.canvas_instance_batches[state.current_batch_index].tex = mm->texture; state.canvas_instance_batches[state.current_batch_index].shader_variant = CanvasShaderGLES3::MODE_INSTANCED; + if (GLES3::MeshStorage::get_singleton()->multimesh_uses_colors(mm->multimesh)) { + state.instance_data_array[r_index].flags |= FLAGS_INSTANCING_HAS_COLORS; + } + if (GLES3::MeshStorage::get_singleton()->multimesh_uses_custom_data(mm->multimesh)) { + state.instance_data_array[r_index].flags |= FLAGS_INSTANCING_HAS_CUSTOM_DATA; + } } else if (c->type == Item::Command::TYPE_PARTICLES) { GLES3::ParticlesStorage *particles_storage = GLES3::ParticlesStorage::get_singleton(); GLES3::TextureStorage *texture_storage = GLES3::TextureStorage::get_singleton(); |