Breaking Changes

CameraOp

The functions projection_is_linear(int mode) and projectionAt(const DD::Image::OutputContext&) are now virtual. If you have a base class pointer and are calling these functions, a different version of these functions might be called. If you need to call a particular base class version you will need to do so explicitly.

Framebuffer

The Framebuffer class has been removed.

FramebufferPlugin

The FramebufferPlugin class has been removed.

GeoInfo

The ordering of the RenderMode enum has changed. Any hard coded values for RenderMode may no longer have the same enum value. We recommend using the enum directly rather than hardcoding values.

MemoryHolder

MemoryHolder objects must now be created using MemoryHolderFacory in order to register them with the memory system. The memory registration functions isRegistered(), registerMemory() and unregisterMemory() have been removed. e.g.:

#include "DDImage/MemoryHolder.h"
class MemoryHolderDerivedClass : public DD::Image::MemoryHolder
{
public:
  // From Memory Holder
  virtual bool  memoryFree(size_t amount) { ... }
  virtual void  memoryInfo(Memory::MemoryInfoArray& output, const void* restrict_to) const { ... }
  virtual int   memoryWeight() const { ... }
...
protected:
  MemoryHolderDerivedClass(Arg1Type ard1, Arg2Type arg2) {...}
  ~MemoryHolderDerivedClass() {...}
...
};

To use the memory holder derived class:

#include "DDImage/MemoryHolderFactory.h"
...
MemoryHolderFactory<MemoryHolderDerivedClass, Arg1Type, Arg2Type> factory;
MemoryHolderDerivedClass* memoryHolder = factory.create(Arg1Type, Arg2Type);
// memoryHolder is now ready for use.

RefCountedFloatBuffer

The allocate(...) function arguments have changed, this now takes image size parameters rather than a number of floats. Several operator overloads have been removed.

Table_KnobI

Pure virtual functions for getEnabled(...), setEnabled(...), getColumnVisibility(...) and setColumnVisibility(...) have been added. These will need to be implemented by classes inheriting from Table_KnobI.

TransformJack_KnobI

The version of startTransformJackProcessing(...) which takes 4 corners (topLeft, topRight, bottomLeft and bottomRight) has been removed. A version of startTransformJackProcessing(...) which takes a Matrix4 transform matrix has been added. See the documentation of Matrix4 for details onhow to use a transform matrix.

The following pure virtual functions now take TransformJack_ClientI* arguments: isActive(), getCenterPoint(), getRotation(), getDeltaRotation(), getDeltaTranslation(), getScaleCenter(), getTransformMatrix(), getBoundingBox(...), transformCornerPinPoint(...), getDeltaScale(), translateCenter(), isVisible(), setVisibility(...). TransformJack_ClientI can be used to receive notifications of transform jack changes.