Fix rlSetUniformSampler (#3759)

Fix rlSetUniformSampler not setting sampler uniform if the same texture was already passed to a different sampler uniform
This commit is contained in:
veins1 2024-01-28 17:45:19 +05:00 committed by GitHub
parent 40f3df5b86
commit f4add5f10d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -4135,7 +4135,14 @@ void rlSetUniformSampler(int locIndex, unsigned int textureId)
{
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
// Check if texture is already active
for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++) if (RLGL.State.activeTextureId[i] == textureId) return;
for (int i = 0; i < RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS; i++)
{
if (RLGL.State.activeTextureId[i] == textureId)
{
glUniform1i(locIndex, 1 + i);
return;
}
}
// Register a new active texture for the internal batch system
// NOTE: Default texture is always activated as GL_TEXTURE0