At MIX 08 (yes 2008) one of the sessions I watched on video discussed game development on Silverlight 2, and I after watching it I was scared of ever creating anything with Silverlight of that sort, because of a serious limitation. These people making this game were unable to create bitmap sprites. Tiling, animations and the like had to be created with vector brushes and storyboards. What an awful joke! I swore off Silverlight for tinkering with games until Microsoft would expose a bitmap API that would facilitate bitmap editing, bitmap-to-canvas, as well as canvas-elements-to-bitmap.
I’ve mentioned my concerns in this blog before, even again recently.
It looks like Silverlight 3 is going to deliver. It will be barebones—the bitmap API is strictly pixel-level bitmap tweaking (no inherent System.Drawing equivalence or PNG import/export). But it’s SOMETHING, and something is better than nothing. Microsoft threw us a bone. Meanwhile, the bitmap caching is described as such: “Silverlight 3 dramatically improves the rendering performance of applications by allowing users to cache vector content, text and controls into bitmaps. This feature is useful for background content and for content which needs to scale without making changes to its internal appearance.” This sounds a lot like a solution to the original problem I (and apparently they) observed. I don’t know, however, how carefully that text was written. Can we really export canvas objects, such as the canvas itself, to a bitmap? If so, theoretically one could easily use this create screenshots of Silverlight, or even video recordings of Silverlight usage. This could also be a printer solution, assuming you can also export a higher DPI than screen default.
It’s all way cool, regardless.