Optimize color computation in prepare_uinodes (#7311)
# Objective Speed up `prepare_uinodes`. The color `[f32; 4]` is being computed separately for every vertex in the UI, even though the color is the same for all 6 verticies. ## Solution Avoid recomputing the color and cache it for all 6 verticies. ## Performance On `many_buttons`, this shaved off 33% of the time in `prepare_uinodes` (7.67ms -> 5.09ms) on my local machine. 
This commit is contained in:
parent
a85b740f24
commit
7a176ae0a8
@ -523,11 +523,12 @@ pub fn prepare_uinodes(
|
||||
uvs = [uvs[3], uvs[2], uvs[1], uvs[0]];
|
||||
}
|
||||
|
||||
let color = extracted_uinode.background_color.as_linear_rgba_f32();
|
||||
for i in QUAD_INDICES {
|
||||
ui_meta.vertices.push(UiVertex {
|
||||
position: positions_clipped[i].into(),
|
||||
uv: uvs[i].into(),
|
||||
color: extracted_uinode.background_color.as_linear_rgba_f32(),
|
||||
color,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user