@@ -3,28 +3,22 @@ use lambda::{
33 component:: Component ,
44 render:: {
55 command:: RenderCommand ,
6- pipeline:: {
7- RenderPipeline ,
8- RenderPipelineBuilder ,
9- } ,
10- render_pass:: {
11- RenderPass ,
12- RenderPassBuilder ,
13- } ,
6+ mesh:: MeshBuilder ,
7+ pipeline:: RenderPipelineBuilder ,
8+ render_pass:: RenderPassBuilder ,
149 shader:: {
1510 Shader ,
1611 ShaderBuilder ,
1712 } ,
13+ vertex:: VertexBuilder ,
1814 viewport,
1915 ResourceId ,
2016 } ,
2117 runtime:: start_runtime,
2218 } ,
2319 math:: {
24- matrix:: {
25- self ,
26- Matrix ,
27- } ,
20+ matrix,
21+ matrix:: Matrix ,
2822 vector:: Vector ,
2923 } ,
3024 runtimes:: GenericRuntimeBuilder ,
@@ -96,6 +90,30 @@ impl Component for PushConstantsExample {
9690
9791 self . render_pass = Some ( render_context. attach_render_pass ( render_pass) ) ;
9892 self . render_pipeline = Some ( render_context. attach_pipeline ( pipeline) ) ;
93+
94+ // Create triangle mesh.
95+ let vertices = [
96+ VertexBuilder :: new ( )
97+ . with_position ( [ 0.0 , 0.5 , 0.0 ] )
98+ . with_normal ( [ 0.0 , 0.0 , 0.0 ] )
99+ . with_color ( [ 1.0 , 0.0 , 0.0 ] )
100+ . build ( ) ,
101+ VertexBuilder :: new ( )
102+ . with_position ( [ -0.5 , -0.5 , 0.0 ] )
103+ . with_normal ( [ 0.0 , 0.0 , 0.0 ] )
104+ . with_color ( [ 0.0 , 1.0 , 0.0 ] )
105+ . build ( ) ,
106+ VertexBuilder :: new ( )
107+ . with_position ( [ 0.5 , -0.5 , 0.0 ] )
108+ . with_normal ( [ 0.0 , 0.0 , 0.0 ] )
109+ . with_color ( [ 0.0 , 0.0 , 1.0 ] )
110+ . build ( ) ,
111+ ] ;
112+
113+ let mut mesh_builder = MeshBuilder :: new ( ) ;
114+ vertices. iter ( ) . for_each ( |vertex| {
115+ mesh_builder. with_vertex ( vertex. clone ( ) ) ;
116+ } ) ;
99117 }
100118
101119 fn on_detach (
@@ -201,14 +219,11 @@ impl Default for PushConstantsExample {
201219}
202220
203221fn main ( ) {
204- let runtime = GenericRuntimeBuilder :: new ( "Multiple Triangles Demo" )
205- . with_renderer_configured_as ( move |render_context_builder| {
206- return render_context_builder. with_render_timeout ( 1_000_000_000 ) ;
207- } )
222+ let runtime = GenericRuntimeBuilder :: new ( "3D Push Constants Example" )
208223 . with_window_configured_as ( move |window_builder| {
209224 return window_builder
210225 . with_dimensions ( 800 , 600 )
211- . with_name ( "Triangles " ) ;
226+ . with_name ( "3D Push Constants Example " ) ;
212227 } )
213228 . with_component ( move |runtime, triangles : PushConstantsExample | {
214229 return ( runtime, triangles) ;
0 commit comments