mirror of
https://gitlab.kitware.com/vtk/vtk-m
synced 2024-09-16 17:22:55 +00:00
3b828608a4
Most of the arguments given to device adapter algorithms are actually control-side arguments that get converted to execution objects internally (usually a `vtkm::cont::ArrayHandle`). However, some of the algorithms, take an argument that is passed directly to the execution environment, such as the predicate argument of `Sort`. If the argument is a plain-old-data (POD) type, which is common enough, then you can just pass the object straight through. However, if the object has any special elements that have to be transferred to the execution environment, such as internal arrays, passing this to the `vtkm::cont::Algorithm` functions becomes problematic. To cover this use case, all the `vtkm::cont::Algorithm` functions now support automatically transferring objects that support the `ExecObject` worklet convention. If any argument to any of the `vtkm::cont::Algorithm` functions inherits from `vtkm::cont::ExecutionObjectBase`, then the `PrepareForExecution` method is called with the device the algorithm is running on, which allows these device-specific objects to be used without the hassle of creating a `TryExecute`. |
||
---|---|---|
.. | ||
changelog | ||
CodingConventions.md |