What's New in Bifrost 2.10.0.0 SDK shipping with Bifrost 2.10.0.0 for Maya
Bifrost 2.10.0.0 SDK is a major update to the SDK.
The core Amino APIs have no major changes but a full recompile is suggested due to ABI changes.
Modified APIs
Minor modifications to the Amino APIs
Amino::Arraywill issue a warning to users if unsupported types are used as array elements:
AMINO_INTERNAL_DEPRECATED(
"The element type of this array is not supported in Amino.\n "
"All types must be default constructible, copy/move constructible,"
"copy/move assignable, and destructible.\n "
"Class types wrapped in Amino::Ptr must provide a default getter "
"(see Amino/Cpp/ClassDeclare.h and Amino/Cpp/ClassDefine.h).\n "
"It won't be type-erased, nor support virtualized operations.")
Amino::String: addition of string literal operatoroperator””_as.- File StringFwd.h has been removed.
New APIs
Two new APIs were added to the Bifrost SDK. The Bifrost Graph Executor API allows setting up Bifrost graph executions. The Bifrost Geometry API exposes functions to manipulate the Bifrost geometry data structures.
Bifrost Executor SDK
The Bifrost Executor SDK provides a set of classes for setting up a BifrostGraph::Executor::Workspace, loading and compiling a Bifrost graph, setting inputs, executing a Bifrost job, and retrieving outputs (See Bifrost Executor SDK).
Bifrost Geometry
The Bifrost Geometry API is a collection of functions to manipulate a dictionary-like data structure that represents a Bifrost geometry.
There are no specific geometry data structures in Bifrost: no mesh, no point, no strand-specific geometry. A Bifrost geometry is a property-based data structure that stores its geometrical elements in a Bifrost object.
An introduction to the Bifrost geometry data structure is part of Bifrost geometry overview
The C++ header files are found in the SDK directory Bifrost/Geometry of your installation.
Apple Silicon Note
On Macs with Apple silicon, to obtain x86_64 binaries, it is recommended to target universal binaries with CMAKE_OSX_ARCHITECTURES="arm64;x86_64" and not just use CMAKE_OSX_ARCHITECTURES="x86_64". The resulting universal binaries can then run natively on Macs with Apple silicon and Intel silicon. That is, Bifrost should always run native and not via Rosetta because the Amino compiler does not do cross-compilation.
