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::Array
will 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.