Project Austin - A Case Study In Modern C++ 
Project Austin - A Case Study In Modern C++


Project Austin is recreating the abandoned Microsoft Courier tablet's note taking software. What is really interesting, however, is that this is a show case for modern C++ as envisaged by Microsoft.



The project is being documented in a very readable way on the Visual C++ Blog and this is where you will find the fine detail. The project uses WinRT and hence the term "modern" C++ also applies to the type of app being created.
The idea is to create a free flowing notebook that works as if it was paper and pen.
"Austin is a digital note-taking app for Windows 8. You can add pages to your notebook, delete them, or move them around. You can use digital ink to write or draw things on those pages. You can add photos from your computer, from SkyDrive, or directly from your computer's camera. You can share the notes you create to other Windows 8 apps such as e-mail or SkyDrive."
You can see it in action in the video:


What is interesting about this application, from the programmer's point of view, is that it makes use of the new features in Visual Studio 2012 - automatic code vectorization and C++ AMP. It therefore raises the question, what can parallelization bring to a graphics app? This appears to be a lot in theory - but at what cost?
The app is based on using DirectX for the graphics and, even though the scene is essentially a 2D page, it is represented in a full 3D space. The UI is, of course, constructed using XAML. Of particular interest is the way that the pen strokes are rendered using a 2D mesh rather than a bitmap, say. Interestingly, the original intent was to create a geometry shader to handle the mesh but, for now at least, it is processed by the CPU and handed on to the GPU for rendering.



At the moment the only part of the system that uses C++ AMP is the pager turn animation, but the claimed speed increase is sufficient to make it attractive to convert other pats of the system to it.
You can download the code from CodePlex and play with it. At the moment there is no word of whether or not this will turn into a real app available for end users on Windows 8 or WinRT, but it would be a shame for so much work not to reach a wider audience.
In the meantime stay tuned to the C++ Blog to follow the rest of the explanation.


 The War At Microsoft - Managed v Unmanaged 
 Getting started with Managed C++
 Building and using C++ WinRT components




Comments

or email your comment to: comments@i-programmer.info

To be informed about new articles on I Programmer, install the I Programmer Toolbar, subscribe to the RSS feed, follow us on, Twitter, Facebook, Google+ or Linkedin,  or sign up for our weekly newsletter.




