DPSF Changelog

What's new in DPSF 2.5.0

Sep 2, 2013
  • Fixed Android bug where IndexOutOfRangeException would be thrown on some Android devices, depending on their hardware capabilities.
  • Added SetEnabledStateForAllParticleSystems(), SetVisibleStateForAllParticleSystems(), and SetEnabledAndVisibleStatesForAllParticleSystems() functions to the ParticleSystemManager class.
  • Added 2 more helper functions for updating particle transparency, UpdateParticleTransparencyWithQuickFadeIn and UpdateParticleTransparencyWithQuickFadeOut.
  • Added new DisabledWithEarlyRecycling memory management mode to allow recycling the oldest active particle when we want to add a new particle, but have no more memory available for it.
  • Added new DPSFDebugWarningExceptions that are only thrown when debugging and are meant to help users catch when they do not have DPSF setup ideally.
  • Changed the provided Default Particle System classes to be 'abstract', as they are meant to be inherited and not instanced directly.
  • Added more functionality to the MouseManager to easily detect when a mouse button is or was just pressed/released.
  • Created iOS friendly DPSF assemblies, but still not fully tested due to lack of Mac hardware required for testing.
  • Fixed performance bug in ParticleEmitterCollection, as it was generating garbage for the Garbage Collector every time the Emitters and IDs properties were accessed.

New in DPSF 2.4.1 (Apr 20, 2013)

  • Small maintenance release to fix critical Xbox bug introduced in version 2.3.0 and include new DPSFWinRTAsDrawableGameComponent.dll.

New in DPSF 2.4.0 (Apr 8, 2013)

  • Got DPSF working properly on Android using MonoGame and added DPSF Demo for Mono for Android project to show DPSF working on Android.
  • Got DPSF working properly on WinRT using MonoGame and added DPSF Demo for WinRT project to show DPSF working on WinRT.
  • Updated the Trail particle system included in the DPSF Demo a bit.
  • Changed the DefaultSpriteParticleSystem to use BlendState.NonPremultipled by default so that transparency is drawn.
  • Added try-catch blocks to prevent DPSF from throwing exceptions when moving app window between monitors.
  • Fixed bug where ParticleEmitterCollection's AllEmittersRemoved event was not firing.
  • Changed the ParticleEmitterCollection's Add() function to return back the new ParticleEmitter, rather than the new ParticleEmitter's ID.
  • Renamed IndexBufferReach to IndexBufferShort, since sometimes we need to use the short Index Buffer with the HiDef profile (e.g. with MonoGame WinRT).
  • Should now check the protected property IsUsingIntegerIndexBuffer to determine if the IndexBuffer or IndexBufferShort should be used (used to check "this.GraphicsDevice.GraphicsProfile == GraphicsProfile.HiDef").

New in DPSF 2.3 (Oct 18, 2012)

  • Particle systems can now support multiple Emitters! So rather than using multiple of the same particle system, just use one particle system with multiple emitters. Huge performance improvement!
  • Initial support added for Mono For Android, to support using DPSF on Android devices though the use of Mono. Still working some bugs out though.
  • Totally refactored the DPSF Demo to make it easier to follow and the pieces more reusable.
  • Minor bug fixes and features added.

New in DPSF 2.2.2 (Dec 22, 2011)

  • Changed EULA to make using the DPSF Splash Screen optional. Now as long as DPSF is mentioned somewhere in the application (not necessarily through a splash screen) that is acceptable.

New in DPSF 2.2.1 (Sep 9, 2011)

  • Fixed bug with accepting input during the splash screen which resulted in a null ref exception.
  • Now allow user input to skip the splash screen in the Windows Phone DPSF Demo.
  • Fixed the DPSF Demo feature to create animated gifs and tilesets from particle systems (F8).

New in DPSF 2.2.0 (Jul 8, 2011)

  • Changed all particle systems to use the built-in XNA 4 effects by default, rather than the DPSFDefaultEffect, so they are all now Reach compatible (i.e. Windows Phone 7 compatible).
  • Substantial improvement to the performance of Quad particle systems, so it is very comparable with the Sprite3DBillboard particle systems now.
  • Changed default Sampler State to LinearClamp, as PointClamp was causing aliasing problems with new effect types.
  • Updated the DPSF Splash Screen to make it Reach compatible.
  • Fixed bug in Particle System Manager where exception would be thrown by the manager if a particle system removed itself from the manager from within its Update() function.
  • Fixed bug where Emitters would still emit particles when their Enabled property was set to false.
  • Since we now use the built-in XNA 4 effects by default, added a ColorAsPremultiplied property to the particle base class, since the built-in effects expect premultiplied colors.

