Skip to content

Releases: KinsonDigital/Velaptor

🚀Preview Release - v1.0.0-preview.38

01 Oct 17:43
8208500
Compare
Choose a tag to compare
Pre-release

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 ✨

  1. #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);
  2. #969 - Added the ability to know if a circle shape contains a vector by adding a method named Contains(Vector2) to the CircleShape struct.
  3. #955 - Added the ability to control how scenes wrap to first or last scene. Added the following:
    • Added the property CurrentSceneIndex to the ISceneManager interface
    • Added the property UsesNavigationWrapping to the ISceneManager interface

Enhancements 💎

  1. #965 - Improved the RectShape default behavior to avoid confusion.

Bug Fixes 🐛

  1. #1019 - Fixed an issue where textures were not being unloaded from the content cache.
  2. #1009 - Fixed an issue where certain window sizes were preventing any rendering.

Breaking Changes 🧨

  1. #967 - Moved the SceneAlreadyExistsException from the Velaptor.Exceptions namespace to the Velaptor.Scene.Exceptions namespace
  2. #966 - Changed the order of the constructor parameters of the CornerRadius struct from CornerRadius(float topLeft, float bottomLeft, float bottomRight, float topRight) to CornerRadius(float topLeft, float topRight, float bottomRight, float bottomLeft). This is a change from counterclockwise order to clockwise order.
  3. #965 - Changed default value of the RectShape.CornerRadius property to have a value of 0 for all corners.

Dependency Updates 📦

  1. #1032 - Updated dependency communitytoolkit.mvvm to v8.3.1.
  2. #1031 - Updated dependency fluentassertions to v6.12.1.
  3. #1030 - Updated dependency kinsondigital.kdgui to v1.0.0-preview.4.
  4. #1022 - Updated dependency kinsondigital.casl to v1.0.0-preview.20.
  5. #1015 - Updated dependency microsoft.net.test.sdk to v17.11.1.
  6. #1004 - Updated dependency simpleinjector to v5.5.0.
  7. #1002 - Updated dependency Avalonia to v11.1.3.
  8. #1002 - Updated dependency Avalonia.Desktop to v11.1.3.
  9. #1002 - Updated dependency Avalonia.Diagnostics to v11.1.3.
  10. #1002 - Updated dependency Avalonia.Fonts.Inter to v11.1.3.
  11. #1002 - Updated dependency Avalonia.Themes.Fluent to v11.1.3.

Other 🪧

  1. #1026 - Updated the kdadmin tool.
  2. #1008 - Replaced the testing app UI with kdgui.
  3. #1005 - Refactored moq code to nsubstitute code.
  4. #950 - Improved the VelaptorTesting app.

🚀Preview Release - v1.0.0-preview.37

11 Aug 13:39
a507a97
Compare
Choose a tag to compare
Pre-release

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 ✨

  1. #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 🐛

  1. #985 - Fixed a bug where relative content paths were not working.
  2. #985 - Fixed a bug where text measurement caching was not working when using the Font.Measure() method.

Breaking Changes 🧨

  1. #985 - Changed the name of the IContentPathResolver.ResolveFilePath() method parameter named contentName to contentPathOrName.

Dependency Updates 📦

  1. #989 - Updated dependency benchmarkdotnet to v0.14.0
  2. #988 - Updated dependency system.io.abstractions to v21.0.29
  3. #984 - Updated dependency sixlabors.imagesharp to v3.1.5
  4. #996 - Updated dependency avalonia.themes.fluent to v11.1.2
  5. #995 - Updated dependency avalonia.fonts.inter to v11.1.2
  6. #994 - Updated dependency avalonia.diagnostics to v11.1.2
  7. #993 - Updated dependency avalonia.desktop to v11.1.2
  8. #992 - Updated dependency avalonia to v11.1.2
  9. #974 - Updated dependency serilog.sinks.console to v6
  10. #973 - Updated dependency serilog to v4
  11. #972 - Updated dependency xunit to v2.9.0
  12. #972 - Updated dependency xunit.runner.visualstudio to v2.8.2
  13. #971 - Updated dependency simpleinjector to v5.4.6

Other 🪧

  1. #980 - Set up KD-Admin tool for development purposes.

🚀Preview Release - v1.0.0-preview.36

05 May 09:10
5900566
Compare
Choose a tag to compare
Pre-release

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 🐛

  1. #959 - Fixed an issue where unloading content would be invoked more than once.

