65 lines
1.9 KiB
C++
65 lines
1.9 KiB
C++
#ifndef _EXYNOS_SCALERBLEND_H_
|
|
#define _EXYNOS_SCALERBLEND_H_
|
|
|
|
#include "libscaler-v4l2.h"
|
|
|
|
class CScalerBlendV4L2 : public CScalerV4L2 {
|
|
|
|
public:
|
|
CScalerBlendV4L2(int instance, int allow_drm);
|
|
~CScalerBlendV4L2();
|
|
struct SrcBlendInfo m_SrcBlndCfg;
|
|
|
|
// H/W Control
|
|
virtual bool DevSetCtrl();
|
|
|
|
void GetCustomAlphaBlendFmt(int32_t &src_color_space,
|
|
unsigned int srcblendfmt);
|
|
|
|
inline void SetSrcBlendOp(SRC_BL_OP op) {
|
|
m_SrcBlndCfg.blop = op;
|
|
SetFlag(m_fStatus, SCF_SRC_BLEND);
|
|
}
|
|
|
|
inline void SetSrcBlendHPos(int srcblendhpos) {
|
|
m_SrcBlndCfg.srcblendhpos = srcblendhpos;
|
|
}
|
|
|
|
inline void SetSrcBlendVPos(int srcblendvpos) {
|
|
m_SrcBlndCfg.srcblendvpos = srcblendvpos;
|
|
}
|
|
|
|
inline void SetSrcBlendPremulti(int srcblendpremulti) {
|
|
m_SrcBlndCfg.srcblendpremulti = srcblendpremulti;
|
|
}
|
|
|
|
inline void SetSrcBlendFmt(int srcblendfmt) {
|
|
m_SrcBlndCfg.srcblendfmt = srcblendfmt;
|
|
}
|
|
|
|
inline void SetSrcBlendStride(int srcblendstride) {
|
|
m_SrcBlndCfg.srcblendstride = srcblendstride;
|
|
}
|
|
|
|
inline void SetSrcBlendWidth(int srcblendwidth) {
|
|
m_SrcBlndCfg.srcblendwidth= srcblendwidth;
|
|
}
|
|
|
|
inline void SetSrcBlendHeight(int srcblendheight) {
|
|
m_SrcBlndCfg.srcblendheight = srcblendheight;
|
|
}
|
|
|
|
inline void SetSrcGlobalAlpha(int globalalpha, bool enable) {
|
|
m_SrcBlndCfg.globalalpha.enable = enable;
|
|
m_SrcBlndCfg.globalalpha.val = globalalpha;
|
|
}
|
|
|
|
inline void SetSrcBlendCSCSpace(bool enable,
|
|
enum colorspace space, bool wide) {
|
|
m_SrcBlndCfg.cscspec.enable = enable;
|
|
m_SrcBlndCfg.cscspec.space = space;
|
|
m_SrcBlndCfg.cscspec.wide = wide;
|
|
}
|
|
};
|
|
#endif
|