void BloomEffect::apply(const sf::RenderTexture& input, sf::RenderTarget& output) { prepareTextures(input.getSize()); filterBright(input, mBrightnessTexture); downsample(mBrightnessTexture, mFirstPassTextures[0]); blurMultipass(mFirstPassTextures); downsample(mFirstPassTextures[0], mSecondPassTextures[0]); blurMultipass(mSecondPassTextures); add(mFirstPassTextures[0], mSecondPassTextures[0], mFirstPassTextures[1]); mFirstPassTextures[1].display(); add(input, mFirstPassTextures[1], output); }
//public void PostBloom::apply(const sf::RenderTexture& src, sf::RenderTarget& dest) { initTextures(src.getSize()); filterBright(src, m_brightnessTexture); downSample(m_brightnessTexture, m_firstPassTextures[0]); blurMultipass(m_firstPassTextures); downSample(m_firstPassTextures[0], m_secondPassTextures[0]); blurMultipass(m_secondPassTextures); add(m_firstPassTextures[0], m_secondPassTextures[0], m_firstPassTextures[1]); m_firstPassTextures[1].display(); add(src, m_firstPassTextures[1], dest); }