Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML 3.0.2] Shadery a pamięć

Ostatnio zmodyfikowano wczoraj o godz. 21:15
Autor Wiadomość
tBane
Temat założony przez niniejszego użytkownika
[SFML 3.0.2] Shadery a pamięć
» 2025-11-05 21:00:25
Cześć. Mam takie pytanie. Czy jest sens trzymać shadery w pamięci, czy z każdą klatką generować je na nowo?

C/C++
sf::Sprite sprite(( _state == ButtonState::Idle ) ? * _texture->_texture
    : * _hoverTexture->_texture );
sprite.setPosition( sf::Vector2f( _rect.position ) );
sf::RenderStates rs;
sf::Shader sh;
sh.loadFromMemory( palette_shader_source, sf::Shader::Type::Fragment );

sh.setUniform( "iTime", float( currentTime.asSeconds() ) );

const sf::Texture & tex =( _state == ButtonState::Idle ) ? * _texture->_texture
    : * _hoverTexture->_texture;
sf::IntRect r = sprite.getTextureRect(); // px w atlasie
sf::Vector2u ts = tex.getSize(); // rozmiar atlasu

sf::Glsl::Vec4 texRectUV(
float( r.position.x ) / ts.x,
float( r.position.y ) / ts.y,
float( r.position.x + r.size.x ) / ts.x,
float( r.position.y + r.size.y ) / ts.y
);

sh.setUniform( "texRectUV", texRectUV );
rs.shader = & sh;
window->draw( sprite, rs );
P-183396
skovv
» 2025-11-05 21:15:44
Nie znam się na sfml, pisałem w nim lata temu - ale po co robić coś co klatkę skoro można zainicjować przy starcie i używać, myślę, że będzie to szybsze - nie przejmuj się pamięcią, przecież nowe komputery nie padną przez kilka kb/mb więcej
P-183397
« 1 »
  Strona 1 z 1