mirror of https://github.com/AxioDL/metaforce.git
Windows fixes
This commit is contained in:
parent
75847c67d3
commit
d7c5dff1f0
|
@ -1,4 +1,4 @@
|
||||||
import bpy, sys, os, re, struct
|
import bpy, sys, os, re, struct, traceback
|
||||||
|
|
||||||
ARGS_PATTERN = re.compile(r'''(?:"([^"]+)"|'([^']+)'|(\S+))''')
|
ARGS_PATTERN = re.compile(r'''(?:"([^"]+)"|'([^']+)'|(\S+))''')
|
||||||
|
|
||||||
|
@ -16,10 +16,11 @@ if sys.platform == "win32":
|
||||||
readfd = msvcrt.open_osfhandle(readfd, os.O_RDONLY | os.O_BINARY)
|
readfd = msvcrt.open_osfhandle(readfd, os.O_RDONLY | os.O_BINARY)
|
||||||
writefd = msvcrt.open_osfhandle(writefd, os.O_WRONLY | os.O_BINARY)
|
writefd = msvcrt.open_osfhandle(writefd, os.O_WRONLY | os.O_BINARY)
|
||||||
err_path = "/Temp"
|
err_path = "/Temp"
|
||||||
|
if 'TEMP' in os.environ:
|
||||||
|
err_path = os.environ['TEMP']
|
||||||
else:
|
else:
|
||||||
err_path = "/tmp"
|
err_path = "/tmp"
|
||||||
|
if 'TMPDIR' in os.environ:
|
||||||
if 'TMPDIR' in os.environ:
|
|
||||||
err_path = os.environ['TMPDIR']
|
err_path = os.environ['TMPDIR']
|
||||||
|
|
||||||
err_path += "/hecl_%016X.derp" % os.getpid()
|
err_path += "/hecl_%016X.derp" % os.getpid()
|
||||||
|
@ -476,7 +477,6 @@ try:
|
||||||
hecl.command(cmdargs, writepipestr, writepipebuf)
|
hecl.command(cmdargs, writepipestr, writepipebuf)
|
||||||
|
|
||||||
except Exception:
|
except Exception:
|
||||||
import traceback
|
|
||||||
fout = open(err_path, 'w')
|
fout = open(err_path, 'w')
|
||||||
traceback.print_exc(file=fout)
|
traceback.print_exc(file=fout)
|
||||||
fout.close()
|
fout.close()
|
||||||
|
|
|
@ -50,9 +50,8 @@ public:
|
||||||
Frame
|
Frame
|
||||||
};
|
};
|
||||||
private:
|
private:
|
||||||
std::atomic_bool m_lock;
|
std::atomic_bool m_lock = false;
|
||||||
#if _WIN32
|
#if _WIN32
|
||||||
HANDLE m_blenderProc = 0;
|
|
||||||
PROCESS_INFORMATION m_pinfo = {};
|
PROCESS_INFORMATION m_pinfo = {};
|
||||||
std::thread m_consoleThread;
|
std::thread m_consoleThread;
|
||||||
bool m_consoleThreadRunning = true;
|
bool m_consoleThreadRunning = true;
|
||||||
|
|
|
@ -183,7 +183,7 @@ void BlenderConnection::_blenderDied()
|
||||||
std::unique_ptr<char[]> buf(new char[len+1]);
|
std::unique_ptr<char[]> buf(new char[len+1]);
|
||||||
memset(buf.get(), 0, len+1);
|
memset(buf.get(), 0, len+1);
|
||||||
fread(buf.get(), 1, len, errFp);
|
fread(buf.get(), 1, len, errFp);
|
||||||
BlenderLog.report(logvisor::Fatal, "\n%s", buf.get());
|
BlenderLog.report(logvisor::Fatal, "\n%.*s", int(len), buf.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
BlenderLog.report(logvisor::Fatal, "Blender Exception");
|
BlenderLog.report(logvisor::Fatal, "Blender Exception");
|
||||||
|
@ -401,7 +401,8 @@ BlenderConnection::BlenderConnection(int verbosityLevel)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Stash error path and unlink existing file */
|
/* Stash error path and unlink existing file */
|
||||||
m_errPath = hecl::SystemString(TMPDIR) + hecl::SysFormat(_S("/hecl_%016llX.derp"), (unsigned long long)m_blenderProc);
|
m_errPath = hecl::SystemString(TMPDIR) + hecl::SysFormat(_S("/hecl_%016llX.derp"),
|
||||||
|
(unsigned long long)m_pinfo.dwProcessId);
|
||||||
hecl::Unlink(m_errPath.c_str());
|
hecl::Unlink(m_errPath.c_str());
|
||||||
|
|
||||||
/* Handle first response */
|
/* Handle first response */
|
||||||
|
|
Loading…
Reference in New Issue