Flutter Impeller
entity_unittests.cc File Reference
#include <algorithm>
#include <cstring>
#include <memory>
#include <optional>
#include <utility>
#include <vector>
#include "flutter/display_list/geometry/dl_path_builder.h"
#include "flutter/display_list/testing/dl_test_snippets.h"
#include "fml/logging.h"
#include "gtest/gtest.h"
#include "impeller/core/device_buffer.h"
#include "impeller/core/formats.h"
#include "impeller/core/host_buffer.h"
#include "impeller/core/raw_ptr.h"
#include "impeller/core/texture_descriptor.h"
#include "impeller/entity/contents/conical_gradient_contents.h"
#include "impeller/entity/contents/content_context.h"
#include "impeller/entity/contents/contents.h"
#include "impeller/entity/contents/filters/color_filter_contents.h"
#include "impeller/entity/contents/filters/filter_contents.h"
#include "impeller/entity/contents/filters/gaussian_blur_filter_contents.h"
#include "impeller/entity/contents/filters/inputs/filter_input.h"
#include "impeller/entity/contents/linear_gradient_contents.h"
#include "impeller/entity/contents/radial_gradient_contents.h"
#include "impeller/entity/contents/runtime_effect_contents.h"
#include "impeller/entity/contents/solid_color_contents.h"
#include "impeller/entity/contents/solid_rrect_blur_contents.h"
#include "impeller/entity/contents/sweep_gradient_contents.h"
#include "impeller/entity/contents/text_contents.h"
#include "impeller/entity/contents/texture_contents.h"
#include "impeller/entity/contents/tiled_texture_contents.h"
#include "impeller/entity/entity.h"
#include "impeller/entity/entity_playground.h"
#include "impeller/entity/geometry/geometry.h"
#include "impeller/entity/geometry/point_field_geometry.h"
#include "impeller/entity/geometry/round_superellipse_geometry.h"
#include "impeller/entity/geometry/stroke_path_geometry.h"
#include "impeller/entity/geometry/superellipse_geometry.h"
#include "impeller/geometry/color.h"
#include "impeller/geometry/geometry_asserts.h"
#include "impeller/geometry/point.h"
#include "impeller/geometry/sigma.h"
#include "impeller/geometry/vector.h"
#include "impeller/playground/playground.h"
#include "impeller/playground/widgets.h"
#include "impeller/renderer/command.h"
#include "impeller/renderer/pipeline_descriptor.h"
#include "impeller/renderer/render_pass.h"
#include "impeller/renderer/render_target.h"
#include "impeller/renderer/testing/mocks.h"
#include "impeller/renderer/vertex_buffer_builder.h"
#include "third_party/imgui/imgui.h"

Go to the source code of this file.

Classes

class  impeller::testing::FlushTestDeviceBuffer
 
class  impeller::testing::FlushTestAllocator
 
class  impeller::testing::FlushTestContentContext
 

Namespaces

 impeller
 
 impeller::testing
 

Macros

#define APPLY_COLOR_FILTER_GRADIENT_TEST(name)
 

Functions

 impeller::testing::INSTANTIATE_PLAYGROUND_SUITE (HostBufferTest)
 
Rect impeller::testing::RectMakeCenterSize (Point center, Size size)
 
 impeller::testing::TEST_P (EntityTest, CanCreateEntity)
 
 impeller::testing::TEST_P (EntityTest, FilterCoverageRespectsCropRect)
 
 impeller::testing::TEST_P (EntityTest, GeometryBoundsAreTransformed)
 
 impeller::testing::TEST_P (EntityTest, ThreeStrokesInOnePath)
 
 impeller::testing::TEST_P (EntityTest, StrokeWithTextureContents)
 
 impeller::testing::TEST_P (EntityTest, TriangleInsideASquare)
 
 impeller::testing::TEST_P (EntityTest, StrokeCapAndJoinTest)
 
 impeller::testing::TEST_P (EntityTest, CubicCurveTest)
 
 impeller::testing::TEST_P (EntityTest, CanDrawCorrectlyWithRotatedTransform)
 
 impeller::testing::TEST_P (EntityTest, CubicCurveAndOverlapTest)
 
 impeller::testing::TEST_P (EntityTest, SolidColorContentsStrokeSetStrokeCapsAndJoins)
 
 impeller::testing::TEST_P (EntityTest, SolidColorContentsStrokeSetMiterLimit)
 
 impeller::testing::TEST_P (EntityTest, BlendingModeOptions)
 
 impeller::testing::TEST_P (EntityTest, BezierCircleScaled)
 
 impeller::testing::TEST_P (EntityTest, Filters)
 
 impeller::testing::TEST_P (EntityTest, GaussianBlurFilter)
 
 impeller::testing::TEST_P (EntityTest, MorphologyFilter)
 
 impeller::testing::TEST_P (EntityTest, SetBlendMode)
 
 impeller::testing::TEST_P (EntityTest, ContentsGetBoundsForEmptyPathReturnsNullopt)
 
 impeller::testing::TEST_P (EntityTest, SolidStrokeCoverageIsCorrect)
 
 impeller::testing::TEST_P (EntityTest, BorderMaskBlurCoverageIsCorrect)
 
 impeller::testing::TEST_P (EntityTest, SolidFillCoverageIsCorrect)
 
 impeller::testing::TEST_P (EntityTest, RRectShadowTest)
 
 impeller::testing::TEST_P (EntityTest, ColorMatrixFilterCoverageIsCorrect)
 
 impeller::testing::TEST_P (EntityTest, ColorMatrixFilterEditable)
 
 impeller::testing::TEST_P (EntityTest, LinearToSrgbFilterCoverageIsCorrect)
 
 impeller::testing::TEST_P (EntityTest, LinearToSrgbFilter)
 
 impeller::testing::TEST_P (EntityTest, SrgbToLinearFilterCoverageIsCorrect)
 
 impeller::testing::TEST_P (EntityTest, SrgbToLinearFilter)
 
