aboutsummaryrefslogtreecommitdiff
path: root/doc/nx-X11_vs_XOrg69_patches/NXglxext.c.NX.patch
blob: a8dbfe0fd28262892e1689c7cb94e55bc27ec932 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
--- ./nx-X11/programs/Xserver/hw/nxagent/X/NXglxext.c.X.original	2015-02-13 14:03:44.744441510 +0100
+++ ./nx-X11/programs/Xserver/hw/nxagent/X/NXglxext.c	2015-02-10 19:13:13.808685737 +0100
@@ -1,3 +1,20 @@
+/**************************************************************************/
+/*                                                                        */
+/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/.         */
+/*                                                                        */
+/* NXAGENT, NX protocol compression and NX extensions to this software    */
+/* are copyright of NoMachine. Redistribution and use of the present      */
+/* software is allowed according to terms specified in the file LICENSE   */
+/* which comes in the source distribution.                                */
+/*                                                                        */
+/* Check http://www.nomachine.com/licensing.html for applicability.       */
+/*                                                                        */
+/* NX and NoMachine are trademarks of Medialogic S.p.A.                   */
+/*                                                                        */
+/* All rights reserved.                                                   */
+/*                                                                        */
+/**************************************************************************/
+
 /* $XFree86: xc/programs/Xserver/GL/glx/glxext.c,v 1.9 2003/09/28 20:15:43 alanh Exp $
 ** The contents of this file are subject to the GLX Public License Version 1.0
 ** (the "License"). You may not use this file except in compliance with the
@@ -33,6 +50,12 @@
 #include "glxext.h"
 #include "micmap.h"
 
+#include "Trap.h"
+
+#define PANIC
+#define WARNING
+#undef  TEST
+#undef  DEBUG
 
 void GlxWrapInitVisuals(miInitVisualsProcPtr *);
 void GlxSetVisualConfigs(int nconfigs, 
@@ -395,6 +418,8 @@
 */
 static int __glXDispatch(ClientPtr client)
 {
+    int result;
+
     REQUEST(xGLXSingleReq);
     CARD8 opcode;
     int (*proc)(__GLXclientState *cl, GLbyte *pc);
@@ -444,11 +469,35 @@
     ** Use the opcode to index into the procedure table.
     */
     proc = __glXSingleTable[opcode];
-    return (*proc)(cl, (GLbyte *) stuff);
+
+    /*
+     * Report upstream that we are
+     * dispatching a GLX operation.
+     */
+
+    nxagentGlxTrap = 1;
+
+    #ifdef TEST
+    fprintf(stderr, "__glXDispatch: Going to dispatch GLX operation [%d] for client [%d].\n", 
+                opcode, client -> index);
+    #endif
+    
+    result = (*proc)(cl, (GLbyte *) stuff);
+
+    nxagentGlxTrap = 0;
+
+    #ifdef TEST
+    fprintf(stderr, "__glXDispatch: Dispatched GLX operation [%d] for client [%d].\n", 
+                opcode, client -> index);
+    #endif
+
+    return result;
 }
 
 static int __glXSwapDispatch(ClientPtr client)
 {
+    int result;
+
     REQUEST(xGLXSingleReq);
     CARD8 opcode;
     int (*proc)(__GLXclientState *cl, GLbyte *pc);
@@ -490,7 +539,29 @@
     ** Use the opcode to index into the procedure table.
     */
     proc = __glXSwapSingleTable[opcode];
-    return (*proc)(cl, (GLbyte *) stuff);
+
+    /*
+     * Report upstream that we are
+     * dispatching a GLX operation.
+     */
+
+    nxagentGlxTrap = 1;
+
+    #ifdef TEST
+    fprintf(stderr, "__glXDispatch: Going to dispatch GLX operation [%d] for client [%d].\n", 
+                opcode, client -> index);
+    #endif
+    
+    result = (*proc)(cl, (GLbyte *) stuff);
+
+    nxagentGlxTrap = 0;
+
+    #ifdef TEST
+    fprintf(stderr, "__glXDispatch: Dispatched GLX operation [%d] for client [%d].\n", 
+                opcode, client -> index);
+    #endif
+
+    return result;
 }
 
 int __glXNoSuchSingleOpcode(__GLXclientState *cl, GLbyte *pc)
@@ -502,4 +573,3 @@
 {
     return;
 }
-