Releases: KinsonDigital/Velaptor
🚀Production Release - v1.0.0.preview-44
Velaptor Preview Release Notes - v1.0.0-preview.44
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. 🙏🏼
Enhancement
- #1174 - Improved OpenGL debugging by removing reflection for buffer names and only including debugging with debug builds.
- #1153 - Revamped and designed the content loading API.
Breaking Changes 🧨
- #1153 - Introduced the following breaking changes due to content loading API changes:
- The
IAudiointerface does not inherit fromIDisposableanymore. - The
Audio.Dispose()method has been removed from theAudioclass.- This should not have been part of the public API. Unloading audio content is now done using the
ContentManager.Unload<T>()method.
- This should not have been part of the public API. Unloading audio content is now done using the
- The
ContentLoaderFactoryclass has been removed.- Loading content is now done using the
ContentManagerclass.
- Loading content is now done using the
- The
Sizeproperty setter of theFontclass has been removed.- Setting the size of a font is no longer done on an already loaded font. This is now done using the following
ContentManagermethods:- To load a font using the default font size of 12, use
ContentManager.Load<T>(). - To load a font with a desired size, use the
ContentManager.LoadFont()method. - This means if you want to use a font of a different size, instead of changing the size of a single already loaded font, you would load a font object for each size of font you want to use.
- To load a font using the default font size of 12, use
- Setting the size of a font is no longer done on an already loaded font. This is now done using the following
- The
Styleproperty setter of theFontclass has been removed.- Setting the style of a font is no longer done on an already loaded font. This is now done using the following
ContentManagermethods:- To load a font with a particular style, use the
ContentManager.LoadFont()method.
- To load a font with a particular style, use the
- Setting the style of a font is no longer done on an already loaded font. This is now done using the following
- Renamed the
Font.MaxCacheSizeclass andIFont.MaxCacheSizeinterface property names toMaxMeasureCacheSize. - Renamed the
Font.CurrentCacheSizeclass andIFont.CurrentCacheSizeinterface property names toCurrentMeasureCacheSize. - The
ILoader<T>interface has been removed.- Content is now loaded using the
ContentManagerclass.
- Content is now loaded using the
- Removed the
IItemCache<T, T>interface. - Removed the following load content extension methods:
ILoader<IFont>.Load(string fontName, uint size)ILoader<IAtlasData>.Load(string atlasPathOrName)ILoader<IAudio>.Load(string audioPathOrName, AudioBuffer bufferType)ILoader<ITexture>.Load(string texturePathOrName)ILoader<ITexture>.Unload(ITexture? texture)ILoader<IFont>.Unload(IFont? font)ILoader<IAudio>.Unload(IAudio? audio)ILoader<IAtlasData>.Unload(IAtlasData? atlas)
- Removed the
WidthandHeightproperties from theIAtlasDatainterface andAtlasDataclass.- These properties did not make sense. To get the width and height of the atlas texture, reference the
Textureproperty of theIAtlasDatainterface and/orAtlasDataclass instead.
- These properties did not make sense. To get the width and height of the atlas texture, reference the
- The
PathResolverFactoryclass has been changed from static to non-static. - Added a new interface
IPathResolverFactorythat is used by thePathResolverFactoryclass.
- The
Dependency Updates 📦
- #1173 - Updated actions/cache action to v5.0.0.
- #1169 - Updated system.io.abstractions to v22.1.0.
- #1168 - Updated actions/checkout action to v6.0.0.
- #1167 - Updated avalonia to v11.3.11.
- #1162 - Updated microsoft.codeanalysis.netanalyzers to v10.0.0.
- #1161 - Updated microsoft.net.test.sdk to v18.0.1.
- #1157 - Updated serilog.sinks.console to v6.1.1.
- #1156 - Updated benchmarkdotnet to v0.15.8.
- #1152 - Updated sixlabors.imagesharp to v3.1.12.
🚀Production Release - v1.0.0-preview.43
Velaptor Preview Release Notes - v1.0.0-preview.43
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. 🙏🏼
CICD
- #1136 - Updated the twitter environment variables.
Project-Config
- #1149 - Set up sprocket scripts to handle development tools.
Dependency Updates 📦
- #1147 - Updated dependency kinsondigital/infrastructure action to v16.0.0.
- #1144 - Updated dependency microsoft.net.test.sdk to v18.0.0.
- #1143 - Updated dependency xunit.runner.visualstudio to v3.1.5.
- #1141 - Updated dependency benchmarkdotnet to v0.15.4.
- #1139 - Updated dependency newtonsoft.json to v13.0.4.
- #1138 - Updated dependency system.io.abstractions to v22.0.16.
- #1137 - Updated dependency avalonia monorepo to v11.3.8.
🚀Production Release - v1.0.0-preview.42
Velaptor Preview Release Notes - v1.0.0-preview.42
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. 🙏🏼
Enhancement
- #1112 - Removed the Moq NuGet package from all projects in the solution.
Project Config
- #1123 - Updated the kd-admin developer tool to the latest version.
Performance 🏎️
- #1116 - Improved the performance of gpu batch data creation.
- #1099 - Improved the performance of uploading GPU texture data.
Tech-Debt
- #1107 - Converted all Fluent Assertions unit test code to Shouldly.
Dependency Updates 📦
- #1133 - Updated the GitHub action actions/setup-java to v5.
- #1132 - Updated the GitHub action actions/setup-dotnet to v5.
- #1131 - Updated the GitHub action actions/checkout to v5.
- #1090 - Updated the GitHub action kinsondigital/infrastructure to v14.3.0.
- #1134 - Updated the dependency kinsondigital.casl to v1.0.0-preview.22.
- #1129 - Updated the dependency SixLabors.ImageSharp from v3.1.8 to v3.1.11.
- #1128 - Updated the dependency freetypesharp to v3.0.1.
- #1125 - Updated the dependency benchmarkdotnet to v0.15.2.
- #1122 - Updated the dependency microsoft.net.test.sdk to v17.14.1.
- #1121 - Updated the dependency communitytoolkit.mvvm to v8.4.0.
- #1120 - Updated the dependency serilog to v4.3.0.
- #1115 - Updated the dependency serilog.sinks.file to v7.0.0.
- #1119 - Updated the dependency xunit.runner.visualstudio to v3.1.4.
- #1114 - Updated the dependency sixlabors.imagesharp to v3.1.8.
- #1118 - Updated the dependency avalonia to v11.3.5.
- #1110 - Updated the dependency avalonia to v11.2.8.
- #1093 - Updated the dependency avalonia to v11.2.7.
- #1109 - Updated the dependency system.io.abstractions to v22.0.15.
- #1095 - Updated the dependency system.io.abstractions to v22.
- #1094 - Updated the dependency fluentassertions to v7.2.0.
🚀Preview Release - v1.0.0-preview.41
Velaptor Preview Release Notes - v1.0.0-preview.41
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. 🙏🏼
Bug Fixes 🐛
- #1081 - Fixed an issue with out the application directory path was being resolved.
- #1084 - Fixed a bug with self-contained and single-file builds not working due to an issue that was discovered in the CASL library.
Dependency Updates 📦
- #1086 - Updated dependency xunit.runner.visualstudio to v3.0.2.
- #1084 - Updated dependency kinsondigital.casl to v1.0.0-preview.21.
- #1083 - Updated dependency system.io.abstractions to v21.3.1.
- #1080 - Updated dependency coverlet.msbuild to v6.0.4.
- #1079 - Updated dependency coverlet.collector to v6.0.4.
- #1075 - Updated dependency fluentassertions to v7.1.0.
- #1073 - Updated dependency xunit to v2.9.3.
- #1073 - Updated dependency xunit.runner.visualstudio to v3.0.1.
Performance 🏎️
- #1077 - Increased the performance of how the FPS (frames per second) is calculated by over 93%.
- For more info, check out this research issue.
Tech Debt 💳
- #1072 - Simple texture loader improvement.
CICD ⚙️
- #1087 - Updated all reusable workflow versions to the latest version.
🚀Preview Release - v1.0.0-preview.40
Velaptor Preview Release Notes - v1.0.0-preview.40
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 ✨
- #1067 - Added the ability to provide your own
IContentPathResolverwhen creating content loaders using theContentLoaderFactory.
Dependency Updates 📦
- #1065 - Updated dependency coverlet.msbuild to v6.0.3.
- #1064 - Updated dependency coverlet.collector to v6.0.3.
- #1063 - Updated dependency system.io.abstractions to v21.2.1.
Other 🪧
- #1073 - Removed an unused workflow used to prepare for releases.
🚀Preview Release - v1.0.0-preview.39
Velaptor Preview Release Notes - v1.0.0-preview.39
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. 🙏🏼
Dependency Updates 📦
- #1059 - Updated dotnet to dotnet v9.0.0.
- #1058 - Updated dependency xunit.runner.visualstudio to v3.0.0.
- #1057 - Updated dependency fluentassertions to v7.0.0.
- #1056 - Updated kinsondigital/infrastructure action to v14.1.0.
- #1055 - Updated dependency microsoft.net.test.sdk to v17.12.0.
- #1053 - Updated dependency sixlabors.imagesharp to v3.1.6.
- #1052 - Updated dependency microsoft.codeanalysis.netanalyzers to v9.0.0.
- #1049 - Updated dependency system.io.abstractions to v21.1.7.
- #1048 - Updated dependency silk.net.opengl.extensions.imgui to v2.22.0.
- #1047 - Updated dependency silk.net to v2.22.0.
- #1045 - Updated dependency nsubstitute to v5.3.0.
- #1040 - Updated avalonia monorepo to v11.2.3.
- #1038 - Updated dependency serilog to v4.2.0.
- #1037 - Updated dependency xunit to v2.9.2.
Other 🪧
🚀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 theCircleShapestruct. - #955 - Added the ability to control how scenes wrap to first or last scene. Added the following:
- Added the property
CurrentSceneIndexto theISceneManagerinterface - Added the property
UsesNavigationWrappingto theISceneManagerinterface
- Added the property
Enhancements 💎
- #965 - Improved the
RectShapedefault 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
SceneAlreadyExistsExceptionfrom theVelaptor.Exceptionsnamespace to theVelaptor.Scene.Exceptionsnamespace - #966 - Changed the order of the constructor parameters of the
CornerRadiusstruct 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.CornerRadiusproperty 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 namedcontentNametocontentPathOrName.
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
enumnamedAudioBufferfor choosing audio buffer types. - #934 - Added a new property with the name
BufferTypeto theIAudiointerface andAudioclass.- 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 ofImageDatastruct was created via a default constructor or thedefaultkeyword. - Fixed a bug where invoking the
ImageData.FlipVertically()method would throw a null reference exception when an instance ofImageDatastruct was created via a default constructor or thedefaultkeyword.
- Fixed a bug where invoking the
Breaking Changes 🧨
-
#947 - 1. Removed the following constructors from the
Textureclass:- 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
widthandheightctor params from theImageDatastruct.- The dimensions are now internally pulled from the
pixelsparameter.
- The dimensions are now internally pulled from the
-
#938 - Removed the following constructors in the content API.
- Removed the
AtlasLoaderclass frompublictointernal. - Removed the
TextureLoaderclass frompublictointernal. - Removed the
AudioLoaderclass frompublictointernal. - Removed the
FontLoaderclass frompublictointernal. - Removed the
AtlasDataclass constructor frompublictointernal.
- Removed the
-
#934 - Introduced the following breaking changes related to CASL audio API updates.
- Renamed the
ISoundinterface toIAudio. - Renamed the
Soundclass toAudio. - Changed the data type of the
PositionandLengthproperties toTimeSpan. - Replaced the
Stateproperty from theISoundinterface andSoundclass with the following bool properties to represent the state of the audio.IsPlayingIsPausedIsStopped- The
Stateproperty was removed due to the unintentional exposure of the CASL API.
- Removed the
Reset()method from theISoundinterface andSoundclass. This method was performing the same operation as theStop()method. - Removed the
publicconstructor from theSoundclass.- This was done to force users to use the content loader system.
- Refactored the name of the
LoadSoundExceptiontoLoadAudioException. - Refactored the name of the
SoundLoaderclass 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
Soundwhich is where audio content is located has been changed toAudio. - Refactored the
ILoader<IAudio>.Unload()method parameter namedsoundtoaudio.
- 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