@@ -122,8 +122,10 @@ fn main() {
122122 vbo_data. push ( vert) ;
123123 }
124124
125+ let attr_info = build_attrib_info ( ) ;
126+
125127 let mut buf_info = buffer:: Info :: new ( ) ;
126- let ( attr_info , vbo_slice) = prepare_vbos ( & mut buf_info , & vbo_data ) ;
128+ let vbo_slice = buf_info . add ( & vbo_data , & attr_info ) . unwrap ( ) ;
127129
128130 // Configure the first fragment shading substage to just pass through the vertex color
129131 // See https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnv.xml for more insight
@@ -148,7 +150,7 @@ fn main() {
148150 16 , 19 , 17 , 17 , 19 , 18 , // back (+z)
149151 20 , 21 , 23 , 21 , 22 , 23 , // forward (-z)
150152 ] ;
151- let indices = vbo_slice. index_buffer ( indices) . unwrap ( ) ;
153+ let index_buffer = vbo_slice. index_buffer ( indices) . unwrap ( ) ;
152154
153155 while apt. main_loop ( ) {
154156 hid. scan_input ( ) ;
@@ -169,7 +171,7 @@ fn main() {
169171
170172 instance. set_attr_info ( & attr_info) ;
171173 unsafe {
172- instance. draw_elements ( buffer:: Primitive :: Triangles , & buf_info , & indices ) ;
174+ instance. draw_elements ( buffer:: Primitive :: Triangles , vbo_slice , & index_buffer ) ;
173175 }
174176 } ;
175177
@@ -186,10 +188,7 @@ fn main() {
186188 }
187189}
188190
189- fn prepare_vbos < ' a > (
190- buf_info : & ' a mut buffer:: Info ,
191- vbo_data : & ' a [ Vertex ] ,
192- ) -> ( attrib:: Info , buffer:: Slice < ' a > ) {
191+ fn build_attrib_info ( ) -> attrib:: Info {
193192 // Configure attributes for use with the vertex shader
194193 let mut attr_info = attrib:: Info :: new ( ) ;
195194
@@ -204,9 +203,7 @@ fn prepare_vbos<'a>(
204203 . add_loader ( reg1, attrib:: Format :: Float , 3 )
205204 . unwrap ( ) ;
206205
207- let buf_idx = buf_info. add ( vbo_data, & attr_info) . unwrap ( ) ;
208-
209- ( attr_info, buf_idx)
206+ attr_info
210207}
211208
212209struct Projections {
0 commit comments