51 template<
typename ImageT,
typename MaskSampler>
54 image += y_range.
first() * image_x * 4;
76 const float black[3] = {0.0f, 0.0f, 0.0f};
77 const float white[3] = {1.0f, 1.0f, 1.0f};
99 C,
ptr,
"open_mask_input_panel",
IFACE_(
"Mask Input")))
125 "CurvesModifierData",
#define CTX_N_(context, msgid)
#define BLT_I18NCONTEXT_ID_SEQUENCE
@ eSeqModifierType_Curves
void uiTemplateCurveMapping(uiLayout *layout, PointerRNA *ptr, blender::StringRefNull propname, int type, bool levels, bool brush, bool neg_slope, bool tone, bool presets)
PointerRNA * UI_panel_custom_data_get(const Panel *panel)
constexpr int64_t first() const
ccl_device_inline float2 mask(const MaskType mask, const float2 a)
static void curves_register(ARegionType *region_type)
void draw_mask_input_type_settings(const bContext *C, uiLayout *layout, PointerRNA *ptr)
void apply_modifier_op(T &op, ImBuf *ibuf, const ImBuf *mask, const float3x3 &mask_transform)
static void curves_write(BlendWriter *writer, const StripModifierData *smd)
void store_pixel_premul(float4 pix, uchar *ptr)
static void curves_apply(ModifierApplyContext &context, StripModifierData *smd, ImBuf *mask)
StripModifierTypeInfo seqModifierType_Curves
static void curves_free_data(StripModifierData *smd)
static void curves_copy_data(StripModifierData *target, StripModifierData *smd)
static void curves_read(BlendDataReader *reader, StripModifierData *smd)
float4 load_pixel_premul(const uchar *ptr)
static void curves_init_data(StripModifierData *smd)
static void curves_panel_draw(const bContext *C, Panel *panel)
PanelType * modifier_panel_register(ARegionType *region_type, const eStripModifierType type, PanelDrawFn draw)
VecBase< float, 4 > float4
struct CurveMapping curve_mapping
void apply(ImageT *image, MaskSampler &mask, int image_x, IndexRange y_range)
const CurveMapping * curve_mapping
PanelLayout panel_prop(const bContext *C, PointerRNA *open_prop_owner, blender::StringRefNull open_prop_name)