#include "impeller/entity/contents/filters/gaussian_blur_filter_contents.h"#include <cmath>#include "flutter/fml/make_copyable.h"#include "impeller/entity/contents/clip_contents.h"#include "impeller/entity/contents/content_context.h"#include "impeller/entity/entity.h"#include "impeller/entity/texture_downsample.frag.h"#include "impeller/entity/texture_downsample_bounded.frag.h"#include "impeller/entity/texture_fill.frag.h"#include "impeller/entity/texture_fill.vert.h"#include "impeller/geometry/color.h"#include "impeller/renderer/render_pass.h"#include "impeller/renderer/vertex_buffer_builder.h"Go to the source code of this file.
Namespaces | |
| namespace | impeller |
Typedefs | |
| using | impeller::GaussianBlurVertexShader = GaussianBlurPipeline::VertexShader |
| using | impeller::GaussianBlurFragmentShader = GaussianBlurPipeline::FragmentShader |
Functions | |
| KernelSamples | impeller::GenerateBlurInfo (BlurParameters parameters) |
| GaussianBlurPipeline::FragmentShader::KernelSamples | impeller::LerpHackKernelSamples (KernelSamples parameters) |
| Vector2 blur_radius |
Blur radius in source pixels based on scaled_sigma.
Definition at line 85 of file gaussian_blur_filter_contents.cc.
Referenced by impeller::GaussianBlurFilterContents::CalculateScale(), impeller::GaussianBlurFilterContents::GetFilterSourceCoverage(), impeller::SolidRRectLikeBlurContents::Render(), impeller::testing::TEST(), impeller::testing::TEST(), and impeller::testing::TEST_P().
| Vector2 effective_scalar |
The effective scalar of the down-sample pass. This isn't usually exactly as we'd calculate because it has to be rounded to integer boundaries for generating the texture for the output.
Definition at line 307 of file gaussian_blur_filter_contents.cc.
| Vector2 local_padding |
Padding in unrotated local space.
Definition at line 89 of file gaussian_blur_filter_contents.cc.
| Vector2 padding |
The halo padding in source space.
Definition at line 87 of file gaussian_blur_filter_contents.cc.
Referenced by impeller::DriverInfoVK::DumpToLog(), vulkan::OnVulkanDebugReportCallback(), flutter::PerformanceOverlayLayer::Paint(), impeller::testing::TEST_P(), and ui::AXTableInfo::ToString().
| Vector2 scaled_sigma |
Sigma when considering an entity's scale and the effect transform.
Definition at line 83 of file gaussian_blur_filter_contents.cc.
Referenced by impeller::GaussianBlurFilterContents::GetFilterSourceCoverage().
| Vector2 source_space_offset |
The translation that is used to get from source space to unrotated local space.
Definition at line 81 of file gaussian_blur_filter_contents.cc.
| Vector2 source_space_scalar |
The scalar that is used to get from source space to unrotated local space.
Definition at line 78 of file gaussian_blur_filter_contents.cc.
| ISize subpass_size |
The output size of the down-sampling pass.
Definition at line 295 of file gaussian_blur_filter_contents.cc.
Referenced by impeller::Contents::RenderToSnapshot(), and impeller::Canvas::SaveLayer().
| Matrix transform |
Transforms from unrotated local space to position the output from the down-sample pass. This can differ if we request a coverage hint but it is rejected, as is the case with backdrop filters.
Definition at line 312 of file gaussian_blur_filter_contents.cc.
Referenced by impeller::LazyGlyphAtlas::AddTextFrame(), flutter_runner::testing::TouchEventBuilder::AddViewParameters(), flutter_runner::testing::MouseEventBuilder::AddViewParameters(), impeller::AdvancedBlend(), impeller::ColorSourceContents::AppliesAlphaForStrokeCoverage(), FLUTTER_ASSERT_ARC::ApplyTransform(), flutter::BM_AdapterDispatchOverhead(), flutter::BM_InvertAndCheck(), flutter::BM_InvertUnchecked(), flutter::BM_Rotate(), flutter::BM_Scale(), flutter::BM_SetIdentity(), flutter::BM_SetPerspective(), flutter::BM_TransformAndClipRect(), flutter::BM_TransformPoint(), flutter::BM_TransformPoints(), flutter::BM_TransformRectFast(), flutter::BM_Translate(), flutter_runner::testing::FakeGraph::Clone(), impeller::LineGeometry::ComputeAlongVector(), impeller::ArcGeometry::ComputeAlphaCoverage(), impeller::CircleGeometry::ComputeAlphaCoverage(), impeller::StrokeSegmentsGeometry::ComputeAlphaCoverage(), impeller::LineGeometry::ComputeCorners(), impeller::LineGeometry::ComputePixelHalfWidth(), impeller::Geometry::ComputeStrokeAlphaCoverage(), impeller::TextFrame::ComputeSubpixelPosition(), impeller::TextContents::ComputeVertexData(), impeller::Canvas::Concat(), impeller::FillPathSourceGeometry::CoversArea(), impeller::LineGeometry::CoversArea(), impeller::FillRectGeometry::CoversArea(), impeller::RoundRectGeometry::CoversArea(), impeller::FillRoundRectGeometry::CoversArea(), impeller::RoundSuperellipseGeometry::CoversArea(), flutter::AccessibilityBridge::CreateFlutterPlatformNodeDelegate(), flutter::SurfaceTextureExternalTexture::DrawFrame(), GetCATransform3DFromDlMatrix(), FLUTTER_ASSERT_ARC::GetCATransform3DFromDlMatrix(), impeller::DlVerticesGeometry::GetCoverage(), impeller::CircleGeometry::GetCoverage(), impeller::LineGeometry::GetCoverage(), impeller::PointFieldGeometry::GetCoverage(), impeller::FillRectGeometry::GetCoverage(), impeller::StrokeRectGeometry::GetCoverage(), impeller::StrokePathSourceGeometry::GetCoverage(), impeller::ArcStrokeGeometry::GetCoverage(), impeller::BorderMaskBlurFilterContents::GetFilterCoverage(), impeller::MatrixFilterContents::GetFilterCoverage(), impeller::DirectionalMorphologyFilterContents::GetFilterCoverage(), impeller::CircleGeometry::GetPositionBuffer(), impeller::Entity::GetShaderTransform(), impeller::StrokeSegmentsGeometry::GetStrokeCoverage(), impeller::TRect< T >::GetTransformedPoints(), impeller::interop::ImpellerDisplayListBuilderSetTransform(), impeller::interop::ImpellerDisplayListBuilderTransform(), impeller::LinearGradientContents::IsOpaque(), impeller::RadialGradientContents::IsOpaque(), impeller::SolidColorContents::IsOpaque(), impeller::SweepGradientContents::IsOpaque(), impeller::TiledTextureContents::IsOpaque(), flutter::DirectManipulationEventHandler::OnContentUpdated(), flutter::DirectManipulationEventHandler::OnViewportStatusChanged(), impeller::PipelineBlend(), impeller::Canvas::PreConcat(), gfx::PrintTo(), flutter::DiffContext::PushTransform(), impeller::EntityPassClipStack::RecordClip(), set_editable_size_and_transform(), set_editable_size_and_transform(), impeller::VerticesSimpleBlendContents::SetEffectTransform(), ui::AXNode::SetLocation(), impeller::TextFrame::SetPerFrameData(), impeller::Entity::SetTransform(), flutter::PlatformViewAndroidJNIImpl::SurfaceTextureGetTransformMatrix(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), impeller::testing::TEST(), flutter::testing::TEST_F(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::testing::TEST_P(), impeller::Canvas::Transform(), impeller::TRect< T >::TransformAndClipBounds(), impeller::TRect< T >::TransformBounds(), impeller::DlDispatcherBase::transformFullPerspective(), flutter::SemanticsUpdateBuilder::updateNode(), and flutter::DlColor::withColorSpace().
| std::optional<Quad> uv_bounds |
The bounds used for the downsampling pass of a bounded blur, in the same UV space as the texture input of the downsampling pass.
During downsampling, out-of-bound pixels are treated as transparent.
Definition at line 303 of file gaussian_blur_filter_contents.cc.
| Quad uvs |
The UVs that will be used for drawing to the down-sampling pass. This effectively is chopping out a region of the input.
Definition at line 298 of file gaussian_blur_filter_contents.cc.
Referenced by impeller::testing::TEST_P().