void Level::Draw(Application &App) { if(m_exit) { return; } // Clear screen App.Clear(); // Draw the panels into the buffer m_gui.Draw(App); App.Draw(sf::Shape::Rectangle(0, 50.0f, 860.0f, 580.0f, sf::Color(0, 0, 0, 130))); // If we have a menu pop up, draw it if(m_active_menu) { // Tints the background panels using a black transparent rectangle that covers the whole screen App.Draw(sf::Shape::Rectangle(0, 0, App.GetWidth(), App.GetHeight(), sf::Color(0, 0, 0, 230))); // draw active menu on top of the tinted panels m_active_menu->Draw(App); } // Finally, display the buffered frame on screen App.Display(); }