Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Conversation

@jonahwilliams
Copy link
Contributor

While working on making a StrokePathGeometry, I found that I needed to update the API again to provide more data for the smoothing approximation: https://github.com/flutter/engine/blob/main/impeller/entity/contents/solid_stroke_contents.cc#L213

Rather than pass through each object we need one at a time, lets just pass the same context that the Entity::Render method gets, at least for now.

@flutter-dashboard
Copy link

It looks like this pull request may not have tests. Please make sure to add tests before merging. If you need an exemption to this rule, contact Hixie on the #hackers channel in Chat (don't just cc him here, he won't see it! He's on Discord!).

If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix?

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing.

@jonahwilliams jonahwilliams marked this pull request as draft October 10, 2022 21:08
@jonahwilliams
Copy link
Contributor Author

Converting to a draft for now, I pushed up what the changes would look like with (most of) SolidStrokeGeometry implemented

@jonahwilliams jonahwilliams changed the title [Impeller] give geometry classes similar API as entity [Impeller] give geometry classes similar API as entity / implement strokepathgeom Oct 10, 2022

auto options = OptionsFromPassAndEntity(pass, entity);
if (!color_.IsOpaque()) {
if (geometry_result.prevent_overdraw) {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is the right check :)

Once we merge solid fill + stroke, we'll need to retain these clips/options I'm assuming.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup, exactly!

@jonahwilliams jonahwilliams marked this pull request as ready for review October 10, 2022 23:35
Copy link
Member

@bdero bdero left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great! This LGTM assuming AiksTest.SolidStrokesRenderCorrectly and EntityTest.StrokeCapAndJoinTest are looking good.


auto options = OptionsFromPassAndEntity(pass, entity);
if (!color_.IsOpaque()) {
if (geometry_result.prevent_overdraw) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup, exactly!

ISize render_target_size) = 0;
virtual GeometryResult GetPositionBuffer(const ContentContext& renderer,
const Entity& entity,
RenderPass& pass) = 0;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Passing around the ContentContext & Entity SGTM. The filter graph started off with minimal context being passed around and quickly ended up in a similar place.

@jonahwilliams
Copy link
Contributor Author

I've verified everything is working correctly on those tests and updated to ToT. Going to land this now so we can close out this refactor. If anyone notices a problem with strokes though, this PR is the culprit 😆

@jonahwilliams jonahwilliams added the autosubmit Merge PR when tree becomes green via auto submit App label Oct 20, 2022
@auto-submit auto-submit bot merged commit 3a7acb3 into flutter:main Oct 20, 2022
@jonahwilliams jonahwilliams deleted the stroke_geom branch October 20, 2022 15:08
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Oct 20, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

autosubmit Merge PR when tree becomes green via auto submit App e: impeller

Projects

No open projects
Archived in project

Development

Successfully merging this pull request may close these issues.

3 participants