diff --git a/src/main/java/com/sheepit/client/Job.java b/src/main/java/com/sheepit/client/Job.java index 5704fb1..d1d6a8e 100644 --- a/src/main/java/com/sheepit/client/Job.java +++ b/src/main/java/com/sheepit/client/Job.java @@ -55,6 +55,7 @@ import java.util.regex.Pattern; @Data public class Job { public static final String UPDATE_METHOD_BY_REMAINING_TIME = "remainingtime"; public static final String UPDATE_METHOD_BY_TILE = "by_tile"; + public static final String POST_LOAD_NOTIFICATION = "POST_LOAD_SCRIPT_loaded"; public static final int SHOW_BASE_ICON = -1; @@ -234,7 +235,7 @@ import java.util.regex.Pattern; command.add("-P"); try { - disableViewportScript = File.createTempFile("optimize_viewport_script_", ".py", configuration.getWorkingDirectory()); + disableViewportScript = File.createTempFile("pre_load_script_", ".py", configuration.getWorkingDirectory()); File file = new File(disableViewportScript.getAbsolutePath()); FileWriter fwriter; fwriter = new FileWriter(file); @@ -242,17 +243,21 @@ import java.util.regex.Pattern; PrintWriter out = new PrintWriter(fwriter); out.write("import bpy"); out.write("\n"); + out.write("import sys"); + out.write("\n"); out.write("from bpy.app.handlers import persistent"); out.write("\n"); out.write("@persistent"); out.write("\n"); - out.write("def hide_stuff(dummy):"); + out.write("def hide_stuff(hide_dummy):"); out.write("\n"); - out.write("#Hide collections in the viewport"); + out.write(" print('PRE_LOAD_SCRIPT_hide_viewport')"); + out.write("\n"); + out.write(" #Hide collections in the viewport"); out.write("\n"); out.write(" for col in bpy.data.collections:"); out.write("\n"); - out.write("\n col.hide_viewport = True"); + out.write(" col.hide_viewport = True"); out.write("\n"); out.write(" for obj in bpy.data.objects:"); out.write("\n"); @@ -266,6 +271,8 @@ import java.util.regex.Pattern; out.write("\n"); out.write(" mod.show_viewport = False"); out.write("\n"); + out.write(" sys.stdout.flush()"); + out.write("\n"); out.write("bpy.app.handlers.version_update.append(hide_stuff)"); out.write("\n"); out.close(); @@ -286,7 +293,7 @@ import java.util.regex.Pattern; command.add("-P"); try { - script_file = File.createTempFile("script_", ".py", configuration.getWorkingDirectory()); + script_file = File.createTempFile("post_load_script_", ".py", configuration.getWorkingDirectory()); File file = new File(script_file.getAbsolutePath()); FileWriter txt; txt = new FileWriter(file); @@ -294,6 +301,12 @@ import java.util.regex.Pattern; PrintWriter out = new PrintWriter(txt); out.write(getScript()); out.write("\n"); + out.write("import sys"); + out.write("\n"); + out.write("print('" + POST_LOAD_NOTIFICATION + "')"); + out.write("\n"); + out.write("sys.stdout.flush()"); + out.write("\n"); out.write(core_script); // GPU part out.write("\n"); // GPU part out.close(); @@ -374,7 +387,7 @@ import java.util.regex.Pattern; int progress = -1; Pattern progressPattern = Pattern.compile(" (Rendered|Path Tracing Tile|Rendering|Sample) (\\d+)\\s?\\/\\s?(\\d+)( Tiles| samples|,)*"); - Pattern beginScenePrepPattern = Pattern.compile("Read blend:"); + Pattern beginScenePrepPattern = Pattern.compile(POST_LOAD_NOTIFICATION); Pattern beginPostProcessingPattern = Pattern.compile("^Fra:\\d* \\w*(.)* \\| (Compositing|Denoising)"); Instant timeStamp = null; Duration phaseDuration; //We divide the job into 3 phases: preparation, rendering, compositing