mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-28 04:31:06 +00:00
[297/906] Revert "Fix callbacks passed over XEvents on 64 bit architectures"
This reverts commit 280771d09b58617b27201027de0e1194da376e72.
This commit is contained in:
parent
1b531037c5
commit
5a82aee272
1 changed files with 3 additions and 48 deletions
|
@ -626,19 +626,8 @@ gst_gl_window_run_loop (GstGLWindow * window)
|
||||||
/* Message sent with gst_gl_window_send_message */
|
/* Message sent with gst_gl_window_send_message */
|
||||||
if (wm_gl != None && event.xclient.message_type == wm_gl) {
|
if (wm_gl != None && event.xclient.message_type == wm_gl) {
|
||||||
if (priv->running) {
|
if (priv->running) {
|
||||||
#if SIZEOF_VOID_P == 8
|
|
||||||
GstGLWindowCB custom_cb =
|
|
||||||
(GstGLWindowCB) (((event.xclient.
|
|
||||||
data.l[0] & 0xffffffff) << 32) | (event.xclient.
|
|
||||||
data.l[1] & 0xffffffff));
|
|
||||||
gpointer custom_data =
|
|
||||||
(gpointer) (((event.xclient.
|
|
||||||
data.l[2] & 0xffffffff) << 32) | (event.xclient.
|
|
||||||
data.l[3] & 0xffffffff));
|
|
||||||
#else
|
|
||||||
GstGLWindowCB custom_cb = (GstGLWindowCB) event.xclient.data.l[0];
|
GstGLWindowCB custom_cb = (GstGLWindowCB) event.xclient.data.l[0];
|
||||||
gpointer custom_data = (gpointer) event.xclient.data.l[1];
|
gpointer custom_data = (gpointer) event.xclient.data.l[1];
|
||||||
#endif
|
|
||||||
|
|
||||||
if (!custom_cb || !custom_data)
|
if (!custom_cb || !custom_data)
|
||||||
g_debug ("custom cb not initialized\n");
|
g_debug ("custom cb not initialized\n");
|
||||||
|
@ -669,19 +658,8 @@ gst_gl_window_run_loop (GstGLWindow * window)
|
||||||
/* message sent with gst_gl_window_quit_loop */
|
/* message sent with gst_gl_window_quit_loop */
|
||||||
else if (wm_quit_loop != None
|
else if (wm_quit_loop != None
|
||||||
&& event.xclient.message_type == wm_quit_loop) {
|
&& event.xclient.message_type == wm_quit_loop) {
|
||||||
#if SIZEOF_VOID_P == 8
|
|
||||||
GstGLWindowCB destroy_cb =
|
|
||||||
(GstGLWindowCB) (((event.xclient.
|
|
||||||
data.l[0] & 0xffffffff) << 32) | (event.xclient.
|
|
||||||
data.l[1] & 0xffffffff));
|
|
||||||
gpointer destroy_data =
|
|
||||||
(gpointer) (((event.xclient.
|
|
||||||
data.l[2] & 0xffffffff) << 32) | (event.xclient.
|
|
||||||
data.l[3] & 0xffffffff));
|
|
||||||
#else
|
|
||||||
GstGLWindowCB destroy_cb = (GstGLWindowCB) event.xclient.data.l[0];
|
GstGLWindowCB destroy_cb = (GstGLWindowCB) event.xclient.data.l[0];
|
||||||
gpointer destroy_data = (gpointer) event.xclient.data.l[1];
|
gpointer destroy_data = (gpointer) event.xclient.data.l[1];
|
||||||
#endif
|
|
||||||
|
|
||||||
g_debug ("Quit loop message %" G_GUINT64_FORMAT "\n",
|
g_debug ("Quit loop message %" G_GUINT64_FORMAT "\n",
|
||||||
(guint64) priv->internal_win_id);
|
(guint64) priv->internal_win_id);
|
||||||
|
@ -692,19 +670,10 @@ gst_gl_window_run_loop (GstGLWindow * window)
|
||||||
/* make sure last pendings send message calls are executed */
|
/* make sure last pendings send message calls are executed */
|
||||||
XFlush (priv->device);
|
XFlush (priv->device);
|
||||||
while (XCheckTypedEvent (priv->device, ClientMessage, &pending_event)) {
|
while (XCheckTypedEvent (priv->device, ClientMessage, &pending_event)) {
|
||||||
#if SIZEOF_VOID_P == 8
|
|
||||||
GstGLWindowCB custom_cb =
|
GstGLWindowCB custom_cb =
|
||||||
(GstGLWindowCB) (((event.xclient.
|
(GstGLWindowCB) pending_event.xclient.data.l[0];
|
||||||
data.l[0] & 0xffffffff) << 32) | (event.xclient.
|
gpointer custom_data = (gpointer) pending_event.xclient.data.l[1];
|
||||||
data.l[1] & 0xffffffff));
|
|
||||||
gpointer custom_data =
|
|
||||||
(gpointer) (((event.xclient.
|
|
||||||
data.l[2] & 0xffffffff) << 32) | (event.xclient.
|
|
||||||
data.l[3] & 0xffffffff));
|
|
||||||
#else
|
|
||||||
GstGLWindowCB custom_cb = (GstGLWindowCB) event.xclient.data.l[0];
|
|
||||||
gpointer custom_data = (gpointer) event.xclient.data.l[1];
|
|
||||||
#endif
|
|
||||||
g_debug ("execute last pending custom x events\n");
|
g_debug ("execute last pending custom x events\n");
|
||||||
|
|
||||||
if (!custom_cb || !custom_data)
|
if (!custom_cb || !custom_data)
|
||||||
|
@ -804,15 +773,8 @@ gst_gl_window_quit_loop (GstGLWindow * window, GstGLWindowCB callback,
|
||||||
event.xclient.message_type =
|
event.xclient.message_type =
|
||||||
XInternAtom (priv->disp_send, "WM_QUIT_LOOP", True);;
|
XInternAtom (priv->disp_send, "WM_QUIT_LOOP", True);;
|
||||||
event.xclient.format = 32;
|
event.xclient.format = 32;
|
||||||
#if SIZEOF_VOID_P == 8
|
|
||||||
event.xclient.data.l[0] = (((long) callback) >> 32) & 0xffffffff;
|
|
||||||
event.xclient.data.l[1] = (((long) callback)) & 0xffffffff;
|
|
||||||
event.xclient.data.l[2] = (((long) data) >> 32) & 0xffffffff;
|
|
||||||
event.xclient.data.l[3] = (((long) data)) & 0xffffffff;
|
|
||||||
#else
|
|
||||||
event.xclient.data.l[0] = (long) callback;
|
event.xclient.data.l[0] = (long) callback;
|
||||||
event.xclient.data.l[1] = (long) data;
|
event.xclient.data.l[1] = (long) data;
|
||||||
#endif
|
|
||||||
|
|
||||||
XSendEvent (priv->disp_send, priv->internal_win_id, FALSE, NoEventMask,
|
XSendEvent (priv->disp_send, priv->internal_win_id, FALSE, NoEventMask,
|
||||||
&event);
|
&event);
|
||||||
|
@ -843,15 +805,8 @@ gst_gl_window_send_message (GstGLWindow * window, GstGLWindowCB callback,
|
||||||
event.xclient.message_type =
|
event.xclient.message_type =
|
||||||
XInternAtom (priv->disp_send, "WM_GL_WINDOW", True);
|
XInternAtom (priv->disp_send, "WM_GL_WINDOW", True);
|
||||||
event.xclient.format = 32;
|
event.xclient.format = 32;
|
||||||
#if SIZEOF_VOID_P == 8
|
|
||||||
event.xclient.data.l[0] = (((long) callback) >> 32) & 0xffffffff;
|
|
||||||
event.xclient.data.l[1] = (((long) callback)) & 0xffffffff;
|
|
||||||
event.xclient.data.l[2] = (((long) data) >> 32) & 0xffffffff;
|
|
||||||
event.xclient.data.l[3] = (((long) data)) & 0xffffffff;
|
|
||||||
#else
|
|
||||||
event.xclient.data.l[0] = (long) callback;
|
event.xclient.data.l[0] = (long) callback;
|
||||||
event.xclient.data.l[1] = (long) data;
|
event.xclient.data.l[1] = (long) data;
|
||||||
#endif
|
|
||||||
|
|
||||||
XSendEvent (priv->disp_send, priv->internal_win_id, FALSE, NoEventMask,
|
XSendEvent (priv->disp_send, priv->internal_win_id, FALSE, NoEventMask,
|
||||||
&event);
|
&event);
|
||||||
|
|
Loading…
Reference in a new issue