Project Austin - A Case Study In Modern C++
Written by Mike James   
Monday, 24 September 2012

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.

 

austinstrokemesh

 

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

 

raspberry pi books

 

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.

 

Banner


AWS Introduces A New JavaScript Runtime For Lambda
19/03/2024

Amazon has announced the availability, albeit for experimental purposes, of a new JavaScript based runtime called Low Latency Runtime or LLRT for short, to bring JavaScript up to the performance throu [ ... ]



Azure AI And Pgvector Run Generative AI Directly On Postgres
26/03/2024

It's a match made in heaven. The Azure AI extension enables the database to call into various Azure AI services like Azure OpenAI. Combined with pgvector you can go far beyond full text search. Let's  [ ... ]


More News

 

Last Updated ( Monday, 24 September 2012 )