SFML community forums

Help => Window => Topic started by: Jungletoe on August 21, 2013, 04:50:27 pm

Title: LShift and RSHIFT causes choppy framerate?
Post by: Jungletoe on August 21, 2013, 04:50:27 pm
When running my app, whenever I press LSHIFT or RSHIFT, regardless of whether I am processing it or not within my event loop, the framerate becomes choppy-- randomly freezing for tenths of seconds and then speeding back up.

I'm using SFML 2.1

int main ( int argc, char *argv[] )
{
        // Create a new render-window
        sf::RenderWindow window(sf::VideoMode(800, 600), "AAAA");
        window.setFramerateLimit(60);

        sf::Clock clock;
    float lastTime = 0;

        sf::Texture texture;
        texture.loadFromFile("dot.png");
        sf::Sprite sprite;
        sprite.setTexture(texture);
        sprite.setPosition(500, 400);

        sf::Int32 direction = rand()%4+1;

        // The main loop
        while (window.isOpen())
        {
                // Event handling
                sf::Event Event;
                while (window.pollEvent(Event))
                {
                        if (Event.type == sf::Event::Closed)
                                window.close();
                }

                //      Data
                if(direction == 1)
                        sprite.setPosition(sprite.getPosition().x+1, sprite.getPosition().y);
                if(direction == 2)
                        sprite.setPosition(sprite.getPosition().x, sprite.getPosition().y+1);
                if(direction == 3)
                        sprite.setPosition(sprite.getPosition().x-1, sprite.getPosition().y);
                if(direction == 4)
                        sprite.setPosition(sprite.getPosition().x, sprite.getPosition().y-1);

                if(sprite.getPosition().x < 0 || sprite.getPosition().y < 0 || sprite.getPosition().x + 50 > window.getSize().x || sprite.getPosition().y + 50> window.getSize().y)
                {
                        sf::Int32 origDir = direction;
                        while(origDir == direction)
                                direction = rand()%4+1;
                }

                //      Clear & Draw window
                window.clear();
                window.draw(sprite);
                window.display();

                //      FPS output
                float currentTime = clock.getElapsedTime().asSeconds();
        float fps = 1.f / (currentTime - lastTime);
        lastTime = currentTime;

                std::cout << fps << "\n";
        }

        return 0;
}


Is there any reason for this? Any fix?

Thanks!
Title: Re: LShift and RSHIFT causes choppy framerate?
Post by: eXpl0it3r on August 21, 2013, 05:17:15 pm
I don't have that issue here...

What OS are you using? What compiler are you using? What graphics/keyboard/mouse driver are you using?
Title: Re: LShift and RSHIFT causes choppy framerate?
Post by: Jungletoe on August 21, 2013, 06:07:28 pm
Windows 7, VC++, Logitech K350 (http://www.adorama.com/LOK350WK.html)

My artist has the same keyboard and OS. Ill get him to test it when he returns from work.

I'd also like to note that it's not very noticeable unless you have a full game behind it (although the example I provided does replicate it to some degree). Oddly enough, games like Minecraft give me no problems when I press shift, which is why I think SFML is the problem.

I tested with all other keys and there are no problems.
Title: Re: LShift and RSHIFT causes choppy framerate?
Post by: eXpl0it3r on August 21, 2013, 07:39:37 pm
Windows 7, VC++, Logitech K350 (http://www.adorama.com/LOK350WK.html)
Graphics card?

I'd also like to note that it's not very noticeable unless you have a full game behind it (although the example I provided does replicate it to some degree). Oddly enough, games like Minecraft give me no problems when I press shift, which is why I think SFML is the problem.
Well you might then have to adjust the measurement or the displaying of that, because currently I just see some running numbers and no noticeable difference when pressing shift or any other key. It just floats around 57-60 FPS...
Title: Re: LShift and RSHIFT causes choppy framerate?
Post by: Jungletoe on August 21, 2013, 10:35:18 pm
You can just add more sprites, although I still doubt you have the issue.

Intel(R) HD Graphics Family
Title: Re: LShift and RSHIFT causes choppy framerate?
Post by: Jungletoe on August 21, 2013, 11:06:29 pm
I just talked to my pixel artist and he doesn't have the problem. He's running win7 and uses my same keyboard. Not sure what his graphics card is.