Blink has been updated to use a fully C++ interface. Previously it used a mixture of C++ and C types. There are too many changes to list here, but all objects previously named as BlinkEntity have been moved to the Blink namespace and renamed to become Blink::Entity.
All file-handling code apart from the RenameTempToFinal function has been removed from FileFuncs.h.
The following constructor has been removed:
ImagePlane(const ImagePlaneDescriptor& ipd);
The following function has been removed:
std::string uniqueGPUShaderId(const std::string& seed = std::string());
A suitable unique prefix will now be generated automatically to replace instances of ‘$$’ in the gpuEngine_body() in order to avoid name clashes.
The NameString class has been removed. This was a hack to support old plugins that tested for !Knob::name() and for strcmp(Knob::name(), ...). All plugins should now be using Knob::is(const char* name), which will return true if the name matches and false otherwise.
The function Knob::name() now returns a std::string instead of a NameString:
const std::string& name() const { return name_; }
The enumeration entry GPUENGINE_KNOB has been removed, as has the function GPUEngine_knob() for creating a knob of this type.
shadow_filter_ has changed from type Filter to type TextureFilter. This gives access to the new mip-map filtering methods added by TextureFilter for shadows.
The following methods for reporting memory usage have changed:
static void dump_info( std::ostream& output, bool format_bytes, bool includeNodeInfo, const void* restrict_to );
static void dump_infoXML( std::ostream& output, bool format_bytes, bool includeNodeInfo, const void* restrict_to );
restrict_to no longer has a default value, and there is an extra boolean argument, includeNodeInfo. When includeNodeInfo is true, name information for memory objects, such as Ops and Knobs, will be included in the report.
All functions in the NukeHPCContext namespace have been removed.
The signature for the function void addTime(long long microseconds) has changed to:
addTime(OpTimer::Category category, long long microsecondsCPU, long long microsecondsWall, bool isTopLevel = true);
to support updates to performance profiling. (You should try to avoid calling this manually though, and use the OpTimer class instead.)
The following function has been removed:
long long timeTaken() const;
More detailed performance profiling information is now provided by getPerformanceInfo().
getPlaneFromChannel() has been moved from public to protected. PlanarIops can override this to change the default definition of a plane, but it should not be called directly. Use the public function getRequestedPlaneFromChannel() instead, which will first mask the plane by the channels that are in the request, to avoid pulling any channels that haven’t been requested.
The texture filter is now of type TextureFilter rather than Filter, to enable the new mip-map filtering options to be used.
The add() and split_at_near_plane() functions have been updated and now require a pointer to a PrimitiveContext:
void split_at_near_plane(Scene*, PrimitiveContext *, int vout, int vin1, int vin2);
bool add(Scene*, PrimitiveContext*);
This was changed to allow better memory management when creating renderable primitives on multiple threads.
The filter_ variable is now of type TextureFilter rather than Filter, to enable the new mip-map filtering options to be used. The accessor functions for filter_ have been updated accordingly:
TextureFilter* filter() const { return filter_; }
void filter(TextureFilter* v) { filter_ = v; }
The Sprite structure in ParticlesSprite.h has been moved out of the MBParticleSpriteGenerator class and is now in the DD::Image namespace.
The header utf.h, which contained functions for manipulating UTF-8 strings, has been removed.