@@ -225,6 +225,8 @@ TEST_F(RendererTest, CanRenderToTexture) {
225
225
TextureDescriptor stencil_texture_desc;
226
226
stencil_texture_desc.size = texture_descriptor.size ;
227
227
stencil_texture_desc.format = PixelFormat::kD32FloatS8UNormInt ;
228
+ stencil_texture_desc.usage =
229
+ static_cast <TextureUsageMask>(TextureUsage::kRenderTarget );
228
230
stencil0.texture = context->GetPermanentsAllocator ()->CreateTexture (
229
231
StorageMode::kDeviceTransient , stencil_texture_desc);
230
232
@@ -264,74 +266,5 @@ TEST_F(RendererTest, CanRenderToTexture) {
264
266
ASSERT_TRUE (r2t_pass->EncodeCommands (*context->GetTransientsAllocator ()));
265
267
}
266
268
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
-
336
269
} // namespace testing
337
270
} // namespace impeller
0 commit comments