Releases: KinsonDigital/Velaptor
🚀Preview Release - v1.0.0-preview.38
Velaptor Preview Release Notes - v1.0.0-preview.38
Quick Reminder
As with all software, there is always a chance for issues and bugs, especially for preview releases, so your input is greatly appreciated. 🙏🏼
New Features ✨
- #957 - Added the new overloads below to the texture renderer interface
ITextureRenderer
.void Render(ITexture texture, int x, int y, float angle, float size, int layer = 0);
void Render(ITexture texture, Vector2 pos, float angle, float size, int layer = 0);
void Render(ITexture texture, int x, int y, float angle, float size, Color color, int layer = 0);
void Render(ITexture texture, Vector2 pos, float angle, float size, Color color, int layer = 0);
void Render(IAtlasData atlas, string subTextureName, Vector2 pos, int frameNumber, int layer = 0);
void Render(IAtlasData atlas, string subTextureName, Vector2 pos, Color color, int frameNumber, int layer = 0);
void Render(IAtlasData atlas, string subTextureName, Vector2 pos, float angle, int frameNumber, int layer = 0);
void Render(IAtlasData atlas, string subTextureName, Vector2 pos, float angle, float size, int frameNumber, int layer = 0);
void Render(IAtlasData atlas, string subTextureName, Vector2 pos, float angle, Color color, int frameNumber, int layer = 0);
void Render(IAtlasData atlas, string subTextureName, Vector2 pos, float angle, float size, Color color, int frameNumber, int layer = 0);
void Render(IAtlasData atlas, string subTextureName, Vector2 pos, float angle, float size, Color color, RenderEffects effects, int frameNumber = 0, int layer = 0);
- #969 - Added the ability to know if a circle shape contains a vector by adding a method named
Contains(Vector2)
to theCircleShape
struct. - #955 - Added the ability to control how scenes wrap to first or last scene. Added the following:
- Added the property
CurrentSceneIndex
to theISceneManager
interface - Added the property
UsesNavigationWrapping
to theISceneManager
interface
- Added the property
Enhancements 💎
- #965 - Improved the
RectShape
default behavior to avoid confusion.
Bug Fixes 🐛
- #1019 - Fixed an issue where textures were not being unloaded from the content cache.
- #1009 - Fixed an issue where certain window sizes were preventing any rendering.
Breaking Changes 🧨
- #967 - Moved the
SceneAlreadyExistsException
from theVelaptor.Exceptions
namespace to theVelaptor.Scene.Exceptions
namespace - #966 - Changed the order of the constructor parameters of the
CornerRadius
struct fromCornerRadius(float topLeft, float bottomLeft, float bottomRight, float topRight)
toCornerRadius(float topLeft, float topRight, float bottomRight, float bottomLeft)
. This is a change from counterclockwise order to clockwise order. - #965 - Changed default value of the
RectShape.CornerRadius
property to have a value of 0 for all corners.
Dependency Updates 📦
- #1032 - Updated dependency communitytoolkit.mvvm to v8.3.1.
- #1031 - Updated dependency fluentassertions to v6.12.1.
- #1030 - Updated dependency kinsondigital.kdgui to v1.0.0-preview.4.
- #1022 - Updated dependency kinsondigital.casl to v1.0.0-preview.20.
- #1015 - Updated dependency microsoft.net.test.sdk to v17.11.1.
- #1004 - Updated dependency simpleinjector to v5.5.0.
- #1002 - Updated dependency Avalonia to v11.1.3.
- #1002 - Updated dependency Avalonia.Desktop to v11.1.3.
- #1002 - Updated dependency Avalonia.Diagnostics to v11.1.3.
- #1002 - Updated dependency Avalonia.Fonts.Inter to v11.1.3.
- #1002 - Updated dependency Avalonia.Themes.Fluent to v11.1.3.
Other 🪧
🚀Preview Release - v1.0.0-preview.37
Velaptor Preview Release Notes - v1.0.0-preview.37
Quick Reminder
As with all software, there is always a chance for issues and bugs, especially for preview releases, so your input is greatly appreciated. 🙏🏼
New Features ✨
- #954 - Added the ability to detect size changes with the game window. This makes it much easier to update your game objects that are based on the window size. Added the following methods to various types.
Thank you @AndreBonda!!
ISceneManager.Resize(SizeU)
SceneBase.Resize(SizeU size)
IScene.Resize(SizeU size)
Bug Fixes 🐛
- #985 - Fixed a bug where relative content paths were not working.
- #985 - Fixed a bug where text measurement caching was not working when using the
Font.Measure()
method.
Breaking Changes 🧨
- #985 - Changed the name of the
IContentPathResolver.ResolveFilePath()
method parameter namedcontentName
tocontentPathOrName
.
Dependency Updates 📦
- #989 - Updated dependency benchmarkdotnet to v0.14.0
- #988 - Updated dependency system.io.abstractions to v21.0.29
- #984 - Updated dependency sixlabors.imagesharp to v3.1.5
- This update was a fix for CVE-2024-41131
- #996 - Updated dependency avalonia.themes.fluent to v11.1.2
- #995 - Updated dependency avalonia.fonts.inter to v11.1.2
- #994 - Updated dependency avalonia.diagnostics to v11.1.2
- #993 - Updated dependency avalonia.desktop to v11.1.2
- #992 - Updated dependency avalonia to v11.1.2
- #974 - Updated dependency serilog.sinks.console to v6
- #973 - Updated dependency serilog to v4
- #972 - Updated dependency xunit to v2.9.0
- #972 - Updated dependency xunit.runner.visualstudio to v2.8.2
- #971 - Updated dependency simpleinjector to v5.4.6
Other 🪧
- #980 - Set up KD-Admin tool for development purposes.
🚀Preview Release - v1.0.0-preview.36
Velaptor Preview Release Notes - v1.0.0-preview.36
Quick Reminder
As with all software, there is always a chance for issues and bugs, especially for preview releases, which is why your input is greatly appreciated. 🙏🏼
Bug Fixes 🐛
- #959 - Fixed an issue where unloading content would be invoked more than once.
Dependency Updates 📦
- #958 - Updated dependency xunit to v2.8.0
- #958 - Updated dependency xunit.runner.visualstudio to v2.8.0
- #956 - Updated dependency simpleinjector to v5.4.5
- #953 - Updated dependency silk.net.opengl.extensions.imgui to v2.21.0
- #952 - Updated dependency silk.net to v2.21.0
- #951 - Updated actions/checkout action to v4.1.4
Other 🪧
- #872 - Refactored moq code to nsubstitute.
- #103 - Moved OpenGL error callback code.
Thank you @AndreBonda!!
🚀Preview Release - v1.0.0-preview.35
Velaptor Preview Release Notes - v1.0.0-preview.35
Quick Reminder
As with all software, there is always a chance for issues and bugs, especially for preview releases, which is why your input is greatly appreciated. 🙏🏼
New Features ✨
- #934 - Added a new
enum
namedAudioBuffer
for choosing audio buffer types. - #934 - Added a new property with the name
BufferType
to theIAudio
interface andAudio
class.- This is used to know what type of buffering is being used for the audio. This is a new feature that comes from CASL v1.0.0-preview.18.
- #934 - Added a new
Load(string atlasPathOrName)
method to theILoader<IAtlasDta>
interface for loading texture atlas data. - #934 - Added a new
Load(string audioPathOrName, AudioBuffer bufferType)
method to theILoader<IAudio>
interface for loading audio. - #934 - Added a new
Load(string texturePathOrName)
method to theILoader<ITexture>
interface for loading textures.
Bug Fixes 🐛
- #882 - Fixed the following bugs:
- Fixed a bug where invoking the
ImageData.FlipHorizontally()
method would throw a null reference exception when an instance ofImageData
struct was created via a default constructor or thedefault
keyword. - Fixed a bug where invoking the
ImageData.FlipVertically()
method would throw a null reference exception when an instance ofImageData
struct was created via a default constructor or thedefault
keyword.
- Fixed a bug where invoking the
Breaking Changes 🧨
-
#947 - 1. Removed the following constructors from the
Texture
class:- Removed constructor with the signature
Texture(string name, ImageData imageData)
. - Removed constructor with the signature
Texture(string name, string filePath)
.
- Removed constructor with the signature
-
#933 - Removed the deprecated controls UI API.
-
#882 - Removed the
width
andheight
ctor params from theImageData
struct.- The dimensions are now internally pulled from the
pixels
parameter.
- The dimensions are now internally pulled from the
-
#938 - Removed the following constructors in the content API.
- Removed the
AtlasLoader
class frompublic
tointernal
. - Removed the
TextureLoader
class frompublic
tointernal
. - Removed the
AudioLoader
class frompublic
tointernal
. - Removed the
FontLoader
class frompublic
tointernal
. - Removed the
AtlasData
class constructor frompublic
tointernal
.
- Removed the
-
#934 - Introduced the following breaking changes related to CASL audio API updates.
- Renamed the
ISound
interface toIAudio
. - Renamed the
Sound
class toAudio
. - Changed the data type of the
Position
andLength
properties toTimeSpan
. - Replaced the
State
property from theISound
interface andSound
class with the following bool properties to represent the state of the audio.IsPlaying
IsPaused
IsStopped
- The
State
property was removed due to the unintentional exposure of the CASL API.
- Removed the
Reset()
method from theISound
interface andSound
class. This method was performing the same operation as theStop()
method. - Removed the
public
constructor from theSound
class.- This was done to force users to use the content loader system.
- Refactored the name of the
LoadSoundException
toLoadAudioException
. - Refactored the name of the
SoundLoader
class toAudioLoader
. - Refactored the name of the
PathResolverFactory.CreateSoundPathResolver()
method toPathResolverFactory.CreateAudioPathResolver()
. - Refactored the name of the
ContentLoaderFactory.CreateSoundLoader()
method toContentLoaderFactory.CreateAudioLoader()
. - The default name of the content folder
Sound
which is where audio content is located has been changed toAudio
. - Refactored the
ILoader<IAudio>.Unload()
method parameter namedsound
toaudio
.
- Renamed the
Dependency Updates 📦
- #946 - Updated dependency freetypesharp to v3.0.0
- #942 - Updated dependency xunit to v2.7.1
- #942 - Updated dependency xunit.runner.visualstudio to v2.5.8
- #940 - Updated dependency sixlabors.imagesharp to v3.1.4
- #936 - Updated dependency CASL to v1.0.0-preview.19
- #932 - Updated dependency KinsonDigital.Carbonate to v1.0.0-preview.18
- #929 - Updated dependency system.io.abstractions to v21.0.0
- #928 - Updated dependency freetypesharp to v2.0.0
- #927 - Updated dependency coverlet.msbuild to v6.0.2
- #926 - Updated dependency coverlet.collector to v6.0.2
Other 🪧
🚀Preview Release - v1.0.0-preview.34
Velaptor Preview Release Notes - v1.0.0-preview.34
Quick Reminder
As with all software, there is always a chance for issues and bugs, especially for preview releases, which is why your input is greatly appreciated. 🙏🏼
Dependency Updates 📦
- #921 - Updated SixLabors.ImageSharp to v3.1.3
- This is a CVE (Common Vulnerabilities and Exposures) fix.
- #922 - Updated dependency coverlet.msbuild to v6.0.1
- #920 - Updated dependency coverlet.collector to v6.0.1
- #919 - Updated dependency xunit to v2.7.0
- #919 - Updated dependency xunit.runner.visualstudio to v2.5.7
- #918 - Updated dependency nsubstitute.analyzers.csharp to v1.0.17
- #917 - Updated dependency avalonia.themes.fluent to v11.0.10
- #916 - Updated dependency avalonia.fonts.inter to v11.0.10
- #915 - Updated dependency avalonia.diagnostics to v11.0.10
- #914 - Updated dependency avalonia.desktop to v11.0.10
- #913 - Updated dependency avalonia to v11.0.10
- #912 - Updated dependency microsoft.net.test.sdk to v17.9.0
🚀Preview Release - v1.0.0-preview.33
Velaptor Preview Release Notes - v1.0.0-preview.33
Quick Reminder
As with all software, there is always a chance for issues and bugs, especially for preview releases, which is why your input is greatly appreciated. 🙏🏼
Bug Fixes 🐛
- #903 - Fixed a bug where the batching system would throw an exception when the draw calls exceed more than 1000.
Thank you @softwareantics for discovering and reporting this issue!!
- #902 - Fixed a bug where the
WindowCenter
andWindowSize
properties for scenes are not set after instantiation but before internal initialization.Thank you @softwareantics for discovering and reporting this issue!!
- #902 - Fixed rendering text bug.
Thank you @softwareantics for discovering and reporting this issue!!
Dependency Updates 📦
- #895 - Updated system.io.abstractions to v20.0.15
- #894 - Updated actions/cache action to v4
- #893 - Updated avalonia.themes.fluent to v11.0.7
- #892 - Updated avalonia.fonts.inter to v11.0.7
- #891 - Updated avalonia.diagnostics to v11.0.7
- #889 - Updated avalonia.desktop to v11.0.7
- #888 - Updated avalonia to v11.0.7
- #887 - Updated kinsondigital/infrastructure action to v13.6.3
Other 🪧
🚀Preview Release - v1.0.0-preview.32
Velaptor Preview Release Notes - v1.0.0-preview.32
Quick Reminder
As with all software, there is always a chance for issues and bugs, especially for preview releases, which is why your input is greatly appreciated. 🙏🏼
New Features ✨
- #859 - Changed the following properties of the
CornerRadius
struct toinit
properties.TopLeft
TopRight
BottomRight
BottomLeft
Performance Improvements 🏎️
- #801 - Refactored the
FontStats
struct to areadonly record
struct.Thank you @AndreBonda!!
- #481 - Improved performance of OpenGL buffering when uploading GPU data.
Thank you @AndreBonda!!
Bug Fixes 🐛
- #875 - Fixed a bug where invoking the
Window.Show()
andWindow.ShowAsync()
methods after theWindow
has been disposed of throws incorrect exceptions.
Breaking Changes 🧨
- #859 - Set the font size to a maximum value of 100 when rendering text.
Dependency Updates 📦
- #863 - Updated benchmarkdotnet to v0.13.12
- #862 - Updated simpleinjector to v5.4.4
- #851 - Updated sixlabors.imagesharp to v3.1.2
- #850 - Updated xunit to v2.6.6
- #850 - Updated xunit.runner.visualstudio to v2.5.6
Other 🪧
🚀Preview Release - v1.0.0-preview.31
Velaptor Preview Release Notes - v1.0.0-preview.31
Quick Reminder
As with all software, there is always a chance for issues and bugs, especially for preview releases, which is why your input is greatly appreciated. 🙏🏼
Bug Fixes 🐛
- #804 - Fixed the following bugs:
- Fixed a bug where the
KeyboardState.KeyToChar()
method would return a single apostrophe instead of a double apostrophe when a shift key was pressed. - Fixed a bug where the
KeyboardState.KeyToChar()
method would return nothing when the keycode is the grave accent key while the shift key was not being pressed down.
- Fixed a bug where the
Breaking Changes 🧨
- #805 - Refactored the
MouseState
struct to areadonly
struct. - #804 - Introduced the following breaking changes:
- Removed the
GetKeyStates()
method from theKeyboardState
struct. This method was not needed due to the other methods available for users to get the state of the keyboard keys. - Removed the
AnyKeysDown(IEnumerable<KeyCode>)
from theKeyboardState
struct. This method was not needed due to the other methods available for users to get the state of the keyboard keys.
- Removed the
- #803 - Refactored the
GlyphMetrics
to areadonly record
struct.
Dependency Updates 📦
- #843 - Updated all projects to dotnet v8
- #856 - Updated reusable workflows/infrastructure to v13.6.2
- #827 - Updated actions/setup-dotnet action to v4
- #825 - Updated actions/setup-java action to v4
- #837 - Updated xunit-dotnet monorepo
- #840 - Updated dependency simpleinjector to v5.4.3
- #839 - Updated dependency silk.net to v2.20.0
- #838 - Updated dependency sixlabors.imagesharp to v3.1.1
- #830 - Updated dependency system.io.abstractions to v20.0.0
- #822 - Updated dependency serilog.sinks.console to v5.0.1
- #799 - Updated dependency serilog.sinks.console to v5.0.0
- #813 - Updated dependency microsoft.codeanalysis.netanalyzers to v8.0.0
- #797 - Updated dependency microsoft.net.test.sdk to v17.8.0
- #798 - Updated dependency serilog to v3.1.1
- #836 - Updated dependency benchmarkdotnet to v0.13.11
- #831 - Updated dependency avalonia to v11.0.6
- #835 - Updated dependency avalonia.themes.fluent to v11.0.6
- #834 - Updated dependency avalonia.fonts.inter to v11.0.6
- #833 - Updated dependency avalonia.diagnostics to v11.0.6
- #832 - Updated dependency avalonia.desktop to v11.0.6
- #828 - Updated dependency kinsondigital.casl to v1.0.0-preview.17
Other 🪧
- #845 - Deprecated the UI controls API.
- #844 - Processed all warnings.
- #823 - Added permission to sync bot workflow.
- #818 - Fixed deno permission issue.
- #806 - Refactored
GlfwVideoMode
toreadonly
struct. - #802 - Refactored
FontAtlasMetrics
toreadonly
record. - #786, #785, #784 - Replaced custom guards.
- #764 - Refactored
KeyCodeExtension
tests. - #101 - Replaced all equality checks with pattern matching.
🚀Preview Release - v1.0.0-preview.30
Velaptor Preview Release Notes - v1.0.0-preview.30
Quick Reminder
As with all software, there is always a chance for issues and bugs, especially for preview releases, which is why your input is greatly appreciated. 🙏🏼
New Features ✨
- #791 - Added the following extension methods so the user can pass the object to unload instead of the path.
ILoader<ITexture>.Unload(ITexture?)
ILoader<IFont>.Unload(IFont?)
ILoader<ISound>.Unload(ISound?)
ILoader<IAtlasData>.Unload(IAtlasData?)
Breaking Changes 🧨
- #791 - Introduced the following breaking changes:
- Removed the
ContentExtensions.Load(this FontLoader)
extension method. - Removed the
IContentLoader
interface. - Removed the
ContentLoader
class. - Removed the
ContentLoader
property from theWindow
class. - Removed the
ContentLoader
property from theIWindow
interface. - Removed the
ContentLoader
property from theIScene
interface. - Removed the
ContentLoader
property from theSceneBase
class. - Removed the
CreateContentLoader
method from theContentLoaderFactory
class. - Converted the
RendererFactory
to a static class to follow the same pattern asContentLoaderFactory
- Removed the
IRendererFactory
interface.
- Removed the
Dependency Updates 📦
- #790, #788 - Updated dependency xunit to v2.6.1
- #789 - Updated dependency benchmarkdotnet to v0.13.10
- #779 - Updated dependency communitytoolkit.mvvm to v8.2.2
Other 🪧
- #782 - Replaced custom guards.
Thank you @AndreBonda!!
- #776 - Updated sync workflow.
🚀Preview Release - v1.0.0-preview.29
Velaptor Preview Release Notes - v1.0.0-preview.29
Quick Reminder
As with all software, there is always a chance for issues and bugs, especially for preview releases, which is why your input is greatly appreciated. 🙏🏼
Enhancements 💎
- #755 - Removed the font size syntax requirements when loading fonts.
Breaking Changes 🧨
- #755 - Thrown exception changes implemented.
- Previously, when no font size meta-data syntax was used, an exception would be thrown. Instead, a default font size of 12 is used instead of throwing an exception. This is technically a breaking change.
Dependency Updates 📦
- Velaptor dependencies:
- #772 - Updated dependency silk.net to v2.18.0
- Performance testing application dependencies:
- #757 - Updated dependency benchmarkdotnet to v0.13.9
- Avalonia testing application dependencies:
- Unit testing dependencies:
- CICD related dependencies:
- #766 - Updated actions/checkout action to v4.1.1