[Bf-blender-cvs] [5203d0ca484] greasepencil-refactor: GPencil: Implement Fade 3D objects
Antonio Vazquez
noreply at git.blender.org
Tue Jan 21 16:05:27 CET 2020
Commit: 5203d0ca484e8e3857177cd324ed1825087c0218
Author: Antonio Vazquez
Date: Tue Jan 21 16:03:30 2020 +0100
Branches: greasepencil-refactor
https://developer.blender.org/rB5203d0ca484e8e3857177cd324ed1825087c0218
GPencil: Implement Fade 3D objects
===================================================================
M source/blender/draw/engines/gpencil/gpencil_cache_utils.c
M source/blender/draw/engines/gpencil/gpencil_engine.c
M source/blender/draw/engines/gpencil/gpencil_engine.h
===================================================================
diff --git a/source/blender/draw/engines/gpencil/gpencil_cache_utils.c b/source/blender/draw/engines/gpencil/gpencil_cache_utils.c
index 68ddba024a9..974ef244340 100644
--- a/source/blender/draw/engines/gpencil/gpencil_cache_utils.c
+++ b/source/blender/draw/engines/gpencil/gpencil_cache_utils.c
@@ -116,8 +116,8 @@ GPENCIL_tLayer *gpencil_layer_cache_add(GPENCIL_PrivateData *pd, Object *ob, bGP
if ((is_obact) && (is_fade)) {
fade_layer_opacity = pd->fade_layer_opacity;
}
- else if ((!is_obact) && (pd->fade_object_opacity > -1.0f)) {
- fade_layer_opacity = pd->fade_object_opacity;
+ else if ((!is_obact) && (pd->fade_gp_object_opacity > -1.0f)) {
+ fade_layer_opacity = pd->fade_gp_object_opacity;
}
bGPdata *gpd = (bGPdata *)ob->data;
diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.c b/source/blender/draw/engines/gpencil/gpencil_engine.c
index bc47a18ba42..545f1a2cfae 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.c
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.c
@@ -196,8 +196,12 @@ void GPENCIL_cache_init(void *ved)
const bool is_fade_object = ((!hide_overlay) && (!pd->is_render) &&
(draw_ctx->v3d->gp_flag & V3D_GP_FADE_OBJECTS) &&
(draw_ctx->v3d->gp_flag & V3D_GP_FADE_NOACTIVE_GPENCIL));
- pd->fade_object_opacity = (is_fade_object) ? draw_ctx->v3d->overlay.gpencil_paper_opacity :
- -1.0f;
+ pd->fade_gp_object_opacity = (is_fade_object) ? draw_ctx->v3d->overlay.gpencil_paper_opacity :
+ -1.0f;
+ pd->fade_3d_object_opacity = ((!hide_overlay) && (!pd->is_render) &&
+ (draw_ctx->v3d->gp_flag & V3D_GP_FADE_OBJECTS)) ?
+ draw_ctx->v3d->overlay.gpencil_paper_opacity :
+ -1.0f;
}
else {
pd->do_onion = true;
@@ -896,6 +900,11 @@ void GPENCIL_draw_scene(void *ved)
GPENCIL_FramebufferList *fbl = vedata->fbl;
float clear_cols[2][4] = {{0.0f, 0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f, 1.0f}};
+ /* Fade 3D objects. */
+ if (pd->fade_3d_object_opacity > -1.0f) {
+ mul_v4_fl(clear_cols[1], pd->fade_3d_object_opacity);
+ }
+
if (pd->draw_depth_only) {
GPENCIL_draw_scene_depth_only(vedata);
return;
diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.h b/source/blender/draw/engines/gpencil/gpencil_engine.h
index 52f857dbad7..dfb5ba92353 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.h
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.h
@@ -329,8 +329,10 @@ typedef struct GPENCIL_PrivateData {
bool use_signed_fb;
/* Layer opacity for fading. */
float fade_layer_opacity;
- /* Opacity for fading objects. */
- float fade_object_opacity;
+ /* Opacity for fading gpencil objects. */
+ float fade_gp_object_opacity;
+ /* Opacity for fading 3D objects. */
+ float fade_3d_object_opacity;
} GPENCIL_PrivateData;
/* geometry batch cache functions */
More information about the Bf-blender-cvs
mailing list