@@ -225,6 +225,8 @@ TEST_F(RendererTest, CanRenderToTexture) {
225225 TextureDescriptor stencil_texture_desc;
226226 stencil_texture_desc.size = texture_descriptor.size ;
227227 stencil_texture_desc.format = PixelFormat::kD32FloatS8UNormInt ;
228+ stencil_texture_desc.usage =
229+ static_cast <TextureUsageMask>(TextureUsage::kRenderTarget );
228230 stencil0.texture = context->GetPermanentsAllocator ()->CreateTexture (
229231 StorageMode::kDeviceTransient , stencil_texture_desc);
230232
@@ -264,74 +266,5 @@ TEST_F(RendererTest, CanRenderToTexture) {
264266 ASSERT_TRUE (r2t_pass->EncodeCommands (*context->GetTransientsAllocator ()));
265267}
266268
267- TEST_F (RendererTest, CanRenderPath) {
268- auto path = PathBuilder{}.AddCircle ({550 , 550 }, 500 ).CreatePath ();
269- ASSERT_FALSE (path.GetBoundingBox ().has_value ());
270-
271- using BoxPipeline = PipelineT<BoxFadeVertexShader, BoxFadeFragmentShader>;
272- using VS = BoxFadeVertexShader;
273- using FS = BoxFadeFragmentShader;
274-
275- BoxPipeline box_pipeline (*GetContext ());
276-
277- // Vertex buffer.
278- VertexBufferBuilder<VS ::PerVertexData> vertex_builder;
279- vertex_builder.SetLabel (" Box" );
280-
281- Tessellator tessellator;
282- ASSERT_TRUE (tessellator.Tessellate (
283- path.CreatePolyline ({}), [&vertex_builder](Point point) {
284- VS ::PerVertexData vtx;
285- vtx.vertex_position = {point.x , point.y , 0.0 };
286- vtx.texture_coordinates = {0.5 , 0.5 };
287- vertex_builder.AppendVertex (vtx);
288- }));
289-
290- auto context = GetContext ();
291-
292- auto vertex_buffer =
293- vertex_builder.CreateVertexBuffer (*context->GetPermanentsAllocator ());
294- ASSERT_TRUE (vertex_buffer);
295-
296- auto bridge = CreateTextureForFixture (" bay_bridge.jpg" );
297- auto boston = CreateTextureForFixture (" boston.jpg" );
298- ASSERT_TRUE (bridge && boston);
299- auto sampler = context->GetSamplerLibrary ()->GetSampler ({});
300- ASSERT_TRUE (sampler);
301-
302- Renderer::RenderCallback callback = [&](RenderPass& pass) {
303- Command cmd;
304- cmd.label = " Box" ;
305- cmd.pipeline = box_pipeline.WaitAndGet ();
306-
307- cmd.BindVertices (vertex_buffer);
308-
309- FS ::FrameInfo frame_info;
310- frame_info.current_time = fml::TimePoint::Now ().ToEpochDelta ().ToSecondsF ();
311- frame_info.cursor_position = GetCursorPosition ();
312- frame_info.window_size .x = GetWindowSize ().width ;
313- frame_info.window_size .y = GetWindowSize ().height ;
314-
315- FS::BindFrameInfo (cmd,
316- pass.GetTransientsBuffer ().EmplaceUniform (frame_info));
317- FS::BindContents1 (cmd, boston, sampler);
318- FS::BindContents2 (cmd, bridge, sampler);
319-
320- cmd.primitive_type = PrimitiveType::kTriangle ;
321- cmd.winding = tessellator.GetFrontFaceWinding ();
322-
323- VS ::UniformBuffer uniforms;
324- uniforms.mvp = Matrix::MakeOrthographic (pass.GetRenderTargetSize ());
325- VS::BindUniformBuffer (cmd,
326- pass.GetTransientsBuffer ().EmplaceUniform (uniforms));
327- if (!pass.AddCommand (cmd)) {
328- return false ;
329- }
330-
331- return true ;
332- };
333- // OpenPlaygroundHere(callback);
334- }
335-
336269} // namespace testing
337270} // namespace impeller
0 commit comments