Dependency Updates 📦

  1. #958 - Updated dependency xunit to v2.8.0
  2. #958 - Updated dependency xunit.runner.visualstudio to v2.8.0
  3. #956 - Updated dependency simpleinjector to v5.4.5
  4. #953 - Updated dependency silk.net.opengl.extensions.imgui to v2.21.0
  5. #952 - Updated dependency silk.net to v2.21.0
  6. #951 - Updated actions/checkout action to v4.1.4

Other 🪧

  1. #872 - Refactored moq code to nsubstitute.
  2. #103 - Moved OpenGL error callback code.

    Thank you @AndreBonda!!

🚀Preview Release - v1.0.0-preview.35

20 Apr 06:23
1fbc94f
Compare
Choose a tag to compare
Pre-release

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 ✨

  1. #934 - Added a new enum named AudioBuffer for choosing audio buffer types.
  2. #934 - Added a new property with the name BufferType to the IAudio interface and Audio 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.
  3. #934 - Added a new Load(string atlasPathOrName) method to the ILoader<IAtlasDta> interface for loading texture atlas data.
  4. #934 - Added a new Load(string audioPathOrName, AudioBuffer bufferType) method to the ILoader<IAudio> interface for loading audio.
  5. #934 - Added a new Load(string texturePathOrName) method to the ILoader<ITexture> interface for loading textures.

Bug Fixes 🐛

  1. #882 - Fixed the following bugs:
    • Fixed a bug where invoking the ImageData.FlipHorizontally() method would throw a null reference exception when an instance of ImageData struct was created via a default constructor or the default keyword.
    • Fixed a bug where invoking the ImageData.FlipVertically() method would throw a null reference exception when an instance of ImageData struct was created via a default constructor or the default keyword.

Breaking Changes 🧨

  1. #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).
  2. #933 - Removed the deprecated controls UI API.

  3. #882 - Removed the width and height ctor params from the ImageData struct.

    • The dimensions are now internally pulled from the pixels parameter.
  4. #938 - Removed the following constructors in the content API.

    • Removed the AtlasLoader class from public to internal.
    • Removed the TextureLoader class from public to internal.
    • Removed the AudioLoader class from public to internal.
    • Removed the FontLoader class from public to internal.
    • Removed the AtlasData class constructor from public to internal.
  5. #934 - Introduced the following breaking changes related to CASL audio API updates.

    • Renamed the ISound interface to IAudio.
    • Renamed the Sound class to Audio.
    • Changed the data type of the Position and Length properties to TimeSpan.
    • Replaced the State property from the ISound interface and Sound 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 the ISound interface and Sound class. This method was performing the same operation as the Stop() method.
    • Removed the public constructor from the Sound class.
      • This was done to force users to use the content loader system.
    • Refactored the name of the LoadSoundException to LoadAudioException.
    • Refactored the name of the SoundLoader class to AudioLoader.
    • Refactored the name of the PathResolverFactory.CreateSoundPathResolver() method to PathResolverFactory.CreateAudioPathResolver().
    • Refactored the name of the ContentLoaderFactory.CreateSoundLoader() method to ContentLoaderFactory.CreateAudioLoader().
    • The default name of the content folder Sound which is where audio content is located has been changed to Audio.
    • Refactored the ILoader<IAudio>.Unload() method parameter named sound to audio.

Dependency Updates 📦

  1. #946 - Updated dependency freetypesharp to v3.0.0
  2. #942 - Updated dependency xunit to v2.7.1
  3. #942 - Updated dependency xunit.runner.visualstudio to v2.5.8
  4. #940 - Updated dependency sixlabors.imagesharp to v3.1.4
  5. #936 - Updated dependency CASL to v1.0.0-preview.19
  6. #932 - Updated dependency KinsonDigital.Carbonate to v1.0.0-preview.18
  7. #929 - Updated dependency system.io.abstractions to v21.0.0
  8. #928 - Updated dependency freetypesharp to v2.0.0
  9. #927 - Updated dependency coverlet.msbuild to v6.0.2
  10. #926 - Updated dependency coverlet.collector to v6.0.2

Other 🪧

  1. #924 - Removed reporator badge.
  2. #909 - Updated demo video link.
  3. #897 - Updated animation scene.
  4. #881,#868 - Refactored moq code to nsubstitute.

    Thank you @AndreBonda!!

  5. #783 - Replaced custom guards.

    Thank you @thestbar!!

