
This file lists all changes in the public Equalizer API, latest on top:

03/Dec/2012
  Remove ...,     fabric::View::getEqualizer()(::getTileSize( ))

07/Sep/2012
  Removed COMMANDTYPE_EQ_CUSTOM. Use co::COMMANDTYPE_CUSTOM instead.

06/Sep/2012
  New API in eq::Config & seq::ViewData for event handling. sendEvent() &
  handleEvent() have changed signatures, getNextEvent() supersedes
  tryNextEvent() & nextEvent().

  eq::ConfigEvent is replaced by EventOCommand for sending and by
  eq::EventCommand for receiving events.
  Old API is deprecated and will be removed in version 2.0.

31/Jul/2012
  Moved ErrorRegistry from Collage to eq::fabric. Use
  eq::fabric::Global::getErrorRegistry().

  Removed co::DataIStream::advanceBuffer. New parameter for
  co::DataIStream::getRemainingBuffer() does advance buffer now.

27/Jul/2012
  Made co::DataIStream::read private. Use 'is >> co::Array< T >( ptr, num )'
  instead.

-----------------------------------1.4-------------------------------------

-----------------------------------1.2-------------------------------------

25/Oct/2011
  Removed co::Object::commitNB and commitSync since request is no longer
  dispatched to command thread. Use commit instead.

17/Jul/2011
  Moved installed client headers to eq/client. Applications should
  always use <eq/eq.h> instead of individual headers.

03/Jun/2011
  Added a return value and timeout to co::LocalNode::acquireSendToken(),
  see method documentation.

29/Mar/2011
  Changed
    uint32_t eq::Version::getRevision();
  to:
    std::string eq::Version::getRevision();


-----------------------------------1.0-------------------------------------

14/Mar/2011
  Changed object mapping behavior when using a concrete version from:
    If the requested version does no longer exist, mapObject() will fail.
  to:
    If a concrete requested version no longer exists, mapObject() will
    map the oldest available version.

  Moved include/GL to include/eq/GL. Use '#include <eq/gl.h>' to include
  OpenGL headers only.

10/Mar/2011
  Do not include window system headers by default to avoid global
  namespace pollution. Define EQ_SYSTEM_INCLUDES before including
  eq/eq.h to get previous definitions.

01/Mar/2011
  Added new 'incarnation' parameter to co::Object::commit, with a
  default parameter selecting the previous behavior for commit wrt auto
  obsoletion. co::Object::commitNB has the same new parameter, with no
  default value.

--------------------------------1.0 beta-----------------------------------

10/Feb/2011
  Changed GLXWindow implementation to use GLXFBConfigs. Use GLXFBConfigs
  in place of XVisualInfo for the appropriate GLXWindow methods.

14/Jan/2011
  libEqualizer links libCollage dynamically, not statically.
  All libraries use correct versioning as mandated by the operating system.

-------------------------------1.0 alpha-----------------------------------

7/Jan/2011
  Rename EVENT_POINTER_* to differantiate channel and window pointer events.
  Old values can be used when EQ_USE_DEPRECATED is defined.

     CHANNEL_POINTER_MOTION         // = POINTER_MOTION
     CHANNEL_POINTER_BUTTON_PRESS   // = POINTER_BUTTON_PRESS
     CHANNEL_POINTER_BUTTON_RELEASE // = POINTER_BUTTON_RELEASE
     WINDOW_POINTER_WHEEL           // = POINTER_WHEEL
     WINDOW_POINTER_MOTION
     WINDOW_POINTER_BUTTON_PRESS
     WINDOW_POINTER_BUTTON_RELEASE
  replaces
     POINTER_MOTION
     POINTER_BUTTON_PRESS
     POINTER_BUTTON_RELEASE
     POINTER_WHEEL

20/Dec/2010
  Renamed the eq::net namespace to co(llage). Change all prefixes from
  eq::net to co or use EQ_USE_DEPRECATED to declare an 'eq::net'
  namespace alias.

14/Dec/2010
  Removed net::Session. Use net::LocalNode or eq::Config of object
  registration and mapping. The latter retains buffered object data for
  mapping up to latency frames.

29/Nov/2010
  No automatic listener connections are created for the application
  node. Existing multi-node configs will fail if they do not configure a
  listener. AppNode listeners can be added either by specifying them in
  the configuration filem by using the --eq-listen command line option
  or programmatically by adding connection descriptions before
  Client::initLocal().

  Image::setAlphaUsage
  Image::getAlphaUsage
  Image::upload( buffer, texture, position, objectManager )
    replaces
  Image::enableAlphaUsage
  Image::disableAlphaUsage
  Image::ignoreAlpha
  Image::upload( buffer, position, objectManager )
  Image::upload( buffer, texture, objectManager )

  Image::hasData is removed


