1. 05 Sep, 2020 2 commits
    • Kenneth Moreland's avatar
      Optionally remove all use of ArrayHandleVirtual · 63ef84ed
      Kenneth Moreland authored
      As we remove more and more virtual methods from VTK-m, I expect several
      users will be interested in completely removing them from the build for
      several reasons.
      
      1. They may be compiling for hardware that does not support virtual
      methods.
      2. They may need to compile for CUDA but need shared libraries.
      3. It should go a bit faster.
      
      To enable this, a CMake option named `VTKm_NO_DEPRECATED_VIRTUAL` is
      added. It defaults to `OFF`. But when it is `ON`, none of the code that
      both uses virtuals and is deprecated will be built.
      
      Currently, only `ArrayHandleVirtual` is deprecated, so the rest of the
      virtual classes will still be built. As we move forward, more will be
      removed until all virtual method functionality is removed.
      63ef84ed
    • Kenneth Moreland's avatar
      Deprecate ArrayHandleVirtual · e11f612a
      Kenneth Moreland authored
      Virtual methods in the execution environment are going away the next
      major release of VTK-m, so deprecate their use in preparation for that.
      e11f612a
  2. 02 Sep, 2020 2 commits
    • Kenneth Moreland's avatar
      Suppress unnecessary deprecation warnings on VS · 872da1f8
      Kenneth Moreland authored
      The Visual Studio compiler has an annoying habit where if you use a
      templated class or method with a deprecated class as a template
      parameter, you will get a deprecation warning where that class is used
      in the templated thing. Thus, if you want to suppress the warning, you
      have to supress every instance of the template, not just where the
      template is declared.
      
      This is annoying behavior that is thankfully not replicated in other
      compilers.
      872da1f8
    • Kenneth Moreland's avatar
      Replace the implementation of VariantArrayHandle · bb443bbc
      Kenneth Moreland authored
      The implementation of `VariantArrayHandle` has been changed to be a
      relatively trivial subclass of `UnknownArrayHandle`.
      
      The advantage of this change is twofold. First, it removes
      `VariantArrayHandle`'s dependence on `ArrayHandleVirtual`, which gets us
      much closer to deprecating that class. Second, it ensures that
      `UnknownArrayHandle` is a reasonable replacement for
      `VariantArrayHandle`, so we can move forward with replacing that.
      bb443bbc
  3. 14 Jul, 2020 2 commits
    • Kenneth Moreland's avatar
      Suppress bad deprecation warnings in MSVC · c689a68c
      Kenneth Moreland authored
      The Microsoft compiler has this annoying and stupid behavior where if
      you have a generic templated method/function and that method is
      instantiated with a deprecated class, then the compiler will issue a
      C4996 warning even if the calling code is suppressing that warning
      (because, for example, you are implementing other deprecated code and
      the use is correct). There is no way around this other than suppressing
      the warnings for all uses of the templated method.
      c689a68c
    • Kenneth Moreland's avatar
      Do not cast to ArrayHandleVirtual in VariantArrayHandle::CastAndCall · a3f23a03
      Kenneth Moreland authored
      We are moving to deprecate `ArrayHandleVirtual`, so we are removing the
      feature where `VariantArrayHandle::CastAndCall` automatically casts to
      an `ArrayHandleVirtual` if possible.
      
      The big reason to make this change now (as opposed to later when
      `ArrayHandleVirtual` is deprecated) is to improve compile times.
      This prevents us from having to compile an extra code path using
      `ArrayHandleVirtual`.
      a3f23a03
  4. 17 Jun, 2020 2 commits
    • Kenneth Moreland's avatar
      Add common superclass to VariantArrayHandleBase · 8a1df977
      Kenneth Moreland authored
      Many of the operations of `VariantArrayHandleBase` are not dependent on
      the TypeList parameter of the class. Still others can operate just as
      well by providing a type list to a method. Thus, it is convenient to
      create a superclass that is not templated. That allows us to pass around
      a `VariantArrayHandle` when the type list does not matter.
      
      This superclass is called `VariantArrayHandleCommon` because "base" was
      already taken.
      8a1df977
    • Kenneth Moreland's avatar
      Rename IsInValidArrayHandle to IsInvalidArrayHandle · c35abc73
      Kenneth Moreland authored
      This makes it clear that it returns true for an invalid array handle.
      The previous name implied that it was looking for an ArrayHandle in some
      "valid" set, which is the opposite.
      c35abc73
  5. 16 Jun, 2020 1 commit
    • Kenneth Moreland's avatar
      Detect when VariantArrayHandle::AsMultiplexer fails · ed2f4aab
      Kenneth Moreland authored
      Previously, the VariantArrayHandle::AsMultiplexer operation silently
      failed and returned an invalid ArrayHandleMultiplexer. This is now
      changed to throw an exception if the desired ArrayHandleMultiplexer
      cannot hold the VariantArrayHandle's array.
      ed2f4aab
  6. 28 Apr, 2020 1 commit
    • Kenneth Moreland's avatar
      Have filter specify its own field types · 882dcacc
      Kenneth Moreland authored
      Previously, the policy specified which field types the filter should
      operate on. The filter could remove some types, but it was not able to
      add any types.
      
      This is backward. Instead, the filter should specify what types its
      supports and the policy may cull out some of those.
      882dcacc
  7. 19 Mar, 2020 1 commit
    • Kenneth Moreland's avatar
      Enable changing policy used for library compiles · dc112b51
      Kenneth Moreland authored
      Previously, the PolicyDefault used to compile all the filters was hard-
      coded. The problem was that if any external project that depends on VTK-
      m needs a different policy, it had to recompile everything in its own
      translation units with a custom policy.
      
      This change allows an external project provide a simple header file that
      changes the type lists used in the default policy. That allows VTK-m to
      compile the filters exactly as specified by the external project.
      dc112b51
  8. 07 Jan, 2020 1 commit
  9. 06 Dec, 2019 2 commits
  10. 05 Dec, 2019 2 commits
    • Kenneth Moreland's avatar
      Update lists in TypeListTag.h · cd302eff
      Kenneth Moreland authored
      A new header named TypeList.h and the type lists have been redefined in
      this new file. All the types have been renamed from `TypeListTag*` to
      `TypeList*`. TypeListTag.h has been gutted to provide deprecated
      versions of the old type list names.
      
      There were also some other type lists that were changed from using the
      old `ListTagBase` to the new `List`.
      cd302eff
    • Kenneth Moreland's avatar
      Deprecate ListTag operations · 6fc88321
      Kenneth Moreland authored
      The newer List operations should still work on the old ListTags, so make
      those changes first to ensure that everything still works as expected if
      given an old ListTag.
      
      Next step is to deprecate ListTagBase itself and move all the lists to
      the new types.
      6fc88321
  11. 12 Sep, 2019 1 commit
  12. 09 Sep, 2019 1 commit
  13. 22 Jul, 2019 1 commit
    • Kenneth Moreland's avatar
      Avoid touching ListTag internals · 82761326
      Kenneth Moreland authored
      Currently, ListTags are implemented by having a subtype name list set to
      a brigand::list. However, there is always a chance this will change. To
      make things more explicit, create a vtkm::internal::ListTagToBrigandList
      to make it clear what the resulting type should be (and provide some
      potential future-proofing).
      
      Also add a convenient vtkm::ListTagApply that allows you to  easily
      instantiate a template with the list of types in a ListTag.
      82761326
  14. 30 Apr, 2019 1 commit
  15. 17 Apr, 2019 1 commit
  16. 09 Apr, 2019 1 commit
  17. 03 Apr, 2019 2 commits
  18. 25 Mar, 2019 1 commit
    • Allison Vacanti's avatar
      Modify VariantAH::AsVirtual to cast to new ValueType if needed. · e1f5c4dd
      Allison Vacanti authored
      E.g:
      
      ```
          ArrayHandle<Float64> doubleArray;
          VariantArrayHandle varHandle{doubleArray};
          ArrayHandleVirtual<Float32> = varHandle.AsVirtual<Float32>();
      ```
      
      If there is a loss in range and/or precision, a warning is logged. If
      the ValueTypes are Vecs with mismatched widths, an ErrorBadType is thrown.
      Internally, an ArrayHandleCast is used between the VariantArrayHandle's
      stored array and the ArrayHandleVirtual.
      e1f5c4dd
  19. 01 Mar, 2019 1 commit
  20. 05 Feb, 2019 1 commit
  21. 16 Jan, 2019 1 commit
  22. 27 Dec, 2018 6 commits