Commit [cbfb19] Maximize Restore History

libxtrans fontconfig mesa xserver git update 28 Mar 2014

xserver commit a2880699e8f1f576e1a48ebf25e8982463323f84
libxtrans commit 68f60238c4224f954ff6556ae778c72e420175f0
fontconfig commit fcba9ef01c978323fc71c17e455d3cd6ae35edcc
mesa commit 029ccd773d01a5f801c809c499516d7b0c4cc3f8

marha marha 2014-03-28

1 2 3 .. 7 > >> (Page 1 of 7)
added fontconfig/src/fcrange.c
added xorg-server/glamor/glamor_points.c
added xorg-server/glamor/glamor_program.h
added xorg-server/glamor/glamor_transform.c
added xorg-server/glamor/glamor_transform.h
changed X11
changed X11/xtrans
changed X11/xtrans/Xtrans.c
changed X11/xtrans/xtrans.pc.in
changed fontconfig
changed fontconfig/configure.ac
changed fontconfig/doc
changed fontconfig/doc/Makefile.am
changed fontconfig/doc/fcpattern.fncs
changed fontconfig/doc/fontconfig-devel.sgml
changed fontconfig/fontconfig
changed fontconfig/fontconfig/fcprivate.h
changed fontconfig/fontconfig/fontconfig.h
changed fontconfig/src
changed fontconfig/src/Makefile.am
changed fontconfig/src/fccfg.c
changed fontconfig/src/fcdbg.c
changed fontconfig/src/fcdefault.c
changed fontconfig/src/fcfreetype.c
changed fontconfig/src/fcint.h
changed fontconfig/src/fclist.c
changed fontconfig/src/fcmatch.c
changed fontconfig/src/fcname.c
changed fontconfig/src/fcobjs.h
changed fontconfig/src/fcpat.c
changed fontconfig/src/fcxml.c
changed mesalib
changed mesalib/SConstruct
changed mesalib/configure.ac
changed mesalib/docs
changed mesalib/docs/README.WIN32
changed mesalib/docs/install.html
changed mesalib/m4
changed mesalib/src
changed mesalib/src/glsl
changed mesalib/src/glsl/glsl_parser.yy
changed mesalib/src/glsl/glsl_symbol_table.cpp
changed mesalib/src/glsl/glsl_symbol_table.h
changed mesalib/src/glsl/ir.h
changed mesalib/src/glsl/ir_clone.cpp
changed mesalib/src/glsl/ir_constant_expression.cpp
changed mesalib/src/mapi
changed mesalib/src/mapi/glapi
changed mesalib/src/mapi/glapi/gen
changed mesalib/src/mapi/glapi/gen/glX_XML.py
changed mesalib/src/mapi/glapi/gen/glX_proto_common.py
changed mesalib/src/mapi/glapi/gen/gl_XML.py
changed mesalib/src/mesa
changed mesalib/src/mesa/drivers
changed mesalib/src/mesa/drivers/common
changed mesalib/src/mesa/drivers/common/meta.c
changed mesalib/src/mesa/drivers/common/meta.h
changed mesalib/src/mesa/main
changed mesalib/src/mesa/main/api_validate.c
changed mesalib/src/mesa/main/context.c
changed mesalib/src/mesa/main/fbobject.c
changed mesalib/src/mesa/main/ff_fragment_shader.cpp
changed mesalib/src/mesa/main/format_pack.c
changed mesalib/src/mesa/main/format_unpack.c
changed mesalib/src/mesa/main/formats.c
changed mesalib/src/mesa/main/get.c
changed mesalib/src/mesa/main/get_hash_params.py
changed mesalib/src/mesa/main/mtypes.h
changed mesalib/src/mesa/main/pipelineobj.c
changed mesalib/src/mesa/main/pipelineobj.h
changed mesalib/src/mesa/main/shaderapi.c
changed mesalib/src/mesa/main/shaderapi.h
changed mesalib/src/mesa/main/state.c
changed mesalib/src/mesa/main/texstate.c
changed mesalib/src/mesa/main/transformfeedback.c
changed mesalib/src/mesa/main/uniform_query.cpp
changed mesalib/src/mesa/main/uniforms.c
changed mesalib/src/mesa/main/uniforms.h
changed mesalib/src/mesa/main/varray.c
changed mesalib/src/mesa/program
changed mesalib/src/mesa/program/ir_to_mesa.cpp
changed mesalib/src/mesa/state_tracker
changed mesalib/src/mesa/state_tracker/st_atom_clip.c
changed mesalib/src/mesa/state_tracker/st_atom_constbuf.c
changed mesalib/src/mesa/state_tracker/st_atom_texture.c
changed mesalib/src/mesa/state_tracker/st_cb_drawpixels.c
changed mesalib/src/mesa/state_tracker/st_cb_queryobj.c
changed mesalib/src/mesa/state_tracker/st_context.c
changed mesalib/src/mesa/state_tracker/st_draw.c
changed mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
changed mesalib/src/mesa/state_tracker/st_program.c
changed mesalib/src/mesa/state_tracker/st_texture.c
changed mesalib/src/mesa/state_tracker/st_texture.h
changed mesalib/src/mesa/swrast
changed mesalib/src/mesa/swrast/s_fragprog.c
changed xorg-server
changed xorg-server/dix
changed xorg-server/dix/gc.c
changed xorg-server/fb
changed xorg-server/fb/fbblt.c
changed xorg-server/glamor
changed xorg-server/glamor/Makefile.am
changed xorg-server/glamor/glamor.c
changed xorg-server/glamor/glamor.h
changed xorg-server/glamor/glamor_core.c
changed xorg-server/glamor/glamor_fbo.c
changed xorg-server/glamor/glamor_fill.c
changed xorg-server/glamor/glamor_glyphs.c
changed xorg-server/glamor/glamor_gradient.c
changed xorg-server/glamor/glamor_largepixmap.c
changed xorg-server/glamor/glamor_pixmap.c
changed xorg-server/glamor/glamor_priv.h
changed xorg-server/glamor/glamor_render.c
changed xorg-server/glamor/glamor_trapezoid.c
changed xorg-server/glamor/glamor_vbo.c
changed xorg-server/hw
changed xorg-server/hw/dmx
changed xorg-server/hw/dmx/dmxinit.c
changed xorg-server/hw/kdrive
changed xorg-server/hw/kdrive/ephyr
changed xorg-server/hw/kdrive/ephyr/Makefile.am
changed xorg-server/hw/kdrive/ephyr/ephyrinit.c
changed xorg-server/hw/kdrive/ephyr/hostx.c
changed xorg-server/hw/kdrive/src
changed xorg-server/hw/kdrive/src/kxv.c
changed xorg-server/hw/kdrive/src/kxv.h
changed xorg-server/hw/vfb
changed xorg-server/hw/vfb/InitOutput.c
changed xorg-server/hw/xfree86
changed xorg-server/hw/xfree86/Makefile.am
changed xorg-server/hw/xfree86/common
changed xorg-server/hw/xfree86/common/xf86Extensions.c
changed xorg-server/hw/xfree86/dixmods
changed xorg-server/hw/xfree86/dixmods/glxmodule.c
changed xorg-server/hw/xfree86/doc
changed xorg-server/hw/xfree86/doc/ddxDesign.xml
changed xorg-server/hw/xquartz
changed xorg-server/hw/xquartz/quartz.c
changed xorg-server/hw/xwin
changed xorg-server/hw/xwin/InitOutput.c
changed xorg-server/include
changed xorg-server/include/extension.h
changed xorg-server/include/opaque.h
changed xorg-server/include/os.h
changed xorg-server/include/xkbsrv.h
changed xorg-server/mi
changed xorg-server/mi/mibitblt.c
changed xorg-server/mi/miinitext.c
changed xorg-server/os
changed xorg-server/os/connection.c
changed xorg-server/os/utils.c
changed xorg-server/test
changed xorg-server/test/Makefile.am
changed xorg-server/xkb
changed xorg-server/xkb/xkbUtils.c
copied mesalib/m4/ax_python_module.m4 -> xorg-server/glamor/glamor_segment.c
copied mesalib/src/mapi/glapi/gen/glX_doc.py -> xorg-server/glamor/glamor_program.c
copied xorg-server/glamor/glamor_polyops.c -> fontconfig/doc/fcrange.fncs
fontconfig/src/fcrange.c Diff Switch to side-by-side view
Loading...
xorg-server/glamor/glamor_points.c Diff Switch to side-by-side view
Loading...
xorg-server/glamor/glamor_program.h Diff Switch to side-by-side view
Loading...
xorg-server/glamor/glamor_transform.c Diff Switch to side-by-side view
Loading...
xorg-server/glamor/glamor_transform.h Diff Switch to side-by-side view
Loading...
X11
Directory.
X11/xtrans
Directory.
X11/xtrans/Xtrans.c Diff Switch to side-by-side view
Loading...
X11/xtrans/xtrans.pc.in Diff Switch to side-by-side view
Loading...
fontconfig
Directory.
fontconfig/configure.ac Diff Switch to side-by-side view
Loading...
fontconfig/doc
Directory.
fontconfig/doc/Makefile.am Diff Switch to side-by-side view
Loading...
fontconfig/doc/fcpattern.fncs Diff Switch to side-by-side view
Loading...
fontconfig/doc/fontconfig-devel.sgml Diff Switch to side-by-side view
Loading...
fontconfig/fontconfig/fcprivate.h Diff Switch to side-by-side view
Loading...
fontconfig/fontconfig/fontconfig.h Diff Switch to side-by-side view
Loading...
fontconfig/src
Directory.
fontconfig/src/Makefile.am Diff Switch to side-by-side view
Loading...
fontconfig/src/fccfg.c Diff Switch to side-by-side view
Loading...
fontconfig/src/fcdbg.c Diff Switch to side-by-side view
Loading...
fontconfig/src/fcdefault.c Diff Switch to side-by-side view
Loading...
fontconfig/src/fcfreetype.c Diff Switch to side-by-side view
Loading...
fontconfig/src/fcint.h Diff Switch to side-by-side view
Loading...
fontconfig/src/fclist.c Diff Switch to side-by-side view
Loading...
fontconfig/src/fcmatch.c Diff Switch to side-by-side view
Loading...
fontconfig/src/fcname.c Diff Switch to side-by-side view
Loading...
fontconfig/src/fcobjs.h Diff Switch to side-by-side view
Loading...
fontconfig/src/fcpat.c Diff Switch to side-by-side view
Loading...
fontconfig/src/fcxml.c Diff Switch to side-by-side view
Loading...
mesalib
Directory.
mesalib/SConstruct Diff Switch to side-by-side view
Loading...
mesalib/configure.ac Diff Switch to side-by-side view
Loading...
mesalib/docs
Directory.
mesalib/docs/README.WIN32 Diff Switch to side-by-side view
Loading...
mesalib/docs/install.html Diff Switch to side-by-side view
Loading...
mesalib/m4
Directory.
mesalib/src
Directory.
mesalib/src/glsl
Directory.
mesalib/src/glsl/glsl_parser.yy Diff Switch to side-by-side view
Loading...
mesalib/src/glsl/glsl_symbol_table.cpp Diff Switch to side-by-side view
Loading...
mesalib/src/glsl/glsl_symbol_table.h Diff Switch to side-by-side view
Loading...
mesalib/src/glsl/ir.h Diff Switch to side-by-side view
Loading...
mesalib/src/glsl/ir_clone.cpp Diff Switch to side-by-side view
Loading...
mesalib/src/glsl/ir_constant_expression.cpp Diff Switch to side-by-side view
Loading...
mesalib/src/mapi
Directory.
mesalib/src/mapi/glapi/gen/glX_XML.py Diff Switch to side-by-side view
Loading...
mesalib/src/mapi/glapi/gen/glX_proto_common.py Diff Switch to side-by-side view
Loading...
mesalib/src/mapi/glapi/gen/gl_XML.py Diff Switch to side-by-side view
Loading...
mesalib/src/mesa
Directory.
mesalib/src/mesa/drivers/common/meta.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/drivers/common/meta.h Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/main/api_validate.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/main/context.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/main/fbobject.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/main/ff_fragment_shader.cpp Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/main/format_pack.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/main/format_unpack.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/main/formats.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/main/get.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/main/get_hash_params.py Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/main/mtypes.h Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/main/pipelineobj.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/main/pipelineobj.h Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/main/shaderapi.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/main/shaderapi.h Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/main/state.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/main/texstate.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/main/transformfeedback.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/main/uniform_query.cpp Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/main/uniforms.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/main/uniforms.h Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/main/varray.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/program/ir_to_mesa.cpp Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/state_tracker/st_atom_clip.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/state_tracker/st_atom_constbuf.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/state_tracker/st_atom_texture.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/state_tracker/st_cb_drawpixels.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/state_tracker/st_cb_queryobj.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/state_tracker/st_context.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/state_tracker/st_draw.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/state_tracker/st_program.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/state_tracker/st_texture.c Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/state_tracker/st_texture.h Diff Switch to side-by-side view
Loading...
mesalib/src/mesa/swrast/s_fragprog.c Diff Switch to side-by-side view
Loading...
xorg-server
Directory.
xorg-server/dix
Directory.
xorg-server/dix/gc.c Diff Switch to side-by-side view
Loading...
xorg-server/fb
Directory.
xorg-server/fb/fbblt.c Diff Switch to side-by-side view
Loading...
xorg-server/glamor
Directory.
xorg-server/glamor/Makefile.am Diff Switch to side-by-side view
Loading...
xorg-server/glamor/glamor.c Diff Switch to side-by-side view
Loading...
xorg-server/glamor/glamor.h Diff Switch to side-by-side view
Loading...
xorg-server/glamor/glamor_core.c Diff Switch to side-by-side view
Loading...
xorg-server/glamor/glamor_fbo.c Diff Switch to side-by-side view
Loading...
xorg-server/glamor/glamor_fill.c Diff Switch to side-by-side view
Loading...
xorg-server/glamor/glamor_glyphs.c Diff Switch to side-by-side view
Loading...
xorg-server/glamor/glamor_gradient.c Diff Switch to side-by-side view
Loading...
xorg-server/glamor/glamor_largepixmap.c Diff Switch to side-by-side view
Loading...
xorg-server/glamor/glamor_pixmap.c Diff Switch to side-by-side view
Loading...
xorg-server/glamor/glamor_priv.h Diff Switch to side-by-side view
Loading...
xorg-server/glamor/glamor_render.c Diff Switch to side-by-side view
Loading...
xorg-server/glamor/glamor_trapezoid.c Diff Switch to side-by-side view
Loading...
xorg-server/glamor/glamor_vbo.c Diff Switch to side-by-side view
Loading...
xorg-server/hw
Directory.
xorg-server/hw/dmx
Directory.
xorg-server/hw/dmx/dmxinit.c Diff Switch to side-by-side view
Loading...
xorg-server/hw/kdrive/ephyr/Makefile.am Diff Switch to side-by-side view
Loading...
xorg-server/hw/kdrive/ephyr/ephyrinit.c Diff Switch to side-by-side view
Loading...
xorg-server/hw/kdrive/ephyr/hostx.c Diff Switch to side-by-side view
Loading...
xorg-server/hw/kdrive/src/kxv.c Diff Switch to side-by-side view
Loading...
xorg-server/hw/kdrive/src/kxv.h Diff Switch to side-by-side view
Loading...
xorg-server/hw/vfb
Directory.
xorg-server/hw/vfb/InitOutput.c Diff Switch to side-by-side view
Loading...
xorg-server/hw/xfree86/Makefile.am Diff Switch to side-by-side view
Loading...
xorg-server/hw/xfree86/common/xf86Extensions.c Diff Switch to side-by-side view
Loading...
xorg-server/hw/xfree86/dixmods/glxmodule.c Diff Switch to side-by-side view
Loading...
xorg-server/hw/xfree86/doc/ddxDesign.xml Diff Switch to side-by-side view
Loading...
xorg-server/hw/xquartz/quartz.c Diff Switch to side-by-side view
Loading...
xorg-server/hw/xwin
Directory.
xorg-server/hw/xwin/InitOutput.c Diff Switch to side-by-side view
Loading...
xorg-server/include
Directory.
xorg-server/include/extension.h Diff Switch to side-by-side view
Loading...
xorg-server/include/opaque.h Diff Switch to side-by-side view
Loading...
xorg-server/include/os.h Diff Switch to side-by-side view
Loading...
xorg-server/include/xkbsrv.h Diff Switch to side-by-side view
Loading...
xorg-server/mi
Directory.
xorg-server/mi/mibitblt.c Diff Switch to side-by-side view
Loading...
xorg-server/mi/miinitext.c Diff Switch to side-by-side view
Loading...
xorg-server/os
Directory.
xorg-server/os/connection.c Diff Switch to side-by-side view
Loading...
xorg-server/os/utils.c Diff Switch to side-by-side view
Loading...
xorg-server/test
Directory.
xorg-server/test/Makefile.am Diff Switch to side-by-side view
Loading...
xorg-server/xkb
Directory.
xorg-server/xkb/xkbUtils.c Diff Switch to side-by-side view
Loading...
mesalib/m4/ax_python_module.m4 to xorg-server/glamor/glamor_segment.c
--- a/mesalib/m4/ax_python_module.m4
+++ b/xorg-server/glamor/glamor_segment.c
@@ -1,49 +1,39 @@
-# ===========================================================================
-#     http://www.gnu.org/software/autoconf-archive/ax_python_module.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   AX_PYTHON_MODULE(modname[, fatal])
-#
-# DESCRIPTION
-#
-#   Checks for Python module.
-#
-#   If fatal is non-empty then absence of a module will trigger an error.
-#
-# LICENSE
-#
-#   Copyright (c) 2008 Andrew Collier
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved. This file is offered as-is, without any
-#   warranty.
+/*
+ * Copyright Š 2014 Keith Packard
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting documentation, and
+ * that the name of the copyright holders not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission.  The copyright holders make no representations
+ * about the suitability of this software for any purpose.  It is provided "as
+ * is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ * OF THIS SOFTWARE.
+ */
 
