[Bf-blender-cvs] [e32ec677c3d] blender2.8: Draw Manager: Simplify usage and check for errors.

Clément Foucault noreply at git.blender.org
Wed May 10 01:12:11 CEST 2017


Commit: e32ec677c3d03881703b34fc008e9141e1ee9e2b
Author: Clément Foucault
Date:   Tue May 9 22:08:25 2017 +0200
Branches: blender2.8
https://developer.blender.org/rBe32ec677c3d03881703b34fc008e9141e1ee9e2b

Draw Manager: Simplify usage and check for errors.

===================================================================

M	source/blender/draw/engines/clay/clay_engine.c
M	source/blender/draw/engines/eevee/eevee_effects.c
M	source/blender/draw/engines/eevee/eevee_engine.c
M	source/blender/draw/intern/DRW_render.h
M	source/blender/draw/intern/draw_manager.c
M	source/blender/draw/modes/edit_mesh_mode.c
M	source/blender/draw/modes/object_mode.c
M	source/blender/gpu/shaders/gpu_shader_material.glsl

===================================================================

diff --git a/source/blender/draw/engines/clay/clay_engine.c b/source/blender/draw/engines/clay/clay_engine.c
index fee1849f6e2..87e205bdd23 100644
--- a/source/blender/draw/engines/clay/clay_engine.c
+++ b/source/blender/draw/engines/clay/clay_engine.c
@@ -413,13 +413,12 @@ static void CLAY_engine_init(void *vedata)
 static DRWShadingGroup *CLAY_shgroup_create(CLAY_Data *vedata, DRWPass *pass, int *material_id)
 {
 	CLAY_TextureList *txl = ((CLAY_Data *)vedata)->txl;
-	const int depthloc = 0, matcaploc = 1, jitterloc = 2, sampleloc = 3;
 
 	DRWShadingGroup *grp = DRW_shgroup_create(e_data.clay_sh, pass);
 
 	DRW_shgroup_uniform_vec2(grp, "screenres", DRW_viewport_size_get(), 1);
-	DRW_shgroup_uniform_buffer(grp, "depthtex", &txl->depth_dup, depthloc);
-	DRW_shgroup_uniform_texture(grp, "matcaps", e_data.matcap_array, matcaploc);
+	DRW_shgroup_uniform_buffer(grp, "depthtex", &txl->depth_dup);
+	DRW_shgroup_uniform_texture(grp, "matcaps", e_data.matcap_array);
 	DRW_shgroup_uniform_mat4(grp, "WinMatrix", (float *)e_data.winmat);
 	DRW_shgroup_uniform_vec4(grp, "viewvecs[0]", (float *)e_data.viewvecs, 3);
 	DRW_shgroup_uniform_vec4(grp, "ssao_params", e_data.ssao_params, 1);
@@ -427,8 +426,8 @@ static DRWShadingGroup *CLAY_shgroup_create(CLAY_Data *vedata, DRWPass *pass, in
 
 	DRW_shgroup_uniform_int(grp, "mat_id", material_id, 1);
 
-	DRW_shgroup_uniform_texture(grp, "ssao_jitter", e_data.jitter_tx, jitterloc);
-	DRW_shgroup_uniform_texture(grp, "ssao_samples", e_data.sampling_tx, sampleloc);
+	DRW_shgroup_uniform_texture(grp, "ssao_jitter", e_data.jitter_tx);
+	DRW_shgroup_uniform_texture(grp, "ssao_samples", e_data.sampling_tx);
 
 	return grp;
 }
diff --git a/source/blender/draw/engines/eevee/eevee_effects.c b/source/blender/draw/engines/eevee/eevee_effects.c
index 586580e3a93..fe38987b3fd 100644
--- a/source/blender/draw/engines/eevee/eevee_effects.c
+++ b/source/blender/draw/engines/eevee/eevee_effects.c
@@ -327,10 +327,10 @@ static DRWShadingGroup *eevee_create_bloom_pass(const char *name, EEVEE_EffectsI
 
 	DRWShadingGroup *grp = DRW_shgroup_create(sh, *pass);
 	DRW_shgroup_call_add(grp, quad, NULL);
-	DRW_shgroup_uniform_buffer(grp, "sourceBuffer", &effects->unf_source_buffer, 0);
+	DRW_shgroup_uniform_buffer(grp, "sourceBuffer", &effects->unf_source_buffer);
 	DRW_shgroup_uniform_vec2(grp, "sourceBufferTexelSize", effects->unf_source_texel_size, 1);
 	if (upsample) {
-		DRW_shgroup_uniform_buffer(grp, "baseBuffer", &effects->unf_base_buffer, 1);
+		DRW_shgroup_uniform_buffer(grp, "baseBuffer", &effects->unf_base_buffer);
 		DRW_shgroup_uniform_float(grp, "sampleScale", &effects->bloom_sample_scale, 1);
 	}
 
@@ -354,8 +354,8 @@ void EEVEE_effects_cache_init(EEVEE_Data *vedata)
 		DRW_shgroup_uniform_float(grp, "blurAmount", &effects->blur_amount, 1);
 		DRW_shgroup_uniform_mat4(grp, "currInvViewProjMatrix", (float *)effects->current_ndc_to_world);
 		DRW_shgroup_uniform_mat4(grp, "pastViewProjMatrix", (float *)effects->past_world_to_ndc);
-		DRW_shgroup_uniform_buffer(grp, "colorBuffer", &effects->source_buffer, 0);
-		DRW_shgroup_uniform_buffer(grp, "depthBuffer", &dtxl->depth, 1);
+		DRW_shgroup_uniform_buffer(grp, "colorBuffer", &effects->source_buffer);
+		DRW_shgroup_uniform_buffer(grp, "depthBuffer", &dtxl->depth);
 		DRW_shgroup_call_add(grp, quad, NULL);
 	}
 
@@ -415,8 +415,8 @@ void EEVEE_effects_cache_init(EEVEE_Data *vedata)
 		psl->dof_down = DRW_pass_create("DoF Downsample", DRW_STATE_WRITE_COLOR);
 
 		grp = DRW_shgroup_create(e_data.dof_downsample_sh, psl->dof_down);
-		DRW_shgroup_uniform_buffer(grp, "colorBuffer", &effects->source_buffer, 0);
-		DRW_shgroup_uniform_buffer(grp, "depthBuffer", &dtxl->depth, 1);
+		DRW_shgroup_uniform_buffer(grp, "colorBuffer", &effects->source_buffer);
+		DRW_shgroup_uniform_buffer(grp, "depthBuffer", &dtxl->depth);
 		DRW_shgroup_uniform_vec2(grp, "nearFar", effects->dof_near_far, 1);
 		DRW_shgroup_uniform_vec3(grp, "dofParams", effects->dof_params, 1);
 		DRW_shgroup_call_add(grp, quad, NULL);
@@ -429,18 +429,18 @@ void EEVEE_effects_cache_init(EEVEE_Data *vedata)
 		const int sprite_ct = ((int)viewport_size[0]/2) * ((int)viewport_size[1]/2); /* brackets matters */
 		grp = DRW_shgroup_empty_tri_batch_create(e_data.dof_scatter_sh, psl->dof_scatter, sprite_ct);
 
-		DRW_shgroup_uniform_buffer(grp, "colorBuffer", &effects->unf_source_buffer, 0);
-		DRW_shgroup_uniform_buffer(grp, "cocBuffer", &txl->dof_coc, 1);
+		DRW_shgroup_uniform_buffer(grp, "colorBuffer", &effects->unf_source_buffer);
+		DRW_shgroup_uniform_buffer(grp, "cocBuffer", &txl->dof_coc);
 		DRW_shgroup_uniform_vec2(grp, "layerSelection", effects->dof_layer_select, 1);
 		DRW_shgroup_uniform_vec3(grp, "bokehParams", effects->dof_bokeh, 1);
 
 		psl->dof_resolve = DRW_pass_create("DoF Resolve", DRW_STATE_WRITE_COLOR);
 
 		grp = DRW_shgroup_create(e_data.dof_resolve_sh, psl->dof_resolve);
-		DRW_shgroup_uniform_buffer(grp, "colorBuffer", &effects->source_buffer, 0);
-		DRW_shgroup_uniform_buffer(grp, "nearBuffer", &txl->dof_near_blur, 1);
-		DRW_shgroup_uniform_buffer(grp, "farBuffer", &txl->dof_far_blur, 2);
-		DRW_shgroup_uniform_buffer(grp, "depthBuffer", &dtxl->depth, 3);
+		DRW_shgroup_uniform_buffer(grp, "colorBuffer", &effects->source_buffer);
+		DRW_shgroup_uniform_buffer(grp, "nearBuffer", &txl->dof_near_blur);
+		DRW_shgroup_uniform_buffer(grp, "farBuffer", &txl->dof_far_blur);
+		DRW_shgroup_uniform_buffer(grp, "depthBuffer", &dtxl->depth);
 		DRW_shgroup_uniform_vec2(grp, "nearFar", effects->dof_near_far, 1);
 		DRW_shgroup_uniform_vec3(grp, "dofParams", effects->dof_params, 1);
 		DRW_shgroup_call_add(grp, quad, NULL);
@@ -452,7 +452,7 @@ void EEVEE_effects_cache_init(EEVEE_Data *vedata)
 		psl->tonemap = DRW_pass_create("Tone Mapping", DRW_STATE_WRITE_COLOR | DRW_STATE_BLEND);
 
 		DRWShadingGroup *grp = DRW_shgroup_create(e_data.tonemap_sh, psl->tonemap);
-		DRW_shgroup_uniform_buffer(grp, "hdrColorBuf", &effects->source_buffer, 0);
+		DRW_shgroup_uniform_buffer(grp, "hdrColorBuf", &effects->source_buffer);
 		DRW_shgroup_call_add(grp, quad, NULL);
 	}
 }
