vtk-m/docs/changelog/NewFitlerInterface.md

21 lines
1.1 KiB
Markdown
Raw Normal View History

2021-12-13 16:23:35 +00:00
## New Filter Interface Design ##
An overhaul of the Filter interface is undergoing. This refactoring effort will
address many problems we faced in the old design. The most important one is to
2021-12-13 19:17:15 +00:00
remove the requirement to compile every single Filter users with a Device Compiler.
2021-12-13 16:23:35 +00:00
This is addressed by removing C++ template (and CRTP) from Filter and is subclasses.
A new non-templated NewFilter class is added with many old templated public interface
removed.
This new design also made Filter implementations thread-safe by default. Filter
implementations are encouraged to take advantage of the new design and removing
2021-12-13 21:31:29 +00:00
shared metatable states from their `DoExecute`, see Doxygen documentation in
2021-12-13 16:23:35 +00:00
NewFilter.h
2021-12-13 19:17:15 +00:00
Filter implementations are also re-organized into submodules, with each submodule
2021-12-13 16:23:35 +00:00
in its own `vtkm/filter` subdirectory. User should update their code to include
2021-12-13 19:17:15 +00:00
the new header files, for example, `vtkm/filter/field_transform/GenerateIds.h`and
link to submodule library file, for example, `libvtkm_filter_field_transform.so`.
2021-12-13 16:23:35 +00:00
To maintain backward compatability, old `vtkm/filter/FooFilter.h` header files
can still be used but will be deprecated in release 2.0.