-#serial 6
+#include "glamor_priv.h"
 
-AU_ALIAS([AC_PYTHON_MODULE], [AX_PYTHON_MODULE])
-AC_DEFUN([AX_PYTHON_MODULE],[
-    if test -z $PYTHON2;
-    then
-        PYTHON2="python"
-    fi
-    PYTHON_NAME=`basename $PYTHON2`
-    AC_MSG_CHECKING($PYTHON_NAME module: $1)
-	$PYTHON2 -c "import $1" 2>/dev/null
-	if test $? -eq 0;
-	then
-		AC_MSG_RESULT(yes)
-		eval AS_TR_CPP(HAVE_PYMOD_$1)=yes
-	else
-		AC_MSG_RESULT(no)
-		eval AS_TR_CPP(HAVE_PYMOD_$1)=no
-		#
-		if test -n "$2"
-		then
-			AC_MSG_ERROR(failed to find required module $1)
-			exit 1
-		fi
-	fi
-])
+Bool
+glamor_poly_segment_nf(DrawablePtr drawable, GCPtr gc, int nseg,
+                       xSegment *seg)
+{
+    return FALSE;
+}
+
+void
+glamor_poly_segment(DrawablePtr drawable, GCPtr gc, int nseg,
+                    xSegment *seg)
+{
+    if (glamor_poly_segment_nf(drawable, gc, nseg, seg))
+        return;
+    miPolySegment(drawable, gc, nseg, seg);
+}
mesalib/src/mapi/glapi/gen/glX_doc.py to xorg-server/glamor/glamor_program.c
--- a/mesalib/src/mapi/glapi/gen/glX_doc.py
+++ b/xorg-server/glamor/glamor_program.c
@@ -1,280 +1,394 @@
-#!/usr/bin/env python
-
-# (C) Copyright IBM Corporation 2004, 2005
-# All Rights Reserved.
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# on the rights to use, copy, modify, merge, publish, distribute, sub
-# license, and/or sell copies of the Software, and to permit persons to whom
-# the Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# 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 NON-INFRINGEMENT.  IN NO EVENT SHALL
-# IBM AND/OR ITS SUPPLIERS 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.
-#
-# Authors:
-#    Ian Romanick <idr@us.ibm.com>
-
-import gl_XML, glX_XML, glX_proto_common, license
-import sys, getopt
-
-
-class glx_doc_item_factory(glX_proto_common.glx_proto_item_factory):
-    """Factory to create GLX protocol documentation oriented objects derived from glItem."""
-
-    def create_item(self, name, element, context):
-        if name == "parameter":
-            return glx_doc_parameter(element, context)
-        else:
-            return glX_proto_common.glx_proto_item_factory.create_item(self, name, element, context)
-
-
-class glx_doc_parameter(gl_XML.gl_parameter):
-    def packet_type(self, type_dict):
-        """Get the type string for the packet header
-
-        GLX protocol documentation uses type names like CARD32,
-        FLOAT64, LISTofCARD8, and ENUM.  This function converts the
-        type of the parameter to one of these names."""
-
-        list_of = ""
-        if self.is_array():
-            list_of = "LISTof"
-
-        t_name = self.get_base_type_string()
-        if not type_dict.has_key( t_name ):
-            type_name = "CARD8"
-        else:
-            type_name = type_dict[ t_name ]
-
-        return "%s%s" % (list_of, type_name)
-
-
-    def packet_size(self):
-        p = None
-        s = self.size()
-        if s == 0:
-            a_prod = "n"
-            b_prod = self.p_type.size
-
-            if not self.count_parameter_list and self.counter:
-                a_prod = self.counter
-            elif self.count_parameter_list and not self.counter or self.is_output:
-                pass
-            elif self.count_parameter_list and self.counter:
-                b_prod = self.counter
-            else:
-                raise RuntimeError("Parameter '%s' to function '%s' has size 0." % (self.name, self.context.name))
-
-            ss = "%s*%s" % (a_prod, b_prod)
-
-            return [ss, p]
-        else:
-            if s % 4 != 0:
-                p = "p"
-
-            return [str(s), p]
-
-class PrintGlxProtoText(gl_XML.gl_print_base):
-    def __init__(self):
-        gl_XML.gl_print_base.__init__(self)
-        self.license = ""
-
-
-    def printHeader(self):
-        return
-
-
-    def body_size(self, f):
-        # At some point, refactor this function and
-        # glXFunction::command_payload_length.
-
-        size = 0;
-        size_str = ""
-        pad_str = ""
-        plus = ""
-        for p in f.parameterIterateGlxSend():
-            [s, pad] = p.packet_size()
-            try: 
-                size += int(s)
-            except Exception,e:
-                size_str += "%s%s" % (plus, s)
-                plus = "+"
-
-            if pad != None:
-                pad_str = pad
-
-        return [size, size_str, pad_str]
-
-
-    def print_render_header(self, f):
-        [size, size_str, pad_str] = self.body_size(f)
-        size += 4;
-
-        if size_str == "":
-            s = "%u" % ((size + 3) & ~3)
-        elif pad_str != "":
-            s = "%u+%s+%s" % (size, size_str, pad_str)
-        else:
-            s = "%u+%s" % (size, size_str)
-
-        print '            2        %-15s rendering command length' % (s)
-        print '            2        %-4u            rendering command opcode' % (f.glx_rop)
-        return
-
-
-    def print_single_header(self, f):
-        [size, size_str, pad_str] = self.body_size(f)
-        size = ((size + 3) / 4) + 2;
-
-        if f.glx_vendorpriv != 0:
-            size += 1
-
-        print '            1        CARD8           opcode (X assigned)'
-        print '            1        %-4u            GLX opcode (%s)' % (f.opcode_real_value(), f.opcode_real_name())
-
-        if size_str == "":
-            s = "%u" % (size)
-        elif pad_str != "":
-            s = "%u+((%s+%s)/4)" % (size, size_str, pad_str)
-        else:
-            s = "%u+((%s)/4)" % (size, size_str)
-
-        print '            2        %-15s request length' % (s)
-
-        if f.glx_vendorpriv != 0:
-            print '            4        %-4u            vendor specific opcode' % (f.opcode_value())
-
-        print '            4        GLX_CONTEXT_TAG context tag'
-
-        return
-
-
-    def print_reply(self, f):
-        print '          =>'
-        print '            1        1               reply'
-        print '            1                        unused'
-        print '            2        CARD16          sequence number'
-
-        if f.output == None:
-            print '            4        0               reply length'
-        elif f.reply_always_array:
-            print '            4        m               reply length'
-        else:
-            print '            4        m               reply length, m = (n == 1 ? 0 : n)'
-
-
-        output = None
-        for x in f.parameterIterateOutputs():
-            output = x
-            break
-
-
-        unused = 24
-        if f.return_type != 'void':
-            print '            4        %-15s return value' % (f.return_type)
-            unused -= 4
-        elif output != None:
-            print '            4                        unused'
-            unused -= 4
-
-        if output != None:
-            print '            4        CARD32          n'
-            unused -= 4
-
-        if output != None:
-            if not f.reply_always_array:
-                print ''
-                print '            if (n = 1) this follows:'
-                print ''
-                print '            4        CARD32          %s' % (output.name)
-                print '            %-2u                       unused' % (unused - 4)
-                print ''
-                print '            otherwise this follows:'
-                print ''
-
-            print '            %-2u                       unused' % (unused)
-
-            [s, pad] = output.packet_size()
-            print '            %-8s %-15s %s' % (s, output.packet_type( self.type_map ), output.name)
-            if pad != None:
-                try:
-                    bytes = int(s)
-                    bytes = 4 - (bytes & 3)
-                    print '            %-8u %-15s unused' % (bytes, "")
-                except Exception,e:
-                    print '            %-8s %-15s unused, %s=pad(%s)' % (pad, "", pad, s)
-        else:
-            print '            %-2u                       unused' % (unused)
-
-
-    def print_body(self, f):
-        for p in f.parameterIterateGlxSend():
-            [s, pad] = p.packet_size()
-            print '            %-8s %-15s %s' % (s, p.packet_type( self.type_map ), p.name)
-            if pad != None:
-                try:
-                    bytes = int(s)
-                    bytes = 4 - (bytes & 3)
-                    print '            %-8u %-15s unused' % (bytes, "")
-                except Exception,e:
-                    print '            %-8s %-15s unused, %s=pad(%s)' % (pad, "", pad, s)
-
-    def printBody(self, api):
-        self.type_map = {}
-        for t in api.typeIterate():
-            self.type_map[ "GL" + t.name ] = t.glx_name
-
-
-        # At some point this should be expanded to support pixel
-        # functions, but I'm not going to lose any sleep over it now.
-
-        for f in api.functionIterateByOffset():
-            if f.client_handcode or f.server_handcode or f.vectorequiv or len(f.get_images()):
-                continue
-
-
-            if f.glx_rop:
-                print '        %s' % (f.name)
-                self.print_render_header(f)
-            elif f.glx_sop or f.glx_vendorpriv:
-                print '        %s' % (f.name)
-                self.print_single_header(f)
-            else:
-                continue
-
-            self.print_body(f)
-
-            if f.needs_reply():
-                self.print_reply(f)
-
-            print ''
-        return
-
-
-if __name__ == '__main__':
-    file_name = "gl_API.xml"
-
-    try:
-        (args, trail) = getopt.getopt(sys.argv[1:], "f:")
-    except Exception,e:
-        show_usage()
-
-    for (arg,val) in args:
-        if arg == "-f":
-            file_name = val
-
-    api = gl_XML.parse_GL_API( file_name, glx_doc_item_factory() )
-
-    printer = PrintGlxProtoText()
-    printer.Print( api )
+/*
+ * Copyright �� 2014 Keith Packard
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting documentation, and
+ * that the name of the copyright holders not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission.  The copyright holders make no representations
+ * about the suitability of this software for any purpose.  It is provided "as
+ * is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ * OF THIS SOFTWARE.
+ */
+
+#include "glamor_priv.h"
+#include "glamor_transform.h"
+#include "glamor_program.h"
+
+static Bool
+use_solid(PixmapPtr pixmap, GCPtr gc, glamor_program *prog, void *arg)
+{
+    return glamor_set_solid(pixmap, gc, TRUE, prog->fg_uniform);
+}
+
+const glamor_facet glamor_fill_solid = {
+    .name = "solid",
+    .fs_exec = "       gl_FragColor = fg;\n",
+    .locations = glamor_program_location_fg,
+    .use = use_solid,
+};
+
+static Bool
+use_tile(PixmapPtr pixmap, GCPtr gc, glamor_program *prog, void *arg)
+{
+    return glamor_set_tiled(pixmap, gc, prog->fill_offset_uniform, prog->fill_size_uniform);
+}
+
+static const glamor_facet glamor_fill_tile = {
+    .name = "tile",
+    .version = 130,
+    .vs_exec =  "       fill_pos = fill_offset + primitive.xy + pos;\n",
+    .fs_exec =  "       gl_FragColor = texelFetch(sampler, ivec2(mod(fill_pos,fill_size)), 0);\n",
+    .locations = glamor_program_location_fill,
+    .use = use_tile,
+};
+
+#if 0
+static Bool
+use_stipple(PixmapPtr pixmap, GCPtr gc, glamor_program *prog)
+{
+    return glamor_set_stippled(pixmap, gc, prog->fg_uniform, prog->fill_offset_uniform, prog->fill_size_uniform);
+}
+
+static const glamor_facet glamor_fill_stipple = {
+    .name = "stipple",
+    .version = 130,
+    .vs_exec =  "       fill_pos = fill_offset + primitive.xy + pos;\n";
+    .fs_exec = ("       if (texelFetch(sampler, ivec2(mod(fill_pos,fill_size)), 0).x == 0)\n"
+                "               discard;\n"
+                "       gl_FragColor = fg;\n")
+    .locations = glamor_program_location_fg | glamor_program_location_fill
+    .use = use_stipple,
+};
+
+static const glamor_facet glamor_fill_opaque_stipple = {
+    .name = "opaque_stipple",
+    .version = 130,
+    .vs_exec =  "       fill_pos = fill_offset + primitive.xy + pos;\n";
+    .fs_exec = ("       if (texelFetch(sampler, ivec2(mod(fill_pos,fill_size)), 0).x == 0)\n"
+                "               gl_FragColor = bg;\n"
+                "       else\n"
+                "               gl_FragColor = fg;\n"),
+    .locations = glamor_program_location_fg | glamor_program_location_bg | glamor_program_location_fill
+    .use = use_opaque_stipple
+};
+#endif
+
+static const glamor_facet *glamor_facet_fill[4] = {
+    &glamor_fill_solid,
+    &glamor_fill_tile,
+    NULL,
+    NULL,
+};
+
+typedef struct {
+    glamor_program_location     location;
+    const char                  *vs_vars;
+    const char                  *fs_vars;
+} glamor_location_var;
+
+static glamor_location_var location_vars[] = {
+    {
+        .location = glamor_program_location_fg,
+        .fs_vars = "uniform vec4 fg;\n"
+    },
+    {
+        .location = glamor_program_location_bg,
+        .fs_vars = "uniform vec4 bg;\n"
+    },
+    {
+        .location = glamor_program_location_fill,
+        .vs_vars = ("uniform vec2 fill_offset;\n"
+                    "varying vec2 fill_pos;\n"),
+        .fs_vars = ("uniform sampler2D sampler;\n"
+                    "uniform vec2 fill_size;\n"
+                    "varying vec2 fill_pos;\n")
+    },
+    {
+        .location = glamor_program_location_font,
+        .fs_vars = "uniform usampler2D font;\n",
+    },
+};
+
+#define NUM_LOCATION_VARS       (sizeof location_vars / sizeof location_vars[0])
+
+static char *
+add_var(char *cur, const char *add)
+{
+    char *new;
+
+    if (!add)
+        return cur;
+
+    new = realloc(cur, strlen(cur) + strlen(add) + 1);
+    if (!new) {
+        free(cur);
+        return NULL;
+    }
+    strcat(new, add);
+    return new;
+}
+
+static char *
+vs_location_vars(glamor_program_location locations)
+{
+    int l;
+    char *vars = strdup("");
+
+    for (l = 0; vars && l < NUM_LOCATION_VARS; l++)
+        if (locations & location_vars[l].location)
+            vars = add_var(vars, location_vars[l].vs_vars);
+    return vars;
+}
+
+static char *
+fs_location_vars(glamor_program_location locations)
+{
+    int l;
+    char *vars = strdup("");
+
+    for (l = 0; vars && l < NUM_LOCATION_VARS; l++)
+        if (locations & location_vars[l].location)
+            vars = add_var(vars, location_vars[l].fs_vars);
+    return vars;
+}
+
+static const char vs_template[] =
+    "%s"                                /* version */
+    "%s"                                /* prim vs_vars */
+    "%s"                                /* fill vs_vars */
+    "%s"                                /* location vs_vars */
+    GLAMOR_DECLARE_MATRIX
+    "void main() {\n"
+    "%s"                                /* prim vs_exec, outputs 'pos' and gl_Position */
+    "%s"                                /* fill vs_exec */
+    "}\n";
+
+static const char fs_template[] =
+    "%s"                                /* version */
+    GLAMOR_DEFAULT_PRECISION
+    "%s"                                /* prim fs_vars */
+    "%s"                                /* fill fs_vars */
+    "%s"                                /* location fs_vars */
+    "void main() {\n"
+    "%s"                                /* prim fs_exec */
+    "%s"                                /* fill fs_exec */
+    "}\n";
+
+static const char *
+str(const char *s)
+{
+    if (!s)
+        return "";
+    return s;
+}
+
+static const glamor_facet facet_null_fill = {
+    .name = ""
+};
+
+static GLint
+glamor_get_uniform(glamor_program               *prog,
+                   glamor_program_location      location,
+                   const char                   *name)
+{
+    GLint uniform;
+    if (location && (prog->locations & location) == 0)
+        return -2;
+    uniform = glGetUniformLocation(prog->prog, name);
+#if DBG
+    ErrorF("%s uniform %d\n", name, uniform);
+#endif
+    return uniform;
+}
+
+Bool
+glamor_build_program(ScreenPtr          screen,
+                     glamor_program     *prog,
+                     const glamor_facet *prim,
+                     const glamor_facet *fill)
+{
+    glamor_screen_private *glamor_priv = glamor_get_screen_private(screen);
+
+    glamor_program_location     locations = prim->locations;
+    glamor_program_flag         flags = prim->flags;
+
+    int                         version = prim->version;
+    char                        *version_string = NULL;
+
+    char                        *fs_vars = NULL;
+    char                        *vs_vars = NULL;
+
+    char                        *vs_prog_string;
+    char                        *fs_prog_string;
+
+    GLint                       fs_prog, vs_prog;
+
+    if (!fill)
+        fill = &facet_null_fill;
+
+    locations |= fill->locations;
+    flags |= fill->flags;
+    version = MAX(version, fill->version);
+
+    if (version >= 130) {
+
+        /* Would be nice to have a cleaner test for GLSL 1.30 support,
+         * but for now this should suffice
+         */
+        if (glamor_priv->gl_flavor != GLAMOR_GL_DESKTOP ||
+            epoxy_gl_version() < 30) {
+            goto fail;
+        }
+    }
+
+    vs_vars = vs_location_vars(locations);
+    fs_vars = fs_location_vars(locations);
+
+    if (!vs_vars)
+        goto fail;
+    if (!fs_vars)
+        goto fail;
+
+    if (version) {
+        if (asprintf(&version_string, "#version %d\n", version) < 0)
+            version_string = NULL;
+        if (!version_string)
+            goto fail;
+    }
+
+    if (asprintf(&vs_prog_string,
+                 vs_template,
+                 str(version_string),
+                 str(prim->vs_vars),
+                 str(fill->vs_vars),
+                 vs_vars,
+                 str(prim->vs_exec),
+                 str(fill->vs_exec)) < 0)
+        vs_prog_string = NULL;
+
+    if (asprintf(&fs_prog_string,
+                 fs_template,
+                 str(version_string),
+                 str(prim->fs_vars),
+                 str(fill->fs_vars),
+                 fs_vars,
+                 str(prim->fs_exec),
+                 str(fill->fs_exec)) < 0)
+        fs_prog_string = NULL;
+
+    if (!vs_prog_string || !fs_prog_string)
+        goto fail;
+
+#define DBG 0
+#if DBG
+    ErrorF("\nPrograms for %s %s\nVertex shader:\n\n%s\n\nFragment Shader:\n\n%s",
+           prim->name, fill->name, vs_prog_string, fs_prog_string);
+#endif
+
+    prog->prog = glCreateProgram();
+    prog->flags = flags;
+    prog->locations = locations;
+    prog->prim_use = prim->use;
+    prog->fill_use = fill->use;
+
+    vs_prog = glamor_compile_glsl_prog(GL_VERTEX_SHADER, vs_prog_string);
+    fs_prog = glamor_compile_glsl_prog(GL_FRAGMENT_SHADER, fs_prog_string);
+    free(vs_prog_string);
+    free(fs_prog_string);
+    glAttachShader(prog->prog, vs_prog);
+    glDeleteShader(vs_prog);
+    glAttachShader(prog->prog, fs_prog);
+    glDeleteShader(fs_prog);
+    glBindAttribLocation(prog->prog, GLAMOR_VERTEX_POS, "primitive");
+
+    if (prim->source_name) {
+#if DBG
+        ErrorF("Bind GLAMOR_VERTEX_SOURCE to %s\n", prim->source_name);
+#endif
+        glBindAttribLocation(prog->prog, GLAMOR_VERTEX_SOURCE, prim->source_name);
+    }
+
+    glamor_link_glsl_prog(screen, prog->prog, "%s_%s", prim->name, fill->name);
+
+    prog->matrix_uniform = glamor_get_uniform(prog, glamor_program_location_none, "v_matrix");
+    prog->fg_uniform = glamor_get_uniform(prog, glamor_program_location_fg, "fg");
+    prog->bg_uniform = glamor_get_uniform(prog, glamor_program_location_bg, "bg");
+    prog->fill_offset_uniform = glamor_get_uniform(prog, glamor_program_location_fill, "fill_offset");
+    prog->fill_size_uniform = glamor_get_uniform(prog, glamor_program_location_fill, "fill_size");
+    prog->font_uniform = glamor_get_uniform(prog, glamor_program_location_font, "font");
+
+    if (glGetError() != GL_NO_ERROR)
+        goto fail;
+
+    free(version_string);
+    free(fs_vars);
+    free(vs_vars);
+    return TRUE;
+fail:
+    prog->failed = 1;
+    if (prog->prog) {
+        glDeleteProgram(prog->prog);
+        prog->prog = 0;
+    }
+    free(version_string);
+    free(fs_vars);
+    free(vs_vars);
+    return FALSE;
+}
+
+Bool
+glamor_use_program(PixmapPtr            pixmap,
+                   GCPtr                gc,
+                   glamor_program       *prog,
+                   void                 *arg)
+{
+    glUseProgram(prog->prog);
+
+    if (prog->prim_use && !prog->prim_use(pixmap, gc, prog, arg))
+        return FALSE;
+
+    if (prog->fill_use && !prog->fill_use(pixmap, gc, prog, arg))
+        return FALSE;
+
+    return TRUE;
+}
+
+glamor_program *
+glamor_use_program_fill(PixmapPtr               pixmap,
+                        GCPtr                   gc,
+                        glamor_program_fill     *program_fill,
+                        const glamor_facet      *prim)
+{
+    ScreenPtr                   screen = pixmap->drawable.pScreen;
+    glamor_program              *prog = &program_fill->progs[gc->fillStyle];
+
+    int                         fill_style = gc->fillStyle;
+    const glamor_facet          *fill;
+
+    if (prog->failed)
+        return FALSE;
+
+    if (!prog->prog) {
+        fill = glamor_facet_fill[fill_style];
+        if (!fill)
+            return NULL;
+
+        if (!glamor_build_program(screen, prog, prim, fill))
+            return NULL;
+    }
+
+    if (!glamor_use_program(pixmap, gc, prog, NULL))
+        return NULL;
+
+    return prog;
+}
xorg-server/glamor/glamor_polyops.c to fontconfig/doc/fcrange.fncs
--- a/xorg-server/glamor/glamor_polyops.c
+++ b/fontconfig/doc/fcrange.fncs
@@ -1,82 +1,64 @@
 /*
- * Copyright © 2009 Intel Corporation
- * Copyright © 1998 Keith Packard
+ * fontconfig/doc/fcrange.fncs
  *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
+ * Copyright © 2003 Keith Packard
  *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of the author(s) not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission.  The authors make no
+ * representations about the suitability of this software for any purpose.  It
+ * is provided "as is" without express or implied warranty.
  *
- * 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
- * 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.
- *
- * Authors:
- *    Zhigang Gong <zhigang.gong@linux.intel.com>
- *
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
  */