static Vector3 impeller::testing::RGBToYUV (Vector3 rgb, YUVColorSpace yuv_color_space)
 
static std::vector< std::shared_ptr< Texture > > impeller::testing::CreateTestYUVTextures (Context *context, YUVColorSpace yuv_color_space)
 
 impeller::testing::TEST_P (EntityTest, YUVToRGBFilter)
 
 impeller::testing::TEST_P (EntityTest, RuntimeEffect)
 
 impeller::testing::TEST_P (EntityTest, RuntimeEffectCanSuccessfullyRender)
 
 impeller::testing::TEST_P (EntityTest, RuntimeEffectCanPrecache)
 
 impeller::testing::TEST_P (EntityTest, RuntimeEffectSetsRightSizeWhenUniformIsStruct)
 
 impeller::testing::TEST_P (EntityTest, ColorFilterWithForegroundColorAdvancedBlend)
 
 impeller::testing::TEST_P (EntityTest, ColorFilterWithForegroundColorClearBlend)
 
 impeller::testing::TEST_P (EntityTest, ColorFilterWithForegroundColorSrcBlend)
 
 impeller::testing::TEST_P (EntityTest, ColorFilterWithForegroundColorDstBlend)
 
 impeller::testing::TEST_P (EntityTest, ColorFilterWithForegroundColorSrcInBlend)
 
 impeller::testing::TEST_P (EntityTest, CoverageForStrokePathWithNegativeValuesInTransform)
 
 impeller::testing::TEST_P (EntityTest, SolidColorContentsIsOpaque)
 
 impeller::testing::TEST_P (EntityTest, ConicalGradientContentsIsOpaque)
 
 impeller::testing::TEST_P (EntityTest, LinearGradientContentsIsOpaque)
 
 impeller::testing::TEST_P (EntityTest, RadialGradientContentsIsOpaque)
 
 impeller::testing::TEST_P (EntityTest, SweepGradientContentsIsOpaque)
 
 impeller::testing::TEST_P (EntityTest, TiledTextureContentsIsOpaque)
 
 impeller::testing::TEST_P (EntityTest, PointFieldGeometryCoverage)
 
 impeller::testing::TEST_P (EntityTest, ColorFilterContentsWithLargeGeometry)
 
 impeller::testing::TEST_P (EntityTest, TextContentsCeilsGlyphScaleToDecimal)
 
 impeller::testing::TEST_P (EntityTest, SpecializationConstantsAreAppliedToVariants)
 
 impeller::testing::TEST_P (EntityTest, DecalSpecializationAppliedToMorphologyFilter)
 
 impeller::testing::TEST_P (EntityTest, ContentContextOptionsHasReasonableHashFunctions)
 
 impeller::testing::TEST_P (EntityTest, FillPathGeometryGetPositionBufferReturnsExpectedMode)
 
 impeller::testing::TEST_P (EntityTest, FailOnValidationError)
 
 impeller::testing::TEST_P (EntityTest, CanComputeGeometryForEmptyPathsWithoutCrashing)
 
 impeller::testing::TEST_P (EntityTest, CanRenderEmptyPathsWithoutCrashing)
 
 impeller::testing::TEST_P (EntityTest, DrawSuperEllipse)
 
 impeller::testing::TEST_P (EntityTest, DrawRoundSuperEllipse)
 
 impeller::testing::TEST_P (EntityTest, SolidColorApplyColorFilter)
 
 impeller::testing::APPLY_COLOR_FILTER_GRADIENT_TEST (Linear)
 
 impeller::testing::APPLY_COLOR_FILTER_GRADIENT_TEST (Radial)
 
 impeller::testing::APPLY_COLOR_FILTER_GRADIENT_TEST (Conical)
 
 impeller::testing::APPLY_COLOR_FILTER_GRADIENT_TEST (Sweep)
 
 impeller::testing::TEST_P (EntityTest, GiantStrokePathAllocation)
 
 impeller::testing::TEST_P (EntityTest, RoundSuperellipseGetPositionBufferFlushes)
 

Macro Definition Documentation

◆ APPLY_COLOR_FILTER_GRADIENT_TEST

#define APPLY_COLOR_FILTER_GRADIENT_TEST (   name)
Value:
TEST_P(EntityTest, name##GradientApplyColorFilter) { \
auto contents = name##GradientContents(); \
contents.SetColors({Color::CornflowerBlue().WithAlpha(0.75)}); \
auto result = contents.ApplyColorFilter([](const Color& color) { \
return color.Blend(Color::LimeGreen().WithAlpha(0.75), \
BlendMode::kScreen); \
}); \
ASSERT_TRUE(result); \
\
std::vector<Color> expected = {Color(0.433247, 0.879523, 0.825324, 0.75)}; \
ASSERT_COLORS_NEAR(contents.GetColors(), expected); \
}
TEST_P(EntityTest, RoundSuperellipseGetPositionBufferFlushes)

Definition at line 2507 of file entity_unittests.cc.