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

[SFML] Tworzenie sf::Event

Ostatnio zmodyfikowano 2011-07-04 04:47
Autor Wiadomość
akwes
Temat założony przez niniejszego użytkownika
[SFML] Tworzenie sf::Event
» 2011-07-03 22:58:54
czytam sobie kurs i tam jest taki kod:
C/C++
#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow oknoAplikacji( sf::VideoMode( 800, 600, 32 ), "Kurs SFML - http://cpp0x.pl" );
    while( oknoAplikacji.IsOpened() )
    {
        sf::Event zdarzenie;
        while( oknoAplikacji.GetEvent( zdarzenie ) )
        {
            if( zdarzenie.Type == sf::Event::Closed )
                 oknoAplikacji.Close();
           
            if( zdarzenie.Type == sf::Event::KeyPressed && zdarzenie.Key.Code == sf::Key::Escape )
                 oknoAplikacji.Close();
           
            if( zdarzenie.Type == sf::Event::MouseButtonPressed && zdarzenie.MouseButton.Button == sf::Mouse::Middle )
                 oknoAplikacji.Close();
           
        }
        oknoAplikacji.Clear( sf::Color( 255, 0, 0 ) );
        oknoAplikacji.Display();
    }
    return 0;
}

Czy tworzenie obiektu sf::Event za każdym obiegiem pętli while jest czymś dyktowane? Czy można ją umieścić pod instrukcją tworzenia obiektu RenderWindow?
P-35258
WiecznyWem
» 2011-07-03 23:03:11
Można robić tak i tak :D Osobiście wolę trzymać tuż przy sf::RenderWindow. Tak czy siak linijkę później jest nadana tej zmiennej wartość.

Eee, a nie prościej Ci było to po prostu sprawdzić?

P-35259
akwes
Temat założony przez niniejszego użytkownika
» 2011-07-03 23:14:21
Nie chodzi mi o to czy się skompiluje ale jak zachowuje się kompilator. Czy warto zwracać uwagę na to że przez 1000 obiegów pętli, kompilator 1000 razy będzie marnował czas na niszczenie starego obiektu (po wyjściu zakresu ważności) i 1000 razy marnował czas na tworzeniu nowego obiektu. Czy kompilator to jakoś zoptymalizuje w procesie optymalizacji kodu, który wykonuje albo czy czas jest ten tak znikomy że nie ma się tym nawet co przejmować? Po prostu wychodzę z założenia że jeżeli od początku dbam jak mogę o kod to jest lepszy, niż jak od razu robię taki bałagan jak pod koniec :P Lubie dopieszczać kod.

P-35261
DejaVu
» 2011-07-04 04:16:35
sf::Event jest tak lekką klasą, że choćbyś tworzył ją 500tys razy na sekundę to byś tego nie odczuł :) To są operacje na stosie, więc alokacje takie są nieodczuwalne dla programu - inaczej sprawa by się miała z new/delete :)
P-35268
akwes
Temat założony przez niniejszego użytkownika
» 2011-07-04 04:47:44
Dobrze wiedzieć, bo miałem właśnie obawy przed chwilą czy wysyłać Event do własnej klasy czy jakoś inaczej rozwiązać.


// edit
faktycznie, dopiero przy 50000000 ilości konstruowań FPS spadł do 10 : )
P-35270
« 1 »
  Strona 1 z 1