8,452
edits
Paradox-01 (talk | contribs) mNo edit summary |
Paradox-01 (talk | contribs) mNo edit summary |
||
Line 177: | Line 177: | ||
Therefore let's use [https://docs.microsoft.com/de-de/windows/win32/procthread/creating-processes CreateProcess]. | Therefore let's use [https://docs.microsoft.com/de-de/windows/win32/procthread/creating-processes CreateProcess]. | ||
#include <windows.h> | #include <windows.h> // CreateProcess | ||
#include "BPY_extern_run.h" // run py scripts | |||
char processFile[255]; | char processFile[255]; | ||
char fn[255]; // py file (the more python, the less C) | |||
STARTUPINFO si; | STARTUPINFO si; | ||
PROCESS_INFORMATION pi; | PROCESS_INFORMATION pi; | ||
Line 211: | Line 214: | ||
// Wait until child process exits. | // Wait until child process exits. | ||
// | // wait for onisplit to convert files ? | ||
WaitForSingleObject(pi.hProcess, INFINITE); | |||
// Close process and thread handles. | // Close process and thread handles. | ||
CloseHandle(pi.hProcess); | CloseHandle(pi.hProcess); | ||
CloseHandle(pi.hThread); | CloseHandle(pi.hThread); | ||
strcpy(fn, "C:\\blender-git\\oni.py"); | |||
// C (context) looks like some crazy voodoo, this shouldn't even work right now, but it does | |||
// for Blender specific stuff a context is needed otherwise the program will crash | |||
// https://wiki.blender.org/wiki/Source/Architecture/Context | |||
bool ok; | |||
ok = BPY_run_filepath(C, fn, NULL); | |||
printf("file was processed\n"); | printf("file was processed\n"); | ||
Line 225: | Line 235: | ||
1) replace notepad with own exe (writing more code in C is a pain) | 1) replace notepad with own exe (writing more code in C is a pain) | ||
2) research path reading in C (get folder/file/extension) so own exe can use relative path when it is | 2) research path reading in C (get folder/file/extension) so own exe can use relative path when it is placed alongside Blender | ||
3) research Blender import and let the exe decide what py script to use (for example ONCC*.oni -> import_ONCC.py) | 3) research Blender import and let the exe decide what py script to use (for example ONCC*.oni -> import_ONCC.py) | ||
blender --background --python myscript.py | <s>blender --background --python myscript.py</s> | ||
https://blender.stackexchange.com/questions/1365/how-can-i-run-blender-from-command-line-or-a-python-script-without-opening-a-gui | https://blender.stackexchange.com/questions/1365/how-can-i-run-blender-from-command-line-or-a-python-script-without-opening-a-gui | ||
:: Edit: Then again ... '''Looks like [https://stackoverflow.com/questions/36360876/how-do-i-run-a-python-script-using-an-already-running-blender Blender cannot accept new inputs?]''' <span style="font-size:16pt;">ರ_ರ .................. (ノಠ益ಠ)ノ彡┻━┻</span> | :: Edit: Then again ... '''Looks like [https://stackoverflow.com/questions/36360876/how-do-i-run-a-python-script-using-an-already-running-blender Blender cannot accept new inputs?]''' <span style="font-size:16pt;">ರ_ರ .................. (ノಠ益ಠ)ノ彡┻━┻</span> | ||
::: '''That would mean we either have to bite the sour apple and write much more C or do less with a workaround.''' | ::: '''That would mean we either have to bite the sour apple and write much more C <s>or do less with a workaround</s>.''' | ||
::: Possibilities: | ::: <s>Possibilities:</s> | ||
::: 1) Blender Server, '''[https://blender.stackexchange.com/questions/41533/how-to-remotely-run-a-python-script-in-an-existing-blender-instance sockets]'''. | ::: <s>1) Blender Server, '''[https://blender.stackexchange.com/questions/41533/how-to-remotely-run-a-python-script-in-an-existing-blender-instance sockets]'''.</s> | ||
::: 2) Add a '''new start arg''' and let Blender run as '''[https://www.youtube.com/watch?v=_i9HkIT0Atg single-instance application]''' | ::: <s>2) Add a '''new start arg''' and let Blender run as '''[https://www.youtube.com/watch?v=_i9HkIT0Atg single-instance application]'''</s> | ||
C:\blender-git\blender\source\creator | C:\blender-git\blender\source\creator | ||
Line 249: | Line 252: | ||
creator.c | creator.c | ||
creator_args.c | creator_args.c | ||
::: <s>3) A '''timer''' that checks every second for '''[https://github.com/zeffii/bpy_externall new commands inside a file]'''.</s> | |||
4) Deciding how to distribute this Blender variant. | |||
Long-term goals could be to include Delano's addon and provide a way to automate the updating of Blender with these extras. |
edits