DOM backward compatibility

From COLLADA Public Wiki
Revision as of 22:41, 21 December 2007 by SteveT (talk | contribs) (Purpose)
Jump to navigation Jump to search

This page lists changes to the COLLADA DOM API.

Purpose

Sometimes the DOM API changes in a way that prevents client applications from working properly when they upgrade to the latest DOM version. Although the DOM maintainers minimize API breakage as much as possible, sometimes it's necessary.

This page records changes that require clients to modify their code to work with a newer version of the DOM.

Note: The revision numbers given here refer to the COLLADA DOM Subversion repository on SourceForge.

Core API changes

This section tracks changes made to the core API.

Revision 168, 12 September 2007

This release renames:

  • daeElement::ref to daeElement::refElem
  • daeElement::release to daeElement::releaseElem

In general, you shouldn't call those functions directly anyway, but if you do, you'll need to update your code to use the new names.

Build setup changes

This section tracks changes made to the build files. These changes likely won't require you to modify C++ source code that uses the DOM, but may require you to modify project files that link the DOM into your application.

Revision 110, 11 June 2007, and 115, 19 June 2007

This revision consolidates libraries to make things simpler for client applications. stdErrPlugin, libxmlPlugin, and STLDatabase have been merged into dae.vcproj. In your project settings, remove any references to those libraries.

The equivalent changes were made for the Linux makefiles in revision 115 on 19 June 2007.

Revision 131, 18 July 2007, and 133

This revision removed iconv from the DOM build on Windows. Revision 133 includes a libxml build for Windows that doesn't need iconv.

In the past, we expected developers to download their own version of libxml for Windows, typically the one from Igor Zlatkovic. That libxml requires iconv, so if you update to the latest DOM, you may get link errors about missing iconv. The solution is to use the new libxml Windows build provided in the external-libs section of the SourceForge svn repository. See Building third party libraries for more details on how this library was created (useful for DOM maintainers).

Revision 134, 19 July 2007, and 147 on 20 July 2007

Updated the Visual Studio 2003 and 2005 files so the DOM can be built with both versions side by side. The build output location has changed, so:

  • If you update directly on top of the old DOM (for example, by doing an svn checkout), delete the lib/bin/tmp directories so you don't accidentally link against old libraries. If you forget to do this, you'll get a link error.
  • Change your project files to look for the DOM in the new output location.

A similar set of changes was made to the Linux build setup in revision 147 on 20 July 2007. As on the Windows side, delete the lib/bin/tmp directories if you're updating from svn.

Revision 298, 15 November 2007

PCRE is now a dependency of the DOM. If you're using the DOM as a static lib, you'll need to update your build to link against PCRE. See the DOM guide: Setting up page for more info.

I/O plug-in changes

This section tracks changes made to the I/O plug-in system. If you don't use custom I/O plug-ins then these changes won't affect your application.

Revision 77, 7 May 2007

In revision 77, changes in the atomic type and meta attribute systems require changes in I/O plug-ins. Responsibility for handling whitespace when reading a document has been moved from the I/O plug-in to the atomic types. This should simplify I/O plug-ins. See the changes made to daeLIBXMLPlugin.cpp in revision 77 for more details.

External links