[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