Globals API (NvBlastGlobals)

The NvBlastGlobals library is a utility library which is used by NvBlastTk (see High Level (Toolkit) API (NvBlastTk)) and some extensions (see Extensions (NvBlastExt)) and samples.

It provides a global allocator, error callback, and profiler API.

Allocator

Include NvBlastGlobals.h

A global allocator with interface

nvidia::NvAllocatorCallback

may be set by the user with the function

NvBlastGlobalSetAllocatorCallback

and accessed using

NvBlastGlobalGetAllocatorCallback

An internal, default allocator is used if the user does not set their own, or if NULL is passed into NvBlastGlobalSetAllocatorCallback.

This allocator is used by NvBlastTk, as well as any extension that allocates memory. In addition, utility macros are provided such as NVBLAST_ALLOC, NVBLAST_FREE, NVBLAST_NEW, and NVBLAST_DELETE.

Error Callback

Include NvBlastGlobals.h

A global error message callback with interface

nvidia::NvErrorCallback

may be set by the user with the function

NvBlastGlobalSetErrorCallback

and accessed using

NvBlastGlobalGetErrorCallback

An internal, default error callback is used if the user does not set their own, or if NULL is passed into NvBlastGlobalSetErrorCallback.

This error callback is used by NvBlastTk, as well as many extensions. In addition, utility macros are provided such as NVBLAST_LOG_ERROR and NVBLAST_LOG_WARNING.

Finally, a function with signature given by NvBlastLog is provided which uses the global error callback,

Nv::Blast::logLL

This function may be passed into any NvBlast function’s log parameter.

Profiler API

Include NvBlastGlobals.h

BlastTk contains many profiling zones which use the global profiler which can be accessed in this library. The user may implement the interface

nvidia::NvProfilerCallback

and pass it to the globals library using

NvBlastGlobalSetProfilerCallback

The profiler callback may be retrieved with

NvBlastGlobalGetProfilerCallback

A NULL pointer may be passed in, disabling profiling.