| KEY | |||||||||
| Yes | Implemented or planned to be implemented in ExEn Project | ||||||||
| Bug | Bugs or unintentional deviations from the XNA API that may be triggrered or noticable in some cases | ||||||||
| Major Bug | Barely usable due to serious bug or significant difference from XNA API | ||||||||
| No | Not Implemented at all | ||||||||
| As Requested | Non-critical features. Simple enough to add/return to ExEn, but work needs to be prioritised. Will add if contributors with a genuine need ask me nicely :) | ||||||||
| Stubs | Non-functional stubs to allow compilation | ||||||||
| • | This table is not a complete list of classes; it attempts to be a list of all functionality that exists in SilverSprite or ExEn or both | ||||||||
| • | Various maths types have been omitted, as they are mostly the same (ExEn contains a handful of minor improvements) | ||||||||
| • | The SilverSprite column refers to the Canvas renderer (it is better than the WriteableBitmap renderer anyway) | ||||||||
| • | For ExEn, some SilverSprite functionality was removed in order to reduce the end-user download size by a several KB | ||||||||
| • | Items marked "no" are not necessarily impossible, but require a lot of work and may have performance implications | ||||||||
| • | This table does not attempt to detail the performance improvements that ExEn makes over SilverSprite | ||||||||
| • | The bugs mentioned in this table are the significant ones; little tiny ones (and I fixed quite a lot of these) are ignored | ||||||||
| * | This table does not cover iOS, but items marked with a * are already implemented in ExEn on iOS (even though they are not in Silverlight) | ||||||||
| Namespace or Category | The work here forms part of what is being funded | ||||||||
| Class or Feature | ↓ | ||||||||
| Function or Feature | SilverSprite | ExEn on Silverlight | *Already in ExEn on iOS |
||||||
| Parameter or Feature | Notes | Already Implemented | Planned for Project |
||||||
| Application | |||||||||
| ExEnSilverApplication | Handles XAML stuff, makes getting started easier | No | Yes | Yes | |||||
| Audio | |||||||||
| SoundEffect | Yes | Yes | Yes | ||||||
| Create Instance | Yes | Yes | Yes | ||||||
| Play | Bug | Yes | Yes | ||||||
| Volume | Bug | Yes | Yes | ||||||
| Pitch | No | No | No | ||||||
| Pan | No | No | No | ||||||
| MasterVolume | Major Bug | No | Yes | ||||||
| SoundEffectInstance | Yes | Yes | Yes | ||||||
| Play/Pause/Stop/Resume | Yes | Yes | Yes | ||||||
| Volume | No | Yes | Yes | ||||||
| IsLooped | Major Bug | Yes | Yes | ||||||
| State | No | Yes | Yes | ||||||
| Media | |||||||||
| MediaPlayer | Yes | Yes | Yes | ||||||
| Play/Pause/Stop/Resume | Major Bug | Yes | Yes | ||||||
| Volume | Bug | Yes | Yes | ||||||
| IsMuted | No | Yes | Yes | ||||||
| IsRepeating | Yes | Yes | Yes | ||||||
| Song | Yes | Yes | Yes | ||||||
| Background Downloading | Reduces initial download and startup time | No | Yes | Yes | |||||
| Content | |||||||||
| XNB Loading | Removed to reduce assembly size | Yes | No | As Requested | * | ||||
| ContentManager | Yes | Yes | Yes | ||||||
| Load (internally supported formats follow) | Yes | Yes | Yes | ||||||
| PNG Textures | Yes | Yes | Yes | ||||||
| JPEG Textures | Yes | Yes | Yes | ||||||
| BMP Textures | Decoder removed for size, use PNG | Yes | No | No | |||||
| XNB Textures | (XNB Removed, See above) | Yes | No | As Requested | |||||
| DXT Textures (in XNB) | Decoder removed for size, use PNG | Yes | No | As Requested | * | ||||
| XAML Textures | These are non-XNA anyway | Yes | No | No | |||||
| XNB SpriteFonts | (XNB Removed, See above) | Yes | No | As Requested | * | ||||
| TTF SpriteFonts | Yes | Yes | Yes | ||||||
| WMA Music | Yes | Yes | Yes | ||||||
| MP3 Music | Yes | Yes | Yes | ||||||
| WAV SoundEffects | Yes | Yes | Yes | ||||||
| GamerServices | |||||||||
| API for XNA 3.1 | Removed to reduce assembly size | Stubs | No | No | * | ||||
| API for XNA 4.0 | No | No | As Requested | ||||||
| Graphics | |||||||||
| Graphics Device | |||||||||
| Arbitrary Silverlight Controls | Insert arbitrary Silverlight controls into the immediate-mode Z-order (for example: my line-renderer uses this) | No | Yes | Yes | |||||
| Window-clipping | Made optional for performance | Yes | Yes | Yes | |||||
| Viewport clipping | Read-only in ExEn for performance | Yes | No | No | * | ||||
| Clear | (Full screen only) | Bug | Yes | Yes | |||||
| SpriteBatch | Yes | Yes | Yes | ||||||
| Begin (for XNA 3.1) | Yes | Yes | Yes | ||||||
| Alpha Blending | SilverSprite gets premultiplied alpha wrong! | Bug | Yes | Yes | |||||
| Additive Blending | No | Yes | Yes | ||||||
| Sprite Sorting | Yes | No | Yes | ||||||
| Transformation Matrix | Matrix must be Affine 2D | No | Yes | Yes | |||||
| Aribrary 3D transform requires SL4 | No | No | As Requested | * | |||||
| Begin (for XNA 4.0) | No | No | Yes | ||||||
| Draw and DrawString | SilverSprite has some serious performance issues here | Yes | Yes | Yes | |||||
| Position/Rotation/Scale | Yes | Yes | Yes | ||||||
| SourceRectangle | Yes | Yes | Yes | ||||||
| DestinationRectangle | Yes | Yes | Yes | ||||||
| Color | Yes | Yes | Yes | ||||||
| Origin | Major Bug | Yes | Yes | ||||||
| SpriteEffects | Major Bug | Yes | Yes | ||||||
| LayerDepth | (part of Sprite Sorting) | Yes | No | Yes | |||||
| Hint Functions | Extra-API feature to enable user to set best mode for performance | No | Yes | Yes | |||||
| RenderTarget2D | Removed for performance | Yes | No | No | |||||
| Texture2D | Yes | Yes | Yes | ||||||
| Get and Set Bitmap Data | Yes | No | As Requested | ||||||
| SpriteFont | Yes | Yes | Yes | ||||||
| Bitmap Fonts | (XNB Removed, See above) | Yes | No | As Requested | * | ||||
| TTF Fonts | Yes | Yes | Yes | ||||||
| Measure String | Yes | Yes | Yes | ||||||
| Input | |||||||||
| Keyboard (and KeyboardState) | Lots of little bugs here in SilverSprite, but nothing overt | Yes | Yes | Yes | |||||
| IsKeyDown/IsKeyUp | Yes | Yes | Yes | ||||||
| GetPressedKeys | Yes | No | Yes | ||||||
| Mouse (and MouseState) | Yes | Yes | Yes | ||||||
| GamePad (and GamePadState) | Emulated by Keyboard on SilverSprite | Yes | Stubs | As Requested | |||||
| Game and Game Components | |||||||||
| Game Class | Yes | Yes | Yes | ||||||
| GameWindow | Unchanged | ||||||||
| GameComponent, DrawableGameComponent, etc | Major Bug | Yes | Yes | ||||||
| GameLoop | ExEn significantly reduces stuttering at the cost of a small amount of timer drift (XNA does the same thing) | Bug | Yes | Yes | |||||
| Storage | |||||||||
| StorageDevice, StorageContainer (XNA 3.1) | Stubs / Bug | No | No | ||||||
| XNA 4.0 API | No | No | As Requested | ||||||