Breaking Changes

File Functions

All file-handling code apart from the RenameTempToFinal function has been removed from FileFuncs.h.

ImagePlane

The following constructor has been removed:

ImagePlane(const ImagePlaneDescriptor& ipd);

Iop

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.

Knob

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_; }

Knobs

The enumeration entry GPUENGINE_KNOB has been removed, as has the function GPUEngine_knob() for creating a knob of this type.

LightOp

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.

Memory

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.

NukeHPCContext

All functions in the NukeHPCContext namespace have been removed.

Op

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().

PlanarI

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.

Render

The texture filter is now of type TextureFilter rather than Filter, to enable the new mip-map filtering options to be used.

RTriangle

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.

Scene

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; }

Sprite

The Sprite structure in ParticlesSprite.h has been moved out of the MBParticleSpriteGenerator class and is now in the DD::Image namespace.

UTF

The header utf.h, which contained functions for manipulating UTF-8 strings, has been removed.

Table Of Contents

Previous topic

Appendix C: Plugin compatibility with Nuke 9

Next topic

Deprecated Changes