[186/906] add expose event handling to clutteractortee

This commit is contained in:
Filippo Argiolas 2008-08-18 11:08:09 +02:00 committed by Matthew Waters
parent 4e986d054f
commit ca2536cffa

View file

@ -41,6 +41,9 @@ struct GstGLClutterActor_ {
typedef struct GstGLClutterActor_ GstGLClutterActor;
static ClutterX11FilterReturn event_filter (XEvent *ev, ClutterEvent *cev,
gpointer data);
static gboolean
create_actor (GstGLClutterActor *actor) {
static gint xpos = 0;
@ -112,6 +115,22 @@ apply_fx (GstElement *element, const gchar *fx)
}
#endif
static ClutterX11FilterReturn
event_filter (XEvent *ev, ClutterEvent *cev, gpointer data)
{
gint i;
GstElement **sink = data;
switch (ev->type) {
case Expose:
for (i=0; i<N_ACTORS; i++) {
gst_x_overlay_expose (GST_X_OVERLAY (sink[i]));
}
default:
return CLUTTER_X11_FILTER_CONTINUE;
}
}
int
main (int argc, char *argv[])
{
@ -182,6 +201,8 @@ main (int argc, char *argv[])
queue[i], upload[i], effect[i], sink[i], NULL);
}
clutter_x11_add_filter (event_filter, sink);
gst_element_link_many (srcbin, tee, NULL);
for (i=0; i<N_ACTORS; i++) {