22/Nov/2010
  Replace object identifiers with UUIDs
    Replace defines EQ_ID_INVALID with the new type by UUID::ZERO for object identifiers
    Removed defines EQ_ID_MAX, NONE, INVALID, ANY for object identifiers
  Replace object versions with uint128_t
    Master versions have always 0 for the 64bit high value

  change frameID type to uint128_t for methods: frameReadback, frameAssemble,
   frameDraw, frameClear, frameStart, startFrame, frameViewStart,
   frameViewFinish, frameFinish, frameDrawFinish, frameTasksFinish
   in the classes window, channel, pipe, node and config.

  change initID type to uint128_t for configInit in pipe, window,
  channel and config

  bool Pipe::configInitSystemPipe( const uint128_t& initID );
  bool Window::configInitSystemWindow( const eq::uint128_t& initID );
  bool Window::configInitGL( const eq::uint128_t& initID );
  bool Session::mapObject( Object* object, const base::UUID& id,
                           const uint128_t& version = VERSION_OLDEST );
  uint32_t Session::mapObjectNB( Object* object, const base::UUID& id,
                                 const uint128_t& version = VERSION_OLDEST );
  void Object::notifyNewHeadVersion( const uint128_t& version );
  uint128_t Object::getOldestVersion() const;
  uint128_t Object::getVersion() const;
  uint128_t Object::getHeadVersion() const;
  uint128_t Object::sync( const uint128_t& version = VERSION_HEAD );
  uint128_t Object::commit();
  uint128_t Object::commitSync( const uint32_t commitID );
  base::UUID Object::getID() const
    replaces
  bool Pipe::configInitSystemPipe( const uint32_t initID );
  bool Window::configInitSystemWindow( const uint32_t initID );
  bool Window::configInitGL( const uint32_t initID );
  bool Session::mapObject( Object* object, const uint32_t id,
                           const uint128_t& version = VERSION_OLDEST );
  uint32_t Session::mapObjectNB( Object* object, const uint32_t id,
                                 const uint128_t& version = VERSION_OLDEST );
  void Object::notifyNewHeadVersion( const uint32_t version );
  uint32_t Object::getOldestVersion() const;
  uint32_t Object::getVersion() const;
  uint32_t Object::getHeadVersion() const;
  uint32_t Object::sync( const uint32_t version = VERSION_HEAD );
  uint32_t Object::commit();
  uint32_t Object::commitSync( const uint32_t commitID );
  uint32_t Object::getID() const

19/Nov/2010
  The GLXEventHandler is new per-window. Event handler init/exit has
  been moved from GLXPipe to GLXWindow and the GLXEventHandler API has
  changed accordingly.

15/Nov/2010
  Statistic::CHANNEL_FRAME_WAIT_READY replaces Statistic::CHANNEL_WAIT_FRAME

02/Nov/2010
  void fabric::Object::setError( const int32_t error )
  base::Error fabric::Object::getError() const
    replace
  void fabric::Object::setErrorMessage( const std::string& error )
  const std::string& fabric::Object::getErrorMessage() const

29/Oct/2010
  void FrameData::setZoom( const Zoom& zoom );
  const Zoom& FrameData::getZoom() const;
    replaces
  void Frame::setInputZoom( const Zoom& zoom );
  const Zoom& Frame::getInputZoom() const;


25/Oct/2010
  Error util::FrameBufferObject::getError() const;
  Error ComputeContext::getError() const;
  void ComputeContext::setError( const uint32_t error );
    replaces
  const std::string& util::FrameBufferObject::getErrorMessage() const;
  const std::string& ComputeContext::getErrorMessage() const;
  void ComputeContext::setErrorMessage( const std::string& errorMessage );

20/Oct/2010
  void PluginRegistry::addDirectory( const std::string& path );
  void PluginRegistry::removeDirectory( const std::string& path );
  const Strings& PluginRegistry::getDirectories() const;
    replaces
  const Strings& Global::getPluginDirectories();
  static void Global::addPluginDirectory( const std::string&
  static void Global::removePluginDirectory( const std::string& path );


19/Oct/2010
  eq::net::Node::disconnect( NodePtr ) replaces ::close( NodePtr )

18/Oct/2010
  eq::PixelData replaces eq::Image::PixelData
    eq::Image method signatures change accordingly

07/Oct/2010
  removed eq::net::Object::makeThreadSafe and isThreadSafe
    application has to lock sync(), if needed
  eq::net::Object::getAutoObsolete replaces getAutoObsoleteCount

06/Oct/2010
  void eq::Client::clientLoop
  void eq::Client::exitClient
    replaces
  bool eq::net::Node::clientLoop
  bool eq::net::Node::exitClient