🚀Preview Release - v1.0.0-preview.34

07 Mar 22:46
e252a1e
Compare
Choose a tag to compare
Pre-release

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 📦

  1. #921 - Updated SixLabors.ImageSharp to v3.1.3
  2. #922 - Updated dependency coverlet.msbuild to v6.0.1
  3. #920 - Updated dependency coverlet.collector to v6.0.1
  4. #919 - Updated dependency xunit to v2.7.0
  5. #919 - Updated dependency xunit.runner.visualstudio to v2.5.7
  6. #918 - Updated dependency nsubstitute.analyzers.csharp to v1.0.17
  7. #917 - Updated dependency avalonia.themes.fluent to v11.0.10
  8. #916 - Updated dependency avalonia.fonts.inter to v11.0.10
  9. #915 - Updated dependency avalonia.diagnostics to v11.0.10
  10. #914 - Updated dependency avalonia.desktop to v11.0.10
  11. #913 - Updated dependency avalonia to v11.0.10
  12. #912 - Updated dependency microsoft.net.test.sdk to v17.9.0

🚀Preview Release - v1.0.0-preview.33

01 Feb 14:18
e28bba9
Compare
Choose a tag to compare
Pre-release

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 🐛

  1. #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!!

  2. #902 - Fixed a bug where the WindowCenter and WindowSize properties for scenes are not set after instantiation but before internal initialization.

    Thank you @softwareantics for discovering and reporting this issue!!

  3. #902 - Fixed rendering text bug.

    Thank you @softwareantics for discovering and reporting this issue!!

Dependency Updates 📦

  1. #895 - Updated system.io.abstractions to v20.0.15
  2. #894 - Updated actions/cache action to v4
  3. #893 - Updated avalonia.themes.fluent to v11.0.7
  4. #892 - Updated avalonia.fonts.inter to v11.0.7
  5. #891 - Updated avalonia.diagnostics to v11.0.7
  6. #889 - Updated avalonia.desktop to v11.0.7
  7. #888 - Updated avalonia to v11.0.7
  8. #887 - Updated kinsondigital/infrastructure action to v13.6.3

Other 🪧

  1. #890 - Updated readme.
  2. #883 - Refactored moq code to nsubstitute code.

🚀Preview Release - v1.0.0-preview.32

16 Jan 22:16
8c3392c
Compare
Choose a tag to compare
Pre-release

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 ✨

  1. #859 - Changed the following properties of the CornerRadius struct to init properties.
    • TopLeft
    • TopRight
    • BottomRight
    • BottomLeft

Performance Improvements 🏎️

  1. #801 - Refactored the FontStats struct to a readonly record struct.

    Thank you @AndreBonda!!

  2. #481 - Improved performance of OpenGL buffering when uploading GPU data.

    Thank you @AndreBonda!!

Bug Fixes 🐛

  1. #875 - Fixed a bug where invoking the Window.Show() and Window.ShowAsync() methods after the Window has been disposed of throws incorrect exceptions.

Breaking Changes 🧨

  1. #859 - Set the font size to a maximum value of 100 when rendering text.

Dependency Updates 📦

  1. #863 - Updated benchmarkdotnet to v0.13.12
  2. #862 - Updated simpleinjector to v5.4.4
  3. #851 - Updated sixlabors.imagesharp to v3.1.2
  4. #850 - Updated xunit to v2.6.6
  5. #850 - Updated xunit.runner.visualstudio to v2.5.6

Other 🪧

  1. #875 - Refactored Moq unit test code to NSubstitute in the internal GLWindow class.
  2. #859 - Replaced all UI controls in the VelaptorTesting application with ImGui.

🚀Preview Release - v1.0.0-preview.31

02 Jan 13:38
1483c2b
Compare
Choose a tag to compare
Pre-release

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 🐛

  1. #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.

Breaking Changes 🧨

  1. #805 - Refactored the MouseState struct to a readonly struct.
  2. #804 - Introduced the following breaking changes:
    • Removed the GetKeyStates() method from the KeyboardState 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 the KeyboardState struct. This method was not needed due to the other methods available for users to get the state of the keyboard keys.
  3. #803 - Refactored the GlyphMetrics to a readonly record struct.

