Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/draw/engines/workbench/workbench_deferred.c')
-rw-r--r--source/blender/draw/engines/workbench/workbench_deferred.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/source/blender/draw/engines/workbench/workbench_deferred.c b/source/blender/draw/engines/workbench/workbench_deferred.c
index 3b73154846f..c680fd5864c 100644
--- a/source/blender/draw/engines/workbench/workbench_deferred.c
+++ b/source/blender/draw/engines/workbench/workbench_deferred.c
@@ -580,18 +580,14 @@ static WORKBENCH_MaterialData *get_or_create_material_data(
material = MEM_mallocN(sizeof(WORKBENCH_MaterialData), __func__);
material->shgrp = DRW_shgroup_create(
color_type == V3D_SHADING_TEXTURE_COLOR ? wpd->prepass_texture_sh: wpd->prepass_solid_sh, psl->prepass_pass);
+ workbench_material_copy(material, &material_template);
DRW_shgroup_stencil_mask(material->shgrp, 0xFF);
- material->object_id = material_template.object_id;
- copy_v4_v4(material->material_data.diffuse_color, material_template.material_data.diffuse_color);
- copy_v4_v4(material->material_data.specular_color, material_template.material_data.specular_color);
- material->material_data.roughness = material_template.material_data.roughness;
+ DRW_shgroup_uniform_int(material->shgrp, "object_id", &material->object_id, 1);
+ workbench_material_shgroup_uniform(material->shgrp, material);
if (color_type == V3D_SHADING_TEXTURE_COLOR) {
GPUTexture *tex = GPU_texture_from_blender(ima, NULL, GL_TEXTURE_2D, false, 0.0);
DRW_shgroup_uniform_texture(material->shgrp, "image", tex);
}
- DRW_shgroup_uniform_int(material->shgrp, "object_id", &material->object_id, 1);
- material->material_ubo = DRW_uniformbuffer_create(sizeof(WORKBENCH_UBO_Material), &material->material_data);
- DRW_shgroup_uniform_block(material->shgrp, "material_block", material->material_ubo);
BLI_ghash_insert(wpd->material_hash, SET_UINT_IN_POINTER(hash), material);
}
@@ -637,7 +633,7 @@ static void workbench_cache_populate_particles(WORKBENCH_Data *vedata, Object *o
shader);
DRW_shgroup_stencil_mask(shgrp, 0xFF);
DRW_shgroup_uniform_int(shgrp, "object_id", &material->object_id, 1);
- DRW_shgroup_uniform_block(shgrp, "material_block", material->material_ubo);
+ workbench_material_shgroup_uniform(shgrp, material);
if (image) {
GPUTexture *tex = GPU_texture_from_blender(image, NULL, GL_TEXTURE_2D, false, 0.0f);
DRW_shgroup_uniform_texture(shgrp, "image", tex);