@@ -37,37 +37,6 @@ GeometryResult FillPathGeometry::GetPositionBuffer(
3737 }
3838
3939 VertexBuffer vertex_buffer;
40- if constexpr (!ContentContext::kEnableStencilThenCover ) {
41- if (!path_.IsConvex ()) {
42- auto tesselation_result = renderer.GetTessellator ()->Tessellate (
43- path_, entity.GetTransform ().GetMaxBasisLength (),
44- [&vertex_buffer, &host_buffer](
45- const float * vertices, size_t vertices_count,
46- const uint16_t * indices, size_t indices_count) {
47- vertex_buffer.vertex_buffer = host_buffer.Emplace (
48- vertices, vertices_count * sizeof (float ) * 2 , alignof (float ));
49- if (indices != nullptr ) {
50- vertex_buffer.index_buffer = host_buffer.Emplace (
51- indices, indices_count * sizeof (uint16_t ), alignof (uint16_t ));
52- vertex_buffer.vertex_count = indices_count;
53- vertex_buffer.index_type = IndexType::k16bit;
54- } else {
55- vertex_buffer.index_buffer = {};
56- vertex_buffer.vertex_count = vertices_count;
57- vertex_buffer.index_type = IndexType::kNone ;
58- }
59- return true ;
60- });
61- if (tesselation_result != Tessellator::Result::kSuccess ) {
62- return {};
63- }
64- return GeometryResult{
65- .type = PrimitiveType::kTriangle ,
66- .vertex_buffer = vertex_buffer,
67- .transform = entity.GetShaderTransform (pass),
68- };
69- }
70- }
7140
7241 auto points = renderer.GetTessellator ()->TessellateConvex (
7342 path_, entity.GetTransform ().GetMaxBasisLength ());
@@ -111,41 +80,6 @@ GeometryResult FillPathGeometry::GetPositionUVBuffer(
11180 auto uv_transform =
11281 texture_coverage.GetNormalizingTransform () * effect_transform;
11382
114- if constexpr (!ContentContext::kEnableStencilThenCover ) {
115- if (!path_.IsConvex ()) {
116- VertexBufferBuilder<VS::PerVertexData> vertex_builder;
117- auto tesselation_result = renderer.GetTessellator ()->Tessellate (
118- path_, entity.GetTransform ().GetMaxBasisLength (),
119- [&vertex_builder, &uv_transform](
120- const float * vertices, size_t vertices_count,
121- const uint16_t * indices, size_t indices_count) {
122- for (auto i = 0u ; i < vertices_count * 2 ; i += 2 ) {
123- VS::PerVertexData data;
124- Point vtx = {vertices[i], vertices[i + 1 ]};
125- data.position = vtx;
126- data.texture_coords = uv_transform * vtx;
127- vertex_builder.AppendVertex (data);
128- }
129- FML_DCHECK (vertex_builder.GetVertexCount () == vertices_count);
130- if (indices != nullptr ) {
131- for (auto i = 0u ; i < indices_count; i++) {
132- vertex_builder.AppendIndex (indices[i]);
133- }
134- }
135- return true ;
136- });
137- if (tesselation_result != Tessellator::Result::kSuccess ) {
138- return {};
139- }
140- return GeometryResult{
141- .type = PrimitiveType::kTriangle ,
142- .vertex_buffer =
143- vertex_builder.CreateVertexBuffer (renderer.GetTransientsBuffer ()),
144- .transform = entity.GetShaderTransform (pass),
145- };
146- }
147- }
148-
14983 auto points = renderer.GetTessellator ()->TessellateConvex (
15084 path_, entity.GetTransform ().GetMaxBasisLength ());
15185
@@ -169,7 +103,7 @@ GeometryResult FillPathGeometry::GetPositionUVBuffer(
169103
170104GeometryResult::Mode FillPathGeometry::GetResultMode () const {
171105 const auto & bounding_box = path_.GetBoundingBox ();
172- if (!ContentContext:: kEnableStencilThenCover || path_.IsConvex () ||
106+ if (path_.IsConvex () ||
173107 (bounding_box.has_value () && bounding_box->IsEmpty ())) {
174108 return GeometryResult::Mode::kNormal ;
175109 }
0 commit comments