glx: Avoid atof() when computing the server's GLX version
[mesa.git] / src / glx / xfont.c
index 797fd7a49004fff157968740d7b5ad1f6415e4ac..00498bc3ea4e7833cd8e46367cfcb33cde275e73 100644 (file)
@@ -1,6 +1,5 @@
 /*
  * Mesa 3-D graphics library
- * Version:  3.1
  *
  * Copyright (C) 1999  Brian Paul   All Rights Reserved.
  *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
  */
 
 
@@ -212,9 +212,8 @@ isvalid(XFontStruct * fs, int which)
 }
 
 _X_HIDDEN void
-DRI_glXUseXFont(Font font, int first, int count, int listbase)
+DRI_glXUseXFont(struct glx_context *CC, Font font, int first, int count, int listbase)
 {
-   GLXContext CC;
    Display *dpy;
    Window win;
    Pixmap pixmap;
@@ -223,6 +222,10 @@ DRI_glXUseXFont(Font font, int first, int count, int listbase)
    unsigned long valuemask;
    XFontStruct *fs;
 
+#if !defined(GLX_USE_APPLEGL)
+   __GLXDRIdrawable *glxdraw;
+#endif
+
    GLint swapbytes, lsbfirst, rowlength;
    GLint skiprows, skippixels, alignment;
 
@@ -231,10 +234,15 @@ DRI_glXUseXFont(Font font, int first, int count, int listbase)
 
    int i;
 
-   CC = __glXGetCurrentContext();
    dpy = CC->currentDpy;
    win = CC->currentDrawable;
 
+#if !defined(GLX_USE_APPLEGL)
+   glxdraw = GetGLXDRIDrawable(CC->currentDpy, CC->currentDrawable);
+   if (glxdraw)
+      win = glxdraw->xDrawable;
+#endif
+
    fs = XQueryFont(dpy, font);
    if (!fs) {
       __glXSetError(CC, GL_INVALID_VALUE);
@@ -247,7 +255,7 @@ DRI_glXUseXFont(Font font, int first, int count, int listbase)
    max_bm_width = (max_width + 7) / 8;
    max_bm_height = max_height;
 
-   bm = (GLubyte *) Xmalloc((max_bm_width * max_bm_height) * sizeof(GLubyte));
+   bm = malloc((max_bm_width * max_bm_height) * sizeof(GLubyte));
    if (!bm) {
       XFreeFontInfo(NULL, fs, 1);
       __glXSetError(CC, GL_OUT_OF_MEMORY);
@@ -361,7 +369,7 @@ DRI_glXUseXFont(Font font, int first, int count, int listbase)
       glEndList();
    }
 
-   Xfree(bm);
+   free(bm);
    XFreeFontInfo(NULL, fs, 1);
    XFreeGC(dpy, gc);