diff --git a/source/blender/draw/engines/eevee/eevee_engine.c b/source/blender/draw/engines/eevee/eevee_engine.c
index ad4e1897b00..f7925e8dafc 100644
--- a/source/blender/draw/engines/eevee/eevee_engine.c
+++ b/source/blender/draw/engines/eevee/eevee_engine.c
@@ -155,8 +155,8 @@ static struct GPUTexture *create_ggx_lut_texture(int UNUSED(w), int UNUSED(h))
 	DRWShadingGroup *grp = DRW_shgroup_create(sh, pass);
 	DRW_shgroup_uniform_float(grp, "sampleCount", &samples_ct, 1);
 	DRW_shgroup_uniform_float(grp, "invSampleCount", &inv_samples_ct, 1);
-	DRW_shgroup_uniform_texture(grp, "texHammersley", e_data.hammersley, 0);
-	DRW_shgroup_uniform_texture(grp, "texJitter", e_data.jitter, 1);
+	DRW_shgroup_uniform_texture(grp, "texHammersley", e_data.hammersley);
+	DRW_shgroup_uniform_texture(grp, "texJitter", e_data.jitter);
 
 	struct Batch *geom = DRW_cache_fullscreen_quad_get();
 	DRW_shgroup_call_add(grp, geom, NULL);
