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:
authorClément Foucault <foucault.clem@gmail.com>2019-05-21 13:34:48 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-05-22 14:29:05 +0300
commit925b5823ccbc4fb3f7f90b29950e3d7bb0d5c90e (patch)
tree6ebbf9db572dd454972200c1e3f4ecc8b313c5a3 /source/blender/draw/engines/eevee/eevee_effects.c
parentb944a6698659511b7c37c5bb33aa22df8c52826c (diff)
Eevee: Use DRW_view_* API instead of DRW_viewport_matrix_*
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_effects.c')
-rw-r--r--source/blender/draw/engines/eevee/eevee_effects.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_effects.c b/source/blender/draw/engines/eevee/eevee_effects.c
index 8a85c6671fd..3562afc9134 100644
--- a/source/blender/draw/engines/eevee/eevee_effects.c
+++ b/source/blender/draw/engines/eevee/eevee_effects.c
@@ -360,6 +360,13 @@ void EEVEE_effects_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
DRW_shgroup_uniform_vec4(grp, "color2", effects->color_checker_light, 1);
DRW_shgroup_uniform_int_copy(grp, "size", 8);
DRW_shgroup_call(grp, quad, NULL);
+
+ float mat[4][4];
+ unit_m4(mat);
+
+ /* Using default view bypasses the culling. */
+ const DRWView *default_view = DRW_view_default_get();
+ effects->checker_view = DRW_view_create_sub(default_view, mat, mat);
}
}
@@ -515,16 +522,11 @@ void EEVEE_draw_alpha_checker(EEVEE_Data *vedata)
EEVEE_EffectsInfo *effects = stl->effects;
if ((effects->enabled_effects & EFFECT_ALPHA_CHECKER) != 0) {
- float mat[4][4];
- unit_m4(mat);
-
- /* Fragile, rely on the fact that GPU_SHADER_2D_CHECKER
- * only use the persmat. */
- DRW_viewport_matrix_override_set(mat, DRW_MAT_PERS);
+ DRW_view_set_active(effects->checker_view);
DRW_draw_pass(psl->alpha_checker);
- DRW_viewport_matrix_override_unset(DRW_MAT_PERS);
+ DRW_view_set_active(NULL);
}
}
@@ -534,16 +536,17 @@ static void EEVEE_velocity_resolve(EEVEE_Data *vedata)
EEVEE_FramebufferList *fbl = vedata->fbl;
EEVEE_StorageList *stl = vedata->stl;
EEVEE_EffectsInfo *effects = stl->effects;
+ struct DRWView *view = effects->taa_view;
if ((effects->enabled_effects & EFFECT_VELOCITY_BUFFER) != 0) {
DefaultTextureList *dtxl = DRW_viewport_texture_list_get();
e_data.depth_src = dtxl->depth;
- DRW_viewport_matrix_get(effects->velocity_curr_persinv, DRW_MAT_PERSINV);
+ DRW_view_persmat_get(view, effects->velocity_curr_persinv, true);
GPU_framebuffer_bind(fbl->velocity_resolve_fb);
DRW_draw_pass(psl->velocity_resolve);
}
- DRW_viewport_matrix_get(effects->velocity_past_persmat, DRW_MAT_PERS);
+ DRW_view_persmat_get(view, effects->velocity_past_persmat, false);
}
void EEVEE_draw_effects(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata)
@@ -594,7 +597,7 @@ void EEVEE_draw_effects(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata)
}
/* Record pers matrix for the next frame. */
- DRW_viewport_matrix_get(stl->effects->prev_persmat, DRW_MAT_PERS);
+ DRW_view_persmat_get(effects->taa_view, effects->prev_persmat, false);
/* Update double buffer status if render mode. */
if (DRW_state_is_image_render()) {