New in DPSF 2.1.0 (Apr 12, 2011)

  • Made DPSF compatible with the Reach profile configuration.
  • Added new Sprite 3D Billboard particle system type which can be up to 50% faster than using billboarded Textured Quads.
  • Converted most particle systems over to use the new Sprite 3D Billboard particle systems.
  • Changed particle system's IsInitialized() function into IsInitialized boolean property.
  • Fixed bug where particles wouldn't linearly interpolate (Lerp) between the emitter's previous and current position and orientation when it was moved manually (i.e. not with it's own acceleration/velocity properties).
  • Added particle system properties LerpEmittersPositionAndOrientation and LerpEmittersPositionAndOrientationOnNextUpdate to control emitter Lerping.
  • Added static DPSFDefaultSettings class to be used to set the default values to use for all DPSF particle systems when they are initialized.
  • Added CopyFrom() function and Copy constructor to Emitter and AutoMemoryManagerSettings classes.
  • Fixed bug in ParticleSystemManager's CopyFrom() function.
  • Added PerformanceProfiling variables to the DPSF particle system class and Particle System Manager class that allow you to see how long it takes to perform an Update() or Draw() function call.
  • Added new Trail, FireSprite, and MultipleParticleImagesSprite particle systems, and added templates for the Sprite 3D Billboard particle systems as well.
  • Changed default SpriteSortMode from FrontToBack to Deferred.
  • Fixed bug to treat the SpriteSortMode.Immediate mode like the other modes, since XNA 4 now supports using effects with any of the Sprite Sort Modes.
  • Added FPSUpdated event to the static FPS class that fires every second after the FPS has been updated.
  • Added ability to view performance stats in the DPSF Demo by pressing the F10 key.

New in DPSF 2.0.1 (Feb 28, 2011)

  • Fixed bug causing incompatible render settings run-time errors to be thrown.
  • Added performance optimizations.
  • Added virtual function SetCameraPosition() that may be overridden when not inheriting from the default DPSF particle system classes and will still work with the ParticleSystemManager.SetCameraPositionForAllParticleSystems() function.

New in DPSF 1.5.4.0 (Dec 9, 2010)

  • Changed install directory to be "DPSF (XNA 3.1)", rather than "DPSF" so that XNA 4 DPSF version can install to "DPSF".
  • Fixed minor memory leak in the Particle System Manager when removing particle systems.
  • Added SpriteBatch parameter to the InitializeSpriteParticleSystem() functions to allow users to draw particle systems using their own SpriteBatches, instead of every particle system using its own. Also included a new UsingExternalSpriteBatchToDrawParticles property that tells at run-time if the particle system uses its own SpriteBatch or not.
  • Added SpriteBatch parameter to the AutoInitialize() function to easily pass in an external Sprite Batch to use to draw Sprite particle systems.

New in DPSF 1.5.3.0 (Nov 9, 2010)

  • Fixed bug in Quad and Textured Quad particle systems where the texture was being drawn in reverse

New in DPSF 1.5.2.0 (Oct 5, 2010)

  • Fixed enormous amount of garbage being created when using a Sprite type particle system, causing the garbage collector to run very often.

New in DPSF 1.5.1 (Sep 2, 2010)

  • Reduced memory footprint of the Draw() function.
  • Added SetCameraPositionForAllParticleSystems() function to the Particle System Manager class.
  • Fixed exceptions that would be thrown when a particle system Destroyed itself.

New in DPSF 1.5.0.0 (May 4, 2010)

  • Added check to make sure .NET Famework 3.5 or greater and XNA 3.1 are installed on the client's machine before running the DPSF Demo, and now displays a nice warning message if they are not installed.
  • Catch and throw new exception when calling SetTexture() in the case that the texture you are loading has already been Dispose()'d.
  • Fixed bug in Default Quad particle systems where particles with a size less than 2 would not be displayed.
  • Now throw descriptive exceptions when properties try to be used before the particle system has been initialized.
  • Added Size, StartSize, and EndSize properties to the Default Sprite and Quad Particles, which simply set the Width and Height properties.
  • Updated help documentation a bit.
  • Plastered the [Serializable] attribute everywhere to make DPSF serializable.
  • Now throw more descriptive exceptions from the Particle System Manager class.
  • Added DPSFDefaultEffectTechniques enumeration which specifies all of the available Techniques for the DPSFDefaultEffect.
  • Added extra functions to the default particles.
  • Fixed bug in ParticleSystemManager.RemoveAllParticleSystems() function that would cause an invalid index exception to be thrown.
  • Fixed bug in ParticleSystemManager.DrawAllParticleSystems() function to draw particle systems in the correct order.
  • Made all Particle and ParticleSystem Update Functions protected instead of public to promote particle system encapsulation and removed extra exposed functions that should not be used from users.
  • Added explosion particle systems to the DPSF Demo.
  • Included the DPSFDefaults.cs file used by DPSF for others to modify if wanted and to learn from.

New in DPSF 1.3.0.0 (May 4, 2009)

  • Fixed bug in DPSFHelper.RandomNormalizedVector() function where it only returned positive vectors.
  • Renamed Emitter.EmitParticles property to Emitter.EmitParticlesAutomatically.
  • Added Emitter.Enabled property.
  • Added Emitter.BurstParticles and Emitter.BurstTime properties to release particles in bursts.
  • Renamed UpdateParticleSystemTurnEmitterOn/Off() functions to UpdateParticleSystemEmitParticlesAutomaticallyOn/Off().
  • Added UpdateParticleSystemEnableEmitter() and UpdateParticleSystemDisableEmitter() particle system update functions to the Default classes.
  • Fixed bug where an "index out of range" exception would be thrown when removing Events from within an Event function.
  • Renamed MultipleChangeParticleSystem.cs to SquarePatternParticleSystem.cs and changed some of its functions.
  • Formatted a lot of the XML documentation better.
  • Fixed bug in DPSFDefaultEffect.fx which caused Point Sprites to be displayed smaller when their rotation was zero.
  • Created first 5 tutorials in the Help Documentation.