@@ -491,9 +491,9 @@ static void EEVEE_cache_init(void *vedata)
 		DRW_shgroup_uniform_float(grp, "lodFactor", &stl->probes->lodfactor, 1);
 		DRW_shgroup_uniform_float(grp, "lodMax", &stl->probes->lodmax, 1);
 		DRW_shgroup_uniform_int(grp, "Layer", &stl->probes->layer, 1);
-		DRW_shgroup_uniform_texture(grp, "texHammersley", e_data.hammersley, 0);
-		// DRW_shgroup_uniform_texture(grp, "texJitter", e_data.jitter, 1);
-		DRW_shgroup_uniform_texture(grp, "probeHdr", txl->probe_rt, 3);
+		DRW_shgroup_uniform_texture(grp, "texHammersley", e_data.hammersley);
+		// DRW_shgroup_uniform_texture(grp, "texJitter", e_data.jitter);
+		DRW_shgroup_uniform_texture(grp, "probeHdr", txl->probe_rt);
 	}
 
 	{
@@ -502,7 +502,7 @@ static void EEVEE_cache_init(void *vedata)
 		DRWShadingGroup *grp = DRW_shgroup_create(e_data.probe_spherical_harmonic_sh, psl->probe_sh_compute);
 		DRW_shgroup_uniform_int(grp, "probeSize", &stl->probes->shres, 1);
 		DRW_shgroup_uniform_float(grp, "lodBias", &stl->probes->lodfactor, 1);
-		DRW_shgroup_uniform_texture(grp, "probeHdr", txl->probe_rt, 0);
+		DRW_shgroup_uniform_texture(grp, "probeHdr", txl->probe_rt);
 
 		struct Batch *geom = DRW_cache_fullscreen_quad_get();
 		DRW_shgroup_call_add(grp, geom, NULL);
@@ -530,9 +530,9 @@ static void EEVEE_cache_init(void *vedata)
 		DRW_shgroup_uniform_float(stl->g_data->default_lit_grp, "lodMax", &stl->probes->lodmax, 1);
 		DRW_shgroup_uniform_vec3(stl->g_data->default_lit_grp, "shCoefs[0]", (float *)stl->probes->shcoefs, 9);
 		DRW_shgroup_uniform_vec3(stl->g_data->default_lit_grp, "cameraPos", e_data.camera_pos, 1);
-		DRW_shgroup_uniform_texture(stl->g_data->default_lit_grp, "ltcMat", e_data.ltc_mat, 0);
-		DRW_shgroup_uniform_texture(stl->g_data->default_lit_grp, "brdfLut", e_data.brdf_lut, 1);
-		DRW_shgroup_uniform_texture(stl->g_data->default_lit_grp, "probeFiltered", txl->probe_pool, 2);
+		DRW_shgroup_uniform_texture(stl->g_data->default_lit_grp, "ltcMat", e_data.ltc_mat);
+		DRW_shgroup_uniform_texture(stl->g_data->default_lit_grp, "brdfLut", e_data.brdf_lut);
+		DRW_shgroup_uniform_texture(stl->g_data->default_lit_grp, "probeFiltered", txl->probe_pool);
 		/* NOTE : Adding Shadow Map textures uniform in EEVEE_cache_finish */
 	}
 
