Provides script language access to C++ objects of this type.
Class Hierarchy | Type » ComputeLambdaParams |
Object members are as follows:
Type Name | Accessor Name | Documentation |
---|---|---|
<Render3D> | Device | Sets or gets the pointer to the <Render3D> object that executes the compute shader. |
int32 | ArrayDimensionX | Sets 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). |
int32 | ArrayDimensionY | Sets 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). |
int32 | ArrayDimensionZ | Sets 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). |
string | BufferName | Sets 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. |
int32 | DispatchLocalGroups | This 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. |
int32 | Domain | Sets the domain to 1, 2, or 3 dimensions. The value here determines which of ArrayDimensionX, ArrayDimensionY, and ArrayDimensionZ are used. |
string | GeneratedSource | Returns a string containing the compute shader source that was generated by the call to .ParallelForEach. |
int32 | LocalGroupSizeX | Sets or gets the local group size on the x axis. |
int32 | LocalGroupSizeY | Sets or gets the local group size on the y axis. |
int32 | LocalGroupSizeZ | Sets or gets the local group size on the z axis. |
string | Source | The 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', |
string | SourceFileName | Internal use only. |
string | SourceFilePath | Internal use only. |
int32 | VectorDimension | For arrays that you wish to declare as vectors, this sets the vector dimension as 2, 3, or 4. |
int32 | WorkGroupSizeX | Sets 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. |
int32 | WorkGroupSizeY | Sets 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. |
int32 | WorkGroupSizeZ | Sets 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. |