+@RET@		FcRange *
+@FUNC@		FcRangeCopy
+@TYPE1@		const FcRange *			@ARG1@		range
+@PURPOSE@	Copy a range object
+@DESC@
+<function>FcRangeCopy</function> creates a new FcRange object and
+populates it with the contents of <parameter>range</parameter>.
+@SINCE@		2.11.91
+@@
 
-#include "glamor_priv.h"
+@RET@		FcRange *
+@FUNC@		FcRangeCreateDouble
+@TYPE1@		double				@ARG1@		begin
+@TYPE2@		double				@ARG2@		end
+@PURPOSE@	create a range object for double
+@DESC@
+<function>FcRangeCreateDouble</function> creates a new FcRange object with
+double sized value.
+@SINCE@		2.11.91
+@@
 
-static Bool
-_glamor_poly_point(DrawablePtr pDrawable, GCPtr pGC, int mode, int npt,
-                   DDXPointPtr ppt, Bool fallback)
-{
-    if (!fallback && glamor_ddx_fallback_check_gc(pGC)
-        && glamor_ddx_fallback_check_pixmap(pDrawable))
-        return FALSE;
+@RET@		FcRange *
+@FUNC@		FcRangeCreateInteger
+@TYPE1@		int				@ARG1@		begin
+@TYPE2@		int				@ARG2@		end
+@PURPOSE@	create a range object for integer
+@DESC@
+<function>FcRangeCreateInteger</function> creates a new FcRange object with
+integer sized value.
+@SINCE@		2.11.91
+@@
 
-    miPolyPoint(pDrawable, pGC, mode, npt, ppt);
-
-    return TRUE;
-}
-
-void
-glamor_poly_point(DrawablePtr pDrawable, GCPtr pGC, int mode, int npt,
-                  DDXPointPtr ppt)
-{
-    _glamor_poly_point(pDrawable, pGC, mode, npt, ppt, TRUE);
-}
-
-Bool
-glamor_poly_point_nf(DrawablePtr pDrawable, GCPtr pGC, int mode, int npt,
-                     DDXPointPtr ppt)
-{
-    return _glamor_poly_point(pDrawable, pGC, mode, npt, ppt, FALSE);
-}
-
-static Bool
-_glamor_poly_segment(DrawablePtr pDrawable, GCPtr pGC, int nseg,
-                     xSegment *pSeg, Bool fallback)
-{
-    if (!fallback && glamor_ddx_fallback_check_gc(pGC)
-        && glamor_ddx_fallback_check_pixmap(pDrawable))
-        return FALSE;
-
-    miPolySegment(pDrawable, pGC, nseg, pSeg);
-
-    return TRUE;
-}
-
-void
-glamor_poly_segment(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment *pSeg)
-{
-    _glamor_poly_segment(pDrawable, pGC, nseg, pSeg, TRUE);
-}
-
-Bool
-glamor_poly_segment_nf(DrawablePtr pDrawable, GCPtr pGC, int nseg,
-                       xSegment *pSeg)
-{
-    return _glamor_poly_segment(pDrawable, pGC, nseg, pSeg, FALSE);
-}
+@RET@		void
+@FUNC@		FcRangeDestroy
+@TYPE1@		FcRange *			@ARG1@		range
+@PURPOSE@	destroy a range object
+@DESC@
+<function>FcRangeDestroy</function> destroys a FcRange object, freeing
+all memory associated with it.
+@SINCE@		2.11.91
+@@
1 2 3 .. 7 > >> (Page 1 of 7)