TEMERITY

us.temerity.pipeline.plugin.MRayShaderAction.v2_2_1
Class MRayShaderAction

java.lang.Object
  extended by us.temerity.pipeline.Named
      extended by us.temerity.pipeline.PluginID
          extended by us.temerity.pipeline.BasePlugin
              extended by us.temerity.pipeline.BaseAction
                  extended by us.temerity.pipeline.plugin.CommonActionUtils
                      extended by us.temerity.pipeline.plugin.PythonActionUtils
                          extended by us.temerity.pipeline.plugin.MRayShaderAction.v2_2_1.MRayShaderAction
All Implemented Interfaces:
Serializable, Cloneable, Comparable<PluginID>, Glueable

public class MRayShaderAction
extends PythonActionUtils

Compiles C source files to generate a Mental Ray shader DSO.

Compiles the shader source file (.c) which is the single member of the primary file sequence of one of the source nodes into native dynamic library (.so, .dll) shader which is the single member of the primary file sequence of this node.

Note that the behavior and results of this Action are highly hardware and operating system specific. Shaders are compiled using the native tools on the machine where the action is run and the shader DSO produced will only be compatible with operating system used to compile the shader. Typically, a single shader C source file will be compiled into DSO's by seperate nodes for each OS supported at a studio. You should use Selection Keys to limit each of the nodes using this Action to a single hardware/operating system configuration to avoid architecture incompatibility problems.

See the Mental Ray documentation for details on shader compilation and linking.

This action defines the following single valued parameters:

Shader Source
The source node which contains the C source for the shader.

Architecture
CPU architecture of target render hosts.

Debug
Whether to compile with debugging flags and options.

Include Paths
A semicolon seperated list of additional directories to search for included files. Toolset environmental variable substitutions are enabled (see evaluate).

Defined Symbols
Whitespace seperated preprocessor symbol definitions. Toolset environmental variable substitutions are enabled (see evaluate).

Extra Options
Additional command-line arguments.

By default, the "python" program is used by this action to run the compilation commands. An alternative program can be specified by setting PYTHON_BINARY in the Toolset environment to the name of the Python interpertor this Action should use. When naming an alternative Python interpretor under Windows, make sure to include the ".exe" extension in the program name.

See Also:
Serialized Form

Field Summary
static String aArchitecture
           
static String aDebug
           
static String aDefinedSymbols
           
static String aIncludePaths
           
static String aKeepTempFiles
           
static String aShaderSource
           
 
Fields inherited from class us.temerity.pipeline.plugin.CommonActionUtils
aExtraOptions
 
Fields inherited from class us.temerity.pipeline.BasePlugin
pDescription
 
Fields inherited from class us.temerity.pipeline.PluginID
pVendor, pVersionID
 
Fields inherited from class us.temerity.pipeline.Named
pName
 
Constructor Summary
MRayShaderAction()
           
 
Method Summary
 SubProcessHeavy prep(ActionAgenda agenda, File outFile, File errFile)
          Construct a SubProcessHeavy instance which when executed will fulfill the given action agenda.
 
Methods inherited from class us.temerity.pipeline.plugin.PythonActionUtils
createPythonSubProcess, createPythonSubProcess, createPythonSubProcess, getPythonFileVerify, getPythonFileVerify, getPythonFileVerify, getPythonFileVerify, getPythonFileVerify, getPythonFileVerify, getPythonIndent, getPythonLaunchHeader, getPythonLaunchPipeHeader, getPythonProgram, getPythonProgram
 
