Fixed some crashes

This commit is contained in:
Deve 2018-08-15 23:53:14 +02:00
parent b5e4275f87
commit ecc5aaf869
2 changed files with 17 additions and 1 deletions

View File

@ -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;

View File

@ -357,7 +357,7 @@ bool SeparateProcess::createChildProcess(const std::string& exe,
argv.push_back(const_cast<char*>(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;
}