mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Make MutexQueue use jsemaphore for signaling
This commit is contained in:
parent
10fdbf7375
commit
8b0b857eaa
13 changed files with 248 additions and 99 deletions
32
src/game.cpp
32
src/game.cpp
|
@ -813,7 +813,7 @@ public:
|
|||
services->setVertexShaderConstant("animationTimer", &animation_timer_f, 1);
|
||||
|
||||
LocalPlayer* player = m_client->getEnv().getLocalPlayer();
|
||||
v3f eye_position = player->getEyePosition();
|
||||
v3f eye_position = player->getEyePosition();
|
||||
services->setPixelShaderConstant("eyePosition", (irr::f32*)&eye_position, 3);
|
||||
services->setVertexShaderConstant("eyePosition", (irr::f32*)&eye_position, 3);
|
||||
|
||||
|
@ -1876,12 +1876,12 @@ void the_game(
|
|||
}
|
||||
else if(input->wasKeyDown(getKeySetting("keymap_screenshot")))
|
||||
{
|
||||
irr::video::IImage* const image = driver->createScreenShot();
|
||||
if (image) {
|
||||
irr::c8 filename[256];
|
||||
snprintf(filename, 256, "%s" DIR_DELIM "screenshot_%u.png",
|
||||
irr::video::IImage* const image = driver->createScreenShot();
|
||||
if (image) {
|
||||
irr::c8 filename[256];
|
||||
snprintf(filename, 256, "%s" DIR_DELIM "screenshot_%u.png",
|
||||
g_settings->get("screenshot_path").c_str(),
|
||||
device->getTimer()->getRealTime());
|
||||
device->getTimer()->getRealTime());
|
||||
if (driver->writeImageToFile(image, filename)) {
|
||||
std::wstringstream sstr;
|
||||
sstr<<"Saved screenshot to '"<<filename<<"'";
|
||||
|
@ -1891,8 +1891,8 @@ void the_game(
|
|||
} else{
|
||||
infostream<<"Failed to save screenshot '"<<filename<<"'"<<std::endl;
|
||||
}
|
||||
image->drop();
|
||||
}
|
||||
image->drop();
|
||||
}
|
||||
}
|
||||
else if(input->wasKeyDown(getKeySetting("keymap_toggle_hud")))
|
||||
{
|
||||
|
@ -2263,7 +2263,7 @@ void the_game(
|
|||
new MainRespawnInitiator(
|
||||
&respawn_menu_active, &client);
|
||||
GUIDeathScreen *menu =
|
||||
new GUIDeathScreen(guienv, guiroot, -1,
|
||||
new GUIDeathScreen(guienv, guiroot, -1,
|
||||
&g_menumgr, respawner);
|
||||
menu->drop();
|
||||
|
||||
|
@ -2755,7 +2755,7 @@ void the_game(
|
|||
|
||||
// Sign special case, at least until formspec is properly implemented.
|
||||
// Deprecated?
|
||||
if(meta && meta->getString("formspec") == "hack:sign_text_input"
|
||||
if(meta && meta->getString("formspec") == "hack:sign_text_input"
|
||||
&& !random_input
|
||||
&& !input->isKeyDown(getKeySetting("keymap_sneak")))
|
||||
{
|
||||
|
@ -3222,7 +3222,7 @@ void the_game(
|
|||
|
||||
driver->getOverrideMaterial().Material.ColorMask = irr::video::ECP_RED;
|
||||
driver->getOverrideMaterial().EnableFlags = irr::video::EMF_COLOR_MASK;
|
||||
driver->getOverrideMaterial().EnablePasses = irr::scene::ESNRP_SKY_BOX +
|
||||
driver->getOverrideMaterial().EnablePasses = irr::scene::ESNRP_SKY_BOX +
|
||||
irr::scene::ESNRP_SOLID +
|
||||
irr::scene::ESNRP_TRANSPARENT +
|
||||
irr::scene::ESNRP_TRANSPARENT_EFFECT +
|
||||
|
@ -3433,6 +3433,16 @@ void the_game(
|
|||
chat_backend.addMessage(L"", L"# Disconnected.");
|
||||
chat_backend.addMessage(L"", L"");
|
||||
|
||||
client.Stop();
|
||||
|
||||
//force answer all texture and shader jobs (TODO return empty values)
|
||||
|
||||
while(!client.isShutdown()) {
|
||||
tsrc->processQueue();
|
||||
shsrc->processQueue();
|
||||
sleep_ms(100);
|
||||
}
|
||||
|
||||
// Client scope (client is destructed before destructing *def and tsrc)
|
||||
}while(0);
|
||||
} // try-catch
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue