SFML community forums

Help => Graphics => Topic started by: korczurekk on October 18, 2016, 08:39:18 pm

Title: Deprecated setParameter (sf::Shader) equivalent
Post by: korczurekk on October 18, 2016, 08:39:18 pm
Hi,
I've updated my SFML to 2.4 and realised that sf::Shader::setParameter is deprecated. I tried to remove it from my code:
transform.rotate(36.f * deltaTime.asSeconds(), {0.f, 0.f});
shader.setParameter("matrix", transform);
 
And wrote that:
transform.rotate(36.f * deltaTime.asSeconds(), {0.f, 0.f});
shader.setUniform("matrix", transform.getMatrix());
 
But nothing is being drawn. I mean, background is cleared normally, but transformed vertices areā€¦ somewhere.

What can be the problem?
Title: Re: Deprecated setParameter (sf::Shader) equivalent
Post by: Laurent on October 18, 2016, 09:15:37 pm
Should be

shader.setUniform("matrix", sf::Glsl::Mat4(transform));

However your code calls an overload of setUniform with a const float* argument, and I can't find which one is chosen -- but most likely the wrong one if it doesn't work like before. This could be an issue of the new API.
Title: Re: Deprecated setParameter (sf::Shader) equivalent
Post by: korczurekk on October 18, 2016, 10:25:08 pm
Thanks, it works well now. :)