This is the Main Loop:
void Manager::Run()
{
while (m_window->m_renderWindow.isOpen())
{
sf::Event evnt;
while (m_window->m_renderWindow.pollEvent(evnt));
{
if (evnt.type == sf::Event::Closed)
m_window->CloseWindowes();
}
m_window->MessagePump();
ProcessMessages();
Update();
Draw();
}
}
This is the Draw funtion:
void Manager::Draw()
{
m_window->m_renderWindow.clear(sf::Color::Black);
//Drive container.second only has a pointer to class EgClass*
DriveContainer::iterator itr = m_DriveContainer.begin();
for (; itr != m_DriveContainer.end(); )
{
itr->second->Draw(m_window->m_renderWindow);
++itr;
}
m_window->m_renderWindow.display();
}
this is the draw function of the instance:
void EgClass::Draw(sf::RenderWindow& renderWindow)
{
renderWindow.draw(m_spriteSD);
renderWindow.draw(m_circleShape);
renderWindow.draw(m_text);
}
and this is a thread launched when i create the instance
void EgClass::Run()
{
m_circleShape.setFillColor(sf::Color::Blue);
while (m_state != L"Done")
{
m_state = L"Done";
sf::sleep(sf::seconds(15));
}
m_circleShape.setFillColor(sf::Color::Green);
}