From ffa1891ab8dadbf48a2b23bb28ce2accbdc27eb0 Mon Sep 17 00:00:00 2001 From: gaaclarke <30870216+gaaclarke@users.noreply.github.com> Date: Thu, 17 Apr 2025 14:38:52 -0700 Subject: [PATCH] Added docstring for FilterInput::GetSnapshot (#167226) fixes https://github.com/flutter/flutter/issues/137970 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md --- .../contents/filters/inputs/filter_input.h | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/engine/src/flutter/impeller/entity/contents/filters/inputs/filter_input.h b/engine/src/flutter/impeller/entity/contents/filters/inputs/filter_input.h index 7888ac6ef9e..436bb07dc8b 100644 --- a/engine/src/flutter/impeller/entity/contents/filters/inputs/filter_input.h +++ b/engine/src/flutter/impeller/entity/contents/filters/inputs/filter_input.h @@ -45,6 +45,29 @@ class FilterInput { static FilterInput::Vector Make(std::initializer_list inputs); + /// Evaluates the filter input and returns a snapshot of the result. + /// + /// This method renders the input (which could be another filter, contents, + /// or a texture) into a `Snapshot` object, which contains the resulting + /// texture and its transform relative to the current render target. + /// + /// Implementations are typically lazy and may cache the result, ensuring + /// that the input is only rendered once even if `GetSnapshot` is called + /// multiple times. + /// + /// @param[in] label A debug label for the rendering operation and the + /// resulting snapshot texture. + /// @param[in] renderer The content context providing rendering resources. + /// @param[in] entity The entity associated with this filter input, providing + /// transform and other contextual information. + /// @param[in] coverage_limit An optional rectangle to limit the area of the + /// input that needs to be rendered. This can be used as an optimization. + /// @param[in] mip_count The number of mip levels to generate for the snapshot + /// texture. Defaults to 1 (no mips). + /// + /// @return A `Snapshot` containing the rendered texture and its transform, or + /// `std::nullopt` if the input cannot be rendered or results in an empty + /// output. virtual std::optional GetSnapshot( std::string_view label, const ContentContext& renderer,