diff options
| author | Mayank Chopra <makchopra@codeaurora.org> | 2013-07-24 12:31:01 +0530 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 20:19:36 -0700 |
| commit | 7bf5af98fba413f81cd2428d829a0c2117c716e3 (patch) | |
| tree | e1715a3d9c85cf316125ea9851ee2a7adbf7a957 /include/uapi | |
| parent | b187f83cf20fd20b41675620108c66bf842d075f (diff) | |
msm: mdss: Add plane alpha support
Clean up the blending rule to follow blend_op set from hwc.
Use modulate alpha for plane alpha when it is not 0xff.
Change-Id: Iad7217563bcae5e89fe8e50954494f6afdcb8e79
Signed-off-by: Mayank Chopra <makchopra@codeaurora.org>
Diffstat (limited to 'include/uapi')
| -rw-r--r-- | include/uapi/linux/msm_mdp.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/include/uapi/linux/msm_mdp.h b/include/uapi/linux/msm_mdp.h index 168bf154fde4..0ea775cff219 100644 --- a/include/uapi/linux/msm_mdp.h +++ b/include/uapi/linux/msm_mdp.h @@ -395,6 +395,33 @@ struct mdp_overlay_pp_params { struct mdp_hist_lut_data hist_lut_cfg; }; +/** + * enum mdss_mdp_blend_op - Different blend operations set by userspace + * + * @BLEND_OP_NOT_DEFINED: No blend operation defined for the layer. + * @BLEND_OP_OPAQUE: Apply a constant blend operation. The layer + * would appear opaque in case fg plane alpha is + * 0xff. + * @BLEND_OP_PREMULTIPLIED: Apply source over blend rule. Layer already has + * alpha pre-multiplication done. If fg plane alpha + * is less than 0xff, apply modulation as well. This + * operation is intended on layers having alpha + * channel. + * @BLEND_OP_COVERAGE: Apply source over blend rule. Layer is not alpha + * pre-multiplied. Apply pre-multiplication. If fg + * plane alpha is less than 0xff, apply modulation as + * well. + * @BLEND_OP_MAX: Used to track maximum blend operation possible by + * mdp. + */ +enum mdss_mdp_blend_op { + BLEND_OP_NOT_DEFINED = 0, + BLEND_OP_OPAQUE, + BLEND_OP_PREMULTIPLIED, + BLEND_OP_COVERAGE, + BLEND_OP_MAX, +}; + struct mdp_overlay { struct msmfb_img src; struct mdp_rect src_rect; @@ -402,6 +429,7 @@ struct mdp_overlay { uint32_t z_order; /* stage number */ uint32_t is_fg; /* control alpha & transp */ uint32_t alpha; + uint32_t blend_op; uint32_t transp_mask; uint32_t flags; uint32_t id; |
