Provides script language access to C++ objects of this type.
Function members are as follows:
Return Type | Function Name | Documentation |
---|---|---|
int32 | BindAttrib | Binds a channel to a vertex attribute index. |
int32 | ClearAttribBindings | Clears the current attribute binding indices used by the <Program>. |
int32 | Delete | Deletes the program through its association with a <RenderInfo> object that binds it to the rendering device. |
int32 | GetActiveShaders | Populates a <StrList> with the path and filename of shaders used by this <Program>. Does not return any value for shaders not being used. For example: if this <Program> does not use a geometry shader, then no value will be added to the <StrList> submitted to this function. |
string | GetComputeFile | Gets the <Program> node object's compute shader source file path. |
string | GetControlFile | Gets the <Program> node object's tessellation control shader source file path.Undocumented. |
int32 | GetCount | Returns the count of shader source files for this <Program>. For example, this function returns 3 if this <Program> specifies a path for the vertex, geometry, and fragment shaders. |
string | GetEvaluationFile | Gets the <Program> node object's tessellation evaluation shader source file path.Undocumented. |
string | GetFragmentFile | Gets the <Program> node object's fragment shader source file path. |
string | GetGeometryFile | Gets the <Program> node object's geometry shader source file path. |
uint64 | GetHandle | Gets a handle for the <Program> node. This handle is a rendering device handle, generated when the <Program> is successfully compiled by the rendering device. |
string | GetMeshFile | Gets the <Program> node object's mesh shader source file path. |
string | GetProfileString | Returns the profile string such as "es" or "compatibility" or "core". |
int32 | GetSPAAttributeCount | Deprecated |
int32 | GetSPAColorAttributeCount | Returns the count of vertex color attributes used by the shader. |
int32 | GetSPADataAttributeCount | Returns the count of vertex data attributes used by the shader. |
int32 | GetSPANormalAttributeCount | Returns the count of vertex normal attributes used by the shader. |
int32 | GetSPAPositionAttributeCount | Returns the count of vertex position attributes used by the shader. |
int32 | GetSPASamplerCount | Returns the count of texture samplers used by the shader. |
int32 | GetSPATexCoordAttributeCount | Returns the count of vertex texture coordinate attributes used by the shader. |
string | GetShaderAt | Returns a string containing the path to the shader source code for the vertex, control, tessellation, geometry, or fragment shader. |
int32 | GetShaderIndices | Populates an <Int32Array> with enumerated constants for each active shader stage. This refers to the ShaderStage enumeration. Please see APP_SERVICE_ENUMERATION_UTIL.SSL in the application scripts folder for more information. |
int32 | GetShaders | Populates a <StrList> with the path and filename of each active shader stage. |
int32 | GetShadersAbs | Populates a <StrList> with the absolute paths for all this <Program> object's shader source files. |
string | GetTaskFile | Gets the <Program> node object's task shader source file path. |
int32 | GetUniforms | Populates a <NodeBuffer> with any child <VariableNode> objects declared as uniforms. |
string | GetVersionString | Returns the version string such as "#version 430 core" or "#version 300 es". |
string | GetVertexFile | Gets the <Program> node object's vertex shader source file path. |
int32 | HasComputeFile | Returns true if the <Program> node object has a non-empty path to a compute shader source file. |
int32 | HasControlFile | Returns true if the <Program> node object has a non-empty path to a tessellation control shader source file. |
int32 | HasEvaluationFile | Returns true if the <Program> node object has a non-empty path to a tessellation evaluation shader source file. |
int32 | HasFragmentFile | Returns true if the <Program> node object has a non-empty path to a fragment shader source file. |
int32 | HasGeometryFile | Returns true if the <Program> node object has a non-empty path to a geometry shader source file. |
int32 | HasMeshFile | Returns true if the <Program> node object has a non-empty path to a mesh shader source file. |
int32 | HasTaskFile | Returns true if the <Program> node object has a non-empty path to a task shader source file. |
int32 | HasVertexFile | Returns true if the <Program> node object has a non-empty path to a vertex shader source file. |
int32 | IsCompiled | Returns true if the <Program> object is compiled. Returns false if <Program> compilation fails for any reason ( including if the <Program> isn't being used, such as when it's off-screen. ) |
static int32 | LoadTranslationUnit | Loads a complete translation unit for the source code of a particular shader. This is the entire shader, with all includes, line numbers, and all preprocessor tokens as well. |
static int32 | LoadTranslationUnitLines | Loads a complete translation unit for the source code of the specified shader into a <StrList>. This is the entire shader, with all includes, line numbers, and all preprocessor tokens as well. |
int32 | Select | Activates a <Program> in a rendering device. |
int32 | SetComputeFile | Sets the <Program> node object's compute shader source file path. |
int32 | SetControlFile | Sets the <Program> node object's tessellation control shader source file path. |
int32 | SetEvaluationFile | Sets the <Program> node object's tessellation evaluation shader source file path. |
int32 | SetFragmentFile | Sets the <Program> node object's fragment shader source file path. |
int32 | SetGeometryFile | Sets the <Program> node object's geometry shader source file path. |
int32 | SetMeshFile | Sets the <Program> node object's mesh shader source file path. |
int32 | SetShaderAt | Sets the path to the shader source for the indicated shader stage. |
int32 | SetTaskFile | Sets the <Program> node object's task shader source file path. |
int32 | SetVertexFile | Sets the <Program> node object's vertex shader source file path. |
Object members are as follows:
Type Name | Accessor Name | Documentation |
---|---|---|
int32 | InjectVersion | If true, this injects the version declaration as the first line in the compiled shader code. This means that you don't have to declare the version in your shader. This option is enabled by default, and can be disabled at any time. |
int32 | InputTopology | Obsolete. Prefer setting this value in the shader code. |
int32 | MaxOutputVertices | Obsolete. Prefer setting this value in the shader code. |
<Node> | Mesh | Gets or sets the <Program> node object's Mesh connection. This is a <Mesh> node associated with the <Program>. |
<Node> | MeshLink | Gets or sets the <Program> node object's Mesh connection. This is a <Mesh> node associated with the <Program>. This allows accessing or assigning a <NodeLink>. |
int32 | OutputTopology | Obsolete. Prefer setting this value in the shader code. |
int32 | PipelineMode | Sets or gets the PipelineMode value. There are three pipeline modes: graphics shaders (such as vertex, control, evaluation, geometry or fragment), compute shaders, or mesh shader (such as task, mesh, fragment). This refers to the ShaderPipelineMode enumeration. Please see APP_SERVICE_ENUMERATION_UTIL.SSL in the application scripts folder for more information. |
<Node> | PreRenderHook | Gets or sets the <Program> node object's PreRenderHook. The node connected to the <Program> via this <NodeSink> is rendered before the program is compiled, allowing you to do a variety of things, including generating or modifying the GLSL source code immediately before compilation. |
<Node> | PreRenderHookLink | Gets or sets the <Program> node object's PreRenderHookLink. This allows accessing or assigning a <NodeLink>. |
int32 | PrintCompileStatus | Sets or gets the CompileStatus flag. If true, it means the GLSL shader source code connected to this <Program> successfully compiled. |
<Node> | RenderHook | This member accesses a <Program> node object's RenderHook parameter. The render hook executes after the <Material> node activates its state, and supports initializing additional render state such as shader constants. |
<Node> | RenderHookLink | This member accesses a <Program> node object's RenderHookLink parameter. This allows accessing or assigning a <NodeLink> for the render hook. |
<Node> | SamplerPalette | This member sets or gets the program node's PreRenderHook. |
<Node> | SamplerPaletteLink | This member sets or gets the program node's PreRenderHookLink. |
<Node> | Samplers | Gets or sets the <Program> node object's Samplers connection. This is a <SamplerPaletteNode> node associated with the <Program>. |
<Node> | SamplersLink | Gets or sets the <Program> node object's Samplers connection. This is a <SamplerPaletteNode> node associated with the <Program>. This allows accessing or assigning a <NodeLink>. |
int32 | ShadingLanguageIndex | Returns the index of the shading language. For example: returns 0, 1, or 2, which would mean 100, 110, or 120. This refers to the ShadingLanguageIndex enumeration. Please see APP_SERVICE_ENUMERATION_UTIL.SSL in the application scripts folder for more information. |
int32 | ShadingLanguageProfile | Returns the index of the shading language profile. For example: returns 0, 1, or 2, which would mean core, compatibility, or es. This refers to the ShadingLanguageProfile enumeration. Please see APP_SERVICE_ENUMERATION_UTIL.SSL in the application scripts folder for more information. |
int32 | ShadingLanguageVersion | Gets or sets the shading language version for this object. For example 300, 330, 400, 410, 450, or 460. This refers to the ShadingLanguageVersion enumeration. Please see APP_SERVICE_ENUMERATION_UTIL.SSL in the application scripts folder for more information. |
<Node> | UniformPalette | This member accesses a program node's RENDERHOOK parameter. The render hook executes after the material activates its state, and supports initializing additional render state such as shader constants. |
<Node> | UniformPaletteLink | This member accesses a program node's RENDERHOOKLINK parameter. This allows accessing or assigning a NodeLink for the render hook. |