]> git.pld-linux.org Git - packages/xorg-xserver-server.git/blob - Mesa-glx-x11-render-texture.diff
- 1.0.2 will fix CVE-2006-0745
[packages/xorg-xserver-server.git] / Mesa-glx-x11-render-texture.diff
1 Index: src/glx/x11/glxcmds.c
2 ===================================================================
3 RCS file: /cvs/mesa/Mesa/src/glx/x11/glxcmds.c,v
4 retrieving revision 1.8
5 diff -u -r1.8 glxcmds.c
6 --- src/glx/x11/glxcmds.c       26 Jul 2005 22:53:38 -0000      1.8
7 +++ src/glx/x11/glxcmds.c       28 Jul 2005 00:40:40 -0000
8 @@ -2589,7 +2589,88 @@
9  }
10  /*@}*/
11  
12 +PUBLIC Bool glXBindTexImageMESA(Display *dpy,
13 +                               GLXDrawable drawable,
14 +                               int buffer)
15 +{
16 +    xGLXVendorPrivateReq *req;
17 +    GLXContext gc = __glXGetCurrentContext();
18 +    GLXDrawable *drawable_ptr;
19 +    int *buffer_ptr;
20 +    CARD8 opcode;
21 +
22 +    if (gc == NULL)
23 +       return False;
24 +
25 +#ifdef GLX_DIRECT_RENDERING
26 +    if (gc->isDirect)
27 +       return False;
28 +#endif
29 +
30 +    opcode = __glXSetupForCommand(dpy);
31 +    if (!opcode)
32 +       return False;
33 +
34 +    LockDisplay(dpy);
35 +    GetReqExtra(GLXVendorPrivate, sizeof(GLXDrawable)+sizeof(int),req);
36 +    req->reqType = opcode;
37 +    req->glxCode = X_GLXVendorPrivate;
38 +    req->vendorCode = X_GLXvop_BindTexImageEXT;
39 +    req->contextTag = gc->currentContextTag;
40 +
41 +    drawable_ptr = (GLXDrawable *) (req + 1);
42 +    buffer_ptr = (int *) (drawable_ptr + 1);
43  
44 +    *drawable_ptr = drawable;
45 +    *buffer_ptr = buffer;
46 +
47 +    UnlockDisplay(dpy);
48 +    SyncHandle();
49 +
50 +    return True;
51 +}
52 +
53 +PUBLIC Bool glXReleaseTexImageMESA(Display *dpy,
54 +                                  GLXDrawable drawable,
55 +                                  int buffer)
56 +{
57 +    xGLXVendorPrivateReq *req;
58 +    GLXContext gc = __glXGetCurrentContext();
59 +    GLXDrawable *drawable_ptr;
60 +    int *buffer_ptr;
61 +    xGLXVendorPrivReply reply;
62 +    CARD8 opcode;
63 +
64 +    if (gc == NULL)
65 +       return False;
66 +
67 +#ifdef GLX_DIRECT_RENDERING
68 +    if (gc->isDirect)
69 +       return False;
70 +#endif
71 +
72 +    opcode = __glXSetupForCommand(dpy);
73 +    if (!opcode)
74 +       return False;
75 +
76 +    LockDisplay(dpy);
77 +    GetReqExtra(GLXVendorPrivate, sizeof(GLXDrawable)+sizeof(int),req);
78 +    req->reqType = opcode;
79 +    req->glxCode = X_GLXVendorPrivate;
80 +    req->vendorCode = X_GLXvop_ReleaseTexImageEXT;
81 +    req->contextTag = gc->currentContextTag;
82 +
83 +    drawable_ptr = (GLXDrawable *) (req + 1);
84 +    buffer_ptr = (int *) (drawable_ptr + 1);
85 +
86 +    *drawable_ptr = drawable;
87 +    *buffer_ptr = buffer;
88 +
89 +    UnlockDisplay(dpy);
90 +    SyncHandle();
91 +
92 +    return True;
93 +}
94  
95  /**
96   * \c strdup is actually not a standard ANSI C or POSIX routine.
97 @@ -2771,6 +2852,10 @@
98     GLX_FUNCTION( glXGetMscRateOML ),
99     GLX_FUNCTION( glXGetSyncValuesOML ),
100  
101 +   /*** GLX_MESA_render_texture ***/
102 +   GLX_FUNCTION( glXBindTexImageMESA ),
103 +   GLX_FUNCTION( glXReleaseTexImageMESA ),
104 +
105  #ifdef GLX_DIRECT_RENDERING
106     /*** DRI configuration ***/
107     GLX_FUNCTION( glXGetScreenDriver ),
108 Index: src/glx/x11/glxextensions.c
109 ===================================================================
110 RCS file: /cvs/mesa/Mesa/src/glx/x11/glxextensions.c,v
111 retrieving revision 1.10
112 diff -u -r1.10 glxextensions.c
113 --- src/glx/x11/glxextensions.c 24 Jul 2005 06:29:14 -0000      1.10
114 +++ src/glx/x11/glxextensions.c 28 Jul 2005 00:40:41 -0000
115 @@ -107,6 +107,7 @@
116     { GLX(SGIX_video_source),           VER(0,0), N, N, N, N },
117     { GLX(SGIX_visual_select_group),    VER(0,0), Y, Y, N, N },
118     { GLX(SUN_get_transparent_index),   VER(0,0), N, N, N, N },
119 +   { GLX(MESA_render_texture),         VER(0,0), Y, N, N, N },
120     { NULL }
121  };
122  
123 Index: src/glx/x11/glxextensions.h
124 ===================================================================
125 RCS file: /cvs/mesa/Mesa/src/glx/x11/glxextensions.h,v
126 retrieving revision 1.8
127 diff -u -r1.8 glxextensions.h
128 --- src/glx/x11/glxextensions.h 26 Jul 2005 22:53:38 -0000      1.8
129 +++ src/glx/x11/glxextensions.h 28 Jul 2005 00:40:41 -0000
130 @@ -69,7 +69,8 @@
131     SGIX_video_resize_bit,
132     SGIX_video_source_bit,
133     SGIX_visual_select_group_bit,
134 -   SUN_get_transparent_index_bit
135 +   SUN_get_transparent_index_bit,
136 +   MESA_render_texture_bit
137  };
138  
139  enum {
This page took 0.093575 seconds and 3 git commands to generate.