Share

What's New in Bifrost 2.11.0.0 SDK shipping with Bifrost 2.11.0.0 for Maya

Bifrost 2.11.0.0 SDK is now C++17 and C++14 has been dropped.

Bifrost 2.11.0.0 SDK CMake files use CMake 3.20 and up.

Bifrost 2.11.0.0 SDK contains API breaking changes

Amino

  • Class RuntimeMessage is deprecated. Use RuntimeServices.

    • Method logMessage is deprecated and methods log/logInfo/logWarning/logError with functor should be used.

    • Method logError with input parameter Amino::StringView will always log even if logging is not enabled.

    • See file sdk/include/Amino/RuntimeServices.h for details:

      The runtime service object is used by a job to capture messages
      generated by its operators at runtime. Operators can call the logging
      functions of the RuntimeServices object to generate error, warning or
      info messages. They can do so either by passing logging functions a functor
      that will lazily be called only if logging is enabled for the given message
      category, or by passing a StringView directly. In the latter case,
      except for RuntimeServices::logError, it is up to the caller to ensure
      that logging is enabled for the given category (logging messages when
      logging is disabled will trigger an assertion).
  • ClAmino::StringView

    • Block constructing an Amino::StringView from a nullptr.
    • Amino::StringView can be implicitly constructed from types from which std::string_view can implicitly be constructed. The only exception is for raw c-strings from which the size must be obtained at runtime. In this case, the explicit constructor must be used.
  • Class Amino::String has better support of operations that take as parameter std::string_view like objects.

Bifrost

FileUtils

  • API changes. Use of Amino::StringView as input parameter type. Note that Amino::String and other string view like objects convert to Amino::StringView.

Geometry

  • API changes. Use of Amino::StringView as input parameter type. Note that Amino::String and other string view like objects convert to Amino::StringView.

  • API changes. All Bifrost string keys found in sdk/include/Bifrost/Geometry/GeoPropertyKey.h are now Amino::String which are Amino::StringView compatible. The previous use of const char * triggered implicit Amino::String constructors needlessly.

  • New API function. Function isOffsetDataGeoProp queries if a data geo property is an offset array.

  • New API functions (file sdk/include/Bifrost/Geometry/GeoPropertyGuard.h)

    • Class DataGeoPropertyGuard and class RangeGeoPropertyGuard facilitate the modification of Data and Range Geo Properties by extracting properties from a Bifrost Object (Geometry).
    • The extraction keeps the reference count the same and if the that reference count is 1 then the modifications can be done in-place.
    • The role of the guards is to hide the extraction and hide the return of the data into the source Bifrost Object.
    • See example directories: sdk/examples/MeshWeldUV and TwistDeformer.

Was this information helpful?