* An arbitrary number of background layers can now be created and deleted
using AddLayer and RemoveLayer.
* The SdlWindow's Background object now points to Layer 0, which cannot be
deleted. This should ensure that no code has been broken by this.
* A basic sample project has been added to demonstrate this new feature.
* Sprites now use world space coordinates by default. This behavior can be
changed using the CoordinateSystem property.
* Exposed effective size (sprite size with scaling) and drawn size
properties to the Sprite object.
* Added a CameraView rectangle to the SdlWindow to control what is shown in
the world space view.
* Added some arithmetic functions to the Vector2<T> class.
* Sample.Sprites: Rewrote the view windowing code. It actually works
correctly now. :)
* Sample.Sprites: Changed player movement code so that they can no longer
fly off the edges of the screen.
* Updated NuGet package information.
* Canvas is now an abstract class, with Sprite and Background
inheriting it.
* Backgrounds are now updated with texture locking like they should
have been all along.
* SdlWindow now creates its Background object using the Background
class (don't worry--that system is going to be completely changing
fairly soon as well ;)).
* Changed Canvas.DestroyTexture() to be private.
* Corrected some XMLDocs (yet again).
* Removed System.Numerics.Vectors dependency. Implemented basic
Vector2<T> type to replace it.
* ScalingQuality can now be changed for each canvas independently,
as well as for the rendering target texture.
* Point type is now based on the new Vector2<T> generic.
* GetCanvasPointer() is now a Canvas function pointer. This is a
breaking change, but it should allow any Canvas-derived object
to be fed an arbitrary ARGB surface if the implementer chooses
to take that approach.
* Canvas and Sprite textures are created in a more consistent way.
* The background Canvas now uses the same functions that Sprites
use for texture creation and updates.
* Added a public UpdateTexture() function so that implementers can
manually update sprites if necessary. This should not be used
too often as it can lead to performance issues.
* The SpriteList now initializes Sprites using the stanard Canvas
initialization routines.
* Implemented two moveable "players" in Sample.Sprites.
* Sprites can actually be drawn! Alpha and blending modes are not
supported at the moment.
* Sprite drawing has been implemented but is still untested.
* The SdlPoint/SdlRect objects in the Point/Rectangle classes
are now exposed to DotSDL for plotting purposes.
* Added some rotation center support (not fully realized).
* Sprites can now be initialized with the clipping rectangle.
* Removed RenderFlip in favor of DotSDL's FlipDirection. The
enums were were effective identical.
* Started working on Sample.Sprites.
* DotSDL's Point and Rectangle classes now use SdlPoint and SdlRect
structs internally to store their data.
* The Sprite class has been fixed, so DotSDL compiles again. Whoops.
* Added a public Rectangle struct.
* Added a constructor for the Point struct to slightly reduce typing fatigue. :)
* Modified the way that Canvas classes are initialized so that
sprite sheets and scrolling backgrounds will be possible to
implement.
* Replaced homegrown Vector2 class with the accelerated one from
System.Numerics.
* Added new Sprite initializers to take advantage of the new
ZOrder field. Changed Point data types to Vector2 where
appropriate.
* Began working on a Sprites sample project.