[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; typedef struct GstGLClutterActor_ GstGLClutterActor;
static ClutterX11FilterReturn event_filter (XEvent *ev, ClutterEvent *cev,
gpointer data);
static gboolean static gboolean
create_actor (GstGLClutterActor *actor) { create_actor (GstGLClutterActor *actor) {
static gint xpos = 0; static gint xpos = 0;
@ -112,6 +115,22 @@ apply_fx (GstElement *element, const gchar *fx)
} }
#endif #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 int
main (int argc, char *argv[]) main (int argc, char *argv[])
{ {
@ -182,6 +201,8 @@ main (int argc, char *argv[])
queue[i], upload[i], effect[i], sink[i], NULL); queue[i], upload[i], effect[i], sink[i], NULL);
} }
clutter_x11_add_filter (event_filter, sink);
gst_element_link_many (srcbin, tee, NULL); gst_element_link_many (srcbin, tee, NULL);
for (i=0; i<N_ACTORS; i++) { for (i=0; i<N_ACTORS; i++) {