Commit Graph
100 Commits
Author SHA1 Message Date
RobertBeekman a25d0f0c9c Core - Fix profile rendering and timeline bugs found by the tests (#909)
* Core - Keep the name of renamed layer effects when loading

BaseLayerEffect.Load checked HasBeenRenamed before reading it from the entity, so renamed effects always fell back to the descriptor's display name.

* Core - Apply layer effect filters once on layers

Layer.DelegateRendering composited the layer with the pre-processed paint and also handed that paint to the brush, so color and image filters of effects applied to the brush output and again when compositing. The brush now gets a copy of the paint without those filters, like folders which apply them once.

* Core - Disable folders that get suspended while enabled

Layer.Update disables a suspended layer but Folder.Update only disabled a folder once its timeline finished, so a folder suspended outside of the editor kept rendering its children.

* Core - Update device LEDs when rotating or scaling a device

The Rotation and Scale setters only updated the RGB.NET device, the Artemis LED rectangles and the device path kept their old positions and DeviceUpdated wasn't raised until X or Y was set.

* Core - Correct the docs of the Layer and Folder constructors

They claimed the new element adds itself to the child collection of the parent, it doesn't and callers rely on adding it themselves.

* Core - Apply layer opacity once for brushes that draw with the paint

Brushes drawing with a shader or image keep the alpha of the paint they are given, so the layer opacity and opacity effects applied to the brush output and again when compositing, 50% opacity rendered at 25%. The brush now gets an opaque paint, per-LED brushes already overrode the color. The solid color test brush now draws with a shader like the real solid brush so the opacity tests cover this.

* Tests - Describe expected faded colors by their opacity

Adds an AtOpacity helper so assertions read as red at 50% over black instead of a hand-computed 127, and uses it for layer opacity, opacity effects, folder fades, the profile fade and semi-transparent drawing.

* Core - Wrap timelines around by how far they went past the main segment

Repeating timelines wrapped around by the frame time rather than by how
far they went past the end of the main segment, so wrapping could be off
by up to a frame. A timeline that was already past the end, like the
finished timeline new layers start with, still starts the main segment
over.

* Tests - Mention the defaults the timeline wrap-around tests depend on
2026-10-20 13:30:04 +02:00
RobertBeekman 504845c7d2 Tests - Add Artemis.Core and profile editor test suites (#907) 2026-10-20 09:22:10 +02:00
RobertBeekman 6e7fae16d2 Merge pull request #903 from senposage/codex/close-process-query-handles
Close process query handles
2026-10-17 21:12:15 +02:00
RobertBeekman 163f713b31 CI - Allow pull requests to master from any branch
Remove the workflow that only allowed pull requests to master from development, which no longer exists.
2026-10-17 21:10:33 +02:00
RobertBeekman 65409c4378 Merge pull request #906 from Artemis-RGB/feature/small-led-render-scale
Keep small LEDs addressable at reduced render scales and reduce texture readback allocations
2026-10-17 21:02:23 +02:00
RobertBeekman ce5fa00aed Core - Stop sampling SKTexture after disposal 2026-10-17 20:38:30 +02:00
RobertBeekman e1357f1bf0 Core - Keep small LEDs addressable at reduced render scales
Sample each LED from its unsnapped absolute boundary instead of the
render-grid-aligned AbsoluteRectangle, ensuring at least one pixel and
clamping to the texture. Also apply the saved render scale at startup.
2026-10-17 20:38:30 +02:00
Robert 46511022d6 Merge branch 'development' 2026-01-01 16:20:55 +01:00
Robert 961e8e709a Menu - Don't collapse workshop menu item when navigating to it from a submenu item 2026-01-01 16:20:48 +01:00
Robert 14c301a37e Visual tweaks 2025-12-31 12:38:53 +01:00
Robert 559434630d Show multiple recent releases per entry if available 2025-12-31 09:44:14 +01:00
Robert 562049681f Workshop - Recently updated tab 2025-12-30 10:02:16 +01:00
Robert 74d5480d7b Surface editor - Show model instead of device name
Settings - Add link to plugin's workshop page
Workshop library - Recently updated tab (WIP)
2025-12-29 12:30:24 +01:00
Robert 0823de45a4 Merge branch 'feature/docs-in-docker' into development 2025-12-29 12:02:57 +01:00
Robert cb1bc5daf7 Remove old CI stuff 2025-12-29 12:02:46 +01:00
Robert 7043505ca8 Add Dockerfile 2025-12-29 11:42:32 +01:00
Robert f61884806a Filter out storage 2025-12-29 11:17:53 +01:00
Robert 487f9ff8b3 Merge branch 'development' 2025-12-27 21:42:25 +01:00
Robert 9bc4eca7f9 UI - Fix back-button not always working (I blame you, Avalonia)
Workshop - Add a EF migration to fix entry types based on metadata
2025-12-27 21:42:09 +01:00
Robert efd893c209 Workshop - Fix misalignment in EntryTypes causing plugins to not load
Core - Downgrade SkiaSharp back to what Avalonia likes, 2.88.9
2025-12-23 20:53:39 +01:00
Robert 7985cde6a3 Workshop - Update workshop schema 2025-12-23 08:36:13 +01:00
Robert d063f13ca5 Hotfix - Auto-enable plugins after updating them 2025-12-23 07:44:52 +01:00
Robert 7c7d91eda9 Hotfix workshop auto-update 2025-12-22 20:47:26 +01:00
Robert 4b58485956 Fix version number and .net version 2025-12-22 20:20:54 +01:00
Robert fb100eb9ad Merge branch 'development' 2025-12-22 20:13:58 +01:00
Robert 6bf5a11108 Workshop - Improved workshop entry compatibility handling
Workshop - Added minimum Artemis version to releases
2025-12-22 20:13:49 +01:00
Robert 86f2426f37 Core - Remove API versioning, we have MinimumVersion to achieve the same thing 2025-12-19 23:11:27 +01:00
Robert e2cb73e327 Don't log so much Avalonia stuff even when debugging tyvm 2025-12-16 22:37:10 +01:00
Robert 55dca6cebb Upgrade packages
Update namespaces
Clean up unused imports
Replace Avalonia.ReactiveUI with ReactiveUI.Avalonia 🙄
2025-12-16 22:28:16 +01:00
Robert fdc02ec581 Merge branch 'development' 2025-12-13 17:11:03 +01:00
Robert 8e4a430e19 Workshop - Fix default sorting being blank
Sidebar - Allow right-clicking a profile to open the menu without opening the profile
Profile editor - Fix editor not stopping to focus the profile
2025-12-13 16:19:16 +01:00
Robert db59b5dd55 Merge branch 'development' 2025-12-12 18:35:18 +01:00
Robert 0eb2c3a3b2 Remove plugins from build 2025-12-12 18:32:10 +01:00
Robert 5d7fb777ce Merge branch 'development' 2025-12-12 18:29:43 +01:00
Robert ce4885f06d Merge branch 'feature/default-entries' into development 2025-12-12 18:29:35 +01:00
Robert bda247d3c3 Streamlines plugin management and installation
Refactors plugin handling for improved reliability and user experience.

- Removes built-in plugin copying, migrating to workshop-based installation
- Introduces a dedicated service for plugin interactions (enabling, disabling, removal, settings)
- Simplifies plugin enabling/disabling logic in the UI, centralizing the logic
2025-12-12 18:29:24 +01:00
Robert 7f5b677cc3 Capture view model references in WhenActivated of views to avoid NRE 2025-12-11 23:58:15 +01:00
Robert 5609065974 Workshop - Add --alt-login-callback startup argument
UI - Rounded corners on profile icons
2025-12-11 23:54:50 +01:00
Robert 06c5294e88 Profile editor - Fix race condition causing the editor to fail to activate on suspended profiles
Surface editor - Implemented left-handed preset
2025-12-11 22:55:31 +01:00
Robert 108cbaae3d Replace profile-from-workshop-dialog with a page 2025-12-10 23:06:14 +01:00
Robert 638dbd11eb Revert regrets 2025-12-09 20:57:51 +01:00
Robert 2ad5f974e8 Think better of move 2025-12-09 20:55:50 +01:00
Robert bfffa99737 Fix build 2025-12-09 20:48:52 +01:00
Robert 3c8d8b2387 Plugins - Allow config window to be mandatory
UI - Move profile editor into Profile screen, profile page no longer always has to show the editor
2025-12-09 20:42:13 +01:00
Robert 565647f1ed Workshop - Improves default entry handling in workshop
Core - Modifies the Artemis data folder path based on the build configuration.
Plugins - Adds a confirmation dialog to prompt the user to restart if a plugin requires admin rights.
Startup wizard - Updates the installation progress bar in the startup wizard.
Workshop - Changes category retrieval to be based on EntryType.
Workshop - Adds the ability to include default entries when searching the workshop.
2025-12-08 22:27:18 +01:00
Robert f0cbc3e561 Workshop - Add button to upload submission directly from library
Workshop - While creating submission allow fitting the icon instead of cropping
Workshop - Add the ability to filter default entries
2025-12-06 20:27:48 +01:00
Robert 13c497f41e Enhances setup wizard workflow
Refactors the setup wizard to streamline the initial user
experience. Includes the following changes:

- Adds nyan cat animation during feature installations for user enjoyment
- Skips essential feature selection if workshop is unreachable
- Moves directly to settings after device/surface selection
- Adds option to configure settings, after device configuration
2025-12-04 23:09:28 +01:00
Robert adbf850bff More default entries UX 2025-11-30 15:41:21 +01:00
Robert 7c435fb037 Wizard UI improvements and further implementation of default entries step 2025-11-23 15:54:56 +01:00
Robert 6d1e39c1cc Try HotReload 3.0 2025-11-22 00:01:11 +01:00
Robert b351f685f7 Add AXAML hot reload (debug only)
Major progress on default entries too I guess lmao
2025-11-15 15:07:54 +01:00
Robert 20fb6b7662 Add default entries wizard step 2025-08-19 09:01:21 +02:00
Robert f05faa440c Update packages 2025-05-24 11:41:14 +02:00
Robert 3caf782d8e Workshop - Add ability to mark entry as default (admin only)
Workshop - Allow editing other user's entries (admin only)
Workshop - Show last update date in entry list instead of creation date
2025-04-19 11:37:28 +02:00
Robert acd35176e1 Merge branch 'development' 2025-02-16 17:06:39 +01:00
Robert 10a10b9149 Plugin Settings - When searching, search in plugin and features
Plugin Settings - Never scroll inside feature list, just show everything if a plugin has many features
2025-02-16 17:06:22 +01:00
Robert 37b8c2c3e9 Webserver - Add option to enable remote access 2025-02-16 12:05:26 +01:00
Robert 3367280576 Startup wizard - Correctly remember wizard was compelted
Settings - Fix double navigation occuring when opening settings
Settings - Fix double navigation occuring when opening releases
2025-02-16 11:15:52 +01:00
RobertBeekman 17e6c655ff Core - Replace EmbedIO with GenHTTP
Replace EmbedIO with GenHTTP
2025-02-15 16:53:05 +01:00
Robert fcf00af130 Add missing status handler, add TODO 2025-02-15 16:52:26 +01:00
Robert 7176aba0d6 Nodes - Inform nodes they are being loaded using the new IsLoading property 2025-02-14 22:15:03 +01:00
Robert 14c7940a21 UI - Fix visual regressions that occured after updating Avalonia at some point 2025-02-14 19:02:56 +01:00
Robert 0a26319914 Remove unneccesary error handler 2025-02-14 18:20:54 +01:00
Robert eb4a6ceafb Finish implementing GenHTTP 2025-02-13 21:35:35 +01:00
Robert e09389c6db Replace EmbedIO with GenHTTP 2025-02-08 22:48:51 +01:00
Robert 1ff509aac9 Bump .NET version in CI 2025-02-04 21:21:14 +01:00
Robert 2acac792f2 Merge branch 'development' 2025-02-04 21:01:16 +01:00
Robert cfdcbe44c9 Meta - Update dependencies 2025-02-04 20:52:09 +01:00
Robert df95e64567 Wizard - Refactored code into separate view models per step
Wizard - Skip layout and surface steps when no devices are found
Workshop - Fixed crash when opening library
2024-12-29 13:31:06 +01:00
Robert 4c6ca9b511 Merge branch 'development' 2024-11-14 20:35:46 +01:00
Robert 25786c6951 Workshop - Limit home page submissions 2024-11-14 15:03:14 +01:00
Robert d725234d56 Storage - Downgrade EF for now to latest 8.x
Core - Include backwards compatible color quantizer methods
2024-11-14 14:58:54 +01:00
Robert 37f973b093 Core - Removed scripting providers
Meta - Updated packages
2024-11-14 14:09:51 +01:00
Robert 7691af95b9 Merge remote-tracking branch 'origin/RGB.NET_v3' into development 2024-11-14 13:30:08 +01:00
Robert 907c758b83 Meta - Update packages 2024-09-23 22:17:46 +02:00
Robert d2afc77bb8 Merge branch 'development' of github.com:Artemis-RGB/Artemis into development 2024-09-23 21:39:25 +02:00
RobertBeekman a6e75d7a40 Merge pull request #854 from Artemis-RGB/JsonUpdate
Bumped System-Text.Json to 8.0.4
2024-08-17 14:10:42 +02:00
Robert ec5fbba87c Workshop - Revert voting changes, was fun to try but not useful enough 2024-07-24 22:07:58 +02:00
Robert 1e8c68bbeb Workshop - Avoid crashes when auto-updating without internet
Workshop - Added vote based entry score system
2024-07-24 11:39:56 +02:00
Robert 972f1c638c Merge branch 'development' 2024-07-22 14:52:36 +02:00
Robert 7f5bb589af Try to fix CI build 2024-07-22 14:52:30 +02:00
Robert 4debfee6c1 Merge branch 'development' 2024-07-22 14:42:24 +02:00
Robert 9001a12625 Workshop - Refactor InstalledEntry to not implement IEntryDetails
This turned out to be a hassle
2024-07-22 14:42:17 +02:00
Robert a793a08213 Merge branch 'development' 2024-07-22 11:02:05 +02:00
Robert a45d98c171 Workshop - Added indicator for official workshop entries 2024-07-22 11:01:50 +02:00
Robert b00f5ca73a Workshop - Added indicator for official submissions
Router - Reload previous screen if navigation is cancelled
Profile editor - Disable auto-update when editing workshop profiles
2024-07-20 22:34:41 +02:00
Robert 3b2d799bfc Workshop - Auto-updating WIP 2024-07-14 22:14:17 +02:00
Robert 99d11e1921 Workshop - Redesigned library
Workshop - Limit screen width to keep main content at 1000px
Workshop - Auto-updating WIP
2024-07-13 20:25:40 +02:00
Robert 0e911d68ba Merge branch 'development' 2024-07-12 23:42:49 +02:00
Robert 4552b3ba17 UI - Fix Markdown link issues 2024-07-12 23:41:50 +02:00
Robert bd904178c8 Merge branch 'development' 2024-07-04 20:16:21 +02:00
Robert 00948de9d6 Workshop - Fix installing new versions of profiles 2024-07-02 22:34:25 +02:00
Robert 648b7765ef Core - Added API for retrieving current suspended device providers
Core - Added events for plugin removal, entry installlation/uninstallation
Workshop - Remove the related workshop entry when manually removing a plugin or profile
Workshop - Prevent installing profiles with missing plugins and show a dialog with which plugins are missing
2024-06-30 09:42:41 +02:00
Robert 86f78940b1 Workshop - Manage entries after installing them
Workshop - Auto-enable plugins after installing them
Workshop - Show the latest release above the details page
2024-06-25 21:29:52 +02:00
Robert 966ca47335 Meta - Updated packages 2024-06-22 22:47:02 +02:00
Robert 35d5ef1743 Startup wizard - Show device providers from all plugins 2024-05-25 16:45:59 +02:00
Robert 7052ee38b6 Merge branch 'development' 2024-05-18 13:32:53 +02:00
RobertBeekman 3022c7df65 Core - Add device provider suspension system 2024-05-16 20:40:45 +02:00
Robert db6fb33c96 Data model picker - Implemented search 2024-05-05 16:27:08 +02:00
Robert d9a3a238af Merge branch 'development' 2024-05-03 21:08:48 +02:00