<ComputeLambdaParams> Data Interface

Provides script language access to C++ objects of this type.

Class HierarchyType » ComputeLambdaParams

Object Members

Object members are as follows:

Type Name Accessor Name Documentation
<Render3D>DeviceSets or gets the pointer to the <Render3D> object that executes the compute shader.
int32ArrayDimensionXSets the X subscript dimension of the array that is declared inside the buffer. Note that the array can be declared as data[X], data[X][Y], or data[X][Y][Z] depending on the value set as the domain (which must be 1, 2, or 3 dimensions).
int32ArrayDimensionYSets the X subscript dimension of the array that is declared inside the buffer. Note that the array can be declared as data[X], data[X][Y], or data[X][Y][Z] depending on the value set as the domain (which must be 1, 2, or 3 dimensions).
int32ArrayDimensionZSets the X subscript dimension of the array that is declared inside the buffer. Note that the array can be declared as data[X], data[X][Y], or data[X][Y][Z] depending on the value set as the domain(which must be 1, 2, or 3 dimensions).
stringBufferNameSets the name of the buffer declared in the compute shader. If this is blank, the buffer is declared as "buffer lambda_buffer { float data[1024]; } or similar.
int32DispatchLocalGroupsThis can only be enabled if glDispatchComputeGroupSizeARB is available on the device that executes the compute shader. If this is enabled, the compute shader declares 'layout( local_size_variable )' and uses the specified local work group sizes during compute dispatch. If not enabled, the compute shader declares 'layout( local_size_x = X, local_size_y = Y, local_size_z = Z )', where the values of X, Y, and Z are specified by .LocalGroupSizeX, .LocalGroupSizeY, and .LocalGroupSizeZ.
int32DomainSets the domain to 1, 2, or 3 dimensions. The value here determines which of ArrayDimensionX, ArrayDimensionY, and ArrayDimensionZ are used.
stringGeneratedSourceReturns a string containing the compute shader source that was generated by the call to .ParallelForEach.
int32LocalGroupSizeXSets or gets the local group size on the x axis.
int32LocalGroupSizeYSets or gets the local group size on the y axis.
int32LocalGroupSizeZSets or gets the local group size on the z axis.
stringSourceThe source code to the lambda you wish to execute. This code will be inserted inside the compute shader's void main(void){} section. Depending the value of the domain (either 1, 2, or 3 dimensions), the compute shader automatically declares 'int pos = int( gl_GlobalInvocationID.x );', 'ivec2 pos = ivec2( gl_GlobalInvocationID.xy );', or 'ivec3 pos = ivec3( gl_GlobalInvocationID.xyz );'. Then your lambda code can access the data using something like 'data[pos] = value', 'data[pos.x][pos.y] = value', or 'data[pos.x][pos.y][pos.z] = value',
stringSourceFileNameInternal use only.
stringSourceFilePathInternal use only.
int32VectorDimensionFor arrays that you wish to declare as vectors, this sets the vector dimension as 2, 3, or 4.
int32WorkGroupSizeXSets or gets the global work group size on the x axis. This is used during compute dispatch to set the primary number of thread groups.
int32WorkGroupSizeYSets or gets the global work group size on the y axis. This is used during compute dispatch to set the primary number of thread groups.
int32WorkGroupSizeZSets or gets the global work group size on the z axis. This is used during compute dispatch to set the primary number of thread groups.