X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmaskengine.h;h=ff6dacb744c8fa312c661091f210ecaaab3ba9c9;hb=8e67d840c5a93f77de021102a4f0bfc4e07504f4;hp=372319c5c9a743672ee5fbc90e67a575ff44d9cc;hpb=b350aa5a1ccbadcb5f794183c443c0738cd1e9ab;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/maskengine.h b/cinelerra-5.1/cinelerra/maskengine.h index 372319c5..ff6dacb7 100644 --- a/cinelerra-5.1/cinelerra/maskengine.h +++ b/cinelerra-5.1/cinelerra/maskengine.h @@ -38,8 +38,10 @@ class MaskEngine; enum { DO_MASK, - DO_FEATHER, - DO_APPLY + DO_FEATHER_X, + DO_FEATHER_Y, + DO_MASK_BLEND, + DO_APPLY, }; @@ -49,7 +51,8 @@ public: MaskPackage(); ~MaskPackage(); - int start_x, end_x, start_y, end_y; + int start_x, end_x; + int start_y, end_y; }; class MaskUnit : public LoadClient @@ -58,17 +61,25 @@ public: MaskUnit(MaskEngine *engine); ~MaskUnit(); - void draw_line(int v, int x1, int y1, int x2, int y2); - void draw_fill(int v); + void clear_mask(VFrame *msk, int a); + void draw_line(int x1, int y1, int x2, int y2); + void draw_fill(); void draw_feather(int ix1,int iy1, int ix2,int iy2); - void draw_spot(int ix, int iy); + void draw_edge(int ix, int iy); + void draw_filled_polygon(MaskEdge &edge); + void feather_x(VFrame *in, VFrame *out); + void feather_y(VFrame *in, VFrame *out); + void mask_blend(VFrame *in, VFrame *mask, float r, float v); + void apply_mask_alpha(VFrame *output, VFrame *mask); + void process_package(LoadPackage *package); MaskEngine *engine; - int start_y, end_y; + MaskPackage *pkg; int mask_model; - float v, r; - temp_t *spot; + int bc, fc; + int start_x, end_x; + int start_y, end_y; }; class MaskEngine : public LoadServer @@ -85,6 +96,8 @@ public: MaskAuto *default_auto); int points_equivalent(MaskPoints *new_points, MaskPoints *points); + void clear_mask(VFrame *msk, int a); + void draw_point_spot(float r); void delete_packages(); void init_packages(); @@ -92,14 +105,17 @@ public: LoadPackage* new_package(); VFrame *output; - VFrame *mask, *temp; + VFrame *mask, *in, *out; MaskEdges edges; MaskPointSets point_sets; ArrayList faders; ArrayList feathers; int step, total_submasks; int recalculate; - temp_t fade[SUBMASKS+1]; + MaskEdge *edge; + float r, v; + float *psf; + int psz; };