Dependency Updates 📦

  1. #843 - Updated all projects to dotnet v8
  2. #856 - Updated reusable workflows/infrastructure to v13.6.2
  3. #827 - Updated actions/setup-dotnet action to v4
  4. #825 - Updated actions/setup-java action to v4
  5. #837 - Updated xunit-dotnet monorepo
  6. #840 - Updated dependency simpleinjector to v5.4.3
  7. #839 - Updated dependency silk.net to v2.20.0
  8. #838 - Updated dependency sixlabors.imagesharp to v3.1.1
  9. #830 - Updated dependency system.io.abstractions to v20.0.0
  10. #822 - Updated dependency serilog.sinks.console to v5.0.1
  11. #799 - Updated dependency serilog.sinks.console to v5.0.0
  12. #813 - Updated dependency microsoft.codeanalysis.netanalyzers to v8.0.0
  13. #797 - Updated dependency microsoft.net.test.sdk to v17.8.0
  14. #798 - Updated dependency serilog to v3.1.1
  15. #836 - Updated dependency benchmarkdotnet to v0.13.11
  16. #831 - Updated dependency avalonia to v11.0.6
  17. #835 - Updated dependency avalonia.themes.fluent to v11.0.6
  18. #834 - Updated dependency avalonia.fonts.inter to v11.0.6
  19. #833 - Updated dependency avalonia.diagnostics to v11.0.6
  20. #832 - Updated dependency avalonia.desktop to v11.0.6
  21. #828 - Updated dependency kinsondigital.casl to v1.0.0-preview.17

Other 🪧

  1. #845 - Deprecated the UI controls API.
  2. #844 - Processed all warnings.
  3. #823 - Added permission to sync bot workflow.
  4. #818 - Fixed deno permission issue.
  5. #806 - Refactored GlfwVideoMode to readonly struct.
  6. #802 - Refactored FontAtlasMetrics to readonly record.
  7. #786, #785, #784 - Replaced custom guards.
  8. #764 - Refactored KeyCodeExtension tests.
  9. #101 - Replaced all equality checks with pattern matching.

🚀Preview Release - v1.0.0-preview.30

06 Nov 16:04
3ffc6f3
Compare
Choose a tag to compare
Pre-release

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 ✨

  1. #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 🧨

  1. #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 the Window class.
    • Removed the ContentLoader property from the IWindow interface.
    • Removed the ContentLoader property from the IScene interface.
    • Removed the ContentLoader property from the SceneBase class.
    • Removed the CreateContentLoader method from the ContentLoaderFactory class.
    • Converted the RendererFactory to a static class to follow the same pattern as ContentLoaderFactory
    • Removed the IRendererFactory interface.

Dependency Updates 📦

  1. #790, #788 - Updated dependency xunit to v2.6.1
  2. #789 - Updated dependency benchmarkdotnet to v0.13.10
  3. #779 - Updated dependency communitytoolkit.mvvm to v8.2.2

Other 🪧

  1. #782 - Replaced custom guards.

    Thank you @AndreBonda!!

  2. #776 - Updated sync workflow.

🚀Preview Release - v1.0.0-preview.29

23 Oct 16:35
f834371
Compare
Choose a tag to compare
Pre-release

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 💎

  1. #755 - Removed the font size syntax requirements when loading fonts.

Breaking Changes 🧨

  1. #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 📦

  1. Velaptor dependencies:
    • #772 - Updated dependency silk.net to v2.18.0
  2. Performance testing application dependencies:
    • #757 - Updated dependency benchmarkdotnet to v0.13.9
  3. Avalonia testing application dependencies:
    • #771 - Updated dependency avalonia.themes.fluent to v11.0.5
    • #770 - Updated dependency avalonia.fonts.inter to v11.0.5
    • #769 - Updated dependency avalonia.diagnostics to v11.0.5
    • #768 - Updated dependency avalonia.desktop to v11.0.5
    • #767 - Updated dependency avalonia to v11.0.5
  4. Unit testing dependencies:
    • #773 - Updated dependency xunit to v2.5.3
    • #762 - Updated xunit.runner.visualstudio to v2.5.3
  5. CICD related dependencies:
    • #766 - Updated actions/checkout action to v4.1.1

Other 🪧

  1. #751 - Created unit tests for extension methods.
    • Thank you @fkamau1 for your contribution!
  2. #359 - Refactored unit test assertions.
  3. #237 - Refactored switch statements and out of range exceptions.

    Thank you @AndreBonda!!