diff --git a/src/utils/progress_bar_android.cpp b/src/utils/progress_bar_android.cpp index c6f7a85ba..dd49f95aa 100644 --- a/src/utils/progress_bar_android.cpp +++ b/src/utils/progress_bar_android.cpp @@ -18,6 +18,7 @@ #include "config/user_config.hpp" #include "graphics/irr_driver.hpp" +#include "modes/profile_world.hpp" #include "utils/log.hpp" #include "utils/progress_bar_android.hpp" @@ -48,6 +49,9 @@ ProgressBarAndroid::~ProgressBarAndroid() bool ProgressBarAndroid::compileShaders() { #ifndef SERVER_ONLY + if (ProfileWorld::isNoGraphics()) + return false; + const GLchar* vsh = "precision mediump float;" "attribute vec2 position;" @@ -123,6 +127,9 @@ bool ProgressBarAndroid::compileShaders() void ProgressBarAndroid::deleteShaders() { #ifndef SERVER_ONLY + if (ProfileWorld::isNoGraphics()) + return; + glDeleteShader(m_vertex_shader); glDeleteShader(m_fragment_shader); glDeleteProgram(m_program); @@ -132,6 +139,9 @@ void ProgressBarAndroid::deleteShaders() void ProgressBarAndroid::init() { #ifndef SERVER_ONLY + if (ProfileWorld::isNoGraphics()) + return; + SIrrlichtCreationParameters params; params.DriverType = video::EDT_OGLES2; params.Bits = 32; @@ -175,6 +185,9 @@ void ProgressBarAndroid::init() void ProgressBarAndroid::close() { #ifndef SERVER_ONLY + if (ProfileWorld::isNoGraphics()) + return; + glDisableVertexAttribArray(m_position); glBindBuffer(GL_ARRAY_BUFFER, 0); glUseProgram(0); @@ -197,6 +210,9 @@ void ProgressBarAndroid::close() void ProgressBarAndroid::draw(float value) { #ifndef SERVER_ONLY + if (ProfileWorld::isNoGraphics()) + return; + if (!m_initialized || m_close_event_received) return; diff --git a/src/utils/separate_process.cpp b/src/utils/separate_process.cpp index a72bd6623..9aac19a5a 100644 --- a/src/utils/separate_process.cpp +++ b/src/utils/separate_process.cpp @@ -357,7 +357,7 @@ bool SeparateProcess::createChildProcess(const std::string& exe, argv.push_back(const_cast(parent_pid.c_str())); Log::info("SeparateProcess", "Starting main()"); - std::thread child_process(main_proc, argv.size(), &argv[0]); + m_child_thread = std::thread(main_proc, argv.size(), &argv[0]); return true; }