@@ -143,16 +143,21 @@ public static void mainHelper(
143
143
runShaderFamily (shaderSet , outputDir , imageGenerator );
144
144
}
145
145
146
- public static int runShaderFamily (IShaderSet shaderSet , File workDir ,
146
+ public static int runShaderFamily (IShaderSet shaderSet , File experimentOutDir ,
147
147
IShaderDispatcher imageGenerator )
148
148
throws ShaderDispatchException , InterruptedException , IOException {
149
149
150
150
int numShadersRun = 0 ;
151
151
152
- IShaderSetExperiment experiment = new LocalShaderSetExperiement (workDir .toString (), shaderSet );
152
+ IShaderSetExperiment experiment =
153
+ new LocalShaderSetExperiement (
154
+ experimentOutDir .toString (),
155
+ shaderSet );
153
156
154
157
if (experiment .getReferenceImage () == null && experiment .getReferenceTextFile () == null ) {
155
- runShader (workDir , FilenameUtils .removeExtension (shaderSet .getReference ().getName ()),
158
+ runShader (
159
+ experimentOutDir ,
160
+ FilenameUtils .removeExtension (shaderSet .getReference ().toString ()),
156
161
imageGenerator ,
157
162
Optional .empty ());
158
163
++numShadersRun ;
@@ -182,8 +187,12 @@ public static int runShaderFamily(IShaderSet shaderSet, File workDir,
182
187
LOGGER .info ("Skipping {} because we already have a result." , variant );
183
188
} else {
184
189
try {
185
- runShader (workDir , FilenameUtils .removeExtension (variant .getName ()), imageGenerator ,
190
+ runShader (
191
+ experimentOutDir ,
192
+ FilenameUtils .removeExtension (variant .toString ()),
193
+ imageGenerator ,
186
194
Optional .of (new ImageData (experiment .getReferenceImage ())));
195
+
187
196
} catch (Exception err ) {
188
197
LOGGER .error ("runShader() raise exception on {}" , variant );
189
198
err .printStackTrace ();
@@ -194,16 +203,19 @@ public static int runShaderFamily(IShaderSet shaderSet, File workDir,
194
203
return numShadersRun ;
195
204
}
196
205
197
- public static ImageJobResult runShader (File workDir , String shaderJobPrefix ,
198
- IShaderDispatcher imageGenerator , Optional <ImageData > referenceImage )
206
+ public static ImageJobResult runShader (
207
+ File outputDir ,
208
+ String shaderJobPrefix ,
209
+ IShaderDispatcher imageGenerator ,
210
+ Optional <ImageData > referenceImage )
199
211
throws ShaderDispatchException , InterruptedException , IOException {
200
212
201
- final File outputImage = new File (workDir , shaderJobPrefix + ".png" );
202
- final File outputText = new File (workDir , shaderJobPrefix + ".txt" );
213
+ final String shaderName = new File (shaderJobPrefix ).getName ();
214
+ final File outputImage = new File (outputDir , shaderName + ".png" );
215
+ final File outputText = new File (outputDir , shaderName + ".txt" );
203
216
204
217
LOGGER .info ("Shader set experiment: {} " , shaderJobPrefix );
205
- ImageJobResult res = imageGenerator .getImage (
206
- Paths .get (workDir .getAbsolutePath (), shaderJobPrefix ).toString (), outputImage , false );
218
+ ImageJobResult res = imageGenerator .getImage (shaderJobPrefix , outputImage , false );
207
219
208
220
if (res .isSetLog ()) {
209
221
FileUtils .writeStringToFile (outputText , res .getLog (), Charset .defaultCharset ());
@@ -216,10 +228,8 @@ public static ImageJobResult runShader(File workDir, String shaderJobPrefix,
216
228
// but also in case of Sanity error after a nondet.
217
229
if (res .isSetPNG () && res .isSetPNG2 ()) {
218
230
// we can dump both images
219
- File outputNondet1 = new File (workDir ,
220
- Paths .get (workDir .getAbsolutePath (), shaderJobPrefix + "_nondet1.png" ).toString ());
221
- File outputNondet2 = new File (workDir ,
222
- Paths .get (workDir .getAbsolutePath (), shaderJobPrefix + "_nondet2.png" ).toString ());
231
+ File outputNondet1 = new File (outputDir , shaderName + "_nondet1.png" );
232
+ File outputNondet2 = new File (outputDir , shaderName + "_nondet2.png" );
223
233
FileUtils .writeByteArrayToFile (outputNondet1 , res .getPNG ());
224
234
FileUtils .writeByteArrayToFile (outputNondet2 , res .getPNG2 ());
225
235
@@ -231,8 +241,7 @@ public static ImageJobResult runShader(File workDir, String shaderJobPrefix,
231
241
new ByteArrayInputStream (res .getPNG ()));
232
242
BufferedImage img2 = ImageIO .read (
233
243
new ByteArrayInputStream (res .getPNG2 ()));
234
- File gifFile = new File (workDir ,
235
- shaderJobPrefix + ".gif" );
244
+ File gifFile = new File (outputDir ,shaderName + ".gif" );
236
245
ImageOutputStream gifOutput = new FileImageOutputStream (gifFile );
237
246
GifSequenceWriter gifWriter = new GifSequenceWriter (gifOutput , img1 .getType (), 500 , true );
238
247
gifWriter .writeToSequence (nondetImg );
@@ -247,7 +256,7 @@ public static ImageJobResult runShader(File workDir, String shaderJobPrefix,
247
256
}
248
257
249
258
// Dump job info in JSON
250
- File outputJson = new File (workDir , shaderJobPrefix + ".info.json" );
259
+ File outputJson = new File (outputDir , shaderName + ".info.json" );
251
260
JsonObject infoJson = makeInfoJson (res , outputImage , referenceImage );
252
261
FileUtils .writeStringToFile (outputJson ,
253
262
JsonHelper .jsonToString (infoJson ), Charset .defaultCharset ());
0 commit comments