-
-
Notifications
You must be signed in to change notification settings - Fork 51
[Breaking Change] New Rendering Property System #1407
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This comment was marked as resolved.
This comment was marked as resolved.
|
fbd5704 to
97096b9
Compare
|
The following TODO comments were found: beutl/src/Beutl.Api/Objects/Profile.cs Line 60 in 34cdaae
beutl/src/Beutl.Engine/Engine/EngineObject.cs Line 164 in 34cdaae
Lines 99 to 100 in 34cdaae
beutl/src/Beutl/Services/StartupTasks/LoadPrimitiveExtensionTask.cs Lines 21 to 23 in 34cdaae
beutl/src/Beutl/ViewModels/LibraryViewModel.cs Lines 101 to 105 in 34cdaae
beutl/src/Beutl/ViewModels/LibraryViewModel.cs Lines 110 to 111 in 34cdaae
beutl/src/Beutl/ViewModels/LibraryViewModel.cs Lines 156 to 163 in 34cdaae
beutl/src/Beutl/ViewModels/LibraryViewModel.cs Lines 237 to 240 in 34cdaae
beutl/src/Beutl/Views/ElementView.axaml.cs Lines 197 to 205 in 34cdaae
beutl/tests/Beutl.UnitTests/Core/JsonSerializationTest.cs Lines 46 to 77 in 34cdaae
|
…remove name parameter
…nvalidation support
…tructure and rendering support
… property handling
… and improve property handling
…improved rendering
…ing and add SuppressResourceClassGenerationAttribute
…、関連するノードのプロパティ設定を改善
…rtyAdapterでの呼び出しを更新
e013dc2 to
5c1314f
Compare
…property coercion
Minimum allowed line rate is |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR implements a new rendering property system (Beutl.Engine.Property) to separate editing data from drawing data. The migration replaces the conventional CoreProperty system, which previously did not distinguish between these two responsibilities. This enables:
- Editing data: Holds user-set properties and animations, capable of generating drawing data for any frame
- Drawing data: Frame-specific data used for rendering
Reviewed changes
Copilot reviewed 215 out of 435 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| RoundedRectGeometry.cs | Migrated from CoreProperty to IProperty system with Resource class for rendering |
| RectGeometry.cs | Converted properties to IProperty pattern with Resource-based rendering |
| PathGeometry.cs | Migrated to IProperty pattern, replaced PathFigures/PathSegments collection classes |
| PathFigure.cs | Changed from Animatable to EngineObject with IProperty properties |
| PathSegment.cs | Simplified base class with Resource pattern for rendering operations |
| QuadraticBezierSegment.cs | Migrated segment properties to IProperty with Resource class |
| Geometry.cs | Major refactoring to use EngineObject with Resource class for caching and rendering |
| EllipseGeometry.cs | Converted to IProperty pattern with Resource-based rendering |
| ColorExtensions.cs | Updated to return SolidColorBrush.Resource instead of immutable interfaces |
| Brushes.cs | Changed return types from ISolidColorBrush to SolidColorBrush |
| Brushes.Resource.cs | New file providing Resource versions of predefined brushes |
| Brush.cs | Migrated from Animatable to EngineObject with IProperty properties |
| SolidColorBrush.cs | Converted Color property to IProperty pattern |
| GradientBrush.cs | Migrated properties to IProperty, replaced GradientStops collection |
| GradientStop.cs | Changed from Animatable to EngineObject with IProperty properties |
| TileBrush.cs | Converted all tile properties to IProperty pattern |
| Transform.cs | Major refactoring to use Resource pattern with CreateMatrix method |
| TransformParser.cs | Updated return types from ITransform to Transform |
| TransformGroup.cs | Migrated Children to IListProperty, simplified matrix calculation |
| Shape.cs | Converted to use Resource pattern for geometry caching |
| TextBlock.cs | Migrated text properties to IProperty with Resource-based rendering |
| TextElement.cs | Simplified from Animatable to plain class with public properties |
| SourceVideo.cs | Migrated to IProperty pattern with Resource class for frame calculation |
| SourceImage.cs | Converted Source to IProperty with Resource-based rendering |
| SourceBackdrop.cs | Migrated Clear property to IProperty pattern |
| RenderNode.cs | Added HasChanges property for tracking render state |
| RenderLayer.cs | Updated to work with Resource pattern and time-based rendering |
| RenderContext.cs | New file providing property evaluation at specific time points |
| Renderer.cs | Changed from IClock to TimeSpan-based time tracking |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codex Review
Here are some automated review suggestions for this pull request.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Description
This PR implements Beutl.Engine.Property for drawing-related properties and performs the migration.
The conventional implementation using CoreProperty did not distinguish between editing data and drawing data. This PR enables separation of responsibilities as follows: