@@ -16,6 +16,7 @@ use primitive::{TessellationMode, empty_mesh};
1616use transform:: TransformStack ;
1717
1818use crate :: { Flush , geometry:: Geometry , image:: Image , render:: primitive:: rect} ;
19+ use crate :: render:: material:: UntypedMaterial ;
1920
2021#[ derive( Component ) ]
2122#[ relationship( relationship_target = TransientMeshes ) ]
@@ -153,15 +154,15 @@ pub fn flush_draw_commands(
153154 let mesh = create_ndc_background_quad ( world_from_clip, color, false ) ;
154155 let mesh_handle = res. meshes . add ( mesh) ;
155156
156- let material_key = MaterialKey {
157+ let material_key = MaterialKey :: Color {
157158 transparent : color. alpha ( ) < 1.0 ,
158159 background_image : None ,
159160 } ;
160- let material_handle = res . materials . add ( material_key. to_material ( ) ) ;
161+ let material_handle = material_key. to_material ( & mut res . materials ) ;
161162
162163 res. commands . spawn ( (
163164 Mesh3d ( mesh_handle) ,
164- MeshMaterial3d ( material_handle) ,
165+ UntypedMaterial ( material_handle) ,
165166 BelongsToGraphics ( batch. graphics_entity ) ,
166167 Transform :: IDENTITY ,
167168 batch. render_layers . clone ( ) ,
@@ -180,15 +181,15 @@ pub fn flush_draw_commands(
180181 let mesh = create_ndc_background_quad ( world_from_clip, Color :: WHITE , true ) ;
181182 let mesh_handle = res. meshes . add ( mesh) ;
182183
183- let material_key = MaterialKey {
184+ let material_key = MaterialKey :: Color {
184185 transparent : false ,
185186 background_image : Some ( p_image. handle . clone ( ) ) ,
186187 } ;
187- let material_handle = res . materials . add ( material_key. to_material ( ) ) ;
188+ let material_handle = material_key. to_material ( & mut res . materials ) ;
188189
189190 res. commands . spawn ( (
190191 Mesh3d ( mesh_handle) ,
191- MeshMaterial3d ( material_handle) ,
192+ UntypedMaterial ( material_handle) ,
192193 BelongsToGraphics ( batch. graphics_entity ) ,
193194 Transform :: IDENTITY ,
194195 batch. render_layers . clone ( ) ,
@@ -214,20 +215,20 @@ pub fn flush_draw_commands(
214215
215216 // TODO: Implement state based material API
216217 // https://github.com/processing/libprocessing/issues/10
217- let material_key = MaterialKey {
218+ let material_key = MaterialKey :: Color {
218219 transparent : false , // TODO: detect from geometry colors
219220 background_image : None ,
220221 } ;
221222
222- let material_handle = res . materials . add ( material_key. to_material ( ) ) ;
223+ let material_handle = material_key. to_material ( & mut res . materials ) ;
223224 let z_offset = -( batch. draw_index as f32 * 0.001 ) ;
224225
225226 let mut transform = state. transform . to_bevy_transform ( ) ;
226227 transform. translation . z += z_offset;
227228
228229 res. commands . spawn ( (
229230 Mesh3d ( geometry. handle . clone ( ) ) ,
230- MeshMaterial3d ( material_handle) ,
231+ UntypedMaterial ( material_handle) ,
231232 BelongsToGraphics ( batch. graphics_entity ) ,
232233 transform,
233234 batch. render_layers . clone ( ) ,
@@ -265,7 +266,7 @@ fn spawn_mesh(res: &mut RenderResources, batch: &mut BatchState, mesh: Mesh, z_o
265266 } ;
266267
267268 let mesh_handle = res. meshes . add ( mesh) ;
268- let material_handle = res . materials . add ( material_key. to_material ( ) ) ;
269+ let material_handle = material_key. to_material ( & mut res . materials ) ;
269270
270271 let ( scale, rotation, translation) = batch. transform . to_scale_rotation_translation ( ) ;
271272 let transform = Transform {
@@ -276,7 +277,7 @@ fn spawn_mesh(res: &mut RenderResources, batch: &mut BatchState, mesh: Mesh, z_o
276277
277278 res. commands . spawn ( (
278279 Mesh3d ( mesh_handle) ,
279- MeshMaterial3d ( material_handle) ,
280+ UntypedMaterial ( material_handle) ,
280281 BelongsToGraphics ( batch. graphics_entity ) ,
281282 transform,
282283 batch. render_layers . clone ( ) ,
@@ -311,8 +312,8 @@ fn add_fill(
311312 let Some ( color) = state. fill_color else {
312313 return ;
313314 } ;
314- let material_key = MaterialKey {
315- transparent : state. fill_is_transparent ( ) ,
315+ let material_key = MaterialKey :: Color {
316+ transparent : state. fill_is_transparent ( ) ,
316317 background_image : None ,
317318 } ;
318319
@@ -335,7 +336,7 @@ fn add_stroke(
335336 return ;
336337 } ;
337338 let stroke_weight = state. stroke_weight ;
338- let material_key = MaterialKey {
339+ let material_key = MaterialKey :: Color {
339340 transparent : state. stroke_is_transparent ( ) ,
340341 background_image : None ,
341342 } ;
0 commit comments