fix: Textures, uv coordinates and light source not updating properly. #1872
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem description
The only time textures would update was through the file picker. Once UV coordinates were used, disabling them didn't have any effect because the vertex array didn't invalidate the corresponding buffer array. When
shouldUpdate
is true, the light source needs to know as well, otherwise it will set the location at 0,0.Implementation description
Textures were fixed by creating a member variable that holds the file name of the texture used in the last model rendering.
Instead of invalidating buffer arrays it is much simpler to define a default UV coordinate set for the case when no UV is specified. if a texture is not present then the values of UV will not be used. If there is a texture it must be a minimum of 1 pixel in size. So we choose the UV coordinates so that every vertex gets assigned the color at the 0,0 coordinate of the texture.
When
shouldUpdate
is on, we also turnshouldUpdateLightSource
on.Also included are some formatting changes that are purely aesthetic.