From e5c5f6be80792dbfc5db2906cc1564fb08d6aa41 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Sun, 13 Oct 2002 18:46:10 +0000 Subject: - reimplemented using organic masks, rendered with gouraud shaded triangles Original commit message from CVS: - reimplemented using organic masks, rendered with gouraud shaded triangles - implemented more masks - implemented adjustable border --- gst/smpte/gstmask.c | 35 +++++++++++++---------------------- 1 file changed, 13 insertions(+), 22 deletions(-) (limited to 'gst/smpte/gstmask.c') diff --git a/gst/smpte/gstmask.c b/gst/smpte/gstmask.c index a26d7190..14804524 100644 --- a/gst/smpte/gstmask.c +++ b/gst/smpte/gstmask.c @@ -19,6 +19,7 @@ #include "gstmask.h" +#include "paint.h" extern void _gst_barboxwipes_register (void); @@ -73,31 +74,23 @@ gst_mask_factory_new (gint type, gint bpp, gint width, gint height) definition = gst_mask_find_definition (type); if (definition) { - mask = definition->new_func (definition, bpp, width, height); + mask = g_new0 (GstMask, 1); + + mask->type = definition->type; + mask->bpp = bpp; + mask->width = width; + mask->height = height; + mask->destroy_func = definition->destroy_func; + mask->user_data = definition->user_data; + mask->data = g_malloc (width * height * sizeof (guint32)); + + if (definition->draw_func) + definition->draw_func (mask); } return mask; } -GstMask* -_gst_mask_default_new (GstMaskDefinition *definition, - gint bpp, gint width, gint height) -{ - GstMask *mask; - - mask = g_new0 (GstMask, 1); - - mask->type = definition->type; - mask->bpp = bpp; - mask->width = width; - mask->height = height; - mask->update_func = definition->update_func; - mask->destroy_func = definition->destroy_func; - mask->data = g_malloc (width * height * (bpp+7)>>3); - - return mask; -} - void _gst_mask_default_destroy (GstMask *mask) { @@ -119,6 +112,4 @@ gst_mask_update (GstMask *mask, { g_return_if_fail (mask != NULL); - if (mask->update_func) - mask->update_func (mask, position, duration); } -- cgit v1.2.1