Methods inherited from class us.temerity.pipeline.plugin.CommonActionUtils
addExtraOptionsParam, addExtraOptionsParamToLayout, createScriptSubProcess, createSubProcess, createSubProcess, createSubProcess, createSubProcess, createTempCopySubProcess, createTempScript, escPath, escPath, getExtraOptionsArgs, getPrimarySourcePath, getPrimarySourcePath, getPrimarySourcePath, getPrimarySourcePaths, getPrimarySourcePaths, getPrimarySourcePaths, getPrimaryTargetPath, getPrimaryTargetPath, getPrimaryTargetPath, getPrimaryTargetPaths, getPrimaryTargetPaths, getPrimaryTargetPaths, getSecondarySourceBooleanParamValue, getSecondarySourceDoubleParamValue, getSecondarySourceDoubleParamValue, getSecondarySourceEnumParamIndex, getSecondarySourceIntegerParamValue, getSecondarySourceIntegerParamValue, getSecondarySourceLongParamValue, getSecondarySourceLongParamValue, getSecondarySourceOptionalBooleanParamValue, getSecondarySourceStringParamValue, getSecondarySourceStringParamValue, getSingleBooleanParamValue, getSingleDoubleParamValue, getSingleDoubleParamValue, getSingleEnumParamIndex, getSingleIntegerParamValue, getSingleIntegerParamValue, getSingleLongParamValue, getSingleLongParamValue, getSingleOptionalBooleanParamValue, getSingleStringParamValue, getSingleStringParamValue, getSingleTuple2dParamValue, getSingleTuple2dParamValue, getSingleTuple2dParamValue, getSingleTuple2iParamValue, getSingleTuple2iParamValue, getSingleTuple2iParamValue, getSingleTuple3dParamValue, getSingleTuple3dParamValue, getSingleTuple3dParamValue, getSingleTuple3iParamValue, getSingleTuple3iParamValue, getSingleTuple3iParamValue, getSingleTuple4dParamValue, getSingleTuple4dParamValue, getSingleTuple4dParamValue, getSourceBooleanParamValue, getSourceDoubleParamValue, getSourceDoubleParamValue, getSourceEnumParamIndex, getSourceIntegerParamValue, getSourceIntegerParamValue, getSourceLongParamValue, getSourceLongParamValue, getSourceOptionalBooleanParamValue, getSourceStringParamValue, getSourceStringParamValue, getWorkingNodeFilePath, getWorkingNodeFilePath, getWorkingNodeFilePath, getWorkingNodeFilePath, getWorkingNodeFilePaths
 
Methods inherited from class us.temerity.pipeline.BaseAction
addPreset, addPresetValues, addSingleParam, chmod, cleanupLater, clearAllLinkParams, clearLinkParams, clone, createTemp, createTemp, equals, equalSingleParams, equalSourceParams, fromGlue, getInitialSourceParams, getPluginType, getPresetChoices, getPresetValues, getSecondarySequences, getSecondarySourceNames, getSecondarySourceParam, getSecondarySourceParams, getSecondarySourceParamValue, getSingleLayout, getSingleParam, getSingleParams, getSingleParamValue, getSourceLayout, getSourceNames, getSourceParam, getSourceParams, getSourceParamValue, getTempDir, getTempPath, hasSecondarySourceParams, hasSingleParams, hasSourceParams, initSecondarySourceParams, initSourceParams, removeAllSourceParams, removeSecondarySourceParams, removeSecondarySourceParams, removeSourceParams, setSecondarySourceParamValue, setSingleLayout, setSingleParamValue, setSingleParamValues, setSourceLayout, setSourceParamValue, setSourceParamValues, supportsSourceParams, toGlue
 
Methods inherited from class us.temerity.pipeline.BasePlugin
addSupport, compareTo, getDescription, getFullMessage, getPluginID, getResource, getResources, getResourceSize, getSupports, isUnderDevelopment, removeSupport, setSupports, supports, toString, underDevelopment
 
Methods inherited from class us.temerity.pipeline.PluginID
getVendor, getVersionID
 
Methods inherited from class us.temerity.pipeline.Named
getName
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

aShaderSource

public static final String aShaderSource
See Also:
Constant Field Values

aKeepTempFiles

public static final String aKeepTempFiles
See Also:
Constant Field Values

aArchitecture

public static final String aArchitecture
See Also:
Constant Field Values

aDebug

public static final String aDebug
See Also:
Constant Field Values

aIncludePaths

public static final String aIncludePaths
See Also:
Constant Field Values

aDefinedSymbols

public static final String aDefinedSymbols
See Also:
Constant Field Values
Constructor Detail

MRayShaderAction

public MRayShaderAction()
Method Detail

prep

public SubProcessHeavy prep(ActionAgenda agenda,
                            File outFile,
                            File errFile)
                     throws PipelineException
Construct a SubProcessHeavy instance which when executed will fulfill the given action agenda.

Overrides:
prep in class BaseAction
Parameters:
agenda - The agenda to be accomplished by the action.
outFile - The file to which all STDOUT output is redirected.
errFile - The file to which all STDERR output is redirected.
Returns:
The SubProcess which will fulfill the agenda.
Throws:
PipelineException - If unable to prepare a SubProcess due to illegal, missing or imcompatable information in the action agenda or a general failure of the prep method code.

TEMERITY