Skip to content

Authoring Tools Framework 3.6 RELEASED

Gary edited this page Mar 11, 2014 · 6 revisions

The Authoring Tools Framework (ATF) 3.6 Release has many improvements and bug fixes, reflecting six months of work and client contributions. There are some minor compile-time breaking changes that are unlikely to affect anyone. Please see below for details.

Table of Contents

Top New Features

  • Circuit Group work with Santa Monica Studios and Guerrilla Games:
    • Circuit pins can be made visible or not.
    • There have been many usability improvements.
  • Perforce performance and workflow improvements
  • Timeline Editor improvements with respect to child documents
  • Recently used documents can be "pinned" so that they are not displaced by more recent documents.
  • DOM debugging improvements:
  • Many memory leaks related to documents have been fixed and Controls are disposed of sooner. This helps with automated testing and opening hundreds of documents.

Compatibility with Windows 8

All of our sample apps appear to run correctly on Windows 8. The only real issue that we are aware of is that the Direct2D performance has more variation when compared to Windows 7, and is generally worse. (See our tracker item for details.) We expect the performance to improve over time as newer drivers are released.

Breaking Changes

Visual Studio 2008 support has been dropped for the following reasons:

  • We think there may be no clients who use VS2008 and who for some reason can't use VS2010 or VS2012.
  • We would like to reduce our maintenance and testing requirements.
  • We would like to use C# 4 language features more freely, such as optional and named parameters, covariance, and contravariance.
Sce.Atf.CustomFileDialog: the UserControl property has been marked obsolete and no longer has any effect. Also, in the unlikely event that your code implemented ShowDialogInternal(), this method can be removed. We made these changes for the following reasons:
  • The UserControl property didn't work on Windows 8.
  • The file open/save dialog boxes were not always modal as they should be. (See WWSATF-1360).
  • ShowDialogInternal() no longer has a purpose now that the .Net Framework versions of the file-open and file-close dialog boxes are used.
IItemDragAdapter has a new method, EndingDrag(). In the unlikely event that a client has implemented this interface directly, rather than deriving from ATF's implementations, then simply put in the new method and have it do nothing. In the very unlikely event that client code is calling IItemDragAdapter objects, then call BeginDrag() first, then EndingDrag(). Finally, a transaction can be started and EndDrag() can be called.
Element.Synchronize(), Annotation.Synchronize(), and GroupPin.Synchronize() are no longer necessary and have been marked as obsolete. Client code should no longer call these methods, as they do nothing and will be removed in a future release of ATF. The reason for this change was that client code could easily forget to call these methods, or call them at the wrong time, and the overall API was unnecessarily complicated. We refactored the circuit elements to no longer keep duplicate data, some of which was backed by the DOM and a copy which was cached outside the DOM.
DomRecorder's Root property has been removed because DomRecorder now has the ability to report all DOM changes in all DomNode trees, using new (internal) diagnostic events in DomNode. In the unlikely event that client code was setting this property, simply remove that code.
Sce.Atf.Applications.ReplaceTextBox's protected property ReplacableContext was misspelled and has been corrected to be ReplaceableContext.

Overview of bug fixes and improvements

Just over 300 changelists have been submitted in the last six months. The following is an overview of the issues that were addressed.

CircuitEditor/Circuit Groups/Templates

Source Control/PerforceService

Annotations

Other changes

Documentation

  • Added new Getting Started with ATF document.
  • Major revisions to ATF Programmers’ Guide: Document Object Model (DOM)
Clone this wiki locally