Fix splash screen glitches when launching by double-clicking (or drag-dropping) a file
This commit is contained in:
@@ -237,14 +237,17 @@ void plop_fancy_startup() {
|
||||
|
||||
int delay = 220;
|
||||
if(show_startup_splash){
|
||||
mainPtr.clear(sf::Color::Black);
|
||||
intro_from.offset((whole_window.right - intro_from.right) / 2,(whole_window.bottom - intro_from.bottom) / 2);
|
||||
pict_to_draw.loadFromImage(*ResMgr::get<ImageRsrc>("startsplash"));
|
||||
from_rect = rectangle(pict_to_draw);
|
||||
rect_draw_some_item(pict_to_draw, from_rect, mainPtr, intro_from);
|
||||
for(int k = 0; k < 5; k++) {
|
||||
mainPtr.clear(sf::Color::Black);
|
||||
intro_from.offset((whole_window.right - intro_from.right) / 2,(whole_window.bottom - intro_from.bottom) / 2);
|
||||
pict_to_draw.loadFromImage(*ResMgr::get<ImageRsrc>("startsplash"));
|
||||
from_rect = rectangle(pict_to_draw);
|
||||
rect_draw_some_item(pict_to_draw, from_rect, mainPtr, intro_from);
|
||||
mainPtr.display();
|
||||
mainPtr.pollEvent(event);
|
||||
}
|
||||
} else delay = 60;
|
||||
delay = time_in_ticks(delay).asMilliseconds();
|
||||
mainPtr.display();
|
||||
sf::Clock timer;
|
||||
if(show_startup_splash) play_sound(-22);
|
||||
|
||||
|
@@ -316,17 +316,21 @@ void Set_up_win () {
|
||||
}
|
||||
|
||||
void run_startup_g() {
|
||||
sf::Event event;
|
||||
rectangle pict_rect = {0,0,480,640}, dest_rect;
|
||||
sf::Texture pict_to_draw;
|
||||
dest_rect = pict_rect;
|
||||
|
||||
dest_rect.offset(-25,-25);
|
||||
pict_to_draw.loadFromImage(*ResMgr::get<ImageRsrc>("edsplash"));
|
||||
rect_draw_some_item(pict_to_draw, pict_rect, mainPtr, dest_rect, sf::BlendAlpha);
|
||||
mainPtr.display();
|
||||
for(int i = 0; i < 10; i++) {
|
||||
mainPtr.clear(sf::Color::Black);
|
||||
rect_draw_some_item(pict_to_draw, pict_rect, mainPtr, dest_rect, sf::BlendAlpha);
|
||||
mainPtr.display();
|
||||
mainPtr.pollEvent(event);
|
||||
}
|
||||
play_sound(-95);
|
||||
sf::Clock timer;
|
||||
sf::Event event;
|
||||
while(timer.getElapsedTime() < time_in_ticks(120)) {
|
||||
mainPtr.pollEvent(event);
|
||||
if(event.type == sf::Event::KeyPressed || event.type == sf::Event::MouseButtonPressed)
|
||||
|
Reference in New Issue
Block a user