beastapi/beastjob.h Source File

beastjob.h
Go to the documentation of this file.
1 /*
2 Copyright 2014 Autodesk, Inc. All rights reserved.
3 Use of this software is subject to the terms of the Autodesk license agreement
4 provided at the time of installation or download, or which otherwise
5 accompanies this software in either electronic or hard copy form.
6 */
7 
8 
12 #ifndef BEASTJOB_H
13 #define BEASTJOB_H
14 #include "beastapitypes.h"
15 
19 typedef enum {
24 
29 
34 
39 
44 
49 
53  ILB_JS_OTHER_ERROR = 0x10000001
54 
55 } ILBJobStatus;
56 
60 typedef enum {
65 
70 
72 
76 typedef enum {
81 
86 
93 
97 typedef enum {
102 
108 
115 
119 typedef enum {
124 
129 
134 
139 
144 
149 
154 
163 
170 
171 } ILBUpdateType;
172 
176 typedef enum {
181 
188 
192 typedef enum {
197 
203 
209 
210 #ifdef __cplusplus
211 extern "C" {
212 #endif // __cplusplus
213 
222 ILB_DLL_FUNCTION ILBStatus ILBCreateJob(ILBManagerHandle beastManager,
223  ILBConstString uniqueName,
224  ILBSceneHandle scene,
225  ILBConstString jobXML,
226  ILBJobHandle* job);
227 
238 ILB_DLL_FUNCTION ILBStatus ILBCreateErnstJob(ILBManagerHandle beastManager,
239  ILBConstString uniqueName,
240  ILBSceneHandle scene,
241  ILBConstString jobXML,
242  ILBJobHandle* job);
243 
252 ILB_DLL_FUNCTION ILBStatus ILBCreateLiveErnstJob(ILBManagerHandle beastManager,
253  ILBConstString uniqueName,
254  ILBSceneHandle scene,
255  ILBJobHandle* job);
256 
263 ILB_DLL_FUNCTION ILBStatus ILBCreateUVJob(ILBManagerHandle beastManager,
264  ILBConstString uniqueName,
265  ILBJobHandle* job);
266 
273 ILB_DLL_FUNCTION ILBStatus ILBGetJobUpdate(ILBJobHandle job,
274  ILBBool* hasUpdate,
275  ILBJobUpdateHandle* updateHandle);
276 
282 ILB_DLL_FUNCTION ILBStatus ILBGetJobUpdateType(ILBJobUpdateHandle update,
283  ILBUpdateType* updateType);
284 
289 ILB_DLL_FUNCTION ILBStatus ILBDestroyUpdate(ILBJobUpdateHandle update);
290 
296 ILB_DLL_FUNCTION ILBStatus ILBGetUpdateLightSource(ILBJobUpdateHandle update,
297  ILBLightHandle* light);
298 
304 ILB_DLL_FUNCTION ILBStatus ILBGetUpdateSceneInfo(ILBJobUpdateHandle update,
305  ILBSceneInfoHandle* sceneInfo);
306 
312 ILB_DLL_FUNCTION ILBStatus ILBGetUpdateCamera(ILBJobUpdateHandle update,
313  ILBCameraHandle* camera);
314 
321  ILBTargetEntityHandle* targetEntity);
322 
330 
338 
339 
344 ILB_DLL_FUNCTION ILBStatus ILBDestroyJob(ILBJobHandle job);
345 
352 ILB_DLL_FUNCTION ILBStatus ILBSetJobOutputPath(ILBJobHandle job, ILBConstString path);
353 
360 ILB_DLL_FUNCTION ILBStatus ILBSetJobLocalProcessingThreads(ILBJobHandle job, int numLocalProcessingThreads);
361 
368 ILB_DLL_FUNCTION ILBStatus ILBStartJob(ILBJobHandle job, ILBShowResults showResults, ILBDistributionType distribution);
369 
375 ILB_DLL_FUNCTION ILBStatus ILBWaitJobDone(ILBJobHandle job, int32 timeout);
376 
382 ILB_DLL_FUNCTION ILBStatus ILBIsJobRunning(ILBJobHandle job, ILBBool* result);
383 
391 ILB_DLL_FUNCTION ILBStatus ILBIsJobCompleted(ILBJobHandle job, ILBBool* result);
392 
398 ILB_DLL_FUNCTION ILBStatus ILBGetJobResult(ILBJobHandle job, ILBJobStatus* status);
399 
404 ILB_DLL_FUNCTION ILBStatus ILBCancelJob(ILBJobHandle job);
405 
413 ILB_DLL_FUNCTION ILBStatus ILBGetJobProgress(ILBJobHandle job, ILBStringHandle* jobName, int32* progress);
414 
421 ILB_DLL_FUNCTION ILBStatus ILBJobHasNewProgress(ILBJobHandle job, ILBBool* newActivity, ILBBool* newProgress);
422 
433 ILB_DLL_FUNCTION ILBStatus ILBExecuteBeast(ILBManagerHandle bm,
434  ILBJobHandle job,
435  ILBShowResults showResults,
436  ILBDistributionType distribution,
437  ILBJobStatus* status);
438 
444 ILB_DLL_FUNCTION ILBStatus ILBSetErnstDirectIllumination(ILBJobHandle job, float illumination);
445 
451 ILB_DLL_FUNCTION ILBStatus ILBSetErnstIndirectIllumination(ILBJobHandle job, float illumination);
452 
459 ILB_DLL_FUNCTION ILBStatus ILBSetErnstVarianceThreshold(ILBJobHandle job, float threshold);
460 
466 ILB_DLL_FUNCTION ILBStatus ILBSetErnstDisplayGamma(ILBJobHandle job, float displayGamma);
467 
474 ILB_DLL_FUNCTION ILBStatus ILBSetErnstGIDepth(ILBJobHandle job, int minDepth, int maxDepth);
475 
483 
490 ILB_DLL_FUNCTION ILBStatus ILBSetErnstGIVarianceLimit(ILBJobHandle job, float vl);
491 
498 ILB_DLL_FUNCTION ILBStatus ILBSetErnstGIDiffuseBoost(ILBJobHandle job, float boost);
499 
506 ILB_DLL_FUNCTION ILBStatus ILBSetErnstGIEmissiveScale(ILBJobHandle job, float scale);
507 
515 
525 ILB_DLL_FUNCTION ILBStatus ILBSetJobRenderQuality(ILBJobHandle job, float quality);
526 
535 ILB_DLL_FUNCTION ILBStatus ILBSetJobRenderSamples(ILBJobHandle job, int minSamples, int maxSamples, float varianceThreshold);
536 
543 ILB_DLL_FUNCTION ILBStatus ILBSetJobRenderDepth(ILBJobHandle job, int minDepth, int maxDepth);
544 
551 
552 #ifdef __cplusplus
553 }
554 #endif // __cplusplus
555 
556 #endif//BEASTJOB_H
Specifies an update camera frame buffer from a Live Ernst job.
Definition: beastjob.h:162
ILBStatus ILBCreateUVJob(ILBManagerHandle beastManager, ILBConstString uniqueName, ILBJobHandle *job)
Creates an UV job.
Handle for Beast scene information node Intentionally hidden implementation.
Definition: beastapitypes.h:415
ILBStatus ILBSetErnstVarianceThreshold(ILBJobHandle job, float threshold)
Sets the variance threshold in a Live Ernst job.
ILBStatus ILBGetUpdateInvalidateFramebuffer(ILBJobUpdateHandle update, ILBTargetEntityHandle *te)
Get the target entity of an invalidated frame buffer update.
Global information about the scene.
Definition: beastjob.h:138
Error parsing the config files.
Definition: beastjob.h:43
ILBErnstBakingModeType
Different baking modes for a Live Ernst session.
Definition: beastjob.h:176
Bake all targets in the scene, prioritized by the areas with the most variance.
Definition: beastjob.h:186
ILBDistributionType
Sets how beast should render distributed.
Definition: beastjob.h:97
ILBStatus ILBJobHasNewProgress(ILBJobHandle job, ILBBool *newActivity, ILBBool *newProgress)
Checks if the progress of a Job has been updated since the last time ILBGetJobProgress was called...
ILBStatus ILBSetErnstGIVarianceLimit(ILBJobHandle job, float vl)
Sets the variance limit in a Live Ernst job.
This was a triumph! I'm making a note here; Huge Success!
Definition: beastjob.h:23
ILBStatus ILBGetUpdateLightSource(ILBJobUpdateHandle update, ILBLightHandle *light)
Get an updated light source.
This header is the base for getting platform consistent types for the Beast API.
ILBStatus ILBCreateJob(ILBManagerHandle beastManager, ILBConstString uniqueName, ILBSceneHandle scene, ILBConstString jobXML, ILBJobHandle *job)
Creates a Beast job.
Other Error.
Definition: beastjob.h:53
ILBJobStatus
Status codes for Beast API calls.
Definition: beastjob.h:19
ILBStatus ILBSetErnstDisplayGamma(ILBJobHandle job, float displayGamma)
Sets the display gamma for the Ernst editor.
ILBShowResults
Sets how to handle the Beast window when rendering.
Definition: beastjob.h:76
const ILBCharType * ILBConstString
Beast api const string type.
Definition: beastapitypes.h:245
Handle for Beast cameras Intentionally hidden implementation.
Definition: beastapitypes.h:429
Handle for Beast jobs Intentionally hidden implementation.
Definition: beastapitypes.h:457
ILBStatus ILBGetJobProgress(ILBJobHandle job, ILBStringHandle *jobName, int32 *progress)
Gets the current status of a job.
ILBStatus ILBSetErnstIndirectIllumination(ILBJobHandle job, float illumination)
Sets the amount of indirect illumination to use in a Live Ernst job.
ILBStatus ILBSetErnstGIEmissiveScale(ILBJobHandle job, float scale)
Sets the GI emissive scale in a Live Ernst job.
ILBUpdateType
Different types of updates which can come from Ernst.
Definition: beastjob.h:119
ILBStatus ILBExecuteBeast(ILBManagerHandle bm, ILBJobHandle job, ILBShowResults showResults, ILBDistributionType distribution, ILBJobStatus *status)
Convenience function to execute a Beast job.
Specifies a generated light map from a Live Ernst job.
Definition: beastjob.h:153
Handle for updates from Ernst jobs Intentionally hidden implementation.
Definition: beastapitypes.h:464
Specifies an update to a previously existing light source.
Definition: beastjob.h:128
Show the render window / progress view and close it when the rendering is done.
Definition: beastjob.h:85
ILBStatus ILBGetUpdateFramebuffer(ILBJobUpdateHandle update, ILBFramebufferHandle *fb)
Get an updated frame buffer.
ILBStatus ILBGetUpdateSceneInfo(ILBJobUpdateHandle update, ILBSceneInfoHandle *sceneInfo)
Get an updated scene info node.
Pause a render without.
Definition: beastjob.h:69
Enable rendering.
Definition: beastjob.h:64
Render distributed if possible, otherwise fallback on local rendering.
Definition: beastjob.h:107
All caustic light paths allowed.
Definition: beastjob.h:207
ILBStatus ILBSetJobOutputPath(ILBJobHandle job, ILBConstString path)
Sets the output directory for the job.
ILBStatus ILBGetUpdateTargetEntity(ILBJobUpdateHandle update, ILBTargetEntityHandle *targetEntity)
Get an updated target entity.
ILBStatus ILBSetJobLocalProcessingThreads(ILBJobHandle job, int numLocalProcessingThreads)
Sets the number of processing threads on the local submitting machine.
Job was aborted by external means.
Definition: beastjob.h:28
Beast crashed, sorry.
Definition: beastjob.h:48
Specifies an update to a previously existing camera.
Definition: beastjob.h:143
ILBStatus ILBSetJobRenderSamples(ILBJobHandle job, int minSamples, int maxSamples, float varianceThreshold)
Explicitly sets the sampling settings to use for a job.
ILBStatus ILBStartJob(ILBJobHandle job, ILBShowResults showResults, ILBDistributionType distribution)
Starts a job.
Message that the lighting setup of a scene has changed and that the specified target does no longer c...
Definition: beastjob.h:169
Beast does not have a valid license.
Definition: beastjob.h:33
ILBStatus ILBSetErnstGIDiffuseBoost(ILBJobHandle job, float boost)
Sets the GI diffuse boost in a Live Ernst job.
ILBStatus ILBSetCausticsMode(ILBJobHandle job, ILBCausticsModeType mode)
Enables or disables caustics in physical rendering.
Force a distributed render, fails if distribution is not available.
Definition: beastjob.h:113
ILBStatus ILBIsJobCompleted(ILBJobHandle job, ILBBool *result)
Checks if the job is completed.
ILBStatus ILBGetJobResult(ILBJobHandle job, ILBJobStatus *status)
Returns the result of the job as a JobStatus.
ILBStatus ILBSetErnstGIDepth(ILBJobHandle job, int minDepth, int maxDepth)
Sets the GI depth in a Live Ernst job.
Error parsing the command line.
Definition: beastjob.h:38
Specifies that a light sources has been deleted in Ernst.
Definition: beastjob.h:133
ILBStatus ILBIsJobRunning(ILBJobHandle job, ILBBool *result)
Checks if the job is running.
ILBStatus ILBCreateErnstJob(ILBManagerHandle beastManager, ILBConstString uniqueName, ILBSceneHandle scene, ILBConstString jobXML, ILBJobHandle *job)
Creates an Ernst job.
No caustics at all.
Definition: beastjob.h:196
Specifies vertex lighting from a Live Ernst job.
Definition: beastjob.h:158
Force a local render.
Definition: beastjob.h:101
Don't display the render window / progress view.
Definition: beastjob.h:80
Caustics with one diffuse interaction before all specular interactions are allowed.
Definition: beastjob.h:202
ILBCausticsModeType
Controls the type of caustics to include in physical rendering (both Ernst and Beast) ...
Definition: beastjob.h:192
Handle for Beast target entities Intentionally hidden implementation.
Definition: beastapitypes.h:493
ILBStatus ILBGetJobUpdateType(ILBJobUpdateHandle update, ILBUpdateType *updateType)
Gets the type of update.
Only bake what the camera sees.
Definition: beastjob.h:180
Handle for Beast light sources Intentionally hidden implementation.
Definition: beastapitypes.h:436
ILBStatus ILBSetJobRenderDepth(ILBJobHandle job, int minDepth, int maxDepth)
Sets the minimum and maximum number of light bounces to use for rendering.
Handle for Beast managers Intentionally hidden implementation.
ILBStatus ILBCancelJob(ILBJobHandle job)
Cancels a running job.
ILBStatus ILBDestroyUpdate(ILBJobUpdateHandle update)
Destroys a job update.
ILBStatus ILBCreateLiveErnstJob(ILBManagerHandle beastManager, ILBConstString uniqueName, ILBSceneHandle scene, ILBJobHandle *job)
Creates a Live Ernst job.
Show the render window and keep it open until the user closes it or the job is destroyed.
Definition: beastjob.h:91
int32 ILBBool
Bool type with a well defined size to avoid compatibility-problems.
Definition: beastapitypes.h:284
ILBStatus ILBSetErnstRunningState(ILBJobHandle job, ILBErnstRunningState state)
Sets the running state of a Live Ernst job.
ILBStatus ILBSetJobRenderQuality(ILBJobHandle job, float quality)
Sets the render quality to use for a job.
ILBStatus ILBWaitJobDone(ILBJobHandle job, int32 timeout)
Waits until a job is done or until there is progress updates.
Handle for Beast framebuffers Intentionally hidden implementation.
Definition: beastapitypes.h:485
Specifies an update to a previously existing target entity.
Definition: beastjob.h:148
ILBErnstRunningState
The different states for live job.
Definition: beastjob.h:60
ILBStatus ILBSetErnstGIBakingMode(ILBJobHandle job, ILBErnstBakingModeType mode)
Sets the GI baking mode in a Live Ernst job.
Handle for Beast scenes Intentionally hidden implementation.
Definition: beastapitypes.h:408
ILBStatus ILBGetJobUpdate(ILBJobHandle job, ILBBool *hasUpdate, ILBJobUpdateHandle *updateHandle)
Checks if a job has a new update and retrieves it.
ILBStatus
Status codes for Beast API calls.
Definition: beastapitypes.h:153
Specifies a new light source created in Ernst.
Definition: beastjob.h:123
ILBStatus ILBGetUpdateCamera(ILBJobUpdateHandle update, ILBCameraHandle *camera)
Get an updated camera.
ILBStatus ILBSetErnstDirectIllumination(ILBJobHandle job, float illumination)
Sets the amount of direct illumination to use in a Live Ernst job.
Handle for Beast strings Intentionally hidden implementation.
Definition: beastapitypes.h:471
ILBStatus ILBDestroyJob(ILBJobHandle job)
Destroys a job.