<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  <title></title>
</head>
<body text="#000000" bgcolor="#ffffff">
<br>
<blockquote cite="mid:4AF87B7B.2040909@gmail.com" type="cite">
  <table class="moz-email-headers-table" border="0" cellpadding="0"
 cellspacing="0">
    <tbody>
      <tr>
        <th valign="BASELINE" nowrap="nowrap" align="RIGHT">Subject: </th>
        <td>silverlight 3 features</td>
      </tr>
      <tr>
        <th valign="BASELINE" nowrap="nowrap" align="RIGHT">Date: </th>
        <td>Mon, 09 Nov 2009 14:36:58 -0500</td>
      </tr>
      <tr>
        <th valign="BASELINE" nowrap="nowrap" align="RIGHT">From: </th>
        <td>David Reveman <a moz-do-not-send="true"
 class="moz-txt-link-rfc2396E" href="mailto:dreveman@novell.com">&lt;dreveman@novell.com&gt;</a></td>
      </tr>
    </tbody>
  </table>
  <br>
  <br>
  <pre>Been doing some basic background research on the silverlight features we
need to implement for 3.0. I'm currently getting to know the moonlight
code base and will start to implement the features in the order
described below asap..

- david


Silverlight 3.0
===============

Perspective 3D
--------------

Basic perspective transformations of 2D objects is all that is supported
by silverlight 3.0. Perspective transformations are not supported by the
cairo API but supported by pixman and xlib backends.</pre>
</blockquote>
This is awesome, I didn't know this (that it was supported by
pixman/xlib).<br>
<blockquote cite="mid:4AF87B7B.2040909@gmail.com" type="cite">
  <pre> Which means we have
to implement it as bitmap transformations by pushing the rendering of a
UIElement into a bitmap and render that bitmap unto its parent with the
perspective transformation. This intermediate compositing step will have
an impact on performance mostly due to the extremely inefficient
implementation of perspective transformation in pixman.
  </pre>
</blockquote>
Nod, sounds like an area where we can possibly contribute some
performance gains back to pixman after we've got things working.<br>
<blockquote cite="mid:4AF87B7B.2040909@gmail.com" type="cite">
  <pre>TODO
====

Pixel shaders, perspective transformations and bitmap caching can be
implemented in a similar way to how the opacity mask property in the
UIElement class is handled.

I recommend that we use Gallium3D for pixel processing

Gallium3D
  + MIT licenced
  + SSE2 optimized software implementation
  + LLVM implementation
  + Can be hardware accelerated if necessary

We need to convert .ps effect files to TGSI

  </pre>
</blockquote>
Hm, the only possible problem is download size.  how large is gallium3d
(the portions we need, anyway) when built?<br>
<blockquote cite="mid:4AF87B7B.2040909@gmail.com" type="cite">
  <pre>Proposed order of implementation:

1. Bitmap caching
2. Perspective transformations
3. Pixel shaders
4. OpenGL acceleration
  </pre>
</blockquote>
Definitely agree.<br>
<br>
awesome, and glad to have you aboard :)<br>
<br>
Chris<br>
</body>
</html>