The following table lists all of the API changes between 2.0 and 3.0. There
are changes to internal structs and other things but I'm not listing them here
unless it seemd particularly interesting - the public interface changes are
quite enough to digest. The changes are based on the Windows versions of the
assemblies. Maybe I will compare the others at some point.
I know its not very readable... I will tidy it up a little later on
| Audio |
| InstancePlayLimitException | *new* | |
| SoundEffect | *new* | |
| SoundEffectInstance | *new* | |
| SoundState [enum] | *new* | |
| VoiceState [enum] | *new* | |
| Content |
| ContentReader | *changed* | |
| public Color ReadColor() | |
| SpriteFontReader | *changed* | Something about default
characters? |
| GamerServices |
| ErrorHandler [internal] | *changed* | New error cases for:
NotInvited, InviteeNotSignedIn, TrialMode, NetworkNotAvailalbe |
| GamerPresence | *new* | |
| GamerPresenceMode | *new* | Big enum of 'things you are
doing'... some fun ones including 'CornflowerBlue' and 'StuckOnAHardBit' |
| GamerPrivileges | *changed* | AllowOnlineSessions now
returns false if you are in trial mode |
| Guide | *changed* | |
| void ShowGameInvite() | |
| void ShowMarketPlace() | |
| bool IsTrialMode | |
| bool SimulateTrialMode | |
| GuideState [enum] | *new* |
IsGuideVisible,
IsNetworkCableUnplugged, IsTrialMode |
| KernalCallType [intenal] | *changed* | Interesting values that
refer to Achievements and Leaderboards !!! |
| ParameterValidation [internal] | *changed* | Ditto values about
Leaderboards - probably nothing to get excited about |
| SignedInGamer | *changed* | |
| GamerPresence Presence | Presence information |
| Graphics |
| Color | *changed* | |
| Color(float, float, float) | |
| Color(float, float, float, float) | |
| Color(Color, byte) | |
| Color(Color, float) | |
| R | Now has Set{} no longer readonly |
| G | Now has Set{} no longer readonly |
| B | Now has Set{} no longer readonly |
| A | Now has Set{} no longer readonly |
| Color Lerp(Color, Color, float) | |
| DisplayMode | *changed* | |
| Rectangle TitleSafeArea | |
| SpriteBatch | *changed* | |
| DrawString(*) | Throws exception if text is null |
| void DrawString(..., StringBuilder, ......) | |
| SpriteFont | *changed* | |
| SpriteFont(...., char DefaultCharacter) | |
| Vector2 MeasureString(StringBuilder) | |
| ReadOnlyCollection<char> Characters | |
| char? DefaultCharacter | |
| int LineSpacing | Now has Set{} no longer readonly |
| Texture2D | *changed* | |
| Texture2D(GraphicsDevice, int, int) | Now you can make an
empty texture |
| Viewport | *changed* | |
| UnProject | Looks like the subtle bug has been fixed - see
if you can spot it! |
| Rectangle TitleSafeArea | I'm guessing different
implementations on Windows/Zune and 360. Windows does nothing! |
| Input |
| Buttons [enum] | *changed* | |
| BigButton | |
| GamePadButtons | *changed* | |
| ButtonState BigButton | |
| GamePadCapabilities | *changed* | |
| bool HasBigButton | |
| GamePadType [enum] | *changed* | |
| AlternateGuitar | |
| BigButtonPad | |
| Media - whole namespace is new |
| Album | *new* | |
| AlbumCollection | *new* |
|
| Artist | *new* | |
| ArtistCollection | *new* | |
| Genre | *new* | |
| GenreCollection | *new* | |
| MediaLibrary | *new* | |
| MediaPlayer | *new* | |
| MediaQueue | *new* | |
| MediaSource | *new* | |
| MediaSourceType [enum] | *new* | |
| MediaState [enum] | *new* | |
| Picture | *new* | |
| PictueAlbum | *new* | |
| PictureAlbumCollection | *new* | |
| PictureCollection | *new* | |
| Song | *new* | |
| SongCollection | *new* | |
| VisualizationData | *new* | |
| Net |
| InviteAcceptedEventArgs | *new* | |
| NetworkGamer | *changed* | |
| byte Id | |
| bool IsGuest | |
| NetworkNotAvailableException | *new* | |
| NetworkSession |
*changed* | |
| EventHandler<> InviteAccepted |
| IAsyncResult AddLocalGamer(SignedInGamer) | |
| void BeginCreate(..., IEnumerable<SignedInGamer>, .....) | |
| IAsyncResultBeginFind(...., IEnumerable<SignedInGamer>, ....) |
| IAsyncResult BeginJoinInvited() | |
| NetworkSession Create(..., IEnumerable<SignedInGamer>, ....) |
| NetworkSession EndJoinInvited(IAsyncResult) | |
| AvailableNetworkSessionCollection Find(....,
IEnumberable<SignedInGamer>, ....) |
| NetworkGamer FindGamerById(byte) | |
| NetworkSession JoinInvited() | |
| PacketReader | *changed* | |
| Color ReadColor() | |
| PacketWriter | *changed* | |
| void Write(Color) | |
| SendDataOptions [enum] | *changed* | |
| Chat | Does this mean text chat is now unencrypted and
allowed? |
| Storage |
| StorageContainer | *changed* | |
| StorageContainter(...., bool AlloweTransferBetweenPlayers...) |
Interesting - explicit file charing between profiles I think. |
| Framework |
| BatteryChargeStatus [enum] | *new* | |
| FrameworkDispatcher | *new* | Something we can use? |
| FrameworkResources [internal] | *changed* | More stuff about
leaderboards! |
| Helpers [internal] | *changed* | |
| InstancePlayLimitException | New exception called from here |
| MathHelper | *changed* | |
| float WrapAngle(float) | |
| PowerLineStatus [enum] | *new* | |
| PowerStatus | *new* | |
| Rectangle | *changed* | |
| Point Location | |
| Point Center | |
| bool IsEmpty | |
| Rectangle Intersect(Rectangle, Rectangle) | |
| void Intersect(ref Rectangle, ref Rectangle, out Rectangle) |
|
| Rectangle Union(Rectangle, Rectangle) | |
| void Union(ref Rectangle, ref Rectangle, out Rectangle) | |
| TargetPlatform [enum] | *changed* | |
| Zune | |
| Game | *changed* | |
| Protected ShowMissingRequirementMessage | If you need to
change the message when the device isn't good enough |
| void SupressDraw() | |
| ContentManager Content | Now has Set{} - no longer readonly |
| Resources [internal] | *changed* | |
| NoAudioHardware message | |
| NoSuitableGraphicsDevice messages | |
| | | |