DRW: Fix small changes to transparent background.
Fix changes introduced e3ef782af5
Eevee is in charge of rendering so it should be its task to have it's buffer initialized
This commit is contained in:
@@ -158,7 +158,12 @@ static void eevee_cache_finish(void *vedata)
|
||||
EEVEE_lightprobes_cache_finish(sldata, vedata);
|
||||
}
|
||||
|
||||
static void eevee_draw_scene(void *vedata)
|
||||
/* As renders in an HDR offscreen buffer, we need draw everything once
|
||||
* during the background pass. This way the other drawing callback between
|
||||
* the background and the scene pass are visible.
|
||||
* Note: we could break it up in two passes using some depth test
|
||||
* to reduce the fillrate */
|
||||
static void eevee_draw_background(void *vedata)
|
||||
{
|
||||
EEVEE_PassList *psl = ((EEVEE_Data *)vedata)->psl;
|
||||
EEVEE_StorageList *stl = ((EEVEE_Data *)vedata)->stl;
|
||||
@@ -207,7 +212,14 @@ static void eevee_draw_scene(void *vedata)
|
||||
DRW_framebuffer_texture_detach(dtxl->depth);
|
||||
DRW_framebuffer_texture_attach(fbl->main, dtxl->depth, 0, 0);
|
||||
DRW_framebuffer_bind(fbl->main);
|
||||
DRW_framebuffer_clear(false, true, true, NULL, 1.0f);
|
||||
if (DRW_state_draw_background()) {
|
||||
DRW_framebuffer_clear(false, true, true, NULL, 1.0f);
|
||||
}
|
||||
else {
|
||||
/* We need to clear the alpha chanel in this case. */
|
||||
float clear_col[4] = {0.0f, 0.0f, 0.0f, 0.0f};
|
||||
DRW_framebuffer_clear(true, true, true, clear_col, 1.0f);
|
||||
}
|
||||
|
||||
if (((stl->effects->enabled_effects & EFFECT_TAA) != 0) && stl->effects->taa_current_sample > 1) {
|
||||
DRW_viewport_matrix_override_set(stl->effects->overide_persmat, DRW_MAT_PERS);
|
||||
@@ -418,8 +430,8 @@ DrawEngineType draw_engine_eevee_type = {
|
||||
&eevee_cache_init,
|
||||
&eevee_cache_populate,
|
||||
&eevee_cache_finish,
|
||||
NULL,
|
||||
&eevee_draw_scene,
|
||||
&eevee_draw_background,
|
||||
NULL, /* Everything is drawn in the background pass (see comment on function) */
|
||||
&eevee_view_update,
|
||||
&eevee_id_update,
|
||||
};
|
||||
|
||||
@@ -2899,7 +2899,9 @@ static void drw_engines_draw_background(void)
|
||||
}
|
||||
|
||||
/* No draw_background found, doing default background */
|
||||
DRW_draw_background();
|
||||
if (DRW_state_draw_background()) {
|
||||
DRW_draw_background();
|
||||
}
|
||||
}
|
||||
|
||||
static void drw_engines_draw_scene(void)
|
||||
@@ -3429,9 +3431,7 @@ void DRW_draw_render_loop_ex(
|
||||
/* Start Drawing */
|
||||
DRW_state_reset();
|
||||
|
||||
if (DRW_state_draw_background()) {
|
||||
drw_engines_draw_background();
|
||||
}
|
||||
drw_engines_draw_background();
|
||||
|
||||
/* WIP, single image drawn over the camera view (replace) */
|
||||
bool do_bg_image = false;
|
||||
|
||||
Reference in New Issue
Block a user