@@ -594,9 +594,9 @@ static void EEVEE_cache_populate(void *vedata, Object *ob)
 						DRW_shgroup_uniform_float(shgrp, "lodMax", &stl->probes->lodmax, 1);
 						DRW_shgroup_uniform_vec3(shgrp, "shCoefs[0]", (float *)stl->probes->shcoefs, 9);
 						DRW_shgroup_uniform_vec3(shgrp, "cameraPos", e_data.camera_pos, 1);
-						DRW_shgroup_uniform_texture(shgrp, "ltcMat", e_data.ltc_mat, 0);
-						DRW_shgroup_uniform_texture(shgrp, "brdfLut", e_data.brdf_lut, 1);
-						DRW_shgroup_uniform_texture(shgrp, "probeFiltered", txl->probe_pool, 2);
+						DRW_shgroup_uniform_texture(shgrp, "ltcMat", e_data.ltc_mat);
+						DRW_shgroup_uniform_texture(shgrp, "brdfLut", e_data.brdf_lut);
+						DRW_shgroup_uniform_texture(shgrp, "probeFiltered", txl->probe_pool);
 					}
 					else {
 						/* Shader failed : pink color */
@@ -647,9 +647,9 @@ typedef struct eevee_bind_shadow_data {
 static void eevee_bind_shadow(void *data, DRWShadingGroup *shgrp)
 {
 	eevee_bi

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list