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 |