HDK
|
#include <VOP_HDACodeCompiler.h>
Public Member Functions | |
VOP_ShaderHDACompiler () | |
Constructor. More... | |
void | setRManPath (const char *path) |
const UT_String & | getRManPath () const |
Public Member Functions inherited from VOP_HDACodeCompiler | |
VOP_HDACodeCompiler () | |
virtual | ~VOP_HDACodeCompiler () |
virtual bool | compileVexCodeToSections (OP_Node *srcnode, FS_IndexFile *hda, const char *context_mask=0) |
virtual bool | compileNewOperatorType (OP_Node *srcnode, const char *name, const char *label, const char *path, const char *metasrc, const VOP_ContextTypeList *types=NULL) |
const UT_StringMap < UT_StringHolder > & | getFunctionsSectionsMap () const |
void | setShaderName (const char *shader_name) |
Main shader name used in compilation. More... | |
const UT_StringHolder & | getShaderName () const |
Main shader name used in compilation. More... | |
UT_ErrorSeverity | getStatus (UT_String &message, UT_String *details=0) |
void | setForceCompilationOnOpNameConflict (bool flag) |
bool | getForceCompilationOnOpNameConflict () |
Static Public Member Functions | |
static void | removeShaderCodeSections (FS_IndexFile *file) |
Utility function for cleaning up HDA of any compiled sections. More... | |
Static Public Member Functions inherited from VOP_HDACodeCompiler | |
static bool | canCompileNode (OP_Node *srcnode) |
static void | removeCodeSections (OP_Node *node, FS_IndexFile *file) |
static bool | updateCodeSections (OP_Node *node, FS_IndexFile *file, UT_String *message) |
Protected Member Functions | |
bool | initForShaderCompilation (OP_Node *srcnode) |
Sets up member variables to be ready for compilation. More... | |
virtual void | getContextTypesForCompilation (VOP_ContextTypeList &contexts) const =0 |
virtual void | doCompile (FS_IndexFile *hda, VOP_CodeGenerator *code_generator, VOP_ContextType context_type, const char *section_name, OP_Node *output_node)=0 |
bool | compilePrimaryOutputNodes (FS_IndexFile *hda, opui_ScriptMaterialCodeMapper &mapper) |
void | compileMappedNodes (FS_IndexFile *hda, opui_ScriptMaterialCodeMapper &mapper) |
OP_Node * | getNode () const |
VOP_CodeGenerator * | getCodeGenerator () const |
OP_OperatorTable * | getTable () const |
Protected Member Functions inherited from VOP_HDACodeCompiler | |
void | saveVflCodeToSection (FS_IndexFile *hda, OP_Node *shader_node, VOP_CodeGenerator *code_generator, VOP_ContextType context_type, const char *section_name, OP_Node *output_node) |
Saves the code to section. More... | |
bool | isOK () const |
Checks if there was an error during compilation up till now. More... | |
void | setStatus (UT_ErrorSeverity sev, const char *msg, const char *details=0) |
void | clearStatus () |
A class that compiles a shader (or vop-based operator like Vop SOP), into a script-based HDA (with or without the contents network).
Definition at line 217 of file VOP_HDACodeCompiler.h.
VOP_ShaderHDACompiler::VOP_ShaderHDACompiler | ( | ) |
Constructor.
|
protected |
Inspects the mapper for vop nodes it has mapped and compiles vex code associated with each mapped node. The code is saved to HDA section.
|
protected |
Compiles the vex code for the Output VOP nodes. If there are a few oputput nodes for the same context (connecting to collect vop via a switch), then the currently selected one is used.
|
protectedpure virtual |
Compiles the given context type of the source node to the HDA in OTL.
code_generator | The code generator to use for compilation. |
context_type | The context for which to compile the code. |
section_name | The name of the HDA section in which to save the compiled code. |
output_node | The node to use for generating the code, in case there are several output nodes for the same context. |
Implemented in VOP_ShaderHDACompilerHDA, and VOP_ShaderHDACompilerOTL.
|
inlineprotected |
Accessors for the member data, available to derived classes.
Definition at line 239 of file VOP_HDACodeCompiler.h.
|
protectedpure virtual |
Obtains the context types for which to compile the code. The subclass needs to implement this virtual to provide that information.
Implemented in VOP_ShaderHDACompilerHDA, and VOP_ShaderHDACompilerOTL.
|
inlineprotected |
Accessors for the member data, available to derived classes.
Definition at line 237 of file VOP_HDACodeCompiler.h.
|
inline |
Configures the file path where PRMan shaders are located.
Definition at line 227 of file VOP_HDACodeCompiler.h.
|
inlineprotected |
Accessors for the member data, available to derived classes.
Definition at line 241 of file VOP_HDACodeCompiler.h.
|
protected |
Sets up member variables to be ready for compilation.
|
static |
Utility function for cleaning up HDA of any compiled sections.
|
inline |
Configures the file path where PRMan shaders are located.
Definition at line 225 of file VOP_HDACodeCompiler.h.