diff options
Diffstat (limited to 'model.cpp')
| -rw-r--r-- | model.cpp | 11 | 
1 files changed, 10 insertions, 1 deletions
| @@ -128,10 +128,12 @@ Asset* Model_Loader::load(  		mesh.mvp_binding = shader->descriptor_binding("c_mvp");  		mesh.mvp_binding_depth = depth_shader->descriptor_binding("c_mvp");  		mesh.mat_binding = shader->descriptor_binding("material"); +		mesh.env_cube_binding = shader->descriptor_binding("env_cube");  		mesh.mesh_binding = shader->binding_index("mesh");  		assert(mesh.mvp_binding >= 0);  		assert(mesh.mat_binding >= 0);  		assert(mesh.mesh_binding >= 0); +		assert(mesh.env_cube_binding >= 0);  		pack_read(f, &vertex_size, 4);  		pack_read(f, &mesh.count, 4);  		pack_read(f, &vertex_count, 4); @@ -330,6 +332,7 @@ void Model_Instance::render(  	Device* dev,  	Arena* a,  	Render_Pass& pass, +	Texture_Id env_cubemap,  	Sampler_Id sampler  ) {  	int i, c = m->mesh_count; @@ -382,6 +385,11 @@ void Model_Instance::render(  				i * sizeof(MVP_Cbuffer),  				sizeof(MVP_Cbuffer)  			); +			pb.texture( +				mesh.env_cube_binding, +				env_cubemap, +				sampler +			);  		}  		pb.cull(Cull_Mode::back);  		pb.vertex_format(shader.vf); @@ -433,12 +441,13 @@ void Model_Scene::render(  	Device* dev,  	Arena* a,  	Render_Pass& pass, +	Texture_Id env_cubemap,  	Sampler_Id sampler  ) {  	int i;  	Model_Instance* instance = instances;  	for (i = 0; i < count; i++, instance++) -		instance->render(dev, a, pass, sampler); +		instance->render(dev, a, pass, env_cubemap, sampler);  }  void Model_Scene::destroy(Device* dev) { |