22 const float fac = this->
factor;
23 const float mfac = 1.0f - fac;
24 const int ifac = int(256.0f * fac);
25 const int imfac = 256 - ifac;
27 if constexpr (std::is_same_v<T, uchar>) {
28 dst[0] = (imfac * src1[0] + ifac * src2[0]) >> 8;
29 dst[1] = (imfac * src1[1] + ifac * src2[1]) >> 8;
30 dst[2] = (imfac * src1[2] + ifac * src2[2]) >> 8;
31 dst[3] = (imfac * src1[3] + ifac * src2[3]) >> 8;
34 dst[0] = mfac * src1[0] + fac * src2[0];
35 dst[1] = mfac * src1[1] + fac * src2[1];
36 dst[2] = mfac * src1[2] + fac * src2[2];
37 dst[3] = mfac * src1[3] + fac * src2[3];
83 const float fac = this->
factor;
84 const float mfac = 1.0f - fac;
89 for (
int c = 0; c < 4; ++c) {
MINLINE float sqrtf_signed(float f)
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
static ImBuf * do_cross_effect(const RenderData *context, SeqRenderState *, Strip *, float, float fac, ImBuf *src1, ImBuf *src2)
static ImBuf * do_gammacross_effect(const RenderData *context, SeqRenderState *, Strip *, float, float fac, ImBuf *src1, ImBuf *src2)
void store_premul_pixel(const blender::float4 &pix, uchar *dst)
ImBuf * prepare_effect_imbufs(const RenderData *context, ImBuf *ibuf1, ImBuf *ibuf2, bool uninitialized_pixels)
void gamma_cross_effect_get_handle(EffectHandle &rval)
void get_default_fac_fade(const Scene *scene, const Strip *strip, float timeline_frame, float *fac)
void cross_effect_get_handle(EffectHandle &rval)
blender::float4 load_premul_pixel(const uchar *ptr)
static float invGammaCorrect(float c)
static void apply_effect_op(const OpT &op, const ImBuf *src1, const ImBuf *src2, ImBuf *dst)
static float gammaCorrect(float c)
StripEarlyOut early_out_fade(const Strip *, float fac)
VecBase< float, 4 > float4
void apply(const T *src1, const T *src2, T *dst, int64_t size) const
ImBuf *(* execute)(const RenderData *context, SeqRenderState *state, Strip *strip, float timeline_frame, float fac, ImBuf *ibuf1, ImBuf *ibuf2)
void(* get_default_fac)(const Scene *scene, const Strip *strip, float timeline_frame, float *fac)
StripEarlyOut(* early_out)(const Strip *strip, float fac)
void apply(const T *src1, const T *src2, T *dst, int64_t size) const